safer api for getting active precompiles

This commit is contained in:
Sina Mahmoodi 2023-12-14 18:22:55 +03:30
parent 7fff1c40ef
commit bf7809495f
2 changed files with 7 additions and 3 deletions

View file

@ -159,8 +159,7 @@ func (p PrecompiledContracts) Copy() PrecompiledContracts {
return c return c
} }
// ActivePrecompiledContracts returns precompiled contracts enabled with the current configuration. func activePrecompiledContracts(rules params.Rules) PrecompiledContracts {
func ActivePrecompiledContracts(rules params.Rules) PrecompiledContracts {
switch { switch {
case rules.IsCancun: case rules.IsCancun:
return PrecompiledContractsCancun return PrecompiledContractsCancun
@ -175,6 +174,11 @@ func ActivePrecompiledContracts(rules params.Rules) PrecompiledContracts {
} }
} }
// ActivePrecompiledContracts returns a copy of precompiled contracts enabled with the current configuration.
func ActivePrecompiledContracts(rules params.Rules) PrecompiledContracts {
return activePrecompiledContracts(rules).Copy()
}
// ActivePrecompiles returns the precompile addresses enabled with the current configuration. // ActivePrecompiles returns the precompile addresses enabled with the current configuration.
func ActivePrecompiles(rules params.Rules) []common.Address { func ActivePrecompiles(rules params.Rules) []common.Address {
switch { switch {

View file

@ -134,7 +134,7 @@ func NewEVM(blockCtx BlockContext, txCtx TxContext, statedb StateDB, chainConfig
chainConfig: chainConfig, chainConfig: chainConfig,
chainRules: chainConfig.Rules(blockCtx.BlockNumber, blockCtx.Random != nil, blockCtx.Time), chainRules: chainConfig.Rules(blockCtx.BlockNumber, blockCtx.Random != nil, blockCtx.Time),
} }
evm.precompiles = ActivePrecompiledContracts(evm.chainRules) evm.precompiles = activePrecompiledContracts(evm.chainRules)
evm.interpreter = NewEVMInterpreter(evm) evm.interpreter = NewEVMInterpreter(evm)
return evm return evm
} }