core/vm: define cancun + enable 1153 (tstore/tload) in cancun (#27663)
This commit is contained in:
parent
c2db667c8f
commit
af8b138c1a
|
@ -83,6 +83,7 @@ func validate(jt JumpTable) JumpTable {
|
||||||
func newCancunInstructionSet() JumpTable {
|
func newCancunInstructionSet() JumpTable {
|
||||||
instructionSet := newShanghaiInstructionSet()
|
instructionSet := newShanghaiInstructionSet()
|
||||||
enable4844(&instructionSet) // BLOBHASH opcode
|
enable4844(&instructionSet) // BLOBHASH opcode
|
||||||
|
enable1153(&instructionSet) // EIP-1153 "Transient Storage"
|
||||||
return validate(instructionSet)
|
return validate(instructionSet)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,11 +27,11 @@ import (
|
||||||
func LookupInstructionSet(rules params.Rules) (JumpTable, error) {
|
func LookupInstructionSet(rules params.Rules) (JumpTable, error) {
|
||||||
switch {
|
switch {
|
||||||
case rules.IsVerkle:
|
case rules.IsVerkle:
|
||||||
return newShanghaiInstructionSet(), errors.New("verkle-fork not defined yet")
|
return newCancunInstructionSet(), errors.New("verkle-fork not defined yet")
|
||||||
case rules.IsPrague:
|
case rules.IsPrague:
|
||||||
return newShanghaiInstructionSet(), errors.New("prague-fork not defined yet")
|
return newCancunInstructionSet(), errors.New("prague-fork not defined yet")
|
||||||
case rules.IsCancun:
|
case rules.IsCancun:
|
||||||
return newShanghaiInstructionSet(), errors.New("cancun-fork not defined yet")
|
return newCancunInstructionSet(), nil
|
||||||
case rules.IsShanghai:
|
case rules.IsShanghai:
|
||||||
return newShanghaiInstructionSet(), nil
|
return newShanghaiInstructionSet(), nil
|
||||||
case rules.IsMerge:
|
case rules.IsMerge:
|
||||||
|
|
|
@ -299,6 +299,25 @@ var Forks = map[string]*params.ChainConfig{
|
||||||
TerminalTotalDifficulty: big.NewInt(0),
|
TerminalTotalDifficulty: big.NewInt(0),
|
||||||
ShanghaiTime: u64(15_000),
|
ShanghaiTime: u64(15_000),
|
||||||
},
|
},
|
||||||
|
"Cancun": {
|
||||||
|
ChainID: big.NewInt(1),
|
||||||
|
HomesteadBlock: big.NewInt(0),
|
||||||
|
EIP150Block: big.NewInt(0),
|
||||||
|
EIP155Block: big.NewInt(0),
|
||||||
|
EIP158Block: big.NewInt(0),
|
||||||
|
ByzantiumBlock: big.NewInt(0),
|
||||||
|
ConstantinopleBlock: big.NewInt(0),
|
||||||
|
PetersburgBlock: big.NewInt(0),
|
||||||
|
IstanbulBlock: big.NewInt(0),
|
||||||
|
MuirGlacierBlock: big.NewInt(0),
|
||||||
|
BerlinBlock: big.NewInt(0),
|
||||||
|
LondonBlock: big.NewInt(0),
|
||||||
|
ArrowGlacierBlock: big.NewInt(0),
|
||||||
|
MergeNetsplitBlock: big.NewInt(0),
|
||||||
|
TerminalTotalDifficulty: big.NewInt(0),
|
||||||
|
ShanghaiTime: u64(0),
|
||||||
|
CancunTime: u64(0),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// AvailableForks returns the set of defined fork names
|
// AvailableForks returns the set of defined fork names
|
||||||
|
|
Loading…
Reference in New Issue