From a043552d2dec14e26d0223140fbcfdf06c25eee6 Mon Sep 17 00:00:00 2001 From: Expotential108 Date: Thu, 1 Sep 2022 13:16:57 +0200 Subject: [PATCH 1/7] Upgrade autocfg and zeroize --- libwasmvm/Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libwasmvm/Cargo.lock b/libwasmvm/Cargo.lock index 32a976e..a798bc7 100644 --- a/libwasmvm/Cargo.lock +++ b/libwasmvm/Cargo.lock @@ -41,9 +41,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" @@ -1888,6 +1888,6 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "zeroize" -version = "1.4.3" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" +checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" From 1068073d1129b76b206ba2d5f068c7ae1fced595 Mon Sep 17 00:00:00 2001 From: Expotential108 Date: Thu, 1 Sep 2022 13:19:32 +0200 Subject: [PATCH 2/7] Upgrade libc --- libwasmvm/Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libwasmvm/Cargo.lock b/libwasmvm/Cargo.lock index a798bc7..3833f4d 100644 --- a/libwasmvm/Cargo.lock +++ b/libwasmvm/Cargo.lock @@ -806,9 +806,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.112" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libloading" From d5ca572420d02bec2bb5b2286968e3af33311c31 Mon Sep 17 00:00:00 2001 From: Expotential108 Date: Thu, 1 Sep 2022 14:40:49 +0200 Subject: [PATCH 3/7] Upgrade cosmwasm to 1.1 --- libwasmvm/Cargo.lock | 355 ++++++++++++++++++++++++++++------------- libwasmvm/Cargo.toml | 4 +- libwasmvm/src/cache.rs | 21 ++- libwasmvm/src/tests.rs | 4 +- 4 files changed, 257 insertions(+), 127 deletions(-) diff --git a/libwasmvm/Cargo.lock b/libwasmvm/Cargo.lock index 3833f4d..d6c29e1 100644 --- a/libwasmvm/Cargo.lock +++ b/libwasmvm/Cargo.lock @@ -8,7 +8,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" dependencies = [ - "gimli 0.26.1", + "gimli", ] [[package]] @@ -93,6 +93,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +dependencies = [ + "generic-array", +] + [[package]] name = "bumpalo" version = "3.8.0" @@ -189,16 +198,29 @@ checksum = "591ff76ca0691bd91c1b0b5b987e5cf93b21ec810ad96665c5a569c60846dd93" [[package]] name = "const-oid" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" +checksum = "722e23542a15cea1f65d4a1419c4cfd7a26706c70871a13a04238ca3f40f1661" + +[[package]] +name = "corosensei" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" +dependencies = [ + "autocfg", + "cfg-if", + "libc", + "scopeguard", + "windows-sys", +] [[package]] name = "cosmwasm-crypto" -version = "1.0.0" -source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.0.0#a776d9a19bbfd4af49f81105e764b93de634d904" +version = "1.1.0-rc.1" +source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0-rc.1#33e0808011d75b42b1dcda03e4263269b3305819" dependencies = [ - "digest", + "digest 0.10.3", "ed25519-zebra", "k256", "rand_core 0.6.3", @@ -207,20 +229,21 @@ dependencies = [ [[package]] name = "cosmwasm-derive" -version = "1.0.0" -source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.0.0#a776d9a19bbfd4af49f81105e764b93de634d904" +version = "1.1.0-rc.1" +source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0-rc.1#33e0808011d75b42b1dcda03e4263269b3305819" dependencies = [ "syn", ] [[package]] name = "cosmwasm-std" -version = "1.0.0" -source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.0.0#a776d9a19bbfd4af49f81105e764b93de634d904" +version = "1.1.0-rc.1" +source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0-rc.1#33e0808011d75b42b1dcda03e4263269b3305819" dependencies = [ "base64", "cosmwasm-crypto", "cosmwasm-derive", + "derivative", "forward_ref", "schemars", "serde", @@ -231,8 +254,8 @@ dependencies = [ [[package]] name = "cosmwasm-vm" -version = "1.0.0" -source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.0.0#a776d9a19bbfd4af49f81105e764b93de634d904" +version = "1.1.0-rc.1" +source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0-rc.1#33e0808011d75b42b1dcda03e4263269b3305819" dependencies = [ "clru", "cosmwasm-crypto", @@ -243,7 +266,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "sha2", + "sha2 0.9.9", "thiserror", "wasmer", "wasmer-middlewares", @@ -260,24 +283,24 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.76.0" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e6bea67967505247f54fa2c85cf4f6e0e31c4e5692c9b70e4ae58e339067333" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.76.0" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48194035d2752bdd5bdae429e3ab88676e95f52a2b1355a5d4e809f9e39b1d74" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli 0.25.0", + "gimli", "log", "regalloc", "smallvec", @@ -286,31 +309,30 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.76.0" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976efb22fcab4f2cd6bd4e9913764616a54d895c1a23530128d04e03633c555f" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" dependencies = [ "cranelift-codegen-shared", - "cranelift-entity", ] [[package]] name = "cranelift-codegen-shared" -version = "0.76.0" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dabb5fe66e04d4652e434195b45ae65b5c8172d520247b8f66d8df42b2b45dc" +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" [[package]] name = "cranelift-entity" -version = "0.76.0" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3329733e4d4b8e91c809efcaa4faee80bf66f20164e3dd16d707346bd3494799" +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" [[package]] name = "cranelift-frontend" -version = "0.76.0" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279afcc0d3e651b773f94837c3d581177b348c8d69e928104b2e9fccb226f921" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" dependencies = [ "cranelift-codegen", "log", @@ -379,9 +401,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.3.2" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +checksum = "9f2b443d17d49dad5ef0ede301c3179cc923b8822f3393b4d2c28c269dd4a122" dependencies = [ "generic-array", "rand_core 0.6.3", @@ -390,13 +412,13 @@ dependencies = [ ] [[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]] @@ -406,7 +428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" dependencies = [ "byteorder", - "digest", + "digest 0.9.0", "rand_core 0.5.1", "subtle", "zeroize", @@ -449,11 +471,23 @@ dependencies = [ [[package]] name = "der" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +checksum = "13dd2ae565c0a381dde7fade45fce95984c568bdcb4700a4fdbe3175e0380b2f" dependencies = [ "const-oid", + "zeroize", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -465,6 +499,17 @@ dependencies = [ "generic-array", ] +[[package]] +name = "digest" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +dependencies = [ + "block-buffer 0.10.2", + "crypto-common", + "subtle", +] + [[package]] name = "dyn-clone" version = "1.0.4" @@ -473,9 +518,9 @@ checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" [[package]] name = "dynasm" -version = "1.2.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b1801e630bd336d0bbbdbf814de6cc749c9a400c7e3d995e6adfd455d0c83c" +checksum = "add9a102807b524ec050363f09e06f1504214b0e1c7797f64261c891022dce8b" dependencies = [ "bitflags", "byteorder", @@ -488,9 +533,9 @@ dependencies = [ [[package]] name = "dynasmrt" -version = "1.2.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d428afc93ad288f6dffc1fa5f4a78201ad2eec33c5a522e51c181009eb09061" +checksum = "64fba5a42bd76a17cad4bfa00de168ee1cbfa06a5e8ce992ae880218c05641a9" dependencies = [ "byteorder", "dynasm", @@ -499,9 +544,9 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.13.4" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" +checksum = "e852f4174d2a8646a0fa8a34b55797856c722f86267deb0aa1e93f7f247f800e" dependencies = [ "der", "elliptic-curve", @@ -519,7 +564,7 @@ dependencies = [ "hex", "rand_core 0.6.3", "serde", - "sha2", + "sha2 0.9.9", "thiserror", "zeroize", ] @@ -532,16 +577,18 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "elliptic-curve" -version = "0.11.12" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ "base16ct", "crypto-bigint", "der", + "digest 0.10.3", "ff", "generic-array", "group", + "pkcs8", "rand_core 0.6.3", "sec1", "subtle", @@ -618,9 +665,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "ff" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2958d04124b9f27f175eaeb9a9f383d026098aa837eadd8ba22c11f13a05b9e" +checksum = "df689201f395c6b90dfe87127685f8dbfc083a5e779e613575d8bd7314300c3e" dependencies = [ "rand_core 0.6.3", "subtle", @@ -672,26 +719,20 @@ dependencies = [ [[package]] name = "gimli" -version = "0.25.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" +checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" dependencies = [ "fallible-iterator", "indexmap", "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" - [[package]] name = "group" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" +checksum = "7391856def869c1c81063a03457c676fbcd419709c3dfb33d8d319de484b154d" dependencies = [ "ff", "rand_core 0.6.3", @@ -739,12 +780,11 @@ 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", + "digest 0.10.3", ] [[package]] @@ -781,15 +821,14 @@ dependencies = [ [[package]] name = "k256" -version = "0.10.4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c3a5e0a0b8450278feda242592512e09f61c72e018b8cd5c859482802daf2d" +checksum = "6db2573d3fd3e4cc741affc9b5ce1a8ce36cf29f09f80f36da4309d0ae6d7854" dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", - "sec1", - "sha2", + "sha2 0.10.3", ] [[package]] @@ -962,13 +1001,12 @@ checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" [[package]] name = "pkcs8" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ "der", "spki", - "zeroize", ] [[package]] @@ -1124,9 +1162,9 @@ dependencies = [ [[package]] name = "regalloc" -version = "0.0.31" +version = "0.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" dependencies = [ "log", "rustc-hash", @@ -1165,9 +1203,9 @@ dependencies = [ [[package]] name = "rfc6979" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" +checksum = "88c86280f057430a52f4861551b092a01b419b8eacefc7c995eacb9dc132fe32" dependencies = [ "crypto-bigint", "hmac", @@ -1261,10 +1299,11 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "sec1" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ + "base16ct", "der", "generic-array", "pkcs8", @@ -1338,20 +1377,31 @@ version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ - "block-buffer", + "block-buffer 0.9.0", "cfg-if", "cpufeatures", - "digest", + "digest 0.9.0", "opaque-debug", ] +[[package]] +name = "sha2" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899bf02746a2c92bf1053d9327dadb252b01af1f81f90cdb902411f518bc7215" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.3", +] + [[package]] name = "signature" -version = "1.3.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2807892cfa58e081aa1f1111391c7a0649d4fa127a4ffbe34bcbfb35a1171a4" +checksum = "f0ea32af43239f0d353a7dd75a22d94c329c8cdaafdcb4c1c1335aa10c298a4a" dependencies = [ - "digest", + "digest 0.10.3", "rand_core 0.6.3", ] @@ -1363,9 +1413,9 @@ checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" [[package]] name = "spki" -version = "0.5.4" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", "der", @@ -1601,9 +1651,9 @@ checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "wasmer" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f727a39e7161f7438ddb8eafe571b67c576a8c2fb459f666d9053b5bba4afdea" +checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" dependencies = [ "cfg-if", "indexmap", @@ -1613,6 +1663,7 @@ dependencies = [ "target-lexicon", "thiserror", "wasm-bindgen", + "wasmer-artifact", "wasmer-compiler", "wasmer-compiler-cranelift", "wasmer-compiler-singlepass", @@ -1625,11 +1676,24 @@ dependencies = [ "winapi", ] +[[package]] +name = "wasmer-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" +dependencies = [ + "enumset", + "loupe", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + [[package]] name = "wasmer-compiler" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9951599222eb12bd13d4d91bcded0a880e4c22c2dfdabdf5dc7e5e803b7bf3" +checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" dependencies = [ "enumset", "loupe", @@ -1640,20 +1704,19 @@ dependencies = [ "target-lexicon", "thiserror", "wasmer-types", - "wasmer-vm", "wasmparser", ] [[package]] name = "wasmer-compiler-cranelift" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c83273bce44e668f3a2b9ccb7f1193db918b1d6806f64acc5ff71f6ece5f20" +checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "gimli 0.25.0", + "gimli", "loupe", "more-asserts", "rayon", @@ -1662,18 +1725,18 @@ dependencies = [ "tracing", "wasmer-compiler", "wasmer-types", - "wasmer-vm", ] [[package]] name = "wasmer-compiler-singlepass" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5432e993840cdb8e6875ddc8c9eea64e7a129579b4706bd91b8eb474d9c4a860" +checksum = "29ca2a35204d8befa85062bc7aac259a8db8070b801b8a783770ba58231d729e" dependencies = [ "byteorder", "dynasm", "dynasmrt", + "gimli", "lazy_static", "loupe", "more-asserts", @@ -1681,14 +1744,13 @@ dependencies = [ "smallvec", "wasmer-compiler", "wasmer-types", - "wasmer-vm", ] [[package]] name = "wasmer-derive" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458dbd9718a837e6dbc52003aef84487d79eedef5fa28c7d28b6784be98ac08e" +checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" dependencies = [ "proc-macro-error", "proc-macro2", @@ -1698,9 +1760,9 @@ dependencies = [ [[package]] name = "wasmer-engine" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed603a6d037ebbb14014d7f739ae996a78455a4b86c41cfa4e81c590a1253b9" +checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" dependencies = [ "backtrace", "enumset", @@ -1713,6 +1775,7 @@ dependencies = [ "serde_bytes", "target-lexicon", "thiserror", + "wasmer-artifact", "wasmer-compiler", "wasmer-types", "wasmer-vm", @@ -1720,9 +1783,9 @@ dependencies = [ [[package]] name = "wasmer-engine-dylib" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccd7fdc60e252a795c849b3f78a81a134783051407e7e279c10b7019139ef8dc" +checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" dependencies = [ "cfg-if", "enum-iterator", @@ -1735,6 +1798,7 @@ dependencies = [ "serde", "tempfile", "tracing", + "wasmer-artifact", "wasmer-compiler", "wasmer-engine", "wasmer-object", @@ -1745,12 +1809,11 @@ dependencies = [ [[package]] name = "wasmer-engine-universal" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcff0cd2c01a8de6009fd863b14ea883132a468a24f2d2ee59dc34453d3a31b5" +checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" dependencies = [ "cfg-if", - "enum-iterator", "enumset", "leb128", "loupe", @@ -1758,16 +1821,33 @@ dependencies = [ "rkyv", "wasmer-compiler", "wasmer-engine", + "wasmer-engine-universal-artifact", "wasmer-types", "wasmer-vm", "winapi", ] +[[package]] +name = "wasmer-engine-universal-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +dependencies = [ + "enum-iterator", + "enumset", + "loupe", + "rkyv", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", +] + [[package]] name = "wasmer-middlewares" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "659775db15684f4674c3a8967409682c2eb44f63cc21121fa3dcd975c03ab887" +checksum = "d7812438ed2f37203a37007cdb5332b8475cb2b16e15d51299b2647894e9ed3a" dependencies = [ "loupe", "wasmer", @@ -1777,9 +1857,9 @@ dependencies = [ [[package]] name = "wasmer-object" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ce18ac2877050e59580d27ee1a88f3192d7a31e77fbba0852abc7888d6e0b5" +checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" dependencies = [ "object 0.28.3", "thiserror", @@ -1789,12 +1869,15 @@ dependencies = [ [[package]] name = "wasmer-types" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "659fa3dd6c76f62630deff4ac8c7657b07f0b1e4d7e0f8243a552b9d9b448e24" +checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" dependencies = [ + "backtrace", + "enum-iterator", "indexmap", "loupe", + "more-asserts", "rkyv", "serde", "thiserror", @@ -1802,32 +1885,37 @@ dependencies = [ [[package]] name = "wasmer-vm" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afdc46158517c2769f9938bc222a7d41b3bb330824196279d8aa2d667cd40641" +checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" dependencies = [ "backtrace", "cc", "cfg-if", + "corosensei", "enum-iterator", "indexmap", + "lazy_static", "libc", "loupe", + "mach", "memoffset", "more-asserts", "region", "rkyv", + "scopeguard", "serde", "thiserror", + "wasmer-artifact", "wasmer-types", "winapi", ] [[package]] name = "wasmparser" -version = "0.78.2" +version = "0.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] name = "wasmvm" @@ -1886,6 +1974,49 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" + +[[package]] +name = "windows_i686_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" + +[[package]] +name = "windows_i686_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" + [[package]] name = "zeroize" version = "1.5.7" diff --git a/libwasmvm/Cargo.toml b/libwasmvm/Cargo.toml index 1127a6b..0764158 100644 --- a/libwasmvm/Cargo.toml +++ b/libwasmvm/Cargo.toml @@ -26,8 +26,8 @@ default = [] backtraces = [] [dependencies] -cosmwasm-std = { git = "https://github.com/CosmWasm/cosmwasm.git", rev = "v1.0.0", features = ["staking", "stargate", "iterator"] } -cosmwasm-vm = { git = "https://github.com/CosmWasm/cosmwasm.git", rev = "v1.0.0", features = ["staking", "stargate", "iterator"] } +cosmwasm-std = { git = "https://github.com/CosmWasm/cosmwasm.git", rev = "v1.1.0-rc.1", features = ["staking", "stargate", "iterator"] } +cosmwasm-vm = { git = "https://github.com/CosmWasm/cosmwasm.git", rev = "v1.1.0-rc.1", features = ["staking", "stargate", "iterator"] } errno = "0.2" serde_json = "1.0" thiserror = "1.0" diff --git a/libwasmvm/src/cache.rs b/libwasmvm/src/cache.rs index 47684f5..97037a0 100644 --- a/libwasmvm/src/cache.rs +++ b/libwasmvm/src/cache.rs @@ -3,7 +3,7 @@ use std::convert::TryInto; use std::panic::{catch_unwind, AssertUnwindSafe}; use std::str::from_utf8; -use cosmwasm_vm::{features_from_csv, Cache, CacheOptions, Checksum, Size}; +use cosmwasm_vm::{capabilities_from_csv, Cache, CacheOptions, Checksum, Size}; use crate::api::GoApi; use crate::args::{CACHE_ARG, CHECKSUM_ARG, DATA_DIR_ARG, FEATURES_ARG, WASM_ARG}; @@ -46,7 +46,7 @@ pub extern "C" fn init_cache( fn do_init_cache( data_dir: ByteSliceView, - supported_features: ByteSliceView, + supported_capabilities: ByteSliceView, cache_size: u32, // in MiB instance_memory_limit: u32, // in MiB ) -> Result<*mut Cache, Error> { @@ -55,11 +55,10 @@ fn do_init_cache( .ok_or_else(|| Error::unset_arg(DATA_DIR_ARG))?; let dir_str = String::from_utf8(dir.to_vec())?; // parse the supported features - let features_bin = supported_features + let capabilities_bin = supported_capabilities .read() .ok_or_else(|| Error::unset_arg(FEATURES_ARG))?; - let features_str = from_utf8(features_bin)?; - let features = features_from_csv(features_str); + let capabilities = capabilities_from_csv(from_utf8(capabilities_bin)?); let memory_cache_size = Size::mebi( cache_size .try_into() @@ -72,7 +71,7 @@ fn do_init_cache( ); let options = CacheOptions { base_dir: dir_str.into(), - supported_features: features, + available_capabilities: capabilities, memory_cache_size, instance_memory_limit, }; @@ -202,13 +201,13 @@ impl From for AnalysisReport { fn from(report: cosmwasm_vm::AnalysisReport) -> Self { let cosmwasm_vm::AnalysisReport { has_ibc_entry_points, - required_features, + required_capabilities, } = report; - let required_features_utf8 = set_to_csv(required_features).into_bytes(); + let required_capabilities_utf8 = set_to_csv(required_capabilities).into_bytes(); AnalysisReport { has_ibc_entry_points, - required_features: UnmanagedVector::new(Some(required_features_utf8)), + required_features: UnmanagedVector::new(Some(required_capabilities_utf8)), } } } @@ -601,10 +600,10 @@ mod tests { ); let _ = error_msg.consume(); assert!(ibc_reflect_report.has_ibc_entry_points); - let required_features = + let required_capabilities = String::from_utf8_lossy(&ibc_reflect_report.required_features.consume().unwrap()) .to_string(); - assert_eq!(required_features, "iterator,stargate"); + assert_eq!(required_capabilities, "iterator,stargate"); release_cache(cache_ptr); } diff --git a/libwasmvm/src/tests.rs b/libwasmvm/src/tests.rs index 0889897..8101029 100644 --- a/libwasmvm/src/tests.rs +++ b/libwasmvm/src/tests.rs @@ -6,7 +6,7 @@ use tempfile::TempDir; use cosmwasm_std::coins; use cosmwasm_vm::testing::{mock_backend, mock_env, mock_info, mock_instance_with_gas_limit}; use cosmwasm_vm::{ - call_execute_raw, call_instantiate_raw, features_from_csv, to_vec, Cache, CacheOptions, + call_execute_raw, call_instantiate_raw, capabilities_from_csv, to_vec, Cache, CacheOptions, InstanceOptions, Size, }; @@ -40,7 +40,7 @@ fn handle_cpu_loop_with_cache() { let backend = mock_backend(&[]); let options = CacheOptions { base_dir: TempDir::new().unwrap().path().to_path_buf(), - supported_features: features_from_csv("staking"), + available_capabilities: capabilities_from_csv("staking"), memory_cache_size: MEMORY_CACHE_SIZE, instance_memory_limit: MEMORY_LIMIT, }; From fb974477a7674fb8606d4fa42e1db3316ed268b2 Mon Sep 17 00:00:00 2001 From: Expotential108 Date: Thu, 1 Sep 2022 15:29:48 +0200 Subject: [PATCH 4/7] Adjust memory size in tests --- internal/api/lib_test.go | 16 ++++++++-------- lib_test.go | 16 ++++++++-------- libwasmvm/src/cache.rs | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/internal/api/lib_test.go b/internal/api/lib_test.go index 3e983e8..b4bff8d 100644 --- a/internal/api/lib_test.go +++ b/internal/api/lib_test.go @@ -201,7 +201,7 @@ func TestGetMetrics(t *testing.T) { assert.Equal(t, &types.Metrics{ HitsFsCache: 1, ElementsMemoryCache: 1, - SizeMemoryCache: 5665691, + SizeMemoryCache: 5602873, }, metrics) // Instantiate 2 @@ -216,7 +216,7 @@ func TestGetMetrics(t *testing.T) { HitsMemoryCache: 1, HitsFsCache: 1, ElementsMemoryCache: 1, - SizeMemoryCache: 5665691, + SizeMemoryCache: 5602873, }, metrics) // Pin @@ -231,8 +231,8 @@ func TestGetMetrics(t *testing.T) { HitsFsCache: 1, ElementsPinnedMemoryCache: 1, ElementsMemoryCache: 1, - SizePinnedMemoryCache: 5665691, - SizeMemoryCache: 5665691, + SizePinnedMemoryCache: 5602873, + SizeMemoryCache: 5602873, }, metrics) // Instantiate 3 @@ -249,8 +249,8 @@ func TestGetMetrics(t *testing.T) { HitsFsCache: 1, ElementsPinnedMemoryCache: 1, ElementsMemoryCache: 1, - SizePinnedMemoryCache: 5665691, - SizeMemoryCache: 5665691, + SizePinnedMemoryCache: 5602873, + SizeMemoryCache: 5602873, }, metrics) // Unpin @@ -267,7 +267,7 @@ func TestGetMetrics(t *testing.T) { ElementsPinnedMemoryCache: 0, ElementsMemoryCache: 1, SizePinnedMemoryCache: 0, - SizeMemoryCache: 5665691, + SizeMemoryCache: 5602873, }, metrics) // Instantiate 4 @@ -285,7 +285,7 @@ func TestGetMetrics(t *testing.T) { ElementsPinnedMemoryCache: 0, ElementsMemoryCache: 1, SizePinnedMemoryCache: 0, - SizeMemoryCache: 5665691, + SizeMemoryCache: 5602873, }, metrics) } diff --git a/lib_test.go b/lib_test.go index 5fb8dd5..0406b65 100644 --- a/lib_test.go +++ b/lib_test.go @@ -198,7 +198,7 @@ func TestGetMetrics(t *testing.T) { assert.Equal(t, &types.Metrics{ HitsFsCache: 1, ElementsMemoryCache: 1, - SizeMemoryCache: 5665691, + SizeMemoryCache: 5602873, }, metrics) // Instantiate 2 @@ -214,7 +214,7 @@ func TestGetMetrics(t *testing.T) { HitsMemoryCache: 1, HitsFsCache: 1, ElementsMemoryCache: 1, - SizeMemoryCache: 5665691, + SizeMemoryCache: 5602873, }, metrics) // Pin @@ -229,8 +229,8 @@ func TestGetMetrics(t *testing.T) { HitsFsCache: 1, ElementsPinnedMemoryCache: 1, ElementsMemoryCache: 1, - SizePinnedMemoryCache: 5665691, - SizeMemoryCache: 5665691, + SizePinnedMemoryCache: 5602873, + SizeMemoryCache: 5602873, }, metrics) // Instantiate 3 @@ -248,8 +248,8 @@ func TestGetMetrics(t *testing.T) { HitsFsCache: 1, ElementsPinnedMemoryCache: 1, ElementsMemoryCache: 1, - SizePinnedMemoryCache: 5665691, - SizeMemoryCache: 5665691, + SizePinnedMemoryCache: 5602873, + SizeMemoryCache: 5602873, }, metrics) // Unpin @@ -266,7 +266,7 @@ func TestGetMetrics(t *testing.T) { ElementsPinnedMemoryCache: 0, ElementsMemoryCache: 1, SizePinnedMemoryCache: 0, - SizeMemoryCache: 5665691, + SizeMemoryCache: 5602873, }, metrics) // Instantiate 4 @@ -285,6 +285,6 @@ func TestGetMetrics(t *testing.T) { ElementsPinnedMemoryCache: 0, ElementsMemoryCache: 1, SizePinnedMemoryCache: 0, - SizeMemoryCache: 5665691, + SizeMemoryCache: 5602873, }, metrics) } diff --git a/libwasmvm/src/cache.rs b/libwasmvm/src/cache.rs index 97037a0..42808da 100644 --- a/libwasmvm/src/cache.rs +++ b/libwasmvm/src/cache.rs @@ -701,7 +701,7 @@ mod tests { misses: 0, elements_pinned_memory_cache: 1, elements_memory_cache: 0, - size_pinned_memory_cache: 5665691, + size_pinned_memory_cache: 5602873, size_memory_cache: 0, } ); From 93b019e1ab58264d35cb87374b3183e501492a2d Mon Sep 17 00:00:00 2001 From: Expotential108 Date: Thu, 1 Sep 2022 16:00:51 +0200 Subject: [PATCH 5/7] Rename field to required_capabilities in AnalysisReport --- ibc_test.go | 2 ++ internal/api/bindings.h | 6 +++--- internal/api/lib.go | 6 ++++-- libwasmvm/bindings.h | 6 +++--- libwasmvm/src/cache.rs | 15 +++++++++------ types/types.go | 4 +++- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/ibc_test.go b/ibc_test.go index 3f47e15..5fe24c2 100644 --- a/ibc_test.go +++ b/ibc_test.go @@ -284,6 +284,7 @@ func TestAnalyzeCode(t *testing.T) { require.NoError(t, err) require.False(t, report.HasIBCEntryPoints) require.Equal(t, "", report.RequiredFeatures) + require.Equal(t, "", report.RequiredCapabilities) // Store IBC contract wasm2, err := ioutil.ReadFile(IBC_TEST_CONTRACT) @@ -295,6 +296,7 @@ func TestAnalyzeCode(t *testing.T) { require.NoError(t, err) require.True(t, report2.HasIBCEntryPoints) require.Equal(t, "iterator,stargate", report2.RequiredFeatures) + require.Equal(t, "iterator,stargate", report2.RequiredCapabilities) } func TestIBCMsgGetChannel(t *testing.T) { diff --git a/internal/api/bindings.h b/internal/api/bindings.h index c07c06f..f25f982 100644 --- a/internal/api/bindings.h +++ b/internal/api/bindings.h @@ -196,17 +196,17 @@ typedef struct UnmanagedVector { /** * The result type of the FFI function analyze_code. * - * Please note that the unmanaged vector in `required_features` + * Please note that the unmanaged vector in `required_capabilities` * has to be destroyed exactly once. When calling `analyze_code` * from Go this is done via `C.destroy_unmanaged_vector`. */ typedef struct AnalysisReport { bool has_ibc_entry_points; /** - * An UTF-8 encoded comma separated list of reqired features. + * An UTF-8 encoded comma separated list of reqired capabilities. * This is never None/nil. */ - struct UnmanagedVector required_features; + struct UnmanagedVector required_capabilities; } AnalysisReport; typedef struct Metrics { diff --git a/internal/api/lib.go b/internal/api/lib.go index a12da77..e81d9d7 100644 --- a/internal/api/lib.go +++ b/internal/api/lib.go @@ -108,9 +108,11 @@ func AnalyzeCode(cache Cache, checksum []byte) (*types.AnalysisReport, error) { if err != nil { return nil, errorWithMessage(err, errmsg) } + requiredCapabilities := string(copyAndDestroyUnmanagedVector(report.required_capabilities)) res := types.AnalysisReport{ - HasIBCEntryPoints: bool(report.has_ibc_entry_points), - RequiredFeatures: string(copyAndDestroyUnmanagedVector(report.required_features)), + HasIBCEntryPoints: bool(report.has_ibc_entry_points), + RequiredFeatures: requiredCapabilities, + RequiredCapabilities: requiredCapabilities, } return &res, nil } diff --git a/libwasmvm/bindings.h b/libwasmvm/bindings.h index c07c06f..f25f982 100644 --- a/libwasmvm/bindings.h +++ b/libwasmvm/bindings.h @@ -196,17 +196,17 @@ typedef struct UnmanagedVector { /** * The result type of the FFI function analyze_code. * - * Please note that the unmanaged vector in `required_features` + * Please note that the unmanaged vector in `required_capabilities` * has to be destroyed exactly once. When calling `analyze_code` * from Go this is done via `C.destroy_unmanaged_vector`. */ typedef struct AnalysisReport { bool has_ibc_entry_points; /** - * An UTF-8 encoded comma separated list of reqired features. + * An UTF-8 encoded comma separated list of reqired capabilities. * This is never None/nil. */ - struct UnmanagedVector required_features; + struct UnmanagedVector required_capabilities; } AnalysisReport; typedef struct Metrics { diff --git a/libwasmvm/src/cache.rs b/libwasmvm/src/cache.rs index 42808da..8b6f330 100644 --- a/libwasmvm/src/cache.rs +++ b/libwasmvm/src/cache.rs @@ -185,16 +185,16 @@ fn do_unpin( /// The result type of the FFI function analyze_code. /// -/// Please note that the unmanaged vector in `required_features` +/// Please note that the unmanaged vector in `required_capabilities` /// has to be destroyed exactly once. When calling `analyze_code` /// from Go this is done via `C.destroy_unmanaged_vector`. #[repr(C)] #[derive(Copy, Clone, Default, Debug, PartialEq)] pub struct AnalysisReport { pub has_ibc_entry_points: bool, - /// An UTF-8 encoded comma separated list of reqired features. + /// An UTF-8 encoded comma separated list of reqired capabilities. /// This is never None/nil. - pub required_features: UnmanagedVector, + pub required_capabilities: UnmanagedVector, } impl From for AnalysisReport { @@ -207,7 +207,7 @@ impl From for AnalysisReport { let required_capabilities_utf8 = set_to_csv(required_capabilities).into_bytes(); AnalysisReport { has_ibc_entry_points, - required_features: UnmanagedVector::new(Some(required_capabilities_utf8)), + required_capabilities: UnmanagedVector::new(Some(required_capabilities_utf8)), } } } @@ -590,7 +590,10 @@ mod tests { ); let _ = error_msg.consume(); assert!(!hackatom_report.has_ibc_entry_points); - assert_eq!(hackatom_report.required_features.consume().unwrap(), b""); + assert_eq!( + hackatom_report.required_capabilities.consume().unwrap(), + b"" + ); let mut error_msg = UnmanagedVector::default(); let ibc_reflect_report = analyze_code( @@ -601,7 +604,7 @@ mod tests { let _ = error_msg.consume(); assert!(ibc_reflect_report.has_ibc_entry_points); let required_capabilities = - String::from_utf8_lossy(&ibc_reflect_report.required_features.consume().unwrap()) + String::from_utf8_lossy(&ibc_reflect_report.required_capabilities.consume().unwrap()) .to_string(); assert_eq!(required_capabilities, "iterator,stargate"); diff --git a/types/types.go b/types/types.go index 17d3b0c..f67b566 100644 --- a/types/types.go +++ b/types/types.go @@ -62,7 +62,9 @@ func (o OutOfGasError) Error() string { // This type is returned by VM.AnalyzeCode(). type AnalysisReport struct { HasIBCEntryPoints bool - RequiredFeatures string + // Deprecated, use RequiredCapabilities. For now both fields contain the same value. + RequiredFeatures string + RequiredCapabilities string } type Metrics struct { From 39912e8eaa224240c1405453637c3fe1766d7f03 Mon Sep 17 00:00:00 2001 From: Expotential108 Date: Thu, 1 Sep 2022 16:14:38 +0200 Subject: [PATCH 6/7] Rename init_cache argument to available_capabilities --- internal/api/bindings.h | 2 +- libwasmvm/bindings.h | 2 +- libwasmvm/src/args.rs | 2 +- libwasmvm/src/cache.rs | 12 ++++++------ 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/internal/api/bindings.h b/internal/api/bindings.h index f25f982..1d8c973 100644 --- a/internal/api/bindings.h +++ b/internal/api/bindings.h @@ -304,7 +304,7 @@ typedef struct GoQuerier { } GoQuerier; struct cache_t *init_cache(struct ByteSliceView data_dir, - struct ByteSliceView supported_features, + struct ByteSliceView available_capabilities, uint32_t cache_size, uint32_t instance_memory_limit, struct UnmanagedVector *error_msg); diff --git a/libwasmvm/bindings.h b/libwasmvm/bindings.h index f25f982..1d8c973 100644 --- a/libwasmvm/bindings.h +++ b/libwasmvm/bindings.h @@ -304,7 +304,7 @@ typedef struct GoQuerier { } GoQuerier; struct cache_t *init_cache(struct ByteSliceView data_dir, - struct ByteSliceView supported_features, + struct ByteSliceView available_capabilities, uint32_t cache_size, uint32_t instance_memory_limit, struct UnmanagedVector *error_msg); diff --git a/libwasmvm/src/args.rs b/libwasmvm/src/args.rs index 180cfa3..69ab5fe 100644 --- a/libwasmvm/src/args.rs +++ b/libwasmvm/src/args.rs @@ -1,6 +1,6 @@ // store some common string for argument names pub const DATA_DIR_ARG: &str = "data_dir"; -pub const FEATURES_ARG: &str = "supported_features"; +pub const AVAILABLE_CAPABILITIES_ARG: &str = "available_capabilities"; pub const CACHE_ARG: &str = "cache"; pub const WASM_ARG: &str = "wasm"; pub const CHECKSUM_ARG: &str = "checksum"; diff --git a/libwasmvm/src/cache.rs b/libwasmvm/src/cache.rs index 8b6f330..2ac1904 100644 --- a/libwasmvm/src/cache.rs +++ b/libwasmvm/src/cache.rs @@ -6,7 +6,7 @@ use std::str::from_utf8; use cosmwasm_vm::{capabilities_from_csv, Cache, CacheOptions, Checksum, Size}; use crate::api::GoApi; -use crate::args::{CACHE_ARG, CHECKSUM_ARG, DATA_DIR_ARG, FEATURES_ARG, WASM_ARG}; +use crate::args::{AVAILABLE_CAPABILITIES_ARG, CACHE_ARG, CHECKSUM_ARG, DATA_DIR_ARG, WASM_ARG}; use crate::error::{handle_c_error_binary, handle_c_error_default, handle_c_error_ptr, Error}; use crate::memory::{ByteSliceView, UnmanagedVector}; use crate::querier::GoQuerier; @@ -27,7 +27,7 @@ pub fn to_cache(ptr: *mut cache_t) -> Option<&'static mut Cache, @@ -35,7 +35,7 @@ pub extern "C" fn init_cache( let r = catch_unwind(|| { do_init_cache( data_dir, - supported_features, + available_capabilities, cache_size, instance_memory_limit, ) @@ -46,7 +46,7 @@ pub extern "C" fn init_cache( fn do_init_cache( data_dir: ByteSliceView, - supported_capabilities: ByteSliceView, + available_capabilities: ByteSliceView, cache_size: u32, // in MiB instance_memory_limit: u32, // in MiB ) -> Result<*mut Cache, Error> { @@ -55,9 +55,9 @@ fn do_init_cache( .ok_or_else(|| Error::unset_arg(DATA_DIR_ARG))?; let dir_str = String::from_utf8(dir.to_vec())?; // parse the supported features - let capabilities_bin = supported_capabilities + let capabilities_bin = available_capabilities .read() - .ok_or_else(|| Error::unset_arg(FEATURES_ARG))?; + .ok_or_else(|| Error::unset_arg(AVAILABLE_CAPABILITIES_ARG))?; let capabilities = capabilities_from_csv(from_utf8(capabilities_bin)?); let memory_cache_size = Size::mebi( cache_size From b96bd27ed3d3a6cb93ceab8aa8f5298d356008ec Mon Sep 17 00:00:00 2001 From: Expotential108 Date: Mon, 5 Sep 2022 13:08:55 +0200 Subject: [PATCH 7/7] Upgrade to 1.1.0 --- libwasmvm/Cargo.lock | 18 +++++++++--------- libwasmvm/Cargo.toml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/libwasmvm/Cargo.lock b/libwasmvm/Cargo.lock index d6c29e1..bf4a1e1 100644 --- a/libwasmvm/Cargo.lock +++ b/libwasmvm/Cargo.lock @@ -217,8 +217,8 @@ dependencies = [ [[package]] name = "cosmwasm-crypto" -version = "1.1.0-rc.1" -source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0-rc.1#33e0808011d75b42b1dcda03e4263269b3305819" +version = "1.1.0" +source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0#6082e8a35a193f1365cb3367f77bd87c593a7ae4" dependencies = [ "digest 0.10.3", "ed25519-zebra", @@ -229,16 +229,16 @@ dependencies = [ [[package]] name = "cosmwasm-derive" -version = "1.1.0-rc.1" -source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0-rc.1#33e0808011d75b42b1dcda03e4263269b3305819" +version = "1.1.0" +source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0#6082e8a35a193f1365cb3367f77bd87c593a7ae4" dependencies = [ "syn", ] [[package]] name = "cosmwasm-std" -version = "1.1.0-rc.1" -source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0-rc.1#33e0808011d75b42b1dcda03e4263269b3305819" +version = "1.1.0" +source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0#6082e8a35a193f1365cb3367f77bd87c593a7ae4" dependencies = [ "base64", "cosmwasm-crypto", @@ -254,8 +254,8 @@ dependencies = [ [[package]] name = "cosmwasm-vm" -version = "1.1.0-rc.1" -source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0-rc.1#33e0808011d75b42b1dcda03e4263269b3305819" +version = "1.1.0" +source = "git+https://github.com/CosmWasm/cosmwasm.git?rev=v1.1.0#6082e8a35a193f1365cb3367f77bd87c593a7ae4" dependencies = [ "clru", "cosmwasm-crypto", @@ -266,7 +266,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "sha2 0.9.9", + "sha2 0.10.3", "thiserror", "wasmer", "wasmer-middlewares", diff --git a/libwasmvm/Cargo.toml b/libwasmvm/Cargo.toml index 0764158..1768ecb 100644 --- a/libwasmvm/Cargo.toml +++ b/libwasmvm/Cargo.toml @@ -26,8 +26,8 @@ default = [] backtraces = [] [dependencies] -cosmwasm-std = { git = "https://github.com/CosmWasm/cosmwasm.git", rev = "v1.1.0-rc.1", features = ["staking", "stargate", "iterator"] } -cosmwasm-vm = { git = "https://github.com/CosmWasm/cosmwasm.git", rev = "v1.1.0-rc.1", features = ["staking", "stargate", "iterator"] } +cosmwasm-std = { git = "https://github.com/CosmWasm/cosmwasm.git", rev = "v1.1.0", features = ["staking", "stargate", "iterator"] } +cosmwasm-vm = { git = "https://github.com/CosmWasm/cosmwasm.git", rev = "v1.1.0", features = ["staking", "stargate", "iterator"] } errno = "0.2" serde_json = "1.0" thiserror = "1.0"