From ac29afc7de1ab75d21a93579260858ed0f6c5825 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Fri, 9 Feb 2024 11:54:26 +0000 Subject: [PATCH 01/91] test for CSE function calls --- .../foundry/src/cse/FunctionCall.sol | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/tests/integration/test-data/foundry/src/cse/FunctionCall.sol diff --git a/src/tests/integration/test-data/foundry/src/cse/FunctionCall.sol b/src/tests/integration/test-data/foundry/src/cse/FunctionCall.sol new file mode 100644 index 000000000..58a946064 --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/FunctionCall.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +contract IdentityContract { + + function identity(uint256 x) external pure returns (uint256) { + return x; + } + + function identity_wrapper(uint256 x) external returns (uint256) { + return this.identity_wrapper(x); + } +} + +contract DoubleContract { + + IdentityContract id; + + constructor() { + id = new IdentityContract(); + } + + function double(uint256 x) external returns (uint256) { + return id.identity(x) + id.identity_wrapper((x)); + } +} From f00157758a7862742eed62c26916c262503e13fe Mon Sep 17 00:00:00 2001 From: devops Date: Fri, 9 Feb 2024 12:06:05 +0000 Subject: [PATCH 02/91] Set Version: 0.1.152 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 23c64fda6..611234586 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.150 +0.1.152 diff --git a/pyproject.toml b/pyproject.toml index cdf4f82f6..5e9291b02 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.150" +version = "0.1.152" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index f8c4374bd..47bc56ff6 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.150' +VERSION: Final = '0.1.152' From ea8b4df2fc3f5a97d8daf72c0134be9b649e1daf Mon Sep 17 00:00:00 2001 From: devops Date: Fri, 9 Feb 2024 17:04:42 +0000 Subject: [PATCH 03/91] Set Version: 0.1.153 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 611234586..c64f02bbc 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.152 +0.1.153 diff --git a/pyproject.toml b/pyproject.toml index 0870a2874..78cbfc41a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.152" +version = "0.1.153" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 47bc56ff6..3ee1c11fe 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.152' +VERSION: Final = '0.1.153' From 781820e525d1c3c14dcfb1687e8f0940fbe95898 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Mon, 12 Feb 2024 13:32:14 +0000 Subject: [PATCH 04/91] further examples, tests, and lemmas --- src/kontrol/prove.py | 25 ++++++++++- .../test-data/foundry/foundry.toml | 5 +++ .../test-data/foundry/src/cse/Bounding.sol | 16 +++++++ .../foundry/src/cse/ExternalFunctionCall.sol | 18 ++++++++ .../foundry/src/cse/FunctionCall.sol | 26 ----------- .../test-data/foundry/src/cse/Storage.sol | 43 +++++++++++++++++++ .../test-data/foundry/src/cse/lemmas.k | 33 ++++++++++++++ .../test-data/foundry/test/CSE.t.sol | 29 +++++++++++++ 8 files changed, 168 insertions(+), 27 deletions(-) create mode 100644 src/tests/integration/test-data/foundry/src/cse/Bounding.sol create mode 100644 src/tests/integration/test-data/foundry/src/cse/ExternalFunctionCall.sol delete mode 100644 src/tests/integration/test-data/foundry/src/cse/FunctionCall.sol create mode 100644 src/tests/integration/test-data/foundry/src/cse/Storage.sol create mode 100644 src/tests/integration/test-data/foundry/src/cse/lemmas.k create mode 100644 src/tests/integration/test-data/foundry/test/CSE.t.sol diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index 4d44190fe..d8f732ee7 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -16,7 +16,7 @@ from pyk.prelude.k import GENERATED_TOP_CELL from pyk.prelude.kbool import FALSE, TRUE, notBool from pyk.prelude.kint import intToken -from pyk.prelude.ml import mlEqualsTrue +from pyk.prelude.ml import mlEqualsFalse, mlEqualsTrue from pyk.prelude.string import stringToken from pyk.proof.proof import Proof from pyk.proof.reachability import APRBMCProof, APRProof @@ -572,6 +572,8 @@ def _init_cterm( 'STATUSCODE_CELL': KVariable('STATUSCODE'), 'PROGRAM_CELL': program, 'JUMPDESTS_CELL': KEVM.compute_valid_jumpdests(program), + # TODO: Is this the correct approach for the `` cell? + 'ID_CELL': KVariable('CONTRACT_ID', sort=KSort('Int')), 'ORIGIN_CELL': KVariable('ORIGIN_ID', sort=KSort('Int')), 'CALLER_CELL': KVariable('CALLER_ID', sort=KSort('Int')), 'LOCALMEM_CELL': bytesToken(b''), @@ -609,6 +611,23 @@ def _init_cterm( 'ACCOUNTS_CELL': KEVM.accounts(init_account_list), } init_subst.update(init_subst_test) + else: + # TODO: Understand how to incorporate all of the appropriate contracts, + # together with the structure of their respective storages. For now, + # this is just the account of the contract being executed. + accounts: list[KInner] = [ + KEVM.account_cell( + KVariable('CONTRACT_ID', sort=KSort('Int')), + KVariable('CONTRACT_BAL', sort=KSort('Int')), + program, + KVariable('CONTRACT_STORAGE', sort=KSort('Map')), + KVariable('CONTRACT_ORIGSTORAGE', sort=KSort('Map')), + KVariable('CONTRACT_NONCE', sort=KSort('Int')), + ), + KVariable('ACCOUNTS_REST', sort=KSort('AccountCellMap')), + ] + init_subst_accounts = {'ACCOUNTS_CELL': KEVM.accounts(accounts)} + init_subst.update(init_subst_accounts) if calldata is not None: init_subst['CALLDATA_CELL'] = calldata @@ -623,6 +642,10 @@ def _init_cterm( init_term = Subst(init_subst)(empty_config) init_cterm = CTerm.from_kast(init_term) + # The address of the executing contract is always guaranteed not to be the address of the cheatcode contract + init_cterm = init_cterm.add_constraint( + mlEqualsFalse(KApply('_==Int_', [KVariable('CONTRACT_ID', sort=KSort('Int')), Foundry.address_CHEATCODE()])) + ) init_cterm = KEVM.add_invariant(init_cterm) return init_cterm diff --git a/src/tests/integration/test-data/foundry/foundry.toml b/src/tests/integration/test-data/foundry/foundry.toml index 80964c270..c0878296a 100644 --- a/src/tests/integration/test-data/foundry/foundry.toml +++ b/src/tests/integration/test-data/foundry/foundry.toml @@ -5,3 +5,8 @@ test = 'test' extra_output = ['storageLayout', 'abi', 'evm.methodIdentifiers', 'evm.deployedBytecode.object'] rpc_endpoints = { optimism = "https://optimism.alchemyapi.io/v2/...", mainnet = "${RPC_MAINNET}" } +# use ipfs method to generate the metadata hash, solc's default. +# To not include the metadata hash, to allow for deterministic code: https://docs.soliditylang.org/en/latest/metadata.html, use "none" +bytecode_hash = "none" +# Whether to append the metadata hash to the bytecode +cbor_metadata = false \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry/src/cse/Bounding.sol b/src/tests/integration/test-data/foundry/src/cse/Bounding.sol new file mode 100644 index 000000000..a9e67df51 --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/Bounding.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +interface UIntBinaryOp { + function applyOp(uint256 x, uint256 y) external pure returns (uint256 result); +} + +// CSE challenge: bounded reasoning +contract Multiply is UIntBinaryOp { + + function applyOp(uint256 x, uint256 y) external pure returns (uint256 result) { + for (result = 0; y > 0; y--) { + result += x; + } + } +} diff --git a/src/tests/integration/test-data/foundry/src/cse/ExternalFunctionCall.sol b/src/tests/integration/test-data/foundry/src/cse/ExternalFunctionCall.sol new file mode 100644 index 000000000..9798517bf --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/ExternalFunctionCall.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +interface UIntUnaryOp { + function applyOp(uint256 x) external view returns (uint256); +} + +// CSE challenge: external function call +contract Identity is UIntUnaryOp { + + function identity(uint256 x) external pure returns (uint256) { + return x; + } + + function applyOp(uint256 x) external view returns (uint256) { + return this.identity(x); + } +} \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry/src/cse/FunctionCall.sol b/src/tests/integration/test-data/foundry/src/cse/FunctionCall.sol deleted file mode 100644 index 58a946064..000000000 --- a/src/tests/integration/test-data/foundry/src/cse/FunctionCall.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -contract IdentityContract { - - function identity(uint256 x) external pure returns (uint256) { - return x; - } - - function identity_wrapper(uint256 x) external returns (uint256) { - return this.identity_wrapper(x); - } -} - -contract DoubleContract { - - IdentityContract id; - - constructor() { - id = new IdentityContract(); - } - - function double(uint256 x) external returns (uint256) { - return id.identity(x) + id.identity_wrapper((x)); - } -} diff --git a/src/tests/integration/test-data/foundry/src/cse/Storage.sol b/src/tests/integration/test-data/foundry/src/cse/Storage.sol new file mode 100644 index 000000000..61032c44d --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/Storage.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import { UIntUnaryOp, Identity } from "./ExternalFunctionCall.sol"; + +// CSE challenge: storage variable of a basic type +contract AddConst is UIntUnaryOp { + + uint256 c; + + function setConst(uint256 x) external { + c = x; + } + + function applyOp(uint256 x) external view returns (uint256) { + return x + c; + } +} + +// CSE challenge: storage variable of a contract type +// CSE challenge: cross-contract external function call +contract Double is UIntUnaryOp { + + Identity iv; + + function applyOp(uint256 x) external view returns (uint256) { + return iv.applyOp(x) + iv.applyOp(x); + } +} + +// CSE challenge: storage variable of an interface type +// this is higher-order and not possible in general +// one way of handling this is instantiating the `UIntUnaryOp` +// interface with specific contracts that implement it +// CSE challenge: cross-contract external function call +contract Iterate is UIntUnaryOp { + + UIntUnaryOp f; + + function applyOp(uint256 x) external view returns (uint256) { + return f.applyOp((f.applyOp(x))); + } +} \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry/src/cse/lemmas.k b/src/tests/integration/test-data/foundry/src/cse/lemmas.k new file mode 100644 index 000000000..88f7d6e9d --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/lemmas.k @@ -0,0 +1,33 @@ +requires "evm.md" +requires "foundry.md" + +module CSE-LEMMAS + imports BOOL + imports FOUNDRY + imports INFINITE-GAS + imports INT-SYMBOLIC + imports MAP-SYMBOLIC + imports SET-SYMBOLIC + + // xor in terms of -Int + rule X xorInt maxUInt256 => maxUInt256 -Int X + requires #rangeUInt ( 256 , X ) + [simplification] + + // for-loop chop + rule chop ( ( X:Int +Int Y:Int ) ) ==Int 0 => X ==Int pow256 -Int (Y modInt pow256) + requires #rangeUInt(256, X) andBool 0 <=Int Y + [simplification, concrete(Y)] + + // Set equality needed for discharging `#Not ( #Exists ( ... )` on `` unification + rule { S1:Set #Equals S2:Set |Set SetItem ( X ) } => + { X in S1 } #And + ( { S2 #Equals S1 } #Or { S2 #Equals S1 -Set SetItem ( X ) } ) + [simplification] + +endmodule + +module CSE-LEMMAS-SPEC + imports CSE-LEMMAS + +endmodule \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry/test/CSE.t.sol b/src/tests/integration/test-data/foundry/test/CSE.t.sol new file mode 100644 index 000000000..cbb858e86 --- /dev/null +++ b/src/tests/integration/test-data/foundry/test/CSE.t.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import "forge-std/Test.sol"; +import "../src/CSE/Bounding.sol"; +import "../src/CSE/ExternalFunctionCall.sol"; +import "../src/CSE/Storage.sol"; + +contract CSETest is Test { + Identity i; + Multiply m; + + function setUp() external { + i = new Identity(); + m = new Multiply(); + } + + function test_identity(uint256 x, uint256 y) external view { + vm.assume(x < 2 ** 64 && y < 2 ** 64); + uint256 z = i.applyOp(x) + i.applyOp(y) + i.applyOp(y); + assert(z == x + 2 * y); + } + + function test_multiply(uint x, uint y) external view { + vm.assume(x < 2 ** 64 && y < 2 ** 64); + uint256 z = m.applyOp(x, 10) + m.applyOp(y, 5); + assert (z == 5 * ( 2 * x + y) ); + } +} From 2cc66ade6837855d7bcd82285d5b312698beadfc Mon Sep 17 00:00:00 2001 From: devops Date: Mon, 12 Feb 2024 13:33:10 +0000 Subject: [PATCH 05/91] Set Version: 0.1.155 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 3671a92a3..7a29ae6cd 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.154 +0.1.155 diff --git a/pyproject.toml b/pyproject.toml index 6e2f378c9..e6bf3df9e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.154" +version = "0.1.155" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 77cb22c6c..c9cc451b2 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.154' +VERSION: Final = '0.1.155' From b0d22701537cb4b6999d46ef323754f8b28fbfe8 Mon Sep 17 00:00:00 2001 From: rv-jenkins Date: Mon, 12 Feb 2024 22:24:54 -0700 Subject: [PATCH 06/91] Update dependency: deps/kevm_release (#364) * deps/kevm_release: Set Version 1.0.452 * Set Version: 0.1.155 * Sync Poetry files: kevm-pyk version 1.0.452 * flake.{nix,lock}: update Nix derivations * Sync Poetry files: kevm-pyk version 1.0.452 * Sync Poetry files: kevm-pyk version 1.0.452 * Sync Poetry files: kevm-pyk version 1.0.452 * Sync Poetry files: kevm-pyk version 1.0.452 * Sync Poetry files: kevm-pyk version 1.0.452 * Sync Poetry files: kevm-pyk version 1.0.452 --------- Co-authored-by: devops --- deps/kevm_release | 2 +- flake.lock | 16 ++++++------ flake.nix | 2 +- poetry.lock | 62 +++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 5 files changed, 42 insertions(+), 42 deletions(-) diff --git a/deps/kevm_release b/deps/kevm_release index 93bd0486f..d99b1869a 100644 --- a/deps/kevm_release +++ b/deps/kevm_release @@ -1 +1 @@ -1.0.451 +1.0.452 diff --git a/flake.lock b/flake.lock index 8e6452ec4..15b61e567 100644 --- a/flake.lock +++ b/flake.lock @@ -337,16 +337,16 @@ ] }, "locked": { - "lastModified": 1707590496, - "narHash": "sha256-DNjk5xe80jHoDbAiuVJyKoQe7XslGy3UcFKQE6xOAUc=", + "lastModified": 1707766902, + "narHash": "sha256-WfmdxvWwiYzYmjCelLGbGd/PpZWUf1Zajgsq7THr7YQ=", "owner": "runtimeverification", "repo": "evm-semantics", - "rev": "3ee4b387654818196f593187931405d92ffd13d5", + "rev": "193cfed5dab0f0b7cf23465a92e0c374a08abea5", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v1.0.451", + "ref": "v1.0.452", "repo": "evm-semantics", "type": "github" } @@ -543,16 +543,16 @@ "poetry2nix": "poetry2nix" }, "locked": { - "lastModified": 1707497025, - "narHash": "sha256-7mcEdPkH9GtI96Mzrl9PktScw3M9dqFk6/nSp2gxpYc=", + "lastModified": 1707758872, + "narHash": "sha256-Ak2i9NCIh4koe3y/Cv4CpFJ+PLM3YkxWXtOI0vxjY3g=", "owner": "runtimeverification", "repo": "pyk", - "rev": "e68db42142d1e03d23cabd4cfff9082a08798f12", + "rev": "c33340c65005e17b0afe04fa0ed024585fb76bac", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v0.1.619", + "ref": "v0.1.620", "repo": "pyk", "type": "github" } diff --git a/flake.nix b/flake.nix index bcc6852ea..c1fc02a60 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Kontrol"; inputs = { - kevm.url = "github:runtimeverification/evm-semantics/v1.0.451"; + kevm.url = "github:runtimeverification/evm-semantics/v1.0.452"; nixpkgs.follows = "kevm/nixpkgs"; nixpkgs-pyk.follows = "kevm/nixpkgs-pyk"; k-framework.follows = "kevm/k-framework"; diff --git a/poetry.lock b/poetry.lock index 45d14f634..cefb1d8ab 100644 --- a/poetry.lock +++ b/poetry.lock @@ -36,33 +36,33 @@ tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [[package]] name = "black" -version = "24.1.1" +version = "24.2.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-24.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2588021038bd5ada078de606f2a804cadd0a3cc6a79cb3e9bb3a8bf581325a4c"}, - {file = "black-24.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a95915c98d6e32ca43809d46d932e2abc5f1f7d582ffbe65a5b4d1588af7445"}, - {file = "black-24.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa6a0e965779c8f2afb286f9ef798df770ba2b6cee063c650b96adec22c056a"}, - {file = "black-24.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:5242ecd9e990aeb995b6d03dc3b2d112d4a78f2083e5a8e86d566340ae80fec4"}, - {file = "black-24.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fc1ec9aa6f4d98d022101e015261c056ddebe3da6a8ccfc2c792cbe0349d48b7"}, - {file = "black-24.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0269dfdea12442022e88043d2910429bed717b2d04523867a85dacce535916b8"}, - {file = "black-24.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3d64db762eae4a5ce04b6e3dd745dcca0fb9560eb931a5be97472e38652a161"}, - {file = "black-24.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:5d7b06ea8816cbd4becfe5f70accae953c53c0e53aa98730ceccb0395520ee5d"}, - {file = "black-24.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e2c8dfa14677f90d976f68e0c923947ae68fa3961d61ee30976c388adc0b02c8"}, - {file = "black-24.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a21725862d0e855ae05da1dd25e3825ed712eaaccef6b03017fe0853a01aa45e"}, - {file = "black-24.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07204d078e25327aad9ed2c64790d681238686bce254c910de640c7cc4fc3aa6"}, - {file = "black-24.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:a83fe522d9698d8f9a101b860b1ee154c1d25f8a82ceb807d319f085b2627c5b"}, - {file = "black-24.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:08b34e85170d368c37ca7bf81cf67ac863c9d1963b2c1780c39102187ec8dd62"}, - {file = "black-24.1.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7258c27115c1e3b5de9ac6c4f9957e3ee2c02c0b39222a24dc7aa03ba0e986f5"}, - {file = "black-24.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40657e1b78212d582a0edecafef133cf1dd02e6677f539b669db4746150d38f6"}, - {file = "black-24.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e298d588744efda02379521a19639ebcd314fba7a49be22136204d7ed1782717"}, - {file = "black-24.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:34afe9da5056aa123b8bfda1664bfe6fb4e9c6f311d8e4a6eb089da9a9173bf9"}, - {file = "black-24.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:854c06fb86fd854140f37fb24dbf10621f5dab9e3b0c29a690ba595e3d543024"}, - {file = "black-24.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3897ae5a21ca132efa219c029cce5e6bfc9c3d34ed7e892113d199c0b1b444a2"}, - {file = "black-24.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:ecba2a15dfb2d97105be74bbfe5128bc5e9fa8477d8c46766505c1dda5883aac"}, - {file = "black-24.1.1-py3-none-any.whl", hash = "sha256:5cdc2e2195212208fbcae579b931407c1fa9997584f0a415421748aeafff1168"}, - {file = "black-24.1.1.tar.gz", hash = "sha256:48b5760dcbfe5cf97fd4fba23946681f3a81514c6ab8a45b50da67ac8fbc6c7b"}, + {file = "black-24.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29"}, + {file = "black-24.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430"}, + {file = "black-24.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f"}, + {file = "black-24.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a"}, + {file = "black-24.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd"}, + {file = "black-24.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2"}, + {file = "black-24.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92"}, + {file = "black-24.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23"}, + {file = "black-24.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b"}, + {file = "black-24.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9"}, + {file = "black-24.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693"}, + {file = "black-24.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982"}, + {file = "black-24.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4"}, + {file = "black-24.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218"}, + {file = "black-24.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0"}, + {file = "black-24.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d"}, + {file = "black-24.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8"}, + {file = "black-24.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8"}, + {file = "black-24.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540"}, + {file = "black-24.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31"}, + {file = "black-24.2.0-py3-none-any.whl", hash = "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6"}, + {file = "black-24.2.0.tar.gz", hash = "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894"}, ] [package.dependencies] @@ -434,7 +434,7 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "kevm-pyk" -version = "1.0.451" +version = "1.0.452" description = "" optional = false python-versions = "^3.10" @@ -443,14 +443,14 @@ develop = false [package.dependencies] pathos = "*" -pyk = {git = "https://github.com/runtimeverification/pyk.git", tag = "v0.1.619"} +pyk = {git = "https://github.com/runtimeverification/pyk.git", tag = "v0.1.620"} tomlkit = "^0.11.6" [package.source] type = "git" url = "https://github.com/runtimeverification/evm-semantics.git" -reference = "v1.0.451" -resolved_reference = "3ee4b387654818196f593187931405d92ffd13d5" +reference = "v1.0.452" +resolved_reference = "193cfed5dab0f0b7cf23465a92e0c374a08abea5" subdirectory = "kevm-pyk" [[package]] @@ -809,7 +809,7 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyk" -version = "0.1.619" +version = "0.1.620" description = "" optional = false python-versions = "^3.10" @@ -830,8 +830,8 @@ xdg-base-dirs = "^6.0.1" [package.source] type = "git" url = "https://github.com/runtimeverification/pyk.git" -reference = "v0.1.619" -resolved_reference = "e68db42142d1e03d23cabd4cfff9082a08798f12" +reference = "v0.1.620" +resolved_reference = "c33340c65005e17b0afe04fa0ed024585fb76bac" [[package]] name = "pyperclip" @@ -1111,4 +1111,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "3ff77793e4f2e7d543c35cc0d8dd6d06bf4953140af349b8c38701e541c6a6e1" +content-hash = "674538a68a0f086abb9ac9ea7137980febd2ab3359280b729524b30e30906656" diff --git a/pyproject.toml b/pyproject.toml index e6bf3df9e..7ed09181f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ authors = [ [tool.poetry.dependencies] python = "^3.10" -kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.451", subdirectory = "kevm-pyk" } +kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.452", subdirectory = "kevm-pyk" } [tool.poetry.group.dev.dependencies] autoflake = "*" From 5e7808d600df685e8707e0f6bb21332567862de2 Mon Sep 17 00:00:00 2001 From: devops Date: Tue, 13 Feb 2024 12:31:39 +0000 Subject: [PATCH 07/91] Set Version: 0.1.156 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 7a29ae6cd..0214e6937 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.155 +0.1.156 diff --git a/pyproject.toml b/pyproject.toml index 7ed09181f..9c918dd42 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.155" +version = "0.1.156" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index c9cc451b2..bb312c1ac 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.155' +VERSION: Final = '0.1.156' From 2eb00d383717a4e47326d0f79f9c420f791eb7d2 Mon Sep 17 00:00:00 2001 From: devops Date: Tue, 13 Feb 2024 16:31:57 +0000 Subject: [PATCH 08/91] Set Version: 0.1.158 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index b0b5ddaf6..31e7c9c40 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.157 +0.1.158 diff --git a/pyproject.toml b/pyproject.toml index f64867757..c71ef2bf1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.157" +version = "0.1.158" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 25e5e51d0..4a149c2f5 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.157' +VERSION: Final = '0.1.158' From f65a2535d337f9b7ae731259573e77340cc05d20 Mon Sep 17 00:00:00 2001 From: devops Date: Thu, 22 Feb 2024 13:25:57 +0000 Subject: [PATCH 09/91] Set Version: 0.1.167 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 8708376b8..160644738 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.166 +0.1.167 diff --git a/pyproject.toml b/pyproject.toml index 70721b95c..b731e5446 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.166" +version = "0.1.167" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index e9d93b43d..292089263 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.166' +VERSION: Final = '0.1.167' From 8420897eff30f5dff305f343439b6b234765a6ed Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Thu, 22 Feb 2024 17:35:00 +0000 Subject: [PATCH 10/91] refactoring, removing unneeded files --- src/kontrol/foundry.py | 19 ++++++++ src/kontrol/prove.py | 21 +++------ .../test-data/foundry/src/cse/Bounding.sol | 16 ------- .../test-data/foundry/src/cse/Storage.sol | 43 ------------------- .../test-data/foundry/test/CSE.t.sol | 10 ----- 5 files changed, 26 insertions(+), 83 deletions(-) delete mode 100644 src/tests/integration/test-data/foundry/src/cse/Bounding.sol delete mode 100644 src/tests/integration/test-data/foundry/src/cse/Storage.sol diff --git a/src/kontrol/foundry.py b/src/kontrol/foundry.py index 91827ebca..be04a7692 100644 --- a/src/kontrol/foundry.py +++ b/src/kontrol/foundry.py @@ -335,6 +335,14 @@ def loc_FOUNDRY_FAILED() -> KApply: # noqa: N802 ) ) + @staticmethod + def symbolic_contract_prefix() -> str: + return 'CONTRACT' + + @staticmethod + def symbolic_contract_id() -> str: + return Foundry.symbolic_contract_prefix() + '_ID' + @staticmethod def address_TEST_CONTRACT() -> KToken: # noqa: N802 return intToken(0x7FA9385BE102AC3EAC297483DD6233D62B3E1496) @@ -356,6 +364,17 @@ def account_CHEATCODE_ADDRESS(store_var: KInner) -> KApply: # noqa: N802 intToken(0), ) + @staticmethod + def symbolic_account(prefix: str, program: KInner, storage: KInner | None = None) -> KApply: + return KEVM.account_cell( + KVariable(prefix + '_ID', sort=KSort('Int')), + KVariable(prefix + '_BAL', sort=KSort('Int')), + program, + storage if storage is not None else KVariable(prefix + '_STORAGE', sort=KSort('Map')), + KVariable(prefix + '_ORIGSTORAGE', sort=KSort('Map')), + KVariable(prefix + '_NONCE', sort=KSort('Int')), + ) + @staticmethod def help_info() -> list[str]: res_lines: list[str] = [] diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index ebc58f997..4143648a4 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -570,8 +570,7 @@ def _init_cterm( 'STATUSCODE_CELL': KVariable('STATUSCODE'), 'PROGRAM_CELL': program, 'JUMPDESTS_CELL': KEVM.compute_valid_jumpdests(program), - # TODO: Is this the correct approach for the `` cell? - 'ID_CELL': KVariable('CONTRACT_ID', sort=KSort('Int')), + 'ID_CELL': KVariable(Foundry.symbolic_contract_id(), sort=KSort('Int')), 'ORIGIN_CELL': KVariable('ORIGIN_ID', sort=KSort('Int')), 'CALLER_CELL': KVariable('CALLER_ID', sort=KSort('Int')), 'LOCALMEM_CELL': bytesToken(b''), @@ -610,18 +609,8 @@ def _init_cterm( } init_subst.update(init_subst_test) else: - # TODO: Understand how to incorporate all of the appropriate contracts, - # together with the structure of their respective storages. For now, - # this is just the account of the contract being executed. accounts: list[KInner] = [ - KEVM.account_cell( - KVariable('CONTRACT_ID', sort=KSort('Int')), - KVariable('CONTRACT_BAL', sort=KSort('Int')), - program, - KVariable('CONTRACT_STORAGE', sort=KSort('Map')), - KVariable('CONTRACT_ORIGSTORAGE', sort=KSort('Map')), - KVariable('CONTRACT_NONCE', sort=KSort('Int')), - ), + Foundry.symbolic_account(Foundry.symbolic_contract_prefix(), program), KVariable('ACCOUNTS_REST', sort=KSort('AccountCellMap')), ] init_subst_accounts = {'ACCOUNTS_CELL': KEVM.accounts(accounts)} @@ -642,7 +631,11 @@ def _init_cterm( init_cterm = CTerm.from_kast(init_term) # The address of the executing contract is always guaranteed not to be the address of the cheatcode contract init_cterm = init_cterm.add_constraint( - mlEqualsFalse(KApply('_==Int_', [KVariable('CONTRACT_ID', sort=KSort('Int')), Foundry.address_CHEATCODE()])) + mlEqualsFalse( + KApply( + '_==Int_', [KVariable(Foundry.symbolic_contract_id(), sort=KSort('Int')), Foundry.address_CHEATCODE()] + ) + ) ) init_cterm = KEVM.add_invariant(init_cterm) diff --git a/src/tests/integration/test-data/foundry/src/cse/Bounding.sol b/src/tests/integration/test-data/foundry/src/cse/Bounding.sol deleted file mode 100644 index a9e67df51..000000000 --- a/src/tests/integration/test-data/foundry/src/cse/Bounding.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -interface UIntBinaryOp { - function applyOp(uint256 x, uint256 y) external pure returns (uint256 result); -} - -// CSE challenge: bounded reasoning -contract Multiply is UIntBinaryOp { - - function applyOp(uint256 x, uint256 y) external pure returns (uint256 result) { - for (result = 0; y > 0; y--) { - result += x; - } - } -} diff --git a/src/tests/integration/test-data/foundry/src/cse/Storage.sol b/src/tests/integration/test-data/foundry/src/cse/Storage.sol deleted file mode 100644 index 61032c44d..000000000 --- a/src/tests/integration/test-data/foundry/src/cse/Storage.sol +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import { UIntUnaryOp, Identity } from "./ExternalFunctionCall.sol"; - -// CSE challenge: storage variable of a basic type -contract AddConst is UIntUnaryOp { - - uint256 c; - - function setConst(uint256 x) external { - c = x; - } - - function applyOp(uint256 x) external view returns (uint256) { - return x + c; - } -} - -// CSE challenge: storage variable of a contract type -// CSE challenge: cross-contract external function call -contract Double is UIntUnaryOp { - - Identity iv; - - function applyOp(uint256 x) external view returns (uint256) { - return iv.applyOp(x) + iv.applyOp(x); - } -} - -// CSE challenge: storage variable of an interface type -// this is higher-order and not possible in general -// one way of handling this is instantiating the `UIntUnaryOp` -// interface with specific contracts that implement it -// CSE challenge: cross-contract external function call -contract Iterate is UIntUnaryOp { - - UIntUnaryOp f; - - function applyOp(uint256 x) external view returns (uint256) { - return f.applyOp((f.applyOp(x))); - } -} \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry/test/CSE.t.sol b/src/tests/integration/test-data/foundry/test/CSE.t.sol index cbb858e86..8f2f9fec8 100644 --- a/src/tests/integration/test-data/foundry/test/CSE.t.sol +++ b/src/tests/integration/test-data/foundry/test/CSE.t.sol @@ -2,17 +2,13 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; -import "../src/CSE/Bounding.sol"; import "../src/CSE/ExternalFunctionCall.sol"; -import "../src/CSE/Storage.sol"; contract CSETest is Test { Identity i; - Multiply m; function setUp() external { i = new Identity(); - m = new Multiply(); } function test_identity(uint256 x, uint256 y) external view { @@ -20,10 +16,4 @@ contract CSETest is Test { uint256 z = i.applyOp(x) + i.applyOp(y) + i.applyOp(y); assert(z == x + 2 * y); } - - function test_multiply(uint x, uint y) external view { - vm.assume(x < 2 ** 64 && y < 2 ** 64); - uint256 z = m.applyOp(x, 10) + m.applyOp(y, 5); - assert (z == 5 * ( 2 * x + y) ); - } } From b8209ee49881ed61f2d003dbcb9526f8390695ca Mon Sep 17 00:00:00 2001 From: devops Date: Thu, 22 Feb 2024 17:36:11 +0000 Subject: [PATCH 11/91] Set Version: 0.1.169 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 2e6e783f7..ae51b4918 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.168 +0.1.169 diff --git a/pyproject.toml b/pyproject.toml index d198c945d..ffd5cac37 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.168" +version = "0.1.169" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 4f015eec3..d05004698 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.168' +VERSION: Final = '0.1.169' From fca77f7ec45da95ba7b9d779b852a6074cdbbdfd Mon Sep 17 00:00:00 2001 From: lucasmt <36549752+lucasmt@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:42:53 -0600 Subject: [PATCH 12/91] Add `kontrol refute-node` and `kontrol unrefute-node` commands (#381) * Implement kontrol refute-node command * Implement kontrol unrefute-node command * Filter proof versions to exclude subproofs * Factor out foundry_refute_node and foundry_unrefute_node * Add test for foundry_refute_node * Add expected output for node refutation test * Set Version: 0.1.165 * Set Version: 0.1.169 --------- Co-authored-by: Lucas MT Co-authored-by: devops --- src/kontrol/__main__.py | 24 + src/kontrol/foundry.py | 18 +- .../test-data/show/node-refutation.expected | 883 ++++++++++++++++++ src/tests/integration/test_foundry_prove.py | 100 ++ 4 files changed, 1023 insertions(+), 2 deletions(-) create mode 100644 src/tests/integration/test-data/show/node-refutation.expected diff --git a/src/kontrol/__main__.py b/src/kontrol/__main__.py index 821c36a3e..d8943145c 100644 --- a/src/kontrol/__main__.py +++ b/src/kontrol/__main__.py @@ -24,6 +24,7 @@ foundry_list, foundry_merge_nodes, foundry_node_printer, + foundry_refute_node, foundry_remove_node, foundry_section_edge, foundry_show, @@ -31,6 +32,7 @@ foundry_state_diff, foundry_step_node, foundry_to_dot, + foundry_unrefute_node, read_deployment_state, ) from .kompile import foundry_kompile @@ -357,6 +359,14 @@ def exec_show( print(output) +def exec_refute_node(foundry_root: Path, test: str, node: NodeIdLike, version: int | None, **kwargs: Any) -> None: + foundry_refute_node(foundry=_load_foundry(foundry_root), test=test, node=node, version=version) + + +def exec_unrefute_node(foundry_root: Path, test: str, node: NodeIdLike, version: int | None, **kwargs: Any) -> None: + foundry_unrefute_node(foundry=_load_foundry(foundry_root), test=test, node=node, version=version) + + def exec_to_dot(foundry_root: Path, test: str, version: int | None, **kwargs: Any) -> None: foundry_to_dot(foundry=_load_foundry(foundry_root), test=test, version=version) @@ -846,6 +856,20 @@ def _parse_test_version_tuple(value: str) -> tuple[str, int | None]: ) remove_node.add_argument('node', type=node_id_like, help='Node to remove CFG subgraph from.') + refute_node = command_parser.add_parser( + 'refute-node', + help='Refute a node and add its refutation as a subproof.', + parents=[kontrol_cli_args.foundry_test_args, kontrol_cli_args.logging_args, kontrol_cli_args.foundry_args], + ) + refute_node.add_argument('node', type=node_id_like, help='Node to refute.') + + unrefute_node = command_parser.add_parser( + 'unrefute-node', + help='Disable refutation of a node and remove corresponding refutation subproof.', + parents=[kontrol_cli_args.foundry_test_args, kontrol_cli_args.logging_args, kontrol_cli_args.foundry_args], + ) + unrefute_node.add_argument('node', type=node_id_like, help='Node to unrefute.') + simplify_node = command_parser.add_parser( 'simplify-node', help='Simplify a given node, and potentially replace it.', diff --git a/src/kontrol/foundry.py b/src/kontrol/foundry.py index aadb1d343..5063321e6 100644 --- a/src/kontrol/foundry.py +++ b/src/kontrol/foundry.py @@ -506,8 +506,8 @@ def latest_proof_version( """ find the highest used proof ID, to be used as a default. Returns None if no version of this proof exists. """ - proof_ids = listdir(self.proofs_dir) - versions = {int(pid.split(':')[1]) for pid in proof_ids if pid.split(':')[0] == test} + proof_ids = self.filter_proof_ids(listdir(self.proofs_dir), test.split('%')[1]) + versions = {int(pid.split(':')[1]) for pid in proof_ids} return max(versions, default=None) def free_proof_version( @@ -693,6 +693,20 @@ def foundry_remove_node(foundry: Foundry, test: str, node: NodeIdLike, version: apr_proof.write_proof_data() +def foundry_refute_node(foundry: Foundry, test: str, node: NodeIdLike, version: int | None = None) -> None: + test_id = foundry.get_test_id(test, version) + proof = foundry.get_apr_proof(test_id) + + proof.refute_node(proof.kcfg.node(node)) + + +def foundry_unrefute_node(foundry: Foundry, test: str, node: NodeIdLike, version: int | None = None) -> None: + test_id = foundry.get_test_id(test, version) + proof = foundry.get_apr_proof(test_id) + + proof.unrefute_node(proof.kcfg.node(node)) + + def foundry_simplify_node( foundry: Foundry, test: str, diff --git a/src/tests/integration/test-data/show/node-refutation.expected b/src/tests/integration/test-data/show/node-refutation.expected new file mode 100644 index 000000000..43aa6dad6 --- /dev/null +++ b/src/tests/integration/test-data/show/node-refutation.expected @@ -0,0 +1,883 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (324 steps) +├─ 3 (split) +│ k: JUMPI 535 bool2Word ( 10 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #execute ... +│ pc: 525 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals 10 <=Int VV0_x_114b9705:Int } +┃ │ +┃ └─ 4 (leaf, refuted) +┃ k: JUMPI 535 bool2Word ( 10 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #execute ... +┃ pc: 525 +┃ callDepth: 0 +┃ statusCode: STATUSCODE:StatusCode +┃ +┗━━┓ constraint: { true #Equals ( notBool 10 <=Int VV0_x_114b9705:Int ) } + │ + ├─ 5 + │ k: JUMPI 535 bool2Word ( 10 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #execute ... + │ pc: 525 + │ callDepth: 0 + │ statusCode: STATUSCODE:StatusCode + │ + │ (92 steps) + ├─ 12 + │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K + │ pc: 235 + │ callDepth: 0 + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 13 + │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K + │ pc: 235 + │ callDepth: 0 + │ statusCode: EVMC_SUCCESS + │ + │ (2 steps) + ├─ 14 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 235 + │ callDepth: 0 + │ statusCode: EVMC_SUCCESS + │ + ┊ constraint: true + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + +module SUMMARY-TEST%MERGETEST.TEST-BRANCH-MERGE(UINT256):0 + + + rule [BASIC-BLOCK-1-TO-3]: + + + ( .K => JUMPI 535 bool2Word ( 10 <=Int VV0_x_114b9705:Int ) + ~> #pc [ JUMPI ] ) + ~> #execute + ~> _CONTINUATION + + + NORMAL + + + SHANGHAI + + + false + + + + + b"" + + + .List + + + .List + + + .Set + + + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b";\xa4\xd9\f" +Bytes #buf ( 32 , VV0_x_114b9705:Int ) + + + 0 + + + ( .WordStack => ( VV0_x_114b9705:Int : ( 234 : ( selector ( "test_branch_merge(uint256)" ) : .WordStack ) ) ) ) + + + ( b"" => b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" ) + + + 0 + + + 0 + + + false + + + 0 + + ... + + + + .List + + + 0 + + + .Set + + + .Map + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + + TIMESTAMP_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + + .Map + + + .Map + + + 0 + + ... + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + + .Map + + + .Map + + + 1 + + ... + ) + + ... + + + ... + + + + + false + + + false + + ... + + + + false + + ... + + + + false + + ... + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + .MockCallCellMap + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( 0 <=Int TIMESTAMP_CELL:Int + andBool ( 0 <=Int VV0_x_114b9705:Int + andBool ( CALLER_ID:Int + + + ( JUMPI 535 bool2Word ( 10 <=Int VV0_x_114b9705:Int ) + ~> #pc [ JUMPI ] => #end EVMC_SUCCESS + ~> #pc [ STOP ] ) + ~> #execute + ~> _CONTINUATION + + + NORMAL + + + SHANGHAI + + + false + + + + + b"" + + + .List + + + .List + + + .Set + + + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b";\xa4\xd9\f" +Bytes #buf ( 32 , VV0_x_114b9705:Int ) + + + 0 + + + ( ( VV0_x_114b9705:Int => selector ( "test_branch_merge(uint256)" ) ) : ( ( 234 : ( selector ( "test_branch_merge(uint256)" ) : .WordStack ) ) => .WordStack ) ) + + + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" + + + 0 + + + 0 + + + false + + + 0 + + ... + + + + .List + + + 0 + + + .Set + + + ( .Map => ( 728815563385977040452943777879061427756277306518 |-> SetItem ( 27 ) ) ) + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + + TIMESTAMP_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + + .Map + + + .Map + + + 0 + + ... + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + + ( .Map => ( 27 |-> 0 ) ) + + + .Map + + + 1 + + ... + ) + + ... + + + ... + + + + + false + + + false + + ... + + + + false + + ... + + + + false + + ... + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + .MockCallCellMap + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( 0 <=Int TIMESTAMP_CELL:Int + andBool ( 0 <=Int VV0_x_114b9705:Int + andBool ( CALLER_ID:Int + + + ( #end EVMC_SUCCESS => #halt ) + ~> #pc [ STOP ] + ~> #execute + ~> _CONTINUATION + + + NORMAL + + + SHANGHAI + + + false + + + + + b"" + + + ( _STATUSCODE => EVMC_SUCCESS ) + + + .List + + + .List + + + .Set + + + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b";\xa4\xd9\f" +Bytes #buf ( 32 , VV0_x_114b9705:Int ) + + + 0 + + + ( selector ( "test_branch_merge(uint256)" ) : .WordStack ) + + + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" + + + 0 + + + 0 + + + false + + + 0 + + ... + + + + .List + + + 0 + + + .Set + + + ( 728815563385977040452943777879061427756277306518 |-> SetItem ( 27 ) ) + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + + TIMESTAMP_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + + .Map + + + .Map + + + 0 + + ... + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + + ( 27 |-> 0 ) + + + .Map + + + 1 + + ... + ) + + ... + + + ... + + + + + false + + + false + + ... + + + + false + + ... + + + + false + + ... + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + .MockCallCellMap + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( 0 <=Int TIMESTAMP_CELL:Int + andBool ( 0 <=Int VV0_x_114b9705:Int + andBool ( VV0_x_114b9705:Int + + + #halt + ~> ( #pc [ STOP ] + ~> #execute => .K ) + ~> _CONTINUATION + + + NORMAL + + + SHANGHAI + + + false + + + + + b"" + + + EVMC_SUCCESS + + + .List + + + .List + + + .Set + + + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b";\xa4\xd9\f" +Bytes #buf ( 32 , VV0_x_114b9705:Int ) + + + 0 + + + ( selector ( "test_branch_merge(uint256)" ) : .WordStack ) + + + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" + + + 0 + + + 0 + + + false + + + 0 + + ... + + + + .List + + + 0 + + + .Set + + + ( 728815563385977040452943777879061427756277306518 |-> SetItem ( 27 ) ) + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + + TIMESTAMP_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + + .Map + + + .Map + + + 0 + + ... + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + + ( 27 |-> 0 ) + + + .Map + + + 1 + + ... + ) + + ... + + + ... + + + + + false + + + false + + ... + + + + false + + ... + + + + false + + ... + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + .MockCallCellMap + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( 0 <=Int TIMESTAMP_CELL:Int + andBool ( 0 <=Int VV0_x_114b9705:Int + andBool ( VV0_x_114b9705:Int None: + if no_use_booster: + pytest.skip() + + test = 'MergeTest.test_branch_merge' + + if bug_report is not None: + server._populate_bug_report(bug_report) + + prove_res_1 = foundry_prove( + foundry, + tests=[(test, None)], + prove_options=ProveOptions( + bug_report=bug_report, + ), + rpc_options=RPCOptions( + port=server.port, + ), + ) + + # Test initially passes, no pending nodes + assert_pass(test, single(prove_res_1)) + check_pending(foundry, test, []) + + # Remove successors of nodes 4 and 5 + foundry_remove_node(foundry, test, node=6) + foundry_remove_node(foundry, test, node=7) + + # Now nodes 4 and 5 are pending + check_pending(foundry, test, [4, 5]) + + # Mark node 4 as refuted + foundry_refute_node(foundry, test, node=4) + + # Refuted node is not longer pending + check_pending(foundry, test, [5]) + + # Proof will only advance from node 5, since 4 is refuted + prove_res_2 = foundry_prove( + foundry, + tests=[(test, None)], + prove_options=ProveOptions( + bug_report=bug_report, + ), + rpc_options=RPCOptions( + port=server.port, + ), + ) + + # Test no longer passing since there are refuted nodes + assert not single(prove_res_2).passed + + show_res = foundry_show( + foundry, + test=test, + to_module=True, + sort_collections=True, + omit_unstable_output=True, + pending=True, + failing=True, + failure_info=True, + counterexample_info=True, + port=server.port, + ) + + assert_or_update_show_output( + show_res, TEST_DATA_DIR / 'show/node-refutation.expected', update=update_expected_output + ) + + check_pending(foundry, test, []) + + # Remove refutation of node 4 + foundry_unrefute_node(foundry, test, node=4) + + check_pending(foundry, test, [4]) + + # Execution will continue from node 4 + prove_res_3 = foundry_prove( + foundry, + tests=[(test, None)], + prove_options=ProveOptions( + bug_report=bug_report, + ), + rpc_options=RPCOptions( + port=server.port, + ), + ) + + # Proof passes again + assert_pass(test, single(prove_res_3)) From c8d6329664187f2da6349795d902661f932d00d8 Mon Sep 17 00:00:00 2001 From: rv-jenkins Date: Fri, 23 Feb 2024 04:22:21 -0700 Subject: [PATCH 13/91] Update dependency: deps/kevm_release (#392) * deps/kevm_release: Set Version 1.0.462 * Set Version: 0.1.169 * Sync Poetry files: kevm-pyk version 1.0.462 * flake.{nix,lock}: update Nix derivations * Set Version: 0.1.170 * flake.{nix,lock}: update Nix derivations * deps/kevm_release: Set Version 1.0.463 * Sync Poetry files: kevm-pyk version 1.0.463 * flake.{nix,lock}: update Nix derivations * Updated expected output --------- Co-authored-by: devops Co-authored-by: Palina Tolmach --- deps/kevm_release | 2 +- flake.lock | 14 +++++++------- flake.nix | 2 +- package/version | 2 +- poetry.lock | 10 +++++----- pyproject.toml | 4 ++-- src/kontrol/__init__.py | 2 +- ...lTest.test_double_add(uint256,uint256).expected | 4 ++-- .../AssertTest.testFail_expect_revert().expected | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/deps/kevm_release b/deps/kevm_release index 23ad8f74b..22d256cf4 100644 --- a/deps/kevm_release +++ b/deps/kevm_release @@ -1 +1 @@ -1.0.461 +1.0.463 diff --git a/flake.lock b/flake.lock index 3d10af08f..aa1bb5fba 100644 --- a/flake.lock +++ b/flake.lock @@ -337,16 +337,16 @@ ] }, "locked": { - "lastModified": 1708598538, - "narHash": "sha256-foNxoLCi9u2T+FmBcueL20d/LcTU6EBEhtxole6vd3k=", + "lastModified": 1708665900, + "narHash": "sha256-ZmgFN82ZgZljcUGNFiDp7/pHXYfpBtWvReVyxxkg4nA=", "owner": "runtimeverification", "repo": "evm-semantics", - "rev": "f0a032b74d0a2598115c30b681874eb4cca08e50", + "rev": "11a4511d14ab707a0ad618de02424aecb628ccc8", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v1.0.461", + "ref": "v1.0.463", "repo": "evm-semantics", "type": "github" } @@ -651,11 +651,11 @@ ] }, "locked": { - "lastModified": 1706563406, - "narHash": "sha256-XoMphCwfqx00wx/2nALvMPEAmD32A8lwSmwI5MNopyA=", + "lastModified": 1708636525, + "narHash": "sha256-DWAEDQXOwLggfMJeBjy4tgxRDeZQzATTHrRvkjkr56Y=", "owner": "hellwolf", "repo": "solc.nix", - "rev": "c863de2fa3721fc4201484c084a49e996ce21e19", + "rev": "f317dfc2755845df02a1119e124573821a49acec", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 207ae3c62..984cb1a88 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Kontrol"; inputs = { - kevm.url = "github:runtimeverification/evm-semantics/v1.0.461"; + kevm.url = "github:runtimeverification/evm-semantics/v1.0.463"; nixpkgs.follows = "kevm/nixpkgs"; nixpkgs-pyk.follows = "kevm/nixpkgs-pyk"; k-framework.follows = "kevm/k-framework"; diff --git a/package/version b/package/version index ae51b4918..3f0eefd62 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.169 +0.1.170 diff --git a/poetry.lock b/poetry.lock index e0e34a39a..504de2ceb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "attrs" @@ -434,7 +434,7 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "kevm-pyk" -version = "1.0.461" +version = "1.0.463" description = "" optional = false python-versions = "^3.10" @@ -449,8 +449,8 @@ tomlkit = "^0.11.6" [package.source] type = "git" url = "https://github.com/runtimeverification/evm-semantics.git" -reference = "v1.0.461" -resolved_reference = "f0a032b74d0a2598115c30b681874eb4cca08e50" +reference = "v1.0.463" +resolved_reference = "11a4511d14ab707a0ad618de02424aecb628ccc8" subdirectory = "kevm-pyk" [[package]] @@ -1111,4 +1111,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "7e32703bca5b5af283cfe0d68ba288023b72e9e344ca2843f5040b5ff82c0b3d" +content-hash = "16e8266a82d7a330965855971a5005b24927280d1753022c879d36a14c8b3596" diff --git a/pyproject.toml b/pyproject.toml index ffd5cac37..3a4230511 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.169" +version = "0.1.170" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", @@ -12,7 +12,7 @@ authors = [ [tool.poetry.dependencies] python = "^3.10" -kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.461", subdirectory = "kevm-pyk" } +kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.463", subdirectory = "kevm-pyk" } [tool.poetry.group.dev.dependencies] autoflake = "*" diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index d05004698..0d50ed265 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.169' +VERSION: Final = '0.1.170' diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).expected index 15e061c32..0d6bbf4d4 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).expected @@ -68,7 +68,7 @@ │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ -│ (19 steps) +│ (18 steps) ├─ 13 │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... │ pc: 0 @@ -126,7 +126,7 @@ ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (19 steps) +┃ │ (18 steps) ┃ ├─ 26 ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ │ pc: 0 diff --git a/src/tests/integration/test-data/show/AssertTest.testFail_expect_revert().expected b/src/tests/integration/test-data/show/AssertTest.testFail_expect_revert().expected index 0a351a262..4ddbff061 100644 --- a/src/tests/integration/test-data/show/AssertTest.testFail_expect_revert().expected +++ b/src/tests/integration/test-data/show/AssertTest.testFail_expect_revert().expected @@ -61,7 +61,7 @@ │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ -│ (19 steps) +│ (18 steps) ├─ 12 │ k: #precompiled? ( 728815563385977040452943777879061427756277306518 , SHANGHAI ) ~> ... │ pc: 0 From 8bcbf476da776b41e3920e092057286c036c6791 Mon Sep 17 00:00:00 2001 From: devops Date: Fri, 23 Feb 2024 14:35:05 +0000 Subject: [PATCH 14/91] Set Version: 0.1.171 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 3f0eefd62..8ca4b7176 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.170 +0.1.171 diff --git a/pyproject.toml b/pyproject.toml index 3a4230511..568d506e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.170" +version = "0.1.171" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 0d50ed265..4faaf2457 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.170' +VERSION: Final = '0.1.171' From f798d5ee8ad3543635ecb5cb2f41e434788ff49f Mon Sep 17 00:00:00 2001 From: devops Date: Mon, 26 Feb 2024 13:39:49 +0000 Subject: [PATCH 15/91] Set Version: 0.1.172 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 8ca4b7176..d26f7fe8b 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.171 +0.1.172 diff --git a/pyproject.toml b/pyproject.toml index d8464c811..d944c6ef0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.171" +version = "0.1.172" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 4faaf2457..ac10890f3 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.171' +VERSION: Final = '0.1.172' From bbffd7d594b627d78092c36658a2038bb6e2a308 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Mon, 26 Feb 2024 21:08:10 +0000 Subject: [PATCH 16/91] path correction --- src/tests/integration/test-data/foundry/test/CSE.t.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/integration/test-data/foundry/test/CSE.t.sol b/src/tests/integration/test-data/foundry/test/CSE.t.sol index 8f2f9fec8..f65a1e5d9 100644 --- a/src/tests/integration/test-data/foundry/test/CSE.t.sol +++ b/src/tests/integration/test-data/foundry/test/CSE.t.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; -import "../src/CSE/ExternalFunctionCall.sol"; +import "src/cse/ExternalFunctionCall.sol"; contract CSETest is Test { Identity i; From 4730d4c56293b81b2e5ea72232f4d644284b8fe0 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 27 Feb 2024 12:07:02 +0000 Subject: [PATCH 17/91] redesigning CSE tests --- .../test-data/foundry/src/cse/Binary.sol | 44 +++++++++++++ .../foundry/src/cse/ExternalFunctionCall.sol | 18 ------ .../foundry/src/cse/OperatorInterfaces.sol | 10 +++ .../test-data/foundry/src/cse/SimpleWETH.sol | 62 +++++++++++++++++++ .../test-data/foundry/src/cse/Unary.sol | 44 +++++++++++++ .../test-data/foundry/test/CSE.t.sol | 8 ++- 6 files changed, 167 insertions(+), 19 deletions(-) create mode 100644 src/tests/integration/test-data/foundry/src/cse/Binary.sol delete mode 100644 src/tests/integration/test-data/foundry/src/cse/ExternalFunctionCall.sol create mode 100644 src/tests/integration/test-data/foundry/src/cse/OperatorInterfaces.sol create mode 100644 src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol create mode 100644 src/tests/integration/test-data/foundry/src/cse/Unary.sol diff --git a/src/tests/integration/test-data/foundry/src/cse/Binary.sol b/src/tests/integration/test-data/foundry/src/cse/Binary.sol new file mode 100644 index 000000000..7ae1aa702 --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/Binary.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity =0.8.13; + +import { UIntBinaryOp } from "./OperatorInterfaces.sol"; +import { Identity } from "./Unary.sol"; + +// CSE challenge: storage variable of a contract type +// CSE challenge: cross-contract external function call +contract Add is UIntBinaryOp { + + Identity id; + + function applyOp(uint256 x, uint256 y) external view returns (uint256 result) { + return id.applyOp(x) + id.applyOp(y); + } + +} + +// CSE challenge: storage variable of a contract type +// CSE challenge: cross-contract external function call +contract Sub is UIntBinaryOp { + + Identity id; + + function applyOp(uint256 x, uint256 y) external view returns (uint256 result) { + return id.applyOp(x) - id.applyOp(y); + } + +} + +// CSE challenge: storage variable of a contract type +// CSE challenge: cross-contract external function call +// CSE challenge: bounded reasoning +contract Multiply is UIntBinaryOp { + + Add adder; + + function applyOp(uint256 x, uint256 n) external view returns (uint256 result) { + for (result = 0; n > 0; n--) { + result = adder.applyOp(result, x); + } + } + +} diff --git a/src/tests/integration/test-data/foundry/src/cse/ExternalFunctionCall.sol b/src/tests/integration/test-data/foundry/src/cse/ExternalFunctionCall.sol deleted file mode 100644 index 9798517bf..000000000 --- a/src/tests/integration/test-data/foundry/src/cse/ExternalFunctionCall.sol +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -interface UIntUnaryOp { - function applyOp(uint256 x) external view returns (uint256); -} - -// CSE challenge: external function call -contract Identity is UIntUnaryOp { - - function identity(uint256 x) external pure returns (uint256) { - return x; - } - - function applyOp(uint256 x) external view returns (uint256) { - return this.identity(x); - } -} \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry/src/cse/OperatorInterfaces.sol b/src/tests/integration/test-data/foundry/src/cse/OperatorInterfaces.sol new file mode 100644 index 000000000..a2ae7bcec --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/OperatorInterfaces.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity =0.8.13; + +interface UIntUnaryOp { + function applyOp(uint256 x) external view returns (uint256); +} + +interface UIntBinaryOp { + function applyOp(uint256 x, uint256 y) external view returns (uint256 result); +} diff --git a/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol b/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol new file mode 100644 index 000000000..d8820437b --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity =0.8.13; + +import { Add, Sub } from "./Binary.sol"; + +// CSE challenge: initialised contract variables +// CSE challenge: global variables +// CSE challenge: contracts in storage +// CSE challenge: cross-contract function calls +// CSE challenge: mappings in storage +contract SimpleWETH { + string public name = "Wrapped Ether"; + string public symbol = "WETH"; + uint8 public decimals = 18; + + Add add; + Sub sub; + + mapping(address => uint256) public balanceOf; + mapping(address => mapping(address => uint256)) public allowance; + + fallback() external payable { + deposit(); + } + + function deposit() public payable { + balanceOf[msg.sender] = add.applyOp(balanceOf[msg.sender], msg.value); + } + + function withdraw(uint256 wad) public { + require(balanceOf[msg.sender] >= wad); + balanceOf[msg.sender] = sub.applyOp(balanceOf[msg.sender], wad); + payable(msg.sender).transfer(wad); + } + + function totalSupply() public view returns (uint256) { + return address(this).balance; + } + + function approve(address guy, uint256 wad) public returns (bool) { + allowance[msg.sender][guy] = wad; + return true; + } + + function transfer(address dst, uint256 wad) public returns (bool) { + return transferFrom(msg.sender, dst, wad); + } + + function transferFrom(address src, address dst, uint256 wad) public returns (bool) { + require(balanceOf[src] >= wad); + + if (src != msg.sender && allowance[src][msg.sender] != type(uint256).max) { + require(allowance[src][msg.sender] >= wad); + allowance[src][msg.sender] = sub.applyOp(allowance[src][msg.sender], wad); + } + + balanceOf[src] = sub.applyOp(balanceOf[src], wad); + balanceOf[dst] = add.applyOp(balanceOf[dst], wad); + + return true; + } +} \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry/src/cse/Unary.sol b/src/tests/integration/test-data/foundry/src/cse/Unary.sol new file mode 100644 index 000000000..6b3f7d9b8 --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/Unary.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity =0.8.13; + +import { UIntUnaryOp } from "./OperatorInterfaces.sol"; + +// CSE challenge: external function call +contract Identity is UIntUnaryOp { + + function identity(uint256 x) external pure returns (uint256) { + return x; + } + + function applyOp(uint256 x) external view returns (uint256) { + return this.identity(x); + } +} + +// CSE challenge: storage variable of a basic type +contract AddConst is UIntUnaryOp { + + uint256 c; + + function setConst(uint256 x) external { + c = x; + } + + function applyOp(uint256 x) external view returns (uint256) { + return x + c; + } +} + +// CSE challenge: storage variable of an interface type +// this is higher-order and not possible in general +// one way of handling this is instantiating the `UIntUnaryOp` +// interface with specific contracts that implement it +// CSE challenge: cross-contract external function call +contract Iterate is UIntUnaryOp { + + UIntUnaryOp f; + + function applyOp(uint256 x) external view returns (uint256) { + return f.applyOp((f.applyOp(x))); + } +} \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry/test/CSE.t.sol b/src/tests/integration/test-data/foundry/test/CSE.t.sol index f65a1e5d9..61d9f0906 100644 --- a/src/tests/integration/test-data/foundry/test/CSE.t.sol +++ b/src/tests/integration/test-data/foundry/test/CSE.t.sol @@ -2,15 +2,21 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; -import "src/cse/ExternalFunctionCall.sol"; + +import "src/cse/Unary.sol"; +import "src/cse/Binary.sol"; +import "src/cse/SimpleWETH.sol"; contract CSETest is Test { Identity i; + Multiply m; function setUp() external { i = new Identity(); + m = new Multiply(); } + // CSE challenge: External function call function test_identity(uint256 x, uint256 y) external view { vm.assume(x < 2 ** 64 && y < 2 ** 64); uint256 z = i.applyOp(x) + i.applyOp(y) + i.applyOp(y); From 2cd38e030357093de723c4dfcda95dd23bdf7455 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 27 Feb 2024 12:48:19 +0000 Subject: [PATCH 18/91] slightly more general WETH contract --- .../test-data/foundry/src/cse/SimpleWETH.sol | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol b/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol index d8820437b..4b72eeed0 100644 --- a/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol +++ b/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol @@ -8,7 +8,8 @@ import { Add, Sub } from "./Binary.sol"; // CSE challenge: contracts in storage // CSE challenge: cross-contract function calls // CSE challenge: mappings in storage -contract SimpleWETH { + +contract WETH9 { string public name = "Wrapped Ether"; string public symbol = "WETH"; uint8 public decimals = 18; @@ -16,6 +17,11 @@ contract SimpleWETH { Add add; Sub sub; + event Approval(address indexed src, address indexed guy, uint256 wad); + event Transfer(address indexed src, address indexed dst, uint256 wad); + event Deposit(address indexed dst, uint256 wad); + event Withdrawal(address indexed src, uint256 wad); + mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; @@ -25,12 +31,14 @@ contract SimpleWETH { function deposit() public payable { balanceOf[msg.sender] = add.applyOp(balanceOf[msg.sender], msg.value); + emit Deposit(msg.sender, msg.value); } function withdraw(uint256 wad) public { require(balanceOf[msg.sender] >= wad); balanceOf[msg.sender] = sub.applyOp(balanceOf[msg.sender], wad); payable(msg.sender).transfer(wad); + emit Withdrawal(msg.sender, wad); } function totalSupply() public view returns (uint256) { @@ -39,6 +47,7 @@ contract SimpleWETH { function approve(address guy, uint256 wad) public returns (bool) { allowance[msg.sender][guy] = wad; + emit Approval(msg.sender, guy, wad); return true; } @@ -57,6 +66,8 @@ contract SimpleWETH { balanceOf[src] = sub.applyOp(balanceOf[src], wad); balanceOf[dst] = add.applyOp(balanceOf[dst], wad); + emit Transfer(src, dst, wad); + return true; } } \ No newline at end of file From 8b7bdc88bd97aa02dc0c2c2e55ccf850dbc7071f Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 27 Feb 2024 15:44:16 +0000 Subject: [PATCH 19/91] minor spacing consistencies --- .../integration/test-data/foundry/src/cse/Binary.sol | 9 ++------- .../integration/test-data/foundry/src/cse/Unary.sol | 2 -- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/tests/integration/test-data/foundry/src/cse/Binary.sol b/src/tests/integration/test-data/foundry/src/cse/Binary.sol index 7ae1aa702..1d1f0e810 100644 --- a/src/tests/integration/test-data/foundry/src/cse/Binary.sol +++ b/src/tests/integration/test-data/foundry/src/cse/Binary.sol @@ -7,7 +7,6 @@ import { Identity } from "./Unary.sol"; // CSE challenge: storage variable of a contract type // CSE challenge: cross-contract external function call contract Add is UIntBinaryOp { - Identity id; function applyOp(uint256 x, uint256 y) external view returns (uint256 result) { @@ -19,26 +18,22 @@ contract Add is UIntBinaryOp { // CSE challenge: storage variable of a contract type // CSE challenge: cross-contract external function call contract Sub is UIntBinaryOp { - Identity id; function applyOp(uint256 x, uint256 y) external view returns (uint256 result) { return id.applyOp(x) - id.applyOp(y); } - } // CSE challenge: storage variable of a contract type // CSE challenge: cross-contract external function call // CSE challenge: bounded reasoning contract Multiply is UIntBinaryOp { - Add adder; - function applyOp(uint256 x, uint256 n) external view returns (uint256 result) { - for (result = 0; n > 0; n--) { + function applyOp(uint256 x, uint256 y) external view returns (uint256 result) { + for (result = 0; y > 0; y--) { result = adder.applyOp(result, x); } } - } diff --git a/src/tests/integration/test-data/foundry/src/cse/Unary.sol b/src/tests/integration/test-data/foundry/src/cse/Unary.sol index 6b3f7d9b8..a1f162a05 100644 --- a/src/tests/integration/test-data/foundry/src/cse/Unary.sol +++ b/src/tests/integration/test-data/foundry/src/cse/Unary.sol @@ -17,7 +17,6 @@ contract Identity is UIntUnaryOp { // CSE challenge: storage variable of a basic type contract AddConst is UIntUnaryOp { - uint256 c; function setConst(uint256 x) external { @@ -35,7 +34,6 @@ contract AddConst is UIntUnaryOp { // interface with specific contracts that implement it // CSE challenge: cross-contract external function call contract Iterate is UIntUnaryOp { - UIntUnaryOp f; function applyOp(uint256 x) external view returns (uint256) { From d028c13f07d98097b632ca3d3bb8c2e6c7e550ed Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 27 Feb 2024 20:57:42 +0000 Subject: [PATCH 20/91] generalising test harness --- src/tests/integration/test_foundry_prove.py | 44 +++++++++++---------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 3daa9115d..113eb1c47 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -336,7 +336,14 @@ def test_foundry_merge_nodes( assert_pass(test, single(prove_res)) +DEPENDENCY_TESTS: Final = [ + ['ArithmeticContract.add(uint256,uint256)', 'ArithmeticCallTest.test_double_add(uint256,uint256)'] +] + + +@pytest.mark.parametrize('tests', DEPENDENCY_TESTS) def test_foundry_dependency( + test: list[str], foundry: Foundry, bug_report: BugReport | None, server: KoreServer, @@ -346,34 +353,29 @@ def test_foundry_dependency( if no_use_booster: pytest.skip() - dependency = 'ArithmeticContract.add(uint256,uint256)' - test = 'ArithmeticCallTest.test_double_add(uint256,uint256)' + # Dependency tests require at least two inter-dependent functions + assert len(test) >= 2 if bug_report is not None: server._populate_bug_report(bug_report) - foundry_prove( - foundry, - tests=[(dependency, None)], - prove_options=ProveOptions(max_iterations=10, bug_report=bug_report, fail_fast=False), - rpc_options=RPCOptions( - port=server.port, - ), - ) + for i in range(0, len(test) - 1): - foundry_prove( - foundry, - tests=[(test, None)], - prove_options=ProveOptions(max_iterations=50, bug_report=bug_report, fail_fast=False), - rpc_options=RPCOptions( - port=server.port, - ), - include_summaries=[(dependency, None)], - ) + dependencies = test[0 : i - 1] if 1 <= i else [] + + foundry_prove( + foundry, + tests=[(test[i], None)], + prove_options=ProveOptions(max_iterations=100, bug_report=bug_report, fail_fast=False), + rpc_options=RPCOptions( + port=server.port, + ), + include_summaries=[(dependency, None) for dependency in dependencies], + ) show_res = foundry_show( foundry, - test=test, + test=test[-1], to_module=False, sort_collections=True, omit_unstable_output=True, @@ -384,7 +386,7 @@ def test_foundry_dependency( port=server.port, ) - assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test}.expected', update=update_expected_output) + assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test[-1]}.expected', update=update_expected_output) def check_pending(foundry: Foundry, test: str, pending: list[int]) -> None: From c6139b3f9b62c1a7c120ff7aed2bc4dcc1377181 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 11:42:15 +0000 Subject: [PATCH 21/91] Set Version: 0.1.174 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index d3bfa591c..c3170be41 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.173 +0.1.174 diff --git a/pyproject.toml b/pyproject.toml index dac190208..2d1b31f44 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.173" +version = "0.1.174" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 828759c3f..1793802c9 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.173' +VERSION: Final = '0.1.174' From 3947a6a906239b657217ca471ad9179edf03126a Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 27 Feb 2024 21:51:39 +0000 Subject: [PATCH 22/91] additional proof options for dependency tests --- src/tests/integration/test_foundry_prove.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 113eb1c47..99725034c 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -361,12 +361,18 @@ def test_foundry_dependency( for i in range(0, len(test) - 1): - dependencies = test[0 : i - 1] if 1 <= i else [] + dependencies = test[0 : i - 1] if i > 0 else [] foundry_prove( foundry, tests=[(test[i], None)], - prove_options=ProveOptions(max_iterations=100, bug_report=bug_report, fail_fast=False), + prove_options=ProveOptions( + max_depth=10000, + max_iterations=100, + break_on_calls=False, + fail_fast=False, + bug_report=bug_report, + ), rpc_options=RPCOptions( port=server.port, ), From e52cc6a54dae4c921b383b245b861362ed3a945a Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 11:42:27 +0000 Subject: [PATCH 23/91] AddConst test --- src/tests/integration/test-data/foundry/test/CSE.t.sol | 9 +++++++++ src/tests/integration/test_foundry_prove.py | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/tests/integration/test-data/foundry/test/CSE.t.sol b/src/tests/integration/test-data/foundry/test/CSE.t.sol index 61d9f0906..248f40168 100644 --- a/src/tests/integration/test-data/foundry/test/CSE.t.sol +++ b/src/tests/integration/test-data/foundry/test/CSE.t.sol @@ -9,10 +9,12 @@ import "src/cse/SimpleWETH.sol"; contract CSETest is Test { Identity i; + AddConst c; Multiply m; function setUp() external { i = new Identity(); + c = new AddConst(); m = new Multiply(); } @@ -22,4 +24,11 @@ contract CSETest is Test { uint256 z = i.applyOp(x) + i.applyOp(y) + i.applyOp(y); assert(z == x + 2 * y); } + + function test_add_const(uint256 x, uint256 y) external view { + vm.assume(x < 2 ** 64 && y < 2 ** 64); + c.setConst(x); + uint256 z = c.applyOp(y); + assert(z == x + y); + } } diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 99725034c..545ab22ab 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -337,7 +337,11 @@ def test_foundry_merge_nodes( DEPENDENCY_TESTS: Final = [ - ['ArithmeticContract.add(uint256,uint256)', 'ArithmeticCallTest.test_double_add(uint256,uint256)'] + ['ArithmeticContract.add(uint256,uint256)', 'ArithmeticCallTest.test_double_add(uint256,uint256)'], + ['Identity.identity(uint256)', 'Identity.applyOp(uint256)'], + ['Identity.identity(uint256)', 'Identity.applyOp(uint256)', 'CSETest.test_identity(uint256,uint256)'], + # Does not terminate + # ['AddConst.applyOp(uint256)', 'CSETest.test_add_const(uint256, uint256)'], ] From bcc25d39b53aa2ec97667cdcd5899b5b1e5c12d9 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 12:38:37 +0000 Subject: [PATCH 24/91] initialisation of accessedStorage --- src/kontrol/prove.py | 25 +- .../show/AddConst.applyOp(uint256).expected | 65 +++ ...st.test_identity(uint256,uint256).expected | 392 ++++++++++++++++++ .../show/Identity.applyOp(uint256).expected | 69 +++ src/tests/integration/test_foundry_prove.py | 10 +- 5 files changed, 554 insertions(+), 7 deletions(-) create mode 100644 src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected create mode 100644 src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected create mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).expected diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index a654bf858..258052544 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -8,11 +8,11 @@ from kevm_pyk.utils import KDefinition__expand_macros, abstract_cell_vars, legacy_explore, run_prover from pathos.pools import ProcessPool # type: ignore from pyk.cterm import CTerm -from pyk.kast.inner import KApply, KSequence, KSort, KVariable, Subst +from pyk.kast.inner import KApply, KLabel, KSequence, KSort, KVariable, Subst, build_assoc from pyk.kast.manip import flatten_label, set_cell from pyk.kcfg import KCFG from pyk.prelude.bytes import bytesToken -from pyk.prelude.collections import list_empty, map_empty, map_of, set_empty +from pyk.prelude.collections import list_empty, map_empty, map_item, map_of, set_empty from pyk.prelude.k import GENERATED_TOP_CELL from pyk.prelude.kbool import FALSE, TRUE, notBool from pyk.prelude.kint import intToken @@ -611,11 +611,30 @@ def _init_cterm( } init_subst.update(init_subst_test) else: + # Symbolic accounts of all relevant contracts + # Status: Currently, only the executing contract + # TODO: Add all other accounts belonging to relevant contracts accounts: list[KInner] = [ Foundry.symbolic_account(Foundry.symbolic_contract_prefix(), program), KVariable('ACCOUNTS_REST', sort=KSort('AccountCellMap')), ] - init_subst_accounts = {'ACCOUNTS_CELL': KEVM.accounts(accounts)} + + # Symbolic accessed storage of all relevant contracts + # Status: Currently, only the executing contract + # TODO: Add all other accessed storage belonging to relevant contracts + accessed_storage: KInner = build_assoc( + map_empty(), + KLabel('_Map_'), + ( + map_item( + KVariable(Foundry.symbolic_contract_id(), sort=KSort('Int')), + KVariable(Foundry.symbolic_contract_prefix() + '_AS', sort=KSort('Set')), + ), + KVariable('ACCESSED_STORAGE_REST', sort=KSort('Map')), + ), + ) + + init_subst_accounts = {'ACCOUNTS_CELL': KEVM.accounts(accounts), 'ACCESSEDSTORAGE_CELL': accessed_storage} init_subst.update(init_subst_accounts) if calldata is not None: diff --git a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected new file mode 100644 index 000000000..791604aa4 --- /dev/null +++ b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected @@ -0,0 +1,65 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ src: src/cse/Unary.sol:18:29 +│ +│ (325 steps) +├─ 3 (split) +│ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... +│ pc: 158 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTRACT_STORAGE:Map , 0 ) ) } +┃ │ +┃ ├─ 4 +┃ │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... +┃ │ pc: 158 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (122 steps) +┃ ├─ 6 (terminal) +┃ │ k: #halt ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ ┊ constraint: OMITTED CONSTRAINT +┃ ┊ subst: OMITTED SUBST +┃ └─ 2 (leaf, target, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: PC_CELL_5d410f2a:Int +┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ +┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTRACT_STORAGE:Map , 0 ) ) ) } + │ + ├─ 5 + │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... + │ pc: 158 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (47 steps) + ├─ 7 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 179 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + ┊ constraint: OMITTED CONSTRAINT + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + diff --git a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected new file mode 100644 index 000000000..2165f4881 --- /dev/null +++ b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected @@ -0,0 +1,392 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ src: src/DeploymentStateCode.sol:5:7 +│ +│ (360 steps) +├─ 3 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: src/DeploymentStateCode.sol:5:7 +│ +│ (333 steps) +├─ 4 +│ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: src/DeploymentStateCode.sol:5:7 +│ +│ (165 steps) +├─ 5 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 221 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 +│ +│ (1 step) +├─ 6 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ src: src/DeploymentStateCode.sol:5:7 +│ +│ (373 steps) +├─ 8 (split) +│ k: JUMPI 2396 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... +│ pc: 2387 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } +┃ │ +┃ ├─ 9 +┃ │ k: JUMPI 2396 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... +┃ │ pc: 2387 +┃ │ callDepth: 0 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (193 steps) +┃ └─ 11 (vacuous, leaf) +┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... +┃ pc: 2455 +┃ callDepth: 0 +┃ statusCode: STATUSCODE:StatusCode +┃ src: src/EmitContract.sol:11:11 +┃ +┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } + │ + ├─ 10 + │ k: JUMPI 2396 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... + │ pc: 2387 + │ callDepth: 0 + │ statusCode: STATUSCODE:StatusCode + │ + │ (801 steps) + ├─ 12 + │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + │ pc: 148 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ src: lib/forge-std/src/StdInvariant.sol:99:102 + ┃ + ┃ (1 step) + ┣━━┓ + ┃ │ + ┃ ├─ 13 + ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ │ + ┃ │ (756 steps) + ┃ ├─ 15 + ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ │ pc: 148 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/src/StdInvariant.sol:99:102 + ┃ ┃ + ┃ ┃ (1 step) + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 17 + ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 87 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ ┃ │ + ┃ ┃ │ (756 steps) + ┃ ┃ ├─ 21 + ┃ ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ │ pc: 148 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: lib/forge-std/src/StdInvariant.sol:99:102 + ┃ ┃ ┃ + ┃ ┃ ┃ (1 step) + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 25 + ┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 87 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (725 steps) + ┃ ┃ ┃ ├─ 33 (terminal) + ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 221 + ┃ ┃ ┃ │ callDepth: 0 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ ┃ ┃ │ + ┃ ┃ ┃ ┊ constraint: true + ┃ ┃ ┃ ┊ subst: OMITTED SUBST + ┃ ┃ ┃ └─ 7 (leaf, target, terminal) + ┃ ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int + ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 26 + ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 87 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ ┃ │ + ┃ ┃ │ (725 steps) + ┃ ┃ ├─ 34 (terminal) + ┃ ┃ │ k: #halt ~> CONTINUATION:K + ┃ ┃ │ pc: 221 + ┃ ┃ │ callDepth: 0 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ ┃ │ + ┃ ┃ ┊ constraint: true + ┃ ┃ ┊ subst: OMITTED SUBST + ┃ ┃ └─ 7 (leaf, target, terminal) + ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ pc: PC_CELL_5d410f2a:Int + ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ ┃ + ┃ ┗━━┓ + ┃ │ + ┃ ├─ 18 + ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ │ + ┃ │ (756 steps) + ┃ ├─ 22 + ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ │ pc: 148 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/src/StdInvariant.sol:99:102 + ┃ ┃ + ┃ ┃ (1 step) + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 27 + ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 87 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ ┃ │ + ┃ ┃ │ (725 steps) + ┃ ┃ ├─ 35 (terminal) + ┃ ┃ │ k: #halt ~> CONTINUATION:K + ┃ ┃ │ pc: 221 + ┃ ┃ │ callDepth: 0 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ ┃ │ + ┃ ┃ ┊ constraint: true + ┃ ┃ ┊ subst: OMITTED SUBST + ┃ ┃ └─ 7 (leaf, target, terminal) + ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ pc: PC_CELL_5d410f2a:Int + ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ ┃ + ┃ ┗━━┓ + ┃ │ + ┃ ├─ 28 + ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ │ + ┃ │ (725 steps) + ┃ ├─ 36 (terminal) + ┃ │ k: #halt ~> CONTINUATION:K + ┃ │ pc: 221 + ┃ │ callDepth: 0 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ │ + ┃ ┊ constraint: true + ┃ ┊ subst: OMITTED SUBST + ┃ └─ 7 (leaf, target, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: PC_CELL_5d410f2a:Int + ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ + ┗━━┓ + │ + ├─ 14 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: src/DeploymentStateCode.sol:5:7 + │ + │ (756 steps) + ├─ 16 + │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + │ pc: 148 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/src/StdInvariant.sol:99:102 + ┃ + ┃ (1 step) + ┣━━┓ + ┃ │ + ┃ ├─ 19 + ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ │ + ┃ │ (756 steps) + ┃ ├─ 23 + ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ │ pc: 148 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/src/StdInvariant.sol:99:102 + ┃ ┃ + ┃ ┃ (1 step) + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 29 + ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 87 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ ┃ │ + ┃ ┃ │ (725 steps) + ┃ ┃ ├─ 37 (terminal) + ┃ ┃ │ k: #halt ~> CONTINUATION:K + ┃ ┃ │ pc: 221 + ┃ ┃ │ callDepth: 0 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ ┃ │ + ┃ ┃ ┊ constraint: true + ┃ ┃ ┊ subst: OMITTED SUBST + ┃ ┃ └─ 7 (leaf, target, terminal) + ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ pc: PC_CELL_5d410f2a:Int + ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ ┃ + ┃ ┗━━┓ + ┃ │ + ┃ ├─ 30 + ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ │ + ┃ │ (725 steps) + ┃ ├─ 38 (terminal) + ┃ │ k: #halt ~> CONTINUATION:K + ┃ │ pc: 221 + ┃ │ callDepth: 0 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ │ + ┃ ┊ constraint: true + ┃ ┊ subst: OMITTED SUBST + ┃ └─ 7 (leaf, target, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: PC_CELL_5d410f2a:Int + ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ + ┗━━┓ + │ + ├─ 20 + │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: src/DeploymentStateCode.sol:5:7 + │ + │ (756 steps) + ├─ 24 + │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + │ pc: 148 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/src/StdInvariant.sol:99:102 + ┃ + ┃ (1 step) + ┣━━┓ + ┃ │ + ┃ ├─ 31 + ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: src/DeploymentStateCode.sol:5:7 + ┃ │ + ┃ │ (725 steps) + ┃ ├─ 39 (terminal) + ┃ │ k: #halt ~> CONTINUATION:K + ┃ │ pc: 221 + ┃ │ callDepth: 0 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ │ + ┃ ┊ constraint: true + ┃ ┊ subst: OMITTED SUBST + ┃ └─ 7 (leaf, target, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: PC_CELL_5d410f2a:Int + ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ + ┗━━┓ + │ + ├─ 32 + │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: src/DeploymentStateCode.sol:5:7 + │ + │ (725 steps) + ├─ 40 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 221 + │ callDepth: 0 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + │ + ┊ constraint: true + ┊ subst: OMITTED SUBST + └─ 7 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected new file mode 100644 index 000000000..76061414f --- /dev/null +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected @@ -0,0 +1,69 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ src: src/cse/Unary.sol:6:16 +│ +│ (367 steps) +├─ 3 (split) +│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ src: src/cse/Unary.sol:12:15 +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +┃ │ pc: 148 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ src: src/cse/Unary.sol:12:15 +┃ │ +┃ │ (345 steps) +┃ ├─ 6 (terminal) +┃ │ k: #halt ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ src: src/cse/Unary.sol:13:14 +┃ │ +┃ ┊ constraint: OMITTED CONSTRAINT +┃ ┊ subst: OMITTED SUBST +┃ └─ 2 (leaf, target, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: PC_CELL_5d410f2a:Int +┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ +┗━━┓ constraint: { true #Equals 1024 <=Int CALLDEPTH_CELL:Int } + │ + ├─ 5 + │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ src: src/cse/Unary.sol:12:15 + │ + │ (76 steps) + ├─ 7 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + ┊ constraint: OMITTED CONSTRAINT + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 545ab22ab..6868e0c83 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -337,11 +337,13 @@ def test_foundry_merge_nodes( DEPENDENCY_TESTS: Final = [ + ['ArithmeticContract.add(uint256,uint256)', 'ArithmeticCallTest.test_double_add(uint256,uint256)'], + ['Identity.identity(uint256)'], ['Identity.identity(uint256)', 'Identity.applyOp(uint256)'], ['Identity.identity(uint256)', 'Identity.applyOp(uint256)', 'CSETest.test_identity(uint256,uint256)'], - # Does not terminate - # ['AddConst.applyOp(uint256)', 'CSETest.test_add_const(uint256, uint256)'], + ['AddConst.applyOp(uint256)'], + ['AddConst.applyOp(uint256)', 'CSETest.test_add_const(uint256, uint256)'], ] @@ -357,8 +359,8 @@ def test_foundry_dependency( if no_use_booster: pytest.skip() - # Dependency tests require at least two inter-dependent functions - assert len(test) >= 2 + # Tests require at least one ifunctions + assert len(test) > 0 if bug_report is not None: server._populate_bug_report(bug_report) From f41c7c0773c408060f008d42c03635488bd09207 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 12:39:04 +0000 Subject: [PATCH 25/91] formatting --- src/tests/integration/test_foundry_prove.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 6868e0c83..621d576c0 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -337,7 +337,6 @@ def test_foundry_merge_nodes( DEPENDENCY_TESTS: Final = [ - ['ArithmeticContract.add(uint256,uint256)', 'ArithmeticCallTest.test_double_add(uint256,uint256)'], ['Identity.identity(uint256)'], ['Identity.identity(uint256)', 'Identity.applyOp(uint256)'], From 376af18dec0ded1a9c7249aa9c40be5155acc456 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 12:40:03 +0000 Subject: [PATCH 26/91] test correction --- src/tests/integration/test-data/foundry/test/CSE.t.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/integration/test-data/foundry/test/CSE.t.sol b/src/tests/integration/test-data/foundry/test/CSE.t.sol index 248f40168..185d84756 100644 --- a/src/tests/integration/test-data/foundry/test/CSE.t.sol +++ b/src/tests/integration/test-data/foundry/test/CSE.t.sol @@ -25,7 +25,7 @@ contract CSETest is Test { assert(z == x + 2 * y); } - function test_add_const(uint256 x, uint256 y) external view { + function test_add_const(uint256 x, uint256 y) external { vm.assume(x < 2 ** 64 && y < 2 ** 64); c.setConst(x); uint256 z = c.applyOp(y); From 7869c2ade1f36aec6e4938097e187b2ee4a36297 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 13:25:19 +0000 Subject: [PATCH 27/91] adding expected files, WETH9 contract --- .../test-data/foundry/src/cse/SimpleWETH.sol | 73 --- ...t.test_add_const(uint256,uint256).expected | 123 +++++ ...st.test_identity(uint256,uint256).expected | 424 ++++-------------- .../show/Identity.identity(uint256).expected | 27 ++ 4 files changed, 239 insertions(+), 408 deletions(-) delete mode 100644 src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol create mode 100644 src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected create mode 100644 src/tests/integration/test-data/show/Identity.identity(uint256).expected diff --git a/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol b/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol deleted file mode 100644 index 4b72eeed0..000000000 --- a/src/tests/integration/test-data/foundry/src/cse/SimpleWETH.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity =0.8.13; - -import { Add, Sub } from "./Binary.sol"; - -// CSE challenge: initialised contract variables -// CSE challenge: global variables -// CSE challenge: contracts in storage -// CSE challenge: cross-contract function calls -// CSE challenge: mappings in storage - -contract WETH9 { - string public name = "Wrapped Ether"; - string public symbol = "WETH"; - uint8 public decimals = 18; - - Add add; - Sub sub; - - event Approval(address indexed src, address indexed guy, uint256 wad); - event Transfer(address indexed src, address indexed dst, uint256 wad); - event Deposit(address indexed dst, uint256 wad); - event Withdrawal(address indexed src, uint256 wad); - - mapping(address => uint256) public balanceOf; - mapping(address => mapping(address => uint256)) public allowance; - - fallback() external payable { - deposit(); - } - - function deposit() public payable { - balanceOf[msg.sender] = add.applyOp(balanceOf[msg.sender], msg.value); - emit Deposit(msg.sender, msg.value); - } - - function withdraw(uint256 wad) public { - require(balanceOf[msg.sender] >= wad); - balanceOf[msg.sender] = sub.applyOp(balanceOf[msg.sender], wad); - payable(msg.sender).transfer(wad); - emit Withdrawal(msg.sender, wad); - } - - function totalSupply() public view returns (uint256) { - return address(this).balance; - } - - function approve(address guy, uint256 wad) public returns (bool) { - allowance[msg.sender][guy] = wad; - emit Approval(msg.sender, guy, wad); - return true; - } - - function transfer(address dst, uint256 wad) public returns (bool) { - return transferFrom(msg.sender, dst, wad); - } - - function transferFrom(address src, address dst, uint256 wad) public returns (bool) { - require(balanceOf[src] >= wad); - - if (src != msg.sender && allowance[src][msg.sender] != type(uint256).max) { - require(allowance[src][msg.sender] >= wad); - allowance[src][msg.sender] = sub.applyOp(allowance[src][msg.sender], wad); - } - - balanceOf[src] = sub.applyOp(balanceOf[src], wad); - balanceOf[dst] = add.applyOp(balanceOf[dst], wad); - - emit Transfer(src, dst, wad); - - return true; - } -} \ No newline at end of file diff --git a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected new file mode 100644 index 000000000..cc9d3d1b8 --- /dev/null +++ b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected @@ -0,0 +1,123 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ src: test/CSE.t.sol:9:34 +│ +│ (384 steps) +├─ 3 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (333 steps) +├─ 4 +│ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... +│ pc: 29 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (333 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (165 steps) +├─ 6 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 +│ +│ (1 step) +├─ 7 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ src: test/CSE.t.sol:9:34 +│ +│ (391 steps) +├─ 9 (split) +│ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... +│ pc: 717 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } +┃ │ +┃ ├─ 10 +┃ │ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... +┃ │ pc: 717 +┃ │ callDepth: 0 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (193 steps) +┃ └─ 12 (vacuous, leaf) +┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... +┃ pc: 785 +┃ callDepth: 0 +┃ statusCode: STATUSCODE:StatusCode +┃ src: lib/forge-std/src/StdInvariant.sol:104:105 +┃ +┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } + │ + ├─ 11 + │ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... + │ pc: 717 + │ callDepth: 0 + │ statusCode: STATUSCODE:StatusCode + │ + │ (782 steps) + ├─ 13 + │ k: #halt ~> #return 128 0 ~> #pc [ CALL ] ~> #execute ~> CONTINUATION:K + │ pc: 105 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (546 steps) + ├─ 14 + │ k: JUMPI 180 bool2Word ( VV1_y_114b9705:Int <=Int ( maxUInt256 -Int VV0_x_114b9705: ... + │ pc: 158 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/src/StdInvariant.sol:79:82 + │ + │ (122 steps) + ├─ 15 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (416 steps) + ├─ 16 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 248 + │ callDepth: 0 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + │ + ┊ constraint: true + ┊ subst: OMITTED SUBST + └─ 8 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + diff --git a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected index 2165f4881..60a434fd3 100644 --- a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected +++ b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected @@ -4,388 +4,142 @@ │ pc: 0 │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode -│ src: src/DeploymentStateCode.sol:5:7 +│ src: test/CSE.t.sol:9:34 │ -│ (360 steps) +│ (384 steps) ├─ 3 │ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... │ pc: 30 │ callDepth: 1 │ statusCode: EVMC_SUCCESS -│ src: src/DeploymentStateCode.sol:5:7 +│ src: test/CSE.t.sol:9:34 │ │ (333 steps) ├─ 4 │ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... +│ pc: 29 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (333 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... │ pc: 30 │ callDepth: 1 │ statusCode: EVMC_SUCCESS -│ src: src/DeploymentStateCode.sol:5:7 +│ src: test/CSE.t.sol:9:34 │ │ (165 steps) -├─ 5 (terminal) +├─ 6 (terminal) │ k: #halt ~> CONTINUATION:K -│ pc: 221 +│ pc: 248 │ callDepth: 0 │ statusCode: EVMC_SUCCESS │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 │ │ (1 step) -├─ 6 +├─ 7 │ k: #execute ~> CONTINUATION:K │ pc: 0 │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode -│ src: src/DeploymentStateCode.sol:5:7 +│ src: test/CSE.t.sol:9:34 │ │ (373 steps) -├─ 8 (split) -│ k: JUMPI 2396 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... -│ pc: 2387 +├─ 9 (split) +│ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... +│ pc: 2871 │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode ┃ ┃ (branch) ┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } ┃ │ -┃ ├─ 9 -┃ │ k: JUMPI 2396 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... -┃ │ pc: 2387 +┃ ├─ 10 +┃ │ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... +┃ │ pc: 2871 ┃ │ callDepth: 0 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ ┃ │ (193 steps) -┃ └─ 11 (vacuous, leaf) +┃ └─ 12 (vacuous, leaf) ┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... -┃ pc: 2455 +┃ pc: 2939 ┃ callDepth: 0 ┃ statusCode: STATUSCODE:StatusCode -┃ src: src/EmitContract.sol:11:11 ┃ ┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } │ - ├─ 10 - │ k: JUMPI 2396 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... - │ pc: 2387 + ├─ 11 + │ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... + │ pc: 2871 │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ - │ (801 steps) - ├─ 12 - │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - │ pc: 148 + │ (1148 steps) + ├─ 13 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... + │ pc: 87 + │ callDepth: 2 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (328 steps) + ├─ 14 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ src: lib/forge-std/src/StdInvariant.sol:99:102 - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 13 - ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ │ - ┃ │ (756 steps) - ┃ ├─ 15 - ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - ┃ │ pc: 148 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/src/StdInvariant.sol:99:102 - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 17 - ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ │ pc: 87 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ ┃ │ - ┃ ┃ │ (756 steps) - ┃ ┃ ├─ 21 - ┃ ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - ┃ ┃ │ pc: 148 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: lib/forge-std/src/StdInvariant.sol:99:102 - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 25 - ┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ ┃ │ pc: 87 - ┃ ┃ ┃ │ callDepth: 1 - ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ ┃ ┃ │ - ┃ ┃ ┃ │ (725 steps) - ┃ ┃ ┃ ├─ 33 (terminal) - ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K - ┃ ┃ ┃ │ pc: 221 - ┃ ┃ ┃ │ callDepth: 0 - ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ ┃ ┃ │ - ┃ ┃ ┃ ┊ constraint: true - ┃ ┃ ┃ ┊ subst: OMITTED SUBST - ┃ ┃ ┃ └─ 7 (leaf, target, terminal) - ┃ ┃ ┃ k: #halt ~> CONTINUATION:K - ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int - ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 26 - ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ │ pc: 87 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ ┃ │ - ┃ ┃ │ (725 steps) - ┃ ┃ ├─ 34 (terminal) - ┃ ┃ │ k: #halt ~> CONTINUATION:K - ┃ ┃ │ pc: 221 - ┃ ┃ │ callDepth: 0 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ ┃ │ - ┃ ┃ ┊ constraint: true - ┃ ┃ ┊ subst: OMITTED SUBST - ┃ ┃ └─ 7 (leaf, target, terminal) - ┃ ┃ k: #halt ~> CONTINUATION:K - ┃ ┃ pc: PC_CELL_5d410f2a:Int - ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 18 - ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ │ - ┃ │ (756 steps) - ┃ ├─ 22 - ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - ┃ │ pc: 148 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/src/StdInvariant.sol:99:102 - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 27 - ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ │ pc: 87 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ ┃ │ - ┃ ┃ │ (725 steps) - ┃ ┃ ├─ 35 (terminal) - ┃ ┃ │ k: #halt ~> CONTINUATION:K - ┃ ┃ │ pc: 221 - ┃ ┃ │ callDepth: 0 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ ┃ │ - ┃ ┃ ┊ constraint: true - ┃ ┃ ┊ subst: OMITTED SUBST - ┃ ┃ └─ 7 (leaf, target, terminal) - ┃ ┃ k: #halt ~> CONTINUATION:K - ┃ ┃ pc: PC_CELL_5d410f2a:Int - ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 28 - ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ │ - ┃ │ (725 steps) - ┃ ├─ 36 (terminal) - ┃ │ k: #halt ~> CONTINUATION:K - ┃ │ pc: 221 - ┃ │ callDepth: 0 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ │ - ┃ ┊ constraint: true - ┃ ┊ subst: OMITTED SUBST - ┃ └─ 7 (leaf, target, terminal) - ┃ k: #halt ~> CONTINUATION:K - ┃ pc: PC_CELL_5d410f2a:Int - ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ - ┗━━┓ - │ - ├─ 14 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: src/DeploymentStateCode.sol:5:7 - │ - │ (756 steps) - ├─ 16 - │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - │ pc: 148 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/src/StdInvariant.sol:99:102 - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 19 - ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ │ - ┃ │ (756 steps) - ┃ ├─ 23 - ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - ┃ │ pc: 148 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/src/StdInvariant.sol:99:102 - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 29 - ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ │ pc: 87 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ ┃ │ - ┃ ┃ │ (725 steps) - ┃ ┃ ├─ 37 (terminal) - ┃ ┃ │ k: #halt ~> CONTINUATION:K - ┃ ┃ │ pc: 221 - ┃ ┃ │ callDepth: 0 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ ┃ │ - ┃ ┃ ┊ constraint: true - ┃ ┃ ┊ subst: OMITTED SUBST - ┃ ┃ └─ 7 (leaf, target, terminal) - ┃ ┃ k: #halt ~> CONTINUATION:K - ┃ ┃ pc: PC_CELL_5d410f2a:Int - ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 30 - ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ │ - ┃ │ (725 steps) - ┃ ├─ 38 (terminal) - ┃ │ k: #halt ~> CONTINUATION:K - ┃ │ pc: 221 - ┃ │ callDepth: 0 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ │ - ┃ ┊ constraint: true - ┃ ┊ subst: OMITTED SUBST - ┃ └─ 7 (leaf, target, terminal) - ┃ k: #halt ~> CONTINUATION:K - ┃ pc: PC_CELL_5d410f2a:Int - ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ - ┗━━┓ - │ - ├─ 20 - │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: src/DeploymentStateCode.sol:5:7 - │ - │ (756 steps) - ├─ 24 - │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - │ pc: 148 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/src/StdInvariant.sol:99:102 - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 31 - ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: src/DeploymentStateCode.sol:5:7 - ┃ │ - ┃ │ (725 steps) - ┃ ├─ 39 (terminal) - ┃ │ k: #halt ~> CONTINUATION:K - ┃ │ pc: 221 - ┃ │ callDepth: 0 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ │ - ┃ ┊ constraint: true - ┃ ┊ subst: OMITTED SUBST - ┃ └─ 7 (leaf, target, terminal) - ┃ k: #halt ~> CONTINUATION:K - ┃ pc: PC_CELL_5d410f2a:Int - ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ - ┗━━┓ - │ - ├─ 32 - │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: src/DeploymentStateCode.sol:5:7 - │ - │ (725 steps) - ├─ 40 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 221 - │ callDepth: 0 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - │ - ┊ constraint: true - ┊ subst: OMITTED SUBST - └─ 7 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (1103 steps) + ├─ 15 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... + │ pc: 87 + │ callDepth: 2 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (328 steps) + ├─ 16 + │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (1103 steps) + ├─ 17 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 192 32 ~> # ... + │ pc: 87 + │ callDepth: 2 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (328 steps) + ├─ 18 + │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (725 steps) + ├─ 19 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 248 + │ callDepth: 0 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + │ + ┊ constraint: true + ┊ subst: OMITTED SUBST + └─ 8 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode diff --git a/src/tests/integration/test-data/show/Identity.identity(uint256).expected b/src/tests/integration/test-data/show/Identity.identity(uint256).expected new file mode 100644 index 000000000..ef113bc75 --- /dev/null +++ b/src/tests/integration/test-data/show/Identity.identity(uint256).expected @@ -0,0 +1,27 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ src: src/cse/Unary.sol:6:16 +│ +│ (331 steps) +├─ 3 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 87 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: EVMC_SUCCESS +│ src: src/cse/Unary.sol:13:14 +│ +┊ constraint: OMITTED CONSTRAINT +┊ subst: OMITTED SUBST +└─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + From 157a3d6c29686dee91f21d0836ef2aaac137fd5b Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 13:27:44 +0000 Subject: [PATCH 28/91] correction --- src/tests/integration/test-data/foundry/test/CSE.t.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/integration/test-data/foundry/test/CSE.t.sol b/src/tests/integration/test-data/foundry/test/CSE.t.sol index 185d84756..89aa7c767 100644 --- a/src/tests/integration/test-data/foundry/test/CSE.t.sol +++ b/src/tests/integration/test-data/foundry/test/CSE.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import "src/cse/Unary.sol"; import "src/cse/Binary.sol"; -import "src/cse/SimpleWETH.sol"; +import "src/cse/WETH9.sol"; contract CSETest is Test { Identity i; From b47afb726a9329527cc21af0cf775eee8320dd1e Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 15:29:08 +0000 Subject: [PATCH 29/91] removing accessStorage manipulation, adding full WETH9 --- src/kontrol/prove.py | 21 +----- .../test-data/foundry/src/cse/WETH9.sol | 66 +++++++++++++++++++ 2 files changed, 69 insertions(+), 18 deletions(-) create mode 100644 src/tests/integration/test-data/foundry/src/cse/WETH9.sol diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index 258052544..c27b34ea7 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -8,11 +8,11 @@ from kevm_pyk.utils import KDefinition__expand_macros, abstract_cell_vars, legacy_explore, run_prover from pathos.pools import ProcessPool # type: ignore from pyk.cterm import CTerm -from pyk.kast.inner import KApply, KLabel, KSequence, KSort, KVariable, Subst, build_assoc +from pyk.kast.inner import KApply, KSequence, KSort, KVariable, Subst from pyk.kast.manip import flatten_label, set_cell from pyk.kcfg import KCFG from pyk.prelude.bytes import bytesToken -from pyk.prelude.collections import list_empty, map_empty, map_item, map_of, set_empty +from pyk.prelude.collections import list_empty, map_empty, map_of, set_empty from pyk.prelude.k import GENERATED_TOP_CELL from pyk.prelude.kbool import FALSE, TRUE, notBool from pyk.prelude.kint import intToken @@ -619,22 +619,7 @@ def _init_cterm( KVariable('ACCOUNTS_REST', sort=KSort('AccountCellMap')), ] - # Symbolic accessed storage of all relevant contracts - # Status: Currently, only the executing contract - # TODO: Add all other accessed storage belonging to relevant contracts - accessed_storage: KInner = build_assoc( - map_empty(), - KLabel('_Map_'), - ( - map_item( - KVariable(Foundry.symbolic_contract_id(), sort=KSort('Int')), - KVariable(Foundry.symbolic_contract_prefix() + '_AS', sort=KSort('Set')), - ), - KVariable('ACCESSED_STORAGE_REST', sort=KSort('Map')), - ), - ) - - init_subst_accounts = {'ACCOUNTS_CELL': KEVM.accounts(accounts), 'ACCESSEDSTORAGE_CELL': accessed_storage} + init_subst_accounts = {'ACCOUNTS_CELL': KEVM.accounts(accounts)} init_subst.update(init_subst_accounts) if calldata is not None: diff --git a/src/tests/integration/test-data/foundry/src/cse/WETH9.sol b/src/tests/integration/test-data/foundry/src/cse/WETH9.sol new file mode 100644 index 000000000..333f18adb --- /dev/null +++ b/src/tests/integration/test-data/foundry/src/cse/WETH9.sol @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity =0.8.13; + +// CSE challenge: initialised contract variables +// CSE challenge: global variables +// CSE challenge: mappings in storage + +contract WETH9 { + string public name = "Wrapped Ether"; + string public symbol = "WETH"; + uint8 public decimals = 18; + + event Approval(address indexed src, address indexed guy, uint256 wad); + event Transfer(address indexed src, address indexed dst, uint256 wad); + event Deposit(address indexed dst, uint256 wad); + event Withdrawal(address indexed src, uint256 wad); + + mapping(address => uint256) public balanceOf; + mapping(address => mapping(address => uint256)) public allowance; + + fallback() external payable { + deposit(); + } + + function deposit() public payable { + balanceOf[msg.sender] += msg.value; + emit Deposit(msg.sender, msg.value); + } + + function withdraw(uint256 wad) public { + require(balanceOf[msg.sender] >= wad); + balanceOf[msg.sender] -= wad; + payable(msg.sender).transfer(wad); + emit Withdrawal(msg.sender, wad); + } + + function totalSupply() public view returns (uint256) { + return address(this).balance; + } + + function approve(address guy, uint256 wad) public returns (bool) { + allowance[msg.sender][guy] = wad; + emit Approval(msg.sender, guy, wad); + return true; + } + + function transfer(address dst, uint256 wad) public returns (bool) { + return transferFrom(msg.sender, dst, wad); + } + + function transferFrom(address src, address dst, uint256 wad) public returns (bool) { + require(balanceOf[src] >= wad); + + if (src != msg.sender && allowance[src][msg.sender] != type(uint256).max) { + require(allowance[src][msg.sender] >= wad); + allowance[src][msg.sender] -= wad; + } + + balanceOf[src] -= wad; + balanceOf[dst] += wad; + + emit Transfer(src, dst, wad); + + return true; + } +} \ No newline at end of file From d484347c1b5b9df8c59eb365f754d2617ab86fbd Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 17:08:34 +0000 Subject: [PATCH 30/91] adding nocse kcfgs and updating cse ones --- .../show/AddConst.applyOp(uint256).expected | 2 +- ...t.test_add_const(uint256,uint256).expected | 30 +- ..._add_const(uint256,uint256).expected.nocse | 115 ++++++ ...st.test_identity(uint256,uint256).expected | 383 +++++++++++++++--- ...t_identity(uint256,uint256).expected.nocse | 146 +++++++ .../Identity.applyOp(uint256).expected.nocse | 77 ++++ 6 files changed, 664 insertions(+), 89 deletions(-) create mode 100644 src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse create mode 100644 src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse create mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).expected.nocse diff --git a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected index 791604aa4..104775509 100644 --- a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected +++ b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected @@ -6,7 +6,7 @@ │ statusCode: STATUSCODE:StatusCode │ src: src/cse/Unary.sol:18:29 │ -│ (325 steps) +│ (324 steps) ├─ 3 (split) │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... │ pc: 158 diff --git a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected index cc9d3d1b8..fdcccced6 100644 --- a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected +++ b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected @@ -6,7 +6,7 @@ │ statusCode: STATUSCODE:StatusCode │ src: test/CSE.t.sol:9:34 │ -│ (384 steps) +│ (383 steps) ├─ 3 │ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... │ pc: 30 @@ -14,7 +14,7 @@ │ statusCode: EVMC_SUCCESS │ src: test/CSE.t.sol:9:34 │ -│ (333 steps) +│ (330 steps) ├─ 4 │ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... │ pc: 29 @@ -22,7 +22,7 @@ │ statusCode: EVMC_SUCCESS │ src: test/CSE.t.sol:9:34 │ -│ (333 steps) +│ (330 steps) ├─ 5 │ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... │ pc: 30 @@ -30,7 +30,7 @@ │ statusCode: EVMC_SUCCESS │ src: test/CSE.t.sol:9:34 │ -│ (165 steps) +│ (163 steps) ├─ 6 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 248 @@ -78,7 +78,7 @@ │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ - │ (782 steps) + │ (780 steps) ├─ 13 │ k: #halt ~> #return 128 0 ~> #pc [ CALL ] ~> #execute ~> CONTINUATION:K │ pc: 105 @@ -86,24 +86,8 @@ │ statusCode: EVMC_SUCCESS │ src: test/CSE.t.sol:9:34 │ - │ (546 steps) - ├─ 14 - │ k: JUMPI 180 bool2Word ( VV1_y_114b9705:Int <=Int ( maxUInt256 -Int VV0_x_114b9705: ... - │ pc: 158 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/src/StdInvariant.sol:79:82 - │ - │ (122 steps) - ├─ 15 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (416 steps) - ├─ 16 (terminal) + │ (961 steps) + ├─ 14 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 248 │ callDepth: 0 diff --git a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse new file mode 100644 index 000000000..fee9bb966 --- /dev/null +++ b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse @@ -0,0 +1,115 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ src: test/CSE.t.sol:9:34 +│ +│ (383 steps) +├─ 3 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (330 steps) +├─ 4 +│ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... +│ pc: 29 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (330 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (163 steps) +├─ 6 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 +│ +│ (1 step) +├─ 7 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ src: test/CSE.t.sol:9:34 +│ +│ (391 steps) +├─ 9 (split) +│ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... +│ pc: 717 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } +┃ │ +┃ ├─ 10 +┃ │ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... +┃ │ pc: 717 +┃ │ callDepth: 0 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (193 steps) +┃ └─ 12 (vacuous, leaf) +┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... +┃ pc: 785 +┃ callDepth: 0 +┃ statusCode: STATUSCODE:StatusCode +┃ src: lib/forge-std/src/StdInvariant.sol:104:105 +┃ +┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } + │ + ├─ 11 + │ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... + │ pc: 717 + │ callDepth: 0 + │ statusCode: STATUSCODE:StatusCode + │ + │ (780 steps) + ├─ 13 + │ k: #halt ~> #return 128 0 ~> #pc [ CALL ] ~> #execute ~> CONTINUATION:K + │ pc: 105 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (666 steps) + ├─ 14 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (416 steps) + ├─ 15 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 248 + │ callDepth: 0 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + │ + ┊ constraint: true + ┊ subst: OMITTED SUBST + └─ 8 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + diff --git a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected index 60a434fd3..56214cc35 100644 --- a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected +++ b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected @@ -6,7 +6,7 @@ │ statusCode: STATUSCODE:StatusCode │ src: test/CSE.t.sol:9:34 │ -│ (384 steps) +│ (383 steps) ├─ 3 │ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... │ pc: 30 @@ -14,7 +14,7 @@ │ statusCode: EVMC_SUCCESS │ src: test/CSE.t.sol:9:34 │ -│ (333 steps) +│ (330 steps) ├─ 4 │ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... │ pc: 29 @@ -22,7 +22,7 @@ │ statusCode: EVMC_SUCCESS │ src: test/CSE.t.sol:9:34 │ -│ (333 steps) +│ (330 steps) ├─ 5 │ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... │ pc: 30 @@ -30,7 +30,7 @@ │ statusCode: EVMC_SUCCESS │ src: test/CSE.t.sol:9:34 │ -│ (165 steps) +│ (163 steps) ├─ 6 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 248 @@ -77,69 +77,322 @@ │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ - │ (1148 steps) + │ (800 steps) ├─ 13 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - │ pc: 87 - │ callDepth: 2 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (328 steps) - ├─ 14 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (1103 steps) - ├─ 15 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... - │ pc: 87 - │ callDepth: 2 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (328 steps) - ├─ 16 - │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 + │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + │ pc: 148 │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (1103 steps) - ├─ 17 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 192 32 ~> # ... - │ pc: 87 - │ callDepth: 2 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (328 steps) - ├─ 18 - │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (725 steps) - ├─ 19 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 248 - │ callDepth: 0 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - │ - ┊ constraint: true - ┊ subst: OMITTED SUBST - └─ 8 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode + │ statusCode: STATUSCODE:StatusCode + │ src: lib/forge-std/src/StdInvariant.sol:79:82 + ┃ + ┃ (1 step) + ┣━━┓ + ┃ │ + ┃ ├─ 14 + ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: test/CSE.t.sol:9:34 + ┃ │ + ┃ │ (755 steps) + ┃ ├─ 16 + ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ │ pc: 148 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/src/StdInvariant.sol:79:82 + ┃ ┃ + ┃ ┃ (1 step) + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 18 + ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 87 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: test/CSE.t.sol:9:34 + ┃ ┃ │ + ┃ ┃ │ (755 steps) + ┃ ┃ ├─ 22 + ┃ ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ │ pc: 148 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: lib/forge-std/src/StdInvariant.sol:79:82 + ┃ ┃ ┃ + ┃ ┃ ┃ (1 step) + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 26 + ┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 87 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ │ src: test/CSE.t.sol:9:34 + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (725 steps) + ┃ ┃ ┃ ├─ 34 (terminal) + ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 248 + ┃ ┃ ┃ │ callDepth: 0 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ ┃ ┃ │ + ┃ ┃ ┃ ┊ constraint: true + ┃ ┃ ┃ ┊ subst: OMITTED SUBST + ┃ ┃ ┃ └─ 8 (leaf, target, terminal) + ┃ ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int + ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 27 + ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 87 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: test/CSE.t.sol:9:34 + ┃ ┃ │ + ┃ ┃ │ (725 steps) + ┃ ┃ ├─ 35 (terminal) + ┃ ┃ │ k: #halt ~> CONTINUATION:K + ┃ ┃ │ pc: 248 + ┃ ┃ │ callDepth: 0 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ ┃ │ + ┃ ┃ ┊ constraint: true + ┃ ┃ ┊ subst: OMITTED SUBST + ┃ ┃ └─ 8 (leaf, target, terminal) + ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ pc: PC_CELL_5d410f2a:Int + ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ ┃ + ┃ ┗━━┓ + ┃ │ + ┃ ├─ 19 + ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: test/CSE.t.sol:9:34 + ┃ │ + ┃ │ (755 steps) + ┃ ├─ 23 + ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ │ pc: 148 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/src/StdInvariant.sol:79:82 + ┃ ┃ + ┃ ┃ (1 step) + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 28 + ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 87 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: test/CSE.t.sol:9:34 + ┃ ┃ │ + ┃ ┃ │ (725 steps) + ┃ ┃ ├─ 36 (terminal) + ┃ ┃ │ k: #halt ~> CONTINUATION:K + ┃ ┃ │ pc: 248 + ┃ ┃ │ callDepth: 0 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ ┃ │ + ┃ ┃ ┊ constraint: true + ┃ ┃ ┊ subst: OMITTED SUBST + ┃ ┃ └─ 8 (leaf, target, terminal) + ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ pc: PC_CELL_5d410f2a:Int + ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ ┃ + ┃ ┗━━┓ + ┃ │ + ┃ ├─ 29 + ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: test/CSE.t.sol:9:34 + ┃ │ + ┃ │ (725 steps) + ┃ ├─ 37 (terminal) + ┃ │ k: #halt ~> CONTINUATION:K + ┃ │ pc: 248 + ┃ │ callDepth: 0 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ │ + ┃ ┊ constraint: true + ┃ ┊ subst: OMITTED SUBST + ┃ └─ 8 (leaf, target, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: PC_CELL_5d410f2a:Int + ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ + ┗━━┓ + │ + ├─ 15 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (755 steps) + ├─ 17 + │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + │ pc: 148 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/src/StdInvariant.sol:79:82 + ┃ + ┃ (1 step) + ┣━━┓ + ┃ │ + ┃ ├─ 20 + ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: test/CSE.t.sol:9:34 + ┃ │ + ┃ │ (755 steps) + ┃ ├─ 24 + ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ │ pc: 148 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/src/StdInvariant.sol:79:82 + ┃ ┃ + ┃ ┃ (1 step) + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 30 + ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 87 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: test/CSE.t.sol:9:34 + ┃ ┃ │ + ┃ ┃ │ (725 steps) + ┃ ┃ ├─ 38 (terminal) + ┃ ┃ │ k: #halt ~> CONTINUATION:K + ┃ ┃ │ pc: 248 + ┃ ┃ │ callDepth: 0 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ ┃ │ + ┃ ┃ ┊ constraint: true + ┃ ┃ ┊ subst: OMITTED SUBST + ┃ ┃ └─ 8 (leaf, target, terminal) + ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ pc: PC_CELL_5d410f2a:Int + ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ ┃ + ┃ ┗━━┓ + ┃ │ + ┃ ├─ 31 + ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: test/CSE.t.sol:9:34 + ┃ │ + ┃ │ (725 steps) + ┃ ├─ 39 (terminal) + ┃ │ k: #halt ~> CONTINUATION:K + ┃ │ pc: 248 + ┃ │ callDepth: 0 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ │ + ┃ ┊ constraint: true + ┃ ┊ subst: OMITTED SUBST + ┃ └─ 8 (leaf, target, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: PC_CELL_5d410f2a:Int + ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ + ┗━━┓ + │ + ├─ 21 + │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (755 steps) + ├─ 25 + │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + │ pc: 148 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/src/StdInvariant.sol:79:82 + ┃ + ┃ (1 step) + ┣━━┓ + ┃ │ + ┃ ├─ 32 + ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 87 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: test/CSE.t.sol:9:34 + ┃ │ + ┃ │ (725 steps) + ┃ ├─ 40 (terminal) + ┃ │ k: #halt ~> CONTINUATION:K + ┃ │ pc: 248 + ┃ │ callDepth: 0 + ┃ │ statusCode: EVMC_SUCCESS + ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + ┃ │ + ┃ ┊ constraint: true + ┃ ┊ subst: OMITTED SUBST + ┃ └─ 8 (leaf, target, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: PC_CELL_5d410f2a:Int + ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int + ┃ statusCode: STATUSCODE_FINAL:StatusCode + ┃ + ┗━━┓ + │ + ├─ 33 + │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (725 steps) + ├─ 41 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 248 + │ callDepth: 0 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + │ + ┊ constraint: true + ┊ subst: OMITTED SUBST + └─ 8 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode diff --git a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse new file mode 100644 index 000000000..0617801b3 --- /dev/null +++ b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse @@ -0,0 +1,146 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ src: test/CSE.t.sol:9:34 +│ +│ (383 steps) +├─ 3 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (330 steps) +├─ 4 +│ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... +│ pc: 29 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (330 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ src: test/CSE.t.sol:9:34 +│ +│ (163 steps) +├─ 6 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 +│ +│ (1 step) +├─ 7 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ src: test/CSE.t.sol:9:34 +│ +│ (373 steps) +├─ 9 (split) +│ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... +│ pc: 2871 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } +┃ │ +┃ ├─ 10 +┃ │ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... +┃ │ pc: 2871 +┃ │ callDepth: 0 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (193 steps) +┃ └─ 12 (vacuous, leaf) +┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... +┃ pc: 2939 +┃ callDepth: 0 +┃ statusCode: STATUSCODE:StatusCode +┃ +┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } + │ + ├─ 11 + │ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... + │ pc: 2871 + │ callDepth: 0 + │ statusCode: STATUSCODE:StatusCode + │ + │ (1147 steps) + ├─ 13 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... + │ pc: 87 + │ callDepth: 2 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (328 steps) + ├─ 14 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (1102 steps) + ├─ 15 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... + │ pc: 87 + │ callDepth: 2 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (328 steps) + ├─ 16 + │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (1102 steps) + ├─ 17 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 192 32 ~> # ... + │ pc: 87 + │ callDepth: 2 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (328 steps) + ├─ 18 + │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 87 + │ callDepth: 1 + │ statusCode: EVMC_SUCCESS + │ src: test/CSE.t.sol:9:34 + │ + │ (725 steps) + ├─ 19 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 248 + │ callDepth: 0 + │ statusCode: EVMC_SUCCESS + │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 + │ + ┊ constraint: true + ┊ subst: OMITTED SUBST + └─ 8 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected.nocse b/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected.nocse new file mode 100644 index 000000000..b2b703e7b --- /dev/null +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected.nocse @@ -0,0 +1,77 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ src: src/cse/Unary.sol:6:16 +│ +│ (367 steps) +├─ 3 (split) +│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ src: src/cse/Unary.sol:12:15 +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +┃ │ pc: 148 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ src: src/cse/Unary.sol:12:15 +┃ │ +┃ │ (347 steps) +┃ ├─ 6 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ src: src/cse/Unary.sol:13:14 +┃ │ +┃ │ (328 steps) +┃ ├─ 8 (terminal) +┃ │ k: #halt ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ src: src/cse/Unary.sol:13:14 +┃ │ +┃ ┊ constraint: OMITTED CONSTRAINT +┃ ┊ subst: OMITTED SUBST +┃ └─ 2 (leaf, target, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: PC_CELL_5d410f2a:Int +┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ +┗━━┓ constraint: { true #Equals 1024 <=Int CALLDEPTH_CELL:Int } + │ + ├─ 5 + │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ src: src/cse/Unary.sol:12:15 + │ + │ (76 steps) + ├─ 7 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + ┊ constraint: OMITTED CONSTRAINT + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + + From 11c998d20c85c5a762a1394b6e486f62ee0ec4dc Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 18:04:09 +0000 Subject: [PATCH 31/91] correction --- src/tests/integration/test_foundry_prove.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 621d576c0..c6e45cc5a 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -346,7 +346,7 @@ def test_foundry_merge_nodes( ] -@pytest.mark.parametrize('tests', DEPENDENCY_TESTS) +@pytest.mark.parametrize('test', DEPENDENCY_TESTS) def test_foundry_dependency( test: list[str], foundry: Foundry, From 81afef892a0502ae335b759ee5e18fc13a2e4317 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 18:53:29 +0000 Subject: [PATCH 32/91] Set Version: 0.1.175 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index c3170be41..1e17a1eba 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.174 +0.1.175 diff --git a/pyproject.toml b/pyproject.toml index 2d1b31f44..734baa987 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.174" +version = "0.1.175" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 1793802c9..ff03798f9 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.174' +VERSION: Final = '0.1.175' From c8b0a95a590651ff51df27483485bd1d66d44d5a Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 28 Feb 2024 19:47:31 +0000 Subject: [PATCH 33/91] addresses not equal to cheatcode address --- src/kontrol/prove.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index c27b34ea7..c10a40a2f 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -635,14 +635,12 @@ def _init_cterm( init_term = Subst(init_subst)(empty_config) init_cterm = CTerm.from_kast(init_term) - # The address of the executing contract is always guaranteed not to be the address of the cheatcode contract - init_cterm = init_cterm.add_constraint( - mlEqualsFalse( - KApply( - '_==Int_', [KVariable(Foundry.symbolic_contract_id(), sort=KSort('Int')), Foundry.address_CHEATCODE()] - ) + for contract_id in [Foundry.symbolic_contract_id(), 'CALLER_ID', 'ORIGIN_ID']: + # The address of the executing contract, the calling contract, and the origin contract + # is always guaranteed to not be the address of the cheatcode contract + init_cterm = init_cterm.add_constraint( + mlEqualsFalse(KApply('_==Int_', [KVariable(contract_id, sort=KSort('Int')), Foundry.address_CHEATCODE()])) ) - ) init_cterm = KEVM.add_invariant(init_cterm) return init_cterm From 73e1185e76486e977885cde503b3545adfe1a251 Mon Sep 17 00:00:00 2001 From: devops Date: Thu, 29 Feb 2024 13:01:46 +0000 Subject: [PATCH 34/91] Set Version: 0.1.177 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index e8be64cc0..dfb8b6438 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.176 +0.1.177 diff --git a/pyproject.toml b/pyproject.toml index cd00b9882..cb4f0f6ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.176" +version = "0.1.177" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 8023928e6..da248226f 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.176' +VERSION: Final = '0.1.177' From 11711c5cb3a0d5dc51b66af656a882bed125bd27 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 12:23:51 +0000 Subject: [PATCH 35/91] deps/kevm_release: Set Version 1.0.465 --- deps/kevm_release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/kevm_release b/deps/kevm_release index 42d08cf19..569c1a0b0 100644 --- a/deps/kevm_release +++ b/deps/kevm_release @@ -1 +1 @@ -1.0.464 +1.0.465 From 1941bedc208faf107a7de11eae7d3d4005f51d10 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 12:27:32 +0000 Subject: [PATCH 36/91] Sync Poetry files: kevm-pyk version 1.0.465 --- poetry.lock | 122 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/poetry.lock b/poetry.lock index f1f3ed317..51dd28097 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.1 and should not be changed by hand. [[package]] name = "attrs" @@ -157,63 +157,63 @@ cron = ["capturer (>=2.4)"] [[package]] name = "coverage" -version = "7.4.2" +version = "7.4.3" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bf54c3e089179d9d23900e3efc86d46e4431188d9a657f345410eecdd0151f50"}, - {file = "coverage-7.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fe6e43c8b510719b48af7db9631b5fbac910ade4bd90e6378c85ac5ac706382c"}, - {file = "coverage-7.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b98c89db1b150d851a7840142d60d01d07677a18f0f46836e691c38134ed18b"}, - {file = "coverage-7.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5f9683be6a5b19cd776ee4e2f2ffb411424819c69afab6b2db3a0a364ec6642"}, - {file = "coverage-7.4.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78cdcbf7b9cb83fe047ee09298e25b1cd1636824067166dc97ad0543b079d22f"}, - {file = "coverage-7.4.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2599972b21911111114100d362aea9e70a88b258400672626efa2b9e2179609c"}, - {file = "coverage-7.4.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ef00d31b7569ed3cb2036f26565f1984b9fc08541731ce01012b02a4c238bf03"}, - {file = "coverage-7.4.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:20a875bfd8c282985c4720c32aa05056f77a68e6d8bbc5fe8632c5860ee0b49b"}, - {file = "coverage-7.4.2-cp310-cp310-win32.whl", hash = "sha256:b3f2b1eb229f23c82898eedfc3296137cf1f16bb145ceab3edfd17cbde273fb7"}, - {file = "coverage-7.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7df95fdd1432a5d2675ce630fef5f239939e2b3610fe2f2b5bf21fa505256fa3"}, - {file = "coverage-7.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a8ddbd158e069dded57738ea69b9744525181e99974c899b39f75b2b29a624e2"}, - {file = "coverage-7.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81a5fb41b0d24447a47543b749adc34d45a2cf77b48ca74e5bf3de60a7bd9edc"}, - {file = "coverage-7.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2412e98e70f16243be41d20836abd5f3f32edef07cbf8f407f1b6e1ceae783ac"}, - {file = "coverage-7.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb79414c15c6f03f56cc68fa06994f047cf20207c31b5dad3f6bab54a0f66ef"}, - {file = "coverage-7.4.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf89ab85027427d351f1de918aff4b43f4eb5f33aff6835ed30322a86ac29c9e"}, - {file = "coverage-7.4.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a178b7b1ac0f1530bb28d2e51f88c0bab3e5949835851a60dda80bff6052510c"}, - {file = "coverage-7.4.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:06fe398145a2e91edaf1ab4eee66149c6776c6b25b136f4a86fcbbb09512fd10"}, - {file = "coverage-7.4.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:18cac867950943fe93d6cd56a67eb7dcd2d4a781a40f4c1e25d6f1ed98721a55"}, - {file = "coverage-7.4.2-cp311-cp311-win32.whl", hash = "sha256:f72cdd2586f9a769570d4b5714a3837b3a59a53b096bb954f1811f6a0afad305"}, - {file = "coverage-7.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:d779a48fac416387dd5673fc5b2d6bd903ed903faaa3247dc1865c65eaa5a93e"}, - {file = "coverage-7.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:adbdfcda2469d188d79771d5696dc54fab98a16d2ef7e0875013b5f56a251047"}, - {file = "coverage-7.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ac4bab32f396b03ebecfcf2971668da9275b3bb5f81b3b6ba96622f4ef3f6e17"}, - {file = "coverage-7.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:006d220ba2e1a45f1de083d5022d4955abb0aedd78904cd5a779b955b019ec73"}, - {file = "coverage-7.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3733545eb294e5ad274abe131d1e7e7de4ba17a144505c12feca48803fea5f64"}, - {file = "coverage-7.4.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42a9e754aa250fe61f0f99986399cec086d7e7a01dd82fd863a20af34cbce962"}, - {file = "coverage-7.4.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2ed37e16cf35c8d6e0b430254574b8edd242a367a1b1531bd1adc99c6a5e00fe"}, - {file = "coverage-7.4.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b953275d4edfab6cc0ed7139fa773dfb89e81fee1569a932f6020ce7c6da0e8f"}, - {file = "coverage-7.4.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32b4ab7e6c924f945cbae5392832e93e4ceb81483fd6dc4aa8fb1a97b9d3e0e1"}, - {file = "coverage-7.4.2-cp312-cp312-win32.whl", hash = "sha256:f5df76c58977bc35a49515b2fbba84a1d952ff0ec784a4070334dfbec28a2def"}, - {file = "coverage-7.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:34423abbaad70fea9d0164add189eabaea679068ebdf693baa5c02d03e7db244"}, - {file = "coverage-7.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5b11f9c6587668e495cc7365f85c93bed34c3a81f9f08b0920b87a89acc13469"}, - {file = "coverage-7.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:51593a1f05c39332f623d64d910445fdec3d2ac2d96b37ce7f331882d5678ddf"}, - {file = "coverage-7.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69f1665165ba2fe7614e2f0c1aed71e14d83510bf67e2ee13df467d1c08bf1e8"}, - {file = "coverage-7.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3c8bbb95a699c80a167478478efe5e09ad31680931ec280bf2087905e3b95ec"}, - {file = "coverage-7.4.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:175f56572f25e1e1201d2b3e07b71ca4d201bf0b9cb8fad3f1dfae6a4188de86"}, - {file = "coverage-7.4.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8562ca91e8c40864942615b1d0b12289d3e745e6b2da901d133f52f2d510a1e3"}, - {file = "coverage-7.4.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d9a1ef0f173e1a19738f154fb3644f90d0ada56fe6c9b422f992b04266c55d5a"}, - {file = "coverage-7.4.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f40ac873045db4fd98a6f40387d242bde2708a3f8167bd967ccd43ad46394ba2"}, - {file = "coverage-7.4.2-cp38-cp38-win32.whl", hash = "sha256:d1b750a8409bec61caa7824bfd64a8074b6d2d420433f64c161a8335796c7c6b"}, - {file = "coverage-7.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b4ae777bebaed89e3a7e80c4a03fac434a98a8abb5251b2a957d38fe3fd30088"}, - {file = "coverage-7.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3ff7f92ae5a456101ca8f48387fd3c56eb96353588e686286f50633a611afc95"}, - {file = "coverage-7.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:861d75402269ffda0b33af94694b8e0703563116b04c681b1832903fac8fd647"}, - {file = "coverage-7.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3507427d83fa961cbd73f11140f4a5ce84208d31756f7238d6257b2d3d868405"}, - {file = "coverage-7.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bf711d517e21fb5bc429f5c4308fbc430a8585ff2a43e88540264ae87871e36a"}, - {file = "coverage-7.4.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c00e54f0bd258ab25e7f731ca1d5144b0bf7bec0051abccd2bdcff65fa3262c9"}, - {file = "coverage-7.4.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f8e845d894e39fb53834da826078f6dc1a933b32b1478cf437007367efaf6f6a"}, - {file = "coverage-7.4.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:840456cb1067dc350af9080298c7c2cfdddcedc1cb1e0b30dceecdaf7be1a2d3"}, - {file = "coverage-7.4.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c11ca2df2206a4e3e4c4567f52594637392ed05d7c7fb73b4ea1c658ba560265"}, - {file = "coverage-7.4.2-cp39-cp39-win32.whl", hash = "sha256:3ff5bdb08d8938d336ce4088ca1a1e4b6c8cd3bef8bb3a4c0eb2f37406e49643"}, - {file = "coverage-7.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:ac9e95cefcf044c98d4e2c829cd0669918585755dd9a92e28a1a7012322d0a95"}, - {file = "coverage-7.4.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:f593a4a90118d99014517c2679e04a4ef5aee2d81aa05c26c734d271065efcb6"}, - {file = "coverage-7.4.2.tar.gz", hash = "sha256:1a5ee18e3a8d766075ce9314ed1cb695414bae67df6a4b0805f5137d93d6f1cb"}, + {file = "coverage-7.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8580b827d4746d47294c0e0b92854c85a92c2227927433998f0d3320ae8a71b6"}, + {file = "coverage-7.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:718187eeb9849fc6cc23e0d9b092bc2348821c5e1a901c9f8975df0bc785bfd4"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:767b35c3a246bcb55b8044fd3a43b8cd553dd1f9f2c1eeb87a302b1f8daa0524"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae7f19afe0cce50039e2c782bff379c7e347cba335429678450b8fe81c4ef96d"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba3a8aaed13770e970b3df46980cb068d1c24af1a1968b7818b69af8c4347efb"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ee866acc0861caebb4f2ab79f0b94dbfbdbfadc19f82e6e9c93930f74e11d7a0"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:506edb1dd49e13a2d4cac6a5173317b82a23c9d6e8df63efb4f0380de0fbccbc"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd6545d97c98a192c5ac995d21c894b581f1fd14cf389be90724d21808b657e2"}, + {file = "coverage-7.4.3-cp310-cp310-win32.whl", hash = "sha256:f6a09b360d67e589236a44f0c39218a8efba2593b6abdccc300a8862cffc2f94"}, + {file = "coverage-7.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:18d90523ce7553dd0b7e23cbb28865db23cddfd683a38fb224115f7826de78d0"}, + {file = "coverage-7.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cbbe5e739d45a52f3200a771c6d2c7acf89eb2524890a4a3aa1a7fa0695d2a47"}, + {file = "coverage-7.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:489763b2d037b164846ebac0cbd368b8a4ca56385c4090807ff9fad817de4113"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:451f433ad901b3bb00184d83fd83d135fb682d780b38af7944c9faeecb1e0bfe"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fcc66e222cf4c719fe7722a403888b1f5e1682d1679bd780e2b26c18bb648cdc"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ec74cfef2d985e145baae90d9b1b32f85e1741b04cd967aaf9cfa84c1334f3"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:abbbd8093c5229c72d4c2926afaee0e6e3140de69d5dcd918b2921f2f0c8baba"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:35eb581efdacf7b7422af677b92170da4ef34500467381e805944a3201df2079"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8249b1c7334be8f8c3abcaaa996e1e4927b0e5a23b65f5bf6cfe3180d8ca7840"}, + {file = "coverage-7.4.3-cp311-cp311-win32.whl", hash = "sha256:cf30900aa1ba595312ae41978b95e256e419d8a823af79ce670835409fc02ad3"}, + {file = "coverage-7.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:18c7320695c949de11a351742ee001849912fd57e62a706d83dfc1581897fa2e"}, + {file = "coverage-7.4.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b51bfc348925e92a9bd9b2e48dad13431b57011fd1038f08316e6bf1df107d10"}, + {file = "coverage-7.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d6cdecaedea1ea9e033d8adf6a0ab11107b49571bbb9737175444cea6eb72328"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b2eccb883368f9e972e216c7b4c7c06cabda925b5f06dde0650281cb7666a30"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c00cdc8fa4e50e1cc1f941a7f2e3e0f26cb2a1233c9696f26963ff58445bac7"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a4a8dd3dcf4cbd3165737358e4d7dfbd9d59902ad11e3b15eebb6393b0446e"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:062b0a75d9261e2f9c6d071753f7eef0fc9caf3a2c82d36d76667ba7b6470003"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ebe7c9e67a2d15fa97b77ea6571ce5e1e1f6b0db71d1d5e96f8d2bf134303c1d"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c0a120238dd71c68484f02562f6d446d736adcc6ca0993712289b102705a9a3a"}, + {file = "coverage-7.4.3-cp312-cp312-win32.whl", hash = "sha256:37389611ba54fd6d278fde86eb2c013c8e50232e38f5c68235d09d0a3f8aa352"}, + {file = "coverage-7.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:d25b937a5d9ffa857d41be042b4238dd61db888533b53bc76dc082cb5a15e914"}, + {file = "coverage-7.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:28ca2098939eabab044ad68850aac8f8db6bf0b29bc7f2887d05889b17346454"}, + {file = "coverage-7.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:280459f0a03cecbe8800786cdc23067a8fc64c0bd51dc614008d9c36e1659d7e"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c0cdedd3500e0511eac1517bf560149764b7d8e65cb800d8bf1c63ebf39edd2"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a9babb9466fe1da12417a4aed923e90124a534736de6201794a3aea9d98484e"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dec9de46a33cf2dd87a5254af095a409ea3bf952d85ad339751e7de6d962cde6"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:16bae383a9cc5abab9bb05c10a3e5a52e0a788325dc9ba8499e821885928968c"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2c854ce44e1ee31bda4e318af1dbcfc929026d12c5ed030095ad98197eeeaed0"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ce8c50520f57ec57aa21a63ea4f325c7b657386b3f02ccaedeccf9ebe27686e1"}, + {file = "coverage-7.4.3-cp38-cp38-win32.whl", hash = "sha256:708a3369dcf055c00ddeeaa2b20f0dd1ce664eeabde6623e516c5228b753654f"}, + {file = "coverage-7.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:1bf25fbca0c8d121a3e92a2a0555c7e5bc981aee5c3fdaf4bb7809f410f696b9"}, + {file = "coverage-7.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b253094dbe1b431d3a4ac2f053b6d7ede2664ac559705a704f621742e034f1f"}, + {file = "coverage-7.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77fbfc5720cceac9c200054b9fab50cb2a7d79660609200ab83f5db96162d20c"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6679060424faa9c11808598504c3ab472de4531c571ab2befa32f4971835788e"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4af154d617c875b52651dd8dd17a31270c495082f3d55f6128e7629658d63765"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8640f1fde5e1b8e3439fe482cdc2b0bb6c329f4bb161927c28d2e8879c6029ee"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:69b9f6f66c0af29642e73a520b6fed25ff9fd69a25975ebe6acb297234eda501"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0842571634f39016a6c03e9d4aba502be652a6e4455fadb73cd3a3a49173e38f"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a78ed23b08e8ab524551f52953a8a05d61c3a760781762aac49f8de6eede8c45"}, + {file = "coverage-7.4.3-cp39-cp39-win32.whl", hash = "sha256:c0524de3ff096e15fcbfe8f056fdb4ea0bf497d584454f344d59fce069d3e6e9"}, + {file = "coverage-7.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:0209a6369ccce576b43bb227dc8322d8ef9e323d089c6f3f26a597b09cb4d2aa"}, + {file = "coverage-7.4.3-pp38.pp39.pp310-none-any.whl", hash = "sha256:7cbde573904625509a3f37b6fecea974e363460b556a627c60dc2f47e2fffa51"}, + {file = "coverage-7.4.3.tar.gz", hash = "sha256:276f6077a5c61447a48d133ed13e759c09e62aff0dc84274a68dc18660104d52"}, ] [package.dependencies] @@ -434,7 +434,7 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "kevm-pyk" -version = "1.0.464" +version = "1.0.465" description = "" optional = false python-versions = "^3.10" @@ -449,8 +449,8 @@ tomlkit = "^0.11.6" [package.source] type = "git" url = "https://github.com/runtimeverification/evm-semantics.git" -reference = "v1.0.464" -resolved_reference = "377098f8ac672a9f72466363e7f391512d9c2b19" +reference = "v1.0.465" +resolved_reference = "9ad1b5246138fd7172d5e55236247b11fa82c68f" subdirectory = "kevm-pyk" [[package]] @@ -1048,13 +1048,13 @@ files = [ [[package]] name = "typing-extensions" -version = "4.9.0" +version = "4.10.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, - {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, ] [[package]] @@ -1111,4 +1111,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "b9572bb8e2cae9cdd7eb7ea28e3e1bfcb9f3d4f06118bd2a32fdad7882c14ef7" +content-hash = "a77671727afe10468da4d5a98f1d6ef92457e2b1155b205b28f89607a5f41d9e" diff --git a/pyproject.toml b/pyproject.toml index cb4f0f6ca..91e3556bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ authors = [ [tool.poetry.dependencies] python = "^3.10" -kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.464", subdirectory = "kevm-pyk" } +kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.465", subdirectory = "kevm-pyk" } [tool.poetry.group.dev.dependencies] autoflake = "*" From b2c0c8f5ae31da3f4c9fd922db163cc88fd4bd92 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 12:27:40 +0000 Subject: [PATCH 37/91] flake.{nix,lock}: update Nix derivations --- flake.lock | 8 ++++---- flake.nix | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/flake.lock b/flake.lock index d420155ba..434c50ff0 100644 --- a/flake.lock +++ b/flake.lock @@ -337,16 +337,16 @@ ] }, "locked": { - "lastModified": 1708690280, - "narHash": "sha256-GgQ6hCBaaS+xn+fq445En22Jp/OfVVyYAmuoQzCLVio=", + "lastModified": 1709121740, + "narHash": "sha256-w6VfnjhLYULaIIxVn/vpFYFixpbmBoXchC9YJ4LX8ys=", "owner": "runtimeverification", "repo": "evm-semantics", - "rev": "377098f8ac672a9f72466363e7f391512d9c2b19", + "rev": "9ad1b5246138fd7172d5e55236247b11fa82c68f", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v1.0.464", + "ref": "v1.0.465", "repo": "evm-semantics", "type": "github" } diff --git a/flake.nix b/flake.nix index 2bff26da9..8009c2058 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Kontrol"; inputs = { - kevm.url = "github:runtimeverification/evm-semantics/v1.0.464"; + kevm.url = "github:runtimeverification/evm-semantics/v1.0.465"; nixpkgs.follows = "kevm/nixpkgs"; nixpkgs-pyk.follows = "kevm/nixpkgs-pyk"; k-framework.follows = "kevm/k-framework"; From 0ffab2c802441112e871e7266fb88d3522850fc0 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 18:08:00 +0000 Subject: [PATCH 38/91] deps/kevm_release: Set Version 1.0.466 --- deps/kevm_release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/kevm_release b/deps/kevm_release index 569c1a0b0..9c52351c1 100644 --- a/deps/kevm_release +++ b/deps/kevm_release @@ -1 +1 @@ -1.0.465 +1.0.466 From 418f48404127292cbeeabda82a72a2c4f9ba044f Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 18:12:30 +0000 Subject: [PATCH 39/91] Sync Poetry files: kevm-pyk version 1.0.466 --- poetry.lock | 22 +++++++++++----------- pyproject.toml | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/poetry.lock b/poetry.lock index 51dd28097..638e5c2f6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -434,7 +434,7 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "kevm-pyk" -version = "1.0.465" +version = "1.0.466" description = "" optional = false python-versions = "^3.10" @@ -443,14 +443,14 @@ develop = false [package.dependencies] pathos = "*" -pyk = {git = "https://github.com/runtimeverification/pyk.git", tag = "v0.1.627"} +pyk = {git = "https://github.com/runtimeverification/pyk.git", tag = "v0.1.663"} tomlkit = "^0.11.6" [package.source] type = "git" url = "https://github.com/runtimeverification/evm-semantics.git" -reference = "v1.0.465" -resolved_reference = "9ad1b5246138fd7172d5e55236247b11fa82c68f" +reference = "v1.0.466" +resolved_reference = "f425269d7dab5d2632068d0dfdb15e177a3779b6" subdirectory = "kevm-pyk" [[package]] @@ -809,7 +809,7 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyk" -version = "0.1.627" +version = "0.1.663" description = "" optional = false python-versions = "^3.10" @@ -830,8 +830,8 @@ xdg-base-dirs = "^6.0.1" [package.source] type = "git" url = "https://github.com/runtimeverification/pyk.git" -reference = "v0.1.627" -resolved_reference = "d7b05c1de94620720ab4891008f483d279ab237b" +reference = "v0.1.663" +resolved_reference = "71b300c968de655df8e3859a6743528597912825" [[package]] name = "pyperclip" @@ -961,13 +961,13 @@ tokenize-rt = ">=5.2.0" [[package]] name = "rich" -version = "13.7.0" +version = "13.7.1" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, - {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, ] [package.dependencies] @@ -1111,4 +1111,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "a77671727afe10468da4d5a98f1d6ef92457e2b1155b205b28f89607a5f41d9e" +content-hash = "5e5a25c6f75ee51b2ca1dcdb7bede1b596e0f71cf0b7332d117c1ad7ab601fa4" diff --git a/pyproject.toml b/pyproject.toml index 91e3556bf..b59cdf341 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ authors = [ [tool.poetry.dependencies] python = "^3.10" -kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.465", subdirectory = "kevm-pyk" } +kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.466", subdirectory = "kevm-pyk" } [tool.poetry.group.dev.dependencies] autoflake = "*" From d743cdcfd7403429caebf95f57db12f1ab290ddb Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 18:12:30 +0000 Subject: [PATCH 40/91] deps/k_release: sync release file version 6.3.17 --- deps/k_release | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/k_release b/deps/k_release index 42cc526d6..03005e9a8 100644 --- a/deps/k_release +++ b/deps/k_release @@ -1 +1 @@ -6.2.4 +6.3.17 From 7a9fa5cb1a045f65bbccd61f278f41602b4f35ff Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 28 Feb 2024 18:12:41 +0000 Subject: [PATCH 41/91] flake.{nix,lock}: update Nix derivations --- flake.lock | 206 +++++++++++++++++++++++++++++++++++++++++------------ flake.nix | 2 +- 2 files changed, 161 insertions(+), 47 deletions(-) diff --git a/flake.lock b/flake.lock index 434c50ff0..c832cf37f 100644 --- a/flake.lock +++ b/flake.lock @@ -72,17 +72,17 @@ ] }, "locked": { - "lastModified": 1706622743, - "narHash": "sha256-hdgFFYz2NorC9mIU8arNyN2H/fOJ50bDW7ptMjsliYk=", + "lastModified": 1709082085, + "narHash": "sha256-eRMMmqw0EB2qKXKTVmRycD1X4kTMFrjZH1/EqunEGkg=", "owner": "runtimeverification", "repo": "hs-backend-booster", - "rev": "0ef6ecd37e193a736ddc1d9dc047c24646c4a324", + "rev": "a3d89c2f3af1ccbe56ca88d25bcf6c697c333c21", "type": "github" }, "original": { "owner": "runtimeverification", "repo": "hs-backend-booster", - "rev": "0ef6ecd37e193a736ddc1d9dc047c24646c4a324", + "rev": "a3d89c2f3af1ccbe56ca88d25bcf6c697c333c21", "type": "github" } }, @@ -154,6 +154,22 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -233,39 +249,47 @@ }, "haskell-backend": { "inputs": { - "nixpkgs": "nixpkgs", + "nixpkgs": [ + "kevm", + "k-framework", + "haskell-backend", + "rv-utils", + "nixpkgs" + ], + "nixpkgs2305": "nixpkgs2305", + "rv-utils": "rv-utils", "stacklock2nix": "stacklock2nix", "z3": "z3" }, "locked": { - "lastModified": 1706261911, - "narHash": "sha256-ntTfZAkMT/F8iw2A4sC03oCR5Gt1ijqXHAIjDcQ3xhE=", + "lastModified": 1709046454, + "narHash": "sha256-ZCuQ7Mi99OkUocDJ+FKZQI5NZQjyEKPks7lg7b/rTKc=", "owner": "runtimeverification", "repo": "haskell-backend", - "rev": "3779155b609ae78c928d7b47c541b9b6ca969181", + "rev": "62a3e13dc5c681a536271b834b11098aae9bce35", "type": "github" }, "original": { "owner": "runtimeverification", "repo": "haskell-backend", - "rev": "3779155b609ae78c928d7b47c541b9b6ca969181", + "rev": "62a3e13dc5c681a536271b834b11098aae9bce35", "type": "github" } }, "immer-src": { "flake": false, "locked": { - "lastModified": 1634324349, - "narHash": "sha256-1OicqmyM3Rcrs/jkRMip2pXITQnVDRrHbQbEpZZ4nnU=", + "lastModified": 1708038459, + "narHash": "sha256-aV/mQFuPzioy1PxROc85ypeP7/d0nn+xcBPzy9taw2s=", "owner": "runtimeverification", "repo": "immer", - "rev": "198c2ae260d49ef1800a2fe4433e07d7dec20059", + "rev": "4b0914f0b2acb33befe0ba4cd3a7954f2687e9bb", "type": "github" }, "original": { "owner": "runtimeverification", "repo": "immer", - "rev": "198c2ae260d49ef1800a2fe4433e07d7dec20059", + "rev": "4b0914f0b2acb33befe0ba4cd3a7954f2687e9bb", "type": "github" } }, @@ -278,22 +302,22 @@ "nixpkgs": [ "kevm", "k-framework", - "haskell-backend", + "llvm-backend", "nixpkgs" ], - "rv-utils": "rv-utils" + "rv-utils": "rv-utils_3" }, "locked": { - "lastModified": 1707088968, - "narHash": "sha256-12EhD5jFFzBu3/6CvcpprGsSvGC7AbeMGOYpaKfKs5g=", + "lastModified": 1709121818, + "narHash": "sha256-MfC0km0w1OO/V4ufiMvh8IpDeCc0B4Vh3SULcLiA1VE=", "owner": "runtimeverification", "repo": "k", - "rev": "65e11e3a04feee8238654e2d6583abf9c8b04bc8", + "rev": "cd9fdaaec31f116e2e6efc9c5703e11bf676e8c4", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v6.2.4", + "ref": "v6.3.17", "repo": "k", "type": "github" } @@ -337,16 +361,16 @@ ] }, "locked": { - "lastModified": 1709121740, - "narHash": "sha256-w6VfnjhLYULaIIxVn/vpFYFixpbmBoXchC9YJ4LX8ys=", + "lastModified": 1709142124, + "narHash": "sha256-ZnRoqY+BleosTDHCF/orJlM6mPi8GQx7sjG1xWvDt9Q=", "owner": "runtimeverification", "repo": "evm-semantics", - "rev": "9ad1b5246138fd7172d5e55236247b11fa82c68f", + "rev": "f425269d7dab5d2632068d0dfdb15e177a3779b6", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v1.0.465", + "ref": "v1.0.466", "repo": "evm-semantics", "type": "github" } @@ -370,17 +394,20 @@ }, "llvm-backend": { "inputs": { + "flake-compat": "flake-compat", "fmt-src": "fmt-src", "immer-src": "immer-src", "mavenix": "mavenix", "nixpkgs": [ "kevm", "k-framework", - "haskell-backend", + "llvm-backend", + "rv-utils", "nixpkgs" ], "pybind11-src": "pybind11-src", "rapidjson-src": "rapidjson-src", + "rv-utils": "rv-utils_2", "utils": [ "kevm", "k-framework", @@ -388,11 +415,11 @@ ] }, "locked": { - "lastModified": 1706906990, - "narHash": "sha256-XcKR4HVjds9LX75gzXpuXUOCFVs7ivN89++w0pqeGaU=", + "lastModified": 1709080443, + "narHash": "sha256-bbXtAMHAkFKUoBSj7w/33J11I8lnXI71Ie0/1OsyzJY=", "owner": "runtimeverification", "repo": "llvm-backend", - "rev": "01dd3699f084bbc8f7e1bbff3412735f7d2ca366", + "rev": "40d281de920ed9b83f73931af424bf4bf8d701a1", "type": "github" }, "original": { @@ -407,15 +434,15 @@ "utils": "utils" }, "locked": { - "lastModified": 1643802645, - "narHash": "sha256-BynM25iwp/l3FyrcHqiNJdDxvN6IxSM3/zkFR6PD3B0=", - "owner": "nix-community", + "lastModified": 1689018333, + "narHash": "sha256-sthxx50rj0E7gv38oeMj8GZOp7i1776P1qZsM7pVLd0=", + "owner": "goodlyrottenapple", "repo": "mavenix", - "rev": "ce9ddfd7f361190e8e8dcfaf6b8282eebbb3c7cb", + "rev": "153d69e62f87e5dd37d35492cc3e35dd80d2b5fa", "type": "github" }, "original": { - "owner": "nix-community", + "owner": "goodlyrottenapple", "repo": "mavenix", "type": "github" } @@ -445,11 +472,27 @@ }, "nixpkgs": { "locked": { - "lastModified": 1696983906, - "narHash": "sha256-L7GyeErguS7Pg4h8nK0wGlcUTbfUMDu+HMf1UcyP72k=", + "lastModified": 1707163378, + "narHash": "sha256-oz+BzUDwtyircjjxv9aPYOS5gobxLCjD2il+gb/bCRo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e2ffefe304d941bb98989847944f3b58e0adcdd5", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e2ffefe304d941bb98989847944f3b58e0adcdd5", + "type": "github" + } + }, + "nixpkgs2305": { + "locked": { + "lastModified": 1704290814, + "narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bd1cde45c77891214131cbbea5b1203e485a9d51", + "rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", "type": "github" }, "original": { @@ -473,6 +516,38 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1707163378, + "narHash": "sha256-oz+BzUDwtyircjjxv9aPYOS5gobxLCjD2il+gb/bCRo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e2ffefe304d941bb98989847944f3b58e0adcdd5", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e2ffefe304d941bb98989847944f3b58e0adcdd5", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1707163378, + "narHash": "sha256-oz+BzUDwtyircjjxv9aPYOS5gobxLCjD2il+gb/bCRo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e2ffefe304d941bb98989847944f3b58e0adcdd5", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e2ffefe304d941bb98989847944f3b58e0adcdd5", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1698675399, "narHash": "sha256-nj+LNEeVXGP31vxoL3x7HW7+oEiyoLVDqwMg30yFBMA=", @@ -539,20 +614,20 @@ "poetry2nix", "flake-utils" ], - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_5", "poetry2nix": "poetry2nix" }, "locked": { - "lastModified": 1707955342, - "narHash": "sha256-tJMKSNi3RxXTvmUODCFiKF4pDM1OQ3cvsSEODqhUfbw=", + "lastModified": 1709132851, + "narHash": "sha256-4ZyoLOKbz75kVxcrtPQ7JDAoMoYFJpeXEh2MnFHZBbc=", "owner": "runtimeverification", "repo": "pyk", - "rev": "d7b05c1de94620720ab4891008f483d279ab237b", + "rev": "71b300c968de655df8e3859a6743528597912825", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v0.1.627", + "ref": "v0.1.663", "repo": "pyk", "type": "github" } @@ -610,12 +685,51 @@ } }, "rv-utils": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1707492220, + "narHash": "sha256-KRndaUPzUumDlNcKF7KzA8F/EZKLYCvurh7Z13sw2PI=", + "owner": "runtimeverification", + "repo": "rv-nix-tools", + "rev": "abf86805a623948c941e603e2fc4c26a06ea6eb6", + "type": "github" + }, + "original": { + "owner": "runtimeverification", + "repo": "rv-nix-tools", + "type": "github" + } + }, + "rv-utils_2": { + "inputs": { + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1707492220, + "narHash": "sha256-KRndaUPzUumDlNcKF7KzA8F/EZKLYCvurh7Z13sw2PI=", + "owner": "runtimeverification", + "repo": "rv-nix-tools", + "rev": "abf86805a623948c941e603e2fc4c26a06ea6eb6", + "type": "github" + }, + "original": { + "owner": "runtimeverification", + "repo": "rv-nix-tools", + "type": "github" + } + }, + "rv-utils_3": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, "locked": { - "lastModified": 1659349707, - "narHash": "sha256-+RwJvYwRS4In+pl8R5Uz+R/yZ5yO5SAa7X6UR+eSC2U=", + "lastModified": 1707492220, + "narHash": "sha256-KRndaUPzUumDlNcKF7KzA8F/EZKLYCvurh7Z13sw2PI=", "owner": "runtimeverification", "repo": "rv-nix-tools", - "rev": "7026604726c5247ceb6e7a1a7532302a58e7e2bf", + "rev": "abf86805a623948c941e603e2fc4c26a06ea6eb6", "type": "github" }, "original": { @@ -666,11 +780,11 @@ }, "stacklock2nix": { "locked": { - "lastModified": 1700633677, - "narHash": "sha256-ATrA3tZZYo9aj9IAZZNqyvtkz4Ub1Q3q5OgADwxImTA=", + "lastModified": 1705051190, + "narHash": "sha256-xgH0gaD3dNtOzZzX3A40hZTiHJP5cIGmifbmfcS2OGI=", "owner": "cdepillabout", "repo": "stacklock2nix", - "rev": "84694f48ddd8e49b96a02216ca2ab406fba25e65", + "rev": "22676dfc45fa1c33899ba1da1a23665172a18ba7", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 8009c2058..0fa8b7abc 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Kontrol"; inputs = { - kevm.url = "github:runtimeverification/evm-semantics/v1.0.465"; + kevm.url = "github:runtimeverification/evm-semantics/v1.0.466"; nixpkgs.follows = "kevm/nixpkgs"; nixpkgs-pyk.follows = "kevm/nixpkgs-pyk"; k-framework.follows = "kevm/k-framework"; From b13c7d77f009a8915a5156263f0f48736714c6ae Mon Sep 17 00:00:00 2001 From: Everett Hildenbrandt Date: Wed, 28 Feb 2024 18:39:50 +0000 Subject: [PATCH 42/91] kontrol/{solc_to_k,prove,foundry}: updates from upstream --- src/kontrol/foundry.py | 2 +- src/kontrol/prove.py | 2 +- src/kontrol/solc_to_k.py | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/kontrol/foundry.py b/src/kontrol/foundry.py index f1e66a5db..546fbbb92 100644 --- a/src/kontrol/foundry.py +++ b/src/kontrol/foundry.py @@ -744,7 +744,7 @@ def foundry_simplify_node( port=rpc_options.port, maude_port=rpc_options.maude_port, ) as kcfg_explore: - new_term, _ = kcfg_explore.cterm_simplify(cterm) + new_term, _ = kcfg_explore.cterm_symbolic.simplify(cterm) if replace: apr_proof.kcfg.replace_node(node, new_term) apr_proof.write_proof_data() diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index c10a40a2f..b9f2ff3a0 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -363,7 +363,7 @@ def _method_to_initialized_cfg( init_term = KDefinition__expand_macros(foundry.kevm.definition, init_term) init_cterm = CTerm.from_kast(init_term) _LOGGER.info(f'Computing definedness constraint for node {node_id} for test: {test.name}') - init_cterm = kcfg_explore.cterm_assume_defined(init_cterm) + init_cterm = kcfg_explore.cterm_symbolic.assume_defined(init_cterm) kcfg.replace_node(node_id, init_cterm) _LOGGER.info(f'Expanding macros in target state for test: {test.name}') diff --git a/src/kontrol/solc_to_k.py b/src/kontrol/solc_to_k.py index b1f8e3d43..02ba15d9e 100644 --- a/src/kontrol/solc_to_k.py +++ b/src/kontrol/solc_to_k.py @@ -9,8 +9,8 @@ from typing import TYPE_CHECKING from kevm_pyk.kevm import KEVM +from pyk.kast.att import Atts, KAtt from pyk.kast.inner import KApply, KLabel, KRewrite, KSort, KVariable -from pyk.kast.kast import KAtt from pyk.kast.manip import abstract_term_safely from pyk.kast.outer import KDefinition, KFlatModule, KImport, KNonTerminal, KProduction, KRequire, KRule, KTerminal from pyk.kdist import kdist @@ -509,7 +509,7 @@ def production(self) -> KProduction: self.sort, items_before + items_args + items_after, klabel=self.unique_klabel, - att=KAtt({'symbol': ''}), + att=KAtt(entries=[Atts.SYMBOL('')]), ) def rule(self, contract: KInner, application_label: KLabel, contract_name: str) -> KRule | None: @@ -820,7 +820,7 @@ def production(self) -> KProduction: self.sort, [KTerminal(Contract.escaped(self.name_with_path, 'S2K'))], klabel=self.klabel, - att=KAtt({'symbol': ''}), + att=KAtt([Atts.SYMBOL('')]), ) @property @@ -854,7 +854,7 @@ def method_sentences(self) -> list[KSentence]: KSort('Bytes'), [KNonTerminal(self.sort), KTerminal('.'), KNonTerminal(self.sort_method)], klabel=self.klabel_method, - att=KAtt({'function': '', 'symbol': ''}), + att=KAtt(entries=[Atts.FUNCTION(None), Atts.SYMBOL('')]), ) res: list[KSentence] = [method_application_production] res.extend(method.production for method in self.methods) @@ -871,7 +871,9 @@ def field_sentences(self) -> list[KSentence]: rules: list[KSentence] = [] for field, slot in self.fields.items(): klabel = KLabel(self.klabel_field.name + f'_{field}') - prods.append(KProduction(self.sort_field, [KTerminal(field)], klabel=klabel, att=KAtt({'symbol': ''}))) + prods.append( + KProduction(self.sort_field, [KTerminal(field)], klabel=klabel, att=KAtt(entries=[Atts.SYMBOL('')])) + ) rule_lhs = KEVM.loc(KApply(KLabel('contract_access_field'), [KApply(self.klabel), KApply(klabel)])) rule_rhs = intToken(slot) rules.append(KRule(KRewrite(rule_lhs, rule_rhs))) From 050a9268c26dc20cbb2da819888ec50dad6bac98 Mon Sep 17 00:00:00 2001 From: Everett Hildenbrandt Date: Wed, 28 Feb 2024 19:35:19 +0000 Subject: [PATCH 43/91] src/tests/unit: update expected output --- src/tests/unit/test-data/foundry-list/foundry-list.expected | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/tests/unit/test-data/foundry-list/foundry-list.expected b/src/tests/unit/test-data/foundry-list/foundry-list.expected index 88f252bb9..1b931bc85 100644 --- a/src/tests/unit/test-data/foundry-list/foundry-list.expected +++ b/src/tests/unit/test-data/foundry-list/foundry-list.expected @@ -9,6 +9,7 @@ APRProof: test%AssertTest.checkFail_assert_false():0 terminal: 3 refuted: 0 bounded: 0 + execution time: 0h 0m 0s Subproofs: 0 APRProof: test%AssertTest.setUp():0 @@ -22,6 +23,7 @@ APRProof: test%AssertTest.setUp():0 terminal: 2 refuted: 0 bounded: 0 + execution time: 0h 0m 0s Subproofs: 0 APRProof: test%AssertTest.testFail_assert_true():0 @@ -35,6 +37,7 @@ APRProof: test%AssertTest.testFail_assert_true():0 terminal: 3 refuted: 0 bounded: 0 + execution time: 0h 0m 0s Subproofs: 0 APRProof: test%AssertTest.test_assert_false():0 @@ -48,6 +51,7 @@ APRProof: test%AssertTest.test_assert_false():0 terminal: 3 refuted: 0 bounded: 0 + execution time: 0h 0m 0s Subproofs: 0 APRProof: test%AssertTest.test_assert_true():0 @@ -61,4 +65,5 @@ APRProof: test%AssertTest.test_assert_true():0 terminal: 3 refuted: 0 bounded: 0 + execution time: 0h 0m 0s Subproofs: 0 \ No newline at end of file From 44015a0f87d2ae8cd4c1783d53815adfdf457ad3 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Thu, 29 Feb 2024 12:30:24 +0000 Subject: [PATCH 44/91] additional lemmas for discharging infeasible branches --- src/tests/integration/test-data/foundry/src/cse/lemmas.k | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/tests/integration/test-data/foundry/src/cse/lemmas.k b/src/tests/integration/test-data/foundry/src/cse/lemmas.k index 88f7d6e9d..6cd3834ee 100644 --- a/src/tests/integration/test-data/foundry/src/cse/lemmas.k +++ b/src/tests/integration/test-data/foundry/src/cse/lemmas.k @@ -25,6 +25,14 @@ module CSE-LEMMAS ( { S2 #Equals S1 } #Or { S2 #Equals S1 -Set SetItem ( X ) } ) [simplification] + // Non-equality of byte arrays + rule { B1:Bytes #Equals B2:Bytes } => #Bottom + requires lengthBytes(B1) =/=Int lengthBytes(B2) + [simplification] + + // Boolean simplifications + rule false andBool _ => false [simplification] + endmodule module CSE-LEMMAS-SPEC From 761bd717deb2754e230312bb83c315a69bdfe129 Mon Sep 17 00:00:00 2001 From: devops Date: Fri, 1 Mar 2024 11:35:19 +0000 Subject: [PATCH 45/91] Set Version: 0.1.178 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index dfb8b6438..e5c7f62e4 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.177 +0.1.178 diff --git a/pyproject.toml b/pyproject.toml index c8d1c27a7..63b20088e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.177" +version = "0.1.178" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index da248226f..9ffb713bc 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.177' +VERSION: Final = '0.1.178' From b523bfca21f3acce4a6fb5f3608da5b96a5a7a43 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Fri, 1 Mar 2024 12:02:45 +0000 Subject: [PATCH 46/91] caller in accounts --- flake.nix | 4 ---- src/kontrol/prove.py | 12 ++++++++++++ .../integration/test-data/foundry/src/cse/lemmas.k | 11 ++++------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/flake.nix b/flake.nix index f5cd68fe7..52ecdb427 100644 --- a/flake.nix +++ b/flake.nix @@ -2,11 +2,7 @@ description = "Kontrol"; inputs = { -<<<<<<< HEAD - kevm.url = "github:runtimeverification/evm-semantics/v1.0.466"; -======= kevm.url = "github:runtimeverification/evm-semantics/v1.0.473"; ->>>>>>> origin/master nixpkgs.follows = "kevm/nixpkgs"; nixpkgs-pyk.follows = "kevm/nixpkgs-pyk"; k-framework.follows = "kevm/k-framework"; diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index d5adf5e96..4d0b95a82 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -642,6 +642,18 @@ def _init_cterm( init_cterm = init_cterm.add_constraint( mlEqualsFalse(KApply('_==Int_', [KVariable(contract_id, sort=KSort('Int')), Foundry.address_CHEATCODE()])) ) + + # The calling contract is assumed to be in the present accounts for non-tests + if not (is_test or is_setup or is_constructor or active_symbolik): + init_cterm.add_constraint( + mlEqualsFalse( + KApply( + '_in_keys(_)_MAP_Bool_KItem_Map', + [KVariable('CALLER_ID', sort=KSort('Int')), init_cterm.cell('ACCOUNTS_CELL')], + ) + ) + ) + init_cterm = KEVM.add_invariant(init_cterm) return init_cterm diff --git a/src/tests/integration/test-data/foundry/src/cse/lemmas.k b/src/tests/integration/test-data/foundry/src/cse/lemmas.k index 6cd3834ee..24393cc4a 100644 --- a/src/tests/integration/test-data/foundry/src/cse/lemmas.k +++ b/src/tests/integration/test-data/foundry/src/cse/lemmas.k @@ -14,10 +14,10 @@ module CSE-LEMMAS requires #rangeUInt ( 256 , X ) [simplification] - // for-loop chop - rule chop ( ( X:Int +Int Y:Int ) ) ==Int 0 => X ==Int pow256 -Int (Y modInt pow256) - requires #rangeUInt(256, X) andBool 0 <=Int Y - [simplification, concrete(Y)] + // // for-loop chop + // rule chop ( ( X:Int +Int Y:Int ) ) ==Int 0 => X ==Int pow256 -Int (Y modInt pow256) + // requires #rangeUInt(256, X) andBool 0 <=Int Y + // [simplification, concrete(Y)] // Set equality needed for discharging `#Not ( #Exists ( ... )` on `` unification rule { S1:Set #Equals S2:Set |Set SetItem ( X ) } => @@ -30,9 +30,6 @@ module CSE-LEMMAS requires lengthBytes(B1) =/=Int lengthBytes(B2) [simplification] - // Boolean simplifications - rule false andBool _ => false [simplification] - endmodule module CSE-LEMMAS-SPEC From b5490591dc35e403a87be32b5a728932b41d1390 Mon Sep 17 00:00:00 2001 From: Andrei Date: Fri, 1 Mar 2024 14:18:21 +0200 Subject: [PATCH 47/91] :integration/test_kontrol_cse.py: init --- src/tests/integration/test_foundry_prove.py | 75 +--------- src/tests/integration/test_kontrol_cse.py | 144 ++++++++++++++++++++ src/tests/integration/utils.py | 9 ++ 3 files changed, 154 insertions(+), 74 deletions(-) create mode 100644 src/tests/integration/test_kontrol_cse.py diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 400ac3d8a..95f2acf63 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -25,7 +25,7 @@ from kontrol.options import ProveOptions, RPCOptions from kontrol.prove import foundry_prove -from .utils import TEST_DATA_DIR +from .utils import TEST_DATA_DIR, assert_or_update_show_output if TYPE_CHECKING: from collections.abc import Iterator @@ -335,70 +335,6 @@ def test_foundry_merge_nodes( assert_pass(test, single(prove_res)) -DEPENDENCY_TESTS: Final = [ - ['ArithmeticContract.add(uint256,uint256)', 'ArithmeticCallTest.test_double_add(uint256,uint256)'], - ['Identity.identity(uint256)'], - ['Identity.identity(uint256)', 'Identity.applyOp(uint256)'], - ['Identity.identity(uint256)', 'Identity.applyOp(uint256)', 'CSETest.test_identity(uint256,uint256)'], - ['AddConst.applyOp(uint256)'], - ['AddConst.applyOp(uint256)', 'CSETest.test_add_const(uint256, uint256)'], -] - - -@pytest.mark.parametrize('test', DEPENDENCY_TESTS) -def test_foundry_dependency( - test: list[str], - foundry: Foundry, - bug_report: BugReport | None, - server: KoreServer, - update_expected_output: bool, - no_use_booster: bool, -) -> None: - if no_use_booster: - pytest.skip() - - # Tests require at least one ifunctions - assert len(test) > 0 - - if bug_report is not None: - server._populate_bug_report(bug_report) - - for i in range(0, len(test) - 1): - - dependencies = test[0 : i - 1] if i > 0 else [] - - foundry_prove( - foundry, - tests=[(test[i], None)], - prove_options=ProveOptions( - max_depth=10000, - max_iterations=100, - break_on_calls=False, - fail_fast=False, - bug_report=bug_report, - ), - rpc_options=RPCOptions( - port=server.port, - ), - include_summaries=[(dependency, None) for dependency in dependencies], - ) - - show_res = foundry_show( - foundry, - test=test[-1], - to_module=False, - sort_collections=True, - omit_unstable_output=True, - pending=False, - failing=False, - failure_info=False, - counterexample_info=False, - port=server.port, - ) - - assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test[-1]}.expected', update=update_expected_output) - - def check_pending(foundry: Foundry, test: str, pending: list[int]) -> None: proofs = [foundry.get_optional_proof(pid) for pid in foundry.proof_ids_with_test(test)] apr_proofs: list[APRProof] = [proof for proof in proofs if type(proof) is APRProof] @@ -518,15 +454,6 @@ def assert_fail(test: str, proof: Proof) -> None: assert proof.failure_info -def assert_or_update_show_output(actual_text: str, expected_file: Path, *, update: bool) -> None: - if update: - expected_file.write_text(actual_text) - else: - assert expected_file.is_file() - expected_text = expected_file.read_text() - assert actual_text == expected_text - - def test_foundry_resume_proof( foundry: Foundry, update_expected_output: bool, diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py new file mode 100644 index 000000000..3314c5eec --- /dev/null +++ b/src/tests/integration/test_kontrol_cse.py @@ -0,0 +1,144 @@ +from __future__ import annotations + +import sys +from distutils.dir_util import copy_tree +from typing import TYPE_CHECKING + +import pytest +from filelock import FileLock +from pyk.kore.rpc import kore_server +from pyk.utils import run_process + +from kontrol.foundry import Foundry, foundry_show +from kontrol.kompile import foundry_kompile +from kontrol.options import ProveOptions, RPCOptions +from kontrol.prove import foundry_prove + +from .utils import TEST_DATA_DIR, assert_or_update_show_output + +if TYPE_CHECKING: + from collections.abc import Iterator + from pathlib import Path + from typing import Final + + from pyk.kore.rpc import KoreServer + from pyk.utils import BugReport + from pytest import TempPathFactory + + +FORGE_STD_REF: Final = '75f1746' + + +sys.setrecursionlimit(10**7) + + +@pytest.fixture(scope='module') +def server(foundry: Foundry, no_use_booster: bool) -> Iterator[KoreServer]: + llvm_definition_dir = foundry.out / 'kompiled' / 'llvm-library' if not no_use_booster else None + kore_rpc_command = ('kore-rpc-booster',) if not no_use_booster else ('kore-rpc',) + + yield kore_server( + definition_dir=foundry.kevm.definition_dir, + llvm_definition_dir=llvm_definition_dir, + module_name=foundry.kevm.main_module, + command=kore_rpc_command, + smt_timeout=300, + smt_retry_limit=10, + fallback_on=None, + interim_simplification=None, + no_post_exec_simplify=None, + ) + + +@pytest.fixture(scope='session') +def foundry(foundry_root_dir: Path | None, tmp_path_factory: TempPathFactory, worker_id: str) -> Foundry: + if foundry_root_dir: + return Foundry(foundry_root_dir) + + if worker_id == 'master': + root_tmp_dir = tmp_path_factory.getbasetemp() + else: + root_tmp_dir = tmp_path_factory.getbasetemp().parent + + foundry_root = root_tmp_dir / 'foundry' + with FileLock(str(foundry_root) + '.lock'): + if not foundry_root.is_dir(): + copy_tree(str(TEST_DATA_DIR / 'foundry'), str(foundry_root)) + + run_process(['forge', 'install', '--no-git', f'foundry-rs/forge-std@{FORGE_STD_REF}'], cwd=foundry_root) + run_process(['forge', 'build'], cwd=foundry_root) + + foundry_kompile( + foundry=Foundry(foundry_root), + includes=(), + requires=[str(TEST_DATA_DIR / 'lemmas.k')], + imports=['LoopsTest:SUM-TO-N-INVARIANT'], + ) + + session_foundry_root = tmp_path_factory.mktemp('foundry') + copy_tree(str(foundry_root), str(session_foundry_root)) + return Foundry(session_foundry_root) + + +DEPENDENCY_TESTS: Final = [ + ['ArithmeticContract.add(uint256,uint256)', 'ArithmeticCallTest.test_double_add(uint256,uint256)'], + ['Identity.identity(uint256)'], + ['Identity.identity(uint256)', 'Identity.applyOp(uint256)'], + ['Identity.identity(uint256)', 'Identity.applyOp(uint256)', 'CSETest.test_identity(uint256,uint256)'], + ['AddConst.applyOp(uint256)'], + ['AddConst.applyOp(uint256)', 'CSETest.test_add_const(uint256, uint256)'], +] + + +@pytest.mark.parametrize('test', DEPENDENCY_TESTS) +def test_foundry_dependency( + test: list[str], + foundry: Foundry, + bug_report: BugReport | None, + server: KoreServer, + update_expected_output: bool, + no_use_booster: bool, +) -> None: + if no_use_booster: + pytest.skip() + + # Tests require at least one ifunctions + assert len(test) > 0 + + if bug_report is not None: + server._populate_bug_report(bug_report) + + for i in range(0, len(test) - 1): + + dependencies = test[0 : i - 1] if i > 0 else [] + + foundry_prove( + foundry, + tests=[(test[i], None)], + prove_options=ProveOptions( + max_depth=10000, + max_iterations=100, + break_on_calls=False, + fail_fast=False, + bug_report=bug_report, + ), + rpc_options=RPCOptions( + port=server.port, + ), + include_summaries=[(dependency, None) for dependency in dependencies], + ) + + show_res = foundry_show( + foundry, + test=test[-1], + to_module=False, + sort_collections=True, + omit_unstable_output=True, + pending=False, + failing=False, + failure_info=False, + counterexample_info=False, + port=server.port, + ) + + assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test[-1]}.expected', update=update_expected_output) diff --git a/src/tests/integration/utils.py b/src/tests/integration/utils.py index 27573a0c4..419fd676b 100644 --- a/src/tests/integration/utils.py +++ b/src/tests/integration/utils.py @@ -29,3 +29,12 @@ def gen_bin_runtime(contract_file: Path, output_dir: Path) -> tuple[Path, str]: main_file.write_text(k_text) return main_file, main_module_name + + +def assert_or_update_show_output(actual_text: str, expected_file: Path, *, update: bool) -> None: + if update: + expected_file.write_text(actual_text) + else: + assert expected_file.is_file() + expected_text = expected_file.read_text() + assert actual_text == expected_text From 4af255c14a82b27828eefd2d6f10da89872afdd0 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Fri, 1 Mar 2024 14:51:20 +0000 Subject: [PATCH 48/91] updating expected outputs --- .../CSETest.test_add_const(uint256,uint256).expected | 10 +++++----- ...Test.test_add_const(uint256,uint256).expected.nocse | 10 +++++----- .../CSETest.test_identity(uint256,uint256).expected | 9 +++++---- ...ETest.test_identity(uint256,uint256).expected.nocse | 9 +++++---- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected index fdcccced6..5e06a8633 100644 --- a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected +++ b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected @@ -62,13 +62,13 @@ ┃ │ callDepth: 0 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (193 steps) +┃ │ (577 steps) ┃ └─ 12 (vacuous, leaf) -┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... -┃ pc: 785 -┃ callDepth: 0 +┃ k: JUMPI 55 bool2Word ( selector ( "applyOp(uint256)" ) ==Int #asWord ( b"\xe9\x19\ ... +┃ pc: 39 +┃ callDepth: 1 ┃ statusCode: STATUSCODE:StatusCode -┃ src: lib/forge-std/src/StdInvariant.sol:104:105 +┃ src: test/CSE.t.sol:9:34 ┃ ┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } │ diff --git a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse index fee9bb966..58daf66a1 100644 --- a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse +++ b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse @@ -62,13 +62,13 @@ ┃ │ callDepth: 0 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (193 steps) +┃ │ (577 steps) ┃ └─ 12 (vacuous, leaf) -┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... -┃ pc: 785 -┃ callDepth: 0 +┃ k: JUMPI 55 bool2Word ( selector ( "applyOp(uint256)" ) ==Int #asWord ( b"\xe9\x19\ ... +┃ pc: 39 +┃ callDepth: 1 ┃ statusCode: STATUSCODE:StatusCode -┃ src: lib/forge-std/src/StdInvariant.sol:104:105 +┃ src: test/CSE.t.sol:9:34 ┃ ┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } │ diff --git a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected index 56214cc35..f837ac862 100644 --- a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected +++ b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected @@ -62,12 +62,13 @@ ┃ │ callDepth: 0 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (193 steps) +┃ │ (525 steps) ┃ └─ 12 (vacuous, leaf) -┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... -┃ pc: 2939 -┃ callDepth: 0 +┃ k: JUMPI 55 bool2Word ( selector ( "applyOp(uint256)" ) ==Int #asWord ( b"i\xab\xff ... +┃ pc: 39 +┃ callDepth: 1 ┃ statusCode: STATUSCODE:StatusCode +┃ src: test/CSE.t.sol:9:34 ┃ ┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } │ diff --git a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse index 0617801b3..b1d195347 100644 --- a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse +++ b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse @@ -62,12 +62,13 @@ ┃ │ callDepth: 0 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (193 steps) +┃ │ (525 steps) ┃ └─ 12 (vacuous, leaf) -┃ k: #assume ( VV0_x_114b9705:Int #return_foundry 128 0 ~> #pc [ STAT ... -┃ pc: 2939 -┃ callDepth: 0 +┃ k: JUMPI 55 bool2Word ( selector ( "applyOp(uint256)" ) ==Int #asWord ( b"i\xab\xff ... +┃ pc: 39 +┃ callDepth: 1 ┃ statusCode: STATUSCODE:StatusCode +┃ src: test/CSE.t.sol:9:34 ┃ ┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } │ From 8eb77c083b6df053ab03b7dbc69d336ff1bfd887 Mon Sep 17 00:00:00 2001 From: devops Date: Mon, 4 Mar 2024 21:42:40 +0000 Subject: [PATCH 49/91] Set Version: 0.1.180 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index f4fdeb66b..2005625e8 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.179 +0.1.180 diff --git a/pyproject.toml b/pyproject.toml index 59a2a61b5..da1590f24 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.179" +version = "0.1.180" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index ea7dbbf01..87f1aded2 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.179' +VERSION: Final = '0.1.180' From 6efcc7170d555200c1186c9a5d9b5e72fa9fa0a7 Mon Sep 17 00:00:00 2001 From: Lisandra Date: Tue, 5 Mar 2024 16:03:02 +0000 Subject: [PATCH 50/91] Generate xml report (#377) * generating a simple xml report * report with time for each test case * xml report generated from results of kontrol prove command * formatted failure text * Added flag to generate the report only if the --xml-test_report is provided * execution time in kontrol side * Set proof execution time * report with tag for tests that end with exceptions * report is generated in function foundry_to_xml * Set Version: 0.1.162 * Formatting * Added file attribute to testcase * Set Version: 0.1.163 * Set Version: 0.1.164 * Printing exception trace in the report * Added CI test for the xml report feature * Fixed CI test * Add setup exectuion time to the testsuites * Fixed testsuites total execution time * Added one more assertion to CI test * Added property with kontrol version to xml report * Set Version: 0.1.165 * Set Version: 0.1.165 * undo changes to profiling test * Formatting * Fixed print failure info in xml report * Set Version: 0.1.179 * Set Version: 0.1.180 * Addressed PR comments --------- Co-authored-by: devops Co-authored-by: Palina Tolmach --- src/kontrol/__main__.py | 9 +++ src/kontrol/foundry.py | 84 ++++++++++++++++++++- src/kontrol/prove.py | 31 +++++--- src/tests/integration/test_foundry_prove.py | 40 ++++++++++ 4 files changed, 154 insertions(+), 10 deletions(-) diff --git a/src/kontrol/__main__.py b/src/kontrol/__main__.py index fac4f69b3..dfc81788c 100644 --- a/src/kontrol/__main__.py +++ b/src/kontrol/__main__.py @@ -244,6 +244,7 @@ def exec_prove( use_gas: bool = False, deployment_state_path: Path | None = None, with_non_general_state: bool = False, + xml_test_report: bool = False, **kwargs: Any, ) -> None: _ignore_arg(kwargs, 'main_module', f'--main-module: {kwargs["main_module"]}') @@ -300,6 +301,7 @@ def exec_prove( rpc_options=rpc_options, tests=tests, include_summaries=include_summaries, + xml_test_report=xml_test_report, ) failed = 0 for proof in results: @@ -806,6 +808,13 @@ def _parse_test_version_tuple(value: str) -> tuple[str, int | None]: action='store_true', help='Flag used by Simbolik to initialise the state of a non test function as if it was a test function.', ) + prove_args.add_argument( + '--xml-test-report', + dest='xml_test_report', + default=False, + action='store_true', + help='Generate a JUnit XML report', + ) show_args = command_parser.add_parser( 'show', diff --git a/src/kontrol/foundry.py b/src/kontrol/foundry.py index 546fbbb92..7bcd1881c 100644 --- a/src/kontrol/foundry.py +++ b/src/kontrol/foundry.py @@ -1,10 +1,13 @@ from __future__ import annotations +import datetime import json import logging import os import re import sys +import traceback +import xml.etree.ElementTree as Et from functools import cached_property from os import listdir from pathlib import Path @@ -24,10 +27,11 @@ from pyk.prelude.kbool import notBool from pyk.prelude.kint import INT, intToken from pyk.proof.proof import Proof -from pyk.proof.reachability import APRProof +from pyk.proof.reachability import APRFailureInfo, APRProof from pyk.proof.show import APRProofNodePrinter, APRProofShow from pyk.utils import ensure_dir_path, hash_str, run_process, single, unique +from . import VERSION from .deployment import DeploymentState, DeploymentStateEntry from .solc_to_k import Contract @@ -691,6 +695,84 @@ def foundry_list(foundry: Foundry) -> list[str]: return lines +def setup_exec_time(foundry: Foundry, contract: Contract) -> float: + setup_exec_time = 0.0 + if 'setUp' in contract.method_by_name: + latest_version = foundry.latest_proof_version(f'{contract.name_with_path}.setUp()') + setup_digest = f'{contract.name_with_path}.setUp():{latest_version}' + apr_proof = APRProof.read_proof_data(foundry.proofs_dir, setup_digest) + setup_exec_time = apr_proof.exec_time + return setup_exec_time + + +def foundry_to_xml(foundry: Foundry, proofs: list[APRProof]) -> None: + testsuites = Et.Element( + 'testsuites', tests='0', failures='0', errors='0', time='0', timestamp=str(datetime.datetime.now()) + ) + tests = 0 + total_exec_time = 0.0 + for proof in proofs: + tests += 1 + test, *_ = proof.id.split(':') + contract, test_name = test.split('.') + _, contract_name = contract.split('%') + foundry_contract = foundry.contracts[contract] + contract_path = foundry_contract.contract_path + proof_exec_time = proof.exec_time + testsuite = testsuites.find(f'testsuite[@name={contract_name!r}]') + if testsuite is None: + proof_exec_time += setup_exec_time(foundry, foundry_contract) + testsuite = Et.SubElement( + testsuites, + 'testsuite', + name=contract_name, + tests='1', + failures='0', + errors='0', + time=str(proof_exec_time), + timestamp=str(datetime.datetime.now()), + ) + properties = Et.SubElement(testsuite, 'properties') + Et.SubElement(properties, 'property', name='Kontrol version', value=str(VERSION)) + else: + testsuite_exec_time = float(testsuite.get('time', 0)) + proof_exec_time + testsuite.set('time', str(testsuite_exec_time)) + testsuite.set('tests', str(int(testsuite.get('tests', 0)) + 1)) + + total_exec_time += proof_exec_time + testcase = Et.SubElement( + testsuite, + 'testcase', + name=test_name, + classname=contract_name, + time=str(proof_exec_time), + file=contract_path, + ) + + if not proof.passed: + if proof.error_info is not None: + error = Et.SubElement(testcase, 'error', message='Exception') + trace = traceback.format_exception(proof.error_info) + error.set('type', str(type(proof.error_info).__name__)) + error.text = '\n' + ' '.join(trace) + testsuite.set('errors', str(int(testsuite.get('errors', 0)) + 1)) + testsuites.set('errors', str(int(testsuites.get('errors', 0)) + 1)) + else: + if proof.failure_info is not None and isinstance(proof.failure_info, APRFailureInfo): + failure = Et.SubElement(testcase, 'failure', message='Proof failed') + text = proof.failure_info.print() + failure.set('message', text[0]) + failure.text = '\n'.join(text[1:-1]) + testsuite.set('failures', str(int(testsuite.get('failures', 0)) + 1)) + testsuites.set('failures', str(int(testsuites.get('failures', 0)) + 1)) + + testsuites.set('tests', str(tests)) + testsuites.set('time', str(total_exec_time)) + tree = Et.ElementTree(testsuites) + Et.indent(tree, space='\t', level=0) + tree.write('kontrol_prove_report.xml') + + def foundry_remove_node(foundry: Foundry, test: str, node: NodeIdLike, version: int | None = None) -> None: test_id = foundry.get_test_id(test, version) apr_proof = foundry.get_apr_proof(test_id) diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index 4d0b95a82..3033ab899 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -1,6 +1,7 @@ from __future__ import annotations import logging +import time from subprocess import CalledProcessError from typing import TYPE_CHECKING, NamedTuple @@ -22,7 +23,7 @@ from pyk.proof.reachability import APRFailureInfo, APRProof from pyk.utils import run_process, unique -from .foundry import Foundry +from .foundry import Foundry, foundry_to_xml from .solc_to_k import Contract, hex_string_to_int if TYPE_CHECKING: @@ -44,6 +45,7 @@ def foundry_prove( rpc_options: RPCOptions, tests: Iterable[tuple[str, int | None]] = (), include_summaries: Iterable[tuple[str, int | None]] = (), + xml_test_report: bool = False, ) -> list[APRProof]: if prove_options.workers <= 0: raise ValueError(f'Must have at least one worker, found: --workers {prove_options.workers}') @@ -121,6 +123,10 @@ def _run_prover(_test_suite: list[FoundryTest], include_summaries: bool = False) _LOGGER.info(f'Running test functions in parallel: {test_names}') results = _run_prover(test_suite, include_summaries=True) + + if xml_test_report: + foundry_to_xml(foundry, results) + return results @@ -197,11 +203,12 @@ def _run_cfg_group( rpc_options: RPCOptions, summary_ids: Iterable[str], ) -> list[APRProof]: - def init_and_run_proof(test: FoundryTest) -> APRFailureInfo | None: + def init_and_run_proof(test: FoundryTest) -> APRFailureInfo | Exception | None: if Proof.proof_data_exists(test.id, foundry.proofs_dir): apr_proof = foundry.get_apr_proof(test.id) if apr_proof.passed: return None + start_time = time.time() start_server = rpc_options.port is None with legacy_explore( foundry.kevm, @@ -228,7 +235,6 @@ def init_and_run_proof(test: FoundryTest) -> APRFailureInfo | None: summary_ids=summary_ids, active_symbolik=prove_options.active_symbolik, ) - cut_point_rules = KEVMSemantics.cut_point_rules( prove_options.break_on_jumpi, prove_options.break_on_calls, @@ -239,7 +245,6 @@ def init_and_run_proof(test: FoundryTest) -> APRFailureInfo | None: cut_point_rules.extend( rule.label for rule in foundry.kevm.definition.all_modules_dict['FOUNDRY-CHEAT-CODES'].rules ) - run_prover( proof, kcfg_explore, @@ -251,12 +256,18 @@ def init_and_run_proof(test: FoundryTest) -> APRFailureInfo | None: fail_fast=prove_options.fail_fast, ) + end_time = time.time() + proof.add_exec_time(end_time - start_time) + proof.write_proof_data() # Only return the failure info to avoid pickling the whole proof if proof.failure_info is not None and not isinstance(proof.failure_info, APRFailureInfo): raise RuntimeError('Generated failure info for APRProof is not APRFailureInfo.') - return proof.failure_info + if proof.error_info is not None: + return proof.error_info + else: + return proof.failure_info - failure_infos: list[APRFailureInfo | None] + failure_infos: list[APRFailureInfo | Exception | None] if prove_options.workers > 1: with ProcessPool(ncpus=prove_options.workers) as process_pool: failure_infos = process_pool.map(init_and_run_proof, tests) @@ -270,7 +281,11 @@ def init_and_run_proof(test: FoundryTest) -> APRFailureInfo | None: # Reconstruct the proof from the subprocess for proof, failure_info in zip(proofs, failure_infos, strict=True): assert proof.failure_info is None # Refactor once this fails - proof.failure_info = failure_info + assert proof.error_info is None + if isinstance(failure_info, Exception): + proof.error_info = failure_info + elif isinstance(failure_info, APRFailureInfo): + proof.failure_info = failure_info return proofs @@ -288,7 +303,6 @@ def method_to_apr_proof( ) -> APRProof: if Proof.proof_data_exists(test.id, foundry.proofs_dir): apr_proof = foundry.get_apr_proof(test.id) - apr_proof.write_proof_data() return apr_proof setup_proof = None @@ -323,7 +337,6 @@ def method_to_apr_proof( subproof_ids=summary_ids, ) - apr_proof.write_proof_data() return apr_proof diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index 95f2acf63..19da2c60f 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -1,6 +1,7 @@ from __future__ import annotations import sys +import xml.etree.ElementTree as Et from distutils.dir_util import copy_tree from typing import TYPE_CHECKING @@ -673,3 +674,42 @@ def test_foundry_refute_node( # Proof passes again assert_pass(test, single(prove_res_3)) + + +def test_foundry_xml_report( + foundry: Foundry, + bug_report: BugReport | None, + server: KoreServer, + no_use_booster: bool, +) -> None: + if no_use_booster: + pytest.skip() + + if bug_report is not None: + server._populate_bug_report(bug_report) + + foundry_prove( + foundry, + tests=[ + ('AssertTest.test_assert_true()', None), + ('AssertTest.test_assert_false()', None), + ], + prove_options=ProveOptions( + counterexample_info=True, + bug_report=bug_report, + ), + rpc_options=RPCOptions( + port=server.port, + ), + xml_test_report=True, + ) + + tree = Et.parse('kontrol_prove_report.xml') + testsuites = tree.getroot() + testsuite = testsuites.find('testsuite') + assert testsuite + assert testsuite.get('name', 'None') == 'AssertTest' + assert testsuite.findall('testcase[@name="test_assert_true()"]') + failure = testsuite.findall('testcase[@name="test_assert_false()"]') + assert failure + assert failure[0].findall('failure') From c9e33d14becd78bf4d4f45b61967dadcc53ee238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20V=C4=83caru?= <16517508+anvacaru@users.noreply.github.com> Date: Tue, 5 Mar 2024 21:43:52 +0200 Subject: [PATCH 51/91] Refactor get_test_id to fetch latest version (#406) * foundry.py: refactor get_test_id to fetch latest version * Set Version: 0.1.179 * add docstrings and unit test * test_foundry_list.py: revert changes * Set Version: 0.1.180 * foundry-list.expected: revert changes * test_get_test_id.py: add new unit tests * foundry.py: refactor get_test_id * test_get_test_id.py: update fixture and add new test case * test_get_test_id.py: refactor using monkeypatch * Set Version: 0.1.181 --------- Co-authored-by: devops Co-authored-by: rv-jenkins --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- src/kontrol/foundry.py | 53 +++++++++++---- src/tests/unit/test_get_test_id.py | 103 +++++++++++++++++++++++++++++ 5 files changed, 145 insertions(+), 17 deletions(-) create mode 100644 src/tests/unit/test_get_test_id.py diff --git a/package/version b/package/version index 2005625e8..7fcea722a 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.180 +0.1.181 diff --git a/pyproject.toml b/pyproject.toml index da1590f24..86e766ffe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.180" +version = "0.1.181" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 87f1aded2..c6ce52ad6 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.180' +VERSION: Final = '0.1.181' diff --git a/src/kontrol/foundry.py b/src/kontrol/foundry.py index 7bcd1881c..89beabaed 100644 --- a/src/kontrol/foundry.py +++ b/src/kontrol/foundry.py @@ -290,7 +290,7 @@ def _escape_brackets(regs: list[str]) -> list[str]: def matching_tests(self, tests: list[str]) -> list[str]: all_tests = self.all_tests all_non_tests = self.all_non_tests - tests = self._escape_brackets(tests) + tests = Foundry._escape_brackets(tests) matched_tests = set() unfound_tests = set(tests) for test in tests: @@ -309,20 +309,45 @@ def matching_sigs(self, test: str) -> list[str]: return test_sigs def get_test_id(self, test: str, version: int | None) -> str: + """ + Retrieves the unique identifier for a test based on its name and version. + + If multiple proofs are found for a test without a specific version, the function attempts to resolve to the latest version. + + :param test: The name of the test to find a matching proof for. + :param version: The version number of the test. If None, the function attempts to resolve to the latest version if multiple matches are found. + :raises ValueError: If no matching proofs are found for the given test and version, indicating the test does not exist. + :raises ValueError: If more than one matching proof is found for a given test and version, a full signature is required. + :return: The unique identifier of the matching proof for the specified test and version. + """ + + def _assert_single_id(l: list[str]) -> str: + try: + return single(l) + except ValueError as e: + error_msg = ( + f'Found {len(matching_proof_ids)} matching proofs for {test}:{version}. ' + f'Provide a full signature of the test, e.g., {matching_sigs[0][5:]!r} --version {version}. ' + f'Error: {e}' + ) + raise ValueError(error_msg) from e + matching_proof_ids = self.proof_ids_with_test(test, version) - sig = single(self.matching_sigs(test)) - if len(matching_proof_ids) == 0: + matching_sigs = self.matching_sigs(test) + + if not matching_proof_ids: raise ValueError(f'Found no matching proofs for {test}:{version}.') - if len(matching_proof_ids) > 1: - if version is None: - raise ValueError( - f'Found {len(matching_proof_ids)} matching proofs for {test}:{version}. Use the --version flag to choose one.' - ) - else: - raise ValueError( - f'Found {len(matching_proof_ids)} matching proofs for {test}:{version}. Provide a full signature of the test, e.g., {sig[5:]!r} --version {version}.' - ) - return single(matching_proof_ids) + + _assert_single_id(matching_sigs) + + if len(matching_proof_ids) > 1 and version is None: + print( + f'Found {len(matching_proof_ids)} matching proofs for {test}:{version}. Running the latest one. Use the `--version` flag to choose one.' + ) + latest_version = self.resolve_proof_version(matching_sigs[0], False, version) + matching_proof_ids = self.proof_ids_with_test(test, latest_version) + + return _assert_single_id(matching_proof_ids) @staticmethod def success(s: KInner, dst: KInner, r: KInner, c: KInner, e1: KInner, e2: KInner) -> KApply: @@ -424,7 +449,7 @@ def filter_proof_ids(proof_ids: list[str], test: str, version: int | None = None return matches def proof_ids_with_test(self, test: str, version: int | None = None) -> list[str]: - proof_ids = self.filter_proof_ids(listdir(self.proofs_dir), test, version) + proof_ids = self.filter_proof_ids(self.list_proof_dir(), test, version) _LOGGER.info(f'Found {len(proof_ids)} matching proofs for {test}:{version}: {proof_ids}') return proof_ids diff --git a/src/tests/unit/test_get_test_id.py b/src/tests/unit/test_get_test_id.py new file mode 100644 index 000000000..e6c2a4188 --- /dev/null +++ b/src/tests/unit/test_get_test_id.py @@ -0,0 +1,103 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +import pytest + +from kontrol.foundry import Foundry + +if TYPE_CHECKING: + pass + + from _pytest.monkeypatch import MonkeyPatch # Importing the type for annotation + + +def mock_listdir(_f: Foundry) -> list[str]: + return [ + 'test%AssertTest.checkFail_assert_false():0', + 'test%AssertTest.test_assert_false():0', + 'test%AssertTest.test_assert_true():0', + 'test%AssertTest.testFail_assert_true():0', + 'test%AssertTest.setUp():0', + 'test%AssertTest.setUp():1', + ] + + +def mock_all_tests() -> list[str]: + return [ + 'test%AssertTest.checkFail_assert_false()', + 'test%AssertTest.test_assert_false()', + 'test%AssertTest.test_assert_true()', + 'test%AssertTest.testFail_assert_true()', + ] + + +def mock_all_non_tests() -> list[str]: + return ['test%AssertTest.setUp()'] + + +TEST_ID_DATA: list[tuple[str, str, int | None, bool, str]] = [ + ( + 'with_version', + 'AssertTest.setUp()', + 0, + False, + 'test%AssertTest.setUp():0', + ), + ( + 'without_version', + 'AssertTest.setUp()', + None, + False, + 'test%AssertTest.setUp():1', + ), + ( + 'no_matches', + 'AssertTest.setUp()', + 3, + True, + r'Found no matching proofs for AssertTest\.setUp\(\):3\.', + ), + ( + 'multiple_matches_with_version', + 'AssertTest.test_assert', + 0, + True, + r'Found 2 matching proofs for AssertTest\.test_assert:0\.', + ), + ( + 'multiple_matches_without_version', + 'AssertTest.test_assert', + None, + True, + r'Found 2 matching proofs for AssertTest\.test_assert:None\.', + ), +] + + +@pytest.mark.parametrize( + 'test_id,test,version,expect_error,expected_str', TEST_ID_DATA, ids=[test_id for test_id, *_ in TEST_ID_DATA] +) +def test_foundry_get_test_id( + monkeypatch: MonkeyPatch, test_id: str, test: str, version: int | None, expect_error: bool, expected_str: str +) -> None: + + # Given + monkeypatch.setattr(Foundry, '__init__', lambda _: None) + monkeypatch.setattr(Foundry, 'list_proof_dir', mock_listdir) + monkeypatch.setattr(Foundry, 'all_tests', mock_all_tests()) + monkeypatch.setattr(Foundry, 'all_non_tests', mock_all_non_tests()) + monkeypatch.setattr(Foundry, 'resolve_proof_version', lambda _self, _test, _reinit, _version: 1) + + foundry = Foundry() # type: ignore + + if expect_error: + # When/Then + with pytest.raises(ValueError, match=expected_str): + foundry.get_test_id(test, version) + else: + # When + id = foundry.get_test_id(test, version) + + # Then + assert id == expected_str From 4949d0bb0098528cc20a14d1701c93a89b0f2281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20T=C3=B3th?= Date: Wed, 6 Mar 2024 00:42:24 +0100 Subject: [PATCH 52/91] Remove upper bound from pytest version (#408) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove upper bound from pytest version * Set Version: 0.1.180 * Set Version: 0.1.181 * Set Version: 0.1.182 --------- Co-authored-by: devops Co-authored-by: Andrei Văcaru <16517508+anvacaru@users.noreply.github.com> Co-authored-by: rv-jenkins --- package/version | 2 +- poetry.lock | 12 ++++++------ pyproject.toml | 4 ++-- src/kontrol/__init__.py | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package/version b/package/version index 7fcea722a..ce08f3561 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.181 +0.1.182 diff --git a/poetry.lock b/poetry.lock index ff4ef13ea..e29f6e30f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -856,13 +856,13 @@ files = [ [[package]] name = "pytest" -version = "7.4.4" +version = "8.0.2" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.0.2-py3-none-any.whl", hash = "sha256:edfaaef32ce5172d5466b5127b42e0d6d35ebbe4453f0e3505d96afd93f6b096"}, + {file = "pytest-8.0.2.tar.gz", hash = "sha256:d4051d623a2e0b7e51960ba963193b09ce6daeb9759a451844a21e4ddedfc1bd"}, ] [package.dependencies] @@ -870,7 +870,7 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" +pluggy = ">=1.3.0,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] @@ -1111,4 +1111,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "3400524d76d65ef34234f788162d65a68fdc8e016237fc679231fccb7a917f3b" +content-hash = "c9434a70cd8f3444b3314efacb7ee54be6213d5b76cec042f520c0cb1bb727c5" diff --git a/pyproject.toml b/pyproject.toml index 86e766ffe..6239cf290 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.181" +version = "0.1.182" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", @@ -25,7 +25,7 @@ flake8-type-checking = "*" isort = "*" mypy = "*" pep8-naming = "*" -pytest = "^7" +pytest = "*" pytest-cov = "*" pytest-mock = "*" pytest-xdist = "*" diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index c6ce52ad6..f385bb53a 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.181' +VERSION: Final = '0.1.182' From cd0ea2c70722549831dcdfcc496550172cf3b56a Mon Sep 17 00:00:00 2001 From: rv-jenkins Date: Wed, 6 Mar 2024 00:22:52 -0700 Subject: [PATCH 53/91] Update dependency: deps/kevm_release (#410) * deps/kevm_release: Set Version 1.0.478 * Set Version: 0.1.180 * Sync Poetry files: kevm-pyk version 1.0.478 * flake.{nix,lock}: update Nix derivations * Set Version: 0.1.181 * deps/kevm_release: Set Version 1.0.479 * Sync Poetry files: kevm-pyk version 1.0.479 * flake.{nix,lock}: update Nix derivations * Set Version: 0.1.182 * deps/kevm_release: Set Version 1.0.480 * Sync Poetry files: kevm-pyk version 1.0.480 * flake.{nix,lock}: update Nix derivations * Set Version: 0.1.183 * deps/kevm_release: Set Version 1.0.481 * Sync Poetry files: kevm-pyk version 1.0.481 * flake.{nix,lock}: update Nix derivations * Update expected output (w/o `test_foundry_xml_report`) * deps/kevm_release: Set Version 1.0.482 * Sync Poetry files: kevm-pyk version 1.0.482 * deps/k_release: sync release file version 6.3.25 * flake.{nix,lock}: update Nix derivations * Reinit proofs in `test_foundry_xml_report` * Updated expected output w/new exec time format, `terminal` node label --------- Co-authored-by: devops Co-authored-by: Palina Tolmach --- deps/k_release | 2 +- deps/kevm_release | 2 +- flake.lock | 24 +++--- flake.nix | 2 +- package/version | 2 +- poetry.lock | 16 ++-- pyproject.toml | 4 +- src/kontrol/__init__.py | 2 +- ....test_double_add(uint256,uint256).expected | 2 +- ...sertTest.checkFail_assert_false().expected | 34 ++++---- ...AssertTest.testFail_assert_true().expected | 46 +++++----- ...sertTest.testFail_expect_revert().expected | 86 +++++++++---------- .../AssertTest.test_assert_false().expected | 46 +++++----- .../AssertTest.test_assert_true().expected | 34 ++++---- ...Test.test_failing_branch(uint256).expected | 66 +++++++------- ...st_revert_branch(uint256,uint256).expected | 68 +++++++-------- ...ail_assume_false(uint256,uint256).expected | 38 ++++---- ...Fail_assume_true(uint256,uint256).expected | 38 ++++---- ...est_assume_false(uint256,uint256).expected | 50 +++++------ ...etUpDeployTest.test_extcodesize().expected | 46 +++++----- .../test-data/show/gas-abstraction.expected | 26 +++--- .../test-data/show/node-refutation.expected | 22 ++--- src/tests/integration/test_foundry_prove.py | 1 + .../foundry-list/foundry-list.expected | 10 +-- 24 files changed, 334 insertions(+), 333 deletions(-) diff --git a/deps/k_release b/deps/k_release index 6d721abfa..c73b21b80 100644 --- a/deps/k_release +++ b/deps/k_release @@ -1 +1 @@ -6.3.24 +6.3.25 diff --git a/deps/kevm_release b/deps/kevm_release index fb5bced92..be59341a7 100644 --- a/deps/kevm_release +++ b/deps/kevm_release @@ -1 +1 @@ -1.0.477 +1.0.482 diff --git a/flake.lock b/flake.lock index ca55d1123..032fb60f1 100644 --- a/flake.lock +++ b/flake.lock @@ -308,16 +308,16 @@ "rv-utils": "rv-utils_3" }, "locked": { - "lastModified": 1709312633, - "narHash": "sha256-bkJuVlZhrF2Ea7XgCGSiicxdILGIY8aao3hsvzWf5/M=", + "lastModified": 1709554158, + "narHash": "sha256-OnVgXOsw6JFtkg8RDnRgtmBP6VGLfB+bmkDjt9S7NKA=", "owner": "runtimeverification", "repo": "k", - "rev": "c24672e46abf11a319df75eb6d61dbd48739357b", + "rev": "aceff4aac9bdd69b4443cce5fb5c96ca6c15c761", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v6.3.24", + "ref": "v6.3.25", "repo": "k", "type": "github" } @@ -361,16 +361,16 @@ ] }, "locked": { - "lastModified": 1709547340, - "narHash": "sha256-j9ISAS/ZksM8WRAyR/856vVUlfqZDzIAYinjyKDsnsQ=", + "lastModified": 1709701325, + "narHash": "sha256-oaF5GwAVnYrjmUO0Mrn4g5LwKmUuXOunvTWUaKCFwIY=", "owner": "runtimeverification", "repo": "evm-semantics", - "rev": "508ec33fcb4e2cea80b22002af06301db6e2d42e", + "rev": "65f4327edf082bb2ead886eb83b3d47f697363dd", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v1.0.477", + "ref": "v1.0.482", "repo": "evm-semantics", "type": "github" } @@ -618,16 +618,16 @@ "poetry2nix": "poetry2nix" }, "locked": { - "lastModified": 1709322253, - "narHash": "sha256-xgkzlbAw5TylREK5+rY3A2GeOR4o+RKIg4lPoabYNT8=", + "lastModified": 1709646507, + "narHash": "sha256-yETXE27ZJD+35IbuyDDP9CdcQCvOi93wX0+mr4MGIXw=", "owner": "runtimeverification", "repo": "pyk", - "rev": "223cd775151e96051fc560849a9c4e2e7fb01a2e", + "rev": "2c9a739d0e20dceb70076e01a31999bb5b5e8b5e", "type": "github" }, "original": { "owner": "runtimeverification", - "ref": "v0.1.675", + "ref": "v0.1.681", "repo": "pyk", "type": "github" } diff --git a/flake.nix b/flake.nix index 87fddb4fe..3e8f50dd5 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Kontrol"; inputs = { - kevm.url = "github:runtimeverification/evm-semantics/v1.0.477"; + kevm.url = "github:runtimeverification/evm-semantics/v1.0.482"; nixpkgs.follows = "kevm/nixpkgs"; nixpkgs-pyk.follows = "kevm/nixpkgs-pyk"; k-framework.follows = "kevm/k-framework"; diff --git a/package/version b/package/version index ce08f3561..24f1cf39c 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.182 +0.1.183 diff --git a/poetry.lock b/poetry.lock index e29f6e30f..76dc2dce7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -434,7 +434,7 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "kevm-pyk" -version = "1.0.477" +version = "1.0.482" description = "" optional = false python-versions = "^3.10" @@ -443,14 +443,14 @@ develop = false [package.dependencies] pathos = "*" -pyk = {git = "https://github.com/runtimeverification/pyk.git", tag = "v0.1.675"} +pyk = {git = "https://github.com/runtimeverification/pyk.git", tag = "v0.1.681"} tomlkit = "^0.11.6" [package.source] type = "git" url = "https://github.com/runtimeverification/evm-semantics.git" -reference = "v1.0.477" -resolved_reference = "508ec33fcb4e2cea80b22002af06301db6e2d42e" +reference = "v1.0.482" +resolved_reference = "65f4327edf082bb2ead886eb83b3d47f697363dd" subdirectory = "kevm-pyk" [[package]] @@ -809,7 +809,7 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyk" -version = "0.1.675" +version = "0.1.681" description = "" optional = false python-versions = "^3.10" @@ -830,8 +830,8 @@ xdg-base-dirs = "^6.0.1" [package.source] type = "git" url = "https://github.com/runtimeverification/pyk.git" -reference = "v0.1.675" -resolved_reference = "223cd775151e96051fc560849a9c4e2e7fb01a2e" +reference = "v0.1.681" +resolved_reference = "2c9a739d0e20dceb70076e01a31999bb5b5e8b5e" [[package]] name = "pyperclip" @@ -1111,4 +1111,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "c9434a70cd8f3444b3314efacb7ee54be6213d5b76cec042f520c0cb1bb727c5" +content-hash = "0b7a8370bbad08309c8cd8953c365957e21e1698bd78ea5437ab667270f2cf31" diff --git a/pyproject.toml b/pyproject.toml index 6239cf290..d8163ab6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.182" +version = "0.1.183" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", @@ -12,7 +12,7 @@ authors = [ [tool.poetry.dependencies] python = "^3.10" -kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.477", subdirectory = "kevm-pyk" } +kevm-pyk = { git = "https://github.com/runtimeverification/evm-semantics.git", tag = "v1.0.482", subdirectory = "kevm-pyk" } [tool.poetry.group.dev.dependencies] autoflake = "*" diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index f385bb53a..a2c231dbd 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.182' +VERSION: Final = '0.1.183' diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).expected index afb6b4eae..d16ea2b82 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).expected @@ -201,7 +201,7 @@ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 46 +┃ ┃ ┃ ├─ 46 (terminal) ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 194 ┃ ┃ ┃ │ callDepth: 0 diff --git a/src/tests/integration/test-data/show/AssertTest.checkFail_assert_false().expected b/src/tests/integration/test-data/show/AssertTest.checkFail_assert_false().expected index eb99b0276..eb0bd3580 100644 --- a/src/tests/integration/test-data/show/AssertTest.checkFail_assert_false().expected +++ b/src/tests/integration/test-data/show/AssertTest.checkFail_assert_false().expected @@ -48,7 +48,7 @@ │ statusCode: EVMC_REVERT │ │ (2 steps) -├─ 10 +├─ 10 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 2995 │ callDepth: 0 @@ -261,10 +261,10 @@ module SUMMARY-TEST%ASSERTTEST.CHECKFAIL-ASSERT-FALSE():0 andBool ( 0 <=Int TIMESTAMP_CELL:Int andBool ( CALLER_ID:Int CONTINUATION:K │ pc: 328 │ callDepth: 0 @@ -261,10 +261,10 @@ module SUMMARY-TEST%ASSERTTEST.TEST-ASSERT-TRUE():0 andBool ( 0 <=Int TIMESTAMP_CELL:Int andBool ( CALLER_ID:Int CONTINUATION:K ┃ │ pc: ?_PC_CELL_5d410f2a:Int ┃ │ callDepth: ?_CALLDEPTH_CELL_5d410f2a:Int @@ -89,7 +89,7 @@ ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (2 steps) - ┃ ├─ 17 + ┃ ├─ 17 (terminal) ┃ │ k: #halt ~> CONTINUATION:K ┃ │ pc: 328 ┃ │ callDepth: 0 @@ -338,8 +338,8 @@ Node 18: #And ( { true #Equals NUMBER_CELL:Int <=Int maxSInt256 } #And ( { true #Equals TIMESTAMP_CELL:Int CONTINUATION:K ┃ │ pc: ?_PC_CELL_5d410f2a:Int ┃ │ callDepth: ?_CALLDEPTH_CELL_5d410f2a:Int @@ -332,8 +332,8 @@ Node 18: #And ( { true #Equals TIMESTAMP_CELL:Int CONTINUATION:K │ pc: 281 │ callDepth: 0 @@ -270,15 +270,15 @@ module SUMMARY-TEST%ASSUMETEST.TESTFAIL-ASSUME-TRUE(UINT256,UINT256):0 andBool ( 0 <=Int VV1_b_114b9705:Int andBool ( CALLER_ID:Int 1 , 46308022326495007027972728677917914892729792999299745830475596687180801507328 ) , revertExpected: false , opcodeExpected: false , recordEventExpected: false , eventExpected: false ) } + #And { true #Equals VV1_b_114b9705:Int 1 , 46308022326495007027972728677917914892729792999299745830475596687180801507328 ) , revertExpected: false , opcodeExpected: false , recordEventExpected: false , eventExpected: false ) } Path condition: #Top Model: - CALLER_ID = 7719 + CALLER_ID = 10 NUMBER_CELL = 0 - ORIGIN_ID = 38 + ORIGIN_ID = 10 TIMESTAMP_CELL = 0 VV0_a_114b9705 = 0 VV1_b_114b9705 = 1 diff --git a/src/tests/integration/test-data/show/SetUpDeployTest.test_extcodesize().expected b/src/tests/integration/test-data/show/SetUpDeployTest.test_extcodesize().expected index 0b863956a..3fea22093 100644 --- a/src/tests/integration/test-data/show/SetUpDeployTest.test_extcodesize().expected +++ b/src/tests/integration/test-data/show/SetUpDeployTest.test_extcodesize().expected @@ -69,7 +69,7 @@ │ statusCode: EVMC_SUCCESS │ │ (2 steps) -├─ 13 +├─ 13 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 194 │ callDepth: 0 @@ -407,10 +407,10 @@ module SUMMARY-TEST%SETUPDEPLOYTEST.TEST-EXTCODESIZE():0 andBool ( 0 <=Int TIMESTAMP_CELL:Int andBool ( CALLER_ID:Int CONTINUATION:K │ pc: 235 │ callDepth: 0 @@ -258,14 +258,14 @@ module SUMMARY-TEST%MERGETEST.TEST-BRANCH-MERGE(UINT256):0 andBool ( 0 <=Int VV0_x_114b9705:Int andBool ( CALLER_ID:Int Date: Wed, 6 Mar 2024 07:54:07 +0000 Subject: [PATCH 54/91] Set Version: 0.1.184 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 24f1cf39c..c3ba241b6 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.183 +0.1.184 diff --git a/pyproject.toml b/pyproject.toml index d8163ab6c..8ea084dfa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.183" +version = "0.1.184" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index a2c231dbd..69df8e738 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.183' +VERSION: Final = '0.1.184' From 006a3204778aea6cb701e5a9288832cb3be95325 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 6 Mar 2024 14:20:53 +0000 Subject: [PATCH 55/91] simplifying lemams and adding them to CI --- .../test-data/{foundry/src/cse/lemmas.k => cse-lemmas.k} | 8 ++++---- src/tests/integration/test_kontrol_cse.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) rename src/tests/integration/test-data/{foundry/src/cse/lemmas.k => cse-lemmas.k} (80%) diff --git a/src/tests/integration/test-data/foundry/src/cse/lemmas.k b/src/tests/integration/test-data/cse-lemmas.k similarity index 80% rename from src/tests/integration/test-data/foundry/src/cse/lemmas.k rename to src/tests/integration/test-data/cse-lemmas.k index 24393cc4a..3fee9c8bf 100644 --- a/src/tests/integration/test-data/foundry/src/cse/lemmas.k +++ b/src/tests/integration/test-data/cse-lemmas.k @@ -14,10 +14,10 @@ module CSE-LEMMAS requires #rangeUInt ( 256 , X ) [simplification] - // // for-loop chop - // rule chop ( ( X:Int +Int Y:Int ) ) ==Int 0 => X ==Int pow256 -Int (Y modInt pow256) - // requires #rangeUInt(256, X) andBool 0 <=Int Y - // [simplification, concrete(Y)] + // for-loop chop + rule chop ( ( X:Int +Int Y:Int ) ) ==Int 0 => X ==Int pow256 -Int (Y modInt pow256) + requires #rangeUInt(256, X) andBool 0 <=Int Y + [simplification, concrete(Y)] // Set equality needed for discharging `#Not ( #Exists ( ... )` on `` unification rule { S1:Set #Equals S2:Set |Set SetItem ( X ) } => diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index 3314c5eec..4748515ce 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -71,8 +71,8 @@ def foundry(foundry_root_dir: Path | None, tmp_path_factory: TempPathFactory, wo foundry_kompile( foundry=Foundry(foundry_root), includes=(), - requires=[str(TEST_DATA_DIR / 'lemmas.k')], - imports=['LoopsTest:SUM-TO-N-INVARIANT'], + requires=[str(TEST_DATA_DIR / 'lemmas.k'), str(TEST_DATA_DIR / 'cse-lemmas.k')], + imports=['LoopsTest:SUM-TO-N-INVARIANT', 'CSETest:CSE-LEMMAS'], ) session_foundry_root = tmp_path_factory.mktemp('foundry') From 8a7fdda406919e0c84fd0a3200d729b77ed106eb Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 6 Mar 2024 14:21:43 +0000 Subject: [PATCH 56/91] Set Version: 0.1.185 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index c3ba241b6..8fe4a535a 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.184 +0.1.185 diff --git a/pyproject.toml b/pyproject.toml index 8ea084dfa..73263fb60 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.184" +version = "0.1.185" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 69df8e738..b4dfa7918 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.184' +VERSION: Final = '0.1.185' From d16d3df34d861df0fc21c4549b8a39567c1a3208 Mon Sep 17 00:00:00 2001 From: Andrei Date: Thu, 7 Mar 2024 11:52:41 +0200 Subject: [PATCH 57/91] test_kontrol_cse.py: move dependency test from test_foundry_prove --- src/tests/integration/test_kontrol_cse.py | 56 ++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index 4748515ce..bc5df486f 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -91,7 +91,7 @@ def foundry(foundry_root_dir: Path | None, tmp_path_factory: TempPathFactory, wo @pytest.mark.parametrize('test', DEPENDENCY_TESTS) -def test_foundry_dependency( +def test_foundry_dependency_manual( test: list[str], foundry: Foundry, bug_report: BugReport | None, @@ -142,3 +142,57 @@ def test_foundry_dependency( ) assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test[-1]}.expected', update=update_expected_output) + + +ALL_DEPENDENCY_TESTS: Final = tuple((TEST_DATA_DIR / 'foundry-dependency-all').read_text().splitlines()) +SKIPPED_DEPENDENCY_TESTS: Final = set((TEST_DATA_DIR / 'foundry-dependency-skip').read_text().splitlines()) + + +@pytest.mark.parametrize('test_id', ALL_DEPENDENCY_TESTS) +def test_foundry_dependency_automated( + test_id: str, + foundry: Foundry, + bug_report: BugReport | None, + server: KoreServer, + update_expected_output: bool, + no_use_booster: bool, +) -> None: + if no_use_booster: + pytest.skip() + + if test_id in SKIPPED_DEPENDENCY_TESTS: + pytest.skip() + + if bug_report is not None: + server._populate_bug_report(bug_report) + + foundry_prove( + foundry, + tests=[(test_id, None)], + prove_options=ProveOptions( + max_iterations=50, + bug_report=bug_report, + cse=True, + fail_fast=False, + workers=2, + ), + rpc_options=RPCOptions( + port=server.port, + ), + include_summaries=[], + ) + + show_res = foundry_show( + foundry, + test=test_id, + to_module=False, + sort_collections=True, + omit_unstable_output=True, + pending=False, + failing=False, + failure_info=False, + counterexample_info=False, + port=server.port, + ) + + assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test_id}.expected', update=update_expected_output) From f7f01ac77601339f388c8a02091a1009ec1566dd Mon Sep 17 00:00:00 2001 From: devops Date: Thu, 7 Mar 2024 09:52:58 +0000 Subject: [PATCH 58/91] Set Version: 0.1.188 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index fd39f6dee..64b5cd7f1 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.187 +0.1.188 diff --git a/pyproject.toml b/pyproject.toml index 94bdef333..a772cd44a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.187" +version = "0.1.188" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 62bf313dc..cf1dcbf50 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.187' +VERSION: Final = '0.1.188' From 3b333e3aeee8f4c17b9e21383145b68890178bc7 Mon Sep 17 00:00:00 2001 From: Andrei Date: Fri, 8 Mar 2024 10:07:57 +0200 Subject: [PATCH 59/91] test_kontrol_cse.py: refactor test harness --- .../test-data/foundry-dependency-all | 5 + .../test-data/foundry-dependency-skip | 3 + src/tests/integration/test_kontrol_cse.py | 110 +++++++----------- 3 files changed, 49 insertions(+), 69 deletions(-) diff --git a/src/tests/integration/test-data/foundry-dependency-all b/src/tests/integration/test-data/foundry-dependency-all index 078757f43..7dcffa590 100644 --- a/src/tests/integration/test-data/foundry-dependency-all +++ b/src/tests/integration/test-data/foundry-dependency-all @@ -1,3 +1,8 @@ ArithmeticCallTest.test_double_add(uint256,uint256) ArithmeticCallTest.test_double_add_double_sub(uint256,uint256) ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256) +AddConst.applyOp(uint256) +Identity.applyOp(uint256) +Identity.identity(uint256) +CSETest.test_add_const(uint256,uint256) +CSETest.test_identity(uint256,uint256) \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry-dependency-skip b/src/tests/integration/test-data/foundry-dependency-skip index 3ba009ab4..230f86272 100644 --- a/src/tests/integration/test-data/foundry-dependency-skip +++ b/src/tests/integration/test-data/foundry-dependency-skip @@ -1 +1,4 @@ ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256) +AddConst.applyOp(uint256) +CSETest.test_identity(uint256,uint256) +Identity.identity(uint256) diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index bc5df486f..d113c3a6b 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -80,19 +80,13 @@ def foundry(foundry_root_dir: Path | None, tmp_path_factory: TempPathFactory, wo return Foundry(session_foundry_root) -DEPENDENCY_TESTS: Final = [ - ['ArithmeticContract.add(uint256,uint256)', 'ArithmeticCallTest.test_double_add(uint256,uint256)'], - ['Identity.identity(uint256)'], - ['Identity.identity(uint256)', 'Identity.applyOp(uint256)'], - ['Identity.identity(uint256)', 'Identity.applyOp(uint256)', 'CSETest.test_identity(uint256,uint256)'], - ['AddConst.applyOp(uint256)'], - ['AddConst.applyOp(uint256)', 'CSETest.test_add_const(uint256, uint256)'], -] - - -@pytest.mark.parametrize('test', DEPENDENCY_TESTS) -def test_foundry_dependency_manual( - test: list[str], +ALL_DEPENDENCY_TESTS: Final = tuple((TEST_DATA_DIR / 'foundry-dependency-all').read_text().splitlines()) +SKIPPED_DEPENDENCY_TESTS: Final = set((TEST_DATA_DIR / 'foundry-dependency-skip').read_text().splitlines()) + + +@pytest.mark.parametrize('test_id', ALL_DEPENDENCY_TESTS) +def test_foundry_dependency_automated( + test_id: str, foundry: Foundry, bug_report: BugReport | None, server: KoreServer, @@ -102,35 +96,38 @@ def test_foundry_dependency_manual( if no_use_booster: pytest.skip() - # Tests require at least one ifunctions - assert len(test) > 0 + if test_id in SKIPPED_DEPENDENCY_TESTS: + pytest.skip() if bug_report is not None: server._populate_bug_report(bug_report) - for i in range(0, len(test) - 1): - - dependencies = test[0 : i - 1] if i > 0 else [] - - foundry_prove( - foundry, - tests=[(test[i], None)], - prove_options=ProveOptions( - max_depth=10000, - max_iterations=100, - break_on_calls=False, - fail_fast=False, - bug_report=bug_report, - ), - rpc_options=RPCOptions( - port=server.port, - ), - include_summaries=[(dependency, None) for dependency in dependencies], - ) + prove_options = ProveOptions( + max_iterations=50, + bug_report=bug_report, + cse=True, + fail_fast=False, + workers=2, + ) + cse_prove_options = ProveOptions( + max_iterations=50, + bug_report=bug_report, + cse=True, + fail_fast=False, + workers=2, + ) + + # Execute without cse + foundry_prove( + foundry, + tests=[(test_id, None)], + prove_options=prove_options, + rpc_options=RPCOptions(port=server.port, smt_timeout=500), + ) show_res = foundry_show( foundry, - test=test[-1], + test=test_id, to_module=False, sort_collections=True, omit_unstable_output=True, @@ -141,48 +138,21 @@ def test_foundry_dependency_manual( port=server.port, ) - assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test[-1]}.expected', update=update_expected_output) - - -ALL_DEPENDENCY_TESTS: Final = tuple((TEST_DATA_DIR / 'foundry-dependency-all').read_text().splitlines()) -SKIPPED_DEPENDENCY_TESTS: Final = set((TEST_DATA_DIR / 'foundry-dependency-skip').read_text().splitlines()) - - -@pytest.mark.parametrize('test_id', ALL_DEPENDENCY_TESTS) -def test_foundry_dependency_automated( - test_id: str, - foundry: Foundry, - bug_report: BugReport | None, - server: KoreServer, - update_expected_output: bool, - no_use_booster: bool, -) -> None: - if no_use_booster: - pytest.skip() - - if test_id in SKIPPED_DEPENDENCY_TESTS: - pytest.skip() - - if bug_report is not None: - server._populate_bug_report(bug_report) + assert_or_update_show_output( + show_res, TEST_DATA_DIR / f'show/{test_id}.no-cse.expected', update=update_expected_output + ) + # Execute with cse foundry_prove( foundry, tests=[(test_id, None)], - prove_options=ProveOptions( - max_iterations=50, - bug_report=bug_report, - cse=True, - fail_fast=False, - workers=2, - ), + prove_options=cse_prove_options, rpc_options=RPCOptions( port=server.port, ), - include_summaries=[], ) - show_res = foundry_show( + cse_show_res = foundry_show( foundry, test=test_id, to_module=False, @@ -195,4 +165,6 @@ def test_foundry_dependency_automated( port=server.port, ) - assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test_id}.expected', update=update_expected_output) + assert_or_update_show_output( + cse_show_res, TEST_DATA_DIR / f'show/{test_id}.cse.expected', update=update_expected_output + ) From 2c22a284c25c77f30412b66f3ba021e3943ccc2f Mon Sep 17 00:00:00 2001 From: devops Date: Fri, 8 Mar 2024 12:17:06 +0000 Subject: [PATCH 60/91] Set Version: 0.1.192 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 7e87f1d07..75c34413c 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.191 +0.1.192 diff --git a/pyproject.toml b/pyproject.toml index 802cb6007..88e2a4355 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.191" +version = "0.1.192" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 53c7f38ea..fce47ef0d 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.191' +VERSION: Final = '0.1.192' From cf8b92eccad42ee4b28c43dbc095e9eb19ef56af Mon Sep 17 00:00:00 2001 From: rv-jenkins Date: Thu, 7 Mar 2024 05:57:42 -0700 Subject: [PATCH 61/91] Update dependency: deps/kevm_release (#419) * deps/kevm_release: Set Version 1.0.485 * Set Version: 0.1.188 * Sync Poetry files: kevm-pyk version 1.0.485 * flake.{nix,lock}: update Nix derivations --------- Co-authored-by: devops --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 88e2a4355..998e133b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,4 +1,4 @@ -[build-system] +gir [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" From bc3e3a1570078ce3c7650a846b2b34b41fcfc45c Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Fri, 8 Mar 2024 12:22:52 +0000 Subject: [PATCH 62/91] skipping tests --- src/tests/integration/test-data/foundry-dependency-all | 6 +++--- src/tests/integration/test-data/foundry-dependency-skip | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/tests/integration/test-data/foundry-dependency-all b/src/tests/integration/test-data/foundry-dependency-all index 7dcffa590..871e01142 100644 --- a/src/tests/integration/test-data/foundry-dependency-all +++ b/src/tests/integration/test-data/foundry-dependency-all @@ -2,7 +2,7 @@ ArithmeticCallTest.test_double_add(uint256,uint256) ArithmeticCallTest.test_double_add_double_sub(uint256,uint256) ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256) AddConst.applyOp(uint256) -Identity.applyOp(uint256) -Identity.identity(uint256) CSETest.test_add_const(uint256,uint256) -CSETest.test_identity(uint256,uint256) \ No newline at end of file +CSETest.test_identity(uint256,uint256) +Identity.applyOp(uint256) +Identity.identity(uint256) \ No newline at end of file diff --git a/src/tests/integration/test-data/foundry-dependency-skip b/src/tests/integration/test-data/foundry-dependency-skip index 230f86272..cf13830d2 100644 --- a/src/tests/integration/test-data/foundry-dependency-skip +++ b/src/tests/integration/test-data/foundry-dependency-skip @@ -1,4 +1,5 @@ ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256) AddConst.applyOp(uint256) CSETest.test_identity(uint256,uint256) +CSETest.test_add_const(uint256,uint256) Identity.identity(uint256) From 5855667a3377f380d4e343b670d2953614286b60 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Fri, 8 Mar 2024 12:27:45 +0000 Subject: [PATCH 63/91] correction --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 998e133b5..88e2a4355 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,4 +1,4 @@ -gir [build-system] +[build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" From 22914ec8d594cafe5bcdd55662dd1c9c34be9d11 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Fri, 8 Mar 2024 12:56:31 +0000 Subject: [PATCH 64/91] correction: caller in accounts --- src/kontrol/prove.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kontrol/prove.py b/src/kontrol/prove.py index 0989555a1..96f03ed55 100644 --- a/src/kontrol/prove.py +++ b/src/kontrol/prove.py @@ -688,7 +688,7 @@ def _init_cterm( # The calling contract is assumed to be in the present accounts for non-tests if not (is_test or is_setup or is_constructor or active_symbolik): init_cterm.add_constraint( - mlEqualsFalse( + mlEqualsTrue( KApply( '_in_keys(_)_MAP_Bool_KItem_Map', [KVariable('CALLER_ID', sort=KSort('Int')), init_cterm.cell('ACCOUNTS_CELL')], From cdf793f6558444b79ae7ef7041c1b6de86e74eb1 Mon Sep 17 00:00:00 2001 From: devops Date: Sat, 9 Mar 2024 11:29:30 +0000 Subject: [PATCH 65/91] Set Version: 0.1.193 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 75c34413c..09e8a661e 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.192 +0.1.193 diff --git a/pyproject.toml b/pyproject.toml index 88e2a4355..f03667573 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.192" +version = "0.1.193" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index fce47ef0d..5134ae1a6 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.192' +VERSION: Final = '0.1.193' From fb699ca364d2a120d30d4212e43ed17a0b3ee496 Mon Sep 17 00:00:00 2001 From: devops Date: Sat, 9 Mar 2024 22:27:21 +0000 Subject: [PATCH 66/91] Set Version: 0.1.194 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 09e8a661e..63982f32f 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.193 +0.1.194 diff --git a/pyproject.toml b/pyproject.toml index f03667573..3221e9021 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.193" +version = "0.1.194" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 5134ae1a6..dabc802f1 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.193' +VERSION: Final = '0.1.194' From 653ddac0b89f79433b72d0efd6ecfb6b747c1e6a Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Sat, 9 Mar 2024 22:28:59 +0000 Subject: [PATCH 67/91] removing cbor and hash disabling --- src/tests/integration/test-data/foundry/foundry.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/tests/integration/test-data/foundry/foundry.toml b/src/tests/integration/test-data/foundry/foundry.toml index 379483509..fcb390af6 100644 --- a/src/tests/integration/test-data/foundry/foundry.toml +++ b/src/tests/integration/test-data/foundry/foundry.toml @@ -4,8 +4,4 @@ out = 'out' test = 'test' extra_output = ['storageLayout', 'abi', 'evm.methodIdentifiers', 'evm.deployedBytecode.object', 'devdoc'] rpc_endpoints = { optimism = "https://optimism.alchemyapi.io/v2/...", mainnet = "${RPC_MAINNET}" } - -bytecode_hash = "none" -cbor_metadata = false - ast = true From 071e07952c39f4e65844f1f10a8adf59bb7d5bb9 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Sat, 9 Mar 2024 22:56:27 +0000 Subject: [PATCH 68/91] updating expected output --- .../test-data/show/contracts.k.expected | 1075 +++++++++++++---- .../test-data/show/foundry.k.expected | 96 +- 2 files changed, 943 insertions(+), 228 deletions(-) diff --git a/src/tests/integration/test-data/show/contracts.k.expected b/src/tests/integration/test-data/show/contracts.k.expected index 03fa2484b..25816ac7f 100644 --- a/src/tests/integration/test-data/show/contracts.k.expected +++ b/src/tests/integration/test-data/show/contracts.k.expected @@ -2088,6 +2088,108 @@ module S2KlibZModforgeZSubstdZModsrcZModTestBase-CONTRACT rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTestBase . stdstore ) => 0 ) +endmodule + +module S2KsrcZModcseZModAdd-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KsrcZModcseZModAddContract + + syntax S2KsrcZModcseZModAddContract ::= "S2KsrcZModcseZModAdd" [symbol(""), klabel(contract_src%cse%Add)] + + + + rule ( #initBytecode ( S2KsrcZModcseZModAdd ) => #parseByteStack ( "0x608060405234801561001057600080fd5b506101d8806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c0a0cdc414610030575b600080fd5b61004361003e366004610141565b610055565b60405190815260200160405180910390f35b600080546040516369abffa160e01b8152600481018490526001600160a01b03909116906369abffa190602401602060405180830381865afa15801561009f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c39190610163565b6000546040516369abffa160e01b8152600481018690526001600160a01b03909116906369abffa190602401602060405180830381865afa15801561010c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101309190610163565b61013a919061017c565b9392505050565b6000806040838503121561015457600080fd5b50508035926020909101359150565b60006020828403121561017557600080fd5b5051919050565b6000821982111561019d57634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220255aa07fd1b51557b137d50699622aa9a84eb138b4d94034d49c62dc56667c6064736f6c634300080d0033" ) ) + + + syntax Field ::= S2KsrcZModcseZModAddField + + syntax S2KsrcZModcseZModAddField ::= "id" [symbol(""), klabel(field_src%cse%Add_id)] + + rule ( #loc ( S2KsrcZModcseZModAdd . id ) => 0 ) + + + syntax Bytes ::= S2KsrcZModcseZModAddContract "." S2KsrcZModcseZModAddMethod [function, symbol(""), klabel(method_src%cse%Add)] + + syntax S2KsrcZModcseZModAddMethod ::= "S2KapplyOp" "(" Int ":" "uint256" "," Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%Add_S2KapplyOp_uint256_uint256)] + + rule ( S2KsrcZModcseZModAdd . S2KapplyOp ( V0_x : uint256 , V1_y : uint256 ) => #abiCallData ( "applyOp" , ( #uint256 ( V0_x ) , ( #uint256 ( V1_y ) , .TypedArgs ) ) ) ) + ensures ( #rangeUInt ( 256 , V0_x ) + andBool ( #rangeUInt ( 256 , V1_y ) + )) + + + rule ( selector ( "applyOp(uint256,uint256)" ) => 3231763908 ) + + +endmodule + +module S2KsrcZModcseZModMultiply-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KsrcZModcseZModMultiplyContract + + syntax S2KsrcZModcseZModMultiplyContract ::= "S2KsrcZModcseZModMultiply" [symbol(""), klabel(contract_src%cse%Multiply)] + + + + rule ( #initBytecode ( S2KsrcZModcseZModMultiply ) => #parseByteStack ( "0x608060405234801561001057600080fd5b50610182806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c0a0cdc414610030575b600080fd5b61004361003e3660046100ec565b610055565b60405190815260200160405180910390f35b60005b81156100e657600054604051633028337160e21b815260048101839052602481018590526001600160a01b039091169063c0a0cdc490604401602060405180830381865afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d2919061010e565b9050816100de81610127565b925050610058565b92915050565b600080604083850312156100ff57600080fd5b50508035926020909101359150565b60006020828403121561012057600080fd5b5051919050565b60008161014457634e487b7160e01b600052601160045260246000fd5b50600019019056fea264697066735822122094833dfa56cc057a2ebea370b857a1d49ee28271b6a786fd9bbcc7f5899985c864736f6c634300080d0033" ) ) + + + syntax Field ::= S2KsrcZModcseZModMultiplyField + + syntax S2KsrcZModcseZModMultiplyField ::= "adder" [symbol(""), klabel(field_src%cse%Multiply_adder)] + + rule ( #loc ( S2KsrcZModcseZModMultiply . adder ) => 0 ) + + + syntax Bytes ::= S2KsrcZModcseZModMultiplyContract "." S2KsrcZModcseZModMultiplyMethod [function, symbol(""), klabel(method_src%cse%Multiply)] + + syntax S2KsrcZModcseZModMultiplyMethod ::= "S2KapplyOp" "(" Int ":" "uint256" "," Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%Multiply_S2KapplyOp_uint256_uint256)] + + rule ( S2KsrcZModcseZModMultiply . S2KapplyOp ( V0_x : uint256 , V1_y : uint256 ) => #abiCallData ( "applyOp" , ( #uint256 ( V0_x ) , ( #uint256 ( V1_y ) , .TypedArgs ) ) ) ) + ensures ( #rangeUInt ( 256 , V0_x ) + andBool ( #rangeUInt ( 256 , V1_y ) + )) + + + rule ( selector ( "applyOp(uint256,uint256)" ) => 3231763908 ) + + +endmodule + +module S2KsrcZModcseZModSub-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KsrcZModcseZModSubContract + + syntax S2KsrcZModcseZModSubContract ::= "S2KsrcZModcseZModSub" [symbol(""), klabel(contract_src%cse%Sub)] + + + + rule ( #initBytecode ( S2KsrcZModcseZModSub ) => #parseByteStack ( "0x608060405234801561001057600080fd5b506101d7806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c0a0cdc414610030575b600080fd5b61004361003e366004610141565b610055565b60405190815260200160405180910390f35b600080546040516369abffa160e01b8152600481018490526001600160a01b03909116906369abffa190602401602060405180830381865afa15801561009f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c39190610163565b6000546040516369abffa160e01b8152600481018690526001600160a01b03909116906369abffa190602401602060405180830381865afa15801561010c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101309190610163565b61013a919061017c565b9392505050565b6000806040838503121561015457600080fd5b50508035926020909101359150565b60006020828403121561017557600080fd5b5051919050565b60008282101561019c57634e487b7160e01b600052601160045260246000fd5b50039056fea2646970667358221220ef898e33f32fcc9c450026c16258ae4819141da4cde363b2a65f310ad617735364736f6c634300080d0033" ) ) + + + syntax Field ::= S2KsrcZModcseZModSubField + + syntax S2KsrcZModcseZModSubField ::= "id" [symbol(""), klabel(field_src%cse%Sub_id)] + + rule ( #loc ( S2KsrcZModcseZModSub . id ) => 0 ) + + + syntax Bytes ::= S2KsrcZModcseZModSubContract "." S2KsrcZModcseZModSubMethod [function, symbol(""), klabel(method_src%cse%Sub)] + + syntax S2KsrcZModcseZModSubMethod ::= "S2KapplyOp" "(" Int ":" "uint256" "," Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%Sub_S2KapplyOp_uint256_uint256)] + + rule ( S2KsrcZModcseZModSub . S2KapplyOp ( V0_x : uint256 , V1_y : uint256 ) => #abiCallData ( "applyOp" , ( #uint256 ( V0_x ) , ( #uint256 ( V1_y ) , .TypedArgs ) ) ) ) + ensures ( #rangeUInt ( 256 , V0_x ) + andBool ( #rangeUInt ( 256 , V1_y ) + )) + + + rule ( selector ( "applyOp(uint256,uint256)" ) => 3231763908 ) + + endmodule module S2KtestZModBlockParamsTest-CONTRACT @@ -3543,6 +3645,234 @@ module S2KtestZModBroadcastTest-CONTRACT rule ( selector ( "testDeploy()" ) => 894117685 ) +endmodule + +module S2KtestZModCSETest-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KtestZModCSETestContract + + syntax S2KtestZModCSETestContract ::= "S2KtestZModCSETest" [symbol(""), klabel(contract_test%CSETest)] + + + + rule ( #initBytecode ( S2KtestZModCSETest ) => #parseByteStack ( "0x608060405260078054600160ff199182168117909255600b8054909116909117905534801561002d57600080fd5b506113538061003d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806385226c811161008c578063ba414fa611610066578063ba414fa614610159578063c0bd832414610171578063e20c9f7114610184578063fa7626d41461018c57600080fd5b806385226c8114610134578063916a17c614610149578063b5508aa91461015157600080fd5b80630a9254e4146100d45780630fee29d1146100de5780631ed7831c146100f15780633e5e3c231461010f5780633f7286f41461011757806366d9a9a01461011f575b600080fd5b6100dc610199565b005b6100dc6100ec366004610c23565b610276565b6100f96103e3565b6040516101069190610c45565b60405180910390f35b6100f9610445565b6100f96104a5565b610127610505565b6040516101069190610c92565b61013c6105f4565b6040516101069190610d75565b6101276106c4565b61013c6107aa565b61016161087a565b6040519015158152602001610106565b6100dc61017f366004610c23565b6109a7565b6100f9610b9c565b6007546101619060ff1681565b6040516101a590610bfc565b604051809103906000f0801580156101c1573d6000803e3d6000fd5b50601b80546001600160a01b0319166001600160a01b03929092169190911790556040516101ee90610c09565b604051809103906000f08015801561020a573d6000803e3d6000fd5b50601c80546001600160a01b0319166001600160a01b039290921691909117905560405161023790610c16565b604051809103906000f080158015610253573d6000803e3d6000fd5b50601d80546001600160a01b0319166001600160a01b0392909216919091179055565b737109709ecfa91a80626ff3989d68f67f5b1dd12d634c63e562600160401b841080156102a65750600160401b83105b6040518263ffffffff1660e01b81526004016102c6911515815260200190565b60006040518083038186803b1580156102de57600080fd5b505afa1580156102f2573d6000803e3d6000fd5b5050601c5460405163e919cf8360e01b8152600481018690526001600160a01b03909116925063e919cf839150602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050601c546040516369abffa160e01b815260048101859052600093506001600160a01b0390911691506369abffa190602401602060405180830381865afa1580156103a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c49190610def565b90506103d08284610e1e565b81146103de576103de610e36565b505050565b6060601480548060200260200160405190810160405280929190818152602001828054801561043b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161041d575b5050505050905090565b6060601680548060200260200160405190810160405280929190818152602001828054801561043b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161041d575050505050905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561043b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161041d575050505050905090565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156105eb5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156105d357602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116105955790505b50505050508152505081526020019060010190610529565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020016000905b828210156105eb57838290600052602060002001805461063790610e4c565b80601f016020809104026020016040519081016040528092919081815260200182805461066390610e4c565b80156106b05780601f10610685576101008083540402835291602001916106b0565b820191906000526020600020905b81548152906001019060200180831161069357829003601f168201915b505050505081526020019060010190610618565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156105eb5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561079257602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116107545790505b505050505081525050815260200190600101906106e8565b60606017805480602002602001604051908101604052809291908181526020016000905b828210156105eb5783829060005260206000200180546107ed90610e4c565b80601f016020809104026020016040519081016040528092919081815260200182805461081990610e4c565b80156108665780601f1061083b57610100808354040283529160200191610866565b820191906000526020600020905b81548152906001019060200180831161084957829003601f168201915b5050505050815260200190600101906107ce565b600754600090610100900460ff161561089c5750600754610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156109a25760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909161092a917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001610e86565b60408051601f198184030181529082905261094491610eb7565b6000604051808303816000865af19150503d8060008114610981576040519150601f19603f3d011682016040523d82523d6000602084013e610986565b606091505b509150508080602001905181019061099e9190610ed3565b9150505b919050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d634c63e562600160401b841080156109d75750600160401b83105b6040518263ffffffff1660e01b81526004016109f7911515815260200190565b60006040518083038186803b158015610a0f57600080fd5b505afa158015610a23573d6000803e3d6000fd5b5050601b546040516369abffa160e01b815260048101859052600093506001600160a01b0390911691506369abffa190602401602060405180830381865afa158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a979190610def565b601b546040516369abffa160e01b8152600481018590526001600160a01b03909116906369abffa190602401602060405180830381865afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b049190610def565b601b546040516369abffa160e01b8152600481018790526001600160a01b03909116906369abffa190602401602060405180830381865afa158015610b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b719190610def565b610b7b9190610e1e565b610b859190610e1e565b9050610b92826002610efc565b6103d09084610e1e565b6060601380548060200260200160405190810160405280929190818152602001828054801561043b576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161041d575050505050905090565b61015280610f1c83390190565b61010e8061106e83390190565b6101a28061117c83390190565b60008060408385031215610c3657600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015610c865783516001600160a01b031683529284019291840191600101610c61565b50909695505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b84811015610d3657898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b80831015610d215783516001600160e01b0319168252928b019260019290920191908b0190610cf7565b50978a01979550505091870191600101610cba565b50919998505050505050505050565b60005b83811015610d60578181015183820152602001610d48565b83811115610d6f576000848401525b50505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610de257878503603f1901845281518051808752610dc3818989018a8501610d45565b601f01601f191695909501860194509285019290850190600101610d9c565b5092979650505050505050565b600060208284031215610e0157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610e3157610e31610e08565b500190565b634e487b7160e01b600052600160045260246000fd5b600181811c90821680610e6057607f821691505b602082108103610e8057634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160e01b0319831681528151600090610ea9816004850160208701610d45565b919091016004019392505050565b60008251610ec9818460208701610d45565b9190910192915050565b600060208284031215610ee557600080fd5b81518015158114610ef557600080fd5b9392505050565b6000816000190483118215151615610f1657610f16610e08565b50029056fe608060405234801561001057600080fd5b50610132806100206000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806369abffa1146037578063ac37eebb146058575b600080fd5b6046604236600460cc565b6066565b60405190815260200160405180910390f35b6046606336600460cc565b90565b60405163ac37eebb60e01b815260048101829052600090309063ac37eebb90602401602060405180830381865afa15801560a4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019060c6919060e4565b92915050565b60006020828403121560dd57600080fd5b5035919050565b60006020828403121560f557600080fd5b505191905056fea264697066735822122085dc6531a43f9702599187b195a7e4fc7558a028880123d0084dd21342cbc3b364736f6c634300080d0033608060405234801561001057600080fd5b5060ef8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806369abffa1146037578063e919cf83146058575b600080fd5b60466042366004607c565b606a565b60405190815260200160405180910390f35b60686063366004607c565b600055565b005b60008054607690836094565b92915050565b600060208284031215608d57600080fd5b5035919050565b6000821982111560b457634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220bbb44c8786d0d78cb2d01361724b7a14ba43783ec666675cf558e4e2f6c05dd764736f6c634300080d0033608060405234801561001057600080fd5b50610182806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c0a0cdc414610030575b600080fd5b61004361003e3660046100ec565b610055565b60405190815260200160405180910390f35b60005b81156100e657600054604051633028337160e21b815260048101839052602481018590526001600160a01b039091169063c0a0cdc490604401602060405180830381865afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d2919061010e565b9050816100de81610127565b925050610058565b92915050565b600080604083850312156100ff57600080fd5b50508035926020909101359150565b60006020828403121561012057600080fd5b5051919050565b60008161014457634e487b7160e01b600052601160045260246000fd5b50600019019056fea264697066735822122094833dfa56cc057a2ebea370b857a1d49ee28271b6a786fd9bbcc7f5899985c864736f6c634300080d0033a2646970667358221220070b6411a263e7b0d86534edf9284a1322fe2645796c1bb0620201e38f9317af64736f6c634300080d0033" ) ) + + + syntax Field ::= S2KtestZModCSETestField + + syntax S2KtestZModCSETestField ::= "stdstore" [symbol(""), klabel(field_test%CSETest_stdstore)] + + syntax S2KtestZModCSETestField ::= "IS_TEST" [symbol(""), klabel(field_test%CSETest_IS_TEST)] + + syntax S2KtestZModCSETestField ::= "_failed" [symbol(""), klabel(field_test%CSETest__failed)] + + syntax S2KtestZModCSETestField ::= "stdChainsInitialized" [symbol(""), klabel(field_test%CSETest_stdChainsInitialized)] + + syntax S2KtestZModCSETestField ::= "chains" [symbol(""), klabel(field_test%CSETest_chains)] + + syntax S2KtestZModCSETestField ::= "defaultRpcUrls" [symbol(""), klabel(field_test%CSETest_defaultRpcUrls)] + + syntax S2KtestZModCSETestField ::= "idToAlias" [symbol(""), klabel(field_test%CSETest_idToAlias)] + + syntax S2KtestZModCSETestField ::= "fallbackToDefaultRpcUrls" [symbol(""), klabel(field_test%CSETest_fallbackToDefaultRpcUrls)] + + syntax S2KtestZModCSETestField ::= "gasMeteringOff" [symbol(""), klabel(field_test%CSETest_gasMeteringOff)] + + syntax S2KtestZModCSETestField ::= "_excludedContracts" [symbol(""), klabel(field_test%CSETest__excludedContracts)] + + syntax S2KtestZModCSETestField ::= "_excludedSenders" [symbol(""), klabel(field_test%CSETest__excludedSenders)] + + syntax S2KtestZModCSETestField ::= "_targetedContracts" [symbol(""), klabel(field_test%CSETest__targetedContracts)] + + syntax S2KtestZModCSETestField ::= "_targetedSenders" [symbol(""), klabel(field_test%CSETest__targetedSenders)] + + syntax S2KtestZModCSETestField ::= "_excludedArtifacts" [symbol(""), klabel(field_test%CSETest__excludedArtifacts)] + + syntax S2KtestZModCSETestField ::= "_targetedArtifacts" [symbol(""), klabel(field_test%CSETest__targetedArtifacts)] + + syntax S2KtestZModCSETestField ::= "_targetedArtifactSelectors" [symbol(""), klabel(field_test%CSETest__targetedArtifactSelectors)] + + syntax S2KtestZModCSETestField ::= "_targetedSelectors" [symbol(""), klabel(field_test%CSETest__targetedSelectors)] + + syntax S2KtestZModCSETestField ::= "i" [symbol(""), klabel(field_test%CSETest_i)] + + syntax S2KtestZModCSETestField ::= "c" [symbol(""), klabel(field_test%CSETest_c)] + + syntax S2KtestZModCSETestField ::= "m" [symbol(""), klabel(field_test%CSETest_m)] + + rule ( #loc ( S2KtestZModCSETest . stdstore ) => 0 ) + + + rule ( #loc ( S2KtestZModCSETest . IS_TEST ) => 7 ) + + + rule ( #loc ( S2KtestZModCSETest . _failed ) => 7 ) + + + rule ( #loc ( S2KtestZModCSETest . stdChainsInitialized ) => 7 ) + + + rule ( #loc ( S2KtestZModCSETest . chains ) => 8 ) + + + rule ( #loc ( S2KtestZModCSETest . defaultRpcUrls ) => 9 ) + + + rule ( #loc ( S2KtestZModCSETest . idToAlias ) => 10 ) + + + rule ( #loc ( S2KtestZModCSETest . fallbackToDefaultRpcUrls ) => 11 ) + + + rule ( #loc ( S2KtestZModCSETest . gasMeteringOff ) => 11 ) + + + rule ( #loc ( S2KtestZModCSETest . _excludedContracts ) => 19 ) + + + rule ( #loc ( S2KtestZModCSETest . _excludedSenders ) => 20 ) + + + rule ( #loc ( S2KtestZModCSETest . _targetedContracts ) => 21 ) + + + rule ( #loc ( S2KtestZModCSETest . _targetedSenders ) => 22 ) + + + rule ( #loc ( S2KtestZModCSETest . _excludedArtifacts ) => 23 ) + + + rule ( #loc ( S2KtestZModCSETest . _targetedArtifacts ) => 24 ) + + + rule ( #loc ( S2KtestZModCSETest . _targetedArtifactSelectors ) => 25 ) + + + rule ( #loc ( S2KtestZModCSETest . _targetedSelectors ) => 26 ) + + + rule ( #loc ( S2KtestZModCSETest . i ) => 27 ) + + + rule ( #loc ( S2KtestZModCSETest . c ) => 28 ) + + + rule ( #loc ( S2KtestZModCSETest . m ) => 29 ) + + + syntax Bytes ::= S2KtestZModCSETestContract "." S2KtestZModCSETestMethod [function, symbol(""), klabel(method_test%CSETest)] + + syntax S2KtestZModCSETestMethod ::= "S2KISZUndTEST" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KISZUndTEST_)] + + syntax S2KtestZModCSETestMethod ::= "S2KexcludeArtifacts" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KexcludeArtifacts_)] + + syntax S2KtestZModCSETestMethod ::= "S2KexcludeContracts" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KexcludeContracts_)] + + syntax S2KtestZModCSETestMethod ::= "S2KexcludeSenders" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KexcludeSenders_)] + + syntax S2KtestZModCSETestMethod ::= "S2Kfailed" "(" ")" [symbol(""), klabel(method_test%CSETest_S2Kfailed_)] + + syntax S2KtestZModCSETestMethod ::= "S2KsetUp" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KsetUp_)] + + syntax S2KtestZModCSETestMethod ::= "S2KtargetArtifactSelectors" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KtargetArtifactSelectors_)] + + syntax S2KtestZModCSETestMethod ::= "S2KtargetArtifacts" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KtargetArtifacts_)] + + syntax S2KtestZModCSETestMethod ::= "S2KtargetContracts" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KtargetContracts_)] + + syntax S2KtestZModCSETestMethod ::= "S2KtargetSelectors" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KtargetSelectors_)] + + syntax S2KtestZModCSETestMethod ::= "S2KtargetSenders" "(" ")" [symbol(""), klabel(method_test%CSETest_S2KtargetSenders_)] + + syntax S2KtestZModCSETestMethod ::= "S2KtestZUndaddZUndconst" "(" Int ":" "uint256" "," Int ":" "uint256" ")" [symbol(""), klabel(method_test%CSETest_S2KtestZUndaddZUndconst_uint256_uint256)] + + syntax S2KtestZModCSETestMethod ::= "S2KtestZUndidentity" "(" Int ":" "uint256" "," Int ":" "uint256" ")" [symbol(""), klabel(method_test%CSETest_S2KtestZUndidentity_uint256_uint256)] + + rule ( S2KtestZModCSETest . S2KISZUndTEST ( ) => #abiCallData ( "IS_TEST" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KexcludeArtifacts ( ) => #abiCallData ( "excludeArtifacts" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KexcludeContracts ( ) => #abiCallData ( "excludeContracts" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KexcludeSenders ( ) => #abiCallData ( "excludeSenders" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2Kfailed ( ) => #abiCallData ( "failed" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KsetUp ( ) => #abiCallData ( "setUp" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KtargetArtifactSelectors ( ) => #abiCallData ( "targetArtifactSelectors" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KtargetArtifacts ( ) => #abiCallData ( "targetArtifacts" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KtargetContracts ( ) => #abiCallData ( "targetContracts" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KtargetSelectors ( ) => #abiCallData ( "targetSelectors" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KtargetSenders ( ) => #abiCallData ( "targetSenders" , .TypedArgs ) ) + + + rule ( S2KtestZModCSETest . S2KtestZUndaddZUndconst ( V0_x : uint256 , V1_y : uint256 ) => #abiCallData ( "test_add_const" , ( #uint256 ( V0_x ) , ( #uint256 ( V1_y ) , .TypedArgs ) ) ) ) + ensures ( #rangeUInt ( 256 , V0_x ) + andBool ( #rangeUInt ( 256 , V1_y ) + )) + + + rule ( S2KtestZModCSETest . S2KtestZUndidentity ( V0_x : uint256 , V1_y : uint256 ) => #abiCallData ( "test_identity" , ( #uint256 ( V0_x ) , ( #uint256 ( V1_y ) , .TypedArgs ) ) ) ) + ensures ( #rangeUInt ( 256 , V0_x ) + andBool ( #rangeUInt ( 256 , V1_y ) + )) + + + rule ( selector ( "IS_TEST()" ) => 4202047188 ) + + + rule ( selector ( "excludeArtifacts()" ) => 3041954473 ) + + + rule ( selector ( "excludeContracts()" ) => 3792478065 ) + + + rule ( selector ( "excludeSenders()" ) => 517440284 ) + + + rule ( selector ( "failed()" ) => 3124842406 ) + + + rule ( selector ( "setUp()" ) => 177362148 ) + + + rule ( selector ( "targetArtifactSelectors()" ) => 1725540768 ) + + + rule ( selector ( "targetArtifacts()" ) => 2233625729 ) + + + rule ( selector ( "targetContracts()" ) => 1064470260 ) + + + rule ( selector ( "targetSelectors()" ) => 2439649222 ) + + + rule ( selector ( "targetSenders()" ) => 1046363171 ) + + + rule ( selector ( "test_add_const(uint256,uint256)" ) => 267266513 ) + + + rule ( selector ( "test_identity(uint256,uint256)" ) => 3233645348 ) + + endmodule module S2KsrcZModConstants-CONTRACT @@ -10063,57 +10393,109 @@ module S2KtestZModNoImport-CONTRACT endmodule -module S2KsrcZModOwnerUpOnly-CONTRACT +module S2KsrcZModcseZModUIntBinaryOp-CONTRACT imports public FOUNDRY - syntax Contract ::= S2KsrcZModOwnerUpOnlyContract + syntax Contract ::= S2KsrcZModcseZModUIntBinaryOpContract - syntax S2KsrcZModOwnerUpOnlyContract ::= "S2KsrcZModOwnerUpOnly" [symbol(""), klabel(contract_src%OwnerUpOnly)] + syntax S2KsrcZModcseZModUIntBinaryOpContract ::= "S2KsrcZModcseZModUIntBinaryOp" [symbol(""), klabel(contract_src%cse%UIntBinaryOp)] - rule ( #initBytecode ( S2KsrcZModOwnerUpOnly ) => #parseByteStack ( "0x60a060405234801561001057600080fd5b5033608052608051610166610035600039600081816067015260b601526101666000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306661abd146100465780638da5cb5b14610062578063d09de08a146100a1575b600080fd5b61004f60005481565b6040519081526020015b60405180910390f35b6100897f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610059565b6100a96100ab565b005b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100f3576040516282b42960e81b815260040160405180910390fd5b60008054908061010283610109565b9190505550565b60006001820161012957634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d97d79ce6005dfff95fc88f1bd8d0c967afa52d3d922a5bd033da4faf88f5ec264736f6c634300080d0033" ) ) + rule ( #initBytecode ( S2KsrcZModcseZModUIntBinaryOp ) => #parseByteStack ( "0x" ) ) - syntax Field ::= S2KsrcZModOwnerUpOnlyField + syntax Bytes ::= S2KsrcZModcseZModUIntBinaryOpContract "." S2KsrcZModcseZModUIntBinaryOpMethod [function, symbol(""), klabel(method_src%cse%UIntBinaryOp)] - syntax S2KsrcZModOwnerUpOnlyField ::= "count" [symbol(""), klabel(field_src%OwnerUpOnly_count)] + syntax S2KsrcZModcseZModUIntBinaryOpMethod ::= "S2KapplyOp" "(" Int ":" "uint256" "," Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%UIntBinaryOp_S2KapplyOp_uint256_uint256)] - rule ( #loc ( S2KsrcZModOwnerUpOnly . count ) => 0 ) + rule ( S2KsrcZModcseZModUIntBinaryOp . S2KapplyOp ( V0_x : uint256 , V1_y : uint256 ) => #abiCallData ( "applyOp" , ( #uint256 ( V0_x ) , ( #uint256 ( V1_y ) , .TypedArgs ) ) ) ) + ensures ( #rangeUInt ( 256 , V0_x ) + andBool ( #rangeUInt ( 256 , V1_y ) + )) - syntax Bytes ::= S2KsrcZModOwnerUpOnlyContract "." S2KsrcZModOwnerUpOnlyMethod [function, symbol(""), klabel(method_src%OwnerUpOnly)] - - syntax S2KsrcZModOwnerUpOnlyMethod ::= "S2Kcount" "(" ")" [symbol(""), klabel(method_src%OwnerUpOnly_S2Kcount_)] + rule ( selector ( "applyOp(uint256,uint256)" ) => 3231763908 ) + + +endmodule + +module S2KsrcZModcseZModUIntUnaryOp-CONTRACT + imports public FOUNDRY - syntax S2KsrcZModOwnerUpOnlyMethod ::= "S2Kincrement" "(" ")" [symbol(""), klabel(method_src%OwnerUpOnly_S2Kincrement_)] + syntax Contract ::= S2KsrcZModcseZModUIntUnaryOpContract - syntax S2KsrcZModOwnerUpOnlyMethod ::= "S2Kowner" "(" ")" [symbol(""), klabel(method_src%OwnerUpOnly_S2Kowner_)] + syntax S2KsrcZModcseZModUIntUnaryOpContract ::= "S2KsrcZModcseZModUIntUnaryOp" [symbol(""), klabel(contract_src%cse%UIntUnaryOp)] - rule ( S2KsrcZModOwnerUpOnly . S2Kcount ( ) => #abiCallData ( "count" , .TypedArgs ) ) - rule ( S2KsrcZModOwnerUpOnly . S2Kincrement ( ) => #abiCallData ( "increment" , .TypedArgs ) ) + rule ( #initBytecode ( S2KsrcZModcseZModUIntUnaryOp ) => #parseByteStack ( "0x" ) ) - rule ( S2KsrcZModOwnerUpOnly . S2Kowner ( ) => #abiCallData ( "owner" , .TypedArgs ) ) - + syntax Bytes ::= S2KsrcZModcseZModUIntUnaryOpContract "." S2KsrcZModcseZModUIntUnaryOpMethod [function, symbol(""), klabel(method_src%cse%UIntUnaryOp)] - rule ( selector ( "count()" ) => 107354813 ) - + syntax S2KsrcZModcseZModUIntUnaryOpMethod ::= "S2KapplyOp" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%UIntUnaryOp_S2KapplyOp_uint256)] - rule ( selector ( "increment()" ) => 3500007562 ) + rule ( S2KsrcZModcseZModUIntUnaryOp . S2KapplyOp ( V0_x : uint256 ) => #abiCallData ( "applyOp" , ( #uint256 ( V0_x ) , .TypedArgs ) ) ) + ensures #rangeUInt ( 256 , V0_x ) - rule ( selector ( "owner()" ) => 2376452955 ) + rule ( selector ( "applyOp(uint256)" ) => 1772879777 ) endmodule -module S2KtestZModOwnerUpOnlyTest-CONTRACT +module S2KsrcZModOwnerUpOnly-CONTRACT imports public FOUNDRY - syntax Contract ::= S2KtestZModOwnerUpOnlyTestContract + syntax Contract ::= S2KsrcZModOwnerUpOnlyContract + + syntax S2KsrcZModOwnerUpOnlyContract ::= "S2KsrcZModOwnerUpOnly" [symbol(""), klabel(contract_src%OwnerUpOnly)] + + + + rule ( #initBytecode ( S2KsrcZModOwnerUpOnly ) => #parseByteStack ( "0x60a060405234801561001057600080fd5b5033608052608051610166610035600039600081816067015260b601526101666000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306661abd146100465780638da5cb5b14610062578063d09de08a146100a1575b600080fd5b61004f60005481565b6040519081526020015b60405180910390f35b6100897f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610059565b6100a96100ab565b005b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100f3576040516282b42960e81b815260040160405180910390fd5b60008054908061010283610109565b9190505550565b60006001820161012957634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220d97d79ce6005dfff95fc88f1bd8d0c967afa52d3d922a5bd033da4faf88f5ec264736f6c634300080d0033" ) ) + + + syntax Field ::= S2KsrcZModOwnerUpOnlyField + + syntax S2KsrcZModOwnerUpOnlyField ::= "count" [symbol(""), klabel(field_src%OwnerUpOnly_count)] + + rule ( #loc ( S2KsrcZModOwnerUpOnly . count ) => 0 ) + + + syntax Bytes ::= S2KsrcZModOwnerUpOnlyContract "." S2KsrcZModOwnerUpOnlyMethod [function, symbol(""), klabel(method_src%OwnerUpOnly)] + + syntax S2KsrcZModOwnerUpOnlyMethod ::= "S2Kcount" "(" ")" [symbol(""), klabel(method_src%OwnerUpOnly_S2Kcount_)] + + syntax S2KsrcZModOwnerUpOnlyMethod ::= "S2Kincrement" "(" ")" [symbol(""), klabel(method_src%OwnerUpOnly_S2Kincrement_)] + + syntax S2KsrcZModOwnerUpOnlyMethod ::= "S2Kowner" "(" ")" [symbol(""), klabel(method_src%OwnerUpOnly_S2Kowner_)] + + rule ( S2KsrcZModOwnerUpOnly . S2Kcount ( ) => #abiCallData ( "count" , .TypedArgs ) ) + + + rule ( S2KsrcZModOwnerUpOnly . S2Kincrement ( ) => #abiCallData ( "increment" , .TypedArgs ) ) + + + rule ( S2KsrcZModOwnerUpOnly . S2Kowner ( ) => #abiCallData ( "owner" , .TypedArgs ) ) + + + rule ( selector ( "count()" ) => 107354813 ) + + + rule ( selector ( "increment()" ) => 3500007562 ) + + + rule ( selector ( "owner()" ) => 2376452955 ) + + +endmodule + +module S2KtestZModOwnerUpOnlyTest-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KtestZModOwnerUpOnlyTestContract syntax S2KtestZModOwnerUpOnlyTestContract ::= "S2KtestZModOwnerUpOnlyTest" [symbol(""), klabel(contract_test%OwnerUpOnlyTest)] @@ -14796,189 +15178,6 @@ module S2KtestZModSymbolicStore-CONTRACT rule ( #loc ( S2KtestZModSymbolicStore . testNumber ) => 0 ) -endmodule - -module S2KlibZModforgeZSubstdZModsrcZModTest-CONTRACT - imports public FOUNDRY - - syntax Contract ::= S2KlibZModforgeZSubstdZModsrcZModTestContract - - syntax S2KlibZModforgeZSubstdZModsrcZModTestContract ::= "S2KlibZModforgeZSubstdZModsrcZModTest" [symbol(""), klabel(contract_lib%forge-std%src%Test)] - - - - rule ( #initBytecode ( S2KlibZModforgeZSubstdZModsrcZModTest ) => #parseByteStack ( "0x" ) ) - - - syntax Field ::= S2KlibZModforgeZSubstdZModsrcZModTestField - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "stdstore" [symbol(""), klabel(field_lib%forge-std%src%Test_stdstore)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "IS_TEST" [symbol(""), klabel(field_lib%forge-std%src%Test_IS_TEST)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_failed" [symbol(""), klabel(field_lib%forge-std%src%Test__failed)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "stdChainsInitialized" [symbol(""), klabel(field_lib%forge-std%src%Test_stdChainsInitialized)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "chains" [symbol(""), klabel(field_lib%forge-std%src%Test_chains)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "defaultRpcUrls" [symbol(""), klabel(field_lib%forge-std%src%Test_defaultRpcUrls)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "idToAlias" [symbol(""), klabel(field_lib%forge-std%src%Test_idToAlias)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "fallbackToDefaultRpcUrls" [symbol(""), klabel(field_lib%forge-std%src%Test_fallbackToDefaultRpcUrls)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "gasMeteringOff" [symbol(""), klabel(field_lib%forge-std%src%Test_gasMeteringOff)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedContracts" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedContracts)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedSenders" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedSenders)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedContracts" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedContracts)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedSenders" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedSenders)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedArtifacts" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedArtifacts)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedArtifacts" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedArtifacts)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedArtifactSelectors" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedArtifactSelectors)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedSelectors" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedSelectors)] - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . stdstore ) => 0 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . IS_TEST ) => 7 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _failed ) => 7 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . stdChainsInitialized ) => 7 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . chains ) => 8 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . defaultRpcUrls ) => 9 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . idToAlias ) => 10 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . fallbackToDefaultRpcUrls ) => 11 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . gasMeteringOff ) => 11 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedContracts ) => 19 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedSenders ) => 20 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedContracts ) => 21 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedSenders ) => 22 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedArtifacts ) => 23 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedArtifacts ) => 24 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedArtifactSelectors ) => 25 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedSelectors ) => 26 ) - - - syntax Bytes ::= S2KlibZModforgeZSubstdZModsrcZModTestContract "." S2KlibZModforgeZSubstdZModsrcZModTestMethod [function, symbol(""), klabel(method_lib%forge-std%src%Test)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KISZUndTEST" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KISZUndTEST_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeArtifacts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeArtifacts_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeContracts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeContracts_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeSenders" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeSenders_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2Kfailed" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2Kfailed_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetArtifactSelectors" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetArtifactSelectors_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetArtifacts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetArtifacts_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetContracts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetContracts_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetSelectors" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetSelectors_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetSenders" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetSenders_)] - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KISZUndTEST ( ) => #abiCallData ( "IS_TEST" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeArtifacts ( ) => #abiCallData ( "excludeArtifacts" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeContracts ( ) => #abiCallData ( "excludeContracts" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeSenders ( ) => #abiCallData ( "excludeSenders" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2Kfailed ( ) => #abiCallData ( "failed" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetArtifactSelectors ( ) => #abiCallData ( "targetArtifactSelectors" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetArtifacts ( ) => #abiCallData ( "targetArtifacts" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetContracts ( ) => #abiCallData ( "targetContracts" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetSelectors ( ) => #abiCallData ( "targetSelectors" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetSenders ( ) => #abiCallData ( "targetSenders" , .TypedArgs ) ) - - - rule ( selector ( "IS_TEST()" ) => 4202047188 ) - - - rule ( selector ( "excludeArtifacts()" ) => 3041954473 ) - - - rule ( selector ( "excludeContracts()" ) => 3792478065 ) - - - rule ( selector ( "excludeSenders()" ) => 517440284 ) - - - rule ( selector ( "failed()" ) => 3124842406 ) - - - rule ( selector ( "targetArtifactSelectors()" ) => 1725540768 ) - - - rule ( selector ( "targetArtifacts()" ) => 2233625729 ) - - - rule ( selector ( "targetContracts()" ) => 1064470260 ) - - - rule ( selector ( "targetSelectors()" ) => 2439649222 ) - - - rule ( selector ( "targetSenders()" ) => 1046363171 ) - - endmodule module S2KsrcZModTestNumber-CONTRACT @@ -16422,39 +16621,146 @@ module S2KtestZModUintTypeTest-CONTRACT endmodule -module S2KlibZModforgeZSubstdZModsrcZModVm-CONTRACT +module S2KsrcZModcseZModAddConst-CONTRACT imports public FOUNDRY - syntax Contract ::= S2KlibZModforgeZSubstdZModsrcZModVmContract + syntax Contract ::= S2KsrcZModcseZModAddConstContract - syntax S2KlibZModforgeZSubstdZModsrcZModVmContract ::= "S2KlibZModforgeZSubstdZModsrcZModVm" [symbol(""), klabel(contract_lib%forge-std%src%Vm)] + syntax S2KsrcZModcseZModAddConstContract ::= "S2KsrcZModcseZModAddConst" [symbol(""), klabel(contract_src%cse%AddConst)] - rule ( #initBytecode ( S2KlibZModforgeZSubstdZModsrcZModVm ) => #parseByteStack ( "0x" ) ) + rule ( #initBytecode ( S2KsrcZModcseZModAddConst ) => #parseByteStack ( "0x608060405234801561001057600080fd5b5060ef8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806369abffa1146037578063e919cf83146058575b600080fd5b60466042366004607c565b606a565b60405190815260200160405180910390f35b60686063366004607c565b600055565b005b60008054607690836094565b92915050565b600060208284031215608d57600080fd5b5035919050565b6000821982111560b457634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220bbb44c8786d0d78cb2d01361724b7a14ba43783ec666675cf558e4e2f6c05dd764736f6c634300080d0033" ) ) - syntax Bytes ::= S2KlibZModforgeZSubstdZModsrcZModVmContract "." S2KlibZModforgeZSubstdZModsrcZModVmMethod [function, symbol(""), klabel(method_lib%forge-std%src%Vm)] + syntax Field ::= S2KsrcZModcseZModAddConstField - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kaccesses" "(" Int ":" "address" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kaccesses_address)] + syntax S2KsrcZModcseZModAddConstField ::= "c" [symbol(""), klabel(field_src%cse%AddConst_c)] - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2KactiveFork" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2KactiveFork_)] + rule ( #loc ( S2KsrcZModcseZModAddConst . c ) => 0 ) + - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kaddr" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kaddr_uint256)] + syntax Bytes ::= S2KsrcZModcseZModAddConstContract "." S2KsrcZModcseZModAddConstMethod [function, symbol(""), klabel(method_src%cse%AddConst)] - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2KallowCheatcodes" "(" Int ":" "address" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2KallowCheatcodes_address)] + syntax S2KsrcZModcseZModAddConstMethod ::= "S2KapplyOp" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%AddConst_S2KapplyOp_uint256)] - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kassume" "(" Int ":" "bool" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kassume_bool)] + syntax S2KsrcZModcseZModAddConstMethod ::= "S2KsetConst" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%AddConst_S2KsetConst_uint256)] - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbreakpoint" "(" String ":" "string" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbreakpoint_string)] + rule ( S2KsrcZModcseZModAddConst . S2KapplyOp ( V0_x : uint256 ) => #abiCallData ( "applyOp" , ( #uint256 ( V0_x ) , .TypedArgs ) ) ) + ensures #rangeUInt ( 256 , V0_x ) + - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbreakpoint" "(" String ":" "string" "," Int ":" "bool" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbreakpoint_string_bool)] + rule ( S2KsrcZModcseZModAddConst . S2KsetConst ( V0_x : uint256 ) => #abiCallData ( "setConst" , ( #uint256 ( V0_x ) , .TypedArgs ) ) ) + ensures #rangeUInt ( 256 , V0_x ) + - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbroadcast" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbroadcast_)] + rule ( selector ( "applyOp(uint256)" ) => 1772879777 ) + - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbroadcast" "(" Int ":" "address" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbroadcast_address)] + rule ( selector ( "setConst(uint256)" ) => 3910782851 ) + + +endmodule + +module S2KsrcZModcseZModIdentity-CONTRACT + imports public FOUNDRY - syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbroadcast" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbroadcast_uint256)] + syntax Contract ::= S2KsrcZModcseZModIdentityContract + + syntax S2KsrcZModcseZModIdentityContract ::= "S2KsrcZModcseZModIdentity" [symbol(""), klabel(contract_src%cse%Identity)] + + + + rule ( #initBytecode ( S2KsrcZModcseZModIdentity ) => #parseByteStack ( "0x608060405234801561001057600080fd5b50610132806100206000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806369abffa1146037578063ac37eebb146058575b600080fd5b6046604236600460cc565b6066565b60405190815260200160405180910390f35b6046606336600460cc565b90565b60405163ac37eebb60e01b815260048101829052600090309063ac37eebb90602401602060405180830381865afa15801560a4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019060c6919060e4565b92915050565b60006020828403121560dd57600080fd5b5035919050565b60006020828403121560f557600080fd5b505191905056fea264697066735822122085dc6531a43f9702599187b195a7e4fc7558a028880123d0084dd21342cbc3b364736f6c634300080d0033" ) ) + + + syntax Bytes ::= S2KsrcZModcseZModIdentityContract "." S2KsrcZModcseZModIdentityMethod [function, symbol(""), klabel(method_src%cse%Identity)] + + syntax S2KsrcZModcseZModIdentityMethod ::= "S2KapplyOp" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%Identity_S2KapplyOp_uint256)] + + syntax S2KsrcZModcseZModIdentityMethod ::= "S2Kidentity" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%Identity_S2Kidentity_uint256)] + + rule ( S2KsrcZModcseZModIdentity . S2KapplyOp ( V0_x : uint256 ) => #abiCallData ( "applyOp" , ( #uint256 ( V0_x ) , .TypedArgs ) ) ) + ensures #rangeUInt ( 256 , V0_x ) + + + rule ( S2KsrcZModcseZModIdentity . S2Kidentity ( V0_x : uint256 ) => #abiCallData ( "identity" , ( #uint256 ( V0_x ) , .TypedArgs ) ) ) + ensures #rangeUInt ( 256 , V0_x ) + + + rule ( selector ( "applyOp(uint256)" ) => 1772879777 ) + + + rule ( selector ( "identity(uint256)" ) => 2889346747 ) + + +endmodule + +module S2KsrcZModcseZModIterate-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KsrcZModcseZModIterateContract + + syntax S2KsrcZModcseZModIterateContract ::= "S2KsrcZModcseZModIterate" [symbol(""), klabel(contract_src%cse%Iterate)] + + + + rule ( #initBytecode ( S2KsrcZModcseZModIterate ) => #parseByteStack ( "0x608060405234801561001057600080fd5b50610194806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806369abffa114610030575b600080fd5b61004361003e36600461012c565b610055565b60405190815260200160405180910390f35b600080546040516369abffa160e01b8152600481018490526001600160a01b03909116906369abffa19082908290602401602060405180830381865afa1580156100a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100c79190610145565b6040518263ffffffff1660e01b81526004016100e591815260200190565b602060405180830381865afa158015610102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101269190610145565b92915050565b60006020828403121561013e57600080fd5b5035919050565b60006020828403121561015757600080fd5b505191905056fea264697066735822122071710c4838d4593193ef27916e016a06543462690ac27d352e55eb968fca6b2564736f6c634300080d0033" ) ) + + + syntax Field ::= S2KsrcZModcseZModIterateField + + syntax S2KsrcZModcseZModIterateField ::= "f" [symbol(""), klabel(field_src%cse%Iterate_f)] + + rule ( #loc ( S2KsrcZModcseZModIterate . f ) => 0 ) + + + syntax Bytes ::= S2KsrcZModcseZModIterateContract "." S2KsrcZModcseZModIterateMethod [function, symbol(""), klabel(method_src%cse%Iterate)] + + syntax S2KsrcZModcseZModIterateMethod ::= "S2KapplyOp" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%Iterate_S2KapplyOp_uint256)] + + rule ( S2KsrcZModcseZModIterate . S2KapplyOp ( V0_x : uint256 ) => #abiCallData ( "applyOp" , ( #uint256 ( V0_x ) , .TypedArgs ) ) ) + ensures #rangeUInt ( 256 , V0_x ) + + + rule ( selector ( "applyOp(uint256)" ) => 1772879777 ) + + +endmodule + +module S2KlibZModforgeZSubstdZModsrcZModVm-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KlibZModforgeZSubstdZModsrcZModVmContract + + syntax S2KlibZModforgeZSubstdZModsrcZModVmContract ::= "S2KlibZModforgeZSubstdZModsrcZModVm" [symbol(""), klabel(contract_lib%forge-std%src%Vm)] + + + + rule ( #initBytecode ( S2KlibZModforgeZSubstdZModsrcZModVm ) => #parseByteStack ( "0x" ) ) + + + syntax Bytes ::= S2KlibZModforgeZSubstdZModsrcZModVmContract "." S2KlibZModforgeZSubstdZModsrcZModVmMethod [function, symbol(""), klabel(method_lib%forge-std%src%Vm)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kaccesses" "(" Int ":" "address" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kaccesses_address)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2KactiveFork" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2KactiveFork_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kaddr" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kaddr_uint256)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2KallowCheatcodes" "(" Int ":" "address" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2KallowCheatcodes_address)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kassume" "(" Int ":" "bool" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kassume_bool)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbreakpoint" "(" String ":" "string" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbreakpoint_string)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbreakpoint" "(" String ":" "string" "," Int ":" "bool" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbreakpoint_string_bool)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbroadcast" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbroadcast_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbroadcast" "(" Int ":" "address" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbroadcast_address)] + + syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2Kbroadcast" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2Kbroadcast_uint256)] syntax S2KlibZModforgeZSubstdZModsrcZModVmMethod ::= "S2KchainId" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_lib%forge-std%src%Vm_S2KchainId_uint256)] @@ -19215,6 +19521,152 @@ module S2KlibZModforgeZSubstdZModsrcZModVmSafe-CONTRACT rule ( selector ( "writeLine(string,string)" ) => 1637714303 ) +endmodule + +module S2KsrcZModcseZModWETH9-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KsrcZModcseZModWETH9Contract + + syntax S2KsrcZModcseZModWETH9Contract ::= "S2KsrcZModcseZModWETH9" [symbol(""), klabel(contract_src%cse%WETH9)] + + + + rule ( #initBytecode ( S2KsrcZModcseZModWETH9 ) => #parseByteStack ( "0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b5061014d565b82805461008690610113565b90600052602060002090601f0160209004810192826100a857600085556100ee565b82601f106100c157805160ff19168380011785556100ee565b828001600101855582156100ee579182015b828111156100ee5782518255916020019190600101906100d3565b506100fa9291506100fe565b5090565b5b808211156100fa57600081556001016100ff565b600181811c9082168061012757607f821691505b60208210810361014757634e487b7160e01b600052602260045260246000fd5b50919050565b6107b78061015c6000396000f3fe60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461015e57806370a082311461018a57806395d89b41146101b7578063a9059cbb146101cc578063d0e30db01461009c578063dd62ed3e146101ec5761009c565b806306fdde03146100a6578063095ea7b3146100d157806318160ddd1461010157806323b872dd1461011e5780632e1a7d4d1461013e575b6100a4610224565b005b3480156100b257600080fd5b506100bb61027f565b6040516100c891906105c4565b60405180910390f35b3480156100dd57600080fd5b506100f16100ec366004610635565b61030d565b60405190151581526020016100c8565b34801561010d57600080fd5b50475b6040519081526020016100c8565b34801561012a57600080fd5b506100f161013936600461065f565b610379565b34801561014a57600080fd5b506100a461015936600461069b565b6104fd565b34801561016a57600080fd5b506002546101789060ff1681565b60405160ff90911681526020016100c8565b34801561019657600080fd5b506101106101a53660046106b4565b60036020526000908152604090205481565b3480156101c357600080fd5b506100bb6105a3565b3480156101d857600080fd5b506100f16101e7366004610635565b6105b0565b3480156101f857600080fd5b506101106102073660046106cf565b600460209081526000928352604080842090915290825290205481565b3360009081526003602052604081208054349290610243908490610718565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b6000805461028c90610730565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610730565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103689086815260200190565b60405180910390a350600192915050565b6001600160a01b03831660009081526003602052604081205482111561039e57600080fd5b6001600160a01b03841633148015906103dc57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b1561044a576001600160a01b038416600090815260046020908152604080832033845290915290205482111561041157600080fd5b6001600160a01b03841660009081526004602090815260408083203384529091528120805484929061044490849061076a565b90915550505b6001600160a01b0384166000908152600360205260408120805484929061047290849061076a565b90915550506001600160a01b0383166000908152600360205260408120805484929061049f908490610718565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516104eb91815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561051957600080fd5b336000908152600360205260408120805483929061053890849061076a565b9091555050604051339082156108fc029083906000818181858888f1935050505015801561056a573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b6001805461028c90610730565b60006105bd338484610379565b9392505050565b600060208083528351808285015260005b818110156105f1578581018301518582016040015282016105d5565b81811115610603576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461063057600080fd5b919050565b6000806040838503121561064857600080fd5b61065183610619565b946020939093013593505050565b60008060006060848603121561067457600080fd5b61067d84610619565b925061068b60208501610619565b9150604084013590509250925092565b6000602082840312156106ad57600080fd5b5035919050565b6000602082840312156106c657600080fd5b6105bd82610619565b600080604083850312156106e257600080fd5b6106eb83610619565b91506106f960208401610619565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561072b5761072b610702565b500190565b600181811c9082168061074457607f821691505b60208210810361076457634e487b7160e01b600052602260045260246000fd5b50919050565b60008282101561077c5761077c610702565b50039056fea26469706673582212206e060622e1edb96a6f38f0659b8fcbe10a9019c9bc55d9f9e42b451e771ed17964736f6c634300080d0033" ) ) + + + syntax Field ::= S2KsrcZModcseZModWETH9Field + + syntax S2KsrcZModcseZModWETH9Field ::= "name" [symbol(""), klabel(field_src%cse%WETH9_name)] + + syntax S2KsrcZModcseZModWETH9Field ::= "symbol" [symbol(""), klabel(field_src%cse%WETH9_symbol)] + + syntax S2KsrcZModcseZModWETH9Field ::= "decimals" [symbol(""), klabel(field_src%cse%WETH9_decimals)] + + syntax S2KsrcZModcseZModWETH9Field ::= "balanceOf" [symbol(""), klabel(field_src%cse%WETH9_balanceOf)] + + syntax S2KsrcZModcseZModWETH9Field ::= "allowance" [symbol(""), klabel(field_src%cse%WETH9_allowance)] + + rule ( #loc ( S2KsrcZModcseZModWETH9 . name ) => 0 ) + + + rule ( #loc ( S2KsrcZModcseZModWETH9 . symbol ) => 1 ) + + + rule ( #loc ( S2KsrcZModcseZModWETH9 . decimals ) => 2 ) + + + rule ( #loc ( S2KsrcZModcseZModWETH9 . balanceOf ) => 3 ) + + + rule ( #loc ( S2KsrcZModcseZModWETH9 . allowance ) => 4 ) + + + syntax Bytes ::= S2KsrcZModcseZModWETH9Contract "." S2KsrcZModcseZModWETH9Method [function, symbol(""), klabel(method_src%cse%WETH9)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2Kallowance" "(" Int ":" "address" "," Int ":" "address" ")" [symbol(""), klabel(method_src%cse%WETH9_S2Kallowance_address_address)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2Kapprove" "(" Int ":" "address" "," Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%WETH9_S2Kapprove_address_uint256)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2KbalanceOf" "(" Int ":" "address" ")" [symbol(""), klabel(method_src%cse%WETH9_S2KbalanceOf_address)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2Kdecimals" "(" ")" [symbol(""), klabel(method_src%cse%WETH9_S2Kdecimals_)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2Kdeposit" "(" ")" [symbol(""), klabel(method_src%cse%WETH9_S2Kdeposit_)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2Kname" "(" ")" [symbol(""), klabel(method_src%cse%WETH9_S2Kname_)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2Ksymbol" "(" ")" [symbol(""), klabel(method_src%cse%WETH9_S2Ksymbol_)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2KtotalSupply" "(" ")" [symbol(""), klabel(method_src%cse%WETH9_S2KtotalSupply_)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2Ktransfer" "(" Int ":" "address" "," Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%WETH9_S2Ktransfer_address_uint256)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2KtransferFrom" "(" Int ":" "address" "," Int ":" "address" "," Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%WETH9_S2KtransferFrom_address_address_uint256)] + + syntax S2KsrcZModcseZModWETH9Method ::= "S2Kwithdraw" "(" Int ":" "uint256" ")" [symbol(""), klabel(method_src%cse%WETH9_S2Kwithdraw_uint256)] + + rule ( S2KsrcZModcseZModWETH9 . S2Kallowance ( V0_ : address , V1_ : address ) => #abiCallData ( "allowance" , ( #address ( V0_ ) , ( #address ( V1_ ) , .TypedArgs ) ) ) ) + ensures ( #rangeAddress ( V0_ ) + andBool ( #rangeAddress ( V1_ ) + )) + + + rule ( S2KsrcZModcseZModWETH9 . S2Kapprove ( V0_guy : address , V1_wad : uint256 ) => #abiCallData ( "approve" , ( #address ( V0_guy ) , ( #uint256 ( V1_wad ) , .TypedArgs ) ) ) ) + ensures ( #rangeAddress ( V0_guy ) + andBool ( #rangeUInt ( 256 , V1_wad ) + )) + + + rule ( S2KsrcZModcseZModWETH9 . S2KbalanceOf ( V0_ : address ) => #abiCallData ( "balanceOf" , ( #address ( V0_ ) , .TypedArgs ) ) ) + ensures #rangeAddress ( V0_ ) + + + rule ( S2KsrcZModcseZModWETH9 . S2Kdecimals ( ) => #abiCallData ( "decimals" , .TypedArgs ) ) + + + rule ( S2KsrcZModcseZModWETH9 . S2Kdeposit ( ) => #abiCallData ( "deposit" , .TypedArgs ) ) + + + rule ( S2KsrcZModcseZModWETH9 . S2Kname ( ) => #abiCallData ( "name" , .TypedArgs ) ) + + + rule ( S2KsrcZModcseZModWETH9 . S2Ksymbol ( ) => #abiCallData ( "symbol" , .TypedArgs ) ) + + + rule ( S2KsrcZModcseZModWETH9 . S2KtotalSupply ( ) => #abiCallData ( "totalSupply" , .TypedArgs ) ) + + + rule ( S2KsrcZModcseZModWETH9 . S2Ktransfer ( V0_dst : address , V1_wad : uint256 ) => #abiCallData ( "transfer" , ( #address ( V0_dst ) , ( #uint256 ( V1_wad ) , .TypedArgs ) ) ) ) + ensures ( #rangeAddress ( V0_dst ) + andBool ( #rangeUInt ( 256 , V1_wad ) + )) + + + rule ( S2KsrcZModcseZModWETH9 . S2KtransferFrom ( V0_src : address , V1_dst : address , V2_wad : uint256 ) => #abiCallData ( "transferFrom" , ( #address ( V0_src ) , ( #address ( V1_dst ) , ( #uint256 ( V2_wad ) , .TypedArgs ) ) ) ) ) + ensures ( #rangeAddress ( V0_src ) + andBool ( #rangeAddress ( V1_dst ) + andBool ( #rangeUInt ( 256 , V2_wad ) + ))) + + + rule ( S2KsrcZModcseZModWETH9 . S2Kwithdraw ( V0_wad : uint256 ) => #abiCallData ( "withdraw" , ( #uint256 ( V0_wad ) , .TypedArgs ) ) ) + ensures #rangeUInt ( 256 , V0_wad ) + + + rule ( selector ( "allowance(address,address)" ) => 3714247998 ) + + + rule ( selector ( "approve(address,uint256)" ) => 157198259 ) + + + rule ( selector ( "balanceOf(address)" ) => 1889567281 ) + + + rule ( selector ( "decimals()" ) => 826074471 ) + + + rule ( selector ( "deposit()" ) => 3504541104 ) + + + rule ( selector ( "name()" ) => 117300739 ) + + + rule ( selector ( "symbol()" ) => 2514000705 ) + + + rule ( selector ( "totalSupply()" ) => 404098525 ) + + + rule ( selector ( "transfer(address,uint256)" ) => 2835717307 ) + + + rule ( selector ( "transferFrom(address,address,uint256)" ) => 599290589 ) + + + rule ( selector ( "withdraw(uint256)" ) => 773487949 ) + + endmodule module S2KlibZModforgeZSubstdZModsrcZModconsole-CONTRACT @@ -19302,3 +19754,186 @@ module S2KlibZModforgeZSubstdZModlibZModdsZSubtestZModsrcZModDSTest-CONTRACT endmodule + +module S2KlibZModforgeZSubstdZModsrcZModTest-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KlibZModforgeZSubstdZModsrcZModTestContract + + syntax S2KlibZModforgeZSubstdZModsrcZModTestContract ::= "S2KlibZModforgeZSubstdZModsrcZModTest" [symbol(""), klabel(contract_lib%forge-std%src%Test)] + + + + rule ( #initBytecode ( S2KlibZModforgeZSubstdZModsrcZModTest ) => #parseByteStack ( "0x" ) ) + + + syntax Field ::= S2KlibZModforgeZSubstdZModsrcZModTestField + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "stdstore" [symbol(""), klabel(field_lib%forge-std%src%Test_stdstore)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "IS_TEST" [symbol(""), klabel(field_lib%forge-std%src%Test_IS_TEST)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_failed" [symbol(""), klabel(field_lib%forge-std%src%Test__failed)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "stdChainsInitialized" [symbol(""), klabel(field_lib%forge-std%src%Test_stdChainsInitialized)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "chains" [symbol(""), klabel(field_lib%forge-std%src%Test_chains)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "defaultRpcUrls" [symbol(""), klabel(field_lib%forge-std%src%Test_defaultRpcUrls)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "idToAlias" [symbol(""), klabel(field_lib%forge-std%src%Test_idToAlias)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "fallbackToDefaultRpcUrls" [symbol(""), klabel(field_lib%forge-std%src%Test_fallbackToDefaultRpcUrls)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "gasMeteringOff" [symbol(""), klabel(field_lib%forge-std%src%Test_gasMeteringOff)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedContracts" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedContracts)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedSenders" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedSenders)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedContracts" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedContracts)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedSenders" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedSenders)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedArtifacts" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedArtifacts)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedArtifacts" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedArtifacts)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedArtifactSelectors" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedArtifactSelectors)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedSelectors" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedSelectors)] + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . stdstore ) => 0 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . IS_TEST ) => 7 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _failed ) => 7 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . stdChainsInitialized ) => 7 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . chains ) => 8 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . defaultRpcUrls ) => 9 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . idToAlias ) => 10 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . fallbackToDefaultRpcUrls ) => 11 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . gasMeteringOff ) => 11 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedContracts ) => 19 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedSenders ) => 20 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedContracts ) => 21 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedSenders ) => 22 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedArtifacts ) => 23 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedArtifacts ) => 24 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedArtifactSelectors ) => 25 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedSelectors ) => 26 ) + + + syntax Bytes ::= S2KlibZModforgeZSubstdZModsrcZModTestContract "." S2KlibZModforgeZSubstdZModsrcZModTestMethod [function, symbol(""), klabel(method_lib%forge-std%src%Test)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KISZUndTEST" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KISZUndTEST_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeArtifacts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeArtifacts_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeContracts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeContracts_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeSenders" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeSenders_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2Kfailed" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2Kfailed_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetArtifactSelectors" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetArtifactSelectors_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetArtifacts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetArtifacts_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetContracts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetContracts_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetSelectors" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetSelectors_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetSenders" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetSenders_)] + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KISZUndTEST ( ) => #abiCallData ( "IS_TEST" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeArtifacts ( ) => #abiCallData ( "excludeArtifacts" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeContracts ( ) => #abiCallData ( "excludeContracts" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeSenders ( ) => #abiCallData ( "excludeSenders" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2Kfailed ( ) => #abiCallData ( "failed" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetArtifactSelectors ( ) => #abiCallData ( "targetArtifactSelectors" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetArtifacts ( ) => #abiCallData ( "targetArtifacts" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetContracts ( ) => #abiCallData ( "targetContracts" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetSelectors ( ) => #abiCallData ( "targetSelectors" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetSenders ( ) => #abiCallData ( "targetSenders" , .TypedArgs ) ) + + + rule ( selector ( "IS_TEST()" ) => 4202047188 ) + + + rule ( selector ( "excludeArtifacts()" ) => 3041954473 ) + + + rule ( selector ( "excludeContracts()" ) => 3792478065 ) + + + rule ( selector ( "excludeSenders()" ) => 517440284 ) + + + rule ( selector ( "failed()" ) => 3124842406 ) + + + rule ( selector ( "targetArtifactSelectors()" ) => 1725540768 ) + + + rule ( selector ( "targetArtifacts()" ) => 2233625729 ) + + + rule ( selector ( "targetContracts()" ) => 1064470260 ) + + + rule ( selector ( "targetSelectors()" ) => 2439649222 ) + + + rule ( selector ( "targetSenders()" ) => 1046363171 ) + + +endmodule diff --git a/src/tests/integration/test-data/show/foundry.k.expected b/src/tests/integration/test-data/show/foundry.k.expected index 7c43c551e..c87773ef3 100644 --- a/src/tests/integration/test-data/show/foundry.k.expected +++ b/src/tests/integration/test-data/show/foundry.k.expected @@ -18,6 +18,9 @@ module FOUNDRY-MAIN imports public S2KlibZModforgeZSubstdZModsrcZModCommonBase-VERIFICATION imports public S2KlibZModforgeZSubstdZModsrcZModScriptBase-VERIFICATION imports public S2KlibZModforgeZSubstdZModsrcZModTestBase-VERIFICATION + imports public S2KsrcZModcseZModAdd-VERIFICATION + imports public S2KsrcZModcseZModMultiply-VERIFICATION + imports public S2KsrcZModcseZModSub-VERIFICATION imports public S2KtestZModBlockParamsTest-VERIFICATION imports public S2KtestZModChainIdTest-VERIFICATION imports public S2KtestZModCoinBaseTest-VERIFICATION @@ -25,6 +28,7 @@ module FOUNDRY-MAIN imports public S2KtestZModRollTest-VERIFICATION imports public S2KtestZModWarpTest-VERIFICATION imports public S2KtestZModBroadcastTest-VERIFICATION + imports public S2KtestZModCSETest-VERIFICATION imports public S2KsrcZModConstants-VERIFICATION imports public S2KsrcZModContract-VERIFICATION imports public S2KtestZModContractTest-VERIFICATION @@ -67,6 +71,8 @@ module FOUNDRY-MAIN imports public S2KsrcZModMyIERC20-VERIFICATION imports public S2KsrcZModMyToken-VERIFICATION imports public S2KtestZModNoImport-VERIFICATION + imports public S2KsrcZModcseZModUIntBinaryOp-VERIFICATION + imports public S2KsrcZModcseZModUIntUnaryOp-VERIFICATION imports public S2KsrcZModOwnerUpOnly-VERIFICATION imports public S2KtestZModOwnerUpOnlyTest-VERIFICATION imports public S2KtestZModAdditionalToken-VERIFICATION @@ -104,7 +110,6 @@ module FOUNDRY-MAIN imports public S2KtestZModStoreTest-VERIFICATION imports public S2KtestZModSymbolicStorageTest-VERIFICATION imports public S2KtestZModSymbolicStore-VERIFICATION - imports public S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATION imports public S2KsrcZModTestNumber-VERIFICATION imports public S2KtestZModToStringTest-VERIFICATION imports public S2KsrcZModToken-VERIFICATION @@ -112,12 +117,17 @@ module FOUNDRY-MAIN imports public S2KtestZModIntTypeTest-VERIFICATION imports public S2KtestZModStructTypeTest-VERIFICATION imports public S2KtestZModUintTypeTest-VERIFICATION + imports public S2KsrcZModcseZModAddConst-VERIFICATION + imports public S2KsrcZModcseZModIdentity-VERIFICATION + imports public S2KsrcZModcseZModIterate-VERIFICATION imports public S2KlibZModforgeZSubstdZModsrcZModVm-VERIFICATION imports public S2KlibZModforgeZSubstdZModsrcZModVmSafe-VERIFICATION + imports public S2KsrcZModcseZModWETH9-VERIFICATION imports public S2KlibZModforgeZSubstdZModsrcZModconsole-VERIFICATION imports public S2KlibZModforgeZSubstdZModsrcZModconsole2-VERIFICATION imports public S2KlibZModforgeZSubstdZModsrcZModsafeconsole-VERIFICATION imports public S2KlibZModforgeZSubstdZModlibZModdsZSubtestZModsrcZModDSTest-VERIFICATION + imports public S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATION @@ -226,6 +236,27 @@ module S2KlibZModforgeZSubstdZModsrcZModTestBase-VERIFICATION +endmodule + +module S2KsrcZModcseZModAdd-VERIFICATION + imports public S2KsrcZModcseZModAdd-CONTRACT + + + +endmodule + +module S2KsrcZModcseZModMultiply-VERIFICATION + imports public S2KsrcZModcseZModMultiply-CONTRACT + + + +endmodule + +module S2KsrcZModcseZModSub-VERIFICATION + imports public S2KsrcZModcseZModSub-CONTRACT + + + endmodule module S2KtestZModBlockParamsTest-VERIFICATION @@ -275,6 +306,13 @@ module S2KtestZModBroadcastTest-VERIFICATION +endmodule + +module S2KtestZModCSETest-VERIFICATION + imports public S2KtestZModCSETest-CONTRACT + + + endmodule module S2KsrcZModConstants-VERIFICATION @@ -570,6 +608,20 @@ module S2KtestZModNoImport-VERIFICATION +endmodule + +module S2KsrcZModcseZModUIntBinaryOp-VERIFICATION + imports public S2KsrcZModcseZModUIntBinaryOp-CONTRACT + + + +endmodule + +module S2KsrcZModcseZModUIntUnaryOp-VERIFICATION + imports public S2KsrcZModcseZModUIntUnaryOp-CONTRACT + + + endmodule module S2KsrcZModOwnerUpOnly-VERIFICATION @@ -830,13 +882,6 @@ module S2KtestZModSymbolicStore-VERIFICATION -endmodule - -module S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATION - imports public S2KlibZModforgeZSubstdZModsrcZModTest-CONTRACT - - - endmodule module S2KsrcZModTestNumber-VERIFICATION @@ -886,6 +931,27 @@ module S2KtestZModUintTypeTest-VERIFICATION +endmodule + +module S2KsrcZModcseZModAddConst-VERIFICATION + imports public S2KsrcZModcseZModAddConst-CONTRACT + + + +endmodule + +module S2KsrcZModcseZModIdentity-VERIFICATION + imports public S2KsrcZModcseZModIdentity-CONTRACT + + + +endmodule + +module S2KsrcZModcseZModIterate-VERIFICATION + imports public S2KsrcZModcseZModIterate-CONTRACT + + + endmodule module S2KlibZModforgeZSubstdZModsrcZModVm-VERIFICATION @@ -900,6 +966,13 @@ module S2KlibZModforgeZSubstdZModsrcZModVmSafe-VERIFICATION +endmodule + +module S2KsrcZModcseZModWETH9-VERIFICATION + imports public S2KsrcZModcseZModWETH9-CONTRACT + + + endmodule module S2KlibZModforgeZSubstdZModsrcZModconsole-VERIFICATION @@ -928,4 +1001,11 @@ module S2KlibZModforgeZSubstdZModlibZModdsZSubtestZModsrcZModDSTest-VERIFICATION +endmodule + +module S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATION + imports public S2KlibZModforgeZSubstdZModsrcZModTest-CONTRACT + + + endmodule From 9aa26492e7822685936cfa3ffc47c71cff945c09 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Sun, 10 Mar 2024 04:57:49 +0000 Subject: [PATCH 69/91] manual correction of expected output --- .../test-data/show/foundry.k.expected | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tests/integration/test-data/show/foundry.k.expected b/src/tests/integration/test-data/show/foundry.k.expected index c87773ef3..836ae1a7f 100644 --- a/src/tests/integration/test-data/show/foundry.k.expected +++ b/src/tests/integration/test-data/show/foundry.k.expected @@ -110,6 +110,7 @@ module FOUNDRY-MAIN imports public S2KtestZModStoreTest-VERIFICATION imports public S2KtestZModSymbolicStorageTest-VERIFICATION imports public S2KtestZModSymbolicStore-VERIFICATION + imports public S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATIO imports public S2KsrcZModTestNumber-VERIFICATION imports public S2KtestZModToStringTest-VERIFICATION imports public S2KsrcZModToken-VERIFICATION @@ -127,7 +128,6 @@ module FOUNDRY-MAIN imports public S2KlibZModforgeZSubstdZModsrcZModconsole2-VERIFICATION imports public S2KlibZModforgeZSubstdZModsrcZModsafeconsole-VERIFICATION imports public S2KlibZModforgeZSubstdZModlibZModdsZSubtestZModsrcZModDSTest-VERIFICATION - imports public S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATION @@ -882,6 +882,13 @@ module S2KtestZModSymbolicStore-VERIFICATION +endmodule + +module S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATION + imports public S2KlibZModforgeZSubstdZModsrcZModTest-CONTRACT + + + endmodule module S2KsrcZModTestNumber-VERIFICATION @@ -1001,11 +1008,4 @@ module S2KlibZModforgeZSubstdZModlibZModdsZSubtestZModsrcZModDSTest-VERIFICATION -endmodule - -module S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATION - imports public S2KlibZModforgeZSubstdZModsrcZModTest-CONTRACT - - - endmodule From 8fa5f736654409f305af9db73090296f4bf837ba Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Sun, 10 Mar 2024 10:50:54 +0000 Subject: [PATCH 70/91] adding appropriate expected outputs --- .../show/AddConst.applyOp(uint256).expected | 65 --- ...t_double_add(uint256,uint256).cse.expected | 334 +++++++++++ ...ouble_add(uint256,uint256).no-cse.expected | 334 +++++++++++ ...d_double_sub(uint256,uint256).cse.expected | 536 ++++++++++++++++++ ...ouble_sub(uint256,uint256).no-cse.expected | 433 ++++++++++++++ ...t.test_add_const(uint256,uint256).expected | 107 ---- ..._add_const(uint256,uint256).expected.nocse | 115 ---- ...st.test_identity(uint256,uint256).expected | 400 ------------- ...t_identity(uint256,uint256).expected.nocse | 147 ----- .../Identity.applyOp(uint256).cse.expected | 161 ++++++ .../show/Identity.applyOp(uint256).expected | 69 --- .../Identity.applyOp(uint256).expected.nocse | 77 --- .../Identity.applyOp(uint256).no-cse.expected | 161 ++++++ .../show/Identity.identity(uint256).expected | 27 - .../test-data/show/foundry.k.expected | 2 +- 15 files changed, 1960 insertions(+), 1008 deletions(-) delete mode 100644 src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected delete mode 100644 src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse delete mode 100644 src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected delete mode 100644 src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse create mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected delete mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).expected delete mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).expected.nocse create mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/Identity.identity(uint256).expected diff --git a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected deleted file mode 100644 index 104775509..000000000 --- a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).expected +++ /dev/null @@ -1,65 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ src: src/cse/Unary.sol:18:29 -│ -│ (324 steps) -├─ 3 (split) -│ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... -│ pc: 158 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTRACT_STORAGE:Map , 0 ) ) } -┃ │ -┃ ├─ 4 -┃ │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... -┃ │ pc: 158 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (122 steps) -┃ ├─ 6 (terminal) -┃ │ k: #halt ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ ┊ constraint: OMITTED CONSTRAINT -┃ ┊ subst: OMITTED SUBST -┃ └─ 2 (leaf, target, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: PC_CELL_5d410f2a:Int -┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ -┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTRACT_STORAGE:Map , 0 ) ) ) } - │ - ├─ 5 - │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... - │ pc: 158 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (47 steps) - ├─ 7 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 179 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - ┊ constraint: OMITTED CONSTRAINT - ┊ subst: OMITTED SUBST - └─ 2 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - - diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected new file mode 100644 index 000000000..893b07fc4 --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected @@ -0,0 +1,334 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (380 steps) +├─ 3 +│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (160 steps) +├─ 6 +│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 7 +│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 8 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 9 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (457 steps) +├─ 11 +│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... +│ pc: 2341 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 12 +│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +│ pc: 2341 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (18 steps) +├─ 13 +│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 14 +│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 15 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ │ +┃ ├─ 16 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 18 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (391 steps) +┃ ├─ 22 +┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... +┃ │ pc: 2458 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 24 +┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ │ pc: 2458 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (18 steps) +┃ ├─ 26 +┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 28 +┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 29 (split) +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: { true #Equals ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ ┃ │ +┃ ┃ ├─ 30 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 32 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 34 +┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (264 steps) +┃ ┃ ├─ 36 (split) +┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 46 (terminal) +┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 3736 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 45 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 3736 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ └─ 47 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 3736 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: { true #Equals ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } +┃ │ +┃ ├─ 31 +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (3 steps) +┃ ├─ 33 +┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 35 +┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (68 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2474 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 40 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2474 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ └─ 43 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 2474 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } + │ + ├─ 17 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (3 steps) + ├─ 19 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 21 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 23 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2357 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 25 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2357 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + └─ 27 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 2357 + callDepth: 0 + statusCode: EVMC_REVERT + + + diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected new file mode 100644 index 000000000..893b07fc4 --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected @@ -0,0 +1,334 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (380 steps) +├─ 3 +│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (160 steps) +├─ 6 +│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 7 +│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 8 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 9 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (457 steps) +├─ 11 +│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... +│ pc: 2341 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 12 +│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +│ pc: 2341 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (18 steps) +├─ 13 +│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 14 +│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 15 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ │ +┃ ├─ 16 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 18 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (391 steps) +┃ ├─ 22 +┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... +┃ │ pc: 2458 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 24 +┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ │ pc: 2458 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (18 steps) +┃ ├─ 26 +┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 28 +┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 29 (split) +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: { true #Equals ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ ┃ │ +┃ ┃ ├─ 30 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 32 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 34 +┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (264 steps) +┃ ┃ ├─ 36 (split) +┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 46 (terminal) +┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 3736 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 45 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 3736 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ └─ 47 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 3736 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: { true #Equals ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } +┃ │ +┃ ├─ 31 +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (3 steps) +┃ ├─ 33 +┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 35 +┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (68 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2474 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 40 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2474 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ └─ 43 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 2474 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } + │ + ├─ 17 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (3 steps) + ├─ 19 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 21 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 23 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2357 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 25 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2357 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + └─ 27 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 2357 + callDepth: 0 + statusCode: EVMC_REVERT + + + diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected new file mode 100644 index 000000000..a99244c3a --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected @@ -0,0 +1,536 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (380 steps) +├─ 3 +│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (160 steps) +├─ 6 +│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 7 +│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 8 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 9 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (478 steps) +├─ 11 +│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... +│ pc: 2597 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 12 +│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +│ pc: 2597 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (18 steps) +├─ 13 +│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 14 +│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 15 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ │ +┃ ├─ 16 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 18 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (391 steps) +┃ ├─ 22 +┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... +┃ │ pc: 2714 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 24 +┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ │ pc: 2714 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (18 steps) +┃ ├─ 26 +┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 28 +┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 29 (split) +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: { true #Equals ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ ┃ │ +┃ ┃ ├─ 30 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 32 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 34 +┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (399 steps) +┃ ┃ ├─ 36 +┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 192 68 192 32 ~> # ... +┃ ┃ │ pc: 2836 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ ┃ │ pc: 2836 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (18 steps) +┃ ┃ ├─ 40 +┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 42 +┃ ┃ │ k: #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 43 (split) +┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ +┃ ┃ ┃ (branch) +┃ ┃ ┣━━┓ constraint: { true #Equals VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int } +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ ├─ 46 +┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 48 +┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 192 ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (391 steps) +┃ ┃ ┃ ├─ 50 +┃ ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 224 68 224 32 ~> # ... +┃ ┃ ┃ │ pc: 2953 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 52 +┃ ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ ┃ ┃ │ pc: 2953 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (18 steps) +┃ ┃ ┃ ├─ 54 +┃ ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ ┃ │ pc: 0 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 56 +┃ ┃ ┃ │ k: #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 0 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 57 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┣━━┓ constraint: { true #Equals VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) } +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 58 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ ┃ ├─ 60 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 62 +┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 224 ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (264 steps) +┃ ┃ ┃ ┃ ├─ 64 (split) +┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┃ ┣━━┓ constraint: { true #Equals ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 } +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 66 +┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ┃ ┃ ├─ 69 +┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ┃ ├─ 72 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ┃ └─ 74 (leaf, terminal) +┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ pc: 3736 +┃ ┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ) } +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 67 +┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (60 steps) +┃ ┃ ┃ ┃ ├─ 70 +┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 73 +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ├─ 75 (terminal) +┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) } +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 59 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ ├─ 61 +┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 63 +┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 224 3 ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (68 steps) +┃ ┃ ┃ ├─ 65 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 2969 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 68 +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 2969 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ └─ 71 (leaf, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 2969 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) } +┃ ┃ │ +┃ ┃ ├─ 45 +┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 47 +┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 49 +┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 192 3 ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (68 steps) +┃ ┃ ├─ 51 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 2852 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 53 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 2852 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ └─ 55 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 2852 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: { true #Equals ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } +┃ │ +┃ ├─ 31 +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (3 steps) +┃ ├─ 33 +┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 35 +┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (68 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2730 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2730 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ └─ 41 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 2730 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } + │ + ├─ 17 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (3 steps) + ├─ 19 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 21 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 23 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2613 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 25 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2613 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + └─ 27 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 2613 + callDepth: 0 + statusCode: EVMC_REVERT + + + diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected new file mode 100644 index 000000000..f8f85ca5a --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected @@ -0,0 +1,433 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (380 steps) +├─ 3 +│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (160 steps) +├─ 6 +│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 7 +│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 8 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 9 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (478 steps) +├─ 11 +│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... +│ pc: 2597 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 12 +│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +│ pc: 2597 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (18 steps) +├─ 13 +│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 14 +│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 15 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ │ +┃ ├─ 16 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 18 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (391 steps) +┃ ├─ 22 +┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... +┃ │ pc: 2714 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 24 +┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ │ pc: 2714 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (18 steps) +┃ ├─ 26 +┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 28 +┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 29 (split) +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: { true #Equals ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ ┃ │ +┃ ┃ ├─ 30 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 32 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 34 +┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (399 steps) +┃ ┃ ├─ 36 +┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 192 68 192 32 ~> # ... +┃ ┃ │ pc: 2836 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ ┃ │ pc: 2836 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (18 steps) +┃ ┃ ├─ 40 +┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 42 +┃ ┃ │ k: #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 43 (split) +┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ +┃ ┃ ┃ (branch) +┃ ┃ ┣━━┓ constraint: { true #Equals VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int } +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ ├─ 46 +┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 48 +┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 192 ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (391 steps) +┃ ┃ ┃ ├─ 50 +┃ ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 224 68 224 32 ~> # ... +┃ ┃ ┃ │ pc: 2953 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 52 +┃ ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ ┃ ┃ │ pc: 2953 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (18 steps) +┃ ┃ ┃ ├─ 54 +┃ ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ ┃ │ pc: 0 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 56 +┃ ┃ ┃ │ k: #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 0 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 57 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┣━━┓ constraint: { true #Equals VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) } +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 58 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ ┃ └─ 60 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 128 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) } +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 59 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ └─ 61 (leaf, pending) +┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ pc: 550 +┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) } +┃ ┃ │ +┃ ┃ ├─ 45 +┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 47 +┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 49 +┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 192 3 ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (68 steps) +┃ ┃ ├─ 51 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 2852 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 53 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 2852 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ └─ 55 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 2852 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: { true #Equals ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } +┃ │ +┃ ├─ 31 +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (3 steps) +┃ ├─ 33 +┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 35 +┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (68 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2730 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2730 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ └─ 41 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 2730 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } + │ + ├─ 17 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (3 steps) + ├─ 19 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 21 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 23 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2613 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 25 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2613 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + └─ 27 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 2613 + callDepth: 0 + statusCode: EVMC_REVERT + + +┌─ 10 (root, leaf, target, terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: PC_CELL_5d410f2a:Int +│ callDepth: CALLDEPTH_CELL_5d410f2a:Int +│ statusCode: STATUSCODE_FINAL:StatusCode + + diff --git a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected deleted file mode 100644 index 5e06a8633..000000000 --- a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected +++ /dev/null @@ -1,107 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ src: test/CSE.t.sol:9:34 -│ -│ (383 steps) -├─ 3 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (330 steps) -├─ 4 -│ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... -│ pc: 29 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (330 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (163 steps) -├─ 6 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 -│ -│ (1 step) -├─ 7 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ src: test/CSE.t.sol:9:34 -│ -│ (391 steps) -├─ 9 (split) -│ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... -│ pc: 717 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } -┃ │ -┃ ├─ 10 -┃ │ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... -┃ │ pc: 717 -┃ │ callDepth: 0 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (577 steps) -┃ └─ 12 (vacuous, leaf) -┃ k: JUMPI 55 bool2Word ( selector ( "applyOp(uint256)" ) ==Int #asWord ( b"\xe9\x19\ ... -┃ pc: 39 -┃ callDepth: 1 -┃ statusCode: STATUSCODE:StatusCode -┃ src: test/CSE.t.sol:9:34 -┃ -┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } - │ - ├─ 11 - │ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... - │ pc: 717 - │ callDepth: 0 - │ statusCode: STATUSCODE:StatusCode - │ - │ (780 steps) - ├─ 13 - │ k: #halt ~> #return 128 0 ~> #pc [ CALL ] ~> #execute ~> CONTINUATION:K - │ pc: 105 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (961 steps) - ├─ 14 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 248 - │ callDepth: 0 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - │ - ┊ constraint: true - ┊ subst: OMITTED SUBST - └─ 8 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - - diff --git a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse b/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse deleted file mode 100644 index 58daf66a1..000000000 --- a/src/tests/integration/test-data/show/CSETest.test_add_const(uint256,uint256).expected.nocse +++ /dev/null @@ -1,115 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ src: test/CSE.t.sol:9:34 -│ -│ (383 steps) -├─ 3 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (330 steps) -├─ 4 -│ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... -│ pc: 29 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (330 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (163 steps) -├─ 6 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 -│ -│ (1 step) -├─ 7 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ src: test/CSE.t.sol:9:34 -│ -│ (391 steps) -├─ 9 (split) -│ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... -│ pc: 717 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } -┃ │ -┃ ├─ 10 -┃ │ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... -┃ │ pc: 717 -┃ │ callDepth: 0 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (577 steps) -┃ └─ 12 (vacuous, leaf) -┃ k: JUMPI 55 bool2Word ( selector ( "applyOp(uint256)" ) ==Int #asWord ( b"\xe9\x19\ ... -┃ pc: 39 -┃ callDepth: 1 -┃ statusCode: STATUSCODE:StatusCode -┃ src: test/CSE.t.sol:9:34 -┃ -┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } - │ - ├─ 11 - │ k: JUMPI 726 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exec ... - │ pc: 717 - │ callDepth: 0 - │ statusCode: STATUSCODE:StatusCode - │ - │ (780 steps) - ├─ 13 - │ k: #halt ~> #return 128 0 ~> #pc [ CALL ] ~> #execute ~> CONTINUATION:K - │ pc: 105 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (666 steps) - ├─ 14 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (416 steps) - ├─ 15 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 248 - │ callDepth: 0 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - │ - ┊ constraint: true - ┊ subst: OMITTED SUBST - └─ 8 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - - diff --git a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected deleted file mode 100644 index f837ac862..000000000 --- a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected +++ /dev/null @@ -1,400 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ src: test/CSE.t.sol:9:34 -│ -│ (383 steps) -├─ 3 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (330 steps) -├─ 4 -│ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... -│ pc: 29 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (330 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (163 steps) -├─ 6 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 -│ -│ (1 step) -├─ 7 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ src: test/CSE.t.sol:9:34 -│ -│ (373 steps) -├─ 9 (split) -│ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... -│ pc: 2871 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } -┃ │ -┃ ├─ 10 -┃ │ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... -┃ │ pc: 2871 -┃ │ callDepth: 0 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (525 steps) -┃ └─ 12 (vacuous, leaf) -┃ k: JUMPI 55 bool2Word ( selector ( "applyOp(uint256)" ) ==Int #asWord ( b"i\xab\xff ... -┃ pc: 39 -┃ callDepth: 1 -┃ statusCode: STATUSCODE:StatusCode -┃ src: test/CSE.t.sol:9:34 -┃ -┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } - │ - ├─ 11 - │ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... - │ pc: 2871 - │ callDepth: 0 - │ statusCode: STATUSCODE:StatusCode - │ - │ (800 steps) - ├─ 13 - │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - │ pc: 148 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ src: lib/forge-std/src/StdInvariant.sol:79:82 - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 14 - ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: test/CSE.t.sol:9:34 - ┃ │ - ┃ │ (755 steps) - ┃ ├─ 16 - ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - ┃ │ pc: 148 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/src/StdInvariant.sol:79:82 - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 18 - ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ │ pc: 87 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: test/CSE.t.sol:9:34 - ┃ ┃ │ - ┃ ┃ │ (755 steps) - ┃ ┃ ├─ 22 - ┃ ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - ┃ ┃ │ pc: 148 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: lib/forge-std/src/StdInvariant.sol:79:82 - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 26 - ┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ ┃ │ pc: 87 - ┃ ┃ ┃ │ callDepth: 1 - ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ │ src: test/CSE.t.sol:9:34 - ┃ ┃ ┃ │ - ┃ ┃ ┃ │ (725 steps) - ┃ ┃ ┃ ├─ 34 (terminal) - ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K - ┃ ┃ ┃ │ pc: 248 - ┃ ┃ ┃ │ callDepth: 0 - ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ ┃ ┃ │ - ┃ ┃ ┃ ┊ constraint: true - ┃ ┃ ┃ ┊ subst: OMITTED SUBST - ┃ ┃ ┃ └─ 8 (leaf, target, terminal) - ┃ ┃ ┃ k: #halt ~> CONTINUATION:K - ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int - ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 27 - ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ │ pc: 87 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: test/CSE.t.sol:9:34 - ┃ ┃ │ - ┃ ┃ │ (725 steps) - ┃ ┃ ├─ 35 (terminal) - ┃ ┃ │ k: #halt ~> CONTINUATION:K - ┃ ┃ │ pc: 248 - ┃ ┃ │ callDepth: 0 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ ┃ │ - ┃ ┃ ┊ constraint: true - ┃ ┃ ┊ subst: OMITTED SUBST - ┃ ┃ └─ 8 (leaf, target, terminal) - ┃ ┃ k: #halt ~> CONTINUATION:K - ┃ ┃ pc: PC_CELL_5d410f2a:Int - ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 19 - ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: test/CSE.t.sol:9:34 - ┃ │ - ┃ │ (755 steps) - ┃ ├─ 23 - ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - ┃ │ pc: 148 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/src/StdInvariant.sol:79:82 - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 28 - ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ │ pc: 87 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: test/CSE.t.sol:9:34 - ┃ ┃ │ - ┃ ┃ │ (725 steps) - ┃ ┃ ├─ 36 (terminal) - ┃ ┃ │ k: #halt ~> CONTINUATION:K - ┃ ┃ │ pc: 248 - ┃ ┃ │ callDepth: 0 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ ┃ │ - ┃ ┃ ┊ constraint: true - ┃ ┃ ┊ subst: OMITTED SUBST - ┃ ┃ └─ 8 (leaf, target, terminal) - ┃ ┃ k: #halt ~> CONTINUATION:K - ┃ ┃ pc: PC_CELL_5d410f2a:Int - ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 29 - ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: test/CSE.t.sol:9:34 - ┃ │ - ┃ │ (725 steps) - ┃ ├─ 37 (terminal) - ┃ │ k: #halt ~> CONTINUATION:K - ┃ │ pc: 248 - ┃ │ callDepth: 0 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ │ - ┃ ┊ constraint: true - ┃ ┊ subst: OMITTED SUBST - ┃ └─ 8 (leaf, target, terminal) - ┃ k: #halt ~> CONTINUATION:K - ┃ pc: PC_CELL_5d410f2a:Int - ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ - ┗━━┓ - │ - ├─ 15 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (755 steps) - ├─ 17 - │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - │ pc: 148 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/src/StdInvariant.sol:79:82 - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 20 - ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: test/CSE.t.sol:9:34 - ┃ │ - ┃ │ (755 steps) - ┃ ├─ 24 - ┃ │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - ┃ │ pc: 148 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/src/StdInvariant.sol:79:82 - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 30 - ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ ┃ │ pc: 87 - ┃ ┃ │ callDepth: 1 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: test/CSE.t.sol:9:34 - ┃ ┃ │ - ┃ ┃ │ (725 steps) - ┃ ┃ ├─ 38 (terminal) - ┃ ┃ │ k: #halt ~> CONTINUATION:K - ┃ ┃ │ pc: 248 - ┃ ┃ │ callDepth: 0 - ┃ ┃ │ statusCode: EVMC_SUCCESS - ┃ ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ ┃ │ - ┃ ┃ ┊ constraint: true - ┃ ┃ ┊ subst: OMITTED SUBST - ┃ ┃ └─ 8 (leaf, target, terminal) - ┃ ┃ k: #halt ~> CONTINUATION:K - ┃ ┃ pc: PC_CELL_5d410f2a:Int - ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 31 - ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: test/CSE.t.sol:9:34 - ┃ │ - ┃ │ (725 steps) - ┃ ├─ 39 (terminal) - ┃ │ k: #halt ~> CONTINUATION:K - ┃ │ pc: 248 - ┃ │ callDepth: 0 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ │ - ┃ ┊ constraint: true - ┃ ┊ subst: OMITTED SUBST - ┃ └─ 8 (leaf, target, terminal) - ┃ k: #halt ~> CONTINUATION:K - ┃ pc: PC_CELL_5d410f2a:Int - ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ - ┗━━┓ - │ - ├─ 21 - │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (755 steps) - ├─ 25 - │ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... - │ pc: 148 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/src/StdInvariant.sol:79:82 - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 32 - ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 87 - ┃ │ callDepth: 1 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: test/CSE.t.sol:9:34 - ┃ │ - ┃ │ (725 steps) - ┃ ├─ 40 (terminal) - ┃ │ k: #halt ~> CONTINUATION:K - ┃ │ pc: 248 - ┃ │ callDepth: 0 - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - ┃ │ - ┃ ┊ constraint: true - ┃ ┊ subst: OMITTED SUBST - ┃ └─ 8 (leaf, target, terminal) - ┃ k: #halt ~> CONTINUATION:K - ┃ pc: PC_CELL_5d410f2a:Int - ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ - ┗━━┓ - │ - ├─ 33 - │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (725 steps) - ├─ 41 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 248 - │ callDepth: 0 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - │ - ┊ constraint: true - ┊ subst: OMITTED SUBST - └─ 8 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - - diff --git a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse b/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse deleted file mode 100644 index b1d195347..000000000 --- a/src/tests/integration/test-data/show/CSETest.test_identity(uint256,uint256).expected.nocse +++ /dev/null @@ -1,147 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ src: test/CSE.t.sol:9:34 -│ -│ (383 steps) -├─ 3 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (330 steps) -├─ 4 -│ k: #halt ~> #codeDeposit 263400868551549723330807389252719309078400616203 ~> #pc [ ... -│ pc: 29 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (330 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 1405310203571408291950365054053061012934685786634 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ src: test/CSE.t.sol:9:34 -│ -│ (163 steps) -├─ 6 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 -│ -│ (1 step) -├─ 7 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ src: test/CSE.t.sol:9:34 -│ -│ (373 steps) -├─ 9 (split) -│ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... -│ pc: 2871 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals pow64 <=Int VV0_x_114b9705:Int } -┃ │ -┃ ├─ 10 -┃ │ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... -┃ │ pc: 2871 -┃ │ callDepth: 0 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (525 steps) -┃ └─ 12 (vacuous, leaf) -┃ k: JUMPI 55 bool2Word ( selector ( "applyOp(uint256)" ) ==Int #asWord ( b"i\xab\xff ... -┃ pc: 39 -┃ callDepth: 1 -┃ statusCode: STATUSCODE:StatusCode -┃ src: test/CSE.t.sol:9:34 -┃ -┗━━┓ constraint: { true #Equals ( notBool pow64 <=Int VV0_x_114b9705:Int ) } - │ - ├─ 11 - │ k: JUMPI 2880 bool2Word ( pow64 <=Int VV0_x_114b9705:Int ) ~> #pc [ JUMPI ] ~> #exe ... - │ pc: 2871 - │ callDepth: 0 - │ statusCode: STATUSCODE:StatusCode - │ - │ (1147 steps) - ├─ 13 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - │ pc: 87 - │ callDepth: 2 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (328 steps) - ├─ 14 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (1102 steps) - ├─ 15 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... - │ pc: 87 - │ callDepth: 2 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (328 steps) - ├─ 16 - │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (1102 steps) - ├─ 17 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 192 32 ~> # ... - │ pc: 87 - │ callDepth: 2 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (328 steps) - ├─ 18 - │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 87 - │ callDepth: 1 - │ statusCode: EVMC_SUCCESS - │ src: test/CSE.t.sol:9:34 - │ - │ (725 steps) - ├─ 19 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 248 - │ callDepth: 0 - │ statusCode: EVMC_SUCCESS - │ src: lib/forge-std/lib/ds-test/src/test.sol:37:38 - │ - ┊ constraint: true - ┊ subst: OMITTED SUBST - └─ 8 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - - diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected new file mode 100644 index 000000000..3a7aefa24 --- /dev/null +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected @@ -0,0 +1,161 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (363 steps) +├─ 3 +│ k: STATICCALL 0 CONTRACT_ID:Int 128 36 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #accessAccounts CONTRACT_ID:Int ~> #checkCall CONTRACT_ID:Int 0 ~> #call CONTRAC ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (3 steps) +├─ 5 (split) +│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +┃ │ pc: 148 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (15 steps) +┃ ├─ 8 +┃ │ k: #precompiled? ( CONTRACT_ID:Int , SHANGHAI ) ~> #execute ~> #return 128 32 ~> #p ... +┃ │ pc: 0 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 10 +┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 12 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 14 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (324 steps) +┃ ├─ 16 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 18 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 20 (terminal) +┃ │ k: #halt ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ ┊ constraint: OMITTED CONSTRAINT +┃ ┊ subst: OMITTED SUBST +┃ └─ 2 (leaf, target, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: PC_CELL_5d410f2a:Int +┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ +┗━━┓ constraint: { true #Equals 1024 <=Int CALLDEPTH_CELL:Int } + │ + ├─ 7 + │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (4 steps) + ├─ 9 + │ k: #end EVMC_CALL_DEPTH_EXCEEDED ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 11 + │ k: #halt ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 b"\xac7\xee\x ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 13 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 15 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #pc [ STATICCALL ] ~> #execute ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (66 steps) + ├─ 17 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 19 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 21 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + ┊ constraint: OMITTED CONSTRAINT + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected deleted file mode 100644 index 76061414f..000000000 --- a/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected +++ /dev/null @@ -1,69 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ src: src/cse/Unary.sol:6:16 -│ -│ (367 steps) -├─ 3 (split) -│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ src: src/cse/Unary.sol:12:15 -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... -┃ │ pc: 148 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ src: src/cse/Unary.sol:12:15 -┃ │ -┃ │ (345 steps) -┃ ├─ 6 (terminal) -┃ │ k: #halt ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ src: src/cse/Unary.sol:13:14 -┃ │ -┃ ┊ constraint: OMITTED CONSTRAINT -┃ ┊ subst: OMITTED SUBST -┃ └─ 2 (leaf, target, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: PC_CELL_5d410f2a:Int -┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ -┗━━┓ constraint: { true #Equals 1024 <=Int CALLDEPTH_CELL:Int } - │ - ├─ 5 - │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ src: src/cse/Unary.sol:12:15 - │ - │ (76 steps) - ├─ 7 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - ┊ constraint: OMITTED CONSTRAINT - ┊ subst: OMITTED SUBST - └─ 2 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - - diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected.nocse b/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected.nocse deleted file mode 100644 index b2b703e7b..000000000 --- a/src/tests/integration/test-data/show/Identity.applyOp(uint256).expected.nocse +++ /dev/null @@ -1,77 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ src: src/cse/Unary.sol:6:16 -│ -│ (367 steps) -├─ 3 (split) -│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ src: src/cse/Unary.sol:12:15 -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... -┃ │ pc: 148 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ src: src/cse/Unary.sol:12:15 -┃ │ -┃ │ (347 steps) -┃ ├─ 6 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: EVMC_SUCCESS -┃ │ src: src/cse/Unary.sol:13:14 -┃ │ -┃ │ (328 steps) -┃ ├─ 8 (terminal) -┃ │ k: #halt ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ src: src/cse/Unary.sol:13:14 -┃ │ -┃ ┊ constraint: OMITTED CONSTRAINT -┃ ┊ subst: OMITTED SUBST -┃ └─ 2 (leaf, target, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: PC_CELL_5d410f2a:Int -┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ -┗━━┓ constraint: { true #Equals 1024 <=Int CALLDEPTH_CELL:Int } - │ - ├─ 5 - │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ src: src/cse/Unary.sol:12:15 - │ - │ (76 steps) - ├─ 7 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - ┊ constraint: OMITTED CONSTRAINT - ┊ subst: OMITTED SUBST - └─ 2 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - - diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected new file mode 100644 index 000000000..3a7aefa24 --- /dev/null +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected @@ -0,0 +1,161 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (363 steps) +├─ 3 +│ k: STATICCALL 0 CONTRACT_ID:Int 128 36 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #accessAccounts CONTRACT_ID:Int ~> #checkCall CONTRACT_ID:Int 0 ~> #call CONTRAC ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (3 steps) +├─ 5 (split) +│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: { true #Equals CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +┃ │ pc: 148 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (15 steps) +┃ ├─ 8 +┃ │ k: #precompiled? ( CONTRACT_ID:Int , SHANGHAI ) ~> #execute ~> #return 128 32 ~> #p ... +┃ │ pc: 0 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 10 +┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 12 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 14 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (324 steps) +┃ ├─ 16 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 18 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 20 (terminal) +┃ │ k: #halt ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ ┊ constraint: OMITTED CONSTRAINT +┃ ┊ subst: OMITTED SUBST +┃ └─ 2 (leaf, target, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: PC_CELL_5d410f2a:Int +┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ +┗━━┓ constraint: { true #Equals 1024 <=Int CALLDEPTH_CELL:Int } + │ + ├─ 7 + │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (4 steps) + ├─ 9 + │ k: #end EVMC_CALL_DEPTH_EXCEEDED ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 11 + │ k: #halt ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 b"\xac7\xee\x ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 13 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 15 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #pc [ STATICCALL ] ~> #execute ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (66 steps) + ├─ 17 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 19 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 21 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + ┊ constraint: OMITTED CONSTRAINT + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + diff --git a/src/tests/integration/test-data/show/Identity.identity(uint256).expected b/src/tests/integration/test-data/show/Identity.identity(uint256).expected deleted file mode 100644 index ef113bc75..000000000 --- a/src/tests/integration/test-data/show/Identity.identity(uint256).expected +++ /dev/null @@ -1,27 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ src: src/cse/Unary.sol:6:16 -│ -│ (331 steps) -├─ 3 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 87 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: EVMC_SUCCESS -│ src: src/cse/Unary.sol:13:14 -│ -┊ constraint: OMITTED CONSTRAINT -┊ subst: OMITTED SUBST -└─ 2 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - - diff --git a/src/tests/integration/test-data/show/foundry.k.expected b/src/tests/integration/test-data/show/foundry.k.expected index 836ae1a7f..162c02bec 100644 --- a/src/tests/integration/test-data/show/foundry.k.expected +++ b/src/tests/integration/test-data/show/foundry.k.expected @@ -110,7 +110,7 @@ module FOUNDRY-MAIN imports public S2KtestZModStoreTest-VERIFICATION imports public S2KtestZModSymbolicStorageTest-VERIFICATION imports public S2KtestZModSymbolicStore-VERIFICATION - imports public S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATIO + imports public S2KlibZModforgeZSubstdZModsrcZModTest-VERIFICATION imports public S2KsrcZModTestNumber-VERIFICATION imports public S2KtestZModToStringTest-VERIFICATION imports public S2KsrcZModToken-VERIFICATION From 23dbbb0e2348273c602edd8b01b797bce85069f3 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Sun, 10 Mar 2024 15:49:32 +0000 Subject: [PATCH 71/91] attempting to manually fix expected output --- .../test-data/show/contracts.k.expected | 366 +++++++++--------- 1 file changed, 183 insertions(+), 183 deletions(-) diff --git a/src/tests/integration/test-data/show/contracts.k.expected b/src/tests/integration/test-data/show/contracts.k.expected index 25816ac7f..dbae669bc 100644 --- a/src/tests/integration/test-data/show/contracts.k.expected +++ b/src/tests/integration/test-data/show/contracts.k.expected @@ -15178,6 +15178,189 @@ module S2KtestZModSymbolicStore-CONTRACT rule ( #loc ( S2KtestZModSymbolicStore . testNumber ) => 0 ) +endmodule + +module S2KlibZModforgeZSubstdZModsrcZModTest-CONTRACT + imports public FOUNDRY + + syntax Contract ::= S2KlibZModforgeZSubstdZModsrcZModTestContract + + syntax S2KlibZModforgeZSubstdZModsrcZModTestContract ::= "S2KlibZModforgeZSubstdZModsrcZModTest" [symbol(""), klabel(contract_lib%forge-std%src%Test)] + + + + rule ( #initBytecode ( S2KlibZModforgeZSubstdZModsrcZModTest ) => #parseByteStack ( "0x" ) ) + + + syntax Field ::= S2KlibZModforgeZSubstdZModsrcZModTestField + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "stdstore" [symbol(""), klabel(field_lib%forge-std%src%Test_stdstore)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "IS_TEST" [symbol(""), klabel(field_lib%forge-std%src%Test_IS_TEST)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_failed" [symbol(""), klabel(field_lib%forge-std%src%Test__failed)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "stdChainsInitialized" [symbol(""), klabel(field_lib%forge-std%src%Test_stdChainsInitialized)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "chains" [symbol(""), klabel(field_lib%forge-std%src%Test_chains)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "defaultRpcUrls" [symbol(""), klabel(field_lib%forge-std%src%Test_defaultRpcUrls)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "idToAlias" [symbol(""), klabel(field_lib%forge-std%src%Test_idToAlias)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "fallbackToDefaultRpcUrls" [symbol(""), klabel(field_lib%forge-std%src%Test_fallbackToDefaultRpcUrls)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "gasMeteringOff" [symbol(""), klabel(field_lib%forge-std%src%Test_gasMeteringOff)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedContracts" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedContracts)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedSenders" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedSenders)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedContracts" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedContracts)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedSenders" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedSenders)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedArtifacts" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedArtifacts)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedArtifacts" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedArtifacts)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedArtifactSelectors" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedArtifactSelectors)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedSelectors" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedSelectors)] + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . stdstore ) => 0 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . IS_TEST ) => 7 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _failed ) => 7 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . stdChainsInitialized ) => 7 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . chains ) => 8 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . defaultRpcUrls ) => 9 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . idToAlias ) => 10 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . fallbackToDefaultRpcUrls ) => 11 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . gasMeteringOff ) => 11 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedContracts ) => 19 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedSenders ) => 20 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedContracts ) => 21 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedSenders ) => 22 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedArtifacts ) => 23 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedArtifacts ) => 24 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedArtifactSelectors ) => 25 ) + + + rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedSelectors ) => 26 ) + + + syntax Bytes ::= S2KlibZModforgeZSubstdZModsrcZModTestContract "." S2KlibZModforgeZSubstdZModsrcZModTestMethod [function, symbol(""), klabel(method_lib%forge-std%src%Test)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KISZUndTEST" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KISZUndTEST_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeArtifacts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeArtifacts_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeContracts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeContracts_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeSenders" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeSenders_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2Kfailed" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2Kfailed_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetArtifactSelectors" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetArtifactSelectors_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetArtifacts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetArtifacts_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetContracts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetContracts_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetSelectors" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetSelectors_)] + + syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetSenders" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetSenders_)] + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KISZUndTEST ( ) => #abiCallData ( "IS_TEST" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeArtifacts ( ) => #abiCallData ( "excludeArtifacts" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeContracts ( ) => #abiCallData ( "excludeContracts" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeSenders ( ) => #abiCallData ( "excludeSenders" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2Kfailed ( ) => #abiCallData ( "failed" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetArtifactSelectors ( ) => #abiCallData ( "targetArtifactSelectors" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetArtifacts ( ) => #abiCallData ( "targetArtifacts" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetContracts ( ) => #abiCallData ( "targetContracts" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetSelectors ( ) => #abiCallData ( "targetSelectors" , .TypedArgs ) ) + + + rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetSenders ( ) => #abiCallData ( "targetSenders" , .TypedArgs ) ) + + + rule ( selector ( "IS_TEST()" ) => 4202047188 ) + + + rule ( selector ( "excludeArtifacts()" ) => 3041954473 ) + + + rule ( selector ( "excludeContracts()" ) => 3792478065 ) + + + rule ( selector ( "excludeSenders()" ) => 517440284 ) + + + rule ( selector ( "failed()" ) => 3124842406 ) + + + rule ( selector ( "targetArtifactSelectors()" ) => 1725540768 ) + + + rule ( selector ( "targetArtifacts()" ) => 2233625729 ) + + + rule ( selector ( "targetContracts()" ) => 1064470260 ) + + + rule ( selector ( "targetSelectors()" ) => 2439649222 ) + + + rule ( selector ( "targetSenders()" ) => 1046363171 ) + + endmodule module S2KsrcZModTestNumber-CONTRACT @@ -19754,186 +19937,3 @@ module S2KlibZModforgeZSubstdZModlibZModdsZSubtestZModsrcZModDSTest-CONTRACT endmodule - -module S2KlibZModforgeZSubstdZModsrcZModTest-CONTRACT - imports public FOUNDRY - - syntax Contract ::= S2KlibZModforgeZSubstdZModsrcZModTestContract - - syntax S2KlibZModforgeZSubstdZModsrcZModTestContract ::= "S2KlibZModforgeZSubstdZModsrcZModTest" [symbol(""), klabel(contract_lib%forge-std%src%Test)] - - - - rule ( #initBytecode ( S2KlibZModforgeZSubstdZModsrcZModTest ) => #parseByteStack ( "0x" ) ) - - - syntax Field ::= S2KlibZModforgeZSubstdZModsrcZModTestField - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "stdstore" [symbol(""), klabel(field_lib%forge-std%src%Test_stdstore)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "IS_TEST" [symbol(""), klabel(field_lib%forge-std%src%Test_IS_TEST)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_failed" [symbol(""), klabel(field_lib%forge-std%src%Test__failed)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "stdChainsInitialized" [symbol(""), klabel(field_lib%forge-std%src%Test_stdChainsInitialized)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "chains" [symbol(""), klabel(field_lib%forge-std%src%Test_chains)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "defaultRpcUrls" [symbol(""), klabel(field_lib%forge-std%src%Test_defaultRpcUrls)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "idToAlias" [symbol(""), klabel(field_lib%forge-std%src%Test_idToAlias)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "fallbackToDefaultRpcUrls" [symbol(""), klabel(field_lib%forge-std%src%Test_fallbackToDefaultRpcUrls)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "gasMeteringOff" [symbol(""), klabel(field_lib%forge-std%src%Test_gasMeteringOff)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedContracts" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedContracts)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedSenders" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedSenders)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedContracts" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedContracts)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedSenders" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedSenders)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_excludedArtifacts" [symbol(""), klabel(field_lib%forge-std%src%Test__excludedArtifacts)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedArtifacts" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedArtifacts)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedArtifactSelectors" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedArtifactSelectors)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestField ::= "_targetedSelectors" [symbol(""), klabel(field_lib%forge-std%src%Test__targetedSelectors)] - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . stdstore ) => 0 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . IS_TEST ) => 7 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _failed ) => 7 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . stdChainsInitialized ) => 7 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . chains ) => 8 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . defaultRpcUrls ) => 9 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . idToAlias ) => 10 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . fallbackToDefaultRpcUrls ) => 11 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . gasMeteringOff ) => 11 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedContracts ) => 19 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedSenders ) => 20 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedContracts ) => 21 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedSenders ) => 22 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _excludedArtifacts ) => 23 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedArtifacts ) => 24 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedArtifactSelectors ) => 25 ) - - - rule ( #loc ( S2KlibZModforgeZSubstdZModsrcZModTest . _targetedSelectors ) => 26 ) - - - syntax Bytes ::= S2KlibZModforgeZSubstdZModsrcZModTestContract "." S2KlibZModforgeZSubstdZModsrcZModTestMethod [function, symbol(""), klabel(method_lib%forge-std%src%Test)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KISZUndTEST" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KISZUndTEST_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeArtifacts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeArtifacts_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeContracts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeContracts_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KexcludeSenders" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KexcludeSenders_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2Kfailed" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2Kfailed_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetArtifactSelectors" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetArtifactSelectors_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetArtifacts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetArtifacts_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetContracts" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetContracts_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetSelectors" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetSelectors_)] - - syntax S2KlibZModforgeZSubstdZModsrcZModTestMethod ::= "S2KtargetSenders" "(" ")" [symbol(""), klabel(method_lib%forge-std%src%Test_S2KtargetSenders_)] - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KISZUndTEST ( ) => #abiCallData ( "IS_TEST" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeArtifacts ( ) => #abiCallData ( "excludeArtifacts" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeContracts ( ) => #abiCallData ( "excludeContracts" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KexcludeSenders ( ) => #abiCallData ( "excludeSenders" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2Kfailed ( ) => #abiCallData ( "failed" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetArtifactSelectors ( ) => #abiCallData ( "targetArtifactSelectors" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetArtifacts ( ) => #abiCallData ( "targetArtifacts" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetContracts ( ) => #abiCallData ( "targetContracts" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetSelectors ( ) => #abiCallData ( "targetSelectors" , .TypedArgs ) ) - - - rule ( S2KlibZModforgeZSubstdZModsrcZModTest . S2KtargetSenders ( ) => #abiCallData ( "targetSenders" , .TypedArgs ) ) - - - rule ( selector ( "IS_TEST()" ) => 4202047188 ) - - - rule ( selector ( "excludeArtifacts()" ) => 3041954473 ) - - - rule ( selector ( "excludeContracts()" ) => 3792478065 ) - - - rule ( selector ( "excludeSenders()" ) => 517440284 ) - - - rule ( selector ( "failed()" ) => 3124842406 ) - - - rule ( selector ( "targetArtifactSelectors()" ) => 1725540768 ) - - - rule ( selector ( "targetArtifacts()" ) => 2233625729 ) - - - rule ( selector ( "targetContracts()" ) => 1064470260 ) - - - rule ( selector ( "targetSelectors()" ) => 2439649222 ) - - - rule ( selector ( "targetSenders()" ) => 1046363171 ) - - -endmodule From 74bd5dce78864b6808738516c9d3d57b9ba5c335 Mon Sep 17 00:00:00 2001 From: devops Date: Mon, 11 Mar 2024 14:26:48 +0000 Subject: [PATCH 72/91] Set Version: 0.1.195 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 63982f32f..9868d567e 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.194 +0.1.195 diff --git a/pyproject.toml b/pyproject.toml index 3221e9021..6f3f1097d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.194" +version = "0.1.195" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index dabc802f1..d29d8178a 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.194' +VERSION: Final = '0.1.195' From 3db29ba48b0736d16f0f94c08fb79b31267e518c Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 12 Mar 2024 16:56:08 +0000 Subject: [PATCH 73/91] adding a CSE CI runner, removing no-cse executions --- .github/workflows/test-pr.yml | 33 +++++++++++- src/tests/integration/test_kontrol_cse.py | 66 ++++++++++++----------- 2 files changed, 66 insertions(+), 33 deletions(-) diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml index 3cc57956a..1cce3c581 100644 --- a/.github/workflows/test-pr.yml +++ b/.github/workflows/test-pr.yml @@ -116,7 +116,7 @@ jobs: docker exec -u github-user kontrol-ci-integration-${GITHUB_SHA} /bin/bash -c 'CXX=clang++-14 poetry run kdist --verbose build -j`nproc` evm-semantics.haskell kontrol.foundry' - name: 'Run integration tests' run: | - TEST_ARGS='--numprocesses=8 -vv' + TEST_ARGS='--numprocesses=8 -vv -k "not test_kontrol_cse"' [ ${{ matrix.backend }} == 'legacy' ] && TEST_ARGS+=' --no-use-booster' docker exec --user github-user kontrol-ci-integration-${GITHUB_SHA} make cov-integration TEST_ARGS="${TEST_ARGS}" - name: 'Tear down Docker' @@ -124,6 +124,37 @@ jobs: run: | docker stop --time=0 kontrol-ci-integration-${GITHUB_SHA} + cse-tests: + needs: code-quality-checks + name: 'Integration Tests' + runs-on: [self-hosted, linux, normal, fast] + strategy: + fail-fast: false + matrix: + backend: ['booster'] + timeout-minutes: 120 + steps: + - name: 'Check out code' + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: 'Set up Docker' + uses: ./.github/actions/with-docker + with: + container-name: kontrol-ci-integration-${{ github.sha }} + - name: 'Build KEVM' + run: | + docker exec -u github-user kontrol-ci-integration-${GITHUB_SHA} /bin/bash -c 'poetry install' + docker exec -u github-user kontrol-ci-integration-${GITHUB_SHA} /bin/bash -c 'CXX=clang++-14 poetry run kdist --verbose build -j`nproc` evm-semantics.haskell kontrol.foundry' + - name: 'Run CSE tests' + run: | + TEST_ARGS='--numprocesses=8 -vv -k "test_kontrol_cse"' + docker exec --user github-user kontrol-ci-integration-${GITHUB_SHA} make cov-integration TEST_ARGS="${TEST_ARGS}" + - name: 'Tear down Docker' + if: always() + run: | + docker stop --time=0 kontrol-ci-integration-${GITHUB_SHA} + docker: needs: code-quality-checks name: 'Docker Tests' diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index d113c3a6b..bcaaf62af 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -102,13 +102,40 @@ def test_foundry_dependency_automated( if bug_report is not None: server._populate_bug_report(bug_report) - prove_options = ProveOptions( - max_iterations=50, - bug_report=bug_report, - cse=True, - fail_fast=False, - workers=2, - ) + # FIXME: Currently commented out to minimise CI load + # prove_options = ProveOptions( + # max_iterations=50, + # bug_report=bug_report, + # cse=True, + # fail_fast=False, + # workers=2, + # ) + # + # # TODO: Execute without cse + # foundry_prove( + # foundry, + # tests=[(test_id, None)], + # prove_options=prove_options, + # rpc_options=RPCOptions(port=server.port, smt_timeout=500), + # ) + # + # show_res = foundry_show( + # foundry, + # test=test_id, + # to_module=False, + # sort_collections=True, + # omit_unstable_output=True, + # pending=False, + # failing=False, + # failure_info=False, + # counterexample_info=False, + # port=server.port, + # ) + # + # assert_or_update_show_output( + # show_res, TEST_DATA_DIR / f'show/{test_id}.no-cse.expected', update=update_expected_output + # ) + cse_prove_options = ProveOptions( max_iterations=50, bug_report=bug_report, @@ -117,31 +144,6 @@ def test_foundry_dependency_automated( workers=2, ) - # Execute without cse - foundry_prove( - foundry, - tests=[(test_id, None)], - prove_options=prove_options, - rpc_options=RPCOptions(port=server.port, smt_timeout=500), - ) - - show_res = foundry_show( - foundry, - test=test_id, - to_module=False, - sort_collections=True, - omit_unstable_output=True, - pending=False, - failing=False, - failure_info=False, - counterexample_info=False, - port=server.port, - ) - - assert_or_update_show_output( - show_res, TEST_DATA_DIR / f'show/{test_id}.no-cse.expected', update=update_expected_output - ) - # Execute with cse foundry_prove( foundry, From 40cc5418d782a4f93e92487cb43408678d3930c2 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 12 Mar 2024 16:57:08 +0000 Subject: [PATCH 74/91] removing no-cse.expected files --- ...ouble_add(uint256,uint256).no-cse.expected | 334 -------------- ...ouble_sub(uint256,uint256).no-cse.expected | 433 ------------------ .../Identity.applyOp(uint256).no-cse.expected | 161 ------- 3 files changed, 928 deletions(-) delete mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected deleted file mode 100644 index 893b07fc4..000000000 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected +++ /dev/null @@ -1,334 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (380 steps) -├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (160 steps) -├─ 6 -│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 7 -│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 8 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 9 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (457 steps) -├─ 11 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -│ pc: 2341 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 12 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -│ pc: 2341 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 13 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 14 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 15 (split) -│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -│ pc: 562 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } -┃ │ -┃ ├─ 16 -┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (3 steps) -┃ ├─ 18 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 20 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (391 steps) -┃ ├─ 22 -┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... -┃ │ pc: 2458 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 24 -┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ │ pc: 2458 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (18 steps) -┃ ├─ 26 -┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 28 -┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 29 (split) -┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ ┃ -┃ ┃ (branch) -┃ ┣━━┓ constraint: { true #Equals ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } -┃ ┃ │ -┃ ┃ ├─ 30 -┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 32 -┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 34 -┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (264 steps) -┃ ┃ ├─ 36 (split) -┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 44 -┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 46 (terminal) -┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ ┊ constraint: true -┃ ┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ ┃ └─ 10 (leaf, target, terminal) -┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int -┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 3736 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 45 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 3736 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ └─ 47 (leaf, terminal) -┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ pc: 3736 -┃ ┃ callDepth: 0 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┗━━┓ constraint: { true #Equals ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } -┃ │ -┃ ├─ 31 -┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (3 steps) -┃ ├─ 33 -┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 35 -┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (68 steps) -┃ ├─ 37 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2474 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 40 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2474 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ └─ 43 (leaf, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: 2474 -┃ callDepth: 0 -┃ statusCode: EVMC_REVERT -┃ -┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } - │ - ├─ 17 - │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - │ pc: 562 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ - │ (3 steps) - ├─ 19 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 21 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 23 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2357 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 25 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2357 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - └─ 27 (leaf, terminal) - k: #halt ~> CONTINUATION:K - pc: 2357 - callDepth: 0 - statusCode: EVMC_REVERT - - - diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected deleted file mode 100644 index f8f85ca5a..000000000 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected +++ /dev/null @@ -1,433 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (380 steps) -├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (160 steps) -├─ 6 -│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 7 -│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 8 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 9 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (478 steps) -├─ 11 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -│ pc: 2597 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 12 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -│ pc: 2597 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 13 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 14 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 15 (split) -│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -│ pc: 562 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } -┃ │ -┃ ├─ 16 -┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (3 steps) -┃ ├─ 18 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 20 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (391 steps) -┃ ├─ 22 -┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... -┃ │ pc: 2714 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 24 -┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ │ pc: 2714 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (18 steps) -┃ ├─ 26 -┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 28 -┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 29 (split) -┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ ┃ -┃ ┃ (branch) -┃ ┣━━┓ constraint: { true #Equals ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } -┃ ┃ │ -┃ ┃ ├─ 30 -┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 32 -┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 34 -┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (399 steps) -┃ ┃ ├─ 36 -┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 192 68 192 32 ~> # ... -┃ ┃ │ pc: 2836 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 38 -┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ ┃ │ pc: 2836 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (18 steps) -┃ ┃ ├─ 40 -┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 42 -┃ ┃ │ k: #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 43 (split) -┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... -┃ ┃ │ pc: 610 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: { true #Equals VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int } -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 44 -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... -┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ├─ 46 -┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 48 -┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 192 ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (391 steps) -┃ ┃ ┃ ├─ 50 -┃ ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 224 68 224 32 ~> # ... -┃ ┃ ┃ │ pc: 2953 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 52 -┃ ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ ┃ ┃ │ pc: 2953 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (18 steps) -┃ ┃ ┃ ├─ 54 -┃ ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ ┃ │ pc: 0 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 56 -┃ ┃ ┃ │ k: #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 0 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 57 (split) -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... -┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: { true #Equals VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) } -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 58 -┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... -┃ ┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ┃ └─ 60 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 1 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) } -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 59 -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... -┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ └─ 61 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 1 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) } -┃ ┃ │ -┃ ┃ ├─ 45 -┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... -┃ ┃ │ pc: 610 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 47 -┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 49 -┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 192 3 ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (68 steps) -┃ ┃ ├─ 51 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 2852 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 53 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 2852 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ └─ 55 (leaf, terminal) -┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ pc: 2852 -┃ ┃ callDepth: 0 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┗━━┓ constraint: { true #Equals ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } -┃ │ -┃ ├─ 31 -┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (3 steps) -┃ ├─ 33 -┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 35 -┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (68 steps) -┃ ├─ 37 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2730 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 39 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2730 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ └─ 41 (leaf, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: 2730 -┃ callDepth: 0 -┃ statusCode: EVMC_REVERT -┃ -┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } - │ - ├─ 17 - │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - │ pc: 562 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ - │ (3 steps) - ├─ 19 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 21 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 23 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2613 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 25 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2613 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - └─ 27 (leaf, terminal) - k: #halt ~> CONTINUATION:K - pc: 2613 - callDepth: 0 - statusCode: EVMC_REVERT - - -┌─ 10 (root, leaf, target, terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: PC_CELL_5d410f2a:Int -│ callDepth: CALLDEPTH_CELL_5d410f2a:Int -│ statusCode: STATUSCODE_FINAL:StatusCode - - diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected deleted file mode 100644 index 3a7aefa24..000000000 --- a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected +++ /dev/null @@ -1,161 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (363 steps) -├─ 3 -│ k: STATICCALL 0 CONTRACT_ID:Int 128 36 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #accessAccounts CONTRACT_ID:Int ~> #checkCall CONTRACT_ID:Int 0 ~> #call CONTRAC ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (3 steps) -├─ 5 (split) -│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: { true #Equals CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... -┃ │ pc: 148 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (15 steps) -┃ ├─ 8 -┃ │ k: #precompiled? ( CONTRACT_ID:Int , SHANGHAI ) ~> #execute ~> #return 128 32 ~> #p ... -┃ │ pc: 0 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 10 -┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (3 steps) -┃ ├─ 12 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 14 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (324 steps) -┃ ├─ 16 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 18 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 20 (terminal) -┃ │ k: #halt ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ ┊ constraint: OMITTED CONSTRAINT -┃ ┊ subst: OMITTED SUBST -┃ └─ 2 (leaf, target, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: PC_CELL_5d410f2a:Int -┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ -┗━━┓ constraint: { true #Equals 1024 <=Int CALLDEPTH_CELL:Int } - │ - ├─ 7 - │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (4 steps) - ├─ 9 - │ k: #end EVMC_CALL_DEPTH_EXCEEDED ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 11 - │ k: #halt ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 b"\xac7\xee\x ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 13 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 15 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #pc [ STATICCALL ] ~> #execute ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (66 steps) - ├─ 17 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 19 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 21 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - ┊ constraint: OMITTED CONSTRAINT - ┊ subst: OMITTED SUBST - └─ 2 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - From a7d3a2c1d24d844e465d6a35487451821a430418 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 12 Mar 2024 17:54:55 +0000 Subject: [PATCH 75/91] updating expected outputs --- .gitignore | 1 + ...t_double_add(uint256,uint256).cse.expected | 12 +- ...d_double_sub(uint256,uint256).cse.expected | 149 +++--------------- .../Identity.applyOp(uint256).cse.expected | 4 +- 4 files changed, 32 insertions(+), 134 deletions(-) diff --git a/.gitignore b/.gitignore index 6b454b38c..3670c3fa9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store /dist/ __pycache__/ .coverage diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected index 893b07fc4..42490cc50 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected @@ -90,7 +90,7 @@ │ statusCode: STATUSCODE:StatusCode ┃ ┃ (branch) -┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ │ ┃ ├─ 16 ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... @@ -148,7 +148,7 @@ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ (branch) -┃ ┣━━┓ constraint: { true #Equals ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) } +┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ │ ┃ ┃ ├─ 30 ┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... @@ -178,7 +178,7 @@ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: { true #Equals VV0_x_114b9705:Int #pc [ JUM ... @@ -264,7 +264,7 @@ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: { true #Equals VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) } +┃ ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ ├─ 58 ┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... @@ -273,94 +273,13 @@ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ┃ ├─ 60 -┃ ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 62 -┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 224 ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (264 steps) -┃ ┃ ┃ ┃ ├─ 64 (split) -┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... -┃ ┃ ┃ ┃ │ pc: 3015 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┃ ┣━━┓ constraint: { true #Equals ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 } -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ ├─ 66 -┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... -┃ ┃ ┃ ┃ ┃ │ pc: 3015 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ┃ ┃ ├─ 69 -┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ┃ ├─ 72 -┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ┃ └─ 74 (leaf, terminal) -┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ pc: 3736 -┃ ┃ ┃ ┃ ┃ callDepth: 0 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ) } -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 67 -┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... -┃ ┃ ┃ ┃ │ pc: 3015 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (60 steps) -┃ ┃ ┃ ┃ ├─ 70 -┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 73 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ├─ 75 (terminal) -┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┊ constraint: true -┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) -┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int -┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ ┃ └─ 60 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 128 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) } +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) ┃ ┃ ┃ │ ┃ ┃ ┃ ├─ 59 ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... @@ -369,41 +288,13 @@ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ├─ 61 -┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 63 -┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 224 3 ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (68 steps) -┃ ┃ ┃ ├─ 65 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 2969 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 68 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 2969 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ └─ 71 (leaf, terminal) -┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ pc: 2969 -┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ └─ 61 (leaf, pending) +┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ pc: 550 +┃ ┃ ┃ callDepth: 1 ┃ ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: { true #Equals ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) } +┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ┃ ┃ │ ┃ ┃ ├─ 45 ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... @@ -446,7 +337,7 @@ ┃ ┃ callDepth: 0 ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ -┃ ┗━━┓ constraint: { true #Equals ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } +┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ │ ┃ ├─ 31 ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... @@ -489,7 +380,7 @@ ┃ callDepth: 0 ┃ statusCode: EVMC_REVERT ┃ -┗━━┓ constraint: { true #Equals ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) } +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) │ ├─ 17 │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... @@ -533,4 +424,10 @@ statusCode: EVMC_REVERT +┌─ 10 (root, leaf, target, terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: PC_CELL_5d410f2a:Int +│ callDepth: CALLDEPTH_CELL_5d410f2a:Int +│ statusCode: STATUSCODE_FINAL:StatusCode + diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected index 3a7aefa24..4efb0443a 100644 --- a/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected @@ -27,7 +27,7 @@ │ statusCode: STATUSCODE:StatusCode ┃ ┃ (branch) -┣━━┓ constraint: { true #Equals CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... @@ -92,7 +92,7 @@ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int ┃ statusCode: STATUSCODE_FINAL:StatusCode ┃ -┗━━┓ constraint: { true #Equals 1024 <=Int CALLDEPTH_CELL:Int } +┗━━┓ constraint: 1024 <=Int CALLDEPTH_CELL:Int │ ├─ 7 │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... From c6012d271ce71e06fd19866fc7ea05c761f07e46 Mon Sep 17 00:00:00 2001 From: devops Date: Tue, 12 Mar 2024 17:55:50 +0000 Subject: [PATCH 76/91] Set Version: 0.1.197 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 9868d567e..14a76b6ab 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.195 +0.1.197 diff --git a/pyproject.toml b/pyproject.toml index 33e85820b..f827ddba0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.195" +version = "0.1.197" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index d29d8178a..2bc692b1d 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.195' +VERSION: Final = '0.1.197' From 50e6659b0432e9bc8268d1ea522d58e7119fdd3d Mon Sep 17 00:00:00 2001 From: devops Date: Tue, 12 Mar 2024 17:57:21 +0000 Subject: [PATCH 77/91] Set Version: 0.1.197 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index cf717c0ad..14a76b6ab 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.196 +0.1.197 diff --git a/pyproject.toml b/pyproject.toml index 2c12ced4b..f827ddba0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.196" +version = "0.1.197" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 1398c2803..2bc692b1d 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.196' +VERSION: Final = '0.1.197' From ef1147f4109c1f7a162fc53e517339ff69c05646 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 12 Mar 2024 17:59:55 +0000 Subject: [PATCH 78/91] name correction for CI job --- .github/workflows/test-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml index 1cce3c581..487fdbd84 100644 --- a/.github/workflows/test-pr.yml +++ b/.github/workflows/test-pr.yml @@ -126,7 +126,7 @@ jobs: cse-tests: needs: code-quality-checks - name: 'Integration Tests' + name: 'CSE Tests' runs-on: [self-hosted, linux, normal, fast] strategy: fail-fast: false From 31e823b3e519642e96ad1648238bed2592fe32de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petar=20Maksimovi=C4=87?= Date: Tue, 12 Mar 2024 19:47:54 +0000 Subject: [PATCH 79/91] Update src/tests/integration/test-data/foundry-dependency-all MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Andrei Văcaru <16517508+anvacaru@users.noreply.github.com> --- src/tests/integration/test-data/foundry-dependency-all | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/integration/test-data/foundry-dependency-all b/src/tests/integration/test-data/foundry-dependency-all index 871e01142..323cc3f97 100644 --- a/src/tests/integration/test-data/foundry-dependency-all +++ b/src/tests/integration/test-data/foundry-dependency-all @@ -1,7 +1,7 @@ +AddConst.applyOp(uint256) ArithmeticCallTest.test_double_add(uint256,uint256) ArithmeticCallTest.test_double_add_double_sub(uint256,uint256) ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256) -AddConst.applyOp(uint256) CSETest.test_add_const(uint256,uint256) CSETest.test_identity(uint256,uint256) Identity.applyOp(uint256) From dd04e05c64b8392dce45dfdcdaaca257eff7eb56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petar=20Maksimovi=C4=87?= Date: Tue, 12 Mar 2024 19:48:05 +0000 Subject: [PATCH 80/91] Update src/tests/integration/test-data/foundry-dependency-skip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Andrei Văcaru <16517508+anvacaru@users.noreply.github.com> --- src/tests/integration/test-data/foundry-dependency-skip | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/integration/test-data/foundry-dependency-skip b/src/tests/integration/test-data/foundry-dependency-skip index cf13830d2..e468865ba 100644 --- a/src/tests/integration/test-data/foundry-dependency-skip +++ b/src/tests/integration/test-data/foundry-dependency-skip @@ -1,5 +1,5 @@ -ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256) AddConst.applyOp(uint256) -CSETest.test_identity(uint256,uint256) +ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256) CSETest.test_add_const(uint256,uint256) +CSETest.test_identity(uint256,uint256) Identity.identity(uint256) From 3ab1067b52dd854ba58d1df98b18e2faa85b1d59 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Tue, 12 Mar 2024 19:48:51 +0000 Subject: [PATCH 81/91] removing unused code --- src/tests/integration/test_kontrol_cse.py | 35 ----------------------- 1 file changed, 35 deletions(-) diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index bcaaf62af..53bb51256 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -102,40 +102,6 @@ def test_foundry_dependency_automated( if bug_report is not None: server._populate_bug_report(bug_report) - # FIXME: Currently commented out to minimise CI load - # prove_options = ProveOptions( - # max_iterations=50, - # bug_report=bug_report, - # cse=True, - # fail_fast=False, - # workers=2, - # ) - # - # # TODO: Execute without cse - # foundry_prove( - # foundry, - # tests=[(test_id, None)], - # prove_options=prove_options, - # rpc_options=RPCOptions(port=server.port, smt_timeout=500), - # ) - # - # show_res = foundry_show( - # foundry, - # test=test_id, - # to_module=False, - # sort_collections=True, - # omit_unstable_output=True, - # pending=False, - # failing=False, - # failure_info=False, - # counterexample_info=False, - # port=server.port, - # ) - # - # assert_or_update_show_output( - # show_res, TEST_DATA_DIR / f'show/{test_id}.no-cse.expected', update=update_expected_output - # ) - cse_prove_options = ProveOptions( max_iterations=50, bug_report=bug_report, @@ -144,7 +110,6 @@ def test_foundry_dependency_automated( workers=2, ) - # Execute with cse foundry_prove( foundry, tests=[(test_id, None)], From ac7cd09bafb99cd7fb6d471f85bdc69b279619f4 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 13 Mar 2024 10:15:15 +0000 Subject: [PATCH 82/91] bringing back execution without CSE for testing purposes --- src/tests/integration/test_kontrol_cse.py | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index 53bb51256..61065999c 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -102,6 +102,40 @@ def test_foundry_dependency_automated( if bug_report is not None: server._populate_bug_report(bug_report) + # Execution without CSE + prove_options = ProveOptions( + max_iterations=50, + bug_report=bug_report, + cse=True, + fail_fast=False, + workers=2, + ) + + foundry_prove( + foundry, + tests=[(test_id, None)], + prove_options=prove_options, + rpc_options=RPCOptions(port=server.port, smt_timeout=500), + ) + + show_res = foundry_show( + foundry, + test=test_id, + to_module=False, + sort_collections=True, + omit_unstable_output=True, + pending=False, + failing=False, + failure_info=False, + counterexample_info=False, + port=server.port, + ) + + assert_or_update_show_output( + show_res, TEST_DATA_DIR / f'show/{test_id}.no-cse.expected', update=update_expected_output + ) + + # Execution with CSE cse_prove_options = ProveOptions( max_iterations=50, bug_report=bug_report, From d21d2feb6c22347d7aa1f8e0e1691778d99814ae Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 13 Mar 2024 10:18:08 +0000 Subject: [PATCH 83/91] Set Version: 0.1.200 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index f20fb7e7c..3ca3fda95 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.199 +0.1.200 diff --git a/pyproject.toml b/pyproject.toml index e361a2a77..cc9374ac7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.199" +version = "0.1.200" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index a6c437794..6d2ac851e 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.199' +VERSION: Final = '0.1.200' From 765661a43237c3cf766e9cf00fd5cb212886c733 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Wed, 13 Mar 2024 14:40:49 +0000 Subject: [PATCH 84/91] adding expected output for no-cse tests --- ...ouble_add(uint256,uint256).no-cse.expected | 334 ++++++++++++++ ...d_double_sub(uint256,uint256).cse.expected | 133 +++++- ...ouble_sub(uint256,uint256).no-cse.expected | 433 ++++++++++++++++++ .../Identity.applyOp(uint256).no-cse.expected | 161 +++++++ 4 files changed, 1046 insertions(+), 15 deletions(-) create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected create mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected new file mode 100644 index 000000000..42490cc50 --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected @@ -0,0 +1,334 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (380 steps) +├─ 3 +│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (160 steps) +├─ 6 +│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 7 +│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 8 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 9 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (457 steps) +├─ 11 +│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... +│ pc: 2341 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 12 +│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +│ pc: 2341 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (18 steps) +├─ 13 +│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 14 +│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 15 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ │ +┃ ├─ 16 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 18 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (391 steps) +┃ ├─ 22 +┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... +┃ │ pc: 2458 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 24 +┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ │ pc: 2458 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (18 steps) +┃ ├─ 26 +┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 28 +┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 29 (split) +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 30 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 32 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 34 +┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (264 steps) +┃ ┃ ├─ 36 (split) +┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 46 (terminal) +┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 3736 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 45 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 3736 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ └─ 47 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 3736 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ │ +┃ ├─ 31 +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (3 steps) +┃ ├─ 33 +┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 35 +┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (68 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2474 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 40 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2474 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ └─ 43 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 2474 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) + │ + ├─ 17 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (3 steps) + ├─ 19 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 21 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 23 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2357 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 25 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2357 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + └─ 27 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 2357 + callDepth: 0 + statusCode: EVMC_REVERT + + + diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected index 22e01bcfd..f721c0f54 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected @@ -273,11 +273,92 @@ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ┃ └─ 60 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 1 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ├─ 60 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 62 +┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 224 ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (264 steps) +┃ ┃ ┃ ┃ ├─ 64 (split) +┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┃ ┣━━┓ constraint: ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 66 +┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ┃ ┃ ├─ 69 +┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ┃ ├─ 72 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ┃ └─ 74 (leaf, terminal) +┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ pc: 3736 +┃ ┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ) +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 67 +┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (60 steps) +┃ ┃ ┃ ┃ ├─ 70 +┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 73 +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ├─ 75 (terminal) +┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) ┃ ┃ ┃ │ @@ -288,10 +369,38 @@ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ └─ 61 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ├─ 61 +┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 63 +┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 224 3 ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (68 steps) +┃ ┃ ┃ ├─ 65 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 2969 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 68 +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 2969 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ └─ 71 (leaf, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 2969 +┃ ┃ ┃ callDepth: 0 ┃ ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) @@ -424,10 +533,4 @@ statusCode: EVMC_REVERT -┌─ 10 (root, leaf, target, terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: PC_CELL_5d410f2a:Int -│ callDepth: CALLDEPTH_CELL_5d410f2a:Int -│ statusCode: STATUSCODE_FINAL:StatusCode - diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected new file mode 100644 index 000000000..22e01bcfd --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected @@ -0,0 +1,433 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (380 steps) +├─ 3 +│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 5 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (160 steps) +├─ 6 +│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 7 +│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (2 steps) +├─ 8 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 9 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (478 steps) +├─ 11 +│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... +│ pc: 2597 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 12 +│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +│ pc: 2597 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (18 steps) +├─ 13 +│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 14 +│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 15 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ │ +┃ ├─ 16 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 18 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (391 steps) +┃ ├─ 22 +┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... +┃ │ pc: 2714 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 24 +┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ │ pc: 2714 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (18 steps) +┃ ├─ 26 +┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 28 +┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 29 (split) +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 30 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 32 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 34 +┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (399 steps) +┃ ┃ ├─ 36 +┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 192 68 192 32 ~> # ... +┃ ┃ │ pc: 2836 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ ┃ │ pc: 2836 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (18 steps) +┃ ┃ ├─ 40 +┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 42 +┃ ┃ │ k: #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 43 (split) +┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ +┃ ┃ ┃ (branch) +┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ ├─ 46 +┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 48 +┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 192 ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (391 steps) +┃ ┃ ┃ ├─ 50 +┃ ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 224 68 224 32 ~> # ... +┃ ┃ ┃ │ pc: 2953 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 52 +┃ ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ ┃ ┃ │ pc: 2953 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (18 steps) +┃ ┃ ┃ ├─ 54 +┃ ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ ┃ │ pc: 0 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 56 +┃ ┃ ┃ │ k: #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 0 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 57 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 58 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ ┃ └─ 60 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 128 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 59 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (3 steps) +┃ ┃ ┃ └─ 61 (leaf, pending) +┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ pc: 550 +┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 45 +┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (3 steps) +┃ ┃ ├─ 47 +┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 49 +┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 192 3 ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (68 steps) +┃ ┃ ├─ 51 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 2852 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 53 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 2852 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ └─ 55 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 2852 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ │ +┃ ├─ 31 +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (3 steps) +┃ ├─ 33 +┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 35 +┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (68 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2730 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 2730 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ └─ 41 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 2730 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) + │ + ├─ 17 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (3 steps) + ├─ 19 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 21 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 23 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2613 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 25 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 2613 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + └─ 27 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 2613 + callDepth: 0 + statusCode: EVMC_REVERT + + +┌─ 10 (root, leaf, target, terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: PC_CELL_5d410f2a:Int +│ callDepth: CALLDEPTH_CELL_5d410f2a:Int +│ statusCode: STATUSCODE_FINAL:StatusCode + + diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected new file mode 100644 index 000000000..4efb0443a --- /dev/null +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected @@ -0,0 +1,161 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (363 steps) +├─ 3 +│ k: STATICCALL 0 CONTRACT_ID:Int 128 36 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #accessAccounts CONTRACT_ID:Int ~> #checkCall CONTRACT_ID:Int 0 ~> #call CONTRAC ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (3 steps) +├─ 5 (split) +│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +┃ │ pc: 148 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (15 steps) +┃ ├─ 8 +┃ │ k: #precompiled? ( CONTRACT_ID:Int , SHANGHAI ) ~> #execute ~> #return 128 32 ~> #p ... +┃ │ pc: 0 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 10 +┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 0 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (3 steps) +┃ ├─ 12 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 14 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (324 steps) +┃ ├─ 16 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 18 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 20 (terminal) +┃ │ k: #halt ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ ┊ constraint: OMITTED CONSTRAINT +┃ ┊ subst: OMITTED SUBST +┃ └─ 2 (leaf, target, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: PC_CELL_5d410f2a:Int +┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ +┗━━┓ constraint: 1024 <=Int CALLDEPTH_CELL:Int + │ + ├─ 7 + │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (4 steps) + ├─ 9 + │ k: #end EVMC_CALL_DEPTH_EXCEEDED ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 11 + │ k: #halt ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 b"\xac7\xee\x ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 13 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 15 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #pc [ STATICCALL ] ~> #execute ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (66 steps) + ├─ 17 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_CALL_DEPTH_EXCEEDED + │ + │ (1 step) + ├─ 19 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 21 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + ┊ constraint: OMITTED CONSTRAINT + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + From 79cfee90a0e1aabb92bc6615d36f6a2cb9651ed4 Mon Sep 17 00:00:00 2001 From: devops Date: Wed, 13 Mar 2024 21:57:13 +0000 Subject: [PATCH 85/91] Set Version: 0.1.202 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 3c217797c..4b15d1658 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.201 +0.1.202 diff --git a/pyproject.toml b/pyproject.toml index b07a8fe2e..1b1491f2d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.201" +version = "0.1.202" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 4f6ffcf9e..2baabd5a4 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.201' +VERSION: Final = '0.1.202' From ad142c395a14003f04c8ab76829b98a32811a8f0 Mon Sep 17 00:00:00 2001 From: devops Date: Thu, 14 Mar 2024 09:43:53 +0000 Subject: [PATCH 86/91] Set Version: 0.1.204 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index ba218fdb0..19cae7caf 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.203 +0.1.204 diff --git a/pyproject.toml b/pyproject.toml index 9d89733df..2651e044f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.203" +version = "0.1.204" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index 074f385e0..fe477f651 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.203' +VERSION: Final = '0.1.204' From 63d4659d16c9a2aa9af319e72ed4bda5870c10a1 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Thu, 14 Mar 2024 14:06:05 +0000 Subject: [PATCH 87/91] updating expected outputs, correcting non-cse executions --- .../test-data/foundry-dependency-skip | 1 - ...t_double_add(uint256,uint256).cse.expected | 124 +- ...ouble_add(uint256,uint256).no-cse.expected | 124 +- ...d_double_sub(uint256,uint256).cse.expected | 248 +- ...ouble_sub(uint256,uint256).no-cse.expected | 349 +- ...rnal(uint256,uint256,uint256).cse.expected | 3138 +++-------------- ...l(uint256,uint256,uint256).no-cse.expected | 1498 +++----- .../Identity.applyOp(uint256).cse.expected | 24 +- .../Identity.applyOp(uint256).no-cse.expected | 24 +- src/tests/integration/test_kontrol_cse.py | 8 +- 10 files changed, 1826 insertions(+), 3712 deletions(-) diff --git a/src/tests/integration/test-data/foundry-dependency-skip b/src/tests/integration/test-data/foundry-dependency-skip index a11b95346..1f5c95550 100644 --- a/src/tests/integration/test-data/foundry-dependency-skip +++ b/src/tests/integration/test-data/foundry-dependency-skip @@ -1,3 +1,2 @@ CSETest.test_add_const(uint256,uint256) CSETest.test_identity(uint256,uint256) -Identity.applyOp(uint256) diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected index 42490cc50..d6f62929c 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected @@ -82,7 +82,7 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ -│ (1 step) +│ (341 steps) ├─ 15 (split) │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 @@ -98,50 +98,64 @@ ┃ │ callDepth: 1 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (3 steps) +┃ │ (126 steps) ┃ ├─ 18 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 22 ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 128 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 20 +┃ ├─ 24 ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... ┃ │ pc: 128 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (391 steps) -┃ ├─ 22 +┃ ├─ 26 ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... ┃ │ pc: 2458 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 24 +┃ ├─ 28 ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... ┃ │ pc: 2458 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (18 steps) -┃ ├─ 26 +┃ ├─ 30 ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ │ pc: 0 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 28 +┃ ├─ 32 ┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 0 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (1 step) -┃ ├─ 29 (split) +┃ │ (341 steps) +┃ ├─ 33 (split) ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 @@ -150,28 +164,42 @@ ┃ ┃ (branch) ┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 30 +┃ ┃ ├─ 34 ┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 32 +┃ ┃ │ (126 steps) +┃ ┃ ├─ 36 +┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 40 ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 128 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 34 +┃ ┃ ├─ 42 ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... ┃ ┃ │ pc: 128 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (264 steps) -┃ ┃ ├─ 36 (split) +┃ ┃ ├─ 44 (split) ┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ ├─ 52 ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 46 (terminal) +┃ ┃ ┃ ├─ 54 (terminal) ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ │ callDepth: 0 @@ -217,28 +245,28 @@ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 3736 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 45 +┃ ┃ ├─ 53 ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 3736 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (2 steps) -┃ ┃ └─ 47 (leaf, terminal) +┃ ┃ └─ 55 (leaf, terminal) ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ pc: 3736 ┃ ┃ callDepth: 0 @@ -246,42 +274,56 @@ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ │ -┃ ├─ 31 +┃ ├─ 35 ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (3 steps) -┃ ├─ 33 +┃ │ (63 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ ├─ 41 ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 550 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (1 step) -┃ ├─ 35 +┃ ├─ 43 ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... ┃ │ pc: 550 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (68 steps) -┃ ├─ 37 +┃ ├─ 45 ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 2474 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (1 step) -┃ ├─ 40 +┃ ├─ 48 ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 2474 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (2 steps) -┃ └─ 43 (leaf, terminal) +┃ └─ 51 (leaf, terminal) ┃ k: #halt ~> CONTINUATION:K ┃ pc: 2474 ┃ callDepth: 0 @@ -295,36 +337,50 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ - │ (3 steps) + │ (63 steps) ├─ 19 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 21 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 23 │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K │ pc: 550 │ callDepth: 1 │ statusCode: EVMC_REVERT │ │ (1 step) - ├─ 21 + ├─ 25 │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... │ pc: 550 │ callDepth: 1 │ statusCode: EVMC_REVERT │ │ (68 steps) - ├─ 23 + ├─ 27 │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K │ pc: 2357 │ callDepth: 0 │ statusCode: EVMC_REVERT │ │ (1 step) - ├─ 25 + ├─ 29 │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K │ pc: 2357 │ callDepth: 0 │ statusCode: EVMC_REVERT │ │ (2 steps) - └─ 27 (leaf, terminal) + └─ 31 (leaf, terminal) k: #halt ~> CONTINUATION:K pc: 2357 callDepth: 0 diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected index 42490cc50..d6f62929c 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected @@ -82,7 +82,7 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ -│ (1 step) +│ (341 steps) ├─ 15 (split) │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 @@ -98,50 +98,64 @@ ┃ │ callDepth: 1 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (3 steps) +┃ │ (126 steps) ┃ ├─ 18 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 22 ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 128 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 20 +┃ ├─ 24 ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... ┃ │ pc: 128 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (391 steps) -┃ ├─ 22 +┃ ├─ 26 ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... ┃ │ pc: 2458 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 24 +┃ ├─ 28 ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... ┃ │ pc: 2458 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (18 steps) -┃ ├─ 26 +┃ ├─ 30 ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ │ pc: 0 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 28 +┃ ├─ 32 ┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 0 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (1 step) -┃ ├─ 29 (split) +┃ │ (341 steps) +┃ ├─ 33 (split) ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 @@ -150,28 +164,42 @@ ┃ ┃ (branch) ┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 30 +┃ ┃ ├─ 34 ┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 32 +┃ ┃ │ (126 steps) +┃ ┃ ├─ 36 +┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 40 ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 128 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 34 +┃ ┃ ├─ 42 ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... ┃ ┃ │ pc: 128 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (264 steps) -┃ ┃ ├─ 36 (split) +┃ ┃ ├─ 44 (split) ┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ ├─ 52 ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 46 (terminal) +┃ ┃ ┃ ├─ 54 (terminal) ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ │ callDepth: 0 @@ -217,28 +245,28 @@ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 3736 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 45 +┃ ┃ ├─ 53 ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 3736 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (2 steps) -┃ ┃ └─ 47 (leaf, terminal) +┃ ┃ └─ 55 (leaf, terminal) ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ pc: 3736 ┃ ┃ callDepth: 0 @@ -246,42 +274,56 @@ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ │ -┃ ├─ 31 +┃ ├─ 35 ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (3 steps) -┃ ├─ 33 +┃ │ (63 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ ├─ 41 ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 550 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (1 step) -┃ ├─ 35 +┃ ├─ 43 ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... ┃ │ pc: 550 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (68 steps) -┃ ├─ 37 +┃ ├─ 45 ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 2474 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (1 step) -┃ ├─ 40 +┃ ├─ 48 ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 2474 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (2 steps) -┃ └─ 43 (leaf, terminal) +┃ └─ 51 (leaf, terminal) ┃ k: #halt ~> CONTINUATION:K ┃ pc: 2474 ┃ callDepth: 0 @@ -295,36 +337,50 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ - │ (3 steps) + │ (63 steps) ├─ 19 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 21 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 23 │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K │ pc: 550 │ callDepth: 1 │ statusCode: EVMC_REVERT │ │ (1 step) - ├─ 21 + ├─ 25 │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... │ pc: 550 │ callDepth: 1 │ statusCode: EVMC_REVERT │ │ (68 steps) - ├─ 23 + ├─ 27 │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K │ pc: 2357 │ callDepth: 0 │ statusCode: EVMC_REVERT │ │ (1 step) - ├─ 25 + ├─ 29 │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K │ pc: 2357 │ callDepth: 0 │ statusCode: EVMC_REVERT │ │ (2 steps) - └─ 27 (leaf, terminal) + └─ 31 (leaf, terminal) k: #halt ~> CONTINUATION:K pc: 2357 callDepth: 0 diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected index f721c0f54..8237ee4ca 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected @@ -82,7 +82,7 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ -│ (1 step) +│ (341 steps) ├─ 15 (split) │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 @@ -98,50 +98,64 @@ ┃ │ callDepth: 1 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (3 steps) +┃ │ (126 steps) ┃ ├─ 18 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 22 ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 128 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 20 +┃ ├─ 24 ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... ┃ │ pc: 128 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (391 steps) -┃ ├─ 22 +┃ ├─ 26 ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... ┃ │ pc: 2714 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 24 +┃ ├─ 28 ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... ┃ │ pc: 2714 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (18 steps) -┃ ├─ 26 +┃ ├─ 30 ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ │ pc: 0 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 28 +┃ ├─ 32 ┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 0 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (1 step) -┃ ├─ 29 (split) +┃ │ (341 steps) +┃ ├─ 33 (split) ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 @@ -150,56 +164,70 @@ ┃ ┃ (branch) ┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 30 +┃ ┃ ├─ 34 ┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 32 +┃ ┃ │ (126 steps) +┃ ┃ ├─ 36 +┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 40 ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 128 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 34 +┃ ┃ ├─ 42 ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... ┃ ┃ │ pc: 128 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (399 steps) -┃ ┃ ├─ 36 +┃ ┃ ├─ 44 ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 192 68 192 32 ~> # ... ┃ ┃ │ pc: 2836 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 38 +┃ ┃ ├─ 46 ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... ┃ ┃ │ pc: 2836 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (18 steps) -┃ ┃ ├─ 40 +┃ ┃ ├─ 48 ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ ┃ │ pc: 0 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 42 +┃ ┃ ├─ 50 ┃ ┃ │ k: #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 0 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 43 (split) +┃ ┃ │ (375 steps) +┃ ┃ ├─ 51 (split) ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ │ pc: 610 ┃ ┃ │ callDepth: 1 @@ -208,56 +236,70 @@ ┃ ┃ ┃ (branch) ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ ├─ 52 ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ├─ 46 +┃ ┃ ┃ │ (126 steps) +┃ ┃ ┃ ├─ 54 +┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 192 32 ~> #pc [ STATI ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 56 +┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 58 ┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 48 +┃ ┃ ┃ ├─ 60 ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 192 ... ┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (391 steps) -┃ ┃ ┃ ├─ 50 +┃ ┃ ┃ ├─ 62 ┃ ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 224 68 224 32 ~> # ... ┃ ┃ ┃ │ pc: 2953 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 52 +┃ ┃ ┃ ├─ 64 ┃ ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... ┃ ┃ ┃ │ pc: 2953 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (18 steps) -┃ ┃ ┃ ├─ 54 +┃ ┃ ┃ ├─ 66 ┃ ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ ┃ ┃ │ pc: 0 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 56 +┃ ┃ ┃ ├─ 68 ┃ ┃ ┃ │ k: #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 0 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 57 (split) +┃ ┃ ┃ │ (375 steps) +┃ ┃ ┃ ├─ 69 (split) ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 @@ -266,28 +308,42 @@ ┃ ┃ ┃ ┃ (branch) ┃ ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 58 +┃ ┃ ┃ ┃ ├─ 70 ┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ┃ ├─ 60 +┃ ┃ ┃ ┃ │ (126 steps) +┃ ┃ ┃ ┃ ├─ 72 +┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 224 32 ~> #pc [ STATI ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 74 +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ├─ 76 ┃ ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 62 +┃ ┃ ┃ ┃ ├─ 78 ┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 224 ... ┃ ┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ │ (264 steps) -┃ ┃ ┃ ┃ ├─ 64 (split) +┃ ┃ ┃ ┃ ├─ 80 (split) ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... ┃ ┃ ┃ ┃ │ pc: 3015 ┃ ┃ ┃ ┃ │ callDepth: 0 @@ -296,28 +352,28 @@ ┃ ┃ ┃ ┃ ┃ (branch) ┃ ┃ ┃ ┃ ┣━━┓ constraint: ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ ├─ 66 +┃ ┃ ┃ ┃ ┃ ├─ 82 ┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... ┃ ┃ ┃ ┃ ┃ │ pc: 3015 ┃ ┃ ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ┃ ┃ ├─ 69 +┃ ┃ ┃ ┃ ┃ ├─ 85 ┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ ┃ ┃ │ pc: 3736 ┃ ┃ ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ┃ ├─ 72 +┃ ┃ ┃ ┃ ┃ ├─ 88 ┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ ┃ ┃ │ pc: 3736 ┃ ┃ ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ┃ └─ 74 (leaf, terminal) +┃ ┃ ┃ ┃ ┃ └─ 90 (leaf, terminal) ┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ ┃ ┃ pc: 3736 ┃ ┃ ┃ ┃ ┃ callDepth: 0 @@ -325,28 +381,28 @@ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ) ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 67 +┃ ┃ ┃ ┃ ├─ 83 ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... ┃ ┃ ┃ ┃ │ pc: 3015 ┃ ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ │ (60 steps) -┃ ┃ ┃ ┃ ├─ 70 +┃ ┃ ┃ ┃ ├─ 86 ┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 73 +┃ ┃ ┃ ┃ ├─ 89 ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ├─ 75 (terminal) +┃ ┃ ┃ ┃ ├─ 91 (terminal) ┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ ┃ │ callDepth: 0 @@ -362,42 +418,56 @@ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 59 +┃ ┃ ┃ ├─ 71 ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ├─ 61 +┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ├─ 73 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 224 32 ~> #pc [ STATIC ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 75 +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 77 ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 550 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 63 +┃ ┃ ┃ ├─ 79 ┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 224 3 ... ┃ ┃ ┃ │ pc: 550 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ ┃ ┃ ┃ │ (68 steps) -┃ ┃ ┃ ├─ 65 +┃ ┃ ┃ ├─ 81 ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 2969 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 68 +┃ ┃ ┃ ├─ 84 ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 2969 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ └─ 71 (leaf, terminal) +┃ ┃ ┃ └─ 87 (leaf, terminal) ┃ ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ pc: 2969 ┃ ┃ ┃ callDepth: 0 @@ -405,42 +475,56 @@ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 45 +┃ ┃ ├─ 53 ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ │ pc: 610 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 47 +┃ ┃ │ (63 steps) +┃ ┃ ├─ 55 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 192 32 ~> #pc [ STATIC ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 57 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 59 ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 550 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 49 +┃ ┃ ├─ 61 ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 192 3 ... ┃ ┃ │ pc: 550 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (68 steps) -┃ ┃ ├─ 51 +┃ ┃ ├─ 63 ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 2852 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 53 +┃ ┃ ├─ 65 ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 2852 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (2 steps) -┃ ┃ └─ 55 (leaf, terminal) +┃ ┃ └─ 67 (leaf, terminal) ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ pc: 2852 ┃ ┃ callDepth: 0 @@ -448,42 +532,56 @@ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ │ -┃ ├─ 31 +┃ ├─ 35 ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (3 steps) -┃ ├─ 33 +┃ │ (63 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ ├─ 41 ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 550 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (1 step) -┃ ├─ 35 +┃ ├─ 43 ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... ┃ │ pc: 550 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (68 steps) -┃ ├─ 37 +┃ ├─ 45 ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 2730 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (1 step) -┃ ├─ 39 +┃ ├─ 47 ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 2730 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (2 steps) -┃ └─ 41 (leaf, terminal) +┃ └─ 49 (leaf, terminal) ┃ k: #halt ~> CONTINUATION:K ┃ pc: 2730 ┃ callDepth: 0 @@ -497,36 +595,50 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ - │ (3 steps) + │ (63 steps) ├─ 19 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 21 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 23 │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K │ pc: 550 │ callDepth: 1 │ statusCode: EVMC_REVERT │ │ (1 step) - ├─ 21 + ├─ 25 │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... │ pc: 550 │ callDepth: 1 │ statusCode: EVMC_REVERT │ │ (68 steps) - ├─ 23 + ├─ 27 │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K │ pc: 2613 │ callDepth: 0 │ statusCode: EVMC_REVERT │ │ (1 step) - ├─ 25 + ├─ 29 │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K │ pc: 2613 │ callDepth: 0 │ statusCode: EVMC_REVERT │ │ (2 steps) - └─ 27 (leaf, terminal) + └─ 31 (leaf, terminal) k: #halt ~> CONTINUATION:K pc: 2613 callDepth: 0 diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected index 22e01bcfd..8237ee4ca 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected @@ -82,7 +82,7 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ -│ (1 step) +│ (341 steps) ├─ 15 (split) │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 @@ -98,50 +98,64 @@ ┃ │ callDepth: 1 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (3 steps) +┃ │ (126 steps) ┃ ├─ 18 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 20 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 22 ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 128 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 20 +┃ ├─ 24 ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... ┃ │ pc: 128 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (391 steps) -┃ ├─ 22 +┃ ├─ 26 ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... ┃ │ pc: 2714 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 24 +┃ ├─ 28 ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... ┃ │ pc: 2714 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (18 steps) -┃ ├─ 26 +┃ ├─ 30 ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ │ pc: 0 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 28 +┃ ├─ 32 ┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 0 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (1 step) -┃ ├─ 29 (split) +┃ │ (341 steps) +┃ ├─ 33 (split) ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 @@ -150,56 +164,70 @@ ┃ ┃ (branch) ┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 30 +┃ ┃ ├─ 34 ┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 32 +┃ ┃ │ (126 steps) +┃ ┃ ├─ 36 +┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 40 ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 128 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 34 +┃ ┃ ├─ 42 ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... ┃ ┃ │ pc: 128 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (399 steps) -┃ ┃ ├─ 36 +┃ ┃ ├─ 44 ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 192 68 192 32 ~> # ... ┃ ┃ │ pc: 2836 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 38 +┃ ┃ ├─ 46 ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... ┃ ┃ │ pc: 2836 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (18 steps) -┃ ┃ ├─ 40 +┃ ┃ ├─ 48 ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ ┃ │ pc: 0 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 42 +┃ ┃ ├─ 50 ┃ ┃ │ k: #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 0 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 43 (split) +┃ ┃ │ (375 steps) +┃ ┃ ├─ 51 (split) ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ │ pc: 610 ┃ ┃ │ callDepth: 1 @@ -208,56 +236,70 @@ ┃ ┃ ┃ (branch) ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 44 +┃ ┃ ┃ ├─ 52 ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ├─ 46 +┃ ┃ ┃ │ (126 steps) +┃ ┃ ┃ ├─ 54 +┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 192 32 ~> #pc [ STATI ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 56 +┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 58 ┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 48 +┃ ┃ ┃ ├─ 60 ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 192 ... ┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (391 steps) -┃ ┃ ┃ ├─ 50 +┃ ┃ ┃ ├─ 62 ┃ ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 224 68 224 32 ~> # ... ┃ ┃ ┃ │ pc: 2953 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 52 +┃ ┃ ┃ ├─ 64 ┃ ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... ┃ ┃ ┃ │ pc: 2953 ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (18 steps) -┃ ┃ ┃ ├─ 54 +┃ ┃ ┃ ├─ 66 ┃ ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ ┃ ┃ │ pc: 0 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 56 +┃ ┃ ┃ ├─ 68 ┃ ┃ ┃ │ k: #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 0 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 57 (split) +┃ ┃ ┃ │ (375 steps) +┃ ┃ ┃ ├─ 69 (split) ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 @@ -266,72 +308,223 @@ ┃ ┃ ┃ ┃ (branch) ┃ ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 58 +┃ ┃ ┃ ┃ ├─ 70 ┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ ┃ └─ 60 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 1 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ (126 steps) +┃ ┃ ┃ ┃ ├─ 72 +┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 224 32 ~> #pc [ STATI ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 74 +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ├─ 76 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 78 +┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 224 ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (264 steps) +┃ ┃ ┃ ┃ ├─ 80 (split) +┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┃ ┣━━┓ constraint: ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 82 +┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ┃ ┃ ├─ 85 +┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ┃ ├─ 88 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ┃ └─ 90 (leaf, terminal) +┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ pc: 3736 +┃ ┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ) +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 83 +┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (60 steps) +┃ ┃ ┃ ┃ ├─ 86 +┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 89 +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ├─ 91 (terminal) +┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 59 +┃ ┃ ┃ ├─ 71 ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ │ (3 steps) -┃ ┃ ┃ └─ 61 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ├─ 73 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 224 32 ~> #pc [ STATIC ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 75 +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 77 +┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 79 +┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 224 3 ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (68 steps) +┃ ┃ ┃ ├─ 81 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 2969 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 84 +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 2969 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ └─ 87 (leaf, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 2969 +┃ ┃ ┃ callDepth: 0 ┃ ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 45 +┃ ┃ ├─ 53 ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ │ pc: 610 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (3 steps) -┃ ┃ ├─ 47 +┃ ┃ │ (63 steps) +┃ ┃ ├─ 55 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 192 32 ~> #pc [ STATIC ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 57 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 59 ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 550 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 49 +┃ ┃ ├─ 61 ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 192 3 ... ┃ ┃ │ pc: 550 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (68 steps) -┃ ┃ ├─ 51 +┃ ┃ ├─ 63 ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 2852 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (1 step) -┃ ┃ ├─ 53 +┃ ┃ ├─ 65 ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ ┃ │ pc: 2852 ┃ ┃ │ callDepth: 0 ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ │ ┃ ┃ │ (2 steps) -┃ ┃ └─ 55 (leaf, terminal) +┃ ┃ └─ 67 (leaf, terminal) ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ pc: 2852 ┃ ┃ callDepth: 0 @@ -339,42 +532,56 @@ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ │ -┃ ├─ 31 +┃ ├─ 35 ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (3 steps) -┃ ├─ 33 +┃ │ (63 steps) +┃ ├─ 37 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ ├─ 41 ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 550 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (1 step) -┃ ├─ 35 +┃ ├─ 43 ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... ┃ │ pc: 550 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (68 steps) -┃ ├─ 37 +┃ ├─ 45 ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 2730 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (1 step) -┃ ├─ 39 +┃ ├─ 47 ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 2730 ┃ │ callDepth: 0 ┃ │ statusCode: EVMC_REVERT ┃ │ ┃ │ (2 steps) -┃ └─ 41 (leaf, terminal) +┃ └─ 49 (leaf, terminal) ┃ k: #halt ~> CONTINUATION:K ┃ pc: 2730 ┃ callDepth: 0 @@ -388,46 +595,54 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ - │ (3 steps) + │ (63 steps) ├─ 19 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 21 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 23 │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K │ pc: 550 │ callDepth: 1 │ statusCode: EVMC_REVERT │ │ (1 step) - ├─ 21 + ├─ 25 │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... │ pc: 550 │ callDepth: 1 │ statusCode: EVMC_REVERT │ │ (68 steps) - ├─ 23 + ├─ 27 │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K │ pc: 2613 │ callDepth: 0 │ statusCode: EVMC_REVERT │ │ (1 step) - ├─ 25 + ├─ 29 │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K │ pc: 2613 │ callDepth: 0 │ statusCode: EVMC_REVERT │ │ (2 steps) - └─ 27 (leaf, terminal) + └─ 31 (leaf, terminal) k: #halt ~> CONTINUATION:K pc: 2613 callDepth: 0 statusCode: EVMC_REVERT -┌─ 10 (root, leaf, target, terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: PC_CELL_5d410f2a:Int -│ callDepth: CALLDEPTH_CELL_5d410f2a:Int -│ statusCode: STATUSCODE_FINAL:StatusCode - diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).cse.expected index 413a71710..353e93156 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).cse.expected @@ -82,2625 +82,623 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ -│ (3 steps) +│ (459 steps) ├─ 15 -│ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... │ pc: 279 │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 16 +│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 4 ... +│ pc: 279 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (18 steps) +├─ 17 +│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +│ pc: 0 +│ callDepth: 2 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 18 +│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... +│ pc: 0 +│ callDepth: 2 +│ statusCode: STATUSCODE:StatusCode +│ +│ (341 steps) +├─ 19 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 2 +│ statusCode: STATUSCODE:StatusCode ┃ -┃ (1 step) -┣━━┓ +┃ (branch) +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ │ -┃ ├─ 16 -┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ │ pc: 0 +┃ ├─ 20 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 ┃ │ callDepth: 2 ┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (126 steps) +┃ ├─ 22 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ │ pc: 128 +┃ │ callDepth: 2 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 24 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 2 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 26 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 2 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 28 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 128 +┃ │ callDepth: 2 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (297 steps) +┃ ├─ 30 (split) +┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ │ pc: 610 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS ┃ ┃ -┃ ┃ (1 step) -┃ ┣━━┓ +┃ ┃ (branch) +┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 32 +┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (140 steps) +┃ ┃ ├─ 35 +┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 41 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 44 +┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ ├─ 18 -┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... +┃ ┃ │ (408 steps) +┃ ┃ ├─ 47 +┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 100 160 32 ~> ... +┃ ┃ │ pc: 1692 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 50 +┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ ┃ │ pc: 1692 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (18 steps) +┃ ┃ ├─ 52 +┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 54 +┃ ┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (459 steps) +┃ ┃ ├─ 55 +┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... +┃ ┃ │ pc: 279 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 56 +┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 4 ... +┃ ┃ │ pc: 279 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (18 steps) +┃ ┃ ├─ 57 +┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... ┃ ┃ │ pc: 0 ┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 26 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 58 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 122 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 123 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 124 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 125 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 59 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 126 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 127 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 128 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 129 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 27 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 60 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 130 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 131 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 132 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 133 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 61 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 134 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 135 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 136 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 137 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 28 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 62 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 138 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 139 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 140 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 141 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 63 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 142 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 143 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 144 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 145 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ ├─ 29 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 64 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 146 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 147 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 148 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 149 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ ├─ 65 -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 150 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 151 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 152 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ └─ 153 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┣━━┓ +┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ ├─ 19 -┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... +┃ ┃ │ (1 step) +┃ ┃ ├─ 58 +┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~ ... ┃ ┃ │ pc: 0 ┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (341 steps) +┃ ┃ ├─ 59 (split) +┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ +┃ ┃ ┃ (branch) +┃ ┃ ┣━━┓ constraint: ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 30 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ ┃ ┃ ├─ 60 +┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... ┃ ┃ ┃ │ pc: 562 ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 66 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 154 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 155 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 156 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 157 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 67 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 158 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 159 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 160 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 161 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 31 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 +┃ ┃ ┃ │ (126 steps) +┃ ┃ ┃ ├─ 62 +┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 68 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 162 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 163 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 164 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 165 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 69 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 166 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 167 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 168 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 169 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 32 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 64 +┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 70 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 170 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 171 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 172 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 173 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 71 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 174 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 175 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 176 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 177 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ ├─ 33 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 72 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 178 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 179 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 180 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 181 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ ├─ 73 -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 182 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 183 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 184 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ └─ 185 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 20 -┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 34 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 66 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... +┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 74 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 186 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 187 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 188 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 189 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 75 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 190 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 191 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 192 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 193 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 35 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 68 +┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ ┃ ┃ │ pc: 128 ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 76 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 194 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 195 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 196 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 197 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 77 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 198 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 199 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 200 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 201 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 36 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode +┃ ┃ ┃ │ (297 steps) +┃ ┃ ┃ ├─ 70 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 72 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (140 steps) +┃ ┃ ┃ ┃ ├─ 75 +┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) ┃ ┃ ┃ ┃ ├─ 78 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ├─ 81 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 84 +┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (264 steps) +┃ ┃ ┃ ┃ ├─ 87 (split) +┃ ┃ ┃ ┃ │ k: JUMPI 1762 bool2Word ( VV0_x_114b9705:Int #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ ├─ 90 +┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 bool2Word ( VV0_x_114b9705:Int #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ (60 steps) +┃ ┃ ┃ ┃ ┃ ├─ 93 +┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 204 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ +┃ ┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ┃ ├─ 96 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ┃ ├─ 98 (terminal) +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 205 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 97 +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ └─ 99 (leaf, terminal) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 3736 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 73 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ├─ 76 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) ┃ ┃ ┃ ├─ 79 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 206 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 207 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 208 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 209 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 82 +┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 85 +┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (68 steps) +┃ ┃ ┃ ├─ 88 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 1708 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 92 +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 1708 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ └─ 95 (leaf, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1708 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ ┃ -┃ ┃ ┗━━┓ +┃ ┃ ┗━━┓ constraint: ( notBool ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ ┃ │ -┃ ┃ ├─ 37 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ ┃ ├─ 61 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 80 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 210 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 211 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 212 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 213 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ ├─ 81 -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 214 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 215 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 216 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ └─ 217 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (63 steps) +┃ ┃ ├─ 63 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 65 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 67 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 69 +┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (68 steps) +┃ ┃ ├─ 71 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 74 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 77 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 80 +┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (68 steps) +┃ ┃ ├─ 83 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 1708 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 86 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 1708 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ └─ 89 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 1708 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT ┃ ┃ -┃ ┗━━┓ +┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) +┃ │ +┃ ├─ 33 +┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ │ pc: 610 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (63 steps) +┃ ├─ 36 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT ┃ │ -┃ ├─ 21 -┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... -┃ │ pc: 0 -┃ │ callDepth: 2 -┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┃ (1 step) -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 38 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 82 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 218 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 219 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 220 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 221 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ ├─ 83 -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 222 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 223 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 224 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ └─ 225 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 39 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 84 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 226 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 227 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 228 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 229 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ ├─ 85 -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 230 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 231 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 232 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ └─ 233 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 40 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 86 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 234 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 235 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 236 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 237 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ ├─ 87 -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 238 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 239 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 240 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ └─ 241 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┗━━┓ -┃ │ -┃ ├─ 41 (split) -┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ │ pc: 562 -┃ │ callDepth: 2 -┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┃ (branch) -┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ │ -┃ ┃ ├─ 88 -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 242 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 243 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 244 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 128 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ └─ 245 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 128 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ -┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ │ -┃ ├─ 89 -┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ │ pc: 562 -┃ │ callDepth: 2 -┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┃ (1 step) -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ └─ 246 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ └─ 247 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ └─ 248 (leaf, pending) -┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ pc: 550 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┗━━┓ -┃ │ -┃ └─ 249 (leaf, pending) -┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ pc: 550 -┃ callDepth: 2 -┃ statusCode: EVMC_REVERT +┃ │ (2 steps) +┃ ├─ 42 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 45 +┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (68 steps) +┃ ├─ 48 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 1584 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 51 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 1584 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ └─ 53 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 1584 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT ┃ -┗━━┓ +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) │ - ├─ 17 - │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... - │ pc: 0 + ├─ 21 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 │ callDepth: 2 │ statusCode: STATUSCODE:StatusCode - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 22 - ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... - ┃ │ pc: 0 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 42 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 90 - ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ │ pc: 562 - ┃ ┃ ┃ │ callDepth: 2 - ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┃ (1 step) - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 250 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 251 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 252 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┗━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 253 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ ├─ 91 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 254 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 255 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 256 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 257 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 43 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 92 - ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ │ pc: 562 - ┃ ┃ ┃ │ callDepth: 2 - ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┃ (1 step) - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 258 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 259 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 260 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┗━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 261 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ ├─ 93 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 262 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 263 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 264 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 265 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 44 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 94 - ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ │ pc: 562 - ┃ ┃ ┃ │ callDepth: 2 - ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┃ (1 step) - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 266 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 267 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 268 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┗━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 269 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ ├─ 95 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 270 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 271 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 272 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 273 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 45 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ ├─ 96 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 274 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 275 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 276 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 277 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 128 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ ├─ 97 - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ └─ 278 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ └─ 279 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ └─ 280 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ └─ 281 (leaf, pending) - ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ pc: 550 - ┃ callDepth: 2 - ┃ statusCode: EVMC_REVERT - ┃ - ┣━━┓ - ┃ │ - ┃ ├─ 23 - ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... - ┃ │ pc: 0 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 46 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 98 - ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ │ pc: 562 - ┃ ┃ ┃ │ callDepth: 2 - ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┃ (1 step) - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 282 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 283 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 284 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┗━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 285 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ ├─ 99 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 286 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 287 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 288 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 289 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 47 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 100 - ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ │ pc: 562 - ┃ ┃ ┃ │ callDepth: 2 - ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┃ (1 step) - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 290 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 291 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 292 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┗━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 293 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ ├─ 101 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 294 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 295 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 296 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 297 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 48 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 102 - ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ │ pc: 562 - ┃ ┃ ┃ │ callDepth: 2 - ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┃ (1 step) - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 298 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 299 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 300 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┗━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 301 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ ├─ 103 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 302 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 303 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 304 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 305 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 49 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ ├─ 104 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 306 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 307 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 308 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 309 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 128 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ ├─ 105 - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ └─ 310 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ └─ 311 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ └─ 312 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ └─ 313 (leaf, pending) - ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ pc: 550 - ┃ callDepth: 2 - ┃ statusCode: EVMC_REVERT - ┃ - ┣━━┓ - ┃ │ - ┃ ├─ 24 - ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... - ┃ │ pc: 0 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 50 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 106 - ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ │ pc: 562 - ┃ ┃ ┃ │ callDepth: 2 - ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┃ (1 step) - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 314 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 315 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 316 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┗━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 317 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ ├─ 107 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 318 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 319 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 320 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 321 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 51 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ ├─ 108 - ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ │ pc: 562 - ┃ ┃ ┃ │ callDepth: 2 - ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┃ (1 step) - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 322 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 323 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┣━━┓ - ┃ ┃ ┃ ┃ │ - ┃ ┃ ┃ ┃ └─ 324 (leaf, pending) - ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ ┃ - ┃ ┃ ┃ ┗━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 325 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 128 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_SUCCESS - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ ├─ 109 - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (1 step) - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 326 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 327 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┣━━┓ - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 328 (leaf, pending) - ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ ┃ pc: 550 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ - ┃ ┃ │ - ┃ ┃ └─ 329 (leaf, pending) - ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - ┃ ┃ pc: 550 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: EVMC_REVERT - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 52 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 110 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 111 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 53 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 112 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 113 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┗━━┓ - │ - ├─ 25 - │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... - │ pc: 0 - │ callDepth: 2 - │ statusCode: STATUSCODE:StatusCode - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 54 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 114 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 115 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┣━━┓ - ┃ │ - ┃ ├─ 55 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 116 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 117 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┣━━┓ - ┃ │ - ┃ ├─ 56 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 118 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 119 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┗━━┓ - │ - ├─ 57 (split) - │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - │ pc: 562 - │ callDepth: 2 - │ statusCode: STATUSCODE:StatusCode - ┃ - ┃ (branch) - ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ │ - ┃ └─ 120 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - │ - └─ 121 (leaf, pending) - k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - pc: 562 - callDepth: 2 - statusCode: STATUSCODE:StatusCode - + │ + │ (63 steps) + ├─ 23 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 25 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 27 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 29 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 31 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 34 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 37 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 40 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 43 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 1584 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 46 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 1584 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + └─ 49 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 1584 + callDepth: 0 + statusCode: EVMC_REVERT -┌─ 10 (root, leaf, target, terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: PC_CELL_5d410f2a:Int -│ callDepth: CALLDEPTH_CELL_5d410f2a:Int -│ statusCode: STATUSCODE_FINAL:StatusCode diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected index 632ef0d91..353e93156 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected @@ -82,975 +82,623 @@ │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ -│ (3 steps) +│ (459 steps) ├─ 15 -│ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... │ pc: 279 │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 16 +│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 4 ... +│ pc: 279 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +│ +│ (18 steps) +├─ 17 +│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +│ pc: 0 +│ callDepth: 2 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 18 +│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... +│ pc: 0 +│ callDepth: 2 +│ statusCode: STATUSCODE:StatusCode +│ +│ (341 steps) +├─ 19 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 2 +│ statusCode: STATUSCODE:StatusCode ┃ -┃ (1 step) -┣━━┓ +┃ (branch) +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ │ +┃ ├─ 20 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 2 +┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ ├─ 16 -┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ │ pc: 0 +┃ │ (126 steps) +┃ ├─ 22 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ │ pc: 128 ┃ │ callDepth: 2 ┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 24 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 2 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 26 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 2 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (1 step) +┃ ├─ 28 +┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ │ pc: 128 +┃ │ callDepth: 2 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (297 steps) +┃ ├─ 30 (split) +┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ │ pc: 610 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS ┃ ┃ -┃ ┃ (1 step) -┃ ┣━━┓ +┃ ┃ (branch) +┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 32 +┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (140 steps) +┃ ┃ ├─ 35 +┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 38 +┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 41 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ ├─ 18 -┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... +┃ ┃ │ (1 step) +┃ ┃ ├─ 44 +┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (408 steps) +┃ ┃ ├─ 47 +┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 100 160 32 ~> ... +┃ ┃ │ pc: 1692 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 50 +┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... +┃ ┃ │ pc: 1692 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (18 steps) +┃ ┃ ├─ 52 +┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 54 +┃ ┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (459 steps) +┃ ┃ ├─ 55 +┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... +┃ ┃ │ pc: 279 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 56 +┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 4 ... +┃ ┃ │ pc: 279 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (18 steps) +┃ ┃ ├─ 57 +┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... +┃ ┃ │ pc: 0 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 58 +┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~ ... ┃ ┃ │ pc: 0 ┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (341 steps) +┃ ┃ ├─ 59 (split) +┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ +┃ ┃ ┃ (branch) +┃ ┃ ┣━━┓ constraint: ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 26 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ ┃ ┃ ├─ 60 +┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... ┃ ┃ ┃ │ pc: 562 ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (126 steps) +┃ ┃ ┃ ├─ 62 +┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 2 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 64 +┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 2 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 66 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 2 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 68 +┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 2 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (297 steps) +┃ ┃ ┃ ├─ 70 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 58 -┃ ┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode +┃ ┃ ┃ ┃ ├─ 72 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (140 steps) +┃ ┃ ┃ ┃ ├─ 75 +┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 78 +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ├─ 81 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 84 +┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (264 steps) +┃ ┃ ┃ ┃ ├─ 87 (split) +┃ ┃ ┃ ┃ │ k: JUMPI 1762 bool2Word ( VV0_x_114b9705:Int #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ ├─ 90 +┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 bool2Word ( VV0_x_114b9705:Int #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ (60 steps) +┃ ┃ ┃ ┃ ┃ ├─ 93 +┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ┃ ├─ 96 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ ┃ ├─ 98 (terminal) +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ └─ 124 (leaf, pending) -┃ ┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode ┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ +┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 128 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 59 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (1 step) -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 126 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 127 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┣━━┓ -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 128 (leaf, pending) -┃ ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ ┃ pc: 550 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 129 (leaf, pending) -┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ ┃ ┃ pc: 550 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 27 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 60 (leaf, pending) -┃ ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ pc: 562 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode +┃ ┃ ┃ ┃ ├─ 91 +┃ ┃ ┃ ┃ │ k: JUMPI 1762 bool2Word ( VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ┃ ├─ 97 +┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 3736 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ┃ └─ 99 (leaf, terminal) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 3736 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) ) ┃ ┃ ┃ │ -┃ ┃ ┃ └─ 61 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 28 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 62 (leaf, pending) -┃ ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ pc: 562 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ ├─ 73 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ └─ 63 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ ├─ 29 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 64 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ └─ 65 (leaf, pending) -┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ pc: 562 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 19 -┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 30 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 66 (leaf, pending) -┃ ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ pc: 562 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ├─ 76 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ └─ 67 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 31 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 68 (leaf, pending) -┃ ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ pc: 562 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 79 +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ -┃ ┃ ┃ └─ 69 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 32 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 70 (leaf, pending) -┃ ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ pc: 562 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ ├─ 82 +┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ -┃ ┃ ┃ └─ 71 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ -┃ ┃ │ -┃ ┃ ├─ 33 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 72 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ └─ 73 (leaf, pending) -┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ pc: 562 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 20 -┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (1 step) -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 34 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 74 (leaf, pending) -┃ ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ pc: 562 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 85 +┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ -┃ ┃ ┃ └─ 75 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 35 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 76 (leaf, pending) -┃ ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ pc: 562 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ (68 steps) +┃ ┃ ┃ ├─ 88 +┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 1708 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ -┃ ┃ ┃ └─ 77 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┣━━┓ -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 36 (split) -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ └─ 78 (leaf, pending) -┃ ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ ┃ pc: 562 -┃ ┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ (1 step) +┃ ┃ ┃ ├─ 92 +┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 1708 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_REVERT ┃ ┃ ┃ │ -┃ ┃ ┃ └─ 79 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode +┃ ┃ ┃ │ (2 steps) +┃ ┃ ┃ └─ 95 (leaf, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1708 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ ┃ -┃ ┃ ┗━━┓ +┃ ┃ ┗━━┓ constraint: ( notBool ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ ┃ │ -┃ ┃ ├─ 37 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ ┃ ├─ 61 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 80 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ └─ 81 (leaf, pending) -┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ pc: 562 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: STATUSCODE:StatusCode +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (63 steps) +┃ ┃ ├─ 63 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 65 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 67 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 69 +┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (68 steps) +┃ ┃ ├─ 71 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 74 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ ├─ 77 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 80 +┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (68 steps) +┃ ┃ ├─ 83 +┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 1708 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (1 step) +┃ ┃ ├─ 86 +┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 1708 +┃ ┃ │ callDepth: 0 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (2 steps) +┃ ┃ └─ 89 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 1708 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT ┃ ┃ -┃ ┗━━┓ +┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) +┃ │ +┃ ├─ 33 +┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ │ pc: 610 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (63 steps) +┃ ├─ 36 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ ├─ 21 -┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... -┃ │ pc: 0 -┃ │ callDepth: 2 -┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┃ (1 step) -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 38 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 82 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ └─ 83 (leaf, pending) -┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ pc: 562 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 39 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 84 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ └─ 85 (leaf, pending) -┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ pc: 562 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 40 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ └─ 86 (leaf, pending) -┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ ┃ pc: 562 -┃ ┃ ┃ callDepth: 2 -┃ ┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ └─ 87 (leaf, pending) -┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ pc: 562 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┗━━┓ -┃ │ -┃ ├─ 41 (split) -┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ │ pc: 562 -┃ │ callDepth: 2 -┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┃ (branch) -┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ │ -┃ ┃ └─ 88 (leaf, pending) -┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ ┃ pc: 562 -┃ ┃ callDepth: 2 -┃ ┃ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ │ -┃ └─ 89 (leaf, pending) -┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ pc: 562 -┃ callDepth: 2 -┃ statusCode: STATUSCODE:StatusCode +┃ │ (1 step) +┃ ├─ 39 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ ├─ 42 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 45 +┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (68 steps) +┃ ├─ 48 +┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 1584 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (1 step) +┃ ├─ 51 +┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 1584 +┃ │ callDepth: 0 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (2 steps) +┃ └─ 53 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 1584 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT ┃ -┗━━┓ +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) │ - ├─ 17 - │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... - │ pc: 0 + ├─ 21 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 │ callDepth: 2 │ statusCode: STATUSCODE:StatusCode - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 22 - ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... - ┃ │ pc: 0 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 42 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 90 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 91 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 43 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 92 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 93 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 44 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 94 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 95 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 45 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 96 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 97 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┣━━┓ - ┃ │ - ┃ ├─ 23 - ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... - ┃ │ pc: 0 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 46 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 98 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 99 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 47 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 100 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 101 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 48 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 102 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 103 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 49 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 104 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 105 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┣━━┓ - ┃ │ - ┃ ├─ 24 - ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... - ┃ │ pc: 0 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (1 step) - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 50 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 106 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 107 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 51 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 108 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 109 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┣━━┓ - ┃ ┃ │ - ┃ ┃ ├─ 52 (split) - ┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ │ pc: 562 - ┃ ┃ │ callDepth: 2 - ┃ ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┃ (branch) - ┃ ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ ┃ │ - ┃ ┃ ┃ └─ 110 (leaf, pending) - ┃ ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ ┃ pc: 562 - ┃ ┃ ┃ callDepth: 2 - ┃ ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ ┃ - ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ ┃ │ - ┃ ┃ └─ 111 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ - ┃ │ - ┃ ├─ 53 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 112 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 113 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┗━━┓ - │ - ├─ 25 - │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... - │ pc: 0 - │ callDepth: 2 - │ statusCode: STATUSCODE:StatusCode - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 54 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 114 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 115 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┣━━┓ - ┃ │ - ┃ ├─ 55 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 116 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 117 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┣━━┓ - ┃ │ - ┃ ├─ 56 (split) - ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ │ pc: 562 - ┃ │ callDepth: 2 - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┃ (branch) - ┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ ┃ │ - ┃ ┃ └─ 118 (leaf, pending) - ┃ ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ ┃ pc: 562 - ┃ ┃ callDepth: 2 - ┃ ┃ statusCode: STATUSCODE:StatusCode - ┃ ┃ - ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - ┃ │ - ┃ └─ 119 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┗━━┓ - │ - ├─ 57 (split) - │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - │ pc: 562 - │ callDepth: 2 - │ statusCode: STATUSCODE:StatusCode - ┃ - ┃ (branch) - ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) - ┃ │ - ┃ └─ 120 (leaf, pending) - ┃ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - ┃ pc: 562 - ┃ callDepth: 2 - ┃ statusCode: STATUSCODE:StatusCode - ┃ - ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - │ - └─ 121 (leaf, pending) - k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - pc: 562 - callDepth: 2 - statusCode: STATUSCODE:StatusCode - + │ + │ (63 steps) + ├─ 23 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: STATUSCODE:StatusCode + │ + │ (1 step) + ├─ 25 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 27 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 29 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 31 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 34 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + ├─ 37 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 40 + │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (68 steps) + ├─ 43 + │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 1584 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (1 step) + ├─ 46 + │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K + │ pc: 1584 + │ callDepth: 0 + │ statusCode: EVMC_REVERT + │ + │ (2 steps) + └─ 49 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 1584 + callDepth: 0 + statusCode: EVMC_REVERT -┌─ 10 (root, leaf, target, terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: PC_CELL_5d410f2a:Int -│ callDepth: CALLDEPTH_CELL_5d410f2a:Int -│ statusCode: STATUSCODE_FINAL:StatusCode diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected index 4efb0443a..f38c0b4d8 100644 --- a/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected @@ -49,36 +49,50 @@ ┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (3 steps) +┃ │ (328 steps) ┃ ├─ 12 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 14 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 16 ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 14 +┃ ├─ 18 ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... ┃ │ pc: 87 ┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (324 steps) -┃ ├─ 16 +┃ ├─ 20 ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: CALLDEPTH_CELL:Int ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 18 +┃ ├─ 22 ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: CALLDEPTH_CELL:Int ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (2 steps) -┃ ├─ 20 (terminal) +┃ ├─ 23 (terminal) ┃ │ k: #halt ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: CALLDEPTH_CELL:Int diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected index 4efb0443a..f38c0b4d8 100644 --- a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected @@ -49,36 +49,50 @@ ┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (3 steps) +┃ │ (328 steps) ┃ ├─ 12 +┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (1 step) +┃ ├─ 14 +┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (2 steps) +┃ ├─ 16 ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 14 +┃ ├─ 18 ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... ┃ │ pc: 87 ┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (324 steps) -┃ ├─ 16 +┃ ├─ 20 ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: CALLDEPTH_CELL:Int ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (1 step) -┃ ├─ 18 +┃ ├─ 22 ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: CALLDEPTH_CELL:Int ┃ │ statusCode: EVMC_SUCCESS ┃ │ ┃ │ (2 steps) -┃ ├─ 20 (terminal) +┃ ├─ 23 (terminal) ┃ │ k: #halt ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: CALLDEPTH_CELL:Int diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index 16c5858c7..c363133e3 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -104,9 +104,10 @@ def test_foundry_dependency_automated( # Execution without CSE prove_options = ProveOptions( - max_iterations=50, + max_depth=10000, + max_iterations=100, bug_report=bug_report, - cse=True, + cse=False, fail_fast=False, workers=2, ) @@ -137,7 +138,8 @@ def test_foundry_dependency_automated( # Execution with CSE cse_prove_options = ProveOptions( - max_iterations=50, + max_depth=10000, + max_iterations=100, bug_report=bug_report, cse=True, fail_fast=False, From f312d028265b5fb3ff6ca7e085d0348e8140e717 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Thu, 14 Mar 2024 16:15:35 +0000 Subject: [PATCH 88/91] removing no-cse and updating expected outputs --- .../AddConst.applyOp(uint256).cse.expected | 36 +- .../AddConst.applyOp(uint256).no-cse.expected | 91 - ...t_double_add(uint256,uint256).cse.expected | 302 +-- ...ouble_add(uint256,uint256).no-cse.expected | 390 ---- ...d_double_sub(uint256,uint256).cse.expected | 522 +---- ...ouble_sub(uint256,uint256).no-cse.expected | 648 ------ ...rnal(uint256,uint256,uint256).cse.expected | 1840 +++++++++++------ ...l(uint256,uint256,uint256).no-cse.expected | 704 ------- .../Identity.applyOp(uint256).cse.expected | 125 +- .../Identity.applyOp(uint256).no-cse.expected | 175 -- .../Identity.identity(uint256).cse.expected | 18 +- ...Identity.identity(uint256).no-cse.expected | 38 - src/tests/integration/test_kontrol_cse.py | 35 +- 13 files changed, 1302 insertions(+), 3622 deletions(-) delete mode 100644 src/tests/integration/test-data/show/AddConst.applyOp(uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected delete mode 100644 src/tests/integration/test-data/show/Identity.identity(uint256).no-cse.expected diff --git a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).cse.expected b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).cse.expected index 48504adf5..95f1df4af 100644 --- a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).cse.expected +++ b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).cse.expected @@ -21,22 +21,8 @@ ┃ │ callDepth: CALLDEPTH_CELL:Int ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (119 steps) -┃ ├─ 6 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 8 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 10 (terminal) +┃ │ (122 steps) +┃ ├─ 6 (terminal) ┃ │ k: #halt ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: CALLDEPTH_CELL:Int @@ -58,22 +44,8 @@ │ callDepth: CALLDEPTH_CELL:Int │ statusCode: STATUSCODE:StatusCode │ - │ (44 steps) - ├─ 7 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 179 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 9 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 179 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 11 (terminal) + │ (47 steps) + ├─ 7 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 179 │ callDepth: CALLDEPTH_CELL:Int diff --git a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).no-cse.expected b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).no-cse.expected deleted file mode 100644 index 48504adf5..000000000 --- a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).no-cse.expected +++ /dev/null @@ -1,91 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (324 steps) -├─ 3 (split) -│ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... -│ pc: 158 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTRACT_STORAGE:Map , 0 ) ) -┃ │ -┃ ├─ 4 -┃ │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... -┃ │ pc: 158 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (119 steps) -┃ ├─ 6 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 8 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 10 (terminal) -┃ │ k: #halt ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ ┊ constraint: OMITTED CONSTRAINT -┃ ┊ subst: OMITTED SUBST -┃ └─ 2 (leaf, target, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: PC_CELL_5d410f2a:Int -┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ -┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTRACT_STORAGE:Map , 0 ) ) ) - │ - ├─ 5 - │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... - │ pc: 158 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (44 steps) - ├─ 7 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 179 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 9 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 179 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 11 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 179 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - ┊ constraint: OMITTED CONSTRAINT - ┊ subst: OMITTED SUBST - └─ 2 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected index d6f62929c..09a938705 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).cse.expected @@ -5,85 +5,29 @@ │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ -│ (380 steps) +│ (383 steps) ├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 │ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... │ pc: 30 │ callDepth: 1 │ statusCode: EVMC_SUCCESS │ -│ (160 steps) -├─ 6 -│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 7 -│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 8 (terminal) +│ (163 steps) +├─ 4 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 248 │ callDepth: 0 │ statusCode: EVMC_SUCCESS │ │ (1 step) -├─ 9 +├─ 5 │ k: #execute ~> CONTINUATION:K │ pc: 0 │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ -│ (457 steps) -├─ 11 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -│ pc: 2341 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 12 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -│ pc: 2341 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 13 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 14 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (341 steps) -├─ 15 (split) +│ (818 steps) +├─ 7 (split) │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 │ callDepth: 1 @@ -92,70 +36,14 @@ ┃ (branch) ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ │ -┃ ├─ 16 +┃ ├─ 8 ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... ┃ │ pc: 562 ┃ │ callDepth: 1 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (126 steps) -┃ ├─ 18 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 20 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 22 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 24 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (391 steps) -┃ ├─ 26 -┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... -┃ │ pc: 2458 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 28 -┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ │ pc: 2458 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (18 steps) -┃ ├─ 30 -┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 32 -┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (341 steps) -┃ ├─ 33 (split) +┃ │ (754 steps) +┃ ├─ 10 (split) ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 @@ -164,42 +52,14 @@ ┃ ┃ (branch) ┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 34 +┃ ┃ ├─ 12 ┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (126 steps) -┃ ┃ ├─ 36 -┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 38 -┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 40 -┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 42 -┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (264 steps) -┃ ┃ ├─ 44 (split) +┃ ┃ │ (266 steps) +┃ ┃ ├─ 14 (split) ┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 52 -┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 54 (terminal) +┃ ┃ ┃ │ (56 steps) +┃ ┃ ┃ ├─ 18 (terminal) ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ │ callDepth: 0 @@ -237,7 +83,7 @@ ┃ ┃ ┃ │ ┃ ┃ ┃ ┊ constraint: true ┃ ┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ └─ 6 (leaf, target, terminal) ┃ ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int @@ -245,28 +91,14 @@ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 3736 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 53 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 3736 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ └─ 55 (leaf, terminal) +┃ ┃ │ (66 steps) +┃ ┃ └─ 19 (leaf, terminal) ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ pc: 3736 ┃ ┃ callDepth: 0 @@ -274,56 +106,14 @@ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ │ -┃ ├─ 35 +┃ ├─ 13 ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (63 steps) -┃ ├─ 37 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 39 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ ├─ 41 -┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 43 -┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (68 steps) -┃ ├─ 45 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2474 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 48 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2474 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ └─ 51 (leaf, terminal) +┃ │ (73 steps) +┃ └─ 15 (leaf, terminal) ┃ k: #halt ~> CONTINUATION:K ┃ pc: 2474 ┃ callDepth: 0 @@ -331,56 +121,14 @@ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) │ - ├─ 17 + ├─ 9 │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ - │ (63 steps) - ├─ 19 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 21 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 23 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 25 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 27 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2357 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 29 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2357 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - └─ 31 (leaf, terminal) + │ (73 steps) + └─ 11 (leaf, terminal) k: #halt ~> CONTINUATION:K pc: 2357 callDepth: 0 diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected deleted file mode 100644 index d6f62929c..000000000 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected +++ /dev/null @@ -1,390 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (380 steps) -├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (160 steps) -├─ 6 -│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 7 -│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 8 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 9 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (457 steps) -├─ 11 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -│ pc: 2341 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 12 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -│ pc: 2341 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 13 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 14 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (341 steps) -├─ 15 (split) -│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -│ pc: 562 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ │ -┃ ├─ 16 -┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (126 steps) -┃ ├─ 18 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 20 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 22 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 24 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (391 steps) -┃ ├─ 26 -┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... -┃ │ pc: 2458 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 28 -┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ │ pc: 2458 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (18 steps) -┃ ├─ 30 -┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 32 -┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (341 steps) -┃ ├─ 33 (split) -┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ ┃ -┃ ┃ (branch) -┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ │ -┃ ┃ ├─ 34 -┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (126 steps) -┃ ┃ ├─ 36 -┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 38 -┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 40 -┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 42 -┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (264 steps) -┃ ┃ ├─ 44 (split) -┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 52 -┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 54 (terminal) -┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ ┊ constraint: true -┃ ┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ ┃ └─ 10 (leaf, target, terminal) -┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int -┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 3736 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 53 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 3736 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ └─ 55 (leaf, terminal) -┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ pc: 3736 -┃ ┃ callDepth: 0 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ │ -┃ ├─ 35 -┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (63 steps) -┃ ├─ 37 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 39 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ ├─ 41 -┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 43 -┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (68 steps) -┃ ├─ 45 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2474 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 48 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2474 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ └─ 51 (leaf, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: 2474 -┃ callDepth: 0 -┃ statusCode: EVMC_REVERT -┃ -┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - │ - ├─ 17 - │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - │ pc: 562 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ - │ (63 steps) - ├─ 19 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 21 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 23 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 25 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 27 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2357 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 29 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2357 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - └─ 31 (leaf, terminal) - k: #halt ~> CONTINUATION:K - pc: 2357 - callDepth: 0 - statusCode: EVMC_REVERT - - - diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected index 8237ee4ca..964d56399 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).cse.expected @@ -5,85 +5,29 @@ │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ -│ (380 steps) +│ (383 steps) ├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 │ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... │ pc: 30 │ callDepth: 1 │ statusCode: EVMC_SUCCESS │ -│ (160 steps) -├─ 6 -│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 7 -│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 8 (terminal) +│ (163 steps) +├─ 4 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 248 │ callDepth: 0 │ statusCode: EVMC_SUCCESS │ │ (1 step) -├─ 9 +├─ 5 │ k: #execute ~> CONTINUATION:K │ pc: 0 │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ -│ (478 steps) -├─ 11 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -│ pc: 2597 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 12 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -│ pc: 2597 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 13 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 14 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (341 steps) -├─ 15 (split) +│ (839 steps) +├─ 7 (split) │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 │ callDepth: 1 @@ -92,70 +36,14 @@ ┃ (branch) ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ │ -┃ ├─ 16 +┃ ├─ 8 ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... ┃ │ pc: 562 ┃ │ callDepth: 1 ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (126 steps) -┃ ├─ 18 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 20 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 22 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 24 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (391 steps) -┃ ├─ 26 -┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... -┃ │ pc: 2714 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 28 -┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ │ pc: 2714 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (18 steps) -┃ ├─ 30 -┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 32 -┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (341 steps) -┃ ├─ 33 (split) +┃ │ (754 steps) +┃ ├─ 10 (split) ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 @@ -164,70 +52,14 @@ ┃ ┃ (branch) ┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 34 +┃ ┃ ├─ 12 ┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (126 steps) -┃ ┃ ├─ 36 -┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 38 -┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 40 -┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 42 -┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (399 steps) -┃ ┃ ├─ 44 -┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 192 68 192 32 ~> # ... -┃ ┃ │ pc: 2836 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 46 -┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ ┃ │ pc: 2836 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (18 steps) -┃ ┃ ├─ 48 -┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 50 -┃ ┃ │ k: #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (375 steps) -┃ ┃ ├─ 51 (split) +┃ ┃ │ (796 steps) +┃ ┃ ├─ 14 (split) ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ │ pc: 610 ┃ ┃ │ callDepth: 1 @@ -236,70 +68,14 @@ ┃ ┃ ┃ (branch) ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 52 +┃ ┃ ┃ ├─ 16 ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ │ (126 steps) -┃ ┃ ┃ ├─ 54 -┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 192 32 ~> #pc [ STATI ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 56 -┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 58 -┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 60 -┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 192 ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (391 steps) -┃ ┃ ┃ ├─ 62 -┃ ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 224 68 224 32 ~> # ... -┃ ┃ ┃ │ pc: 2953 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 64 -┃ ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ ┃ ┃ │ pc: 2953 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (18 steps) -┃ ┃ ┃ ├─ 66 -┃ ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ ┃ │ pc: 0 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 68 -┃ ┃ ┃ │ k: #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 0 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (375 steps) -┃ ┃ ┃ ├─ 69 (split) +┃ ┃ ┃ │ (788 steps) +┃ ┃ ┃ ├─ 18 (split) ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 @@ -308,42 +84,14 @@ ┃ ┃ ┃ ┃ (branch) ┃ ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 70 +┃ ┃ ┃ ┃ ├─ 20 ┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (126 steps) -┃ ┃ ┃ ┃ ├─ 72 -┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 224 32 ~> #pc [ STATI ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 74 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ├─ 76 -┃ ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 78 -┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 224 ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (264 steps) -┃ ┃ ┃ ┃ ├─ 80 (split) +┃ ┃ ┃ ┃ │ (266 steps) +┃ ┃ ┃ ┃ ├─ 22 (split) ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... ┃ ┃ ┃ ┃ │ pc: 3015 ┃ ┃ ┃ ┃ │ callDepth: 0 @@ -352,28 +100,14 @@ ┃ ┃ ┃ ┃ ┃ (branch) ┃ ┃ ┃ ┃ ┣━━┓ constraint: ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ ├─ 82 +┃ ┃ ┃ ┃ ┃ ├─ 24 ┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... ┃ ┃ ┃ ┃ ┃ │ pc: 3015 ┃ ┃ ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ┃ ┃ ├─ 85 -┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ┃ ├─ 88 -┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ┃ └─ 90 (leaf, terminal) +┃ ┃ ┃ ┃ ┃ │ (66 steps) +┃ ┃ ┃ ┃ ┃ └─ 26 (leaf, terminal) ┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ ┃ ┃ pc: 3736 ┃ ┃ ┃ ┃ ┃ callDepth: 0 @@ -381,28 +115,14 @@ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ) ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 83 +┃ ┃ ┃ ┃ ├─ 25 ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... ┃ ┃ ┃ ┃ │ pc: 3015 ┃ ┃ ┃ ┃ │ callDepth: 0 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (60 steps) -┃ ┃ ┃ ┃ ├─ 86 -┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 89 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ├─ 91 (terminal) +┃ ┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ┃ ├─ 27 (terminal) ┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ ┃ │ pc: 248 ┃ ┃ ┃ ┃ │ callDepth: 0 @@ -410,7 +130,7 @@ ┃ ┃ ┃ ┃ │ ┃ ┃ ┃ ┃ ┊ constraint: true ┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) +┃ ┃ ┃ ┃ └─ 6 (leaf, target, terminal) ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int ┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int @@ -418,56 +138,14 @@ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 71 +┃ ┃ ┃ ├─ 21 ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ │ -┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ├─ 73 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 224 32 ~> #pc [ STATIC ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 75 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 77 -┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 79 -┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 224 3 ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (68 steps) -┃ ┃ ┃ ├─ 81 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 2969 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 84 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 2969 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ └─ 87 (leaf, terminal) +┃ ┃ ┃ │ (73 steps) +┃ ┃ ┃ └─ 23 (leaf, terminal) ┃ ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ ┃ pc: 2969 ┃ ┃ ┃ callDepth: 0 @@ -475,56 +153,14 @@ ┃ ┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ┃ ┃ │ -┃ ┃ ├─ 53 +┃ ┃ ├─ 17 ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... ┃ ┃ │ pc: 610 ┃ ┃ │ callDepth: 1 ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ │ -┃ ┃ │ (63 steps) -┃ ┃ ├─ 55 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 192 32 ~> #pc [ STATIC ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 57 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 59 -┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 61 -┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 192 3 ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (68 steps) -┃ ┃ ├─ 63 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 2852 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 65 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 2852 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ └─ 67 (leaf, terminal) +┃ ┃ │ (73 steps) +┃ ┃ └─ 19 (leaf, terminal) ┃ ┃ k: #halt ~> CONTINUATION:K ┃ ┃ pc: 2852 ┃ ┃ callDepth: 0 @@ -532,56 +168,14 @@ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ │ -┃ ├─ 35 +┃ ├─ 13 ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... ┃ │ pc: 562 ┃ │ callDepth: 1 ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (63 steps) -┃ ├─ 37 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 39 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ ├─ 41 -┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 43 -┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (68 steps) -┃ ├─ 45 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2730 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 47 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2730 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ └─ 49 (leaf, terminal) +┃ │ (73 steps) +┃ └─ 15 (leaf, terminal) ┃ k: #halt ~> CONTINUATION:K ┃ pc: 2730 ┃ callDepth: 0 @@ -589,56 +183,14 @@ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) │ - ├─ 17 + ├─ 9 │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode │ - │ (63 steps) - ├─ 19 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 21 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 23 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 25 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 27 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2613 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 29 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2613 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - └─ 31 (leaf, terminal) + │ (73 steps) + └─ 11 (leaf, terminal) k: #halt ~> CONTINUATION:K pc: 2613 callDepth: 0 diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected deleted file mode 100644 index 8237ee4ca..000000000 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected +++ /dev/null @@ -1,648 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (380 steps) -├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (160 steps) -├─ 6 -│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 7 -│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 8 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 9 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (478 steps) -├─ 11 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -│ pc: 2597 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 12 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -│ pc: 2597 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 13 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 14 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (341 steps) -├─ 15 (split) -│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -│ pc: 562 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ │ -┃ ├─ 16 -┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (126 steps) -┃ ├─ 18 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 20 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 22 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 24 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 128 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (391 steps) -┃ ├─ 26 -┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 68 160 32 ~> # ... -┃ │ pc: 2714 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 28 -┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ │ pc: 2714 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (18 steps) -┃ ├─ 30 -┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 32 -┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (341 steps) -┃ ├─ 33 (split) -┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ ┃ -┃ ┃ (branch) -┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ │ -┃ ┃ ├─ 34 -┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (126 steps) -┃ ┃ ├─ 36 -┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 38 -┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 40 -┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 42 -┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (399 steps) -┃ ┃ ├─ 44 -┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 192 68 192 32 ~> # ... -┃ ┃ │ pc: 2836 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 46 -┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ ┃ │ pc: 2836 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (18 steps) -┃ ┃ ├─ 48 -┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 50 -┃ ┃ │ k: #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (375 steps) -┃ ┃ ├─ 51 (split) -┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... -┃ ┃ │ pc: 610 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 52 -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... -┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (126 steps) -┃ ┃ ┃ ├─ 54 -┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 192 32 ~> #pc [ STATI ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 56 -┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 58 -┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 60 -┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 192 ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (391 steps) -┃ ┃ ┃ ├─ 62 -┃ ┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 224 68 224 32 ~> # ... -┃ ┃ ┃ │ pc: 2953 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 64 -┃ ┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ ┃ ┃ │ pc: 2953 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (18 steps) -┃ ┃ ┃ ├─ 66 -┃ ┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ ┃ │ pc: 0 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 68 -┃ ┃ ┃ │ k: #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 0 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (375 steps) -┃ ┃ ┃ ├─ 69 (split) -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... -┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 70 -┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... -┃ ┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (126 steps) -┃ ┃ ┃ ┃ ├─ 72 -┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 224 32 ~> #pc [ STATI ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 74 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ├─ 76 -┃ ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 78 -┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 224 ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (264 steps) -┃ ┃ ┃ ┃ ├─ 80 (split) -┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... -┃ ┃ ┃ ┃ │ pc: 3015 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┃ ┣━━┓ constraint: ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ ├─ 82 -┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... -┃ ┃ ┃ ┃ ┃ │ pc: 3015 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ┃ ┃ ├─ 85 -┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ┃ ├─ 88 -┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ┃ └─ 90 (leaf, terminal) -┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ pc: 3736 -┃ ┃ ┃ ┃ ┃ callDepth: 0 -┃ ┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 83 -┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... -┃ ┃ ┃ ┃ │ pc: 3015 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (60 steps) -┃ ┃ ┃ ┃ ├─ 86 -┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 89 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ├─ 91 (terminal) -┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┊ constraint: true -┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) -┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int -┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 71 -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... -┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ├─ 73 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 224 32 ~> #pc [ STATIC ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 75 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 224 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 77 -┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 79 -┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 224 3 ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (68 steps) -┃ ┃ ┃ ├─ 81 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 2969 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 84 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 2969 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ └─ 87 (leaf, terminal) -┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ pc: 2969 -┃ ┃ ┃ callDepth: 0 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) -┃ ┃ │ -┃ ┃ ├─ 53 -┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... -┃ ┃ │ pc: 610 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (63 steps) -┃ ┃ ├─ 55 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 192 32 ~> #pc [ STATIC ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 57 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 192 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 59 -┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 61 -┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 192 3 ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (68 steps) -┃ ┃ ├─ 63 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 2852 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 65 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 2852 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ └─ 67 (leaf, terminal) -┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ pc: 2852 -┃ ┃ callDepth: 0 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ │ -┃ ├─ 35 -┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... -┃ │ pc: 562 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (63 steps) -┃ ├─ 37 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 39 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ ├─ 41 -┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 43 -┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (68 steps) -┃ ├─ 45 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2730 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 47 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 2730 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ └─ 49 (leaf, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: 2730 -┃ callDepth: 0 -┃ statusCode: EVMC_REVERT -┃ -┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - │ - ├─ 17 - │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - │ pc: 562 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ - │ (63 steps) - ├─ 19 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 21 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 23 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 25 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 550 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 27 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2613 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 29 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 2613 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - └─ 31 (leaf, terminal) - k: #halt ~> CONTINUATION:K - pc: 2613 - callDepth: 0 - statusCode: EVMC_REVERT - - - diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).cse.expected index 353e93156..b91ed3539 100644 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).cse.expected +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).cse.expected @@ -5,700 +5,1306 @@ │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ -│ (380 steps) +│ (383 steps) ├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 │ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... │ pc: 30 │ callDepth: 1 │ statusCode: EVMC_SUCCESS │ -│ (160 steps) -├─ 6 -│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 7 -│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 8 (terminal) +│ (163 steps) +├─ 4 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 248 │ callDepth: 0 │ statusCode: EVMC_SUCCESS │ │ (1 step) -├─ 9 +├─ 5 │ k: #execute ~> CONTINUATION:K │ pc: 0 │ callDepth: 0 │ statusCode: STATUSCODE:StatusCode │ -│ (510 steps) -├─ 11 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 100 128 32 ~> ... -│ pc: 1568 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 12 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -│ pc: 1568 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 13 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 14 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (459 steps) -├─ 15 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -│ pc: 279 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 16 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 4 ... +│ (993 steps) +├─ 7 +│ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... │ pc: 279 │ callDepth: 1 │ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 17 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 2 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 18 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... -│ pc: 0 -│ callDepth: 2 -│ statusCode: STATUSCODE:StatusCode -│ -│ (341 steps) -├─ 19 (split) -│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -│ pc: 562 -│ callDepth: 2 -│ statusCode: STATUSCODE:StatusCode ┃ -┃ (branch) -┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ (1 step) +┣━━┓ ┃ │ -┃ ├─ 20 +┃ ├─ 8 (split) ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... ┃ │ pc: 562 ┃ │ callDepth: 2 ┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (126 steps) -┃ ├─ 22 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ │ pc: 128 -┃ │ callDepth: 2 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 24 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 128 -┃ │ callDepth: 2 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 26 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ │ pc: 128 -┃ │ callDepth: 2 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 28 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 128 -┃ │ callDepth: 2 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (297 steps) -┃ ├─ 30 (split) -┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... -┃ │ pc: 610 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ (branch) -┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -┃ ┃ │ -┃ ┃ ├─ 32 -┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... -┃ ┃ │ pc: 610 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (140 steps) -┃ ┃ ├─ 35 -┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 38 -┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 41 -┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 44 -┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (408 steps) -┃ ┃ ├─ 47 -┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 100 160 32 ~> ... -┃ ┃ │ pc: 1692 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 50 -┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ ┃ │ pc: 1692 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (18 steps) -┃ ┃ ├─ 52 -┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 54 -┃ ┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (459 steps) -┃ ┃ ├─ 55 -┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -┃ ┃ │ pc: 279 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 56 -┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 4 ... -┃ ┃ │ pc: 279 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (18 steps) -┃ ┃ ├─ 57 -┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 58 -┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~ ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (341 steps) -┃ ┃ ├─ 59 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... +┃ ┃ ├─ 10 +┃ ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... ┃ ┃ │ pc: 562 ┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ statusCode: STATUSCODE:StatusCode ┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 60 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (126 steps) -┃ ┃ ┃ ├─ 62 -┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ (1 step) +┃ ┃ ┣━━┓ ┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 64 -┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 66 -┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 68 -┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (297 steps) -┃ ┃ ┃ ├─ 70 (split) -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ ├─ 14 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) +┃ ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 72 -┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ ┃ ├─ 30 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... ┃ ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┃ (1 step) +┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 54 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 118 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 55 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 119 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 56 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 120 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┗━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 57 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ └─ 121 (leaf, pending) +┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 31 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (1 step) +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 58 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 122 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 59 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 123 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 60 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 124 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 61 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ └─ 125 (leaf, pending) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┣━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 15 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (140 steps) -┃ ┃ ┃ ┃ ├─ 75 -┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 78 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ├─ 81 -┃ ┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 84 -┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... -┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ├─ 32 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (264 steps) -┃ ┃ ┃ ┃ ├─ 87 (split) -┃ ┃ ┃ ┃ │ k: JUMPI 1762 bool2Word ( VV0_x_114b9705:Int #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (60 steps) -┃ ┃ ┃ ┃ ┃ ├─ 93 -┃ ┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 126 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┣━━┓ ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ┃ ├─ 96 -┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ ├─ 63 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ┃ ├─ 98 (terminal) -┃ ┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 127 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 64 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ ┊ constraint: true -┃ ┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) -┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int -┃ ┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ ┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 128 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ┃ ├─ 94 -┃ ┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 97 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ └─ 99 (leaf, terminal) -┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ pc: 3736 -┃ ┃ ┃ ┃ callDepth: 0 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ └─ 129 (leaf, pending) +┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) ┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 73 -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ ├─ 33 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... ┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (1 step) +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 66 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 130 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 67 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 131 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 68 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 132 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 69 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ └─ 133 (leaf, pending) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┣━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 16 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 34 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┃ (1 step) +┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 70 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 134 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 71 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 135 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 72 +┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ ┃ └─ 136 (leaf, pending) +┃ ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┗━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 73 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ └─ 137 (leaf, pending) +┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) ┃ ┃ ┃ │ -┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ├─ 76 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... -┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ├─ 35 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 ┃ ┃ ┃ │ callDepth: 1 ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 79 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 82 -┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 85 -┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (68 steps) -┃ ┃ ┃ ├─ 88 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 1708 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 92 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 1708 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ └─ 95 (leaf, terminal) -┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ pc: 1708 -┃ ┃ ┃ callDepth: 0 -┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (1 step) +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 74 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 138 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 75 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 139 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 76 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ ┃ └─ 140 (leaf, pending) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 77 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ └─ 141 (leaf, pending) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT ┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┗━━┓ ┃ ┃ │ -┃ ┃ ├─ 61 -┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (63 steps) -┃ ┃ ├─ 63 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 65 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 67 -┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 69 -┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (68 steps) -┃ ┃ ├─ 71 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... -┃ ┃ │ pc: 295 +┃ ┃ ├─ 17 (split) +┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ │ pc: 610 ┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 74 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 295 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 77 -┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 295 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 80 -┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ ┃ │ pc: 295 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (68 steps) -┃ ┃ ├─ 83 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 1708 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 86 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 1708 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ └─ 89 (leaf, terminal) -┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ pc: 1708 -┃ ┃ callDepth: 0 -┃ ┃ statusCode: EVMC_REVERT +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ +┃ ┃ ┃ (branch) +┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 36 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (1 step) +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 78 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ └─ 142 (leaf, pending) +┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 79 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ └─ 143 (leaf, pending) +┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┣━━┓ +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 80 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ ┃ └─ 144 (leaf, pending) +┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ ┃ pc: 279 +┃ ┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 81 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (892 steps) +┃ ┃ ┃ └─ 145 (leaf, pending) +┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... +┃ ┃ ┃ pc: 279 +┃ ┃ ┃ callDepth: 1 +┃ ┃ ┃ statusCode: EVMC_SUCCESS +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) +┃ ┃ │ +┃ ┃ ├─ 37 +┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ +┃ ┃ ┃ (1 step) +┃ ┃ ┣━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 82 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ └─ 146 (leaf, pending) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┣━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 83 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ └─ 147 (leaf, pending) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┣━━┓ +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 84 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ └─ 148 (leaf, pending) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1584 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┗━━┓ +┃ ┃ │ +┃ ┃ ├─ 85 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (72 steps) +┃ ┃ └─ 149 (leaf, pending) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 1584 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT ┃ ┃ -┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) -┃ │ -┃ ├─ 33 -┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... -┃ │ pc: 610 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (63 steps) -┃ ├─ 36 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 39 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ ├─ 42 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 45 -┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (68 steps) -┃ ├─ 48 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 1584 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT +┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) ┃ │ -┃ │ (1 step) -┃ ├─ 51 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 1584 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ └─ 53 (leaf, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: 1584 -┃ callDepth: 0 -┃ statusCode: EVMC_REVERT +┃ ├─ 11 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 2 +┃ │ statusCode: STATUSCODE:StatusCode +┃ ┃ +┃ ┃ (1 step) +┃ ┣━━┓ +┃ ┃ │ +┃ ┃ ├─ 18 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (72 steps) +┃ ┃ └─ 38 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 1584 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┣━━┓ +┃ ┃ │ +┃ ┃ ├─ 19 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (72 steps) +┃ ┃ └─ 39 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 1584 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┣━━┓ +┃ ┃ │ +┃ ┃ ├─ 20 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (72 steps) +┃ ┃ └─ 40 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 1584 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ +┃ │ +┃ ├─ 21 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 295 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (72 steps) +┃ └─ 41 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 1584 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT ┃ -┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┗━━┓ │ - ├─ 21 + ├─ 9 (split) │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... │ pc: 562 │ callDepth: 2 │ statusCode: STATUSCODE:StatusCode - │ - │ (63 steps) - ├─ 23 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... - │ pc: 550 - │ callDepth: 2 - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 25 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... - │ pc: 550 - │ callDepth: 2 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 27 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - │ pc: 550 - │ callDepth: 2 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 29 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 550 - │ callDepth: 2 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 31 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... - │ pc: 295 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 34 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... - │ pc: 295 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 37 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 295 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 40 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 295 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 43 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 1584 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 46 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 1584 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - └─ 49 (leaf, terminal) - k: #halt ~> CONTINUATION:K - pc: 1584 - callDepth: 0 - statusCode: EVMC_REVERT + ┃ + ┃ (branch) + ┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) + ┃ │ + ┃ ├─ 12 + ┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + ┃ │ pc: 562 + ┃ │ callDepth: 2 + ┃ │ statusCode: STATUSCODE:StatusCode + ┃ ┃ + ┃ ┃ (1 step) + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 22 (split) + ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ │ pc: 610 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┃ (branch) + ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 42 + ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ ┃ │ pc: 610 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┃ (1 step) + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 86 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 150 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 87 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 151 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 88 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 152 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┗━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 89 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ └─ 153 (leaf, pending) + ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) + ┃ ┃ │ + ┃ ┃ ├─ 43 + ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ │ pc: 610 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┃ (1 step) + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 90 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 550 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_REVERT + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (72 steps) + ┃ ┃ ┃ └─ 154 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ pc: 1584 + ┃ ┃ ┃ callDepth: 0 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 91 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 550 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_REVERT + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (72 steps) + ┃ ┃ ┃ └─ 155 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ pc: 1584 + ┃ ┃ ┃ callDepth: 0 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 92 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 550 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_REVERT + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (72 steps) + ┃ ┃ ┃ └─ 156 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ pc: 1584 + ┃ ┃ ┃ callDepth: 0 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 93 + ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 550 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_REVERT + ┃ ┃ │ + ┃ ┃ │ (72 steps) + ┃ ┃ └─ 157 (leaf, pending) + ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ pc: 1584 + ┃ ┃ callDepth: 0 + ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 23 (split) + ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ │ pc: 610 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┃ (branch) + ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 44 + ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ ┃ │ pc: 610 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┃ (1 step) + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 94 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 158 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 95 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 159 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 96 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 160 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┗━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 97 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ └─ 161 (leaf, pending) + ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) + ┃ ┃ │ + ┃ ┃ ├─ 45 + ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ │ pc: 610 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┃ (1 step) + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 98 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 550 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_REVERT + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (72 steps) + ┃ ┃ ┃ └─ 162 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ pc: 1584 + ┃ ┃ ┃ callDepth: 0 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 99 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 550 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_REVERT + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (72 steps) + ┃ ┃ ┃ └─ 163 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ pc: 1584 + ┃ ┃ ┃ callDepth: 0 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 100 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 550 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_REVERT + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (72 steps) + ┃ ┃ ┃ └─ 164 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ ┃ pc: 1584 + ┃ ┃ ┃ callDepth: 0 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 101 + ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ │ pc: 550 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_REVERT + ┃ ┃ │ + ┃ ┃ │ (72 steps) + ┃ ┃ └─ 165 (leaf, pending) + ┃ ┃ k: #halt ~> CONTINUATION:K + ┃ ┃ pc: 1584 + ┃ ┃ callDepth: 0 + ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ ├─ 24 (split) + ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ │ pc: 610 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┃ (branch) + ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 46 + ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ ┃ │ pc: 610 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┃ (1 step) + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 102 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 166 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 103 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 167 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┣━━┓ + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ ├─ 104 + ┃ ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ │ + ┃ ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ ┃ └─ 168 (leaf, pending) + ┃ ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ ┃ + ┃ ┃ ┃ ┗━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ ├─ 105 + ┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ │ pc: 128 + ┃ ┃ ┃ │ callDepth: 1 + ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ │ + ┃ ┃ ┃ │ (892 steps) + ┃ ┃ ┃ └─ 169 (leaf, pending) + ┃ ┃ ┃ k: #checkDepthExceeded ~> #call 491460923342184218035706888008750043977755113263 49 ... + ┃ ┃ ┃ pc: 279 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) + ┃ ┃ │ + ┃ ┃ ├─ 47 + ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ │ pc: 610 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┃ (1 step) + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ └─ 106 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ pc: 550 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ └─ 107 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ pc: 550 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ └─ 108 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ pc: 550 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ + ┃ ┃ │ + ┃ ┃ └─ 109 (leaf, pending) + ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ pc: 550 + ┃ ┃ callDepth: 1 + ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ + ┃ ┗━━┓ + ┃ │ + ┃ ├─ 25 (split) + ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ │ pc: 610 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ + ┃ ┃ (branch) + ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) + ┃ ┃ │ + ┃ ┃ ├─ 48 + ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ ┃ │ pc: 610 + ┃ ┃ │ callDepth: 1 + ┃ ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┃ (1 step) + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ └─ 110 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ pc: 128 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ └─ 111 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ pc: 128 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┣━━┓ + ┃ ┃ ┃ │ + ┃ ┃ ┃ └─ 112 (leaf, pending) + ┃ ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ ┃ pc: 128 + ┃ ┃ ┃ callDepth: 1 + ┃ ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ ┃ + ┃ ┃ ┗━━┓ + ┃ ┃ │ + ┃ ┃ └─ 113 (leaf, pending) + ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ pc: 128 + ┃ ┃ callDepth: 1 + ┃ ┃ statusCode: EVMC_SUCCESS + ┃ ┃ + ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) + ┃ │ + ┃ ├─ 49 + ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... + ┃ │ pc: 610 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_SUCCESS + ┃ ┃ + ┃ ┃ (1 step) + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ └─ 114 (leaf, pending) + ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ pc: 550 + ┃ ┃ callDepth: 1 + ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ └─ 115 (leaf, pending) + ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ pc: 550 + ┃ ┃ callDepth: 1 + ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ + ┃ ┣━━┓ + ┃ ┃ │ + ┃ ┃ └─ 116 (leaf, pending) + ┃ ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ ┃ pc: 550 + ┃ ┃ callDepth: 1 + ┃ ┃ statusCode: EVMC_REVERT + ┃ ┃ + ┃ ┗━━┓ + ┃ │ + ┃ └─ 117 (leaf, pending) + ┃ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ pc: 550 + ┃ callDepth: 1 + ┃ statusCode: EVMC_REVERT + ┃ + ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) + │ + ├─ 13 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 2 + │ statusCode: STATUSCODE:StatusCode + ┃ + ┃ (1 step) + ┣━━┓ + ┃ │ + ┃ ├─ 26 + ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 295 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_REVERT + ┃ │ + ┃ │ (72 steps) + ┃ └─ 50 (leaf, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: 1584 + ┃ callDepth: 0 + ┃ statusCode: EVMC_REVERT + ┃ + ┣━━┓ + ┃ │ + ┃ ├─ 27 + ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 295 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_REVERT + ┃ │ + ┃ │ (72 steps) + ┃ └─ 51 (leaf, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: 1584 + ┃ callDepth: 0 + ┃ statusCode: EVMC_REVERT + ┃ + ┣━━┓ + ┃ │ + ┃ ├─ 28 + ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + ┃ │ pc: 295 + ┃ │ callDepth: 1 + ┃ │ statusCode: EVMC_REVERT + ┃ │ + ┃ │ (72 steps) + ┃ └─ 52 (leaf, terminal) + ┃ k: #halt ~> CONTINUATION:K + ┃ pc: 1584 + ┃ callDepth: 0 + ┃ statusCode: EVMC_REVERT + ┃ + ┗━━┓ + │ + ├─ 29 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (72 steps) + └─ 53 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 1584 + callDepth: 0 + statusCode: EVMC_REVERT + +┌─ 6 (root, leaf, target, terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: PC_CELL_5d410f2a:Int +│ callDepth: CALLDEPTH_CELL_5d410f2a:Int +│ statusCode: STATUSCODE_FINAL:StatusCode diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected deleted file mode 100644 index 353e93156..000000000 --- a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected +++ /dev/null @@ -1,704 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (380 steps) -├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #codeDeposit 4914609233421842180357068880 ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 -│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... -│ pc: 30 -│ callDepth: 1 -│ statusCode: EVMC_SUCCESS -│ -│ (160 steps) -├─ 6 -│ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 7 -│ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 8 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 248 -│ callDepth: 0 -│ statusCode: EVMC_SUCCESS -│ -│ (1 step) -├─ 9 -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (510 steps) -├─ 11 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 100 128 32 ~> ... -│ pc: 1568 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 12 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -│ pc: 1568 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 13 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 14 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (459 steps) -├─ 15 -│ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -│ pc: 279 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 16 -│ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 4 ... -│ pc: 279 -│ callDepth: 1 -│ statusCode: STATUSCODE:StatusCode -│ -│ (18 steps) -├─ 17 -│ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -│ pc: 0 -│ callDepth: 2 -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 18 -│ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~ ... -│ pc: 0 -│ callDepth: 2 -│ statusCode: STATUSCODE:StatusCode -│ -│ (341 steps) -├─ 19 (split) -│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -│ pc: 562 -│ callDepth: 2 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ │ -┃ ├─ 20 -┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... -┃ │ pc: 562 -┃ │ callDepth: 2 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (126 steps) -┃ ├─ 22 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ │ pc: 128 -┃ │ callDepth: 2 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 24 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 128 -┃ │ callDepth: 2 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 26 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... -┃ │ pc: 128 -┃ │ callDepth: 2 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 28 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 128 -┃ │ callDepth: 2 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (297 steps) -┃ ├─ 30 (split) -┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... -┃ │ pc: 610 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ ┃ -┃ ┃ (branch) -┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -┃ ┃ │ -┃ ┃ ├─ 32 -┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... -┃ ┃ │ pc: 610 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (140 steps) -┃ ┃ ├─ 35 -┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 38 -┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 41 -┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 44 -┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ ┃ │ pc: 128 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (408 steps) -┃ ┃ ├─ 47 -┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 160 100 160 32 ~> ... -┃ ┃ │ pc: 1692 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 50 -┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 7 ... -┃ ┃ │ pc: 1692 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (18 steps) -┃ ┃ ├─ 52 -┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 54 -┃ ┃ │ k: #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (459 steps) -┃ ┃ ├─ 55 -┃ ┃ │ k: STATICCALL 0 491460923342184218035706888008750043977755113263 128 68 128 32 ~> # ... -┃ ┃ │ pc: 279 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 56 -┃ ┃ │ k: #accessAccounts 491460923342184218035706888008750043977755113263 ~> #checkCall 4 ... -┃ ┃ │ pc: 279 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (18 steps) -┃ ┃ ├─ 57 -┃ ┃ │ k: #precompiled? ( 491460923342184218035706888008750043977755113263 , SHANGHAI ) ~> ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 58 -┃ ┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~ ... -┃ ┃ │ pc: 0 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (341 steps) -┃ ┃ ├─ 59 (split) -┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ -┃ ┃ ┃ (branch) -┃ ┃ ┣━━┓ constraint: ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 60 -┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... -┃ ┃ ┃ │ pc: 562 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (126 steps) -┃ ┃ ┃ ├─ 62 -┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 64 -┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 66 -┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 68 -┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ │ callDepth: 2 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (297 steps) -┃ ┃ ┃ ├─ 70 (split) -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... -┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ (branch) -┃ ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ├─ 72 -┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... -┃ ┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (140 steps) -┃ ┃ ┃ ┃ ├─ 75 -┃ ┃ ┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATI ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 78 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ├─ 81 -┃ ┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 84 -┃ ┃ ┃ ┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 160 ... -┃ ┃ ┃ ┃ │ pc: 128 -┃ ┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (264 steps) -┃ ┃ ┃ ┃ ├─ 87 (split) -┃ ┃ ┃ ┃ │ k: JUMPI 1762 bool2Word ( VV0_x_114b9705:Int #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ┃ ├─ 96 -┃ ┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ ┃ ├─ 98 (terminal) -┃ ┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ │ pc: 248 -┃ ┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ ┃ ┊ constraint: true -┃ ┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ ┃ ┃ ┃ └─ 10 (leaf, target, terminal) -┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int -┃ ┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ ┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ ┃ ┃ ┃ ┃ -┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ┃ ├─ 97 -┃ ┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ ┃ │ pc: 3736 -┃ ┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ │ -┃ ┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ┃ └─ 99 (leaf, terminal) -┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ ┃ pc: 3736 -┃ ┃ ┃ ┃ callDepth: 0 -┃ ┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ ┃ -┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) ) -┃ ┃ ┃ │ -┃ ┃ ┃ ├─ 73 -┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... -┃ ┃ ┃ │ pc: 610 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (63 steps) -┃ ┃ ┃ ├─ 76 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 79 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ ├─ 82 -┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 85 -┃ ┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ ┃ ┃ │ pc: 550 -┃ ┃ ┃ │ callDepth: 1 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (68 steps) -┃ ┃ ┃ ├─ 88 -┃ ┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 1708 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (1 step) -┃ ┃ ┃ ├─ 92 -┃ ┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ ┃ │ pc: 1708 -┃ ┃ ┃ │ callDepth: 0 -┃ ┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ ┃ │ -┃ ┃ ┃ │ (2 steps) -┃ ┃ ┃ └─ 95 (leaf, terminal) -┃ ┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ ┃ pc: 1708 -┃ ┃ ┃ callDepth: 0 -┃ ┃ ┃ statusCode: EVMC_REVERT -┃ ┃ ┃ -┃ ┃ ┗━━┓ constraint: ( notBool ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) -┃ ┃ │ -┃ ┃ ├─ 61 -┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... -┃ ┃ │ pc: 562 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (63 steps) -┃ ┃ ├─ 63 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 65 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 67 -┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 69 -┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... -┃ ┃ │ pc: 550 -┃ ┃ │ callDepth: 2 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (68 steps) -┃ ┃ ├─ 71 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATIC ... -┃ ┃ │ pc: 295 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 74 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 160 32 ~> #pc [ STATICCALL ] ~> # ... -┃ ┃ │ pc: 295 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 77 -┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 295 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 80 -┃ ┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 160 3 ... -┃ ┃ │ pc: 295 -┃ ┃ │ callDepth: 1 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (68 steps) -┃ ┃ ├─ 83 -┃ ┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 1708 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 86 -┃ ┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 1708 -┃ ┃ │ callDepth: 0 -┃ ┃ │ statusCode: EVMC_REVERT -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ └─ 89 (leaf, terminal) -┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ pc: 1708 -┃ ┃ callDepth: 0 -┃ ┃ statusCode: EVMC_REVERT -┃ ┃ -┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) -┃ │ -┃ ├─ 33 -┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... -┃ │ pc: 610 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (63 steps) -┃ ├─ 36 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 39 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ ├─ 42 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 45 -┃ │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... -┃ │ pc: 550 -┃ │ callDepth: 1 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (68 steps) -┃ ├─ 48 -┃ │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 1584 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (1 step) -┃ ├─ 51 -┃ │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 1584 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_REVERT -┃ │ -┃ │ (2 steps) -┃ └─ 53 (leaf, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: 1584 -┃ callDepth: 0 -┃ statusCode: EVMC_REVERT -┃ -┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) - │ - ├─ 21 - │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... - │ pc: 562 - │ callDepth: 2 - │ statusCode: STATUSCODE:StatusCode - │ - │ (63 steps) - ├─ 23 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... - │ pc: 550 - │ callDepth: 2 - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 25 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... - │ pc: 550 - │ callDepth: 2 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 27 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... - │ pc: 550 - │ callDepth: 2 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 29 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 550 - │ callDepth: 2 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 31 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATIC ... - │ pc: 295 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 34 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... - │ pc: 295 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 37 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 295 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 40 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #refund 0 ~> #setLocalMem 128 3 ... - │ pc: 295 - │ callDepth: 1 - │ statusCode: EVMC_REVERT - │ - │ (68 steps) - ├─ 43 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 1584 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 46 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 1584 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - └─ 49 (leaf, terminal) - k: #halt ~> CONTINUATION:K - pc: 1584 - callDepth: 0 - statusCode: EVMC_REVERT - - - diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected index f38c0b4d8..6b4118982 100644 --- a/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).cse.expected @@ -5,22 +5,8 @@ │ callDepth: CALLDEPTH_CELL:Int │ statusCode: STATUSCODE:StatusCode │ -│ (363 steps) -├─ 3 -│ k: STATICCALL 0 CONTRACT_ID:Int 128 36 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #accessAccounts CONTRACT_ID:Int ~> #checkCall CONTRACT_ID:Int 0 ~> #call CONTRAC ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (3 steps) -├─ 5 (split) +│ (367 steps) +├─ 3 (split) │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... │ pc: 148 │ callDepth: CALLDEPTH_CELL:Int @@ -29,70 +15,21 @@ ┃ (branch) ┣━━┓ constraint: CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... ┃ │ pc: 148 ┃ │ callDepth: CALLDEPTH_CELL:Int ┃ │ statusCode: STATUSCODE:StatusCode ┃ │ -┃ │ (15 steps) -┃ ├─ 8 -┃ │ k: #precompiled? ( CONTRACT_ID:Int , SHANGHAI ) ~> #execute ~> #return 128 32 ~> #p ... -┃ │ pc: 0 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 10 -┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (328 steps) -┃ ├─ 12 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 14 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 16 +┃ │ (347 steps) +┃ ├─ 6 ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) ┃ │ statusCode: EVMC_SUCCESS ┃ │ -┃ │ (1 step) -┃ ├─ 18 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (324 steps) -┃ ├─ 20 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 22 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 23 (terminal) +┃ │ (328 steps) +┃ ├─ 8 (terminal) ┃ │ k: #halt ~> CONTINUATION:K ┃ │ pc: 87 ┃ │ callDepth: CALLDEPTH_CELL:Int @@ -108,56 +45,14 @@ ┃ ┗━━┓ constraint: 1024 <=Int CALLDEPTH_CELL:Int │ - ├─ 7 + ├─ 5 │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... │ pc: 148 │ callDepth: CALLDEPTH_CELL:Int │ statusCode: STATUSCODE:StatusCode │ - │ (4 steps) - ├─ 9 - │ k: #end EVMC_CALL_DEPTH_EXCEEDED ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 11 - │ k: #halt ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 b"\xac7\xee\x ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 13 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 15 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #pc [ STATICCALL ] ~> #execute ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (66 steps) - ├─ 17 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 19 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 21 (terminal) + │ (76 steps) + ├─ 7 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 163 │ callDepth: CALLDEPTH_CELL:Int diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected deleted file mode 100644 index f38c0b4d8..000000000 --- a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected +++ /dev/null @@ -1,175 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (363 steps) -├─ 3 -│ k: STATICCALL 0 CONTRACT_ID:Int 128 36 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #accessAccounts CONTRACT_ID:Int ~> #checkCall CONTRACT_ID:Int 0 ~> #call CONTRAC ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (3 steps) -├─ 5 (split) -│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... -│ pc: 148 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... -┃ │ pc: 148 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (15 steps) -┃ ├─ 8 -┃ │ k: #precompiled? ( CONTRACT_ID:Int , SHANGHAI ) ~> #execute ~> #return 128 32 ~> #p ... -┃ │ pc: 0 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 10 -┃ │ k: #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (328 steps) -┃ ├─ 12 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATI ... -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 14 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> #return 128 32 ~> #pc [ STATICCALL ] ~> # ... -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 16 -┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 18 -┃ │ k: #popCallStack ~> #dropWorldState ~> 1 ~> #push ~> #refund 0 ~> #setLocalMem 128 ... -┃ │ pc: 87 -┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (324 steps) -┃ ├─ 20 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 22 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 23 (terminal) -┃ │ k: #halt ~> CONTINUATION:K -┃ │ pc: 87 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ ┊ constraint: OMITTED CONSTRAINT -┃ ┊ subst: OMITTED SUBST -┃ └─ 2 (leaf, target, terminal) -┃ k: #halt ~> CONTINUATION:K -┃ pc: PC_CELL_5d410f2a:Int -┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ -┗━━┓ constraint: 1024 <=Int CALLDEPTH_CELL:Int - │ - ├─ 7 - │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (4 steps) - ├─ 9 - │ k: #end EVMC_CALL_DEPTH_EXCEEDED ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 11 - │ k: #halt ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 b"\xac7\xee\x ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 13 - │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 15 - │ k: #popCallStack ~> #popWorldState ~> 0 ~> #push ~> #pc [ STATICCALL ] ~> #execute ... - │ pc: 148 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (66 steps) - ├─ 17 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_CALL_DEPTH_EXCEEDED - │ - │ (1 step) - ├─ 19 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 21 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 163 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: EVMC_REVERT - │ - ┊ constraint: OMITTED CONSTRAINT - ┊ subst: OMITTED SUBST - └─ 2 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - diff --git a/src/tests/integration/test-data/show/Identity.identity(uint256).cse.expected b/src/tests/integration/test-data/show/Identity.identity(uint256).cse.expected index 62d8e61a2..159d58b9a 100644 --- a/src/tests/integration/test-data/show/Identity.identity(uint256).cse.expected +++ b/src/tests/integration/test-data/show/Identity.identity(uint256).cse.expected @@ -5,22 +5,8 @@ │ callDepth: CALLDEPTH_CELL:Int │ statusCode: STATUSCODE:StatusCode │ -│ (328 steps) -├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -│ pc: 87 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -│ pc: 87 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 (terminal) +│ (331 steps) +├─ 3 (terminal) │ k: #halt ~> CONTINUATION:K │ pc: 87 │ callDepth: CALLDEPTH_CELL:Int diff --git a/src/tests/integration/test-data/show/Identity.identity(uint256).no-cse.expected b/src/tests/integration/test-data/show/Identity.identity(uint256).no-cse.expected deleted file mode 100644 index 62d8e61a2..000000000 --- a/src/tests/integration/test-data/show/Identity.identity(uint256).no-cse.expected +++ /dev/null @@ -1,38 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (328 steps) -├─ 3 -│ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -│ pc: 87 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: STATUSCODE:StatusCode -│ -│ (1 step) -├─ 4 -│ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -│ pc: 87 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: EVMC_SUCCESS -│ -│ (2 steps) -├─ 5 (terminal) -│ k: #halt ~> CONTINUATION:K -│ pc: 87 -│ callDepth: CALLDEPTH_CELL:Int -│ statusCode: EVMC_SUCCESS -│ -┊ constraint: OMITTED CONSTRAINT -┊ subst: OMITTED SUBST -└─ 2 (leaf, target, terminal) - k: #halt ~> CONTINUATION:K - pc: PC_CELL_5d410f2a:Int - callDepth: CALLDEPTH_CELL_5d410f2a:Int - statusCode: STATUSCODE_FINAL:StatusCode - - - diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index c363133e3..292586331 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -102,45 +102,12 @@ def test_foundry_dependency_automated( if bug_report is not None: server._populate_bug_report(bug_report) - # Execution without CSE - prove_options = ProveOptions( - max_depth=10000, - max_iterations=100, - bug_report=bug_report, - cse=False, - fail_fast=False, - workers=2, - ) - - foundry_prove( - foundry, - tests=[(test_id, None)], - prove_options=prove_options, - rpc_options=RPCOptions(port=server.port, smt_timeout=500), - ) - - show_res = foundry_show( - foundry, - test=test_id, - to_module=False, - sort_collections=True, - omit_unstable_output=True, - pending=False, - failing=False, - failure_info=False, - counterexample_info=False, - port=server.port, - ) - - assert_or_update_show_output( - show_res, TEST_DATA_DIR / f'show/{test_id}.no-cse.expected', update=update_expected_output - ) - # Execution with CSE cse_prove_options = ProveOptions( max_depth=10000, max_iterations=100, bug_report=bug_report, + break_on_calls=False, cse=True, fail_fast=False, workers=2, From 499ac0b37e9cf0835ff7c46c70b8bdc35ba8d7ea Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Thu, 14 Mar 2024 18:00:22 +0000 Subject: [PATCH 89/91] Updating the running of proofs --- .../AddConst.applyOp(uint256).no-cse.expected | 63 ++++ ...ouble_add(uint256,uint256).no-cse.expected | 166 +++++++++++ ...ouble_sub(uint256,uint256).no-cse.expected | 256 +++++++++++++++++ ...l(uint256,uint256,uint256).no-cse.expected | 270 ++++++++++++++++++ .../Identity.applyOp(uint256).no-cse.expected | 70 +++++ ...Identity.identity(uint256).no-cse.expected | 24 ++ src/tests/integration/test_kontrol_cse.py | 35 +++ 7 files changed, 884 insertions(+) create mode 100644 src/tests/integration/test-data/show/AddConst.applyOp(uint256).no-cse.expected create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected create mode 100644 src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected create mode 100644 src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected create mode 100644 src/tests/integration/test-data/show/Identity.identity(uint256).no-cse.expected diff --git a/src/tests/integration/test-data/show/AddConst.applyOp(uint256).no-cse.expected b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).no-cse.expected new file mode 100644 index 000000000..95f1df4af --- /dev/null +++ b/src/tests/integration/test-data/show/AddConst.applyOp(uint256).no-cse.expected @@ -0,0 +1,63 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (324 steps) +├─ 3 (split) +│ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... +│ pc: 158 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTRACT_STORAGE:Map , 0 ) ) +┃ │ +┃ ├─ 4 +┃ │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... +┃ │ pc: 158 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (122 steps) +┃ ├─ 6 (terminal) +┃ │ k: #halt ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ ┊ constraint: OMITTED CONSTRAINT +┃ ┊ subst: OMITTED SUBST +┃ └─ 2 (leaf, target, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: PC_CELL_5d410f2a:Int +┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTRACT_STORAGE:Map , 0 ) ) ) + │ + ├─ 5 + │ k: JUMPI 180 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int #lookup ( CONTR ... + │ pc: 158 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (47 steps) + ├─ 7 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 179 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + ┊ constraint: OMITTED CONSTRAINT + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected new file mode 100644 index 000000000..bd9443e16 --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add(uint256,uint256).no-cse.expected @@ -0,0 +1,166 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (383 steps) +├─ 3 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (163 steps) +├─ 4 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 5 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (818 steps) +├─ 7 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ │ +┃ ├─ 8 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (129 steps) +┃ ├─ 10 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (753 steps) +┃ ├─ 12 (split) +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 14 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (129 steps) +┃ ┃ ├─ 16 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (265 steps) +┃ ┃ ├─ 18 (split) +┃ ┃ │ k: JUMPI 2528 bool2Word ( VV0_x_114b9705:Int CONTINUATION:K +┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ └─ 6 (leaf, target, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int CONTINUATION:K +┃ ┃ pc: 3736 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ │ +┃ ├─ 15 +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (66 steps) +┃ ├─ 17 +┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (72 steps) +┃ └─ 19 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 2474 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) + │ + ├─ 9 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (66 steps) + ├─ 11 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (72 steps) + └─ 13 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 2357 + callDepth: 0 + statusCode: EVMC_REVERT + + + diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected new file mode 100644 index 000000000..05f8a552f --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_double_sub(uint256,uint256).no-cse.expected @@ -0,0 +1,256 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (383 steps) +├─ 3 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (163 steps) +├─ 4 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 5 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (839 steps) +├─ 7 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 1 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ │ +┃ ├─ 8 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (129 steps) +┃ ├─ 10 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 128 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (753 steps) +┃ ├─ 12 (split) +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 14 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (129 steps) +┃ ┃ ├─ 16 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (795 steps) +┃ ┃ ├─ 18 (split) +┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ +┃ ┃ ┃ (branch) +┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 20 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (129 steps) +┃ ┃ ┃ ├─ 22 +┃ ┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (787 steps) +┃ ┃ ┃ ├─ 24 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┣━━┓ constraint: VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 26 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (129 steps) +┃ ┃ ┃ ┃ ├─ 28 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (265 steps) +┃ ┃ ┃ ┃ ├─ 30 (split) +┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┃ ┣━━┓ constraint: ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ├─ 32 +┃ ┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ │ (66 steps) +┃ ┃ ┃ ┃ ┃ └─ 34 (leaf, terminal) +┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ pc: 3736 +┃ ┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b9705:Int ) -Int ( ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) -Int VV1_y_114b9705:Int ) ) ==Int 0 ) +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 33 +┃ ┃ ┃ ┃ │ k: JUMPI 1762 ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +Int VV1_y_114b970 ... +┃ ┃ ┃ ┃ │ pc: 3015 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (63 steps) +┃ ┃ ┃ ┃ ├─ 35 (terminal) +┃ ┃ ┃ ┃ │ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ ┃ └─ 6 (leaf, target, terminal) +┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 27 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int ( VV0_x_114b9705:Int -Int VV1_y_1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (66 steps) +┃ ┃ ┃ ├─ 29 +┃ ┃ ┃ │ k: #halt ~> #return 224 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ └─ 31 (leaf, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 2969 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: ( notBool VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 21 +┃ ┃ │ k: JUMPI 618 bool2Word ( VV1_y_114b9705:Int <=Int VV0_x_114b9705:Int ) ~> #pc [ JUM ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (66 steps) +┃ ┃ ├─ 23 +┃ ┃ │ k: #halt ~> #return 192 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (72 steps) +┃ ┃ └─ 25 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 2852 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: ( notBool ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ │ +┃ ├─ 15 +┃ │ k: JUMPI 570 bool2Word ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) <=Int ( max ... +┃ │ pc: 562 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (66 steps) +┃ ├─ 17 +┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (72 steps) +┃ └─ 19 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 2730 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) + │ + ├─ 9 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 1 + │ statusCode: STATUSCODE:StatusCode + │ + │ (66 steps) + ├─ 11 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 550 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (72 steps) + └─ 13 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 2613 + callDepth: 0 + statusCode: EVMC_REVERT + + + diff --git a/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected new file mode 100644 index 000000000..e8fbd7e58 --- /dev/null +++ b/src/tests/integration/test-data/show/ArithmeticCallTest.test_double_add_sub_external(uint256,uint256,uint256).no-cse.expected @@ -0,0 +1,270 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (383 steps) +├─ 3 +│ k: #halt ~> #codeDeposit 491460923342184218035706888008750043977755113263 ~> #pc [ ... +│ pc: 30 +│ callDepth: 1 +│ statusCode: EVMC_SUCCESS +│ +│ (163 steps) +├─ 4 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 248 +│ callDepth: 0 +│ statusCode: EVMC_SUCCESS +│ +│ (1 step) +├─ 5 +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1350 steps) +├─ 7 (split) +│ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +│ pc: 562 +│ callDepth: 2 +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ │ +┃ ├─ 8 +┃ │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... +┃ │ pc: 562 +┃ │ callDepth: 2 +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (129 steps) +┃ ├─ 10 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... +┃ │ pc: 128 +┃ │ callDepth: 2 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (298 steps) +┃ ├─ 12 (split) +┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ │ pc: 610 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ ┃ +┃ ┃ (branch) +┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) +┃ ┃ │ +┃ ┃ ├─ 14 +┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ ┃ │ pc: 610 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (143 steps) +┃ ┃ ├─ 17 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 128 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (1249 steps) +┃ ┃ ├─ 19 (split) +┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ +┃ ┃ ┃ (branch) +┃ ┃ ┣━━┓ constraint: ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 21 +┃ ┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... +┃ ┃ ┃ │ pc: 562 +┃ ┃ ┃ │ callDepth: 2 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (129 steps) +┃ ┃ ┃ ├─ 23 +┃ ┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... +┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ │ callDepth: 2 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (298 steps) +┃ ┃ ┃ ├─ 25 (split) +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ (branch) +┃ ┃ ┃ ┣━━┓ constraint: VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ├─ 27 +┃ ┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (143 steps) +┃ ┃ ┃ ┃ ├─ 30 +┃ ┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ ┃ │ pc: 128 +┃ ┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ │ (265 steps) +┃ ┃ ┃ ┃ ├─ 32 (split) +┃ ┃ ┃ ┃ │ k: JUMPI 1762 bool2Word ( VV0_x_114b9705:Int CONTINUATION:K +┃ ┃ ┃ ┃ ┃ │ pc: 248 +┃ ┃ ┃ ┃ ┃ │ callDepth: 0 +┃ ┃ ┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ ┃ ┃ │ +┃ ┃ ┃ ┃ ┃ ┊ constraint: true +┃ ┃ ┃ ┃ ┃ ┊ subst: OMITTED SUBST +┃ ┃ ┃ ┃ ┃ └─ 6 (leaf, target, terminal) +┃ ┃ ┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ ┃ ┃ pc: PC_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ ┃ ┃ ┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ ┃ ┃ ┃ ┃ +┃ ┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV0_x_114b9705:Int CONTINUATION:K +┃ ┃ ┃ ┃ pc: 3736 +┃ ┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ ┃ +┃ ┃ ┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) +Int VV1_y_114b9705:Int ) ) +┃ ┃ ┃ │ +┃ ┃ ┃ ├─ 28 +┃ ┃ ┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( ( ( VV0_x_114b9705:Int +Int VV1 ... +┃ ┃ ┃ │ pc: 610 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ ┃ │ +┃ ┃ ┃ │ (66 steps) +┃ ┃ ┃ ├─ 31 +┃ ┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ ┃ │ pc: 550 +┃ ┃ ┃ │ callDepth: 1 +┃ ┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ ┃ │ +┃ ┃ ┃ │ (72 steps) +┃ ┃ ┃ └─ 33 (leaf, terminal) +┃ ┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ ┃ pc: 1708 +┃ ┃ ┃ callDepth: 0 +┃ ┃ ┃ statusCode: EVMC_REVERT +┃ ┃ ┃ +┃ ┃ ┗━━┓ constraint: ( notBool ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_z_114b9705:Int ) <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) +┃ ┃ │ +┃ ┃ ├─ 22 +┃ ┃ │ k: JUMPI 570 bool2Word ( ( ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) -Int VV2_ ... +┃ ┃ │ pc: 562 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_SUCCESS +┃ ┃ │ +┃ ┃ │ (66 steps) +┃ ┃ ├─ 24 +┃ ┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 160 32 ~> # ... +┃ ┃ │ pc: 550 +┃ ┃ │ callDepth: 2 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (72 steps) +┃ ┃ ├─ 26 +┃ ┃ │ k: #halt ~> #return 160 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ ┃ │ pc: 295 +┃ ┃ │ callDepth: 1 +┃ ┃ │ statusCode: EVMC_REVERT +┃ ┃ │ +┃ ┃ │ (72 steps) +┃ ┃ └─ 29 (leaf, terminal) +┃ ┃ k: #halt ~> CONTINUATION:K +┃ ┃ pc: 1708 +┃ ┃ callDepth: 0 +┃ ┃ statusCode: EVMC_REVERT +┃ ┃ +┃ ┗━━┓ constraint: ( notBool VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_114b9705:Int ) ) +┃ │ +┃ ├─ 15 +┃ │ k: JUMPI 618 bool2Word ( VV2_z_114b9705:Int <=Int ( VV0_x_114b9705:Int +Int VV1_y_1 ... +┃ │ pc: 610 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (66 steps) +┃ ├─ 18 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 550 +┃ │ callDepth: 1 +┃ │ statusCode: EVMC_REVERT +┃ │ +┃ │ (72 steps) +┃ └─ 20 (leaf, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: 1584 +┃ callDepth: 0 +┃ statusCode: EVMC_REVERT +┃ +┗━━┓ constraint: ( notBool VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705:Int ) ) + │ + ├─ 9 + │ k: JUMPI 570 bool2Word ( VV0_x_114b9705:Int <=Int ( maxUInt256 -Int VV1_y_114b9705: ... + │ pc: 562 + │ callDepth: 2 + │ statusCode: STATUSCODE:StatusCode + │ + │ (66 steps) + ├─ 11 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> #return 128 32 ~> # ... + │ pc: 550 + │ callDepth: 2 + │ statusCode: EVMC_REVERT + │ + │ (72 steps) + ├─ 13 + │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K + │ pc: 295 + │ callDepth: 1 + │ statusCode: EVMC_REVERT + │ + │ (72 steps) + └─ 16 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 1584 + callDepth: 0 + statusCode: EVMC_REVERT + + + diff --git a/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected new file mode 100644 index 000000000..6b4118982 --- /dev/null +++ b/src/tests/integration/test-data/show/Identity.applyOp(uint256).no-cse.expected @@ -0,0 +1,70 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (367 steps) +├─ 3 (split) +│ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +│ pc: 148 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +┃ +┃ (branch) +┣━━┓ constraint: CALLDEPTH_CELL:Int #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... +┃ │ pc: 148 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: STATUSCODE:StatusCode +┃ │ +┃ │ (347 steps) +┃ ├─ 6 +┃ │ k: #halt ~> #return 128 32 ~> #pc [ STATICCALL ] ~> #execute ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: ( CALLDEPTH_CELL:Int +Int 1 ) +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ │ (328 steps) +┃ ├─ 8 (terminal) +┃ │ k: #halt ~> CONTINUATION:K +┃ │ pc: 87 +┃ │ callDepth: CALLDEPTH_CELL:Int +┃ │ statusCode: EVMC_SUCCESS +┃ │ +┃ ┊ constraint: OMITTED CONSTRAINT +┃ ┊ subst: OMITTED SUBST +┃ └─ 2 (leaf, target, terminal) +┃ k: #halt ~> CONTINUATION:K +┃ pc: PC_CELL_5d410f2a:Int +┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int +┃ statusCode: STATUSCODE_FINAL:StatusCode +┃ +┗━━┓ constraint: 1024 <=Int CALLDEPTH_CELL:Int + │ + ├─ 5 + │ k: #checkDepthExceeded ~> #call CONTRACT_ID:Int CONTRACT_ID:Int CONTRACT_ID:Int 0 0 ... + │ pc: 148 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: STATUSCODE:StatusCode + │ + │ (76 steps) + ├─ 7 (terminal) + │ k: #halt ~> CONTINUATION:K + │ pc: 163 + │ callDepth: CALLDEPTH_CELL:Int + │ statusCode: EVMC_REVERT + │ + ┊ constraint: OMITTED CONSTRAINT + ┊ subst: OMITTED SUBST + └─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + diff --git a/src/tests/integration/test-data/show/Identity.identity(uint256).no-cse.expected b/src/tests/integration/test-data/show/Identity.identity(uint256).no-cse.expected new file mode 100644 index 000000000..159d58b9a --- /dev/null +++ b/src/tests/integration/test-data/show/Identity.identity(uint256).no-cse.expected @@ -0,0 +1,24 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: STATUSCODE:StatusCode +│ +│ (331 steps) +├─ 3 (terminal) +│ k: #halt ~> CONTINUATION:K +│ pc: 87 +│ callDepth: CALLDEPTH_CELL:Int +│ statusCode: EVMC_SUCCESS +│ +┊ constraint: OMITTED CONSTRAINT +┊ subst: OMITTED SUBST +└─ 2 (leaf, target, terminal) + k: #halt ~> CONTINUATION:K + pc: PC_CELL_5d410f2a:Int + callDepth: CALLDEPTH_CELL_5d410f2a:Int + statusCode: STATUSCODE_FINAL:StatusCode + + + diff --git a/src/tests/integration/test_kontrol_cse.py b/src/tests/integration/test_kontrol_cse.py index 292586331..727091540 100644 --- a/src/tests/integration/test_kontrol_cse.py +++ b/src/tests/integration/test_kontrol_cse.py @@ -102,6 +102,40 @@ def test_foundry_dependency_automated( if bug_report is not None: server._populate_bug_report(bug_report) + # Execution without CSE + prove_options = ProveOptions( + max_depth=10000, + max_iterations=100, + break_on_calls=False, + bug_report=bug_report, + fail_fast=False, + workers=2, + ) + + foundry_prove( + foundry, + tests=[(test_id, None)], + prove_options=prove_options, + rpc_options=RPCOptions(port=server.port, smt_timeout=500), + ) + + show_res = foundry_show( + foundry, + test=test_id, + to_module=False, + sort_collections=True, + omit_unstable_output=True, + pending=False, + failing=False, + failure_info=False, + counterexample_info=False, + port=server.port, + ) + + assert_or_update_show_output( + show_res, TEST_DATA_DIR / f'show/{test_id}.no-cse.expected', update=update_expected_output + ) + # Execution with CSE cse_prove_options = ProveOptions( max_depth=10000, @@ -109,6 +143,7 @@ def test_foundry_dependency_automated( bug_report=bug_report, break_on_calls=False, cse=True, + reinit=True, fail_fast=False, workers=2, ) From 1a34f80468c17c85b7905995cb772e4d6c413655 Mon Sep 17 00:00:00 2001 From: devops Date: Thu, 14 Mar 2024 18:00:44 +0000 Subject: [PATCH 90/91] Set Version: 0.1.205 --- package/version | 2 +- pyproject.toml | 2 +- src/kontrol/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/version b/package/version index 19cae7caf..87fb75320 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -0.1.204 +0.1.205 diff --git a/pyproject.toml b/pyproject.toml index 2651e044f..00ce4bf90 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kontrol" -version = "0.1.204" +version = "0.1.205" description = "Foundry integration for KEVM" authors = [ "Runtime Verification, Inc. ", diff --git a/src/kontrol/__init__.py b/src/kontrol/__init__.py index fe477f651..bf0f0c71b 100644 --- a/src/kontrol/__init__.py +++ b/src/kontrol/__init__.py @@ -5,4 +5,4 @@ if TYPE_CHECKING: from typing import Final -VERSION: Final = '0.1.204' +VERSION: Final = '0.1.205' From 88bd72016fb45ccdd2d901d959fe4af38b95dd51 Mon Sep 17 00:00:00 2001 From: Petar Maksimovic Date: Fri, 15 Mar 2024 00:23:10 +0000 Subject: [PATCH 91/91] adding a skipped test in init tests due to a run-constructor error --- .../test-data/foundry-init-code-skip | 1 + ...ConstructorTest.run_constructor().expected | 4043 ----------------- src/tests/integration/test_foundry_prove.py | 29 +- 3 files changed, 4 insertions(+), 4069 deletions(-) create mode 100644 src/tests/integration/test-data/foundry-init-code-skip delete mode 100644 src/tests/integration/test-data/show/ConstructorTest.run_constructor().expected diff --git a/src/tests/integration/test-data/foundry-init-code-skip b/src/tests/integration/test-data/foundry-init-code-skip new file mode 100644 index 000000000..192941047 --- /dev/null +++ b/src/tests/integration/test-data/foundry-init-code-skip @@ -0,0 +1 @@ +ConstructorTest.run_constructor() \ No newline at end of file diff --git a/src/tests/integration/test-data/show/ConstructorTest.run_constructor().expected b/src/tests/integration/test-data/show/ConstructorTest.run_constructor().expected deleted file mode 100644 index bdb8257cf..000000000 --- a/src/tests/integration/test-data/show/ConstructorTest.run_constructor().expected +++ /dev/null @@ -1,4043 +0,0 @@ - -┌─ 1 (root, init) -│ k: #execute ~> CONTINUATION:K -│ pc: 0 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -│ -│ (161 steps) -├─ 3 (split) -│ k: JUMPI 55 bool2Word ( CALLVALUE_CELL:Int ==Int 0 ) ~> #pc [ JUMPI ] ~> #execute ~ ... -│ pc: 50 -│ callDepth: 0 -│ statusCode: STATUSCODE:StatusCode -┃ -┃ (branch) -┣━━┓ constraint: CALLVALUE_CELL:Int ==Int 0 -┃ │ -┃ ├─ 4 -┃ │ k: JUMPI 55 1 ~> #pc [ JUMPI ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 50 -┃ │ callDepth: 0 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (41 steps) -┃ ├─ 6 -┃ │ k: #end EVMC_SUCCESS ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 69 -┃ │ callDepth: 0 -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (1 step) -┃ ├─ 8 -┃ │ k: #halt ~> #pc [ RETURN ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 69 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (2 steps) -┃ ├─ 10 (terminal) -┃ │ k: #halt ~> CONTINUATION:K -┃ │ pc: 69 -┃ │ callDepth: 0 -┃ │ statusCode: EVMC_SUCCESS -┃ │ -┃ │ (1 step) -┃ ├─ 12 -┃ │ k: #execute ~> CONTINUATION:K -┃ │ pc: 0 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ │ -┃ │ (181 steps) -┃ ├─ 15 -┃ │ k: SLOAD 27 ~> #pc [ SLOAD ] ~> #execute ~> CONTINUATION:K -┃ │ pc: 1879 -┃ │ callDepth: CALLDEPTH_CELL:Int -┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ -┃ ┃ (1 step) -┃ ┣━━┓ -┃ ┃ │ -┃ ┃ ├─ 17 -┃ ┃ │ k: 1 ~> #push ~> #pc [ SLOAD ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 1879 -┃ ┃ │ callDepth: CALLDEPTH_CELL:Int -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ │ -┃ ┃ │ (45 steps) -┃ ┃ ├─ 21 -┃ ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 317 -┃ ┃ │ callDepth: CALLDEPTH_CELL:Int -┃ ┃ │ statusCode: STATUSCODE:StatusCode -┃ ┃ │ -┃ ┃ │ (1 step) -┃ ┃ ├─ 23 -┃ ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K -┃ ┃ │ pc: 317 -┃ ┃ │ callDepth: CALLDEPTH_CELL:Int -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ │ (2 steps) -┃ ┃ ├─ 25 (terminal) -┃ ┃ │ k: #halt ~> CONTINUATION:K -┃ ┃ │ pc: 317 -┃ ┃ │ callDepth: CALLDEPTH_CELL:Int -┃ ┃ │ statusCode: EVMC_SUCCESS -┃ ┃ │ -┃ ┃ ┊ constraint: true -┃ ┃ ┊ subst: OMITTED SUBST -┃ ┃ └─ 14 (leaf, target, terminal) -┃ ┃ k: #halt ~> CONTINUATION:K -┃ ┃ pc: PC_CELL_5d410f2a:Int -┃ ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int -┃ ┃ statusCode: STATUSCODE_FINAL:StatusCode -┃ ┃ -┃ ┗━━┓ -┃ │ -┃ └─ 18 (stuck, leaf) -┃ k: SLOAD 27 ~> #pc [ SLOAD ] ~> #execute ~> CONTINUATION:K -┃ pc: 1879 -┃ callDepth: CALLDEPTH_CELL:Int -┃ statusCode: STATUSCODE:StatusCode -┃ -┗━━┓ constraint: ( notBool CALLVALUE_CELL:Int ==Int 0 ) - │ - ├─ 5 - │ k: JUMPI 55 bool2Word ( CALLVALUE_CELL:Int ==Int 0 ) ~> #pc [ JUMPI ] ~> #execute ~ ... - │ pc: 50 - │ callDepth: 0 - │ statusCode: STATUSCODE:StatusCode - │ - │ (12 steps) - ├─ 7 - │ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 54 - │ callDepth: 0 - │ statusCode: STATUSCODE:StatusCode - │ - │ (1 step) - ├─ 9 - │ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K - │ pc: 54 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (2 steps) - ├─ 11 (terminal) - │ k: #halt ~> CONTINUATION:K - │ pc: 54 - │ callDepth: 0 - │ statusCode: EVMC_REVERT - │ - │ (1 step) - ├─ 13 - │ k: #execute ~> CONTINUATION:K - │ pc: 0 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - │ - │ (181 steps) - ├─ 16 - │ k: SLOAD 27 ~> #pc [ SLOAD ] ~> #execute ~> CONTINUATION:K - │ pc: 1879 - │ callDepth: CALLDEPTH_CELL:Int - │ statusCode: STATUSCODE:StatusCode - ┃ - ┃ (1 step) - ┣━━┓ - ┃ │ - ┃ ├─ 19 - ┃ │ k: 1 ~> #push ~> #pc [ SLOAD ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 1879 - ┃ │ callDepth: CALLDEPTH_CELL:Int - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ │ - ┃ │ (45 steps) - ┃ ├─ 22 - ┃ │ k: #end EVMC_SUCCESS ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 317 - ┃ │ callDepth: CALLDEPTH_CELL:Int - ┃ │ statusCode: STATUSCODE:StatusCode - ┃ │ - ┃ │ (1 step) - ┃ ├─ 24 - ┃ │ k: #halt ~> #pc [ STOP ] ~> #execute ~> CONTINUATION:K - ┃ │ pc: 317 - ┃ │ callDepth: CALLDEPTH_CELL:Int - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ - ┃ │ (2 steps) - ┃ ├─ 26 (terminal) - ┃ │ k: #halt ~> CONTINUATION:K - ┃ │ pc: 317 - ┃ │ callDepth: CALLDEPTH_CELL:Int - ┃ │ statusCode: EVMC_SUCCESS - ┃ │ - ┃ ┊ constraint: true - ┃ ┊ subst: OMITTED SUBST - ┃ └─ 14 (leaf, target, terminal) - ┃ k: #halt ~> CONTINUATION:K - ┃ pc: PC_CELL_5d410f2a:Int - ┃ callDepth: CALLDEPTH_CELL_5d410f2a:Int - ┃ statusCode: STATUSCODE_FINAL:StatusCode - ┃ - ┗━━┓ - │ - └─ 20 (stuck, leaf) - k: SLOAD 27 ~> #pc [ SLOAD ] ~> #execute ~> CONTINUATION:K - pc: 1879 - callDepth: CALLDEPTH_CELL:Int - statusCode: STATUSCODE:StatusCode - - - -Node 18: - -( - - - - SLOAD 27 - ~> #pc [ SLOAD ] - ~> #execute - ~> CONTINUATION:K - - - NORMAL - - - SHANGHAI - - - false - - - - - - CONTRACT_ID:Int - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( 316 : ( selector ( "run_constructor()" ) : .WordStack ) ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - ... - -#And ( { true #Equals 0 <=Int CALLER_ID:Int } -#And ( { true #Equals 0 <=Int ORIGIN_ID:Int } -#And ( { true #Equals 0 <=Int CONTRACT_ID:Int } -#And ( { true #Equals 0 <=Int NUMBER_CELL:Int } -#And ( { true #Equals 0 <=Int CONTRACT_BAL:Int } -#And ( { true #Equals 0 <=Int CONTRACT_NONCE:Int } -#And ( { true #Equals 0 <=Int TIMESTAMP_CELL:Int } -#And ( { true #Equals CONTRACT_NONCE:Int - - - - SLOAD 27 - ~> #pc [ SLOAD ] - ~> #execute - ~> CONTINUATION:K - - - NORMAL - - - SHANGHAI - - - false - - - - - - CONTRACT_ID:Int - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( 316 : ( selector ( "run_constructor()" ) : .WordStack ) ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - ... - -#And ( { true #Equals 0 <=Int CALLER_ID:Int } -#And ( { true #Equals 0 <=Int ORIGIN_ID:Int } -#And ( { true #Equals 0 <=Int CONTRACT_ID:Int } -#And ( { true #Equals 0 <=Int NUMBER_CELL:Int } -#And ( { true #Equals 0 <=Int CONTRACT_BAL:Int } -#And ( { true #Equals 0 <=Int CONTRACT_NONCE:Int } -#And ( { true #Equals 0 <=Int TIMESTAMP_CELL:Int } -#And ( { true #Equals CONTRACT_NONCE:Int - - - ( .K => JUMPI 55 bool2Word ( CALLVALUE_CELL:Int ==Int 0 ) - ~> #pc [ JUMPI ] ) - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"" - - - .List - - - .List - - - .Set - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - CALLDATA_CELL:Bytes - - - CALLVALUE_CELL:Int - - - ( .WordStack => ( CALLVALUE_CELL:Int : .WordStack ) ) - - - ( b"" => b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" ) - - - 0 - - - 0 - - - false - - - 0 - - ... - - - - .List - - - 0 - - - .Set - - - .Map - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( .Map => ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CALLVALUE_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( _CONTRACT_ID =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - ( JUMPI 55 1 - ~> #pc [ JUMPI ] => #end EVMC_SUCCESS - ~> #pc [ RETURN ] ) - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - ( b"" => b"`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00\xcfW`\x005`\xe0\x1c\x80c\x92\xdfO\xbd\x11a\x00\x8cW\x80c\xe0\x18\x0b\x0b\x11a\x00fW\x80c\xe0\x18\x0b\x0b\x14a\x01^W\x80c\xe2\f\x9fq\x14a\x01fW\x80c\xe9\x9bk1\x14a\x01^W\x80c\xfav&\xd4\x14a\x01nW`\x00\x80\xfd[\x80c\x92\xdfO\xbd\x14a\x014W\x80c\xb5P\x8a\xa9\x14a\x01>W\x80c\xbaAO\xa6\x14a\x01FW`\x00\x80\xfd[\x80c\x1e\xd7\x83\x1c\x14a\x00\xd4W\x80c>^<#\x14a\x00\xf2W\x80c?r\x86\xf4\x14a\x00\xfaW\x80cf\xd9\xa9\xa0\x14a\x01\x02W\x80c\x85\"l\x81\x14a\x01\x17W\x80c\x91j\x17\xc6\x14a\x01,W[`\x00\x80\xfd[a\x00\xdca\x01{V[`@Qa\x00\xe9\x91\x90a\x07\xc6V[`@Q\x80\x91\x03\x90\xf3[a\x00\xdca\x01\xddV[a\x00\xdca\x02=V[a\x01\na\x02\x9dV[`@Qa\x00\xe9\x91\x90a\x08\x13V[a\x01\x1fa\x03\x8cV[`@Qa\x00\xe9\x91\x90a\x08\xf6V[a\x01\na\x04\\V[a\x01a\x073V[``\x91P[P\x91PP\x80\x80` \x01\x90Q\x81\x01\x90a\x07K\x91\x90a\n\rV[\x91PP[\x91\x90PV[`\x1bT`\xff\x16a\x05UWa\x05Ua\t\xaaV[```\x13\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x01\xd3W` \x02\x82\x01\x91\x90`\x00R` `\x00 \x90\x81T`\x01`\x01`\xa0\x1b\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x01\xb5WPPPPP\x90P\x90V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\x00\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x08\x07W\x83Q`\x01`\x01`\xa0\x1b\x03\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x07\xe2V[P\x90\x96\x95PPPPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1b\x87\x01\x01\x84\x88\x01`\x00\x80[\x84\x81\x10\x15a\x08\xb7W\x89\x84\x03`?\x19\x01\x86R\x82Q\x80Q`\x01`\x01`\xa0\x1b\x03\x16\x85R\x88\x01Q\x88\x85\x01\x88\x90R\x80Q\x88\x86\x01\x81\x90R\x90\x89\x01\x90\x83\x90``\x87\x01\x90[\x80\x83\x10\x15a\x08\xa2W\x83Q`\x01`\x01`\xe0\x1b\x03\x19\x16\x82R\x92\x8b\x01\x92`\x01\x92\x90\x92\x01\x91\x90\x8b\x01\x90a\x08xV[P\x97\x8a\x01\x97\x95PPP\x91\x87\x01\x91`\x01\x01a\x08;V[P\x91\x99\x98PPPPPPPPPV[`\x00[\x83\x81\x10\x15a\x08\xe1W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xc9V[\x83\x81\x11\x15a\x08\xf0W`\x00\x84\x84\x01R[PPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1b\x87\x01\x01\x92P\x83\x87\x01`\x00[\x82\x81\x10\x15a\tcW\x87\x85\x03`?\x19\x01\x84R\x81Q\x80Q\x80\x87Ra\tD\x81\x89\x89\x01\x8a\x85\x01a\x08\xc6V[`\x1f\x01`\x1f\x19\x16\x95\x90\x95\x01\x86\x01\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a\t\x1dV[P\x92\x97\x96PPPPPPPV[`\x01\x81\x81\x1c\x90\x82\x16\x80a\t\x84W`\x7f\x82\x16\x91P[` \x82\x10\x81\x03a\t\xa4WcNH{q`\xe0\x1b`\x00R`\"`\x04R`$`\x00\xfd[P\x91\x90PV[cNH{q`\xe0\x1b`\x00R`\x01`\x04R`$`\x00\xfd[`\x01`\x01`\xe0\x1b\x03\x19\x83\x16\x81R\x81Q`\x00\x90a\t\xe3\x81`\x04\x85\x01` \x87\x01a\x08\xc6V[\x91\x90\x91\x01`\x04\x01\x93\x92PPPV[`\x00\x82Qa\n\x03\x81\x84` \x87\x01a\x08\xc6V[\x91\x90\x91\x01\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a\n\x1fW`\x00\x80\xfd[\x81Q\x80\x15\x15\x81\x14a\n/W`\x00\x80\xfd[\x93\x92PPPV\xfe\xa2dipfsX\"\x12 \xe3\x9c:|\xfdqcd\xee\xdb\x86\xce\xf3*\x08\x90\x94]l\xec\n\xcb$\xb0\xfc\x90U\x17M\xa9\x8eldsolcC\x00\x08\r\x003" ) - - - .List - - - .List - - - .Set - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - CALLDATA_CELL:Bytes - - - 0 - - - ( ( 0 : .WordStack ) => .WordStack ) - - - ( b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" => b"`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00\xcfW`\x005`\xe0\x1c\x80c\x92\xdfO\xbd\x11a\x00\x8cW\x80c\xe0\x18\x0b\x0b\x11a\x00fW\x80c\xe0\x18\x0b\x0b\x14a\x01^W\x80c\xe2\f\x9fq\x14a\x01fW\x80c\xe9\x9bk1\x14a\x01^W\x80c\xfav&\xd4\x14a\x01nW`\x00\x80\xfd[\x80c\x92\xdfO\xbd\x14a\x014W\x80c\xb5P\x8a\xa9\x14a\x01>W\x80c\xbaAO\xa6\x14a\x01FW`\x00\x80\xfd[\x80c\x1e\xd7\x83\x1c\x14a\x00\xd4W\x80c>^<#\x14a\x00\xf2W\x80c?r\x86\xf4\x14a\x00\xfaW\x80cf\xd9\xa9\xa0\x14a\x01\x02W\x80c\x85\"l\x81\x14a\x01\x17W\x80c\x91j\x17\xc6\x14a\x01,W[`\x00\x80\xfd[a\x00\xdca\x01{V[`@Qa\x00\xe9\x91\x90a\x07\xc6V[`@Q\x80\x91\x03\x90\xf3[a\x00\xdca\x01\xddV[a\x00\xdca\x02=V[a\x01\na\x02\x9dV[`@Qa\x00\xe9\x91\x90a\x08\x13V[a\x01\x1fa\x03\x8cV[`@Qa\x00\xe9\x91\x90a\x08\xf6V[a\x01\na\x04\\V[a\x01a\x073V[``\x91P[P\x91PP\x80\x80` \x01\x90Q\x81\x01\x90a\x07K\x91\x90a\n\rV[\x91PP[\x91\x90PV[`\x1bT`\xff\x16a\x05UWa\x05Ua\t\xaaV[```\x13\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x01\xd3W` \x02\x82\x01\x91\x90`\x00R` `\x00 \x90\x81T`\x01`\x01`\xa0\x1b\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x01\xb5WPPPPP\x90P\x90V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\x00\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x08\x07W\x83Q`\x01`\x01`\xa0\x1b\x03\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x07\xe2V[P\x90\x96\x95PPPPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1b\x87\x01\x01\x84\x88\x01`\x00\x80[\x84\x81\x10\x15a\x08\xb7W\x89\x84\x03`?\x19\x01\x86R\x82Q\x80Q`\x01`\x01`\xa0\x1b\x03\x16\x85R\x88\x01Q\x88\x85\x01\x88\x90R\x80Q\x88\x86\x01\x81\x90R\x90\x89\x01\x90\x83\x90``\x87\x01\x90[\x80\x83\x10\x15a\x08\xa2W\x83Q`\x01`\x01`\xe0\x1b\x03\x19\x16\x82R\x92\x8b\x01\x92`\x01\x92\x90\x92\x01\x91\x90\x8b\x01\x90a\x08xV[P\x97\x8a\x01\x97\x95PPP\x91\x87\x01\x91`\x01\x01a\x08;V[P\x91\x99\x98PPPPPPPPPV[`\x00[\x83\x81\x10\x15a\x08\xe1W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xc9V[\x83\x81\x11\x15a\x08\xf0W`\x00\x84\x84\x01R[PPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1b\x87\x01\x01\x92P\x83\x87\x01`\x00[\x82\x81\x10\x15a\tcW\x87\x85\x03`?\x19\x01\x84R\x81Q\x80Q\x80\x87Ra\tD\x81\x89\x89\x01\x8a\x85\x01a\x08\xc6V[`\x1f\x01`\x1f\x19\x16\x95\x90\x95\x01\x86\x01\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a\t\x1dV[P\x92\x97\x96PPPPPPPV[`\x01\x81\x81\x1c\x90\x82\x16\x80a\t\x84W`\x7f\x82\x16\x91P[` \x82\x10\x81\x03a\t\xa4WcNH{q`\xe0\x1b`\x00R`\"`\x04R`$`\x00\xfd[P\x91\x90PV[cNH{q`\xe0\x1b`\x00R`\x01`\x04R`$`\x00\xfd[`\x01`\x01`\xe0\x1b\x03\x19\x83\x16\x81R\x81Q`\x00\x90a\t\xe3\x81`\x04\x85\x01` \x87\x01a\x08\xc6V[\x91\x90\x91\x01`\x04\x01\x93\x92PPPV[`\x00\x82Qa\n\x03\x81\x84` \x87\x01a\x08\xc6V[\x91\x90\x91\x01\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a\n\x1fW`\x00\x80\xfd[\x81Q\x80\x15\x15\x81\x14a\n/W`\x00\x80\xfd[\x93\x92PPPV\xfe\xa2dipfsX\"\x12 \xe3\x9c:|\xfdqcd\xee\xdb\x86\xce\xf3*\x08\x90\x94]l\xec\n\xcb$\xb0\xfc\x90U\x17M\xa9\x8eldsolcC\x00\x08\r\x003" ) - - - 0 - - - 0 - - - false - - - 0 - - ... - - - - .List - - - 0 - - - .Set - - - .Map - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CALLVALUE_CELL ==K 0 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( _CONTRACT_ID =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - ( JUMPI 55 bool2Word ( CALLVALUE_CELL:Int ==Int 0 ) - ~> #pc [ JUMPI ] => #end EVMC_REVERT - ~> #pc [ REVERT ] ) - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"" - - - .List - - - .List - - - .Set - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - CALLDATA_CELL:Bytes - - - CALLVALUE_CELL:Int - - - ( CALLVALUE_CELL:Int : .WordStack ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - - false - - - 0 - - ... - - - - .List - - - 0 - - - .Set - - - .Map - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( CALLVALUE_CELL:Int =/=K 0 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CALLVALUE_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( _CONTRACT_ID =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - ( #end EVMC_SUCCESS => #halt ) - ~> #pc [ RETURN ] - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00\xcfW`\x005`\xe0\x1c\x80c\x92\xdfO\xbd\x11a\x00\x8cW\x80c\xe0\x18\x0b\x0b\x11a\x00fW\x80c\xe0\x18\x0b\x0b\x14a\x01^W\x80c\xe2\f\x9fq\x14a\x01fW\x80c\xe9\x9bk1\x14a\x01^W\x80c\xfav&\xd4\x14a\x01nW`\x00\x80\xfd[\x80c\x92\xdfO\xbd\x14a\x014W\x80c\xb5P\x8a\xa9\x14a\x01>W\x80c\xbaAO\xa6\x14a\x01FW`\x00\x80\xfd[\x80c\x1e\xd7\x83\x1c\x14a\x00\xd4W\x80c>^<#\x14a\x00\xf2W\x80c?r\x86\xf4\x14a\x00\xfaW\x80cf\xd9\xa9\xa0\x14a\x01\x02W\x80c\x85\"l\x81\x14a\x01\x17W\x80c\x91j\x17\xc6\x14a\x01,W[`\x00\x80\xfd[a\x00\xdca\x01{V[`@Qa\x00\xe9\x91\x90a\x07\xc6V[`@Q\x80\x91\x03\x90\xf3[a\x00\xdca\x01\xddV[a\x00\xdca\x02=V[a\x01\na\x02\x9dV[`@Qa\x00\xe9\x91\x90a\x08\x13V[a\x01\x1fa\x03\x8cV[`@Qa\x00\xe9\x91\x90a\x08\xf6V[a\x01\na\x04\\V[a\x01a\x073V[``\x91P[P\x91PP\x80\x80` \x01\x90Q\x81\x01\x90a\x07K\x91\x90a\n\rV[\x91PP[\x91\x90PV[`\x1bT`\xff\x16a\x05UWa\x05Ua\t\xaaV[```\x13\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x01\xd3W` \x02\x82\x01\x91\x90`\x00R` `\x00 \x90\x81T`\x01`\x01`\xa0\x1b\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x01\xb5WPPPPP\x90P\x90V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\x00\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x08\x07W\x83Q`\x01`\x01`\xa0\x1b\x03\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x07\xe2V[P\x90\x96\x95PPPPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1b\x87\x01\x01\x84\x88\x01`\x00\x80[\x84\x81\x10\x15a\x08\xb7W\x89\x84\x03`?\x19\x01\x86R\x82Q\x80Q`\x01`\x01`\xa0\x1b\x03\x16\x85R\x88\x01Q\x88\x85\x01\x88\x90R\x80Q\x88\x86\x01\x81\x90R\x90\x89\x01\x90\x83\x90``\x87\x01\x90[\x80\x83\x10\x15a\x08\xa2W\x83Q`\x01`\x01`\xe0\x1b\x03\x19\x16\x82R\x92\x8b\x01\x92`\x01\x92\x90\x92\x01\x91\x90\x8b\x01\x90a\x08xV[P\x97\x8a\x01\x97\x95PPP\x91\x87\x01\x91`\x01\x01a\x08;V[P\x91\x99\x98PPPPPPPPPV[`\x00[\x83\x81\x10\x15a\x08\xe1W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xc9V[\x83\x81\x11\x15a\x08\xf0W`\x00\x84\x84\x01R[PPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1b\x87\x01\x01\x92P\x83\x87\x01`\x00[\x82\x81\x10\x15a\tcW\x87\x85\x03`?\x19\x01\x84R\x81Q\x80Q\x80\x87Ra\tD\x81\x89\x89\x01\x8a\x85\x01a\x08\xc6V[`\x1f\x01`\x1f\x19\x16\x95\x90\x95\x01\x86\x01\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a\t\x1dV[P\x92\x97\x96PPPPPPPV[`\x01\x81\x81\x1c\x90\x82\x16\x80a\t\x84W`\x7f\x82\x16\x91P[` \x82\x10\x81\x03a\t\xa4WcNH{q`\xe0\x1b`\x00R`\"`\x04R`$`\x00\xfd[P\x91\x90PV[cNH{q`\xe0\x1b`\x00R`\x01`\x04R`$`\x00\xfd[`\x01`\x01`\xe0\x1b\x03\x19\x83\x16\x81R\x81Q`\x00\x90a\t\xe3\x81`\x04\x85\x01` \x87\x01a\x08\xc6V[\x91\x90\x91\x01`\x04\x01\x93\x92PPPV[`\x00\x82Qa\n\x03\x81\x84` \x87\x01a\x08\xc6V[\x91\x90\x91\x01\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a\n\x1fW`\x00\x80\xfd[\x81Q\x80\x15\x15\x81\x14a\n/W`\x00\x80\xfd[\x93\x92PPPV\xfe\xa2dipfsX\"\x12 \xe3\x9c:|\xfdqcd\xee\xdb\x86\xce\xf3*\x08\x90\x94]l\xec\n\xcb$\xb0\xfc\x90U\x17M\xa9\x8eldsolcC\x00\x08\r\x003" - - - ( _STATUSCODE => EVMC_SUCCESS ) - - - .List - - - .List - - - .Set - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - CALLDATA_CELL:Bytes - - - 0 - - - .WordStack - - - b"`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00\xcfW`\x005`\xe0\x1c\x80c\x92\xdfO\xbd\x11a\x00\x8cW\x80c\xe0\x18\x0b\x0b\x11a\x00fW\x80c\xe0\x18\x0b\x0b\x14a\x01^W\x80c\xe2\f\x9fq\x14a\x01fW\x80c\xe9\x9bk1\x14a\x01^W\x80c\xfav&\xd4\x14a\x01nW`\x00\x80\xfd[\x80c\x92\xdfO\xbd\x14a\x014W\x80c\xb5P\x8a\xa9\x14a\x01>W\x80c\xbaAO\xa6\x14a\x01FW`\x00\x80\xfd[\x80c\x1e\xd7\x83\x1c\x14a\x00\xd4W\x80c>^<#\x14a\x00\xf2W\x80c?r\x86\xf4\x14a\x00\xfaW\x80cf\xd9\xa9\xa0\x14a\x01\x02W\x80c\x85\"l\x81\x14a\x01\x17W\x80c\x91j\x17\xc6\x14a\x01,W[`\x00\x80\xfd[a\x00\xdca\x01{V[`@Qa\x00\xe9\x91\x90a\x07\xc6V[`@Q\x80\x91\x03\x90\xf3[a\x00\xdca\x01\xddV[a\x00\xdca\x02=V[a\x01\na\x02\x9dV[`@Qa\x00\xe9\x91\x90a\x08\x13V[a\x01\x1fa\x03\x8cV[`@Qa\x00\xe9\x91\x90a\x08\xf6V[a\x01\na\x04\\V[a\x01a\x073V[``\x91P[P\x91PP\x80\x80` \x01\x90Q\x81\x01\x90a\x07K\x91\x90a\n\rV[\x91PP[\x91\x90PV[`\x1bT`\xff\x16a\x05UWa\x05Ua\t\xaaV[```\x13\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x01\xd3W` \x02\x82\x01\x91\x90`\x00R` `\x00 \x90\x81T`\x01`\x01`\xa0\x1b\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x01\xb5WPPPPP\x90P\x90V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\x00\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x08\x07W\x83Q`\x01`\x01`\xa0\x1b\x03\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x07\xe2V[P\x90\x96\x95PPPPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1b\x87\x01\x01\x84\x88\x01`\x00\x80[\x84\x81\x10\x15a\x08\xb7W\x89\x84\x03`?\x19\x01\x86R\x82Q\x80Q`\x01`\x01`\xa0\x1b\x03\x16\x85R\x88\x01Q\x88\x85\x01\x88\x90R\x80Q\x88\x86\x01\x81\x90R\x90\x89\x01\x90\x83\x90``\x87\x01\x90[\x80\x83\x10\x15a\x08\xa2W\x83Q`\x01`\x01`\xe0\x1b\x03\x19\x16\x82R\x92\x8b\x01\x92`\x01\x92\x90\x92\x01\x91\x90\x8b\x01\x90a\x08xV[P\x97\x8a\x01\x97\x95PPP\x91\x87\x01\x91`\x01\x01a\x08;V[P\x91\x99\x98PPPPPPPPPV[`\x00[\x83\x81\x10\x15a\x08\xe1W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xc9V[\x83\x81\x11\x15a\x08\xf0W`\x00\x84\x84\x01R[PPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1b\x87\x01\x01\x92P\x83\x87\x01`\x00[\x82\x81\x10\x15a\tcW\x87\x85\x03`?\x19\x01\x84R\x81Q\x80Q\x80\x87Ra\tD\x81\x89\x89\x01\x8a\x85\x01a\x08\xc6V[`\x1f\x01`\x1f\x19\x16\x95\x90\x95\x01\x86\x01\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a\t\x1dV[P\x92\x97\x96PPPPPPPV[`\x01\x81\x81\x1c\x90\x82\x16\x80a\t\x84W`\x7f\x82\x16\x91P[` \x82\x10\x81\x03a\t\xa4WcNH{q`\xe0\x1b`\x00R`\"`\x04R`$`\x00\xfd[P\x91\x90PV[cNH{q`\xe0\x1b`\x00R`\x01`\x04R`$`\x00\xfd[`\x01`\x01`\xe0\x1b\x03\x19\x83\x16\x81R\x81Q`\x00\x90a\t\xe3\x81`\x04\x85\x01` \x87\x01a\x08\xc6V[\x91\x90\x91\x01`\x04\x01\x93\x92PPPV[`\x00\x82Qa\n\x03\x81\x84` \x87\x01a\x08\xc6V[\x91\x90\x91\x01\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a\n\x1fW`\x00\x80\xfd[\x81Q\x80\x15\x15\x81\x14a\n/W`\x00\x80\xfd[\x93\x92PPPV\xfe\xa2dipfsX\"\x12 \xe3\x9c:|\xfdqcd\xee\xdb\x86\xce\xf3*\x08\x90\x94]l\xec\n\xcb$\xb0\xfc\x90U\x17M\xa9\x8eldsolcC\x00\x08\r\x003" - - - 0 - - - 0 - - - false - - - 0 - - ... - - - - .List - - - 0 - - - .Set - - - .Map - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CALLVALUE_CELL ==K 0 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( _CONTRACT_ID =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - ( #end EVMC_REVERT => #halt ) - ~> #pc [ REVERT ] - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"" - - - ( _STATUSCODE => EVMC_REVERT ) - - - .List - - - .List - - - .Set - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - CALLDATA_CELL:Bytes - - - CALLVALUE_CELL:Int - - - ( CALLVALUE_CELL:Int : .WordStack ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - - false - - - 0 - - ... - - - - .List - - - 0 - - - .Set - - - .Map - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( CALLVALUE_CELL:Int =/=K 0 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CALLVALUE_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( _CONTRACT_ID =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - #halt - ~> ( #pc [ RETURN ] - ~> #execute => .K ) - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00\xcfW`\x005`\xe0\x1c\x80c\x92\xdfO\xbd\x11a\x00\x8cW\x80c\xe0\x18\x0b\x0b\x11a\x00fW\x80c\xe0\x18\x0b\x0b\x14a\x01^W\x80c\xe2\f\x9fq\x14a\x01fW\x80c\xe9\x9bk1\x14a\x01^W\x80c\xfav&\xd4\x14a\x01nW`\x00\x80\xfd[\x80c\x92\xdfO\xbd\x14a\x014W\x80c\xb5P\x8a\xa9\x14a\x01>W\x80c\xbaAO\xa6\x14a\x01FW`\x00\x80\xfd[\x80c\x1e\xd7\x83\x1c\x14a\x00\xd4W\x80c>^<#\x14a\x00\xf2W\x80c?r\x86\xf4\x14a\x00\xfaW\x80cf\xd9\xa9\xa0\x14a\x01\x02W\x80c\x85\"l\x81\x14a\x01\x17W\x80c\x91j\x17\xc6\x14a\x01,W[`\x00\x80\xfd[a\x00\xdca\x01{V[`@Qa\x00\xe9\x91\x90a\x07\xc6V[`@Q\x80\x91\x03\x90\xf3[a\x00\xdca\x01\xddV[a\x00\xdca\x02=V[a\x01\na\x02\x9dV[`@Qa\x00\xe9\x91\x90a\x08\x13V[a\x01\x1fa\x03\x8cV[`@Qa\x00\xe9\x91\x90a\x08\xf6V[a\x01\na\x04\\V[a\x01a\x073V[``\x91P[P\x91PP\x80\x80` \x01\x90Q\x81\x01\x90a\x07K\x91\x90a\n\rV[\x91PP[\x91\x90PV[`\x1bT`\xff\x16a\x05UWa\x05Ua\t\xaaV[```\x13\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x01\xd3W` \x02\x82\x01\x91\x90`\x00R` `\x00 \x90\x81T`\x01`\x01`\xa0\x1b\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x01\xb5WPPPPP\x90P\x90V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\x00\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x08\x07W\x83Q`\x01`\x01`\xa0\x1b\x03\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x07\xe2V[P\x90\x96\x95PPPPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1b\x87\x01\x01\x84\x88\x01`\x00\x80[\x84\x81\x10\x15a\x08\xb7W\x89\x84\x03`?\x19\x01\x86R\x82Q\x80Q`\x01`\x01`\xa0\x1b\x03\x16\x85R\x88\x01Q\x88\x85\x01\x88\x90R\x80Q\x88\x86\x01\x81\x90R\x90\x89\x01\x90\x83\x90``\x87\x01\x90[\x80\x83\x10\x15a\x08\xa2W\x83Q`\x01`\x01`\xe0\x1b\x03\x19\x16\x82R\x92\x8b\x01\x92`\x01\x92\x90\x92\x01\x91\x90\x8b\x01\x90a\x08xV[P\x97\x8a\x01\x97\x95PPP\x91\x87\x01\x91`\x01\x01a\x08;V[P\x91\x99\x98PPPPPPPPPV[`\x00[\x83\x81\x10\x15a\x08\xe1W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xc9V[\x83\x81\x11\x15a\x08\xf0W`\x00\x84\x84\x01R[PPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1b\x87\x01\x01\x92P\x83\x87\x01`\x00[\x82\x81\x10\x15a\tcW\x87\x85\x03`?\x19\x01\x84R\x81Q\x80Q\x80\x87Ra\tD\x81\x89\x89\x01\x8a\x85\x01a\x08\xc6V[`\x1f\x01`\x1f\x19\x16\x95\x90\x95\x01\x86\x01\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a\t\x1dV[P\x92\x97\x96PPPPPPPV[`\x01\x81\x81\x1c\x90\x82\x16\x80a\t\x84W`\x7f\x82\x16\x91P[` \x82\x10\x81\x03a\t\xa4WcNH{q`\xe0\x1b`\x00R`\"`\x04R`$`\x00\xfd[P\x91\x90PV[cNH{q`\xe0\x1b`\x00R`\x01`\x04R`$`\x00\xfd[`\x01`\x01`\xe0\x1b\x03\x19\x83\x16\x81R\x81Q`\x00\x90a\t\xe3\x81`\x04\x85\x01` \x87\x01a\x08\xc6V[\x91\x90\x91\x01`\x04\x01\x93\x92PPPV[`\x00\x82Qa\n\x03\x81\x84` \x87\x01a\x08\xc6V[\x91\x90\x91\x01\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a\n\x1fW`\x00\x80\xfd[\x81Q\x80\x15\x15\x81\x14a\n/W`\x00\x80\xfd[\x93\x92PPPV\xfe\xa2dipfsX\"\x12 \xe3\x9c:|\xfdqcd\xee\xdb\x86\xce\xf3*\x08\x90\x94]l\xec\n\xcb$\xb0\xfc\x90U\x17M\xa9\x8eldsolcC\x00\x08\r\x003" - - - EVMC_SUCCESS - - - .List - - - .List - - - .Set - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - CALLDATA_CELL:Bytes - - - 0 - - - .WordStack - - - b"`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00\xcfW`\x005`\xe0\x1c\x80c\x92\xdfO\xbd\x11a\x00\x8cW\x80c\xe0\x18\x0b\x0b\x11a\x00fW\x80c\xe0\x18\x0b\x0b\x14a\x01^W\x80c\xe2\f\x9fq\x14a\x01fW\x80c\xe9\x9bk1\x14a\x01^W\x80c\xfav&\xd4\x14a\x01nW`\x00\x80\xfd[\x80c\x92\xdfO\xbd\x14a\x014W\x80c\xb5P\x8a\xa9\x14a\x01>W\x80c\xbaAO\xa6\x14a\x01FW`\x00\x80\xfd[\x80c\x1e\xd7\x83\x1c\x14a\x00\xd4W\x80c>^<#\x14a\x00\xf2W\x80c?r\x86\xf4\x14a\x00\xfaW\x80cf\xd9\xa9\xa0\x14a\x01\x02W\x80c\x85\"l\x81\x14a\x01\x17W\x80c\x91j\x17\xc6\x14a\x01,W[`\x00\x80\xfd[a\x00\xdca\x01{V[`@Qa\x00\xe9\x91\x90a\x07\xc6V[`@Q\x80\x91\x03\x90\xf3[a\x00\xdca\x01\xddV[a\x00\xdca\x02=V[a\x01\na\x02\x9dV[`@Qa\x00\xe9\x91\x90a\x08\x13V[a\x01\x1fa\x03\x8cV[`@Qa\x00\xe9\x91\x90a\x08\xf6V[a\x01\na\x04\\V[a\x01a\x073V[``\x91P[P\x91PP\x80\x80` \x01\x90Q\x81\x01\x90a\x07K\x91\x90a\n\rV[\x91PP[\x91\x90PV[`\x1bT`\xff\x16a\x05UWa\x05Ua\t\xaaV[```\x13\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x01\xd3W` \x02\x82\x01\x91\x90`\x00R` `\x00 \x90\x81T`\x01`\x01`\xa0\x1b\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x01\xb5WPPPPP\x90P\x90V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\x00\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x08\x07W\x83Q`\x01`\x01`\xa0\x1b\x03\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x07\xe2V[P\x90\x96\x95PPPPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1b\x87\x01\x01\x84\x88\x01`\x00\x80[\x84\x81\x10\x15a\x08\xb7W\x89\x84\x03`?\x19\x01\x86R\x82Q\x80Q`\x01`\x01`\xa0\x1b\x03\x16\x85R\x88\x01Q\x88\x85\x01\x88\x90R\x80Q\x88\x86\x01\x81\x90R\x90\x89\x01\x90\x83\x90``\x87\x01\x90[\x80\x83\x10\x15a\x08\xa2W\x83Q`\x01`\x01`\xe0\x1b\x03\x19\x16\x82R\x92\x8b\x01\x92`\x01\x92\x90\x92\x01\x91\x90\x8b\x01\x90a\x08xV[P\x97\x8a\x01\x97\x95PPP\x91\x87\x01\x91`\x01\x01a\x08;V[P\x91\x99\x98PPPPPPPPPV[`\x00[\x83\x81\x10\x15a\x08\xe1W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xc9V[\x83\x81\x11\x15a\x08\xf0W`\x00\x84\x84\x01R[PPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1b\x87\x01\x01\x92P\x83\x87\x01`\x00[\x82\x81\x10\x15a\tcW\x87\x85\x03`?\x19\x01\x84R\x81Q\x80Q\x80\x87Ra\tD\x81\x89\x89\x01\x8a\x85\x01a\x08\xc6V[`\x1f\x01`\x1f\x19\x16\x95\x90\x95\x01\x86\x01\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a\t\x1dV[P\x92\x97\x96PPPPPPPV[`\x01\x81\x81\x1c\x90\x82\x16\x80a\t\x84W`\x7f\x82\x16\x91P[` \x82\x10\x81\x03a\t\xa4WcNH{q`\xe0\x1b`\x00R`\"`\x04R`$`\x00\xfd[P\x91\x90PV[cNH{q`\xe0\x1b`\x00R`\x01`\x04R`$`\x00\xfd[`\x01`\x01`\xe0\x1b\x03\x19\x83\x16\x81R\x81Q`\x00\x90a\t\xe3\x81`\x04\x85\x01` \x87\x01a\x08\xc6V[\x91\x90\x91\x01`\x04\x01\x93\x92PPPV[`\x00\x82Qa\n\x03\x81\x84` \x87\x01a\x08\xc6V[\x91\x90\x91\x01\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a\n\x1fW`\x00\x80\xfd[\x81Q\x80\x15\x15\x81\x14a\n/W`\x00\x80\xfd[\x93\x92PPPV\xfe\xa2dipfsX\"\x12 \xe3\x9c:|\xfdqcd\xee\xdb\x86\xce\xf3*\x08\x90\x94]l\xec\n\xcb$\xb0\xfc\x90U\x17M\xa9\x8eldsolcC\x00\x08\r\x003" - - - 0 - - - 0 - - - false - - - 0 - - ... - - - - .List - - - 0 - - - .Set - - - .Map - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CALLVALUE_CELL ==K 0 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( _CONTRACT_ID =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - #halt - ~> ( #pc [ REVERT ] - ~> #execute => .K ) - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"" - - - EVMC_REVERT - - - .List - - - .List - - - .Set - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - CALLDATA_CELL:Bytes - - - CALLVALUE_CELL:Int - - - ( CALLVALUE_CELL:Int : .WordStack ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - - false - - - 0 - - ... - - - - .List - - - 0 - - - .Set - - - .Map - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( CALLVALUE_CELL:Int =/=K 0 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CALLVALUE_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( _CONTRACT_ID =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - ( #halt => #execute ) - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - ( b"`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00\xcfW`\x005`\xe0\x1c\x80c\x92\xdfO\xbd\x11a\x00\x8cW\x80c\xe0\x18\x0b\x0b\x11a\x00fW\x80c\xe0\x18\x0b\x0b\x14a\x01^W\x80c\xe2\f\x9fq\x14a\x01fW\x80c\xe9\x9bk1\x14a\x01^W\x80c\xfav&\xd4\x14a\x01nW`\x00\x80\xfd[\x80c\x92\xdfO\xbd\x14a\x014W\x80c\xb5P\x8a\xa9\x14a\x01>W\x80c\xbaAO\xa6\x14a\x01FW`\x00\x80\xfd[\x80c\x1e\xd7\x83\x1c\x14a\x00\xd4W\x80c>^<#\x14a\x00\xf2W\x80c?r\x86\xf4\x14a\x00\xfaW\x80cf\xd9\xa9\xa0\x14a\x01\x02W\x80c\x85\"l\x81\x14a\x01\x17W\x80c\x91j\x17\xc6\x14a\x01,W[`\x00\x80\xfd[a\x00\xdca\x01{V[`@Qa\x00\xe9\x91\x90a\x07\xc6V[`@Q\x80\x91\x03\x90\xf3[a\x00\xdca\x01\xddV[a\x00\xdca\x02=V[a\x01\na\x02\x9dV[`@Qa\x00\xe9\x91\x90a\x08\x13V[a\x01\x1fa\x03\x8cV[`@Qa\x00\xe9\x91\x90a\x08\xf6V[a\x01\na\x04\\V[a\x01a\x073V[``\x91P[P\x91PP\x80\x80` \x01\x90Q\x81\x01\x90a\x07K\x91\x90a\n\rV[\x91PP[\x91\x90PV[`\x1bT`\xff\x16a\x05UWa\x05Ua\t\xaaV[```\x13\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x01\xd3W` \x02\x82\x01\x91\x90`\x00R` `\x00 \x90\x81T`\x01`\x01`\xa0\x1b\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x01\xb5WPPPPP\x90P\x90V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\x00\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x08\x07W\x83Q`\x01`\x01`\xa0\x1b\x03\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x07\xe2V[P\x90\x96\x95PPPPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1b\x87\x01\x01\x84\x88\x01`\x00\x80[\x84\x81\x10\x15a\x08\xb7W\x89\x84\x03`?\x19\x01\x86R\x82Q\x80Q`\x01`\x01`\xa0\x1b\x03\x16\x85R\x88\x01Q\x88\x85\x01\x88\x90R\x80Q\x88\x86\x01\x81\x90R\x90\x89\x01\x90\x83\x90``\x87\x01\x90[\x80\x83\x10\x15a\x08\xa2W\x83Q`\x01`\x01`\xe0\x1b\x03\x19\x16\x82R\x92\x8b\x01\x92`\x01\x92\x90\x92\x01\x91\x90\x8b\x01\x90a\x08xV[P\x97\x8a\x01\x97\x95PPP\x91\x87\x01\x91`\x01\x01a\x08;V[P\x91\x99\x98PPPPPPPPPV[`\x00[\x83\x81\x10\x15a\x08\xe1W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xc9V[\x83\x81\x11\x15a\x08\xf0W`\x00\x84\x84\x01R[PPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1b\x87\x01\x01\x92P\x83\x87\x01`\x00[\x82\x81\x10\x15a\tcW\x87\x85\x03`?\x19\x01\x84R\x81Q\x80Q\x80\x87Ra\tD\x81\x89\x89\x01\x8a\x85\x01a\x08\xc6V[`\x1f\x01`\x1f\x19\x16\x95\x90\x95\x01\x86\x01\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a\t\x1dV[P\x92\x97\x96PPPPPPPV[`\x01\x81\x81\x1c\x90\x82\x16\x80a\t\x84W`\x7f\x82\x16\x91P[` \x82\x10\x81\x03a\t\xa4WcNH{q`\xe0\x1b`\x00R`\"`\x04R`$`\x00\xfd[P\x91\x90PV[cNH{q`\xe0\x1b`\x00R`\x01`\x04R`$`\x00\xfd[`\x01`\x01`\xe0\x1b\x03\x19\x83\x16\x81R\x81Q`\x00\x90a\t\xe3\x81`\x04\x85\x01` \x87\x01a\x08\xc6V[\x91\x90\x91\x01`\x04\x01\x93\x92PPPV[`\x00\x82Qa\n\x03\x81\x84` \x87\x01a\x08\xc6V[\x91\x90\x91\x01\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a\n\x1fW`\x00\x80\xfd[\x81Q\x80\x15\x15\x81\x14a\n/W`\x00\x80\xfd[\x93\x92PPPV\xfe\xa2dipfsX\"\x12 \xe3\x9c:|\xfdqcd\xee\xdb\x86\xce\xf3*\x08\x90\x94]l\xec\n\xcb$\xb0\xfc\x90U\x17M\xa9\x8eldsolcC\x00\x08\r\x003" => ?_OUTPUT_CELL ) - - - ( EVMC_SUCCESS => ?_STATUSCODE ) - - - ( .List => ?_CALLSTACK_CELL ) - - - ( .List => ?_INTERIMSTATES_CELL ) - - - ( .Set => ?_TOUCHEDACCOUNTS_CELL ) - - - - ( 728815563385977040452943777879061427756277306518 => CONTRACT_ID:Int ) - - - CALLER_ID:Int - - - ( CALLDATA_CELL:Bytes => b"\xe0\x18\x0b\x0b" ) - - - 0 - - - .WordStack - - - ( b"`\x80`@R4\x80\x15a\x00\x10W`\x00\x80\xfd[P`\x046\x10a\x00\xcfW`\x005`\xe0\x1c\x80c\x92\xdfO\xbd\x11a\x00\x8cW\x80c\xe0\x18\x0b\x0b\x11a\x00fW\x80c\xe0\x18\x0b\x0b\x14a\x01^W\x80c\xe2\f\x9fq\x14a\x01fW\x80c\xe9\x9bk1\x14a\x01^W\x80c\xfav&\xd4\x14a\x01nW`\x00\x80\xfd[\x80c\x92\xdfO\xbd\x14a\x014W\x80c\xb5P\x8a\xa9\x14a\x01>W\x80c\xbaAO\xa6\x14a\x01FW`\x00\x80\xfd[\x80c\x1e\xd7\x83\x1c\x14a\x00\xd4W\x80c>^<#\x14a\x00\xf2W\x80c?r\x86\xf4\x14a\x00\xfaW\x80cf\xd9\xa9\xa0\x14a\x01\x02W\x80c\x85\"l\x81\x14a\x01\x17W\x80c\x91j\x17\xc6\x14a\x01,W[`\x00\x80\xfd[a\x00\xdca\x01{V[`@Qa\x00\xe9\x91\x90a\x07\xc6V[`@Q\x80\x91\x03\x90\xf3[a\x00\xdca\x01\xddV[a\x00\xdca\x02=V[a\x01\na\x02\x9dV[`@Qa\x00\xe9\x91\x90a\x08\x13V[a\x01\x1fa\x03\x8cV[`@Qa\x00\xe9\x91\x90a\x08\xf6V[a\x01\na\x04\\V[a\x01a\x073V[``\x91P[P\x91PP\x80\x80` \x01\x90Q\x81\x01\x90a\x07K\x91\x90a\n\rV[\x91PP[\x91\x90PV[`\x1bT`\xff\x16a\x05UWa\x05Ua\t\xaaV[```\x13\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x01\xd3W` \x02\x82\x01\x91\x90`\x00R` `\x00 \x90\x81T`\x01`\x01`\xa0\x1b\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x01\xb5WPPPPP\x90P\x90V[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\x00\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a\x08\x07W\x83Q`\x01`\x01`\xa0\x1b\x03\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a\x07\xe2V[P\x90\x96\x95PPPPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x92P\x82\x86\x01\x91P\x82\x81`\x05\x1b\x87\x01\x01\x84\x88\x01`\x00\x80[\x84\x81\x10\x15a\x08\xb7W\x89\x84\x03`?\x19\x01\x86R\x82Q\x80Q`\x01`\x01`\xa0\x1b\x03\x16\x85R\x88\x01Q\x88\x85\x01\x88\x90R\x80Q\x88\x86\x01\x81\x90R\x90\x89\x01\x90\x83\x90``\x87\x01\x90[\x80\x83\x10\x15a\x08\xa2W\x83Q`\x01`\x01`\xe0\x1b\x03\x19\x16\x82R\x92\x8b\x01\x92`\x01\x92\x90\x92\x01\x91\x90\x8b\x01\x90a\x08xV[P\x97\x8a\x01\x97\x95PPP\x91\x87\x01\x91`\x01\x01a\x08;V[P\x91\x99\x98PPPPPPPPPV[`\x00[\x83\x81\x10\x15a\x08\xe1W\x81\x81\x01Q\x83\x82\x01R` \x01a\x08\xc9V[\x83\x81\x11\x15a\x08\xf0W`\x00\x84\x84\x01R[PPPPV[`\x00` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1b\x87\x01\x01\x92P\x83\x87\x01`\x00[\x82\x81\x10\x15a\tcW\x87\x85\x03`?\x19\x01\x84R\x81Q\x80Q\x80\x87Ra\tD\x81\x89\x89\x01\x8a\x85\x01a\x08\xc6V[`\x1f\x01`\x1f\x19\x16\x95\x90\x95\x01\x86\x01\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a\t\x1dV[P\x92\x97\x96PPPPPPPV[`\x01\x81\x81\x1c\x90\x82\x16\x80a\t\x84W`\x7f\x82\x16\x91P[` \x82\x10\x81\x03a\t\xa4WcNH{q`\xe0\x1b`\x00R`\"`\x04R`$`\x00\xfd[P\x91\x90PV[cNH{q`\xe0\x1b`\x00R`\x01`\x04R`$`\x00\xfd[`\x01`\x01`\xe0\x1b\x03\x19\x83\x16\x81R\x81Q`\x00\x90a\t\xe3\x81`\x04\x85\x01` \x87\x01a\x08\xc6V[\x91\x90\x91\x01`\x04\x01\x93\x92PPPV[`\x00\x82Qa\n\x03\x81\x84` \x87\x01a\x08\xc6V[\x91\x90\x91\x01\x92\x91PPV[`\x00` \x82\x84\x03\x12\x15a\n\x1fW`\x00\x80\xfd[\x81Q\x80\x15\x15\x81\x14a\n/W`\x00\x80\xfd[\x93\x92PPPV\xfe\xa2dipfsX\"\x12 \xe3\x9c:|\xfdqcd\xee\xdb\x86\xce\xf3*\x08\x90\x94]l\xec\n\xcb$\xb0\xfc\x90U\x17M\xa9\x8eldsolcC\x00\x08\r\x003" => b"" ) - - - 0 - - - 0 - - - ( false => ?_STATIC_CELL ) - - - ( 0 => ?_CALLDEPTH_CELL ) - - ... - - - - ( .List => ?_LOG_CELL ) - - - 0 - - - ( .Set => ?_ACCESSEDACCOUNTS_CELL ) - - - ( .Map => ?_ACCESSEDSTORAGE_CELL ) - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CALLVALUE_CELL ==K 0 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( CONTRACT_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - ( #halt => #execute ) - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - ( b"" => ?_OUTPUT_CELL ) - - - ( EVMC_REVERT => ?_STATUSCODE ) - - - ( .List => ?_CALLSTACK_CELL ) - - - ( .List => ?_INTERIMSTATES_CELL ) - - - ( .Set => ?_TOUCHEDACCOUNTS_CELL ) - - - - ( 728815563385977040452943777879061427756277306518 => CONTRACT_ID:Int ) - - - CALLER_ID:Int - - - ( CALLDATA_CELL:Bytes => b"\xe0\x18\x0b\x0b" ) - - - ( CALLVALUE_CELL:Int => 0 ) - - - ( ( CALLVALUE_CELL:Int : .WordStack ) => .WordStack ) - - - ( b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" => b"" ) - - - 0 - - - 0 - - - ( false => ?_STATIC_CELL ) - - - ( 0 => ?_CALLDEPTH_CELL ) - - ... - - - - ( .List => ?_LOG_CELL ) - - - 0 - - - ( .Set => ?_ACCESSEDACCOUNTS_CELL ) - - - ( .Map => ?_ACCESSEDSTORAGE_CELL ) - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( CALLVALUE_CELL:Int =/=K 0 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CALLVALUE_CELL:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CALLER_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( ORIGIN_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( CONTRACT_ID:Int =/=K 645326474426547203313410069153905908525362434349 - andBool ( CALLER_ID:Int - - - ( .K => SLOAD 27 - ~> #pc [ SLOAD ] ) - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - - CONTRACT_ID:Int - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( .WordStack => ( 316 : ( selector ( "run_constructor()" ) : .WordStack ) ) ) - - - ( b"" => b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" ) - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int CONTRACT_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CONTRACT_BAL:Int - andBool ( 0 <=Int CONTRACT_NONCE:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CONTRACT_NONCE:Int - - - ( .K => SLOAD 27 - ~> #pc [ SLOAD ] ) - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - - CONTRACT_ID:Int - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( .WordStack => ( 316 : ( selector ( "run_constructor()" ) : .WordStack ) ) ) - - - ( b"" => b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" ) - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int CONTRACT_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CONTRACT_BAL:Int - andBool ( 0 <=Int CONTRACT_NONCE:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CONTRACT_NONCE:Int - - - ( 1 - ~> #push - ~> #pc [ SLOAD ] => #end EVMC_SUCCESS - ~> #pc [ STOP ] ) - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - ( _OUTPUT_CELL => b"" ) - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( ( 316 => selector ( "run_constructor()" ) ) : ( ( selector ( "run_constructor()" ) : .WordStack ) => .WordStack ) ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CONTRACT_ID ==K 728815563385977040452943777879061427756277306518 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CONTRACT_BAL:Int - andBool ( 0 <=Int CONTRACT_NONCE:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CONTRACT_NONCE:Int - - - ( 1 - ~> #push - ~> #pc [ SLOAD ] => #end EVMC_SUCCESS - ~> #pc [ STOP ] ) - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - ( _OUTPUT_CELL => b"" ) - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( ( 316 => selector ( "run_constructor()" ) ) : ( ( selector ( "run_constructor()" ) : .WordStack ) => .WordStack ) ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CONTRACT_ID ==K 728815563385977040452943777879061427756277306518 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CONTRACT_BAL:Int - andBool ( 0 <=Int CONTRACT_NONCE:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CONTRACT_NONCE:Int - - - ( #end EVMC_SUCCESS => #halt ) - ~> #pc [ STOP ] - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"" - - - ( _STATUSCODE => EVMC_SUCCESS ) - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( selector ( "run_constructor()" ) : .WordStack ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CONTRACT_ID ==K 728815563385977040452943777879061427756277306518 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CONTRACT_BAL:Int - andBool ( 0 <=Int CONTRACT_NONCE:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CONTRACT_NONCE:Int - - - ( #end EVMC_SUCCESS => #halt ) - ~> #pc [ STOP ] - ~> #execute - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"" - - - ( _STATUSCODE => EVMC_SUCCESS ) - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( selector ( "run_constructor()" ) : .WordStack ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CONTRACT_ID ==K 728815563385977040452943777879061427756277306518 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CONTRACT_BAL:Int - andBool ( 0 <=Int CONTRACT_NONCE:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CONTRACT_NONCE:Int - - - #halt - ~> ( #pc [ STOP ] - ~> #execute => .K ) - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"" - - - EVMC_SUCCESS - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( selector ( "run_constructor()" ) : .WordStack ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CONTRACT_ID ==K 728815563385977040452943777879061427756277306518 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CONTRACT_BAL:Int - andBool ( 0 <=Int CONTRACT_NONCE:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CONTRACT_NONCE:Int - - - #halt - ~> ( #pc [ STOP ] - ~> #execute => .K ) - ~> _CONTINUATION - - - NORMAL - - - SHANGHAI - - - false - - - - - b"" - - - EVMC_SUCCESS - - - - 728815563385977040452943777879061427756277306518 - - - CALLER_ID:Int - - - b"\xe0\x18\x0b\x0b" - - - 0 - - - ( selector ( "run_constructor()" ) : .WordStack ) - - - b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" - - - 0 - - - 0 - - ... - - - - 0 - - ... - - - ORIGIN_ID:Int - - - - NUMBER_CELL:Int - - - TIMESTAMP_CELL:Int - - ... - - ... - - - - ( - - 645326474426547203313410069153905908525362434349 - - - 0 - - - .Map - - - .Map - - - 0 - - ... - - - - 728815563385977040452943777879061427756277306518 - - - 0 - - - ( ( 11 |-> 1 ) - ( ( 27 |-> 1 ) - ( 7 |-> 1 ) ) ) - - - .Map - - - 1 - - ... - ) - - ... - - - ... - - - - - false - - - false - - ... - - - - false - - ... - - - - false - - ... - - - - false - - - false - - ... - - - - false - - - false - - - .Set - - - .Set - - - - .MockCallCellMap - - - - requires ( _CONTRACT_ID ==K 728815563385977040452943777879061427756277306518 - andBool ( 0 <=Int CALLER_ID:Int - andBool ( 0 <=Int ORIGIN_ID:Int - andBool ( 0 <=Int NUMBER_CELL:Int - andBool ( 0 <=Int CONTRACT_BAL:Int - andBool ( 0 <=Int CONTRACT_NONCE:Int - andBool ( 0 <=Int TIMESTAMP_CELL:Int - andBool ( CONTRACT_NONCE:Int #pc [ SLOAD ] - ~> #execute #Implies #halt - ~> CONTINUATION:K - Path condition: - { true #Equals CALLVALUE_CELL:Int ==Int 0 } - Model: - CALLER_ID = 10 - CONTRACT_BAL = 0 - CONTRACT_ID = 10 - CONTRACT_NONCE = 0 - NUMBER_CELL = 0 - ORIGIN_ID = 10 - TIMESTAMP_CELL = 0 - - Node id: 20 - Failure reason: - Matching failed. - The following cells failed matching individually (antecedent #Implies consequent): - K_CELL: SLOAD 27 - ~> #pc [ SLOAD ] - ~> #execute #Implies #halt - ~> CONTINUATION:K - Path condition: - { true #Equals notBool CALLVALUE_CELL:Int ==Int 0 } - Model: - CALLER_ID = 10 - CONTRACT_BAL = 0 - CONTRACT_ID = 10 - CONTRACT_NONCE = 0 - NUMBER_CELL = 0 - ORIGIN_ID = 10 - TIMESTAMP_CELL = 0 - -Join the Runtime Verification Discord server for support: https://discord.com/invite/CurfmXNtbN - -See `foundry_success` predicate for more information: -https://github.com/runtimeverification/kontrol/blob/master/src/kontrol/kdist/foundry.md#foundry-success-predicate - -Access documentation for KEVM foundry integration at https://docs.runtimeverification.com/kontrol \ No newline at end of file diff --git a/src/tests/integration/test_foundry_prove.py b/src/tests/integration/test_foundry_prove.py index c06aa978f..9e2ad83b4 100644 --- a/src/tests/integration/test_foundry_prove.py +++ b/src/tests/integration/test_foundry_prove.py @@ -563,6 +563,7 @@ def test_foundry_resume_proof( ALL_INIT_CODE_TESTS: Final = tuple((TEST_DATA_DIR / 'foundry-init-code').read_text().splitlines()) +SKIPPED_INIT_CODE_TESTS: Final = tuple((TEST_DATA_DIR / 'foundry-init-code-skip').read_text().splitlines()) @pytest.mark.parametrize('test_id', ALL_INIT_CODE_TESTS) @@ -574,11 +575,9 @@ def test_foundry_init_code( no_use_booster: bool, server: KoreServer, ) -> None: - if no_use_booster: + if no_use_booster or test_id in SKIPPED_INIT_CODE_TESTS: pytest.skip() - test = 'ConstructorTest.run_constructor()' - prove_res = foundry_prove( foundry, tests=[(test_id, None)], @@ -594,29 +593,7 @@ def test_foundry_init_code( ), ) - # Then - if test_id != test: - assert_pass(test_id, single(prove_res)) - return - else: - assert_fail(test, single(prove_res)) - - # And when - show_res = foundry_show( - foundry, - test=test, - to_module=True, - sort_collections=True, - omit_unstable_output=True, - pending=True, - failing=True, - failure_info=True, - counterexample_info=True, - port=server.port, - ) - - # Then - assert_or_update_show_output(show_res, TEST_DATA_DIR / f'show/{test}.expected', update=update_expected_output) + assert_pass(test_id, single(prove_res)) def test_foundry_duplicate_contract_names(foundry: Foundry) -> None: