From 6a60cbd21b495089e6cb07ad049b9000452fb173 Mon Sep 17 00:00:00 2001 From: Andrei <16517508+anvacaru@users.noreply.github.com> Date: Wed, 7 May 2025 14:33:28 +0300 Subject: [PATCH 1/8] implement eip-7623 --- .../kevm_pyk/kproj/evm-semantics/driver.md | 8 ++--- .../src/kevm_pyk/kproj/evm-semantics/evm.md | 36 +++++++++---------- .../src/kevm_pyk/kproj/evm-semantics/gas.md | 7 ++++ .../kevm_pyk/kproj/evm-semantics/schedule.md | 7 ++-- 4 files changed, 34 insertions(+), 24 deletions(-) diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md index 223615f467..a146ce6fd8 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md @@ -66,8 +66,8 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a syntax EthereumCommand ::= "flush" // ---------------------------------- - rule EXECMODE EVMC_SUCCESS #halt ~> flush => #finalizeTx(EXECMODE ==K VMTESTS) ... - rule EXECMODE _:ExceptionalStatusCode #halt ~> flush => #finalizeTx(EXECMODE ==K VMTESTS) ~> #halt ... + rule EXECMODE EVMC_SUCCESS #halt ~> flush => #finalizeTx(EXECMODE ==K VMTESTS, 0) ... + rule EXECMODE _:ExceptionalStatusCode #halt ~> flush => #finalizeTx(EXECMODE ==K VMTESTS, 0) ~> #halt ... ``` - `startTx` computes the sender of the transaction, and places loadTx on the `k` cell. @@ -111,7 +111,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a ~> #loadAccessList(TA) ~> #checkCreate ACCTFROM VALUE ~> #create ACCTFROM #newAddr(ACCTFROM, NONCE) VALUE CODE - ~> #finishTx ~> #finalizeTx(false) ~> startTx + ~> #finishTx ~> #finalizeTx(false, (Gtxcreate < SCHED > +Int Gtxdatafloor < SCHED > *Int #tokensInCalldata(CODE))) ~> startTx ... SCHED @@ -149,7 +149,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a ~> #loadAccessList(TA) ~> #checkCall ACCTFROM VALUE ~> #call ACCTFROM ACCTTO ACCTTO VALUE VALUE DATA false - ~> #finishTx ~> #finalizeTx(false) ~> startTx + ~> #finishTx ~> #finalizeTx(false, (Gtransaction < SCHED > +Int Gtxdatafloor < SCHED > *Int #tokensInCalldata(DATA))) ~> startTx ... SCHED diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md index b2fd55a98f..8297857160 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md @@ -603,10 +603,10 @@ After executing a transaction, it's necessary to have the effect of the substate rule (.K => #newAccount ACCT) ~> #finalizeStorage(ListItem(ACCT) _ACCTS) ... [owise] - syntax InternalOp ::= #finalizeTx ( Bool ) [symbol(#finalizeTx)] + syntax InternalOp ::= #finalizeTx ( Bool , Int ) [symbol(#finalizeTx)] | #deleteAccounts ( List ) [symbol(#deleteAccounts)] // ------------------------------------------------------------------------ - rule #finalizeTx(true) => #finalizeStorage(Set2List(SetItem(MINER) |Set ACCTS)) ... + rule #finalizeTx(true, _) => #finalizeStorage(Set2List(SetItem(MINER) |Set ACCTS)) ... .Set MINER ACCTS => .Set @@ -614,7 +614,7 @@ After executing a transaction, it's necessary to have the effect of the substate _ => .Map _ => .Set - rule #finalizeTx(false) ... + rule #finalizeTx(false, _) ... true SCHED GAVAIL => G*(GAVAIL, GLIMIT, REFUND, SCHED) @@ -627,14 +627,14 @@ After executing a transaction, it's necessary to have the effect of the substate requires REFUND =/=Int 0 - rule #finalizeTx(false => true) ... + rule #finalizeTx(false => true, GFLOOR) ... true SCHED BFEE ORG MINER GAVAIL - GUSED => GUSED +Gas GLIMIT -Gas GAVAIL + GUSED => GUSED +Gas maxInt(GLIMIT -Int GAVAIL, GFLOOR) GPRICE 0 @@ -644,7 +644,7 @@ After executing a transaction, it's necessary to have the effect of the substate MINER - MINBAL => MINBAL +Int (GLIMIT -Int GAVAIL) *Int (GPRICE -Int BFEE) + MINBAL => MINBAL +Int maxInt(GLIMIT -Int GAVAIL, GFLOOR) *Int (GPRICE -Int BFEE) ... ListItem(TXID:Int) REST => REST @@ -655,14 +655,14 @@ After executing a transaction, it's necessary to have the effect of the substate requires ORG =/=Int MINER andBool notBool Ghasblobbasefee << SCHED >> - rule #finalizeTx(false => true) ... + rule #finalizeTx(false => true, GFLOOR) ... true BFEE SCHED ORG MINER GAVAIL - GUSED => GUSED +Gas GLIMIT -Gas GAVAIL + GUSED => GUSED +Gas maxInt(GLIMIT -Int GAVAIL, GFLOOR) GPRICE 0 EXCESS_BLOB_GAS @@ -673,7 +673,7 @@ After executing a transaction, it's necessary to have the effect of the substate MINER - MINBAL => MINBAL +Int (GLIMIT -Int GAVAIL) *Int (GPRICE -Int BFEE) + MINBAL => MINBAL +Int maxInt(GLIMIT -Int GAVAIL, GFLOOR) *Int (GPRICE -Int BFEE) ... ListItem(TXID:Int) REST => REST @@ -685,19 +685,19 @@ After executing a transaction, it's necessary to have the effect of the substate requires ORG =/=Int MINER andBool Ghasblobbasefee << SCHED >> - rule #finalizeTx(false => true) ... + rule #finalizeTx(false => true, GFLOOR) ... true SCHED BFEE ACCT ACCT GAVAIL - GUSED => GUSED +Gas GLIMIT -Gas GAVAIL + GUSED => GUSED +Gas maxInt(GLIMIT -Int GAVAIL, GFLOOR) GPRICE 0 ACCT - BAL => BAL +Int GLIMIT *Int GPRICE -Int (GLIMIT -Int GAVAIL) *Int BFEE + BAL => BAL +Int GLIMIT *Int GPRICE -Int maxInt(GLIMIT -Int GAVAIL, GFLOOR) *Int BFEE ... ListItem(MsgId:Int) REST => REST @@ -708,20 +708,20 @@ After executing a transaction, it's necessary to have the effect of the substate requires notBool Ghasblobbasefee << SCHED >> - rule #finalizeTx(false => true) ... + rule #finalizeTx(false => true, GFLOOR) ... true SCHED BFEE ACCT ACCT GAVAIL - GUSED => GUSED +Gas GLIMIT -Gas GAVAIL + GUSED => GUSED +Gas maxInt(GLIMIT -Int GAVAIL, GFLOOR) GPRICE 0 EXCESS_BLOB_GAS ACCT - BAL => BAL +Int GLIMIT *Int GPRICE -Int (GLIMIT -Int GAVAIL) *Int BFEE -Int #calcBlobFee(EXCESS_BLOB_GAS, size(TVH)) + BAL => BAL +Int GLIMIT *Int GPRICE -Int maxInt(GLIMIT -Int GAVAIL, GFLOOR) *Int BFEE -Int #calcBlobFee(EXCESS_BLOB_GAS, size(TVH)) ... ListItem(MsgId:Int) REST => REST @@ -733,7 +733,7 @@ After executing a transaction, it's necessary to have the effect of the substate requires Ghasblobbasefee << SCHED >> - rule #finalizeTx(false => true) ... + rule #finalizeTx(false => true, _) ... false ListItem(MsgId:Int) REST => REST @@ -741,11 +741,11 @@ After executing a transaction, it's necessary to have the effect of the substate ... - rule (.K => #deleteAccounts(Set2List(ACCTS))) ~> #finalizeTx(true) ... + rule (.K => #deleteAccounts(Set2List(ACCTS))) ~> #finalizeTx(true,_) ... ACCTS => .Set requires size(ACCTS) >Int 0 - rule (.K => #newAccount MINER) ~> #finalizeTx(_) ... + rule (.K => #newAccount MINER) ~> #finalizeTx(_,_) ... MINER [owise] rule #deleteAccounts(ListItem(ACCT) ACCTS) => #deleteAccounts(ACCTS) ... diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md index acc5e7ca06..89a3941ae4 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md @@ -248,6 +248,13 @@ module GAS-FEES rule #adjustedExpLength(0) => 0 rule #adjustedExpLength(1) => 0 rule #adjustedExpLength(N) => 1 +Int #adjustedExpLength(N /Int 2) requires N >Int 1 + + syntax Int ::= #tokensInCalldata( Bytes ) [symbol(#tokensInCalldata), function] + | #tokensInCalldata( Bytes , Int , Int , Int ) [symbol(#tokensInCalldataAux), function] + // ---------------------------------------------------------------------------------------------------- + rule #tokensInCalldata(WS) => #tokensInCalldata(WS, 0, lengthBytes(WS), 0) + rule #tokensInCalldata(_, I, I, R) => R + rule #tokensInCalldata(WS, I, J, R) => #tokensInCalldata(WS, I+Int 1, J, R +Int #if WS[I] ==Int 0 #then 1 #else 4 #fi) [owise] endmodule ``` diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md index b1d01a4b14..b833b78fc0 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md @@ -48,7 +48,7 @@ A `ScheduleConst` is a constant determined by the fee schedule. | "Gblockhash" | "Gquadcoeff" | "maxCodeSize" | "Rb" | "Gquaddivisor" | "Gecadd" | "Gecmul" | "Gecpairconst" | "Gecpaircoeff" | "Gfround" | "Gcoldsload" | "Gcoldaccountaccess" | "Gwarmstorageread" | "Gaccesslistaddress" | "Gaccessliststoragekey" | "Rmaxquotient" | "Ginitcodewordcost" | "maxInitCodeSize" | "Gwarmstoragedirtystore" - | "Gpointeval" + | "Gpointeval" | "Gtxdatafloor" // ---------------------------------------------------------------------------------------------------------------------------------------------------- ``` @@ -97,6 +97,7 @@ A `ScheduleConst` is a constant determined by the fee schedule. rule [GtxcreateDefault]: Gtxcreate < DEFAULT > => 53000 rule [GtxdatazeroDefault]: Gtxdatazero < DEFAULT > => 4 rule [GtxdatanonzeroDefault]: Gtxdatanonzero < DEFAULT > => 68 + rule [GtxdatafloorDefault]: Gtxdatafloor < DEFAULT > => 0 rule [GjumpdestDefault]: Gjumpdest < DEFAULT > => 1 rule [GbalanceDefault]: Gbalance < DEFAULT > => 20 @@ -421,7 +422,9 @@ A `ScheduleConst` is a constant determined by the fee schedule. ```k syntax Schedule ::= "PRAGUE" [symbol(PRAGUE_EVM), smtlib(schedule_PRAGUE)] // -------------------------------------------------------------------------- - rule [SCHEDCONSTPrague]: SCHEDCONST < PRAGUE > => SCHEDCONST < CANCUN > + rule [GtxdatafloorPrague]: Gtxdatafloor < PRAGUE > => 10 + rule [SCHEDCONSTPrague]: SCHEDCONST < PRAGUE > => SCHEDCONST < CANCUN > + requires notBool ( SCHEDCONST ==K Gtxdatafloor ) rule [SCHEDFLAGPrague]: SCHEDFLAG << PRAGUE >> => SCHEDFLAG << CANCUN >> From 9e78835878917016eb2b84b906751f25ca6e53fb Mon Sep 17 00:00:00 2001 From: Andrei <16517508+anvacaru@users.noreply.github.com> Date: Wed, 7 May 2025 15:33:46 +0300 Subject: [PATCH 2/8] refactor logic to Ctxfloor --- kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md | 4 ++-- kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md | 4 ++++ kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md index a146ce6fd8..c6f4135728 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md @@ -111,7 +111,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a ~> #loadAccessList(TA) ~> #checkCreate ACCTFROM VALUE ~> #create ACCTFROM #newAddr(ACCTFROM, NONCE) VALUE CODE - ~> #finishTx ~> #finalizeTx(false, (Gtxcreate < SCHED > +Int Gtxdatafloor < SCHED > *Int #tokensInCalldata(CODE))) ~> startTx + ~> #finishTx ~> #finalizeTx(false, Ctxfloor(SCHED, CODE, Gtxcreate < SCHED > )) ~> startTx ... SCHED @@ -149,7 +149,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a ~> #loadAccessList(TA) ~> #checkCall ACCTFROM VALUE ~> #call ACCTFROM ACCTTO ACCTTO VALUE VALUE DATA false - ~> #finishTx ~> #finalizeTx(false, (Gtransaction < SCHED > +Int Gtxdatafloor < SCHED > *Int #tokensInCalldata(DATA))) ~> startTx + ~> #finishTx ~> #finalizeTx(false, Ctxfloor(SCHED, DATA, Gtransaction < SCHED >)) ~> startTx ... SCHED diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md index 89a3941ae4..b0a18c1b97 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md @@ -121,6 +121,7 @@ module GAS-FEES | Cbalance ( Schedule ) [symbol(Cbalance), function, total, smtlib(gas_Cbalance) ] | Cmodexp ( Schedule , Bytes , Int , Int , Int ) [symbol(Cmodexp), function, total, smtlib(gas_Cmodexp) ] | Cinitcode ( Schedule , Int ) [symbol(Cinitcode), function, total, smtlib(gas_Cinitcode) ] + | Ctxfloor ( Schedule , Bytes , Int ) [symbol(Ctxfloor), function, total, smtlib(gas_Ctxfloor) ] // ------------------------------------------------------------------------------------------------------------------------------------------ rule [Cgascap]: Cgascap(SCHED, GCAP:Int, GAVAIL:Int, GEXTRA) @@ -255,6 +256,9 @@ module GAS-FEES rule #tokensInCalldata(WS) => #tokensInCalldata(WS, 0, lengthBytes(WS), 0) rule #tokensInCalldata(_, I, I, R) => R rule #tokensInCalldata(WS, I, J, R) => #tokensInCalldata(WS, I+Int 1, J, R +Int #if WS[I] ==Int 0 #then 1 #else 4 #fi) [owise] + + rule Ctxfloor(SCHED, CODE, BASECOST) => BASECOST +Int Gtxdatafloor < SCHED > *Int #tokensInCalldata(CODE) requires Ghasfloorcost << SCHED >> + rule Ctxfloor( _, _, _) => 0 [owise] endmodule ``` diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md index b833b78fc0..92f9c5012a 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md @@ -30,6 +30,7 @@ module SCHEDULE | "Ghasrejectedfirstbyte" | "Ghasprevrandao" | "Ghasmaxinitcodesize" | "Ghaspushzero" | "Ghaswarmcoinbase" | "Ghaswithdrawals" | "Ghastransient" | "Ghasmcopy" | "Ghasbeaconroot" | "Ghaseip6780" | "Ghasblobbasefee" | "Ghasblobhash" + | "Ghasfloorcost" ``` ### Schedule Constants @@ -157,6 +158,7 @@ A `ScheduleConst` is a constant determined by the fee schedule. rule [GhasbeaconrootDefault]: Ghasbeaconroot << DEFAULT >> => false rule [Ghaseip6780Default]: Ghaseip6780 << DEFAULT >> => false rule [GhasblobhashDefault]: Ghasblobhash << DEFAULT >> => false + rule [GhasfloorcostDefault]: Ghasfloorcost << DEFAULT >> => false ``` ### Frontier Schedule @@ -426,7 +428,9 @@ A `ScheduleConst` is a constant determined by the fee schedule. rule [SCHEDCONSTPrague]: SCHEDCONST < PRAGUE > => SCHEDCONST < CANCUN > requires notBool ( SCHEDCONST ==K Gtxdatafloor ) - rule [SCHEDFLAGPrague]: SCHEDFLAG << PRAGUE >> => SCHEDFLAG << CANCUN >> + rule [GhasfloorcostPrague]: Ghasfloorcost << PRAGUE >> => true + rule [SCHEDFLAGPrague]: SCHEDFLAG << PRAGUE >> => SCHEDFLAG << CANCUN >> + requires notBool ( SCHEDFLAG ==K Ghasfloorcost ) ``` From 37ea25bc03106e39de43d76d284dcf57d1a93418 Mon Sep 17 00:00:00 2001 From: Andrei <16517508+anvacaru@users.noreply.github.com> Date: Fri, 9 May 2025 14:13:25 +0300 Subject: [PATCH 3/8] remove redundant rules --- .../kevm_pyk/kproj/evm-semantics/driver.md | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md index 56e0b2b45f..a19c5f1591 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md @@ -116,18 +116,6 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a syntax EthereumCommand ::= loadTx ( Account ) [symbol(loadTx)] // -------------------------------------------------------------- - rule loadTx(_) => startTx ... - _ => EVMC_OUT_OF_GAS - ListItem(TXID:Int) REST => REST - SCHED - - TXID - .Account - CODE - ... - - requires notBool #hasValidInitCode(lengthBytes(CODE), SCHED) - rule loadTx(ACCTFROM) => #accessAccounts ACCTFROM #newAddr(ACCTFROM, NONCE) #precompiledAccountsSet(SCHED) ~> #deductBlobGas @@ -164,7 +152,6 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a requires #hasValidInitCode(lengthBytes(CODE), SCHED) andBool #isValidTransaction(TXID, ACCTFROM) - rule loadTx(ACCTFROM) => #accessAccounts ACCTFROM ACCTTO #precompiledAccountsSet(SCHED) ~> #deductBlobGas @@ -203,16 +190,6 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a requires ACCTTO =/=K .Account andBool #isValidTransaction(TXID, ACCTFROM) - rule loadTx(ACCTFROM) => startTx ... - _ => EVMC_INVALID_BLOCK - ListItem(_TXID:Int) REST => REST - - ACCTFROM - ACCTCODE - ... - - requires notBool ACCTCODE ==K .Bytes - rule loadTx(_) => startTx ... _ => EVMC_OUT_OF_GAS ListItem(_TXID:Int) REST => REST [owise] From 6e9c81cacb666e83d3e81fdca82fc79ff0d30ea2 Mon Sep 17 00:00:00 2001 From: Andrei <16517508+anvacaru@users.noreply.github.com> Date: Fri, 9 May 2025 16:52:15 +0300 Subject: [PATCH 4/8] Tweaks to floor cost calculation --- kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md | 8 +++++--- kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md | 8 ++++---- kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md | 6 +++--- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md index a19c5f1591..c2e60a149d 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md @@ -122,7 +122,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a ~> #loadAccessList(TA) ~> #checkCreate ACCTFROM VALUE ~> #create ACCTFROM #newAddr(ACCTFROM, NONCE) VALUE CODE - ~> #finishTx ~> #finalizeTx(false, Ctxfloor(SCHED, CODE, Gtxcreate < SCHED > )) ~> startTx + ~> #finishTx ~> #finalizeTx(false, Ctxfloor(SCHED, CODE)) ~> startTx ... SCHED @@ -151,6 +151,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a _ => SetItem(MINER) requires #hasValidInitCode(lengthBytes(CODE), SCHED) andBool #isValidTransaction(TXID, ACCTFROM) + andBool GLIMIT >=Int maxInt(G0(SCHED, CODE, true), Ctxfloor(SCHED, CODE)) rule loadTx(ACCTFROM) => #accessAccounts ACCTFROM ACCTTO #precompiledAccountsSet(SCHED) @@ -158,12 +159,12 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a ~> #loadAccessList(TA) ~> #checkCall ACCTFROM VALUE ~> #call ACCTFROM ACCTTO ACCTTO VALUE VALUE DATA false - ~> #finishTx ~> #finalizeTx(false, Ctxfloor(SCHED, DATA, Gtransaction < SCHED >)) ~> startTx + ~> #finishTx ~> #finalizeTx(false, Ctxfloor(SCHED, DATA)) ~> startTx ... SCHED _ => #effectiveGasPrice(TXID) - _ => GLIMIT -Int G0(SCHED, DATA, false) + _ => GLIMIT -Int G0(SCHED, DATA, false) _ => ACCTFROM _ => -1 ListItem(TXID:Int) ... @@ -189,6 +190,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a _ => SetItem(MINER) requires ACCTTO =/=K .Account andBool #isValidTransaction(TXID, ACCTFROM) + andBool GLIMIT >=Int maxInt(G0(SCHED, DATA, false), Ctxfloor(SCHED, DATA)) rule loadTx(_) => startTx ... _ => EVMC_OUT_OF_GAS diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md index dbef94696d..0f0e517c91 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md @@ -637,20 +637,20 @@ After executing a transaction, it's necessary to have the effect of the substate requires REFUND =/=Int 0 - rule #finalizeTx(false => true, GFLOOR) ... + rule #finalizeTx(false, GFLOOR) => #finalizeTx(true, GFLOOR) ... true SCHED BFEE ORG MINER - GAVAIL + GAVAIL => minInt (GAVAIL, GLIMIT -Int GFLOOR) GUSED => GUSED +Gas maxInt(GLIMIT -Int GAVAIL, GFLOOR) BLOB_GAS_USED => #if TXTYPE ==K Blob #then BLOB_GAS_USED +Int Ctotalblob(SCHED, size(TVH)) #else BLOB_GAS_USED #fi GPRICE 0 ORG - ORGBAL => ORGBAL +Int GAVAIL *Int GPRICE + ORGBAL => ORGBAL +Int minInt(GAVAIL, GLIMIT -Int GFLOOR) *Int GPRICE ... @@ -668,7 +668,7 @@ After executing a transaction, it's necessary to have the effect of the substate requires ORG =/=Int MINER - rule #finalizeTx(false => true, GFLOOR) ... + rule #finalizeTx(false, GFLOOR) => #finalizeTx(true, GFLOOR) ... true SCHED BFEE diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md index f42fc0150d..1592fd11e6 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/gas.md @@ -125,7 +125,7 @@ module GAS-FEES | Cbasefeeperblob( Schedule , Int ) [symbol(Cbasefeeperblob),function, total, smtlib(gas_Cbasefeeperblob) ] | Cblobfee ( Schedule , Int , Int ) [symbol(Cblobfee), function, total, smtlib(gas_Cblobfee) ] | Cexcessblob ( Schedule , Int , Int ) [symbol(Cexcessblob), function, total, smtlib(gas_Cexcessblob) ] - | Ctxfloor ( Schedule , Bytes , Int ) [symbol(Ctxfloor), function, total, smtlib(gas_Ctxfloor) ] + | Ctxfloor ( Schedule , Bytes ) [symbol(Ctxfloor), function, total, smtlib(gas_Ctxfloor) ] // ------------------------------------------------------------------------------------------------------------------------------------------ rule [Cgascap]: Cgascap(SCHED, GCAP:Int, GAVAIL:Int, GEXTRA) @@ -279,8 +279,8 @@ module GAS-FEES rule #tokensInCalldata(_, I, I, R) => R rule #tokensInCalldata(WS, I, J, R) => #tokensInCalldata(WS, I+Int 1, J, R +Int #if WS[I] ==Int 0 #then 1 #else 4 #fi) [owise] - rule Ctxfloor(SCHED, CODE, BASECOST) => BASECOST +Int Gtxdatafloor < SCHED > *Int #tokensInCalldata(CODE) requires Ghasfloorcost << SCHED >> - rule Ctxfloor( _, _, _) => 0 [owise] + rule Ctxfloor(SCHED, CODE) => Gtransaction < SCHED > +Int (Gtxdatafloor < SCHED > *Int #tokensInCalldata(CODE)) requires Ghasfloorcost << SCHED >> + rule Ctxfloor( _, _) => 0 [owise] endmodule ``` From a668c12a0d77360fa1ee79b40dc530442c23f0ef Mon Sep 17 00:00:00 2001 From: Andrei <16517508+anvacaru@users.noreply.github.com> Date: Fri, 9 May 2025 16:52:27 +0300 Subject: [PATCH 5/8] update execution-spec-tests/failing.llvm --- tests/execution-spec-tests/failing.llvm | 107 +----------------------- 1 file changed, 1 insertion(+), 106 deletions(-) diff --git a/tests/execution-spec-tests/failing.llvm b/tests/execution-spec-tests/failing.llvm index 1ddaffe6bc..9938fbe1ca 100644 --- a/tests/execution-spec-tests/failing.llvm +++ b/tests/execution-spec-tests/failing.llvm @@ -1672,9 +1672,7 @@ blockchain_tests/prague/eip2935_historical_block_hashes_from_state/contract_depl blockchain_tests/prague/eip6110_deposits/deposits/deposit_negative.json,* blockchain_tests/prague/eip6110_deposits/deposits/deposit.json,tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-many_deposits_from_contract] blockchain_tests/prague/eip6110_deposits/deposits/deposit.json,tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-multiple_deposit_from_different_eoa] -blockchain_tests/prague/eip6110_deposits/deposits/deposit.json,tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-multiple_deposit_from_same_eoa_first_reverts] blockchain_tests/prague/eip6110_deposits/deposits/deposit.json,tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-multiple_deposit_from_same_eoa_high_count] -blockchain_tests/prague/eip6110_deposits/deposits/deposit.json,tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-multiple_deposit_from_same_eoa_last_reverts] blockchain_tests/prague/eip6110_deposits/deposits/deposit.json,tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-multiple_deposit_from_same_eoa] blockchain_tests/prague/eip6110_deposits/deposits/deposit.json,tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-multiple_deposits_from_contract] blockchain_tests/prague/eip6110_deposits/deposits/deposit.json,tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-single_deposit_from_contract_between_eoa_deposits] @@ -1727,104 +1725,13 @@ blockchain_tests/prague/eip7251_consolidations/consolidations/consolidation_requ blockchain_tests/prague/eip7251_consolidations/contract_deployment/system_contract_deployment.json,* blockchain_tests/prague/eip7623_increase_calldata_cost/execution_gas/full_gas_consumption.json,tests/prague/eip7623_increase_calldata_cost/test_execution_gas.py::TestGasConsumption::test_full_gas_consumption[fork_Prague-blockchain_test_from_state_test-exact_gas-type_4] blockchain_tests/prague/eip7623_increase_calldata_cost/execution_gas/full_gas_consumption.json,tests/prague/eip7623_increase_calldata_cost/test_execution_gas.py::TestGasConsumption::test_full_gas_consumption[fork_Prague-blockchain_test_from_state_test-extra_gas-type_4] -blockchain_tests/prague/eip7623_increase_calldata_cost/execution_gas/gas_consumption_below_data_floor.json,* +blockchain_tests/prague/eip7623_increase_calldata_cost/execution_gas/gas_consumption_below_data_floor.json,tests/prague/eip7623_increase_calldata_cost/test_execution_gas.py::TestGasConsumptionBelowDataFloor::test_gas_consumption_below_data_floor[fork_Prague-blockchain_test_from_state_test-exact_gas-type_4] blockchain_tests/prague/eip7623_increase_calldata_cost/refunds/gas_refunds_from_data_floor.json,tests/prague/eip7623_increase_calldata_cost/test_refunds.py::test_gas_refunds_from_data_floor[fork_Prague-blockchain_test_from_state_test-refund_type_RefundType.AUTHORIZATION_EXISTING_AUTHORITY-refund_test_type_RefundTestType.EXECUTION_GAS_MINUS_REFUND_EQUAL_TO_DATA_FLOOR] blockchain_tests/prague/eip7623_increase_calldata_cost/refunds/gas_refunds_from_data_floor.json,tests/prague/eip7623_increase_calldata_cost/test_refunds.py::test_gas_refunds_from_data_floor[fork_Prague-blockchain_test_from_state_test-refund_type_RefundType.AUTHORIZATION_EXISTING_AUTHORITY-refund_test_type_RefundTestType.EXECUTION_GAS_MINUS_REFUND_GREATER_THAN_DATA_FLOOR] blockchain_tests/prague/eip7623_increase_calldata_cost/refunds/gas_refunds_from_data_floor.json,tests/prague/eip7623_increase_calldata_cost/test_refunds.py::test_gas_refunds_from_data_floor[fork_Prague-blockchain_test_from_state_test-refund_type_RefundType.AUTHORIZATION_EXISTING_AUTHORITY-refund_test_type_RefundTestType.EXECUTION_GAS_MINUS_REFUND_LESS_THAN_DATA_FLOOR] blockchain_tests/prague/eip7623_increase_calldata_cost/refunds/gas_refunds_from_data_floor.json,tests/prague/eip7623_increase_calldata_cost/test_refunds.py::test_gas_refunds_from_data_floor[fork_Prague-blockchain_test_from_state_test-refund_type_RefundType.AUTHORIZATION_EXISTING_AUTHORITY|STORAGE_CLEAR-refund_test_type_RefundTestType.EXECUTION_GAS_MINUS_REFUND_EQUAL_TO_DATA_FLOOR] blockchain_tests/prague/eip7623_increase_calldata_cost/refunds/gas_refunds_from_data_floor.json,tests/prague/eip7623_increase_calldata_cost/test_refunds.py::test_gas_refunds_from_data_floor[fork_Prague-blockchain_test_from_state_test-refund_type_RefundType.AUTHORIZATION_EXISTING_AUTHORITY|STORAGE_CLEAR-refund_test_type_RefundTestType.EXECUTION_GAS_MINUS_REFUND_GREATER_THAN_DATA_FLOOR] blockchain_tests/prague/eip7623_increase_calldata_cost/refunds/gas_refunds_from_data_floor.json,tests/prague/eip7623_increase_calldata_cost/test_refunds.py::test_gas_refunds_from_data_floor[fork_Prague-blockchain_test_from_state_test-refund_type_RefundType.AUTHORIZATION_EXISTING_AUTHORITY|STORAGE_CLEAR-refund_test_type_RefundTestType.EXECUTION_GAS_MINUS_REFUND_LESS_THAN_DATA_FLOOR] -blockchain_tests/prague/eip7623_increase_calldata_cost/refunds/gas_refunds_from_data_floor.json,tests/prague/eip7623_increase_calldata_cost/test_refunds.py::test_gas_refunds_from_data_floor[fork_Prague-blockchain_test_from_state_test-refund_type_RefundType.STORAGE_CLEAR-refund_test_type_RefundTestType.EXECUTION_GAS_MINUS_REFUND_LESS_THAN_DATA_FLOOR] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_0.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Prague-blockchain_test_from_state_test--type_0-protected-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_0.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Prague-blockchain_test_from_state_test--type_0-protected-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_0.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Prague-blockchain_test_from_state_test--type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_0.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Prague-blockchain_test_from_state_test--type_0-unprotected-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_0.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Prague-blockchain_test_from_state_test--type_0-unprotected-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_0.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Prague-blockchain_test_from_state_test--type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_no_storage_keys--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_no_storage_keys--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_single_storage_key--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_single_storage_key--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-no_access_list--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-no_access_list--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-no_access_list--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_multiple_storage_keys--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_multiple_storage_keys--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_no_storage_keys--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_no_storage_keys--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_single_storage_key--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_single_storage_key--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_1-single_access_list_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_no_storage_keys--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_no_storage_keys--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_single_storage_key--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_single_storage_key--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-no_access_list--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-no_access_list--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-no_access_list--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_multiple_storage_keys--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_multiple_storage_keys--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_no_storage_keys--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_no_storage_keys--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_single_storage_key--exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_single_storage_key--extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_1_type_2.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Prague-blockchain_test_from_state_test-type_2-single_access_list_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-no_access_list-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-no_access_list-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-no_access_list-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-no_access_list-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_single_storage_key-exact_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_single_storage_key-extra_gas-floor_gas_greater_than_intrinsic_gas] -blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_3.json,tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Prague-blockchain_test_from_state_test-type_3-single_blob-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas] blockchain_tests/prague/eip7623_increase_calldata_cost/transaction_validity/transaction_validity_type_4.json,* blockchain_tests/prague/eip7685_general_purpose_el_requests/multi_type_requests/invalid_deposit_withdrawal_consolidation_requests.json,* blockchain_tests/prague/eip7685_general_purpose_el_requests/multi_type_requests/valid_deposit_withdrawal_consolidation_request_from_same_tx.json,* @@ -1929,18 +1836,6 @@ blockchain_tests/prague/eip7702_set_code_tx/set_code_txs/tx_into_chain_delegatin blockchain_tests/prague/eip7702_set_code_tx/set_code_txs/tx_into_self_delegating_set_code.json,* blockchain_tests/prague/eip7702_set_code_tx/set_code_txs/valid_tx_invalid_auth_signature.json,* blockchain_tests/prague/eip7702_set_code_tx/set_code_txs/valid_tx_invalid_chain_id.json,* -blockchain_tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json,tests/shanghai/eip3860_initcode/test_initcode.py::test_contract_creating_tx[fork_Prague-blockchain_test_from_state_test-max_size_ones] -blockchain_tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json,tests/shanghai/eip3860_initcode/test_initcode.py::test_contract_creating_tx[fork_Prague-blockchain_test_from_state_test-max_size_zeros] -blockchain_tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json,tests/shanghai/eip3860_initcode/test_initcode.py::TestCreateInitcode::test_create_opcode_initcode[fork_Prague-blockchain_test_from_state_test-create-49120_bytes] -blockchain_tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json,tests/shanghai/eip3860_initcode/test_initcode.py::TestCreateInitcode::test_create_opcode_initcode[fork_Prague-blockchain_test_from_state_test-create-49121_bytes] -blockchain_tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json,tests/shanghai/eip3860_initcode/test_initcode.py::TestCreateInitcode::test_create_opcode_initcode[fork_Prague-blockchain_test_from_state_test-create-max_size_ones] -blockchain_tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json,tests/shanghai/eip3860_initcode/test_initcode.py::TestCreateInitcode::test_create_opcode_initcode[fork_Prague-blockchain_test_from_state_test-create-max_size_zeros] -blockchain_tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json,tests/shanghai/eip3860_initcode/test_initcode.py::TestCreateInitcode::test_create_opcode_initcode[fork_Prague-blockchain_test_from_state_test-create2-49120_bytes] -blockchain_tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json,tests/shanghai/eip3860_initcode/test_initcode.py::TestCreateInitcode::test_create_opcode_initcode[fork_Prague-blockchain_test_from_state_test-create2-49121_bytes] -blockchain_tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json,tests/shanghai/eip3860_initcode/test_initcode.py::TestCreateInitcode::test_create_opcode_initcode[fork_Prague-blockchain_test_from_state_test-create2-max_size_ones] -blockchain_tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json,tests/shanghai/eip3860_initcode/test_initcode.py::TestCreateInitcode::test_create_opcode_initcode[fork_Prague-blockchain_test_from_state_test-create2-max_size_zeros] -blockchain_tests/shanghai/eip3860_initcode/with_eof/legacy_create_edge_code_size.json,tests/shanghai/eip3860_initcode/test_with_eof.py::test_legacy_create_edge_code_size[fork_Prague-blockchain_test_from_state_test-max_initcode-opcode_CREATE] -blockchain_tests/shanghai/eip3860_initcode/with_eof/legacy_create_edge_code_size.json,tests/shanghai/eip3860_initcode/test_with_eof.py::test_legacy_create_edge_code_size[fork_Prague-blockchain_test_from_state_test-max_initcode-opcode_CREATE2] blockchain_tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json,tests/shanghai/eip4895_withdrawals/test_withdrawals.py::test_withdrawing_to_precompiles[fork_Prague-precompile_0x000000000000000000000000000000000000000b-blockchain_test-amount_0] blockchain_tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json,tests/shanghai/eip4895_withdrawals/test_withdrawals.py::test_withdrawing_to_precompiles[fork_Prague-precompile_0x000000000000000000000000000000000000000b-blockchain_test-amount_1] blockchain_tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json,tests/shanghai/eip4895_withdrawals/test_withdrawals.py::test_withdrawing_to_precompiles[fork_Prague-precompile_0x000000000000000000000000000000000000000c-blockchain_test-amount_0] From 234170f515739590de8c9357d4b44f1025fcff58 Mon Sep 17 00:00:00 2001 From: Andrei <16517508+anvacaru@users.noreply.github.com> Date: Fri, 9 May 2025 18:54:30 +0300 Subject: [PATCH 6/8] revert debug edits --- kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md index 0f0e517c91..4fe89e8f30 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/evm.md @@ -637,13 +637,13 @@ After executing a transaction, it's necessary to have the effect of the substate requires REFUND =/=Int 0 - rule #finalizeTx(false, GFLOOR) => #finalizeTx(true, GFLOOR) ... + rule #finalizeTx(false => true, GFLOOR) ... true SCHED BFEE ORG MINER - GAVAIL => minInt (GAVAIL, GLIMIT -Int GFLOOR) + GAVAIL GUSED => GUSED +Gas maxInt(GLIMIT -Int GAVAIL, GFLOOR) BLOB_GAS_USED => #if TXTYPE ==K Blob #then BLOB_GAS_USED +Int Ctotalblob(SCHED, size(TVH)) #else BLOB_GAS_USED #fi GPRICE @@ -668,7 +668,7 @@ After executing a transaction, it's necessary to have the effect of the substate requires ORG =/=Int MINER - rule #finalizeTx(false, GFLOOR) => #finalizeTx(true, GFLOOR) ... + rule #finalizeTx(false => true, GFLOOR) ... true SCHED BFEE From f88953160b1c82a33b55692cb1bd7d2bc6ab598c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20V=C4=83caru?= <16517508+anvacaru@users.noreply.github.com> Date: Fri, 9 May 2025 18:55:48 +0300 Subject: [PATCH 7/8] Update schedule.md --- kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md index 1d2e3b618b..44e1291d9b 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/schedule.md @@ -51,8 +51,7 @@ A `ScheduleConst` is a constant determined by the fee schedule. | "Gblockhash" | "Gquadcoeff" | "maxCodeSize" | "Rb" | "Gquaddivisor" | "Gecadd" | "Gecmul" | "Gecpairconst" | "Gecpaircoeff" | "Gfround" | "Gcoldsload" | "Gcoldaccountaccess" | "Gwarmstorageread" | "Gaccesslistaddress" | "Gaccessliststoragekey" | "Rmaxquotient" | "Ginitcodewordcost" | "maxInitCodeSize" | "Gwarmstoragedirtystore" - | "Gpointeval" | "Gtxdatafloor" | "Gpointeval" | "Gmaxblobgas" | "Gminbasefee" | "Gtargetblobgas" | "Gperblob" - | "Blobbasefeeupdatefraction" + | "Gpointeval" | "Gtxdatafloor" | "Gmaxblobgas" | "Gminbasefee" | "Gtargetblobgas" | "Gperblob" | "Blobbasefeeupdatefraction" // ---------------------------------------------------- ``` From e2847f2a7812dc0f383dc623b6a635c95fa4633c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20V=C4=83caru?= <16517508+anvacaru@users.noreply.github.com> Date: Fri, 4 Jul 2025 10:27:28 +0300 Subject: [PATCH 8/8] Update kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md Co-authored-by: Palina --- kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md index c2e60a149d..e3858ffb06 100644 --- a/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md +++ b/kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md @@ -164,7 +164,7 @@ To do so, we'll extend sort `JSON` with some EVM specific syntax, and provide a SCHED _ => #effectiveGasPrice(TXID) - _ => GLIMIT -Int G0(SCHED, DATA, false) + _ => GLIMIT -Int G0(SCHED, DATA, false) _ => ACCTFROM _ => -1 ListItem(TXID:Int) ...