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) ...