The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.3.2 - 2024-12-09
- Remove derivative dependency and fix lints
1.3.0 - 2024-11-20
- Assert no attributes used on
self
andctx
- Error on wrong
sv::data
andsv::payload
usage - 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::ReplyCtx
with additional fields (#450) - Support omitting data parameter
- Add
instantiate
parameter to thesv::data
attribute - Add auto deserialization of reply data (#445)
- Add support for
sv::features
attribute. (#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
data
andpayload
attributes. - Better error message for
sv::features
attribute - Store MsgVariant in ReplyData
- Improve reply generation
- Remove
msg_type
method fromMsgVariant
- Store
MsgAttr
inMsgVariant
- Make
MsgAttr
a struct
1.2.1 - 2024-08-22
- Allow deprecated InterfaceApi in generated code
- Revert removal of
, custom
parameter support in entry_points macro - Revert removal of InterfaceApi
- Deprecate
, custom
parameter inentry_points
macro. Will be removed in2.0.0
. - Deprecate
InterfaceApi
. Will be removed in2.0.0
. Use generatedsv::InterfaceMessagesApi
instead.
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
InterfaceApi
in 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
From
implementation 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_case
functionality tosyn::Ident
- Remove
stripped_return_type
fromMsgVariant
- Remove duplicated
querier
related code fromMsgVariant
- Move
Multitest
relatedMsgVariant
logic to trait in multitest module - Unify MT proxy methods emit
1.0.1 - 2024-04-15
- Assert
new
method defined (#342)
- Add missing
map_err
onIntoResponse
result
- Improve error message in
sv::custom
attribute (#348) - Improve errors in
sv::messages
attribute (#345) - Improve
no instantiation
error 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
sv
module - Wrap impl types in
sv
module - Hide generated interface types in
sv
module - Move
messages
method out of EnumMsg - Support generics on every message type
- Support generic contract for simple contract
- Support generic contract for simple contract
- Support generics on
messages
attribute in maincontract
macro - 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
deps
to 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]
Remote
type 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::App
is using more generic multitest version ofApp
- Support for custom messages via
#[sv::custom]
attribute
- New
BoundQuerier
andRemote
types are generated. Their goal is to make querying other contracts more intuitive. module
attr forcontract
macro 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 forcontract
macro 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_points
macro - Custom errors can be passed through
error
attribute
- Changed the way multitest helpers are generated to avoid weird
use
statements 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
mt
feature added. Enabling it will:- generate
cw_multi_test::Contract
impl on a contract - generate Proxy to simplify writting tests
- generate
- Example of usage of new test framework
- Port of
cw20
contract onsylvia
framework - 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.