diff --git a/.circleci/config.yml b/.circleci/config.yml index 166f2be8be..425c01533d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1036,7 +1036,7 @@ jobs: name: Build development contracts command: | echo "Building all contracts under ./contracts" - docker run --volumes-from with_code cosmwasm/rust-optimizer:0.12.11 ./contracts/*/ + docker run --volumes-from with_code cosmwasm/rust-optimizer:0.12.13 ./contracts/*/ - run: name: Check development contracts command: | diff --git a/README.md b/README.md index f2c06ae3b8..cb619b1dff 100644 --- a/README.md +++ b/README.md @@ -412,7 +412,7 @@ but the quickstart guide is: docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 + cosmwasm/rust-optimizer:0.12.13 ``` It will output a highly size-optimized build as `contract.wasm` in `$CODE`. With diff --git a/contracts/README.md b/contracts/README.md index f4b931d197..845af6995d 100644 --- a/contracts/README.md +++ b/contracts/README.md @@ -53,52 +53,52 @@ reason, use the following commands: docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_burner",target=/code/contracts/burner/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/burner + cosmwasm/rust-optimizer:0.12.13 ./contracts/burner docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_crypto_verify",target=/code/contracts/crypto-verify/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/crypto-verify + cosmwasm/rust-optimizer:0.12.13 ./contracts/crypto-verify docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_floaty",target=/code/contracts/floaty/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/floaty + cosmwasm/rust-optimizer:0.12.13 ./contracts/floaty docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_hackatom",target=/code/contracts/hackatom/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/hackatom + cosmwasm/rust-optimizer:0.12.13 ./contracts/hackatom docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_ibc_reflect",target=/code/contracts/ibc-reflect/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/ibc-reflect + cosmwasm/rust-optimizer:0.12.13 ./contracts/ibc-reflect docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_ibc_reflect_send",target=/code/contracts/ibc-reflect-send/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/ibc-reflect-send + cosmwasm/rust-optimizer:0.12.13 ./contracts/ibc-reflect-send docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_queue",target=/code/contracts/queue/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/queue + cosmwasm/rust-optimizer:0.12.13 ./contracts/queue docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_reflect",target=/code/contracts/reflect/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/reflect + cosmwasm/rust-optimizer:0.12.13 ./contracts/reflect docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_staking",target=/code/contracts/staking/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/staking + cosmwasm/rust-optimizer:0.12.13 ./contracts/staking docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_virus",target=/code/contracts/virus/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/virus + cosmwasm/rust-optimizer:0.12.13 ./contracts/virus ``` ## Entry points diff --git a/packages/vm/README.md b/packages/vm/README.md index 26baa85caa..7fc48e561f 100644 --- a/packages/vm/README.md +++ b/packages/vm/README.md @@ -53,26 +53,26 @@ To rebuild the test contracts, go to the repo root and do docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_cyberpunk",target=/code/contracts/cyberpunk/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/cyberpunk \ + cosmwasm/rust-optimizer:0.12.13 ./contracts/cyberpunk \ && cp artifacts/cyberpunk.wasm packages/vm/testdata/cyberpunk.wasm docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_hackatom",target=/code/contracts/hackatom/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/hackatom \ - && cp artifacts/hackatom.wasm packages/vm/testdata/hackatom_1.0.wasm + cosmwasm/rust-optimizer:0.12.13 ./contracts/hackatom \ + && cp artifacts/hackatom.wasm packages/vm/testdata/hackatom_1.2.wasm docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_ibc_reflect",target=/code/contracts/ibc-reflect/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/ibc-reflect \ - && cp artifacts/ibc_reflect.wasm packages/vm/testdata/ibc_reflect_1.0.wasm + cosmwasm/rust-optimizer:0.12.13 ./contracts/ibc-reflect \ + && cp artifacts/ibc_reflect.wasm packages/vm/testdata/ibc_reflect_1.2.wasm docker run --rm -v "$(pwd)":/code \ --mount type=volume,source="devcontract_cache_floaty",target=/code/contracts/floaty/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/rust-optimizer:0.12.11 ./contracts/floaty \ - && cp artifacts/floaty.wasm packages/vm/testdata/floaty_1.0.wasm + cosmwasm/rust-optimizer:0.12.13 ./contracts/floaty \ + && cp artifacts/floaty.wasm packages/vm/testdata/floaty_1.2.wasm ``` ## Testing diff --git a/packages/vm/src/cache.rs b/packages/vm/src/cache.rs index 3984e5e114..36c18a6ad1 100644 --- a/packages/vm/src/cache.rs +++ b/packages/vm/src/cache.rs @@ -1102,9 +1102,8 @@ mod tests { report2, AnalysisReport { has_ibc_entry_points: true, - required_capabilities: HashSet::from_iter(vec![ + required_capabilities: HashSet::from_iter([ "iterator".to_string(), - "staking".to_string(), "stargate".to_string() ]), } diff --git a/packages/vm/src/environment.rs b/packages/vm/src/environment.rs index d66aa88c8b..4072b3fbbd 100644 --- a/packages/vm/src/environment.rs +++ b/packages/vm/src/environment.rs @@ -413,6 +413,7 @@ mod tests { "ed25519_verify" => Function::new_native(store, |_a: u32, _b: u32, _c: u32| -> u32 { 0 }), "ed25519_batch_verify" => Function::new_native(store, |_a: u32, _b: u32, _c: u32| -> u32 { 0 }), "debug" => Function::new_native(store, |_a: u32| {}), + "abort" => Function::new_native(store, |_a: u32| {}), }, }; let instance = Box::from(WasmerInstance::new(&module, &import_obj).unwrap()); diff --git a/packages/vm/src/imports.rs b/packages/vm/src/imports.rs index 7932887928..bae11f403c 100644 --- a/packages/vm/src/imports.rs +++ b/packages/vm/src/imports.rs @@ -561,6 +561,7 @@ mod tests { "ed25519_verify" => Function::new_native(store, |_a: u32, _b: u32, _c: u32| -> u32 { 0 }), "ed25519_batch_verify" => Function::new_native(store, |_a: u32, _b: u32, _c: u32| -> u32 { 0 }), "debug" => Function::new_native(store, |_a: u32| {}), + "abort" => Function::new_native(store, |_a: u32| {}), }, }; let instance = Box::from(WasmerInstance::new(&module, &import_obj).unwrap()); diff --git a/packages/vm/src/instance.rs b/packages/vm/src/instance.rs index 706f261716..dd33e90b2c 100644 --- a/packages/vm/src/instance.rs +++ b/packages/vm/src/instance.rs @@ -708,7 +708,7 @@ mod tests { let report2 = instance.create_gas_report(); assert_eq!(report2.used_externally, 73); - assert_eq!(report2.used_internally, 5775750198); + assert_eq!(report2.used_internally, 5764950198); assert_eq!(report2.limit, LIMIT); assert_eq!( report2.remaining, @@ -897,7 +897,7 @@ mod tests { .unwrap(); let init_used = orig_gas - instance.get_gas_left(); - assert_eq!(init_used, 5775750271); + assert_eq!(init_used, 5764950271); } #[test] @@ -920,7 +920,7 @@ mod tests { .unwrap(); let execute_used = gas_before_execute - instance.get_gas_left(); - assert_eq!(execute_used, 8627053606); + assert_eq!(execute_used, 8548903606); } #[test] @@ -954,6 +954,6 @@ mod tests { assert_eq!(answer.as_slice(), b"{\"verifier\":\"verifies\"}"); let query_used = gas_before_query - instance.get_gas_left(); - assert_eq!(query_used, 4438350006); + assert_eq!(query_used, 4493700006); } } diff --git a/packages/vm/testdata/cyberpunk.wasm b/packages/vm/testdata/cyberpunk.wasm index 982acad20c..96737a3388 100644 Binary files a/packages/vm/testdata/cyberpunk.wasm and b/packages/vm/testdata/cyberpunk.wasm differ diff --git a/packages/vm/testdata/floaty.wasm b/packages/vm/testdata/floaty.wasm index 8ae4d6a31d..76b5ee18c7 120000 --- a/packages/vm/testdata/floaty.wasm +++ b/packages/vm/testdata/floaty.wasm @@ -1 +1 @@ -floaty_1.0.wasm \ No newline at end of file +floaty_1.2.wasm \ No newline at end of file diff --git a/packages/vm/testdata/floaty_1.2.wasm b/packages/vm/testdata/floaty_1.2.wasm new file mode 100644 index 0000000000..653c3e884e Binary files /dev/null and b/packages/vm/testdata/floaty_1.2.wasm differ diff --git a/packages/vm/testdata/hackatom.wasm b/packages/vm/testdata/hackatom.wasm index 76495bcd7b..c7941a1a8f 120000 --- a/packages/vm/testdata/hackatom.wasm +++ b/packages/vm/testdata/hackatom.wasm @@ -1 +1 @@ -hackatom_1.0.wasm \ No newline at end of file +hackatom_1.2.wasm \ No newline at end of file diff --git a/packages/vm/testdata/hackatom_1.2.wasm b/packages/vm/testdata/hackatom_1.2.wasm new file mode 100644 index 0000000000..f15360139a Binary files /dev/null and b/packages/vm/testdata/hackatom_1.2.wasm differ diff --git a/packages/vm/testdata/ibc_reflect.wasm b/packages/vm/testdata/ibc_reflect.wasm index c5b6708f3d..b2876f3146 120000 --- a/packages/vm/testdata/ibc_reflect.wasm +++ b/packages/vm/testdata/ibc_reflect.wasm @@ -1 +1 @@ -ibc_reflect_1.0.wasm \ No newline at end of file +ibc_reflect_1.2.wasm \ No newline at end of file diff --git a/packages/vm/testdata/ibc_reflect_1.2.wasm b/packages/vm/testdata/ibc_reflect_1.2.wasm new file mode 100644 index 0000000000..228bdfbfff Binary files /dev/null and b/packages/vm/testdata/ibc_reflect_1.2.wasm differ