Skip to content

Commit

Permalink
EIP-4895: Beacon chain push withdrawals as operations (#2559)
Browse files Browse the repository at this point in the history
* Save wip

* check withdrawal decoding

* update failing.llvm

* update k specs

* Set Version: 1.0.667

* update missed .k spec

* Set Version: 1.0.668

* Set Version: 1.0.669

* Set Version: 1.0.670

* Set Version: 1.0.671

* update frin origin/master

* regen failing.llvm

* update failing.llvm

* update failing.llvm

* update claims

* update structured claims

* update spec

* update failing.llvm

* update tests/failing.llvm

---------

Co-authored-by: devops <[email protected]>
  • Loading branch information
anvacaru and devops authored Jan 29, 2025
1 parent e3b99f0 commit 3ba781a
Show file tree
Hide file tree
Showing 141 changed files with 319 additions and 22 deletions.
22 changes: 18 additions & 4 deletions kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,14 +409,14 @@ Note that `TEST` is sorted here so that key `"network"` comes before key `"pre"`
// ---------------------------------------
rule <k> #halt ~> check J:JSON => check J ~> #halt ... </k>
rule <k> check DATA : { .JSONs } => .K ... </k> requires DATA =/=String "transactions"
rule <k> check DATA : [ .JSONs ] => .K ... </k> requires DATA =/=String "ommerHeaders"
rule <k> check DATA : { .JSONs } => .K ... </k> requires notBool DATA in (SetItem("transactions") SetItem("withdrawals"))
rule <k> check DATA : [ .JSONs ] => .K ... </k> requires notBool DATA in (SetItem("ommerHeaders") SetItem( "transactions") SetItem("withdrawals"))
rule <k> check DATA : { (KEY:String) : VALUE , REST } => check DATA : { KEY : VALUE } ~> check DATA : { REST } ... </k>
requires REST =/=K .JSONs andBool notBool DATA in (SetItem("callcreates") SetItem("transactions"))
requires REST =/=K .JSONs andBool notBool DATA in (SetItem("callcreates") SetItem("transactions") SetItem("withdrawals"))
rule <k> check DATA : [ { TEST } , REST ] => check DATA : { TEST } ~> check DATA : [ REST ] ... </k>
requires DATA =/=String "transactions"
requires notBool DATA in (SetItem("transactions") SetItem("withdrawals"))
rule <k> check (KEY:String) : { JS:JSONs => qsortJSONs(JS) } ... </k>
requires KEY in (SetItem("callcreates")) andBool notBool sortedJSONs(JS)
Expand Down Expand Up @@ -648,6 +648,20 @@ TODO: case with nonzero ommers.
```k
rule <k> check TESTID : {"withdrawals" : WITHDRAWALS } => check "withdrawals" : WITHDRAWALS ~> failure TESTID ... </k>
// ----------------------------------------------------------------------------------------------------------------------
rule <k> check "withdrawals" : [ .JSONs ] => .K ... </k> <withdrawalsOrder> .List </withdrawalsOrder>
rule <k> check "withdrawals" : { .JSONs } => .K ... </k> <withdrawalsOrder> ListItem(_) => .List ... </withdrawalsOrder>
rule <k> check "withdrawals" : [ WITHDRAWAL , REST ] => check "withdrawals" : WITHDRAWAL ~> check "withdrawals" : [ REST ] ... </k>
rule <k> check "withdrawals" : { KEY : VALUE , REST } => check "withdrawals" : (KEY : VALUE) ~> check "withdrawals" : { REST } ... </k>
rule <k> check "withdrawals" : (_KEY : (VALUE:String => #parseByteStack(VALUE))) ... </k>
rule <k> check "withdrawals" : ("address" : (VALUE:Bytes => #asAccount(VALUE))) ... </k>
rule <k> check "withdrawals" : ( KEY : (VALUE:Bytes => #asWord(VALUE))) ... </k> requires KEY =/=String "address"
rule <k> check "withdrawals" : ("address" : VALUE ) => .K ... </k> <withdrawalsOrder> ListItem(WID) ... </withdrawalsOrder> <withdrawal> <withdrawalID> WID </withdrawalID> <address> VALUE </address> ... </withdrawal>
rule <k> check "withdrawals" : ("amount" : VALUE ) => .K ... </k> <withdrawalsOrder> ListItem(WID) ... </withdrawalsOrder> <withdrawal> <withdrawalID> WID </withdrawalID> <amount> VALUE </amount> ... </withdrawal>
rule <k> check "withdrawals" : ("validatorIndex" : VALUE ) => .K ... </k> <withdrawalsOrder> ListItem(WID) ... </withdrawalsOrder> <withdrawal> <withdrawalID> WID </withdrawalID> <validatorIndex> VALUE </validatorIndex> ... </withdrawal>
rule <k> check "withdrawals" : ("index" : VALUE ) => .K ... </k> <withdrawalsOrder> ListItem(WID) ... </withdrawalsOrder> <withdrawal> <withdrawalID> WID </withdrawalID> <index> VALUE </index> ... </withdrawal>
```

```k
Expand Down
53 changes: 51 additions & 2 deletions kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,22 @@ In the comments next to each cell, we've marked which component of the YellowPap
</message>
</messages>
// Withdrawals Record
// ------------------
<withdrawalsPending> .List </withdrawalsPending>
<withdrawalsOrder> .List </withdrawalsOrder>
<withdrawals>
<withdrawal multiplicity="*" type="Map">
<withdrawalID> 0 </withdrawalID>
<index> 0 </index>
<validatorIndex> 0 </validatorIndex>
<address> .Account </address>
<amount> 0 </amount>
</withdrawal>
</withdrawals>
</network>
</ethereum>
Expand Down Expand Up @@ -361,7 +377,7 @@ The `#next [_]` operator initiates execution by:
```k
syntax Bool ::= #stackUnderflow ( WordStack , OpCode ) [symbol(#stackUnderflow), macro]
| #stackOverflow ( WordStack , OpCode ) [symbol(#stackOverflow), macro]
// ---------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
rule #stackUnderflow(WS, OP:OpCode) => #sizeWordStack(WS) <Int #stackNeeded(OP)
rule #stackOverflow (WS, OP) => #sizeWordStack(WS) +Int #stackDelta(OP) >Int 1024
Expand Down Expand Up @@ -535,8 +551,41 @@ After executing a transaction, it's necessary to have the effect of the substate
- `#finalizeStorage` updates the origStorage cell with the new values of storage.
- `#finalizeTx` makes the substate log actually have an effect on the state.
- `#deleteAccounts` deletes the accounts specified by the self destruct list.
- `#finalizeWithdrawals` increases the balance of the `address` specified by the `amount` given, for each withdrawal.
- `#gweiToWei` does the conversion from GWEI to WEI.

```k
syntax Int ::= #gweiToWei ( Int ) [symbol(#gweiToWei), function]
// ----------------------------------------------------------------
rule #gweiToWei(V) => V *Int 10 ^Int 9
syntax InternalOp ::= "#finalizeWithdrawals" [symbol(#finalizeWithdrawals)]
// ---------------------------------------------------------------------------
rule <k> #finalizeWithdrawals => .K ... </k>
<withdrawalsPending> .List </withdrawalsPending>
rule <k> #finalizeWithdrawals ... </k>
<withdrawalsPending> ListItem(WDID) LS => LS </withdrawalsPending>
<withdrawal>
<withdrawalID> WDID </withdrawalID>
<address> ACCT </address>
<amount> VALUE </amount>
...
</withdrawal>
<account>
<acctID> ACCT </acctID>
<balance> B => B +Int #gweiToWei(VALUE) </balance>
...
</account>
rule <k> (.K => #newAccount ACCT) ~> #finalizeWithdrawals ... </k>
<withdrawalsPending> ListItem(WDID) _ </withdrawalsPending>
<withdrawal>
<withdrawalID> WDID </withdrawalID>
<address> ACCT </address>
...
</withdrawal> [owise]
syntax InternalOp ::= #finalizeStorage ( List ) [symbol(#finalizeStorage)]
// --------------------------------------------------------------------------
rule <k> #finalizeStorage(ListItem(ACCT) REST => REST) ... </k>
Expand Down Expand Up @@ -669,7 +718,7 @@ After executing a transaction, it's necessary to have the effect of the substate
syntax EthereumCommand ::= "#finalizeBlock"
| #rewardOmmers ( JSONs ) [symbol(#rewardOmmers)]
// --------------------------------------------------------------------------
rule <k> #finalizeBlock => #rewardOmmers(OMMERS) ... </k>
rule <k> #finalizeBlock => #if Ghaswithdrawals << SCHED >> #then #finalizeWithdrawals #else .K #fi ~> #rewardOmmers(OMMERS) ... </k>
<schedule> SCHED </schedule>
<ommerBlockHeaders> [ OMMERS ] </ommerBlockHeaders>
<coinbase> MINER </coinbase>
Expand Down
9 changes: 6 additions & 3 deletions kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ module SCHEDULE
| "Ghasdirtysstore" | "Ghascreate2" | "Ghasextcodehash" | "Ghasselfbalance"
| "Ghassstorestipend" | "Ghaschainid" | "Ghasaccesslist" | "Ghasbasefee"
| "Ghasrejectedfirstbyte" | "Ghasprevrandao" | "Ghasmaxinitcodesize" | "Ghaspushzero"
| "Ghaswarmcoinbase" | "Ghastransient" | "Ghasmcopy" | "Ghasbeaconroot"
| "Ghaseip6780" | "Ghasblobbasefee"
// ---------------------------------------------------------------------
| "Ghaswarmcoinbase" | "Ghaswithdrawals" | "Ghastransient" | "Ghasmcopy"
| "Ghasbeaconroot" | "Ghaseip6780" | "Ghasblobbasefee"
// ------------------------------------------------------------------------------------------
```

### Schedule Constants
Expand Down Expand Up @@ -148,6 +148,7 @@ A `ScheduleConst` is a constant determined by the fee schedule.
rule Ghasmaxinitcodesize << DEFAULT >> => false
rule Ghaspushzero << DEFAULT >> => false
rule Ghaswarmcoinbase << DEFAULT >> => false
rule Ghaswithdrawals << DEFAULT >> => false
rule Ghastransient << DEFAULT >> => false
rule Ghasmcopy << DEFAULT >> => false
rule Ghasbeaconroot << DEFAULT >> => false
Expand Down Expand Up @@ -374,10 +375,12 @@ A `ScheduleConst` is a constant determined by the fee schedule.
rule Ghasmaxinitcodesize << SHANGHAI >> => true
rule Ghaspushzero << SHANGHAI >> => true
rule Ghaswarmcoinbase << SHANGHAI >> => true
rule Ghaswithdrawals << SHANGHAI >> => true
rule SCHEDFLAG << SHANGHAI >> => SCHEDFLAG << MERGE >>
requires notBool ( SCHEDFLAG ==K Ghasmaxinitcodesize
orBool SCHEDFLAG ==K Ghaspushzero
orBool SCHEDFLAG ==K Ghaswarmcoinbase
orBool SCHEDFLAG ==K Ghaswithdrawals
)
```

Expand Down
40 changes: 40 additions & 0 deletions kevm-pyk/src/kevm_pyk/kproj/evm-semantics/state-utils.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ module STATE-UTILS
<statusCode> _ => .StatusCode </statusCode>
<accounts> _ => .Bag </accounts>
<messages> _ => .Bag </messages>
<withdrawals> _ => .Bag </withdrawals>
<schedule> _ => DEFAULT </schedule>
```
Expand Down Expand Up @@ -249,6 +250,45 @@ The `"rlp"` key loads the block information.
rule <k> load "genesisRLP": [ [ HP, HO, HC, HR, HT, HE:Bytes, HB, HD, HI, HL, HG, HS, HX, HM, HN, HF, .JSONs ], _, _, .JSONs ] => .K ... </k>
<blockhashes> .List => ListItem(#blockHeaderHash(HP, HO, HC, HR, HT, HE, HB, HD, HI, HL, HG, HS, HX, HM, HN, HF)) ListItem(#asWord(HP)) ... </blockhashes>
syntax Int ::= "#newWithdrawalID" "(" List ")" [function]
// ---------------------------------------------------------
rule #newWithdrawalID (.List) => 0
rule #newWithdrawalID (_ ListItem(I)) => I +Int 1
syntax EthereumCommand ::= "mkWD" Int
// -------------------------------------
rule <k> mkWD (WDID => WDID +Int 1) ... </k>
<withdrawal> <withdrawalID> WDID </withdrawalID> ... </withdrawal>
rule <k> mkWD WDID => .K ... </k>
<withdrawalsOrder> ... (.List => ListItem(WDID)) </withdrawalsOrder>
<withdrawalsPending> ... (.List => ListItem(WDID)) </withdrawalsPending>
<withdrawals>
( .Bag
=> <withdrawal>
<withdrawalID> WDID </withdrawalID>
...
</withdrawal>
)
...
</withdrawals> [owise]
syntax EthereumCommand ::= "loadWithdraw" JSON
// ----------------------------------------------
rule <k> loadWithdraw [ INDEX , VALIDATOR , ACCT , VALUE , .JSONs ] => .K ... </k>
<withdrawalsOrder> ... ListItem(WID) </withdrawalsOrder>
<withdrawal>
<withdrawalID> WID </withdrawalID>
<index> _ => #asWord(INDEX) </index>
<validatorIndex> _ => #asWord(VALIDATOR) </validatorIndex>
<address> _ => #asAccount(ACCT) </address>
<amount> _ => #asWord(VALUE) </amount>
</withdrawal>
rule <k> load "withdraw" : [ .JSONs ] => .K ... </k>
rule <k> load "withdraw" : [ WITHDRAW , REST ] => mkWD #newWithdrawalID(WIDS) ~> loadWithdraw WITHDRAW ~> load "withdraw" : [ REST ] ... </k>
<withdrawalsOrder> WIDS </withdrawalsOrder>
syntax EthereumCommand ::= "mkTX" Int
// -------------------------------------
rule <k> mkTX TXID => .K ... </k>
Expand Down
15 changes: 2 additions & 13 deletions tests/failing.llvm
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ BlockchainTests/GeneralStateTests/Cancun/stEIP4844-blobtransactions/opcodeBlobha
BlockchainTests/GeneralStateTests/Cancun/stEIP4844-blobtransactions/opcodeBlobhBounds.json,*
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip1153_tstore/tstore_clear_after_deployment_tx.json,*
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip1153_tstore/tstore_clear_after_tx.json,*
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip4788_beacon_root/beacon_root_contract_deploy.json,*
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip4788_beacon_root/beacon_root_transition.json,*
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip4788_beacon_root/multi_block_beacon_root_timestamp_calls.json,*
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip4788_beacon_root/no_beacon_root_contract_at_transition.json,*
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip4788_beacon_root/tx_to_beacon_root_contract.json,src/GeneralStateTestsFiller/Pyspecs/cancun/eip4788_beacon_root/test_beacon_root_contract.py::test_tx_to_beacon_root_contract[fork_Cancun-tx_type_3-blockchain_test-call_beacon_root_contract_True-auto_access_list_False]
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip4788_beacon_root/tx_to_beacon_root_contract.json,src/GeneralStateTestsFiller/Pyspecs/cancun/eip4788_beacon_root/test_beacon_root_contract.py::test_tx_to_beacon_root_contract[fork_Cancun-tx_type_3-blockchain_test-call_beacon_root_contract_True-auto_access_list_True]
BlockchainTests/GeneralStateTests/Pyspecs/cancun/eip4844_blobs/blob_gas_subtraction_tx.json,*
Expand Down Expand Up @@ -215,17 +212,9 @@ BlockchainTests/GeneralStateTests/Pyspecs/constantinople/eip1014_create2/recreat
BlockchainTests/GeneralStateTests/Pyspecs/frontier/opcodes/all_opcodes.json,src/GeneralStateTestsFiller/Pyspecs/frontier/opcodes/test_all_opcodes.py::test_all_opcodes[fork_Cancun-blockchain_test]
BlockchainTests/GeneralStateTests/Pyspecs/frontier/opcodes/double_kill.json,*
BlockchainTests/GeneralStateTests/Pyspecs/paris/security/tx_selfdestruct_balance_bug.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/balance_within_block.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/large_amount.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/many_withdrawals.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/multiple_withdrawals_same_address.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/newly_created_contract.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/no_evm_execution.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/self_destructing_account.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/use_value_in_contract.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/use_value_in_tx.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/withdrawing_to_precompiles.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/zero_amount.json,*
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/withdrawing_to_precompiles.json,src/GeneralStateTestsFiller/Pyspecs/shanghai/eip4895_withdrawals/test_withdrawals.py::test_withdrawing_to_precompiles[fork_Cancun-precompile_0x000000000000000000000000000000000000000a-blockchain_test-amount_0]
BlockchainTests/GeneralStateTests/Pyspecs/shanghai/eip4895_withdrawals/withdrawing_to_precompiles.json,src/GeneralStateTestsFiller/Pyspecs/shanghai/eip4895_withdrawals/test_withdrawals.py::test_withdrawing_to_precompiles[fork_Cancun-precompile_0x000000000000000000000000000000000000000a-blockchain_test-amount_1]
BlockchainTests/GeneralStateTests/stBadOpcode/opc49DiffPlaces.json,*
BlockchainTests/GeneralStateTests/stEIP1559/lowFeeCap.json,*
BlockchainTests/GeneralStateTests/stEIP1559/lowGasLimit.json,lowGasLimit_d0g0v0_Cancun
Expand Down
9 changes: 9 additions & 0 deletions tests/failing/ContractCreationSpam_d0g0v0.json.expected
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,15 @@
</txVersionedHashes>
</message>
</messages>
<withdrawalsPending>
.List
</withdrawalsPending>
<withdrawalsOrder>
.List
</withdrawalsOrder>
<withdrawals>
.WithdrawalCellMap
</withdrawals>
</network>
</ethereum>
</kevm>
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,15 @@
</txVersionedHashes>
</message>
</messages>
<withdrawalsPending>
.List
</withdrawalsPending>
<withdrawalsOrder>
.List
</withdrawalsOrder>
<withdrawals>
.WithdrawalCellMap
</withdrawals>
</network>
</ethereum>
</kevm>
1 change: 1 addition & 0 deletions tests/specs/benchmarks/address00-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/bytes00-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/dynamicarray00-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/ecrecover00-siginvalid-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/ecrecover00-sigvalid-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/ecrecoverloop00-sig0-invalid-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/ecrecoverloop00-sig1-invalid-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/ecrecoverloop00-sigs-valid-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/ecrecoverloop02-sig0-invalid-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/ecrecoverloop02-sig1-invalid-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/ecrecoverloop02-sigs-valid-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/encode-keccak00-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/encodepacked-keccak01-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/keccak00-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
1 change: 1 addition & 0 deletions tests/specs/benchmarks/overflow00-nooverflow-spec.k
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ _
<txOrder> _ </txOrder>
<txPending> _ </txPending>
<messages> _ </messages>
...
</network>
</ethereum>
requires #rangeAddress(CONTRACT_ID)
Expand Down
Loading

0 comments on commit 3ba781a

Please sign in to comment.