diff --git a/Cargo.lock b/Cargo.lock index 9880fbc..4c110ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,39 +2,190 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest", + "itertools", + "num-bigint", + "num-traits", + "paste", + "rayon", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.98", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.98", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.98", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", + "rayon", +] + [[package]] name = "assert_matches" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + [[package]] name = "base16ct" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" -version = "0.13.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] -name = "base64ct" -version = "1.5.1" +name = "bech32" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdca834647821e0b13d9539a8634eb62d3501b6b6c2cec1722786ee6671b851" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" [[package]] name = "block-buffer" -version = "0.9.0" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] +[[package]] +name = "bnum" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" + [[package]] name = "byteorder" version = "1.4.3" @@ -43,7 +194,7 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "callback-capturer" -version = "0.2.0" +version = "0.3.0" dependencies = [ "assert_matches", "cosmwasm-schema", @@ -67,114 +218,185 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "const-oid" -version = "0.7.1" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "cosmwasm-core" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d905990ef3afb5753bb709dc7de88e9e370aa32bcc2f31731d4b533b63e82490" [[package]] name = "cosmwasm-crypto" -version = "1.0.0" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb0afef2325df81aadbf9be1233f522ed8f6e91df870c764bc44cca2b1415bd" +checksum = "5b2a7bd9c1dd9a377a4dc0f4ad97d24b03c33798cd5a6d7ceb8869b41c5d2f2d" dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "cosmwasm-core", "digest", + "ecdsa", "ed25519-zebra", "k256", - "rand_core 0.6.3", + "num-traits", + "p256", + "rand_core", + "rayon", + "sha2", "thiserror", ] [[package]] name = "cosmwasm-derive" -version = "1.0.0" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b36e527620a2a3e00e46b6e731ab6c9b68d11069c986f7d7be8eba79ef081a4" +checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424" dependencies = [ - "syn", + "proc-macro2", + "quote", + "syn 2.0.74", ] [[package]] name = "cosmwasm-schema" -version = "1.0.0" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772e80bbad231a47a2068812b723a1ff81dd4a0d56c9391ac748177bea3a61da" +checksum = "4bc0d4d85e83438ab9a0fea9348446f7268bc016aacfebce37e998559f151294" dependencies = [ + "cosmwasm-schema-derive", "schemars", + "serde", "serde_json", + "thiserror", +] + +[[package]] +name = "cosmwasm-schema-derive" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", ] [[package]] name = "cosmwasm-std" -version = "1.0.0" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875994993c2082a6fcd406937bf0fca21c349e4a624f3810253a14fa83a3a195" +checksum = "51dec99a2e478715c0a4277f0dbeadbb8466500eb7dec873d0924edd086e77f1" dependencies = [ "base64", + "bech32", + "bnum", + "cosmwasm-core", "cosmwasm-crypto", "cosmwasm-derive", - "forward_ref", + "derive_more", + "hex", + "rand_core", "schemars", "serde", "serde-json-wasm", + "sha2", + "static_assertions", "thiserror", - "uint", ] [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] [[package]] -name = "crunchy" -version = "0.2.2" +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crypto-bigint" -version = "0.3.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core 0.6.3", + "rand_core", "subtle", "zeroize", ] [[package]] -name = "crypto-mac" -version = "0.11.1" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "subtle", + "typenum", ] [[package]] name = "curve25519-dalek" -version = "3.2.1" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "byteorder", + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", "digest", - "rand_core 0.5.1", + "fiat-crypto", + "rustc_version", "subtle", "zeroize", ] +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", +] + [[package]] name = "cw-storage-plus" -version = "0.14.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c8b264257c4f44c49b7ce09377af63aa040768ecd3fd7bdd2d48a09323a1e90" +checksum = "f13360e9007f51998d42b1bc6b7fa0141f74feae61ed5fd1e5b0a89eec7b5de1" dependencies = [ "cosmwasm-std", "schemars", @@ -183,24 +405,24 @@ dependencies = [ [[package]] name = "cw-utils" -version = "0.14.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "414b91f3d7a619bb26c835119d7095804596a1382ddc1d184c33c1d2c17f6c5e" +checksum = "07dfee7f12f802431a856984a32bce1cb7da1e6c006b5409e3981035ce562dec" dependencies = [ + "cosmwasm-schema", "cosmwasm-std", - "cw2", "schemars", - "semver", "serde", "thiserror", ] [[package]] name = "cw1" -version = "0.14.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c69ee5119e5cea350b266b43c64a76ac96fc2047d93f44701ecd44907f70a3a3" +checksum = "82e8f2be6706b3460d2b3f4d3ef5177926000ac2dc21187a9dfaac85bd2459cb" dependencies = [ + "cosmwasm-schema", "cosmwasm-std", "schemars", "serde", @@ -208,10 +430,11 @@ dependencies = [ [[package]] name = "cw1-whitelist" -version = "0.14.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e133842a1c15e3f27c81bb3e9a4bb3b2cf8d0c80b2d00e19d82aa55b5d037e" +checksum = "5c51ef0628aaedd7153015e99ed6d030b99ebe635173011eb4e1554f866be30b" dependencies = [ + "cosmwasm-schema", "cosmwasm-std", "cw-storage-plus", "cw-utils", @@ -224,23 +447,27 @@ dependencies = [ [[package]] name = "cw2" -version = "0.14.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa74c324af8e3506fd8d50759a265bead3f87402e413c840042af5d2808463d6" +checksum = "b04852cd38f044c0751259d5f78255d07590d136b8a86d4e09efdd7666bd6d27" dependencies = [ + "cosmwasm-schema", "cosmwasm-std", "cw-storage-plus", "schemars", + "semver", "serde", + "thiserror", ] [[package]] name = "der" -version = "0.5.1" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", + "zeroize", ] [[package]] @@ -251,16 +478,40 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.98", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", + "unicode-xid", ] [[package]] name = "digest" -version = "0.9.0" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "generic-array", + "block-buffer", + "const-oid", + "crypto-common", + "subtle", ] [[package]] @@ -271,44 +522,60 @@ checksum = "9d07a982d1fb29db01e5a59b1918e03da4df7297eaeee7686ac45542fd4e59c8" [[package]] name = "ecdsa" -version = "0.13.4" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der", + "digest", "elliptic-curve", "rfc6979", "signature", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + [[package]] name = "ed25519-zebra" -version = "3.0.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403ef3e961ab98f0ba902771d29f842058578bb1ce7e3c59dad5a6a93e784c69" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek", + "ed25519", + "hashbrown 0.14.5", "hex", - "rand_core 0.6.3", - "serde", + "rand_core", "sha2", - "thiserror", "zeroize", ] +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + [[package]] name = "elliptic-curve" -version = "0.11.12" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct", "crypto-bigint", - "der", + "digest", "ff", "generic-array", "group", - "rand_core 0.6.3", + "rand_core", "sec1", "subtle", "zeroize", @@ -316,39 +583,29 @@ dependencies = [ [[package]] name = "ff" -version = "0.11.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "131655483be284720a17d74ff97592b8e76576dc25563148601df2d7c9080924" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core 0.6.3", + "rand_core", "subtle", ] [[package]] -name = "forward_ref" -version = "1.0.0" +name = "fiat-crypto" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8cbd1169bd7b4a0a20d92b9af7a7e0422888bd38a6f5ec29c1fd8c1558a272e" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "zeroize", ] [[package]] @@ -359,20 +616,39 @@ checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", ] [[package]] name = "group" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core 0.6.3", + "rand_core", "subtle", ] +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + [[package]] name = "hex" version = "0.4.3" @@ -381,14 +657,22 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hmac" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "crypto-mac", "digest", ] +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.2" @@ -397,85 +681,176 @@ checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "k256" -version = "0.10.4" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c3a5e0a0b8450278feda242592512e09f61c72e018b8cd5c859482802daf2d" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", - "sec1", "sha2", ] [[package]] name = "libc" -version = "0.2.126" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "num-bigint" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] [[package]] -name = "pkcs8" -version = "0.8.0" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "der", - "spki", - "zeroize", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", ] [[package]] name = "proc-macro2" -version = "1.0.40" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.20" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] [[package]] -name = "rand_core" -version = "0.5.1" +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "getrandom 0.1.16", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", ] [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "getrandom 0.2.7", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] name = "rfc6979" -version = "0.1.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "crypto-bigint", "hmac", - "zeroize", + "subtle", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", ] [[package]] @@ -486,9 +861,9 @@ checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" [[package]] name = "schemars" -version = "0.8.10" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1847b767a3d62d95cbf3d8a9f0e421cf57a0d8aa4f411d4b16525afb0284d4ed" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ "dyn-clone", "schemars_derive", @@ -498,73 +873,73 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.10" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4d7e1b012cb3d9129567661a63755ea4b8a7386d339dc945ae187e403c6743" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn", + "syn 2.0.74", ] [[package]] name = "sec1" -version = "0.2.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ + "base16ct", "der", "generic-array", - "pkcs8", "subtle", "zeroize", ] [[package]] name = "semver" -version = "1.0.13" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.140" +version = "1.0.207" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" +checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" dependencies = [ "serde_derive", ] [[package]] name = "serde-json-wasm" -version = "0.4.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479b4dbc401ca13ee8ce902851b834893251404c4f3c65370a49e047a6be09a5" +checksum = "f05da0d153dd4595bdffd5099dc0e9ce425b205ee648eb93437ff7302af8c9a5" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.140" +version = "1.0.207" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" +checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.74", ] [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.74", ] [[package]] @@ -580,30 +955,28 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.9" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "block-buffer", "cfg-if", "cpufeatures", "digest", - "opaque-debug", ] [[package]] name = "signature" -version = "1.4.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core 0.6.3", + "rand_core", ] [[package]] name = "simple-ica" -version = "0.2.0" +version = "0.3.0" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -614,7 +987,7 @@ dependencies = [ [[package]] name = "simple-ica-controller" -version = "0.2.0" +version = "0.3.0" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -628,7 +1001,7 @@ dependencies = [ [[package]] name = "simple-ica-host" -version = "0.2.0" +version = "0.3.0" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -641,16 +1014,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "spki" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "static_assertions" version = "1.1.0" @@ -674,24 +1037,35 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.74", ] [[package]] @@ -700,24 +1074,18 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" -[[package]] -name = "uint" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - [[package]] name = "unicode-ident" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "version_check" version = "0.9.4" @@ -726,18 +1094,47 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "zerocopy" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", +] [[package]] name = "zeroize" -version = "1.3.0" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", +] diff --git a/contracts/callback-capturer/Cargo.toml b/contracts/callback-capturer/Cargo.toml index 05fd046..a2400fa 100644 --- a/contracts/callback-capturer/Cargo.toml +++ b/contracts/callback-capturer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "callback-capturer" -version = "0.2.0" +version = "0.3.0" authors = ["Ethan Frey "] edition = "2021" publish = false @@ -10,18 +10,19 @@ license = "Apache-2.0" crate-type = ["cdylib", "rlib"] [features] -backtraces = ["cosmwasm-std/backtraces"] # use library feature to disable all instantiate/execute/query exports library = [] [dependencies] -simple-ica-controller = { version = "0.2.0", path = "../simple-ica-controller", features = ["library"] } -simple-ica = { version = "0.2.0", path = "../../packages/simple-ica" } -cw-utils = { version = "0.14.0" } -cw2 = { version = "0.14.0" } -cw-storage-plus = { version = "0.14.0" } -cosmwasm-schema = { version = "1.0.0" } -cosmwasm-std = { version = "1.0.0", features = ["staking", "stargate"] } +simple-ica-controller = { version = "0.3.0", path = "../simple-ica-controller", features = [ + "library", +] } +simple-ica = { version = "0.3.0", path = "../../packages/simple-ica" } +cw-utils = { version = "2.0.0" } +cw2 = { version = "2.0.0" } +cw-storage-plus = { version = "2.0.0" } +cosmwasm-schema = { version = "2.0.0" } +cosmwasm-std = { version = "2.0.0", features = ["staking", "stargate"] } schemars = "0.8.1" serde = { version = "1.0.103", default-features = false, features = ["derive"] } thiserror = { version = "1.0.23" } diff --git a/contracts/callback-capturer/src/contract.rs b/contracts/callback-capturer/src/contract.rs index 0a26355..0edf7bb 100644 --- a/contracts/callback-capturer/src/contract.rs +++ b/contracts/callback-capturer/src/contract.rs @@ -1,8 +1,8 @@ #[cfg(not(feature = "library"))] use cosmwasm_std::entry_point; use cosmwasm_std::{ - to_binary, Binary, CosmosMsg, Deps, DepsMut, Empty, Env, MessageInfo, QueryRequest, Response, - StdResult, WasmMsg, + to_json_binary, Binary, CosmosMsg, Deps, DepsMut, Empty, Env, MessageInfo, QueryRequest, + Response, StdResult, WasmMsg, }; use cw2::set_contract_version; @@ -81,7 +81,7 @@ pub fn execute_send_msgs( }; let msg = WasmMsg::Execute { contract_addr: cfg.simple_ica_controller.into(), - msg: to_binary(&ica_msg)?, + msg: to_json_binary(&ica_msg)?, funds: vec![], }; @@ -109,7 +109,7 @@ pub fn execute_ibc_query( }; let msg = WasmMsg::Execute { contract_addr: cfg.simple_ica_controller.into(), - msg: to_binary(&ica_msg)?, + msg: to_json_binary(&ica_msg)?, funds: vec![], }; @@ -131,7 +131,7 @@ pub fn execute_check_remote_balance( let ica_msg = simple_ica_controller::msg::ExecuteMsg::CheckRemoteBalance { channel_id }; let msg = WasmMsg::Execute { contract_addr: cfg.simple_ica_controller.into(), - msg: to_binary(&ica_msg)?, + msg: to_json_binary(&ica_msg)?, funds: vec![], }; @@ -157,7 +157,7 @@ pub fn execute_send_funds( }; let msg = WasmMsg::Execute { contract_addr: cfg.simple_ica_controller.into(), - msg: to_binary(&ica_msg)?, + msg: to_json_binary(&ica_msg)?, funds: info.funds, }; @@ -188,8 +188,8 @@ pub fn execute_receive_ibc_response( #[cfg_attr(not(feature = "library"), entry_point)] pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { match msg { - QueryMsg::Admin {} => to_binary(&query_admin(deps)?), - QueryMsg::Result { id } => to_binary(&query_result(deps, id)?), + QueryMsg::Admin {} => to_json_binary(&query_admin(deps)?), + QueryMsg::Result { id } => to_json_binary(&query_result(deps, id)?), } } @@ -208,7 +208,7 @@ pub fn query_result(deps: Deps, id: String) -> StdResult { #[cfg(test)] mod tests { use super::*; - use cosmwasm_std::testing::{mock_dependencies, mock_env, mock_info}; + use cosmwasm_std::testing::{message_info, mock_dependencies, mock_env}; use cosmwasm_std::{coins, BankMsg, BankQuery, SubMsg, WasmMsg}; use simple_ica::{IbcQueryResponse, StdAck}; @@ -216,17 +216,17 @@ mod tests { fn send_message_enforces_permissions() { let mut deps = mock_dependencies(); - let alice = "alice"; - let bob = "bob"; - let carl = "carl"; - let ica = "simple_ica"; + let alice = deps.api.addr_make("alice"); + let bob = deps.api.addr_make("bob"); + let carl = deps.api.addr_make("carl"); + let ica = deps.api.addr_make("simple_ica"); let channel = "channel-23"; // instantiate the contract let instantiate_msg = InstantiateMsg { simple_ica_controller: ica.to_string(), }; - let info = mock_info(alice, &[]); + let info = message_info(&alice, &[]); instantiate(deps.as_mut(), mock_env(), info, instantiate_msg).unwrap(); // try to send without permissions @@ -242,16 +242,16 @@ mod tests { }; // bob cannot execute them - let info = mock_info(bob, &[]); + let info = message_info(&bob, &[]); let err = execute(deps.as_mut(), mock_env(), info, execute_msg.clone()).unwrap_err(); assert_eq!(err, ContractError::Unauthorized {}); // but alice can (original owner) - let info = mock_info(alice, &[]); + let info = message_info(&alice, &[]); let res = execute(deps.as_mut(), mock_env(), info, execute_msg).unwrap(); let expected = vec![SubMsg::new(WasmMsg::Execute { contract_addr: ica.to_string(), - msg: to_binary(&simple_ica_controller::msg::ExecuteMsg::SendMsgs { + msg: to_json_binary(&simple_ica_controller::msg::ExecuteMsg::SendMsgs { channel_id: channel.to_string(), msgs, callback_id: Some("test".to_string()), @@ -266,9 +266,9 @@ mod tests { fn query_and_callback_work() { let mut deps = mock_dependencies(); - let alice = "alice"; - let bob = "bob"; - let ica = "simple_ica"; + let alice = deps.api.addr_make("alice"); + let bob = deps.api.addr_make("bob"); + let ica = deps.api.addr_make("simple_ica"); let channel = "channel-23"; let callback = "my-balance"; @@ -276,7 +276,7 @@ mod tests { let instantiate_msg = InstantiateMsg { simple_ica_controller: ica.to_string(), }; - let info = mock_info(alice, &[]); + let info = message_info(&alice, &[]); instantiate(deps.as_mut(), mock_env(), info, instantiate_msg).unwrap(); // try to send without permissions @@ -292,11 +292,11 @@ mod tests { }; // alice can execute - let info = mock_info(alice, &[]); + let info = message_info(&alice, &[]); let res = execute(deps.as_mut(), mock_env(), info, execute_msg).unwrap(); let expected = vec![SubMsg::new(WasmMsg::Execute { contract_addr: ica.to_string(), - msg: to_binary(&simple_ica_controller::msg::ExecuteMsg::IbcQuery { + msg: to_json_binary(&simple_ica_controller::msg::ExecuteMsg::IbcQuery { channel_id: channel.to_string(), msgs: queries, callback_id: Some(callback.to_string()), @@ -308,12 +308,12 @@ mod tests { // we get a callback let ack = StdAck::Result( - to_binary(&IbcQueryResponse { + to_json_binary(&IbcQueryResponse { results: vec![b"{}".into()], }) .unwrap(), ); - let info = mock_info(ica, &[]); + let info = message_info(&ica, &[]); let msg = ExecuteMsg::ReceiveIcaResponse(ReceiveIcaResponseMsg { id: callback.to_string(), msg: ack.clone(), diff --git a/contracts/simple-ica-controller/Cargo.toml b/contracts/simple-ica-controller/Cargo.toml index 6f5e6d6..5479eb0 100644 --- a/contracts/simple-ica-controller/Cargo.toml +++ b/contracts/simple-ica-controller/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-ica-controller" -version = "0.2.0" +version = "0.3.0" authors = ["Ethan Frey "] edition = "2021" publish = false @@ -24,19 +24,17 @@ overflow-checks = true [features] # for quicker tests, cargo test --lib -# for more explicit tests, cargo test --features=backtraces -backtraces = ["cosmwasm-std/backtraces"] # use library feature to disable all instantiate/execute/query exports library = [] [dependencies] -simple-ica = { version = "0.2.0", path = "../../packages/simple-ica"} -cosmwasm-std = { version = "1.0.0", features = ["iterator", "ibc3"] } -cw-storage-plus = { version = "0.14.0" } -cw-utils = { version = "0.14.0" } +simple-ica = { version = "0.3.0", path = "../../packages/simple-ica" } +cosmwasm-std = { version = "2.0.0", features = ["iterator", "stargate"] } +cw-storage-plus = { version = "2.0.0" } +cw-utils = { version = "2.0.0" } schemars = "0.8.1" serde = { version = "1.0.103", default-features = false, features = ["derive"] } thiserror = { version = "1.0.23" } [dev-dependencies] -cosmwasm-schema = { version = "1.0.0" } +cosmwasm-schema = { version = "2.0.0" } diff --git a/contracts/simple-ica-controller/src/contract.rs b/contracts/simple-ica-controller/src/contract.rs index e3cc422..d85350e 100644 --- a/contracts/simple-ica-controller/src/contract.rs +++ b/contracts/simple-ica-controller/src/contract.rs @@ -1,7 +1,7 @@ #[cfg(not(feature = "library"))] use cosmwasm_std::entry_point; use cosmwasm_std::{ - to_binary, CosmosMsg, Deps, DepsMut, Empty, Env, IbcMsg, MessageInfo, Order, QueryRequest, + to_json_binary, CosmosMsg, Deps, DepsMut, Empty, Env, IbcMsg, MessageInfo, Order, QueryRequest, QueryResponse, Response, StdError, StdResult, }; @@ -94,7 +94,7 @@ pub fn execute_send_msgs( }; let msg = IbcMsg::SendPacket { channel_id, - data: to_binary(&packet)?, + data: to_json_binary(&packet)?, timeout: env.block.time.plus_seconds(PACKET_LIFETIME).into(), }; @@ -121,7 +121,7 @@ pub fn execute_ibc_query( }; let msg = IbcMsg::SendPacket { channel_id, - data: to_binary(&packet)?, + data: to_json_binary(&packet)?, timeout: env.block.time.plus_seconds(PACKET_LIFETIME).into(), }; @@ -149,7 +149,7 @@ pub fn execute_check_remote_balance( let packet = PacketMsg::Balances {}; let msg = IbcMsg::SendPacket { channel_id, - data: to_binary(&packet)?, + data: to_json_binary(&packet)?, timeout: env.block.time.plus_seconds(PACKET_LIFETIME).into(), }; @@ -199,6 +199,7 @@ pub fn execute_send_funds( to_address: remote_addr, amount, timeout: env.block.time.plus_seconds(PACKET_LIFETIME).into(), + memo: None, }; let res = Response::new() @@ -210,11 +211,11 @@ pub fn execute_send_funds( #[cfg_attr(not(feature = "library"), entry_point)] pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { match msg { - QueryMsg::Admin {} => to_binary(&query_admin(deps)?), - QueryMsg::Account { channel_id } => to_binary(&query_account(deps, channel_id)?), - QueryMsg::ListAccounts {} => to_binary(&query_list_accounts(deps)?), + QueryMsg::Admin {} => to_json_binary(&query_admin(deps)?), + QueryMsg::Account { channel_id } => to_json_binary(&query_account(deps, channel_id)?), + QueryMsg::ListAccounts {} => to_json_binary(&query_list_accounts(deps)?), QueryMsg::LatestQueryResult { channel_id } => { - to_binary(&query_latest_ibc_query_result(deps, channel_id)?) + to_json_binary(&query_latest_ibc_query_result(deps, channel_id)?) } } } @@ -249,19 +250,20 @@ fn query_admin(deps: Deps) -> StdResult { #[cfg(test)] mod tests { use super::*; - use cosmwasm_std::testing::{mock_dependencies, mock_env, mock_info}; + use cosmwasm_std::testing::{message_info, mock_dependencies, mock_env}; const CREATOR: &str = "creator"; #[test] fn instantiate_works() { let mut deps = mock_dependencies(); + let creator = deps.api.addr_make(CREATOR); let msg = InstantiateMsg {}; - let info = mock_info(CREATOR, &[]); + let info = message_info(&creator, &[]); let res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); assert_eq!(0, res.messages.len()); let admin = query_admin(deps.as_ref()).unwrap(); - assert_eq!(CREATOR, admin.admin.as_str()); + assert_eq!(creator.to_string(), admin.admin); } } diff --git a/contracts/simple-ica-controller/src/ibc.rs b/contracts/simple-ica-controller/src/ibc.rs index ec3c292..3f26f49 100644 --- a/contracts/simple-ica-controller/src/ibc.rs +++ b/contracts/simple-ica-controller/src/ibc.rs @@ -1,7 +1,7 @@ #[cfg(not(feature = "library"))] use cosmwasm_std::entry_point; use cosmwasm_std::{ - from_slice, to_binary, DepsMut, Env, Ibc3ChannelOpenResponse, IbcBasicResponse, + from_json, to_json_binary, DepsMut, Env, Ibc3ChannelOpenResponse, IbcBasicResponse, IbcChannelCloseMsg, IbcChannelConnectMsg, IbcChannelOpenMsg, IbcMsg, IbcPacketAckMsg, IbcPacketReceiveMsg, IbcPacketTimeoutMsg, IbcReceiveResponse, StdResult, }; @@ -54,7 +54,7 @@ pub fn ibc_channel_connect( let packet = PacketMsg::WhoAmI {}; let msg = IbcMsg::SendPacket { channel_id: channel_id.clone(), - data: to_binary(&packet)?, + data: to_json_binary(&packet)?, timeout: env.block.time.plus_seconds(PACKET_LIFETIME).into(), }; @@ -89,9 +89,7 @@ pub fn ibc_packet_receive( _env: Env, _packet: IbcPacketReceiveMsg, ) -> StdResult { - Ok(IbcReceiveResponse::new() - .set_ack(b"{}") - .add_attribute("action", "ibc_packet_ack")) + Ok(IbcReceiveResponse::new(b"{}").add_attribute("action", "ibc_packet_ack")) } #[cfg_attr(not(feature = "library"), entry_point)] @@ -103,8 +101,8 @@ pub fn ibc_packet_ack( // which local channel was this packet send from let caller = msg.original_packet.src.channel_id.clone(); // we need to parse the ack based on our request - let original_packet: PacketMsg = from_slice(&msg.original_packet.data)?; - let res: StdAck = from_slice(&msg.acknowledgement.data)?; + let original_packet: PacketMsg = from_json(&msg.original_packet.data)?; + let res: StdAck = from_json(&msg.acknowledgement.data)?; match original_packet { PacketMsg::Dispatch { @@ -135,7 +133,7 @@ fn acknowledge_dispatch( let res = IbcBasicResponse::new().add_attribute("action", "acknowledge_dispatch"); match callback_id { Some(id) => { - let msg: StdAck = from_slice(&ack.acknowledgement.data)?; + let msg: StdAck = from_json(&ack.acknowledgement.data)?; // Send IBC packet ack message to another contract let res = res .add_attribute("callback_id", &id) @@ -155,7 +153,7 @@ fn acknowledge_query( callback_id: Option, ack: IbcPacketAckMsg, ) -> Result { - let msg: StdAck = from_slice(&ack.acknowledgement.data)?; + let msg: StdAck = from_json(&ack.acknowledgement.data)?; // store IBC response for later querying from the smart contract?? LATEST_QUERIES.save( @@ -187,7 +185,7 @@ fn acknowledge_who_am_i( ) -> Result { // ignore errors (but mention in log) let WhoAmIResponse { account } = match ack { - StdAck::Result(res) => from_slice(&res)?, + StdAck::Result(res) => from_json(&res)?, StdAck::Error(e) => { return Ok(IbcBasicResponse::new() .add_attribute("action", "acknowledge_who_am_i") @@ -220,7 +218,7 @@ fn acknowledge_balances( ) -> Result { // ignore errors (but mention in log) let BalancesResponse { account, balances } = match ack { - StdAck::Result(res) => from_slice(&res)?, + StdAck::Result(res) => from_json(&res)?, StdAck::Error(e) => { return Ok(IbcBasicResponse::new() .add_attribute("action", "acknowledge_balances") @@ -264,9 +262,9 @@ mod tests { use crate::msg::{AccountResponse, ExecuteMsg, InstantiateMsg, QueryMsg}; use cosmwasm_std::testing::{ - mock_dependencies, mock_env, mock_ibc_channel_connect_ack, mock_ibc_channel_open_init, - mock_ibc_channel_open_try, mock_ibc_packet_ack, mock_info, MockApi, MockQuerier, - MockStorage, + message_info, mock_dependencies, mock_env, mock_ibc_channel_connect_ack, + mock_ibc_channel_open_init, mock_ibc_channel_open_try, mock_ibc_packet_ack, MockApi, + MockQuerier, MockStorage, }; use cosmwasm_std::{coin, coins, BankMsg, CosmosMsg, IbcAcknowledgement, OwnedDeps}; use simple_ica::{APP_ORDER, BAD_APP_ORDER, IBC_APP_VERSION}; @@ -275,8 +273,9 @@ mod tests { fn setup() -> OwnedDeps { let mut deps = mock_dependencies(); + let creator = deps.api.addr_make(CREATOR); let msg = InstantiateMsg {}; - let info = mock_info(CREATOR, &[]); + let info = message_info(&creator, &[]); let res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); assert_eq!(0, res.messages.len()); deps @@ -342,7 +341,7 @@ mod tests { channel_id: channel_id.into(), }; let r = query(deps.as_ref(), mock_env(), q).unwrap(); - let acct: AccountResponse = from_slice(&r).unwrap(); + let acct: AccountResponse = from_json(&r).unwrap(); assert!(acct.remote_addr.is_none()); assert!(acct.remote_balance.is_empty()); assert_eq!(0, acct.last_update_time.nanos()); @@ -356,7 +355,7 @@ mod tests { channel_id: channel_id.into(), }; let r = query(deps.as_ref(), mock_env(), q).unwrap(); - let acct: AccountResponse = from_slice(&r).unwrap(); + let acct: AccountResponse = from_json(&r).unwrap(); assert_eq!(acct.remote_addr.unwrap(), remote_addr); assert!(acct.remote_balance.is_empty()); assert_eq!(0, acct.last_update_time.nanos()); @@ -369,6 +368,7 @@ mod tests { // init contract let mut deps = setup(); + let creator = deps.api.addr_make(CREATOR); // channel handshake connect(deps.as_mut(), channel_id); // get feedback from WhoAmI packet @@ -385,14 +385,14 @@ mod tests { msgs: msgs_to_dispatch, callback_id: None, }; - let info = mock_info(CREATOR, &[]); + let info = message_info(&creator, &[]); let mut res = execute(deps.as_mut(), mock_env(), info, handle_msg).unwrap(); assert_eq!(1, res.messages.len()); let msg = match res.messages.swap_remove(0).msg { CosmosMsg::Ibc(IbcMsg::SendPacket { channel_id, data, .. }) => { - let ack = IbcAcknowledgement::new(StdAck::success(&())); + let ack = IbcAcknowledgement::new(StdAck::success(())); let mut msg = mock_ibc_packet_ack(&channel_id, &1u32, ack).unwrap(); msg.original_packet.data = data; msg @@ -413,6 +413,7 @@ mod tests { // init contract let mut deps = setup(); + let creator = deps.api.addr_make(CREATOR); // channel handshake connect(deps.as_mut(), reflect_channel_id); // get feedback from WhoAmI packet @@ -423,7 +424,7 @@ mod tests { ica_channel_id: "random-channel".into(), transfer_channel_id: transfer_channel_id.into(), }; - let info = mock_info(CREATOR, &coins(12344, "utrgd")); + let info = message_info(&creator, &coins(12344, "utrgd")); execute(deps.as_mut(), mock_env(), info, msg).unwrap_err(); // let's try with no sent funds in the message @@ -431,7 +432,7 @@ mod tests { ica_channel_id: reflect_channel_id.into(), transfer_channel_id: transfer_channel_id.into(), }; - let info = mock_info(CREATOR, &[]); + let info = message_info(&creator, &[]); execute(deps.as_mut(), mock_env(), info, msg).unwrap_err(); // 3rd times the charm @@ -439,7 +440,7 @@ mod tests { ica_channel_id: reflect_channel_id.into(), transfer_channel_id: transfer_channel_id.into(), }; - let info = mock_info(CREATOR, &coins(12344, "utrgd")); + let info = message_info(&creator, &coins(12344, "utrgd")); let res = execute(deps.as_mut(), mock_env(), info, msg).unwrap(); assert_eq!(1, res.messages.len()); match &res.messages[0].msg { @@ -448,6 +449,7 @@ mod tests { to_address, amount, timeout, + memo: _, }) => { assert_eq!(transfer_channel_id, channel_id.as_str()); assert_eq!(remote_addr, to_address.as_str()); diff --git a/contracts/simple-ica-host/Cargo.toml b/contracts/simple-ica-host/Cargo.toml index c2c01f4..c869e45 100644 --- a/contracts/simple-ica-host/Cargo.toml +++ b/contracts/simple-ica-host/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "simple-ica-host" -version = "0.2.0" +version = "0.3.0" authors = ["Ethan Frey "] edition = "2021" publish = false @@ -24,18 +24,16 @@ overflow-checks = true [features] # for quicker tests, cargo test --lib -# for more explicit tests, cargo test --features=backtraces -backtraces = ["cosmwasm-std/backtraces"] [dependencies] -simple-ica = { version = "0.2.0", path = "../../packages/simple-ica"} -cosmwasm-std = { version = "1.0.0", features = ["iterator", "ibc3"] } -cw-storage-plus = { version = "0.14.0" } -cw-utils = { version = "0.14.0" } -cw1-whitelist = { version = "0.14.0", features = ["library"]} +simple-ica = { version = "0.3.0", path = "../../packages/simple-ica" } +cosmwasm-std = { version = "2.0.0", features = ["iterator", "stargate"] } +cw-storage-plus = { version = "2.0.0" } +cw-utils = { version = "2.0.0" } +cw1-whitelist = { version = "2.0.0", features = ["library"] } schemars = "0.8.1" serde = { version = "1.0.103", default-features = false, features = ["derive"] } thiserror = { version = "1.0.23" } [dev-dependencies] -cosmwasm-schema = { version = "1.0.0" } +cosmwasm-schema = { version = "2.0.0" } diff --git a/contracts/simple-ica-host/src/contract.rs b/contracts/simple-ica-host/src/contract.rs index 98920dc..28dd4a9 100644 --- a/contracts/simple-ica-host/src/contract.rs +++ b/contracts/simple-ica-host/src/contract.rs @@ -1,12 +1,12 @@ use cosmwasm_std::{ - entry_point, from_slice, to_binary, to_vec, wasm_execute, BankMsg, Binary, ContractResult, - CosmosMsg, Deps, DepsMut, Empty, Env, Event, Ibc3ChannelOpenResponse, IbcBasicResponse, - IbcChannelCloseMsg, IbcChannelConnectMsg, IbcChannelOpenMsg, IbcChannelOpenResponse, - IbcPacketAckMsg, IbcPacketReceiveMsg, IbcPacketTimeoutMsg, IbcReceiveResponse, MessageInfo, - Order, QuerierWrapper, QueryRequest, QueryResponse, Reply, Response, StdError, StdResult, - SubMsg, SystemResult, WasmMsg, + entry_point, from_json, to_json_binary, to_json_vec, wasm_execute, BankMsg, Binary, + ContractResult, CosmosMsg, Deps, DepsMut, Empty, Env, Event, Ibc3ChannelOpenResponse, + IbcBasicResponse, IbcChannelCloseMsg, IbcChannelConnectMsg, IbcChannelOpenMsg, + IbcChannelOpenResponse, IbcPacketAckMsg, IbcPacketReceiveMsg, IbcPacketTimeoutMsg, + IbcReceiveResponse, MessageInfo, Order, QuerierWrapper, QueryRequest, QueryResponse, Reply, + Response, StdError, StdResult, SubMsg, SystemResult, WasmMsg, }; -use cw_utils::parse_reply_instantiate_data; +use cw_utils::parse_instantiate_response_data; use simple_ica::{ check_order, check_version, BalancesResponse, DispatchResponse, IbcQueryResponse, PacketMsg, StdAck, WhoAmIResponse, IBC_APP_VERSION, @@ -40,8 +40,8 @@ pub fn instantiate( #[entry_point] pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { match msg { - QueryMsg::Account { channel_id } => to_binary(&query_account(deps, channel_id)?), - QueryMsg::ListAccounts {} => to_binary(&query_list_accounts(deps)?), + QueryMsg::Account { channel_id } => to_json_binary(&query_account(deps, channel_id)?), + QueryMsg::ListAccounts {} => to_json_binary(&query_list_accounts(deps)?), } } @@ -106,7 +106,7 @@ pub fn ibc_channel_connect( let msg = WasmMsg::Instantiate { admin: None, code_id: cfg.cw1_code_id, - msg: to_binary(&init_msg)?, + msg: to_json_binary(&init_msg)?, funds: vec![], label: format!("ibc-reflect-{}", chan_id), }; @@ -186,7 +186,10 @@ pub fn reply_init_callback(deps: DepsMut, reply: Reply) -> Result contract_addr if it is empty @@ -211,7 +214,7 @@ pub fn ibc_packet_receive( let packet = msg.packet; // which local channel did this packet come on let caller = packet.dest.channel_id; - let msg: PacketMsg = from_slice(&packet.data)?; + let msg: PacketMsg = from_json(&packet.data)?; match msg { PacketMsg::Dispatch { msgs, .. } => receive_dispatch(deps, caller, msgs), PacketMsg::IbcQuery { msgs, .. } => receive_query(deps.as_ref(), msgs), @@ -224,7 +227,7 @@ fn unparsed_query( querier: QuerierWrapper<'_, Empty>, request: &QueryRequest, ) -> Result { - let raw = to_vec(request)?; + let raw = to_json_vec(request)?; match querier.raw_query(&raw) { SystemResult::Err(system_err) => { Err(StdError::generic_err(format!("Querier system error: {}", system_err)).into()) @@ -250,9 +253,7 @@ fn receive_query( let response = IbcQueryResponse { results }; let acknowledgement = StdAck::success(&response); - Ok(IbcReceiveResponse::new() - .set_ack(acknowledgement) - .add_attribute("action", "receive_ibc_query")) + Ok(IbcReceiveResponse::new(acknowledgement).add_attribute("action", "receive_ibc_query")) } // processes PacketMsg::WhoAmI variant @@ -263,9 +264,7 @@ fn receive_who_am_i(deps: DepsMut, caller: String) -> Result Result Binary { + fn fake_data(reflect_addr: &Addr) -> Binary { // works with length < 128 - let mut encoded = vec![0x0a, reflect_addr.len() as u8]; + let mut encoded = vec![0x0a, reflect_addr.as_str().len() as u8]; encoded.extend(reflect_addr.as_bytes()); Binary::from(encoded) } - fn fake_events(reflect_addr: &str) -> Vec { + fn fake_events(reflect_addr: &Addr) -> Vec { let event = Event::new("instantiate").add_attributes(vec![ attr("code_id", "17"), // We have to force this one to avoid the debug assertion against _ @@ -380,9 +378,7 @@ mod tests { // connect will run through the entire handshake to set up a proper connect and // save the account (tested in detail in `proper_handshake_flow`) - fn connect(mut deps: DepsMut, channel_id: &str, account: impl Into) { - let account: String = account.into(); - + fn connect(mut deps: DepsMut, channel_id: &str, account: Addr) { let handshake_open = mock_ibc_channel_open_init(channel_id, APP_ORDER, IBC_APP_VERSION); // first we try to open with a valid handshake ibc_channel_open(deps.branch(), mock_env(), handshake_open).unwrap(); @@ -405,7 +401,10 @@ mod tests { result: SubMsgResult::Ok(SubMsgResponse { events: fake_events(&account), data: Some(fake_data(&account)), + msg_responses: vec![], }), + payload: Binary::default(), + gas_used: 0, }; reply(deps.branch(), mock_env(), response).unwrap(); } @@ -415,7 +414,7 @@ mod tests { let mut deps = mock_dependencies(); let msg = InstantiateMsg { cw1_code_id: 17 }; - let info = mock_info("creator", &[]); + let info = message_info(&deps.api.addr_make("creator"), &[]); let res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); assert_eq!(0, res.messages.len()) } @@ -468,27 +467,31 @@ mod tests { // no accounts set yet let raw = query(deps.as_ref(), mock_env(), QueryMsg::ListAccounts {}).unwrap(); - let res: ListAccountsResponse = from_slice(&raw).unwrap(); + let res: ListAccountsResponse = from_json(&raw).unwrap(); assert_eq!(0, res.accounts.len()); // fake a reply and ensure this works + let reflect_addr = deps.api.addr_make(REFLECT_ADDR); let response = Reply { id, result: SubMsgResult::Ok(SubMsgResponse { - events: fake_events(REFLECT_ADDR), - data: Some(fake_data(REFLECT_ADDR)), + events: fake_events(&reflect_addr), + data: Some(fake_data(&reflect_addr)), + msg_responses: vec![], }), + payload: Binary::default(), + gas_used: 0, }; reply(deps.as_mut(), mock_env(), response).unwrap(); // ensure this is now registered let raw = query(deps.as_ref(), mock_env(), QueryMsg::ListAccounts {}).unwrap(); - let res: ListAccountsResponse = from_slice(&raw).unwrap(); + let res: ListAccountsResponse = from_json(&raw).unwrap(); assert_eq!(1, res.accounts.len()); assert_eq!( &res.accounts[0], &AccountInfo { - account: REFLECT_ADDR.into(), + account: reflect_addr.clone().into(), channel_id: channel_id.to_string(), } ); @@ -502,8 +505,8 @@ mod tests { }, ) .unwrap(); - let res: AccountResponse = from_slice(&raw).unwrap(); - assert_eq!(res.account.unwrap(), REFLECT_ADDR); + let res: AccountResponse = from_json(&raw).unwrap(); + assert_eq!(res.account.unwrap(), reflect_addr.to_string()); } #[test] @@ -511,7 +514,7 @@ mod tests { let mut deps = setup(); let channel_id = "channel-123"; - let account = "acct-123"; + let account = deps.api.addr_make("acct-123"); // receive a packet for an unregistered channel returns app-level error (not Result::Err) let msgs_to_dispatch = vec![BankMsg::Send { @@ -529,14 +532,14 @@ mod tests { ibc_packet_receive(deps.as_mut(), mock_env(), msg).unwrap_err(); // register the channel - connect(deps.as_mut(), channel_id, account); + connect(deps.as_mut(), channel_id, account.clone()); // receive a packet for an unregistered channel returns app-level error (not Result::Err) let msg = mock_ibc_packet_recv(channel_id, &ibc_msg).unwrap(); let res = ibc_packet_receive(deps.as_mut(), mock_env(), msg).unwrap(); // assert app-level success - let ack: StdAck = from_slice(&res.acknowledgement).unwrap(); + let ack: StdAck = from_json(res.acknowledgement.unwrap()).unwrap(); ack.unwrap(); // and we dispatch the BankMsg via submessage @@ -550,10 +553,10 @@ mod tests { funds, }) = &res.messages[0].msg { - assert_eq!(account, contract_addr.as_str()); + assert_eq!(account.as_str(), contract_addr.as_str()); assert_eq!(0, funds.len()); // parse the message - should callback with proper channel_id - let rmsg: cw1_whitelist::msg::ExecuteMsg = from_slice(msg).unwrap(); + let rmsg: cw1_whitelist::msg::ExecuteMsg = from_json(msg).unwrap(); assert_eq!( rmsg, cw1_whitelist::msg::ExecuteMsg::Execute { @@ -575,19 +578,25 @@ mod tests { let mut deps = setup(); let channel_id = "channel-123"; - let account = "acct-123"; + let account = deps.api.addr_make("acct-123"); // register the channel - connect(deps.as_mut(), channel_id, account); + connect(deps.as_mut(), channel_id, account.clone()); // assign it some funds let funds = vec![coin(123456, "uatom"), coin(7654321, "tgrd")]; - deps.querier.update_balance(account, funds.clone()); + deps.querier + .bank + .update_balance(account.clone(), funds.clone()); // channel should be listed and have balance let raw = query(deps.as_ref(), mock_env(), QueryMsg::ListAccounts {}).unwrap(); - let res: ListAccountsResponse = from_slice(&raw).unwrap(); + let res: ListAccountsResponse = from_json(&raw).unwrap(); assert_eq!(1, res.accounts.len()); - let balance = deps.as_ref().querier.query_all_balances(account).unwrap(); + let balance = deps + .as_ref() + .querier + .query_all_balances(account.clone()) + .unwrap(); assert_eq!(funds, balance); // close the channel @@ -600,8 +609,8 @@ mod tests { contract_addr, msg, .. }) = &res.messages[0].msg { - assert_eq!(contract_addr.as_str(), account); - let reflect: ReflectExecuteMsg = from_slice(msg).unwrap(); + assert_eq!(contract_addr.as_str(), account.as_str()); + let reflect: ReflectExecuteMsg = from_json(msg).unwrap(); match reflect { ReflectExecuteMsg::ReflectMsg { msgs } => { assert_eq!(1, msgs.len()); @@ -621,7 +630,7 @@ mod tests { // and removes the account lookup let raw = query(deps.as_ref(), mock_env(), QueryMsg::ListAccounts {}).unwrap(); - let res: ListAccountsResponse = from_slice(&raw).unwrap(); + let res: ListAccountsResponse = from_json(&raw).unwrap(); assert_eq!(0, res.accounts.len()); } } diff --git a/packages/simple-ica/Cargo.toml b/packages/simple-ica/Cargo.toml index 44e56b5..7e8e43d 100644 --- a/packages/simple-ica/Cargo.toml +++ b/packages/simple-ica/Cargo.toml @@ -1,15 +1,15 @@ [package] name = "simple-ica" -version = "0.2.0" +version = "0.3.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -cosmwasm-std = { version = "1.0.0", features = ["ibc3"] } +cosmwasm-std = { version = "2.0.0", features = ["stargate"] } schemars = "0.8.1" serde = { version = "1.0.103", default-features = false, features = ["derive"] } thiserror = { version = "1.0.23" } [dev-dependencies] -cosmwasm-schema = { version = "1.0.0" } +cosmwasm-schema = { version = "2.0.0" } diff --git a/packages/simple-ica/src/callback.rs b/packages/simple-ica/src/callback.rs index e22c94e..7476339 100644 --- a/packages/simple-ica/src/callback.rs +++ b/packages/simple-ica/src/callback.rs @@ -1,7 +1,7 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use cosmwasm_std::{to_binary, Binary, CosmosMsg, StdResult, WasmMsg}; +use cosmwasm_std::{to_json_binary, Binary, CosmosMsg, StdResult, WasmMsg}; use crate::StdAck; @@ -16,9 +16,9 @@ pub struct ReceiveIcaResponseMsg { impl ReceiveIcaResponseMsg { /// serializes the message - pub fn into_binary(self) -> StdResult { + pub fn into_json_binary(self) -> StdResult { let msg = SimpleIcaReceiverExecuteMsg::ReceiveIcaResponse(self); - to_binary(&msg) + to_json_binary(&msg) } /// creates a cosmos_msg sending this struct to the named contract @@ -26,7 +26,7 @@ impl ReceiveIcaResponseMsg { where C: Clone + std::fmt::Debug + PartialEq + JsonSchema, { - let msg = self.into_binary()?; + let msg = self.into_json_binary()?; let execute = WasmMsg::Execute { contract_addr: contract_addr.into(), msg, diff --git a/packages/simple-ica/src/ibc_msg.rs b/packages/simple-ica/src/ibc_msg.rs index 90baf4b..c9012a6 100644 --- a/packages/simple-ica/src/ibc_msg.rs +++ b/packages/simple-ica/src/ibc_msg.rs @@ -1,4 +1,4 @@ -use cosmwasm_std::{from_slice, to_binary, Binary, Coin, CosmosMsg, Empty, QueryRequest}; +use cosmwasm_std::{from_json, to_json_binary, Binary, Coin, CosmosMsg, Empty, QueryRequest}; use schemars::JsonSchema; use serde::de::DeserializeOwned; use serde::{Deserialize, Serialize}; @@ -34,7 +34,7 @@ pub enum StdAck { impl StdAck { // create a serialized success message pub fn success(data: impl Serialize) -> Binary { - let res = to_binary(&data).unwrap(); + let res = to_json_binary(&data).unwrap(); StdAck::Result(res).ack() } @@ -44,7 +44,7 @@ impl StdAck { } pub fn ack(&self) -> Binary { - to_binary(self).unwrap() + to_json_binary(self).unwrap() } pub fn unwrap(self) -> Binary { @@ -55,7 +55,7 @@ impl StdAck { } pub fn unwrap_into(self) -> T { - from_slice(&self.unwrap()).unwrap() + from_json(self.unwrap()).unwrap() } pub fn unwrap_err(self) -> String {