The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.0.0-rc.1 - 2025-06-09
- [breaking] Remove
repliesfromsv::featurespre 2.0.0 release
- [breaking] Remove deprecated InterfaceApi pre 2.0.0 release
- Replace explicit serde-json-wasm with cw_std::to_json_string
1.3.6 - 2025-05-20
- Update Multitest version
1.3.5 - 2025-03-28
- Enabling Sylvia features no longer enables the MultiTest dependency (#478)
1.3.4 - 2025-03-06
- Make staking an optional feature (#476)
- update Cargo.toml dependencies
1.3.2 - 2024-12-09
- Remove derivative dependency and fix lints
1.3.0 - 2024-11-20
- Assert no attributes used on
selfandctx - Error on wrong
sv::dataandsv::payloadusage - Return transaction id and block height if deserialization failed
- Assert no redundant parameters in reply method
- Update MultiTest to 2.2.0
- Revert adding Error to ContractApi
- Create ctx module for context types
- Add temporary
sylvia::replies::ReplyCtxwith additional fields (#450) - Support omitting data parameter
- Add
instantiateparameter to thesv::dataattribute - Add auto deserialization of reply data (#445)
- Add support for
sv::featuresattribute. (#446) - Pass payload while building SubMsg (#441)
- Add option to deserialize payload (#439)
- Impl SubMsg trait on CosmosMsg
- Add InstantiateBuilder and SubMsg trait
- Emit new reply dispatch (#429)
- Generate unique reply_ids (#427)
- Parse additional parameters for sv::msg(reply) (#426)
- Make serde dep user side obsolete
- Make cosmwasm_schema deps obsolete
- Make user side cosmwasm-std dep obsolete
- Add description of the
dataandpayloadattributes. - Better error message for
sv::featuresattribute - Store MsgVariant in ReplyData
- Improve reply generation
- Remove
msg_typemethod fromMsgVariant - Store
MsgAttrinMsgVariant - Make
MsgAttra struct
1.2.1 - 2024-08-22
- Allow deprecated InterfaceApi in generated code
- Revert removal of
, customparameter support in entry_points macro - Revert removal of InterfaceApi
- Deprecate
, customparameter inentry_pointsmacro. Will be removed in2.0.0. - Deprecate
InterfaceApi. Will be removed in2.0.0. Use generatedsv::InterfaceMessagesApiinstead.
1.2.0 - 2024-08-20
- Emit error if contract macro is above entry_points
- Remove support for
, custom(msg=.. ,query=..)in entry_points - Add CustomMsg and CustomQuery to ContractApi
- Pass attribute to struct fields
- (sylvia-derive) Document inner types
- [breaking] Remove
InterfaceApiin favor ofInterfaceMessagesApi(#413) - Fix duplicated instantiation error
- Refactor struct message generation
- Generic cw1-whitelist example (#404)
- Create fold module
- Setup new directory structure
- Update to cosmwasm-std 2.1.1
- Cleanup in entry_points macro
- Silence clippy warn about lack of Default (#396)
1.1.0 - 2024-07-12
Fromimplementation for contract messages of interface messages (#391)- Attributes forwarding to message enums and fields (#388)
- Executors (#386)
- No ref needed for 'dyn Interface' type in Remote and BoundQuerier (#382)
- Remove types forwarding to interface in sv::messages (#361)
- Update documentation and refactoring (#393)
- Add trybuild check for two instantiate methods (#392)
- Update dependecies
- Update proc-macro-crate deps
1.0.2 - 2024-04-24
- Update
cw_multi_test - Split big chunks of code in
sylvia_derive::multitest - Provide
to_casefunctionality tosyn::Ident - Remove
stripped_return_typefromMsgVariant - Remove duplicated
querierrelated code fromMsgVariant - Move
MultitestrelatedMsgVariantlogic to trait in multitest module - Unify MT proxy methods emit
1.0.1 - 2024-04-15
- Assert
newmethod defined (#342)
- Add missing
map_erronIntoResponseresult
- Improve error message in
sv::customattribute (#348) - Improve errors in
sv::messagesattribute (#345) - Improve
no instantiationerror message
1.0.0 - 2024-03-27
- Update deps to 2.0.0 (#308)
0.10.0 - 2024-03-26
- Implement Querier on App (#154)
- Change multitest modules names to unified
mt(#324) - Handle missing explicite custom types (#323)
- BoundQuerier improve (#321)
- Remove
#[contract(module=...)]support (#320) #[contract(module=...)]not needed in mt (#319)#[contract(module=...)]and#[messages]not needed for trait impl (#318)- Remove custom in impl trait (#314)
- Error on missing module for
impl Interface for Contract(#311) - Add support for
#[sv::]attributes for all sylvia attribtues. (#310) - Generate sudo multitest helpers
- Generate sudo entry point
- Generate SudoMsg in contract
- Generate SudoMsg in interface
- Forward generics through associated types
- ExecC and QueryC used in place of CustomMsgT
- Remove mt trait_utils generation
- Impl interfaces with associated types on generic contract
- Impl interface with associated types on non generic contract
- Interfaces generate with associated_types
- Allow specifying concrete customs in entry_points
- Support duplicated exec generic params
- Forward generics to custom_generic interface
- Allow single concrete type to be passed in place of multiple
- Forward generics to the interface
- Make as Variant optional for #[messages(...)] attribtue
- Update README (#331)
- Enable all features in docs.rs and add multitest docs comments
- Enable code examples in macros doc tests
- Remove tarpaulin exclusions (#312)
- Add sudo to custom example
- Update README.md (#300)
- Change function signature
- Update docs (#299)
- Internal renaming
- Create ImplMtHelpers
- Impl non-generic non-custom on forwarding contract
- Migrate to syn 2.0
0.9.2 - 2023-11-29
- Allow querying code_info from CodeId and App
- Add cosmwasm_1_2 feature flag
- Allow specifying salt for contract address
0.9.1 - 2023-11-17
- Update deps
0.9.0 - 2023-11-13
- Support generic types in entry points
- Impl ContractApi extension trait
- Wrap contract types in
svmodule - Wrap impl types in
svmodule - Hide generated interface types in
svmodule - Move
messagesmethod out of EnumMsg - Support generics on every message type
- Support generic contract for simple contract
- Support generic contract for simple contract
- Support generics on
messagesattribute in maincontractmacro - Support generic interface implemented on contract
- Emit InterfaceTypes
- Check interfaces return type for used generics
- Add support for generics in interface
- [breaking] Expect
,in:custom(msg, query)
0.8.1 - 2023-09-18
- Generate migrate entry point if message defined on contract
0.8.0 - 2023-09-05
- Cast
depsto empty - Support QueryC associated type on interface
- Support custom queries on contracts
0.7.1 - 2023-08-14
- Prefix interface proxy with module as Path
0.7.0 - 2023-08-01
- Override generated entry_points
- Override entry_points in multitest helpers
- [breaking]
Remotetype implements all relevant traits so it can be stored in#[cw_serde]types
- Fix dependencies in sylvia 0.6.0 (0.6.0 will be yanked)
- InstantiateCtx and ReplyCtx are no longer type aliases (breaking)
multitest::Appis using more generic multitest version ofApp- Support for custom messages via
#[sv::custom]attribute
- New
BoundQuerierandRemotetypes are generated. Their goal is to make querying other contracts more intuitive. moduleattr forcontractmacro no longer wraps generated code in scope. As from now it will be used to provide path to contract implementation.- Removed requirement for
const fn new()method forcontractmacro call.fn new()method is still required.
- Added support of
#[sv::msg(reply)]defining handler for reply messages, currently only in the form offn reply(&self, _ctx: ReplyCtx, _msg: Reply) -> Result<Response, Err> - Added generation of reply entrypoint forwarding to the
#[sv::msg(reply)]handler - Added generation of reply implementation forwarding to
#[sv::msg(reply)]handler in multitest helpers
- Lint fix
- Introduced new
entry_pointsmacro - Custom errors can be passed through
errorattribute
- Changed the way multitest helpers are generated to avoid weird
usestatements in code. - Introduced Context types in place of tuples
- Forwarding attributes on message fields
- Example usage of generated multitest helpers
- Slight improvement the invalid message received error
- Interfaces moved to separate directory to avoid errors on workspace optimizer
mtfeature added. Enabling it will:- generate
cw_multi_test::Contractimpl on a contract - generate Proxy to simplify writting tests
- generate
- Example of usage of new test framework
- Port of
cw20contract onsylviaframework - Default error type on contract is now
cosmwasm_std::StdError - Reexported
schemars
- Fix: Generate Migrate as struct
- Cw20 implementation in sylvia
- Removed
#[sv::msg(reply)]
This is the first documented and supported implementation. It provides macro to generate messsages for interfaces and contracts.
Some main points:
- Support for instantiate, execute, query, migrate and reply messages.
- Ability to implement multiple interfaces on contract.
- Mechanism of detecting overlapping of messages.
- Dispatch mechanism simplyfing entry points creation.
- Support for schema generation.