From 7276704734c05abbe7017bf25082e06e7eea30b4 Mon Sep 17 00:00:00 2001 From: Noah Watson <107630091+nwatson22@users.noreply.github.com> Date: Tue, 18 Jul 2023 23:09:43 -0500 Subject: [PATCH] Fix automatic gas abstraction re-applying (#1923) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix automatic gas abstraction applying to nodes that were already abstracted * Fix automatic gas abstraction applying to nodes that were already abstracted * Set Version: 1.0.218 * Set Version: 1.0.219 * Add golden file test for automatic infinite gas abstraction option * Formatting * Set Version: 1.0.220 * Update kevm-pyk/src/kevm_pyk/kevm.py Co-authored-by: Everett Hildenbrandt * Update kevm-pyk/src/tests/integration/test_foundry_prove.py Co-authored-by: Everett Hildenbrandt * Fix formatting * Set Version: 1.0.221 * Update kevm-pyk/src/kevm_pyk/kevm.py Co-authored-by: Everett Hildenbrandt * Set Version: 1.0.221 * Update expected file * Set Version: 1.0.223 * Set Version: 1.0.224 * Set Version: 1.0.225 * Set Version: 1.0.226 * Update expected output * Set Version: 1.0.228 * Set Version: 1.0.229 * Set Version: 1.0.230 * Set Version: 1.0.231 * Change k version * Set Version: 1.0.232 * Revert k release update * Set Version: 1.0.235 * Update expected output --------- Co-authored-by: devops Co-authored-by: Everett Hildenbrandt Co-authored-by: rv-jenkins Co-authored-by: Andrei Văcaru <16517508+anvacaru@users.noreply.github.com> --- kevm-pyk/pyproject.toml | 2 +- kevm-pyk/src/kevm_pyk/kevm.py | 11 +- .../test-data/gas-abstraction.expected | 1471 +++++++++++++++++ .../tests/integration/test_foundry_prove.py | 22 + package/debian/changelog | 2 +- package/version | 2 +- 6 files changed, 1504 insertions(+), 6 deletions(-) create mode 100644 kevm-pyk/src/tests/integration/test-data/gas-abstraction.expected diff --git a/kevm-pyk/pyproject.toml b/kevm-pyk/pyproject.toml index b5150cbfab..c0658a22f0 100644 --- a/kevm-pyk/pyproject.toml +++ b/kevm-pyk/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "kevm-pyk" -version = "1.0.234" +version = "1.0.235" description = "" authors = [ "Runtime Verification, Inc. ", diff --git a/kevm-pyk/src/kevm_pyk/kevm.py b/kevm-pyk/src/kevm_pyk/kevm.py index 43c07e6038..6d1a0a2162 100644 --- a/kevm-pyk/src/kevm_pyk/kevm.py +++ b/kevm-pyk/src/kevm_pyk/kevm.py @@ -380,11 +380,16 @@ def _replace(term: KInner) -> KInner: if type(term) is KApply and term.label.name == '': gas_term = term.args[0] if type(gas_term) is KApply and gas_term.label.name == 'infGas': - result = KApply('', KApply('infGas', abstract_term_safely(term))) - return result + if type(gas_term.args[0]) is KVariable: + return term + return KApply( + '', KApply('infGas', abstract_term_safely(term, base_name='VGAS', sort=KSort('Int'))) + ) return term elif type(term) is KApply and term.label.name == '': - return KApply('', KVariable('ABSTRACTED_REFUND', KSort('Int'))) + if type(term.args[0]) is KVariable: + return term + return KApply('', abstract_term_safely(term, base_name='VREFUND', sort=KSort('Int'))) else: return term diff --git a/kevm-pyk/src/tests/integration/test-data/gas-abstraction.expected b/kevm-pyk/src/tests/integration/test-data/gas-abstraction.expected new file mode 100644 index 0000000000..5dd0b8c114 --- /dev/null +++ b/kevm-pyk/src/tests/integration/test-data/gas-abstraction.expected @@ -0,0 +1,1471 @@ + +┌─ 1 (root, init) +│ k: #execute ~> CONTINUATION:K +│ pc: 0 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (511 steps) +├─ 3 +│ k: CALL 9223372036854772946 645326474426547203313410069153905908525362434349 0 128 ... +│ pc: 361 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 4 +│ k: #checkCall 728815563385977040452943777879061427756277306518 0 ~> #call 728815563 ... +│ pc: 361 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (445 steps) +├─ 5 +│ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +│ pc: 808 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +┊ constraint: true +┊ subst: { + CONTINUATION <- CONTINUATION:K + EXITCODE_CELL <- EXITCODE_CELL:Int + STATUSCODE <- STATUSCODE:StatusCode + TOUCHEDACCOUNTS_CELL <- TOUCHEDACCOUNTS_CELL:Set + CALLER_ID <- CALLER_ID:Int + ?_VGAS <- ?_VGAS:Int + ?_VCALLGAS <- ?_VCALLGAS:Int + VGAS_1675167e <- ( ( ?_VGAS:Int +Int ?_VCALLGAS:Int ) +Int -202 ) + SELFDESTRUCT_CELL <- SELFDESTRUCT_CELL:Set + REFUND_CELL <- REFUND_CELL:Int + GASPRICE_CELL <- GASPRICE_CELL:Int + ORIGIN_ID <- ORIGIN_ID:Int + BLOCKHASHES_CELL <- BLOCKHASHES_CELL:List + PREVIOUSHASH_CELL <- PREVIOUSHASH_CELL:Int + OMMERSHASH_CELL <- OMMERSHASH_CELL:Int + COINBASE_CELL <- COINBASE_CELL:Int + STATEROOT_CELL <- STATEROOT_CELL:Int + TRANSACTIONSROOT_CELL <- TRANSACTIONSROOT_CELL:Int + RECEIPTSROOT_CELL <- RECEIPTSROOT_CELL:Int + LOGSBLOOM_CELL <- LOGSBLOOM_CELL:Bytes + DIFFICULTY_CELL <- DIFFICULTY_CELL:Int + NUMBER_CELL <- NUMBER_CELL:Int + GASLIMIT_CELL <- GASLIMIT_CELL:Int + GASUSED_CELL <- GASUSED_CELL:Gas + TIMESTAMP_CELL <- TIMESTAMP_CELL:Int + EXTRADATA_CELL <- EXTRADATA_CELL:Bytes + MIXHASH_CELL <- MIXHASH_CELL:Int + BLOCKNONCE_CELL <- BLOCKNONCE_CELL:Int + BASEFEE_CELL <- BASEFEE_CELL:Int + OMMERBLOCKHEADERS_CELL <- OMMERBLOCKHEADERS_CELL:JSON + CHAINID_CELL <- CHAINID_CELL:Int + TXORDER_CELL <- TXORDER_CELL:List + TXPENDING_CELL <- TXPENDING_CELL:List + MESSAGES_CELL <- MESSAGES_CELL:MessageCellMap + DEPTH_CELL <- DEPTH_CELL:Int + EXPECTEDREASON_CELL <- EXPECTEDREASON_CELL:Bytes + EXPECTEDDEPTH_CELL <- EXPECTEDDEPTH_CELL:Int + CHECKEDTOPICS_CELL <- CHECKEDTOPICS_CELL:List + CHECKEDDATA_CELL <- CHECKEDDATA_CELL:Bool + EXPECTEDEVENTADDRESS_CELL <- EXPECTEDEVENTADDRESS_CELL:Account + GENERATEDCOUNTER_CELL <- GENERATEDCOUNTER_CELL:Int +} +├─ 6 +│ k: #end EVMC_REVERT ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +│ pc: 808 +│ callDepth: 0 +│ statusCode: STATUSCODE:StatusCode +│ +│ (1 step) +├─ 7 +│ k: #halt ~> #pc [ REVERT ] ~> #execute ~> CONTINUATION:K +│ pc: 808 +│ callDepth: 0 +│ statusCode: EVMC_REVERT +│ +│ (2 steps) +└─ 8 (leaf, terminal) + k: #halt ~> CONTINUATION:K + pc: 808 + callDepth: 0 + statusCode: EVMC_REVERT + + +┌─ 2 (root, leaf, target) +│ k: #halt ~> CONTINUATION:K +│ pc: PC_CELL_5d410f2a:Int +│ callDepth: CALLDEPTH_CELL_5d410f2a:Int +│ statusCode: STATUSCODE_FINAL:StatusCode + + +Node 8: + +( + + + + #halt + ~> CONTINUATION:K + + + EXITCODE_CELL:Int + + + NORMAL + + + LONDON + + + + + b"NH{q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" + + + EVMC_REVERT + + + .List + + + .List + + + TOUCHEDACCOUNTS_CELL:Set + + + ... + ... + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b"c\xfe\xc36" + + + 0 + + + ( 428 : ( ( ( ?_VGAS:Int +Int ?_VCALLGAS:Int ) +Int -127 ) : ( 583 : ( 928 : ( 345 : ( ( ( ?_VGAS:Int +Int ?_VCALLGAS:Int ) +Int -36 ) : ( 167 : ( selector ( "testInfiniteGas()" ) : .WordStack ) ) ) ) ) ) ) ) + + + b"NH{q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x9fsS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + + ... + ... + + 5 + + + #gas ( ?_VCALLGAS:Int ) + + + false + + + 0 + + + + + SELFDESTRUCT_CELL:Set + + + .List + + + REFUND_CELL:Int + + + SetItem ( 645326474426547203313410069153905908525362434349 ) + + + .Map + + + + GASPRICE_CELL:Int + + + ORIGIN_ID:Int + + + BLOCKHASHES_CELL:List + + + + PREVIOUSHASH_CELL:Int + + + OMMERSHASH_CELL:Int + + + COINBASE_CELL:Int + + + STATEROOT_CELL:Int + + + TRANSACTIONSROOT_CELL:Int + + + RECEIPTSROOT_CELL:Int + + + LOGSBLOOM_CELL:Bytes + + + DIFFICULTY_CELL:Int + + + NUMBER_CELL:Int + + + GASLIMIT_CELL:Int + + + GASUSED_CELL:Gas + + + TIMESTAMP_CELL:Int + + + EXTRADATA_CELL:Bytes + + + MIXHASH_CELL:Int + + + BLOCKNONCE_CELL:Int + + + BASEFEE_CELL:Int + + + OMMERBLOCKHEADERS_CELL:JSON + + + + + + CHAINID_CELL:Int + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + ... + + .Map + + + .Map + + + 0 + + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + ... + + .Map + + + .Map + + + 1 + + ) + + + TXORDER_CELL:List + + + TXPENDING_CELL:List + + + MESSAGES_CELL:MessageCellMap + + + + + + + + .Account + + + .Account + + + .Account + + + .Account + + + false + + + DEPTH_CELL:Int + + + false + + + + + false + + + EXPECTEDREASON_CELL:Bytes + + + EXPECTEDDEPTH_CELL:Int + + + + + false + + + .Account + + + 0 + + + b"" + + + .OpcodeType + + + + + false + + + false + + + CHECKEDTOPICS_CELL:List + + + CHECKEDDATA_CELL:Bool + + + EXPECTEDEVENTADDRESS_CELL:Account + + + + + false + + + false + + + .Set + + + .Set + + + + + + GENERATEDCOUNTER_CELL:Int + + +#And ( { true #Equals 0 <=Int CALLER_ID:Int } +#And ( { true #Equals 0 <=Int ORIGIN_ID:Int } +#And ( { true #Equals 0 <=Int NUMBER_CELL:Int } +#And ( { true #Equals CALLER_ID:Int + + + ( .K => CALL 9223372036854772946 645326474426547203313410069153905908525362434349 0 128 4 128 0 + ~> #pc [ CALL ] ) + ~> #execute + ~> _CONTINUATION + + + NORMAL + + + LONDON + + + + + .List + + + .List + + + ... + ... + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b"c\xfe\xc36" + + + 0 + + + ( .WordStack => ( 132 : ( selector ( "infiniteGas()" ) : ( 645326474426547203313410069153905908525362434349 : ( 167 : ( selector ( "testInfiniteGas()" ) : .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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x9fsS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) + + ... + ... + + ( 0 => 5 ) + + + ( _CALLGAS_CELL => 9079256848778917021 ) + + + false + + + 0 + + + + + .List + + + ( .Set => SetItem ( 645326474426547203313410069153905908525362434349 ) ) + + + .Map + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + ... + + .Map + + + .Map + + + 0 + + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + ... + + .Map + + + .Map + + + 1 + + ) + + ... + + + ... + + + + + .Account + + + .Account + + + .Account + + + .Account + + + false + + + false + + ... + + + + false + + ... + + + + false + + + .Account + + + 0 + + + b"" + + + .OpcodeType + + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( CALLER_ID:Int + + + ( CALL 9223372036854772946 645326474426547203313410069153905908525362434349 0 128 4 128 0 => #checkCall 728815563385977040452943777879061427756277306518 0 + ~> #call 728815563385977040452943777879061427756277306518 645326474426547203313410069153905908525362434349 645326474426547203313410069153905908525362434349 0 0 b"\xed\x9fsS" false + ~> #return 128 0 ) + ~> #pc [ CALL ] + ~> #execute + ~> _CONTINUATION + + + NORMAL + + + LONDON + + + + + .List + + + .List + + + ... + ... + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b"c\xfe\xc36" + + + 0 + + + ( 132 : ( selector ( "infiniteGas()" ) : ( 645326474426547203313410069153905908525362434349 : ( 167 : ( selector ( "testInfiniteGas()" ) : .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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x9fsS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + + ... + ... + + 5 + + + 9079256848778917021 + + + false + + + 0 + + + + + .List + + + SetItem ( 645326474426547203313410069153905908525362434349 ) + + + .Map + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + ... + + .Map + + + .Map + + + 0 + + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + ... + + .Map + + + .Map + + + 1 + + ) + + ... + + + ... + + + + + .Account + + + .Account + + + .Account + + + .Account + + + false + + + false + + ... + + + + false + + ... + + + + false + + + .Account + + + 0 + + + b"" + + + .OpcodeType + + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( CALLER_ID:Int + + + ( #checkCall 728815563385977040452943777879061427756277306518 0 + ~> #call 728815563385977040452943777879061427756277306518 645326474426547203313410069153905908525362434349 645326474426547203313410069153905908525362434349 0 0 b"\xed\x9fsS" false + ~> #return 128 0 + ~> #pc [ CALL ] => #end EVMC_REVERT + ~> #pc [ REVERT ] ) + ~> #execute + ~> _CONTINUATION + + + NORMAL + + + LONDON + + + + + ( _OUTPUT_CELL => b"NH{q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" ) + + + .List + + + .List + + + ... + ... + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b"c\xfe\xc36" + + + 0 + + + ( ( 132 => 428 ) : ( ( selector ( "infiniteGas()" ) => ( ( ??_VGAS +Int ??_VCALLGAS ) +Int -127 ) ) : ( ( 645326474426547203313410069153905908525362434349 => 583 ) : ( ( 167 => 928 ) : ( ( selector ( "testInfiniteGas()" ) => 345 ) : ( .WordStack => ( ( ( ??_VGAS +Int ??_VCALLGAS ) +Int -36 ) : ( 167 : ( selector ( "testInfiniteGas()" ) : .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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x9fsS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" => b"NH{q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x9fsS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) + + ... + ... + + 5 + + + ( 9079256848778917021 => #gas ( ??_VCALLGAS ) ) + + + false + + + 0 + + + + + .List + + + SetItem ( 645326474426547203313410069153905908525362434349 ) + + + .Map + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + ... + + .Map + + + .Map + + + 0 + + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + ... + + .Map + + + .Map + + + 1 + + ) + + ... + + + ... + + + + + .Account + + + .Account + + + .Account + + + .Account + + + false + + + false + + ... + + + + false + + ... + + + + false + + + .Account + + + 0 + + + b"" + + + .OpcodeType + + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( CALLER_ID:Int + + + ( #end EVMC_REVERT => #halt ) + ~> #pc [ REVERT ] + ~> #execute + ~> _CONTINUATION + + + NORMAL + + + LONDON + + + + + b"NH{q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" + + + ( _STATUSCODE => EVMC_REVERT ) + + + .List + + + .List + + + ... + ... + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b"c\xfe\xc36" + + + 0 + + + ( 428 : ( ( ( ?_VGAS:Int +Int ?_VCALLGAS:Int ) +Int -127 ) : ( 583 : ( 928 : ( 345 : ( ( ( ?_VGAS:Int +Int ?_VCALLGAS:Int ) +Int -36 ) : ( 167 : ( selector ( "testInfiniteGas()" ) : .WordStack ) ) ) ) ) ) ) ) + + + b"NH{q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x9fsS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + + ... + ... + + 5 + + + #gas ( ?_VCALLGAS:Int ) + + + false + + + 0 + + + + + .List + + + SetItem ( 645326474426547203313410069153905908525362434349 ) + + + .Map + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + ... + + .Map + + + .Map + + + 0 + + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + ... + + .Map + + + .Map + + + 1 + + ) + + ... + + + ... + + + + + .Account + + + .Account + + + .Account + + + .Account + + + false + + + false + + ... + + + + false + + ... + + + + false + + + .Account + + + 0 + + + b"" + + + .OpcodeType + + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( CALLER_ID:Int + + + #halt + ~> ( #pc [ REVERT ] + ~> #execute => .K ) + ~> _CONTINUATION + + + NORMAL + + + LONDON + + + + + b"NH{q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" + + + EVMC_REVERT + + + .List + + + .List + + + ... + ... + + 728815563385977040452943777879061427756277306518 + + + CALLER_ID:Int + + + b"c\xfe\xc36" + + + 0 + + + ( 428 : ( ( ( ?_VGAS:Int +Int ?_VCALLGAS:Int ) +Int -127 ) : ( 583 : ( 928 : ( 345 : ( ( ( ?_VGAS:Int +Int ?_VCALLGAS:Int ) +Int -36 ) : ( 167 : ( selector ( "testInfiniteGas()" ) : .WordStack ) ) ) ) ) ) ) ) + + + b"NH{q\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x9fsS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + + ... + ... + + 5 + + + #gas ( ?_VCALLGAS:Int ) + + + false + + + 0 + + + + + .List + + + SetItem ( 645326474426547203313410069153905908525362434349 ) + + + .Map + + ... + + + ORIGIN_ID:Int + + + + NUMBER_CELL:Int + + ... + + ... + + + + ( + + 645326474426547203313410069153905908525362434349 + + + 0 + + ... + + .Map + + + .Map + + + 0 + + + + + 728815563385977040452943777879061427756277306518 + + + 0 + + ... + + .Map + + + .Map + + + 1 + + ) + + ... + + + ... + + + + + .Account + + + .Account + + + .Account + + + .Account + + + false + + + false + + ... + + + + false + + ... + + + + false + + + .Account + + + 0 + + + b"" + + + .OpcodeType + + + + + false + + + false + + ... + + + + false + + + false + + + .Set + + + .Set + + + + + requires ( 0 <=Int CALLER_ID:Int + andBool ( 0 <=Int ORIGIN_ID:Int + andBool ( 0 <=Int NUMBER_CELL:Int + andBool ( CALLER_ID:Int Non assert_pass(test_id, prove_res) +def test_foundry_auto_abstraction(foundry_root: Path, update_expected_output: bool) -> None: + foundry_prove( + foundry_root, + tests=['GasTest.testInfiniteGas'], + auto_abstract_gas=True, + ) + + show_res = foundry_show( + foundry_root, + test='GasTest.testInfiniteGas', + to_module=True, + minimize=False, + sort_collections=True, + omit_unstable_output=True, + pending=True, + failing=True, + failure_info=True, + ) + + assert_or_update_show_output(show_res, TEST_DATA_DIR / 'gas-abstraction.expected', update=update_expected_output) + + def assert_pass(test_id: str, prove_res: dict[str, tuple[bool, list[str] | None]]) -> None: assert test_id in prove_res passed, log = prove_res[test_id] diff --git a/package/debian/changelog b/package/debian/changelog index b726b2eb4b..605ddb6935 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,4 +1,4 @@ -kevm (1.0.234) unstable; urgency=medium +kevm (1.0.235) unstable; urgency=medium * Initial Release. diff --git a/package/version b/package/version index e245dd1524..876574c955 100644 --- a/package/version +++ b/package/version @@ -1 +1 @@ -1.0.234 +1.0.235