Major Changes
-
#92
4af6c06Thanks @grod220! - Removed defaultserdesupport and replacedkaiganwithspl-collectionsBREAKING CHANGES:
-
Generated variable-sized string/vector wrappers now come from
spl-collectionsinstead ofkaigan. If you have handwritten code that references these generated wrapper types, update those imports and usages after regenerating your client:kaigan::types::RemainderStr->spl_collections::TrailingStrkaigan::types::RemainderVec<T>->spl_collections::TrailingVec<T>kaigan::types::U8PrefixString,U16PrefixString,U64PrefixString->spl_collections::U8PrefixedStr,U16PrefixedStr,U64PrefixedStrkaigan::types::U8PrefixVec<T>,U16PrefixVec<T>,U64PrefixVec<T>->spl_collections::U8PrefixedVec<T>,U16PrefixedVec<T>,U64PrefixedVec<T>
-
serdeis no longer part of the default or recommended generated client surface. The previous default derives on wrapper types were misleading because theirserderepresentation does not match the Borsh/Wincode wire format. -
If you still want
serdederives for a separate JSON representation, you can opt in explicitly viatraitOptionsas shown below. This does not make the generated types serde-compatible with their Borsh/Wincode wire format, but you can define a handwritten implementation with your own serde mapping as needed.traitOptions: { baseDefaults: [ 'borsh::BorshSerialize', 'borsh::BorshDeserialize', -
'serde::Serialize', -
'serde::Deserialize', 'Clone', 'Debug', 'Eq', 'PartialEq', ], -
featureFlags: {
-
serde: ['serde::Serialize', 'serde::Deserialize'], -
},
}
-
-
#90
f214970Thanks @grod220! - Switch generated Rust code fromsolana_pubkey::Pubkeytosolana_address::Addressand update the default dependency set to newer Solana 3.x andborsh1.0 versions. This affects generated program IDs, account/instruction types, PDA helpers, and public key literals, so downstream users may need to update imports and pubkey usage after regenerating clients.