params: add tests for blobschedule validation

This commit is contained in:
Felix Lange 2025-07-24 12:57:32 +02:00
parent 336a2dab56
commit 7b5c1696e5
4 changed files with 80 additions and 3 deletions

View file

@ -55,13 +55,16 @@ var BlobSchedule = Define(T[map[forks.Fork]BlobConfig]{
// schedule configuration. // schedule configuration.
func validateBlobSchedule(schedule map[forks.Fork]BlobConfig, cfg *Config2) error { func validateBlobSchedule(schedule map[forks.Fork]BlobConfig, cfg *Config2) error {
for f := range forks.All() { for f := range forks.All() {
if cfg.Scheduled(f) && f.Requires(forks.Cancun) { if _, defined := schedule[f]; f.BlockBased() && defined {
return fmt.Errorf("contains fork %q with block-number based scheduling", f.ConfigName())
}
if cfg.Scheduled(f) && f.After(forks.Cancun) {
bcfg, defined := schedule[f] bcfg, defined := schedule[f]
if !defined { if !defined {
return fmt.Errorf("invalid chain configuration: missing entry for fork %q in blobSchedule", f) return fmt.Errorf("missing entry for fork %q", f.ConfigName())
} else { } else {
if err := bcfg.validate(); err != nil { if err := bcfg.validate(); err != nil {
return fmt.Errorf("invalid chain configuration in blobSchedule for fork %q: %v", f, err) return fmt.Errorf("invalid blob config for fork %q: %v", f.ConfigName(), err)
} }
} }
} }

View file

@ -0,0 +1,24 @@
{
"config": {
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"berlinBlock": 0,
"londonBlock": 0,
"mergeNetsplitBlock": 0,
"shanghaiTime": 900,
"chainId": 99,
"blobSchedule": {
"berlin": {
"target": 8,
"max": 5,
"baseFeeUpdateFraction": 3338477
}
}
},
"error": "invalid blobSchedule: contains fork \"berlin\" with block-number based scheduling"
}

View file

@ -0,0 +1,26 @@
{
"config": {
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"berlinBlock": 0,
"londonBlock": 0,
"mergeNetsplitBlock": 0,
"shanghaiTime": 900,
"cancunTime": 1000,
"pragueTime": 1100,
"chainId": 99,
"blobSchedule": {
"cancun": {
"target": 8,
"max": 5,
"baseFeeUpdateFraction": 3338477
}
}
},
"error": "invalid blobSchedule: missing entry for fork \"prague\""
}

View file

@ -0,0 +1,24 @@
{
"config": {
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"berlinBlock": 0,
"londonBlock": 0,
"mergeNetsplitBlock": 0,
"shanghaiTime": 900,
"cancunTime": 1000,
"chainId": 99,
"blobSchedule": {
"cancun": {
"target": 8,
"max": 10
}
}
},
"error": "invalid blobSchedule: invalid blob config for fork \"cancun\": update fraction must be defined and non-zero"
}