mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
core/vm: enable bls-precompiles for Prague
This commit is contained in:
parent
f437307877
commit
115f0031c3
2 changed files with 13 additions and 3 deletions
|
|
@ -111,9 +111,9 @@ var PrecompiledContractsCancun = map[common.Address]PrecompiledContract{
|
|||
common.BytesToAddress([]byte{0x0a}): &kzgPointEvaluation{},
|
||||
}
|
||||
|
||||
// PrecompiledContractsBLS contains the set of pre-compiled Ethereum
|
||||
// contracts specified in EIP-2537. These are exported for testing purposes.
|
||||
var PrecompiledContractsBLS = map[common.Address]PrecompiledContract{
|
||||
// PrecompiledContractsPrague contains the set of pre-compiled Ethereum
|
||||
// contracts used in the Prague release.
|
||||
var PrecompiledContractsPrague = map[common.Address]PrecompiledContract{
|
||||
common.BytesToAddress([]byte{11}): &bls12381G1Add{},
|
||||
common.BytesToAddress([]byte{12}): &bls12381G1Mul{},
|
||||
common.BytesToAddress([]byte{13}): &bls12381G1MultiExp{},
|
||||
|
|
@ -125,7 +125,10 @@ var PrecompiledContractsBLS = map[common.Address]PrecompiledContract{
|
|||
common.BytesToAddress([]byte{19}): &bls12381MapG2{},
|
||||
}
|
||||
|
||||
var PrecompiledContractsBLS = PrecompiledContractsPrague
|
||||
|
||||
var (
|
||||
PrecompiledAddressesPrague []common.Address
|
||||
PrecompiledAddressesCancun []common.Address
|
||||
PrecompiledAddressesBerlin []common.Address
|
||||
PrecompiledAddressesIstanbul []common.Address
|
||||
|
|
@ -149,11 +152,16 @@ func init() {
|
|||
for k := range PrecompiledContractsCancun {
|
||||
PrecompiledAddressesCancun = append(PrecompiledAddressesCancun, k)
|
||||
}
|
||||
for k := range PrecompiledContractsPrague {
|
||||
PrecompiledAddressesPrague = append(PrecompiledAddressesPrague, k)
|
||||
}
|
||||
}
|
||||
|
||||
// ActivePrecompiles returns the precompiles enabled with the current configuration.
|
||||
func ActivePrecompiles(rules params.Rules) []common.Address {
|
||||
switch {
|
||||
case rules.IsPrague:
|
||||
return PrecompiledAddressesPrague
|
||||
case rules.IsCancun:
|
||||
return PrecompiledAddressesCancun
|
||||
case rules.IsBerlin:
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ type (
|
|||
func (evm *EVM) precompile(addr common.Address) (PrecompiledContract, bool) {
|
||||
var precompiles map[common.Address]PrecompiledContract
|
||||
switch {
|
||||
case evm.chainRules.IsPrague:
|
||||
precompiles = PrecompiledContractsPrague
|
||||
case evm.chainRules.IsCancun:
|
||||
precompiles = PrecompiledContractsCancun
|
||||
case evm.chainRules.IsBerlin:
|
||||
|
|
|
|||
Loading…
Reference in a new issue