From 3eba9d4e0f80da5d2d12bc1c41e955e28de7f8b7 Mon Sep 17 00:00:00 2001 From: toml01 Date: Wed, 18 Oct 2023 19:05:01 +0300 Subject: [PATCH 1/5] Bumped cosmwasm-std version to v1.1.11 --- Cargo.toml | 4 ++-- packages/utils/Readme.md | 37 +++++++++++++++++++------------------ packages/utils/src/calls.rs | 14 ++++++++++++-- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f2d10f1..2e917b5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,7 +57,7 @@ members = ["packages/*"] [workspace.dependencies] schemars = { version = "0.8.11" } serde = { version = "1.0" } -cosmwasm-std = { package = "secret-cosmwasm-std", version = "1.1.10", features = [ +cosmwasm-std = { package = "secret-cosmwasm-std", version = "1.1.11", features = [ "random", ] } -cosmwasm-storage = { package = "secret-cosmwasm-storage", version = "1.1.10" } +cosmwasm-storage = { package = "secret-cosmwasm-storage", version = "1.1.11" } diff --git a/packages/utils/Readme.md b/packages/utils/Readme.md index b3af10d..22ebe11 100644 --- a/packages/utils/Readme.md +++ b/packages/utils/Readme.md @@ -13,7 +13,7 @@ elsewhere. There isn't an overarching theme for the items in this package. ## Calls module -This module contains traits used to call another contract. Do not forget to add the `use` statement for the traits you want. +This module contains traits used to call another contract. Do not forget to add the `use` statement for the traits you want. ```ignore use secret_toolkit::utils::{InitCallback, HandleCallback}; @@ -23,7 +23,7 @@ Also, don't forget to add the toolkit dependency to your Cargo.toml ### Instantiating another contract -If you want to instantiate another contract, you should first copy/paste the InitMsg of that contract. For example, if you wanted to create an instance of the counter contract at +If you want to instantiate another contract, you should first copy/paste the InitMsg of that contract. For example, if you wanted to create an instance of the counter contract at ```rust # use secret_toolkit_utils::InitCallback; @@ -40,7 +40,7 @@ impl InitCallback for CounterInitMsg { } ``` -You would copy/paste its InitMsg, and rename it so that it does not conflict with the InitMsg you have defined for your own contract. Then you would implement the `InitCallback` trait as above, setting the BLOCK_SIZE constant to the size of the blocks you want your instantiation message padded to. +You would copy/paste its InitMsg, and rename it so that it does not conflict with the InitMsg you have defined for your own contract. Then you would implement the `InitCallback` trait as above, setting the BLOCK_SIZE constant to the size of the blocks you want your instantiation message padded to. ```rust # use secret_toolkit_utils::InitCallback; @@ -60,10 +60,11 @@ You would copy/paste its InitMsg, and rename it so that it does not conflict wit # let response: StdResult; # let counter_init_msg = CounterInitMsg { - count: 100 + count: 100 }; let cosmos_msg = counter_init_msg.to_cosmos_msg( + None, "new_contract_label".to_string(), 123, "CODE_HASH_OF_CONTRACT_YOU_WANT_TO_INSTANTIATE".to_string(), @@ -74,11 +75,11 @@ response = Ok(Response::new().add_message(cosmos_msg)); # Ok::<(), StdError>(()) ``` -Next, in the init or handle function that will instantiate the other contract, you will create an instance of the CounterInitMsg, call its `to_cosmos_msg`, and place the resulting CosmosMsg in the `messages` Vec of the InitResponse or HandleResponse that your function is returning. In this example, we are pretending that the code id of the counter contract is 123. Also, in this example, you are not sending any SCRT with the InitMsg, but if you needed to send 1 SCRT, you would replace the None in the `to_cosmos_msg` call with `Some(Uint128(1000000))`. The amount sent is in uscrt. Any CosmosMsg placed in the `messages` Vec will be executed after your contract has finished its own processing. +Next, in the init or handle function that will instantiate the other contract, you will create an instance of the CounterInitMsg, call its `to_cosmos_msg`, and place the resulting CosmosMsg in the `messages` Vec of the InitResponse or HandleResponse that your function is returning. In this example, we are pretending that the code id of the counter contract is 123. Also, in this example, you are not sending any SCRT with the InitMsg, but if you needed to send 1 SCRT, you would replace the None in the `to_cosmos_msg` call with `Some(Uint128(1000000))`. The amount sent is in uscrt. Any CosmosMsg placed in the `messages` Vec will be executed after your contract has finished its own processing. ### Calling a handle function of another contract -You should first copy/paste the specific HandleMsg(s) you want to call. For example, if you wanted to reset the counter you instantiated above +You should first copy/paste the specific HandleMsg(s) you want to call. For example, if you wanted to reset the counter you instantiated above ```rust # use secret_toolkit_utils::HandleCallback; @@ -95,7 +96,7 @@ impl HandleCallback for CounterHandleMsg { } ``` -You would copy/paste the Reset variant of its HandleMsg enum, and rename the enum so that it does not conflict with the HandleMsg enum you have defined for your own contract. Then you would implement the `HandleCallback` trait as above, setting the BLOCK_SIZE constant to the size of the blocks you want your Reset message padded to. If you need to call multiple different Handle messages, even if they are to different contracts, you can include all the Handle messages as variants in the same enum (you can not have two variants with the same name within the same enum, though). +You would copy/paste the Reset variant of its HandleMsg enum, and rename the enum so that it does not conflict with the HandleMsg enum you have defined for your own contract. Then you would implement the `HandleCallback` trait as above, setting the BLOCK_SIZE constant to the size of the blocks you want your Reset message padded to. If you need to call multiple different Handle messages, even if they are to different contracts, you can include all the Handle messages as variants in the same enum (you can not have two variants with the same name within the same enum, though). ```rust # use secret_toolkit_utils::HandleCallback; @@ -107,7 +108,7 @@ You would copy/paste the Reset variant of its HandleMsg enum, and rename the enu # pub enum CounterHandleMsg { # Reset { count: i32 }, # } -# +# # impl HandleCallback for CounterHandleMsg { # const BLOCK_SIZE: usize = 256; # } @@ -128,11 +129,11 @@ response = Ok(Response::new().add_message(cosmos_msg)); # Ok::<(), StdError>(()) ``` -Next, in the init or handle function that will call the other contract, you will create an instance of the CounterHandleMsg::Reset variant, call its `to_cosmos_msg`, and place the resulting CosmosMsg in the `messages` Vec of the InitResponse or HandleResponse that your function is returning. In this example, you are not sending any SCRT with the Reset message, but if you needed to send 1 SCRT, you would replace the None in the `to_cosmos_msg` call with `Some(Uint128(1000000))`. The amount sent is in uscrt. Any CosmosMsg placed in the `messages` Vec will be executed after your contract has finished its own processing. +Next, in the init or handle function that will call the other contract, you will create an instance of the CounterHandleMsg::Reset variant, call its `to_cosmos_msg`, and place the resulting CosmosMsg in the `messages` Vec of the InitResponse or HandleResponse that your function is returning. In this example, you are not sending any SCRT with the Reset message, but if you needed to send 1 SCRT, you would replace the None in the `to_cosmos_msg` call with `Some(Uint128(1000000))`. The amount sent is in uscrt. Any CosmosMsg placed in the `messages` Vec will be executed after your contract has finished its own processing. ### Querying another contract -You should first copy/paste the specific QueryMsg(s) you want to call. For example, if you wanted to get the count of the counter you instantiated above +You should first copy/paste the specific QueryMsg(s) you want to call. For example, if you wanted to get the count of the counter you instantiated above ```rust # use secret_toolkit_utils::Query; @@ -150,7 +151,7 @@ impl Query for CounterQueryMsg { } ``` -You would copy/paste the GetCount variant of its QueryMsg enum, and rename the enum so that it does not conflict with the QueryMsg enum you have defined for your own contract. Then you would implement the `Query` trait as above, setting the BLOCK_SIZE constant to the size of the blocks you want your query message padded to. If you need to perform multiple different queries, even if they are to different contracts, you can include all the Query messages as variants in the same enum (you can not have two variants with the same name within the same enum, though). +You would copy/paste the GetCount variant of its QueryMsg enum, and rename the enum so that it does not conflict with the QueryMsg enum you have defined for your own contract. Then you would implement the `Query` trait as above, setting the BLOCK_SIZE constant to the size of the blocks you want your query message padded to. If you need to perform multiple different queries, even if they are to different contracts, you can include all the Query messages as variants in the same enum (you can not have two variants with the same name within the same enum, though). ```rust # use secret_toolkit_utils::Query; @@ -163,9 +164,9 @@ pub struct CountResponse { } ``` -Next, you will copy/paste the response of the query. If the other contract defines its response to the query with a struct, you are good to go. +Next, you will copy/paste the response of the query. If the other contract defines its response to the query with a struct, you are good to go. -If, however, the other contract returns an enum variant, one approach is to copy the fields of the variant and place them in a struct. Because an enum variant gets serialized with the name of the variant, you will then also want to create a wrapper struct whose only field has the name of the variant, and whose type is the struct you defined with the variant's fields. For example, if you wanted to do a token_info query of the [SNIP20 reference implementation](https://github.com/enigmampc/snip20-reference-impl), I would recommend using the SNIP20 toolkit function, but just for the sake of example, let's say you forgot that toolkit existed. +If, however, the other contract returns an enum variant, one approach is to copy the fields of the variant and place them in a struct. Because an enum variant gets serialized with the name of the variant, you will then also want to create a wrapper struct whose only field has the name of the variant, and whose type is the struct you defined with the variant's fields. For example, if you wanted to do a token_info query of the [SNIP20 reference implementation](https://github.com/enigmampc/snip20-reference-impl), I would recommend using the SNIP20 toolkit function, but just for the sake of example, let's say you forgot that toolkit existed. ```rust # use secret_toolkit_utils::Query; @@ -187,7 +188,7 @@ pub struct TokenInfoResponse { } ``` -You would copy the QueryAnswer::TokenInfo enum variant and create a TokenInfo struct with those fields. You should make all those fields public if you need to access them. Then you would create the TokenInfoResponse wrapper struct, which has only one field whose name is the name of the QueryAnswer variant in snake case (token_info). As a reminder, you only need to do this to properly deserialize the response if it was defined as an enum in the other contract. +You would copy the QueryAnswer::TokenInfo enum variant and create a TokenInfo struct with those fields. You should make all those fields public if you need to access them. Then you would create the TokenInfoResponse wrapper struct, which has only one field whose name is the name of the QueryAnswer variant in snake case (token_info). As a reminder, you only need to do this to properly deserialize the response if it was defined as an enum in the other contract. Now to perform the query @@ -202,7 +203,7 @@ Now to perform the query # pub enum CounterQueryMsg { # GetCount {}, # } -# +# # impl Query for CounterQueryMsg { # const BLOCK_SIZE: usize = 256; # } @@ -228,7 +229,7 @@ let count_response: StdResult = get_count.query( # Ok::<(), StdError>(()) ``` -You create an instance of the CounterQueryMsg::GetCount variant, and call its `query` function, returning its value to a variable of the response type. If you were doing a token_info query, you would write `let token_info_resp: TokenInfoResponse = ...`. You MUST use explicit type annotation here. +You create an instance of the CounterQueryMsg::GetCount variant, and call its `query` function, returning its value to a variable of the response type. If you were doing a token_info query, you would write `let token_info_resp: TokenInfoResponse = ...`. You MUST use explicit type annotation here. ## Feature Toggle @@ -274,7 +275,7 @@ pub fn instantiate( ], vec![info.sender], // Can put more than one pauser )?; - + Ok(Response::new()) } ``` @@ -327,7 +328,7 @@ fn redeem( amount: Option, ) -> StdResult { FeatureToggle::require_not_paused(deps.as_ref().storage, vec![Features::Redeem])?; - + // Continue with function's operation Ok(Response::new()) } diff --git a/packages/utils/src/calls.rs b/packages/utils/src/calls.rs index b4de5a3..fa21835 100755 --- a/packages/utils/src/calls.rs +++ b/packages/utils/src/calls.rs @@ -29,6 +29,7 @@ pub trait InitCallback: Serialize { /// * `funds_amount` - Optional Uint128 amount of native coin to send with instantiation message fn to_cosmos_msg( &self, + admin: Option, label: String, code_id: u64, code_hash: String, @@ -50,6 +51,7 @@ pub trait InitCallback: Serialize { }); } let init = WasmMsg::Instantiate { + admin, code_id, msg, code_hash, @@ -220,22 +222,30 @@ mod tests { #[test] fn test_init_callback_implementation_works() -> StdResult<()> { + let adm = "addr1".to_string(); let lbl = "testlabel".to_string(); let id = 17u64; let hash = "asdf".to_string(); let amount = Uint128::new(1234); - let cosmos_message: CosmosMsg = - FooInit { f1: 1, f2: 2 }.to_cosmos_msg(lbl.clone(), id, hash.clone(), Some(amount))?; + let cosmos_message: CosmosMsg = FooInit { f1: 1, f2: 2 }.to_cosmos_msg( + Some(adm.clone()), + lbl.clone(), + id, + hash.clone(), + Some(amount), + )?; match cosmos_message { CosmosMsg::Wasm(WasmMsg::Instantiate { + admin, code_id, msg, code_hash, funds, label, }) => { + assert_eq!(admin, Some(adm)); assert_eq!(code_id, id); let mut expected_msg = r#"{"f1":1,"f2":2}"#.as_bytes().to_vec(); space_pad(&mut expected_msg, 256); From fea365c52770ff97bb175b8ba11a0455a4d6c874 Mon Sep 17 00:00:00 2001 From: toml01 Date: Wed, 18 Oct 2023 19:12:42 +0300 Subject: [PATCH 2/5] Updated Releases.md for a new version --- Releases.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Releases.md b/Releases.md index e88c8b8..2d44302 100644 --- a/Releases.md +++ b/Releases.md @@ -2,6 +2,23 @@ ## Unreleased +## v0.10.0 + +### Features + +- Bumped `cosmwasm-std` version to `v1.1.11` ([#93]). + +### Breaking + +- Added optional `admin` field to `utils::InitCallback::to_cosmos_msg` ([#93]). + +### Bug fixes + +- Only padding encrypted attributes in `utils::pad_handle_result` ([#92]). + +[#92]: https://github.com/scrtlabs/secret-toolkit/pull/92 +[#93]: https://github.com/scrtlabs/secret-toolkit/pull/93 + ## v0.9.0 ### Features From b39cad7cc6593e6aecd7b061a241419334bb42cd Mon Sep 17 00:00:00 2001 From: toml01 Date: Wed, 18 Oct 2023 19:14:53 +0300 Subject: [PATCH 3/5] Bumped versions to 0.10.0 --- Cargo.toml | 2 +- packages/crypto/Cargo.toml | 2 +- packages/crypto/Readme.md | 4 ++-- packages/incubator/Cargo.toml | 2 +- packages/permit/Cargo.toml | 4 ++-- packages/serialization/Cargo.toml | 2 +- packages/snip20/Cargo.toml | 2 +- packages/snip721/Cargo.toml | 2 +- packages/storage/Cargo.toml | 2 +- packages/utils/Cargo.toml | 2 +- packages/viewing_key/Cargo.toml | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2e917b5..62731ff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "LICENSE" diff --git a/packages/crypto/Cargo.toml b/packages/crypto/Cargo.toml index eece083..4ac4312 100644 --- a/packages/crypto/Cargo.toml +++ b/packages/crypto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-crypto" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" diff --git a/packages/crypto/Readme.md b/packages/crypto/Readme.md index 96cc52a..bdf16e2 100644 --- a/packages/crypto/Readme.md +++ b/packages/crypto/Readme.md @@ -11,8 +11,8 @@ Add the following to your `cargo.toml` file: ```toml [dependencies] -secret-toolkit = { version = "0.9.0", features = ["crypto"] } -secret-toolkit-crypto = { version = "0.9.0", features = ["hash", "rand", "ecc-secp256k1"] } +secret-toolkit = { version = "0.10.0", features = ["crypto"] } +secret-toolkit-crypto = { version = "0.10.0", features = ["hash", "rand", "ecc-secp256k1"] } ``` ## Example usage diff --git a/packages/incubator/Cargo.toml b/packages/incubator/Cargo.toml index bbe19f9..5a145f4 100644 --- a/packages/incubator/Cargo.toml +++ b/packages/incubator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-incubator" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" diff --git a/packages/permit/Cargo.toml b/packages/permit/Cargo.toml index 61801ce..daa66fe 100644 --- a/packages/permit/Cargo.toml +++ b/packages/permit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-permit" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" @@ -20,6 +20,6 @@ ripemd = { version = "0.1.3", default-features = false } schemars = { workspace = true } bech32 = "0.9.1" remain = "0.2.8" -secret-toolkit-crypto = { version = "0.9.0", path = "../crypto", features = [ +secret-toolkit-crypto = { version = "0.10.0", path = "../crypto", features = [ "hash", ] } diff --git a/packages/serialization/Cargo.toml b/packages/serialization/Cargo.toml index 212a31e..10eb64d 100644 --- a/packages/serialization/Cargo.toml +++ b/packages/serialization/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-serialization" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" diff --git a/packages/snip20/Cargo.toml b/packages/snip20/Cargo.toml index abddceb..582e522 100644 --- a/packages/snip20/Cargo.toml +++ b/packages/snip20/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-snip20" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" diff --git a/packages/snip721/Cargo.toml b/packages/snip721/Cargo.toml index 273e035..37e76e2 100644 --- a/packages/snip721/Cargo.toml +++ b/packages/snip721/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-snip721" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" diff --git a/packages/storage/Cargo.toml b/packages/storage/Cargo.toml index 58928d3..2482a0a 100644 --- a/packages/storage/Cargo.toml +++ b/packages/storage/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-storage" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" diff --git a/packages/utils/Cargo.toml b/packages/utils/Cargo.toml index d6a792e..f14d60c 100644 --- a/packages/utils/Cargo.toml +++ b/packages/utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-utils" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" diff --git a/packages/viewing_key/Cargo.toml b/packages/viewing_key/Cargo.toml index 5e1c877..23c6fd7 100644 --- a/packages/viewing_key/Cargo.toml +++ b/packages/viewing_key/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "secret-toolkit-viewing-key" -version = "0.9.0" +version = "0.10.0" edition = "2021" authors = ["SCRT Labs "] license-file = "../../LICENSE" From af1a76f59f28cf6a6c7fd91fb2f74b928c18e07f Mon Sep 17 00:00:00 2001 From: toml01 Date: Wed, 18 Oct 2023 19:18:01 +0300 Subject: [PATCH 4/5] Bump more versions I missed --- Cargo.toml | 18 +++++++++--------- packages/incubator/Cargo.toml | 2 +- packages/snip20/Cargo.toml | 2 +- packages/snip721/Cargo.toml | 2 +- packages/storage/Cargo.toml | 2 +- packages/viewing_key/Cargo.toml | 4 ++-- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 62731ff..bb94dc0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,15 +36,15 @@ utils = ["secret-toolkit-utils"] viewing-key = ["secret-toolkit-viewing-key"] [dependencies] -secret-toolkit-crypto = { version = "0.9", path = "packages/crypto", optional = true } -secret-toolkit-incubator = { version = "0.9", path = "packages/incubator", optional = true } -secret-toolkit-permit = { version = "0.9", path = "packages/permit", optional = true } -secret-toolkit-serialization = { version = "0.9", path = "packages/serialization", optional = true } -secret-toolkit-snip20 = { version = "0.9", path = "packages/snip20", optional = true } -secret-toolkit-snip721 = { version = "0.9", path = "packages/snip721", optional = true } -secret-toolkit-storage = { version = "0.9", path = "packages/storage", optional = true } -secret-toolkit-utils = { version = "0.9", path = "packages/utils", optional = true } -secret-toolkit-viewing-key = { version = "0.9", path = "packages/viewing_key", optional = true } +secret-toolkit-crypto = { version = "0.10.0", path = "packages/crypto", optional = true } +secret-toolkit-incubator = { version = "0.10.0", path = "packages/incubator", optional = true } +secret-toolkit-permit = { version = "0.10.0", path = "packages/permit", optional = true } +secret-toolkit-serialization = { version = "0.10.0", path = "packages/serialization", optional = true } +secret-toolkit-snip20 = { version = "0.10.0", path = "packages/snip20", optional = true } +secret-toolkit-snip721 = { version = "0.10.0", path = "packages/snip721", optional = true } +secret-toolkit-storage = { version = "0.10.0", path = "packages/storage", optional = true } +secret-toolkit-utils = { version = "0.10.0", path = "packages/utils", optional = true } +secret-toolkit-viewing-key = { version = "0.10.0", path = "packages/viewing_key", optional = true } [workspace] diff --git a/packages/incubator/Cargo.toml b/packages/incubator/Cargo.toml index 5a145f4..cb1986e 100644 --- a/packages/incubator/Cargo.toml +++ b/packages/incubator/Cargo.toml @@ -16,7 +16,7 @@ all-features = true [dependencies] serde = { workspace = true, optional = true } cosmwasm-std = { workspace = true, optional = true } -secret-toolkit-serialization = { version = "0.9", path = "../serialization", optional = true } +secret-toolkit-serialization = { version = "0.10.0", path = "../serialization", optional = true } [features] generational-store = ["secret-toolkit-serialization", "serde", "cosmwasm-std"] diff --git a/packages/snip20/Cargo.toml b/packages/snip20/Cargo.toml index 582e522..94c9b53 100644 --- a/packages/snip20/Cargo.toml +++ b/packages/snip20/Cargo.toml @@ -17,4 +17,4 @@ all-features = true serde = { workspace = true } schemars = { workspace = true } cosmwasm-std = { workspace = true } -secret-toolkit-utils = { version = "0.9", path = "../utils" } +secret-toolkit-utils = { version = "0.10.0", path = "../utils" } diff --git a/packages/snip721/Cargo.toml b/packages/snip721/Cargo.toml index 37e76e2..2ad9dca 100644 --- a/packages/snip721/Cargo.toml +++ b/packages/snip721/Cargo.toml @@ -17,4 +17,4 @@ all-features = true serde = { workspace = true } schemars = { workspace = true } cosmwasm-std = { workspace = true } -secret-toolkit-utils = { version = "0.9", path = "../utils" } +secret-toolkit-utils = { version = "0.10.0", path = "../utils" } diff --git a/packages/storage/Cargo.toml b/packages/storage/Cargo.toml index 2482a0a..fc9561b 100644 --- a/packages/storage/Cargo.toml +++ b/packages/storage/Cargo.toml @@ -17,4 +17,4 @@ all-features = true serde = { workspace = true } cosmwasm-std = { workspace = true } cosmwasm-storage = { workspace = true } -secret-toolkit-serialization = { version = "0.9", path = "../serialization" } +secret-toolkit-serialization = { version = "0.10.0", path = "../serialization" } diff --git a/packages/viewing_key/Cargo.toml b/packages/viewing_key/Cargo.toml index 23c6fd7..c7434ab 100644 --- a/packages/viewing_key/Cargo.toml +++ b/packages/viewing_key/Cargo.toml @@ -20,8 +20,8 @@ base64 = "0.21.0" subtle = { version = "2.2.3", default-features = false } cosmwasm-std = { workspace = true } cosmwasm-storage = { workspace = true } -secret-toolkit-crypto = { version = "0.9", path = "../crypto", features = [ +secret-toolkit-crypto = { version = "0.10.0", path = "../crypto", features = [ "hash", "rand", ] } -secret-toolkit-utils = { version = "0.9", path = "../utils" } +secret-toolkit-utils = { version = "0.10.0", path = "../utils" } From 1fdd258d369ba938a92f11ee190584405ee777e4 Mon Sep 17 00:00:00 2001 From: toml01 Date: Wed, 18 Oct 2023 19:25:23 +0300 Subject: [PATCH 5/5] Update Releases.md --- Releases.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Releases.md b/Releases.md index 2d44302..80f3a78 100644 --- a/Releases.md +++ b/Releases.md @@ -15,7 +15,9 @@ ### Bug fixes - Only padding encrypted attributes in `utils::pad_handle_result` ([#92]). +- Support `backtraces` feature for `KeyMap` and `KeySet` ([#90]). +[#90]: https://github.com/scrtlabs/secret-toolkit/pull/90 [#92]: https://github.com/scrtlabs/secret-toolkit/pull/92 [#93]: https://github.com/scrtlabs/secret-toolkit/pull/93