Releases: cartridge-gg/cainome
Release list
v0.10.1
v0.10.0
New release that uses starknet-rs 0.17.0 and starknet-types-core 0.2.
v0.9.1
A release testing the CI automation. No change from 0.9.0.
v0.9.0
This version introduces the support for starknet-rs 0.16.
What's Changed
- feat: add Claude Code configuration for Rust/Cairo development by @tarrencev in #96
- Refactor plugin options to support other plugins by @tarrencev in #99
- Create pre-commit hooks for linting by @tarrencev in #102
- Update parser config for contract file inclusion by @tarrencev in #100
- Testing framework by @tarrencev in #107
- Add golang bindgen support by @tarrencev in #105
- Update starknet-rs to v0.16 by @tarrencev in #109
Full Changelog: v0.8.0...0.9.0
v0.8.0
Important changes
This update contains mostly the bump to starknet-rs 0.15 which contains some changes at the JSON RPC level.
The MSRV has been bumped by @vaporif and then reverted in the PR. However, cargo publish required 1.82 for some dependencies not supporting 1.81.
Changelog
chore: bump starknet-rs to 0.15.1 and CI updates by @vaporif in #92
v0.7.0
Important changes
Generic types are no longer generated by Cainome at the moment. Please read the detail below:
Generic in Cairo are allowed, however not in an entrypoint. If used in a entrypoint, the generic type must be specified.
#[external(v0)]
fn entrypoint(ref self: ContractState) -> MyStruct<u32> {
// ...
}In the ABI, the generic types are flatten, which means anytime a generic type is specific, a new entry in the ABI is generated.
So MyStruct<T> could be present n times in the ABI.
Moreover, the genericity is not explicit in the ABI, and must be reconstructed. Which is, in some cases, very challenging.
To simplify how cainome generates the bindings, currently generic support has been removed from the high level usage and generated bindings.
Instead, a type_skips has been added to complement type_aliases.
abigen!(
MyContract,
"./contracts/abi/structs.abi.json",
type_aliases {
contracts::abicov::structs::GenericOne as GenericOneBis;
contracts::abicov::structs::GenericTwo as GenericTwoBis;
contracts::abicov::structs::ToAlias as MyDef;
},
type_skips(
contracts::abicov::structs::GenericOne, contracts::abicov::structs::GenericTwo, contracts::abicov::structs::ToAlias
),
derives(serde::Serialize)
);By combining both, the type_aliases will ensure that cainome replaces the occurrence of the type in all functions/nested types.
By using type_skips, cainome will not output such types, and the user can use CairoSerde to implement the type at will:
#[derive(CairoSerde, Serialize)]
pub struct GenericOneBis {
pub f1: Felt,
}
#[derive(CairoSerde, Serialize)]
pub struct GenericTwoBis {
pub a: Felt,
}
#[derive(CairoSerde, Serialize)]
pub struct MyDef {
pub a: Felt,
}What's Changed
Full Changelog: v0.6.1...v0.7.0
v0.6.1
v0.6.0
v0.5.1
v0.5.0
Important changes
The version of starknet-rs is now 0.13.0, and the default version for transaction execution is V3.
What's Changed
Full Changelog: v0.4.12...v0.5.0