diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2c305087..cf5ce8a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,7 +51,7 @@ jobs: - name: Install Rust uses: actions-rs/toolchain@v1 with: - toolchain: 1.74.0 + toolchain: 1.75.0 target: wasm32-unknown-unknown profile: minimal override: true @@ -144,7 +144,7 @@ jobs: name: Code coverage runs-on: ubuntu-latest container: - image: xd009642/tarpaulin:0.27.1 + image: xd009642/tarpaulin:0.31.1 options: --security-opt seccomp=unconfined steps: - name: Checkout sources diff --git a/CHANGELOG.md b/CHANGELOG.md index ad4588c0..07117b0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,35 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.2.0](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v1.1.0...sylvia-derive-v1.2.0) - 2024-08-20 + +### Added + +- Emit error if contract macro is above entry_points +- Remove support for `, custom(msg=.. ,query=..)` in entry_points +- Add CustomMsg and CustomQuery to ContractApi + +### Fixed + +- Pass attribute to struct fields + +### Other + +- *(sylvia-derive)* Document inner types +- [**breaking**] Remove `InterfaceApi` in favor of `InterfaceMessagesApi` ([#413](https://github.com/CosmWasm/sylvia/pull/413)) +- Fix duplicated instantiation error +- Refactor struct message generation +- Generic cw1-whitelist example ([#404](https://github.com/CosmWasm/sylvia/pull/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](https://github.com/CosmWasm/sylvia/pull/396)) + ## [1.1.0](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v1.0.2...sylvia-derive-v1.1.0) - 2024-07-12 ### Added + - `From` implementation for contract messages of interface messages ([#391](https://github.com/CosmWasm/sylvia/pull/391)) - Attributes forwarding to message enums and fields ([#388](https://github.com/CosmWasm/sylvia/pull/388)) - Executors ([#386](https://github.com/CosmWasm/sylvia/pull/386)) @@ -14,6 +40,7 @@ and this project adheres to - Remove types forwarding to interface in sv::messages ([#361](https://github.com/CosmWasm/sylvia/pull/361)) ### Other + - Update documentation and refactoring ([#393](https://github.com/CosmWasm/sylvia/pull/393)) - Add trybuild check for two instantiate methods ([#392](https://github.com/CosmWasm/sylvia/pull/392)) - Update dependecies @@ -22,6 +49,7 @@ and this project adheres to ## [1.0.2](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v1.0.1...sylvia-derive-v1.0.2) - 2024-04-24 ### Other + - Update `cw_multi_test` - Split big chunks of code in `sylvia_derive::multitest` - Provide `to_case` functionality to `syn::Ident` @@ -33,12 +61,15 @@ and this project adheres to ## [1.0.1](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v1.0.0...sylvia-derive-v1.0.1) - 2024-04-15 ### Added + - Assert `new` method defined ([#342](https://github.com/CosmWasm/sylvia/pull/342)) ### Fixed + - Add missing `map_err` on `IntoResponse` result ### Other + - Improve error message in `sv::custom` attribute ([#348](https://github.com/CosmWasm/sylvia/pull/348)) - Improve errors in `sv::messages` attribute ([#345](https://github.com/CosmWasm/sylvia/pull/345)) - Improve `no instantiation` error message @@ -46,11 +77,13 @@ and this project adheres to ## [1.0.0](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.10.1...sylvia-derive-v1.0.0) - 2024-03-27 ### Added + - Update deps to 2.0.0 ([#308](https://github.com/CosmWasm/sylvia/pull/308)) ## [0.10.0](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.9.3...sylvia-derive-v0.10.0) - 2024-03-26 ### Added + - Implement Querier on App ([#154](https://github.com/CosmWasm/sylvia/pull/154)) - Change multitest modules names to unified `mt` ([#324](https://github.com/CosmWasm/sylvia/pull/324)) - Handle missing explicite custom types ([#323](https://github.com/CosmWasm/sylvia/pull/323)) @@ -79,6 +112,7 @@ and this project adheres to - Make as Variant optional for #[messages(...)] attribtue ### Other + - Update README ([#331](https://github.com/CosmWasm/sylvia/pull/331)) - Enable all features in docs.rs and add multitest docs comments - Enable code examples in macros doc tests @@ -95,6 +129,7 @@ and this project adheres to ## [0.9.2](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.9.1...sylvia-derive-v0.9.2) - 2023-11-29 ### Added + - Allow querying code_info from CodeId and App - Add cosmwasm_1_2 feature flag - Allow specifying salt for contract address @@ -102,11 +137,13 @@ and this project adheres to ## [0.9.1](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.9.0...sylvia-derive-v0.9.1) - 2023-11-17 ### Other + - Update deps ## [0.9.0](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.8.1...sylvia-derive-v0.9.0) - 2023-11-13 ### Added + - Support generic types in entry points - Impl ContractApi extension trait - Wrap contract types in `sv` module @@ -123,16 +160,19 @@ and this project adheres to - Add support for generics in interface ### Fixed + - [**breaking**] Expect `,` in `:custom(msg, query)` ## [0.8.1](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.8.0...sylvia-derive-v0.8.1) - 2023-09-18 ### Added + - Generate migrate entry point if message defined on contract ## [0.8.0](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.7.1...sylvia-derive-v0.8.0) - 2023-09-05 ### Added + - Cast `deps` to empty - Support QueryC associated type on interface - Support custom queries on contracts @@ -140,15 +180,18 @@ and this project adheres to ## [0.7.1](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.7.0...sylvia-derive-v0.7.1) - 2023-08-14 ### Fixed + - Prefix interface proxy with module as Path ## [0.7.0](https://github.com/CosmWasm/sylvia/compare/sylvia-derive-v0.6.1...sylvia-derive-v0.7.0) - 2023-08-01 ### Added + - Override generated entry_points - Override entry_points in multitest helpers ### Fixed + - [**breaking**] `Remote` type implements all relevant traits so it can be stored in `#[cw_serde]` types ## [0.6.1] - 2023-06-28 diff --git a/Cargo.lock b/Cargo.lock index 924cde87..928c345b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -194,9 +194,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca2be1d5c43812bae364ee3f30b3afcb7877cf59f4aeb94c66f313a41d2fac9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cfg-if" @@ -227,15 +227,15 @@ dependencies = [ [[package]] name = "cosmwasm-core" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367fc87c43759098a476ef90f915aadc66c300480ad9c155b512081fbf327bc1" +checksum = "d905990ef3afb5753bb709dc7de88e9e370aa32bcc2f31731d4b533b63e82490" [[package]] name = "cosmwasm-crypto" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7c41f3e371ea457d3b98bb592c38858b46efcf614e0e988ec2ebbdb973954f" +checksum = "5b2a7bd9c1dd9a377a4dc0f4ad97d24b03c33798cd5a6d7ceb8869b41c5d2f2d" dependencies = [ "ark-bls12-381", "ark-ec", @@ -256,20 +256,20 @@ dependencies = [ [[package]] name = "cosmwasm-derive" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c10510e8eb66cf7e109741b1e2c76ad18f30b5a1daa064f5f7115c1f733aaea0" +checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "cosmwasm-schema" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79879b6b7ef6a331b05030ce91ce46a7c4b0baf1ed6b382cce2e9a168109380" +checksum = "4bc0d4d85e83438ab9a0fea9348446f7268bc016aacfebce37e998559f151294" dependencies = [ "cosmwasm-schema-derive", "schemars", @@ -280,20 +280,20 @@ dependencies = [ [[package]] name = "cosmwasm-schema-derive" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b53e33c0e97170c7ac9cb440f4bc599a07f9cbb9b7e87916cca37b1239d57b" +checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "cosmwasm-std" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92011c39570876f340d5f9defa68bf92797b1c44421f1b9ea9b04a31d6defd33" +checksum = "51dec99a2e478715c0a4277f0dbeadbb8466500eb7dec873d0924edd086e77f1" dependencies = [ "base64", "bech32", @@ -314,9 +314,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -392,7 +392,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -462,22 +462,22 @@ dependencies = [ [[package]] name = "derive_more" -version = "1.0.0-beta.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7abbfc297053be59290e3152f8cbcd52c8642e0728b69ee187d991d4c1af08d" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ "derive_more-impl", ] [[package]] name = "derive_more-impl" -version = "1.0.0-beta.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bba3e9872d7c58ce7ef0fcf1844fcc3e23ef2a58377b50df35dd98e42a5726e" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", "unicode-xid", ] @@ -657,9 +657,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -739,9 +739,9 @@ checksum = "4e28ab1dc35e09d60c2b8c90d12a9a8d9666c876c10a3739a3196db0103b6043" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "memchr" @@ -803,12 +803,11 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "ppv-lite86" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2288c0e17cc8d342c712bb43a257a80ebffce59cdb33d5000d8348f3ec02528b" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ "zerocopy", - "zerocopy-derive", ] [[package]] @@ -882,7 +881,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -989,7 +988,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1013,9 +1012,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] @@ -1040,13 +1039,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1057,14 +1056,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "serde_json" -version = "1.0.121" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ "itoa", "memchr", @@ -1116,7 +1115,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "sylvia" -version = "1.1.0" +version = "1.2.0" dependencies = [ "anyhow", "cosmwasm-schema", @@ -1137,7 +1136,7 @@ dependencies = [ [[package]] name = "sylvia-derive" -version = "1.1.0" +version = "1.2.0" dependencies = [ "convert_case", "cosmwasm-schema", @@ -1153,7 +1152,7 @@ dependencies = [ "serde", "sylvia", "sylvia-runtime-macros", - "syn 2.0.72", + "syn 2.0.75", "thiserror", ] @@ -1181,9 +1180,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" dependencies = [ "proc-macro2", "quote", @@ -1216,19 +1215,19 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] name = "toml" -version = "0.8.17" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a44eede9b727419af8095cb2d72fab15487a541f54647ad4414b34096ee4631" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.18", + "toml_edit 0.22.20", ] [[package]] @@ -1253,22 +1252,22 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.18" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1490595c74d930da779e944f5ba2ecdf538af67df1a9848cbd156af43c1b7cf0" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.16", + "winnow 0.6.18", ] [[package]] name = "trybuild" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55265878356bdd85c9baa15859c87de93b2bf1f33acf752040a561e4a228f62" +checksum = "207aa50d36c4be8d8c6ea829478be44a372c6a77669937bb39c698e52f1491e8" dependencies = [ "glob", "serde", @@ -1313,9 +1312,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" [[package]] name = "version_check" @@ -1331,18 +1330,18 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ "windows-sys", ] [[package]] name = "windows-sys" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets", ] @@ -1422,9 +1421,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.16" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b480ae9340fc261e6be3e95a1ba86d54ae3f9171132a73ce8d4bbaf68339507c" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] @@ -1447,7 +1446,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] [[package]] @@ -1467,5 +1466,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.75", ] diff --git a/Cargo.toml b/Cargo.toml index 6ec5569f..44d81ea8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,10 +4,10 @@ exclude = ["examples/*"] resolver = "2" [workspace.package] -version = "1.1.0" +version = "1.2.0" [workspace.dependencies] -sylvia-derive = { version = "1.1.0", path = "sylvia-derive" } +sylvia-derive = { version = "1.2.0", path = "sylvia-derive" } anyhow = "1.0.86" cosmwasm-schema = "2.1.1" cosmwasm-std = "2.1.1" diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 43447b68..b5c00ff3 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -1343,7 +1343,7 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "sylvia" -version = "1.1.0" +version = "1.2.0" dependencies = [ "anyhow", "cosmwasm-schema", @@ -1360,7 +1360,7 @@ dependencies = [ [[package]] name = "sylvia-derive" -version = "1.1.0" +version = "1.2.0" dependencies = [ "convert_case", "itertools 0.13.0",