Skip to content

Commit ab95477

Browse files
build: update to execution-spec-tests v5.0.0 (#32592)
https://github.com/ethereum/execution-spec-tests/releases/tag/v5.0.0 As of this release, execution-spec-tests also contains all state tests that were previously in ethereum/tests. We can probably remove the tests submodule now. However, this would mean we are missing the pre-cancun tests. Still need to figure out how to resolve this. --------- Co-authored-by: MariusVanDerWijden <[email protected]>
1 parent 8a171dc commit ab95477

File tree

7 files changed

+293
-7
lines changed

7 files changed

+293
-7
lines changed

build/checksums.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# This file contains sha256 checksums of optional build dependencies.
22

3-
# version:spec-tests fusaka-devnet-3%40v1.0.0
3+
# version:spec-tests v5.0.0
44
# https://github.com/ethereum/execution-spec-tests/releases
5-
# https://github.com/ethereum/execution-spec-tests/releases/download/fusaka-devnet-3%40v1.0.0
6-
576261e1280e5300c458aa9b05eccb2fec5ff80a0005940dc52fa03fdd907249 fixtures_fusaka-devnet-3.tar.gz
5+
# https://github.com/ethereum/execution-spec-tests/releases/download/v5.0.0
6+
a5ed96800ca1af0d86fe2ee894861c24eea079bfb83b924f565bb86ba70021d5 fixtures_develop.tar.gz
77

88
# version:golang 1.25.1
99
# https://go.dev/dl/

build/ci.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ func doTest(cmdline []string) {
333333
// downloadSpecTestFixtures downloads and extracts the execution-spec-tests fixtures.
334334
func downloadSpecTestFixtures(csdb *download.ChecksumDB, cachedir string) string {
335335
ext := ".tar.gz"
336-
base := "fixtures_fusaka-devnet-3"
336+
base := "fixtures_develop"
337337
archivePath := filepath.Join(cachedir, base+ext)
338338
if err := csdb.DownloadFileFromKnownURL(archivePath); err != nil {
339339
log.Fatal(err)

core/genesis.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,11 @@ func (g *Genesis) toBlockWithRoot(root common.Hash) *types.Block {
514514
if head.BlobGasUsed == nil {
515515
head.BlobGasUsed = new(uint64)
516516
}
517+
} else {
518+
if g.ExcessBlobGas != nil {
519+
log.Warn("Invalid genesis, unexpected ExcessBlobGas set before Cancun, allowing it for testing purposes")
520+
head.ExcessBlobGas = g.ExcessBlobGas
521+
}
517522
}
518523
if conf.IsPrague(num, g.Timestamp) {
519524
head.RequestsHash = &types.EmptyRequestsHash

params/config.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,30 @@ var (
359359
Max: 9,
360360
UpdateFraction: 5007716,
361361
}
362+
// DefaultBPO1BlobConfig is the default blob configuration for the Osaka fork.
363+
DefaultBPO1BlobConfig = &BlobConfig{
364+
Target: 9,
365+
Max: 14,
366+
UpdateFraction: 8832827,
367+
}
368+
// DefaultBPO1BlobConfig is the default blob configuration for the Osaka fork.
369+
DefaultBPO2BlobConfig = &BlobConfig{
370+
Target: 14,
371+
Max: 21,
372+
UpdateFraction: 13739630,
373+
}
374+
// DefaultBPO1BlobConfig is the default blob configuration for the Osaka fork.
375+
DefaultBPO3BlobConfig = &BlobConfig{
376+
Target: 21,
377+
Max: 32,
378+
UpdateFraction: 20609697,
379+
}
380+
// DefaultBPO1BlobConfig is the default blob configuration for the Osaka fork.
381+
DefaultBPO4BlobConfig = &BlobConfig{
382+
Target: 14,
383+
Max: 21,
384+
UpdateFraction: 13739630,
385+
}
362386
// DefaultBlobSchedule is the latest configured blob schedule for Ethereum mainnet.
363387
DefaultBlobSchedule = &BlobScheduleConfig{
364388
Cancun: DefaultCancunBlobConfig,

tests/block_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ func TestExecutionSpecBlocktests(t *testing.T) {
8181
}
8282
bt := new(testMatcher)
8383

84-
bt.skipLoad(".*prague/eip7251_consolidations/contract_deployment/system_contract_deployment.json")
85-
bt.skipLoad(".*prague/eip7002_el_triggerable_withdrawals/contract_deployment/system_contract_deployment.json")
84+
// These tests require us to handle scenarios where a system contract is not deployed at a fork
85+
bt.skipLoad(".*prague/eip7251_consolidations/test_system_contract_deployment.json")
86+
bt.skipLoad(".*prague/eip7002_el_triggerable_withdrawals/test_system_contract_deployment.json")
8687

8788
bt.walk(t, executionSpecBlockchainTestDir, func(t *testing.T, name string, test *BlockTest) {
8889
execBlockTest(t, bt, test)

tests/init.go

Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,262 @@ var Forks = map[string]*params.ChainConfig{
464464
Osaka: params.DefaultOsakaBlobConfig,
465465
},
466466
},
467+
"BPO1": {
468+
ChainID: big.NewInt(1),
469+
HomesteadBlock: big.NewInt(0),
470+
EIP150Block: big.NewInt(0),
471+
EIP155Block: big.NewInt(0),
472+
EIP158Block: big.NewInt(0),
473+
ByzantiumBlock: big.NewInt(0),
474+
ConstantinopleBlock: big.NewInt(0),
475+
PetersburgBlock: big.NewInt(0),
476+
IstanbulBlock: big.NewInt(0),
477+
MuirGlacierBlock: big.NewInt(0),
478+
BerlinBlock: big.NewInt(0),
479+
LondonBlock: big.NewInt(0),
480+
ArrowGlacierBlock: big.NewInt(0),
481+
MergeNetsplitBlock: big.NewInt(0),
482+
TerminalTotalDifficulty: big.NewInt(0),
483+
ShanghaiTime: u64(0),
484+
CancunTime: u64(0),
485+
PragueTime: u64(0),
486+
OsakaTime: u64(0),
487+
BPO1Time: u64(0),
488+
DepositContractAddress: params.MainnetChainConfig.DepositContractAddress,
489+
BlobScheduleConfig: &params.BlobScheduleConfig{
490+
Cancun: params.DefaultCancunBlobConfig,
491+
Prague: params.DefaultPragueBlobConfig,
492+
Osaka: params.DefaultOsakaBlobConfig,
493+
BPO1: params.DefaultBPO1BlobConfig,
494+
},
495+
},
496+
"OsakaToBPO1AtTime15k": {
497+
ChainID: big.NewInt(1),
498+
HomesteadBlock: big.NewInt(0),
499+
EIP150Block: big.NewInt(0),
500+
EIP155Block: big.NewInt(0),
501+
EIP158Block: big.NewInt(0),
502+
ByzantiumBlock: big.NewInt(0),
503+
ConstantinopleBlock: big.NewInt(0),
504+
PetersburgBlock: big.NewInt(0),
505+
IstanbulBlock: big.NewInt(0),
506+
MuirGlacierBlock: big.NewInt(0),
507+
BerlinBlock: big.NewInt(0),
508+
LondonBlock: big.NewInt(0),
509+
ArrowGlacierBlock: big.NewInt(0),
510+
MergeNetsplitBlock: big.NewInt(0),
511+
TerminalTotalDifficulty: big.NewInt(0),
512+
ShanghaiTime: u64(0),
513+
CancunTime: u64(0),
514+
PragueTime: u64(0),
515+
OsakaTime: u64(0),
516+
BPO1Time: u64(15_000),
517+
DepositContractAddress: params.MainnetChainConfig.DepositContractAddress,
518+
BlobScheduleConfig: &params.BlobScheduleConfig{
519+
Cancun: params.DefaultCancunBlobConfig,
520+
Prague: params.DefaultPragueBlobConfig,
521+
Osaka: params.DefaultOsakaBlobConfig,
522+
BPO1: params.DefaultBPO1BlobConfig,
523+
},
524+
},
525+
"BPO2": {
526+
ChainID: big.NewInt(1),
527+
HomesteadBlock: big.NewInt(0),
528+
EIP150Block: big.NewInt(0),
529+
EIP155Block: big.NewInt(0),
530+
EIP158Block: big.NewInt(0),
531+
ByzantiumBlock: big.NewInt(0),
532+
ConstantinopleBlock: big.NewInt(0),
533+
PetersburgBlock: big.NewInt(0),
534+
IstanbulBlock: big.NewInt(0),
535+
MuirGlacierBlock: big.NewInt(0),
536+
BerlinBlock: big.NewInt(0),
537+
LondonBlock: big.NewInt(0),
538+
ArrowGlacierBlock: big.NewInt(0),
539+
MergeNetsplitBlock: big.NewInt(0),
540+
TerminalTotalDifficulty: big.NewInt(0),
541+
ShanghaiTime: u64(0),
542+
CancunTime: u64(0),
543+
PragueTime: u64(0),
544+
OsakaTime: u64(0),
545+
BPO1Time: u64(0),
546+
BPO2Time: u64(0),
547+
DepositContractAddress: params.MainnetChainConfig.DepositContractAddress,
548+
BlobScheduleConfig: &params.BlobScheduleConfig{
549+
Cancun: params.DefaultCancunBlobConfig,
550+
Prague: params.DefaultPragueBlobConfig,
551+
Osaka: params.DefaultOsakaBlobConfig,
552+
BPO1: params.DefaultBPO1BlobConfig,
553+
BPO2: params.DefaultBPO2BlobConfig,
554+
},
555+
},
556+
"BPO1ToBPO2AtTime15k": {
557+
ChainID: big.NewInt(1),
558+
HomesteadBlock: big.NewInt(0),
559+
EIP150Block: big.NewInt(0),
560+
EIP155Block: big.NewInt(0),
561+
EIP158Block: big.NewInt(0),
562+
ByzantiumBlock: big.NewInt(0),
563+
ConstantinopleBlock: big.NewInt(0),
564+
PetersburgBlock: big.NewInt(0),
565+
IstanbulBlock: big.NewInt(0),
566+
MuirGlacierBlock: big.NewInt(0),
567+
BerlinBlock: big.NewInt(0),
568+
LondonBlock: big.NewInt(0),
569+
ArrowGlacierBlock: big.NewInt(0),
570+
MergeNetsplitBlock: big.NewInt(0),
571+
TerminalTotalDifficulty: big.NewInt(0),
572+
ShanghaiTime: u64(0),
573+
CancunTime: u64(0),
574+
PragueTime: u64(0),
575+
OsakaTime: u64(0),
576+
BPO1Time: u64(0),
577+
BPO2Time: u64(15_000),
578+
DepositContractAddress: params.MainnetChainConfig.DepositContractAddress,
579+
BlobScheduleConfig: &params.BlobScheduleConfig{
580+
Cancun: params.DefaultCancunBlobConfig,
581+
Prague: params.DefaultPragueBlobConfig,
582+
Osaka: params.DefaultOsakaBlobConfig,
583+
BPO1: params.DefaultBPO1BlobConfig,
584+
BPO2: params.DefaultBPO2BlobConfig,
585+
},
586+
},
587+
"BPO3": {
588+
ChainID: big.NewInt(1),
589+
HomesteadBlock: big.NewInt(0),
590+
EIP150Block: big.NewInt(0),
591+
EIP155Block: big.NewInt(0),
592+
EIP158Block: big.NewInt(0),
593+
ByzantiumBlock: big.NewInt(0),
594+
ConstantinopleBlock: big.NewInt(0),
595+
PetersburgBlock: big.NewInt(0),
596+
IstanbulBlock: big.NewInt(0),
597+
MuirGlacierBlock: big.NewInt(0),
598+
BerlinBlock: big.NewInt(0),
599+
LondonBlock: big.NewInt(0),
600+
ArrowGlacierBlock: big.NewInt(0),
601+
MergeNetsplitBlock: big.NewInt(0),
602+
TerminalTotalDifficulty: big.NewInt(0),
603+
ShanghaiTime: u64(0),
604+
CancunTime: u64(0),
605+
PragueTime: u64(0),
606+
OsakaTime: u64(0),
607+
BPO1Time: u64(0),
608+
BPO2Time: u64(0),
609+
BPO3Time: u64(0),
610+
DepositContractAddress: params.MainnetChainConfig.DepositContractAddress,
611+
BlobScheduleConfig: &params.BlobScheduleConfig{
612+
Cancun: params.DefaultCancunBlobConfig,
613+
Prague: params.DefaultPragueBlobConfig,
614+
Osaka: params.DefaultOsakaBlobConfig,
615+
BPO1: params.DefaultBPO1BlobConfig,
616+
BPO2: params.DefaultBPO2BlobConfig,
617+
BPO3: params.DefaultBPO3BlobConfig,
618+
},
619+
},
620+
"BPO2ToBPO3AtTime15k": {
621+
ChainID: big.NewInt(1),
622+
HomesteadBlock: big.NewInt(0),
623+
EIP150Block: big.NewInt(0),
624+
EIP155Block: big.NewInt(0),
625+
EIP158Block: big.NewInt(0),
626+
ByzantiumBlock: big.NewInt(0),
627+
ConstantinopleBlock: big.NewInt(0),
628+
PetersburgBlock: big.NewInt(0),
629+
IstanbulBlock: big.NewInt(0),
630+
MuirGlacierBlock: big.NewInt(0),
631+
BerlinBlock: big.NewInt(0),
632+
LondonBlock: big.NewInt(0),
633+
ArrowGlacierBlock: big.NewInt(0),
634+
MergeNetsplitBlock: big.NewInt(0),
635+
TerminalTotalDifficulty: big.NewInt(0),
636+
ShanghaiTime: u64(0),
637+
CancunTime: u64(0),
638+
PragueTime: u64(0),
639+
OsakaTime: u64(0),
640+
BPO1Time: u64(0),
641+
BPO2Time: u64(0),
642+
BPO3Time: u64(15_000),
643+
DepositContractAddress: params.MainnetChainConfig.DepositContractAddress,
644+
BlobScheduleConfig: &params.BlobScheduleConfig{
645+
Cancun: params.DefaultCancunBlobConfig,
646+
Prague: params.DefaultPragueBlobConfig,
647+
Osaka: params.DefaultOsakaBlobConfig,
648+
BPO1: params.DefaultBPO1BlobConfig,
649+
BPO2: params.DefaultBPO2BlobConfig,
650+
BPO3: params.DefaultBPO3BlobConfig,
651+
},
652+
},
653+
"BPO4": {
654+
ChainID: big.NewInt(1),
655+
HomesteadBlock: big.NewInt(0),
656+
EIP150Block: big.NewInt(0),
657+
EIP155Block: big.NewInt(0),
658+
EIP158Block: big.NewInt(0),
659+
ByzantiumBlock: big.NewInt(0),
660+
ConstantinopleBlock: big.NewInt(0),
661+
PetersburgBlock: big.NewInt(0),
662+
IstanbulBlock: big.NewInt(0),
663+
MuirGlacierBlock: big.NewInt(0),
664+
BerlinBlock: big.NewInt(0),
665+
LondonBlock: big.NewInt(0),
666+
ArrowGlacierBlock: big.NewInt(0),
667+
MergeNetsplitBlock: big.NewInt(0),
668+
TerminalTotalDifficulty: big.NewInt(0),
669+
ShanghaiTime: u64(0),
670+
CancunTime: u64(0),
671+
PragueTime: u64(0),
672+
OsakaTime: u64(0),
673+
BPO1Time: u64(0),
674+
BPO2Time: u64(0),
675+
BPO3Time: u64(0),
676+
BPO4Time: u64(0),
677+
DepositContractAddress: params.MainnetChainConfig.DepositContractAddress,
678+
BlobScheduleConfig: &params.BlobScheduleConfig{
679+
Cancun: params.DefaultCancunBlobConfig,
680+
Prague: params.DefaultPragueBlobConfig,
681+
Osaka: params.DefaultOsakaBlobConfig,
682+
BPO1: params.DefaultBPO1BlobConfig,
683+
BPO2: params.DefaultBPO2BlobConfig,
684+
BPO3: params.DefaultBPO3BlobConfig,
685+
BPO4: params.DefaultBPO4BlobConfig,
686+
},
687+
},
688+
"BPO3ToBPO4AtTime15k": {
689+
ChainID: big.NewInt(1),
690+
HomesteadBlock: big.NewInt(0),
691+
EIP150Block: big.NewInt(0),
692+
EIP155Block: big.NewInt(0),
693+
EIP158Block: big.NewInt(0),
694+
ByzantiumBlock: big.NewInt(0),
695+
ConstantinopleBlock: big.NewInt(0),
696+
PetersburgBlock: big.NewInt(0),
697+
IstanbulBlock: big.NewInt(0),
698+
MuirGlacierBlock: big.NewInt(0),
699+
BerlinBlock: big.NewInt(0),
700+
LondonBlock: big.NewInt(0),
701+
ArrowGlacierBlock: big.NewInt(0),
702+
MergeNetsplitBlock: big.NewInt(0),
703+
TerminalTotalDifficulty: big.NewInt(0),
704+
ShanghaiTime: u64(0),
705+
CancunTime: u64(0),
706+
PragueTime: u64(0),
707+
OsakaTime: u64(0),
708+
BPO1Time: u64(0),
709+
BPO2Time: u64(0),
710+
BPO3Time: u64(0),
711+
BPO4Time: u64(15_000),
712+
DepositContractAddress: params.MainnetChainConfig.DepositContractAddress,
713+
BlobScheduleConfig: &params.BlobScheduleConfig{
714+
Cancun: params.DefaultCancunBlobConfig,
715+
Prague: params.DefaultPragueBlobConfig,
716+
Osaka: params.DefaultOsakaBlobConfig,
717+
BPO1: params.DefaultBPO1BlobConfig,
718+
BPO2: params.DefaultBPO2BlobConfig,
719+
BPO3: params.DefaultBPO3BlobConfig,
720+
BPO4: params.DefaultBPO4BlobConfig,
721+
},
722+
},
467723
}
468724

469725
// AvailableForks returns the set of defined fork names

tests/transaction_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func TestExecutionSpecTransaction(t *testing.T) {
7070
st := new(testMatcher)
7171

7272
// Emptiness of authorization list is only validated during the tx precheck
73-
st.skipLoad("^prague/eip7702_set_code_tx/invalid_tx/empty_authorization_list.json")
73+
st.skipLoad("^prague/eip7702_set_code_tx/test_empty_authorization_list.json")
7474

7575
st.walk(t, executionSpecTransactionTestDir, func(t *testing.T, name string, test *TransactionTest) {
7676
if err := st.checkFailure(t, test.Run()); err != nil {

0 commit comments

Comments
 (0)