Skip to content

Commit

Permalink
refactor: params.ChainConfigExtra & RulesExtra -> params/extras (core…
Browse files Browse the repository at this point in the history
…th a7f7061) (#1430)
  • Loading branch information
darioush authored Feb 4, 2025
1 parent 4b8f1dc commit 0d522e7
Show file tree
Hide file tree
Showing 32 changed files with 559 additions and 512 deletions.
5 changes: 3 additions & 2 deletions core/blockchain_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"github.com/ava-labs/subnet-evm/core/state/pruner"
"github.com/ava-labs/subnet-evm/core/types"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/holiman/uint256"
)

Expand Down Expand Up @@ -315,7 +316,7 @@ func testRepopulateMissingTriesParallel(t *testing.T, parallelism int) {
gspec := &Genesis{
Config: params.WithExtra(
&params.ChainConfig{HomesteadBlock: new(big.Int)},
&params.ChainConfigExtra{FeeConfig: params.DefaultFeeConfig},
&extras.ChainConfig{FeeConfig: params.DefaultFeeConfig},
),
Alloc: types.GenesisAlloc{addr1: {Balance: genesisBalance}},
}
Expand Down Expand Up @@ -431,7 +432,7 @@ func TestUngracefulAsyncShutdown(t *testing.T) {
gspec := &Genesis{
Config: params.WithExtra(
&params.ChainConfig{HomesteadBlock: new(big.Int)},
&params.ChainConfigExtra{FeeConfig: params.DefaultFeeConfig},
&extras.ChainConfig{FeeConfig: params.DefaultFeeConfig},
),
Alloc: types.GenesisAlloc{addr1: {Balance: genesisBalance}},
}
Expand Down
7 changes: 4 additions & 3 deletions core/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import (
"github.com/ava-labs/subnet-evm/core/state"
"github.com/ava-labs/subnet-evm/core/types"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/ava-labs/subnet-evm/precompile/allowlist"
"github.com/ava-labs/subnet-evm/precompile/contracts/deployerallowlist"
"github.com/ava-labs/subnet-evm/triedb/pathdb"
Expand Down Expand Up @@ -209,7 +210,7 @@ func TestStatefulPrecompilesConfigure(t *testing.T) {
"allow list enabled in genesis": {
getConfig: func() *params.ChainConfig {
config := params.Copy(params.TestChainConfig)
params.GetExtra(&config).GenesisPrecompiles = params.Precompiles{
params.GetExtra(&config).GenesisPrecompiles = extras.Precompiles{
deployerallowlist.ConfigKey: deployerallowlist.NewConfig(utils.NewUint64(0), []common.Address{addr}, nil, nil),
}
return &config
Expand Down Expand Up @@ -285,7 +286,7 @@ func TestPrecompileActivationAfterHeaderBlock(t *testing.T) {

activatedGenesisConfig := params.Copy(customg.Config)
contractDeployerConfig := deployerallowlist.NewConfig(utils.NewUint64(51), nil, nil, nil)
params.GetExtra(&activatedGenesisConfig).UpgradeConfig.PrecompileUpgrades = []params.PrecompileUpgrade{
params.GetExtra(&activatedGenesisConfig).UpgradeConfig.PrecompileUpgrades = []extras.PrecompileUpgrade{
{
Config: contractDeployerConfig,
},
Expand Down Expand Up @@ -323,7 +324,7 @@ func TestGenesisWriteUpgradesRegression(t *testing.T) {
_, _, err := SetupGenesisBlock(db, trieDB, genesis, genesisBlock.Hash(), false)
require.NoError(err)

params.GetExtra(genesis.Config).UpgradeConfig.PrecompileUpgrades = []params.PrecompileUpgrade{
params.GetExtra(genesis.Config).UpgradeConfig.PrecompileUpgrades = []extras.PrecompileUpgrade{
{
Config: deployerallowlist.NewConfig(utils.NewUint64(51), nil, nil, nil),
},
Expand Down
9 changes: 5 additions & 4 deletions core/state_processor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import (
"github.com/ava-labs/subnet-evm/core/rawdb"
"github.com/ava-labs/subnet-evm/core/types"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/ava-labs/subnet-evm/precompile/contracts/txallowlist"
"github.com/ava-labs/subnet-evm/utils"
"github.com/holiman/uint256"
Expand Down Expand Up @@ -271,7 +272,7 @@ func TestStateProcessorErrors(t *testing.T) {
IstanbulBlock: big.NewInt(0),
MuirGlacierBlock: big.NewInt(0),
},
&params.ChainConfigExtra{FeeConfig: params.DefaultFeeConfig},
&extras.ChainConfig{FeeConfig: params.DefaultFeeConfig},
),
Alloc: types.GenesisAlloc{
common.HexToAddress("0x71562b71999873DB5b286dF957af199Ec94617F7"): types.Account{
Expand Down Expand Up @@ -370,12 +371,12 @@ func TestBadTxAllowListBlock(t *testing.T) {
BerlinBlock: big.NewInt(0),
LondonBlock: big.NewInt(0),
},
&params.ChainConfigExtra{
&extras.ChainConfig{
FeeConfig: params.DefaultFeeConfig,
NetworkUpgrades: params.NetworkUpgrades{
NetworkUpgrades: extras.NetworkUpgrades{
SubnetEVMTimestamp: utils.NewUint64(0),
},
GenesisPrecompiles: params.Precompiles{
GenesisPrecompiles: extras.Precompiles{
txallowlist.ConfigKey: txallowlist.NewConfig(utils.NewUint64(0), nil, nil, nil),
},
},
Expand Down
3 changes: 2 additions & 1 deletion core/test_blockchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
"github.com/ava-labs/subnet-evm/core/state"
"github.com/ava-labs/subnet-evm/core/types"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/ava-labs/subnet-evm/precompile/allowlist"
"github.com/ava-labs/subnet-evm/precompile/contracts/deployerallowlist"
"github.com/ava-labs/subnet-evm/precompile/contracts/feemanager"
Expand Down Expand Up @@ -1485,7 +1486,7 @@ func TestStatefulPrecompiles(t *testing.T, create func(db ethdb.Database, gspec
genesisBalance := new(big.Int).Mul(big.NewInt(1000000), big.NewInt(params.Ether))
config := params.Copy(params.TestChainConfig)
// Set all of the required config parameters
params.GetExtra(&config).GenesisPrecompiles = params.Precompiles{
params.GetExtra(&config).GenesisPrecompiles = extras.Precompiles{
deployerallowlist.ConfigKey: deployerallowlist.NewConfig(utils.NewUint64(0), []common.Address{addr1}, nil, nil),
feemanager.ConfigKey: feemanager.NewConfig(utils.NewUint64(0), []common.Address{addr1}, nil, nil, nil),
}
Expand Down
5 changes: 3 additions & 2 deletions core/vm/runtime/runtime.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import (
"github.com/ava-labs/subnet-evm/core/state"
"github.com/ava-labs/subnet-evm/core/types"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/holiman/uint256"
)

Expand Down Expand Up @@ -82,8 +83,8 @@ func setDefaults(cfg *Config) {
BerlinBlock: new(big.Int),
LondonBlock: new(big.Int),
},
&params.ChainConfigExtra{
NetworkUpgrades: params.NetworkUpgrades{
&extras.ChainConfig{
NetworkUpgrades: extras.NetworkUpgrades{
SubnetEVMTimestamp: new(uint64),
},
},
Expand Down
3 changes: 2 additions & 1 deletion eth/gasprice/gasprice_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import (
"github.com/ava-labs/subnet-evm/core/rawdb"
"github.com/ava-labs/subnet-evm/core/types"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/ava-labs/subnet-evm/precompile/contracts/feemanager"
"github.com/ava-labs/subnet-evm/rpc"
"github.com/ava-labs/subnet-evm/utils"
Expand Down Expand Up @@ -392,7 +393,7 @@ func TestSuggestGasPriceAfterFeeConfigUpdate(t *testing.T) {
// create a chain config with fee manager enabled at genesis with [addr] as the admin
chainConfig := params.Copy(params.TestChainConfig)
chainConfigExtra := params.GetExtra(&chainConfig)
chainConfigExtra.GenesisPrecompiles = params.Precompiles{
chainConfigExtra.GenesisPrecompiles = extras.Precompiles{
feemanager.ConfigKey: feemanager.NewConfig(utils.NewUint64(0), []common.Address{addr}, nil, nil, nil),
}

Expand Down
25 changes: 13 additions & 12 deletions eth/tracers/api_extra_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"github.com/ava-labs/subnet-evm/core/types"
"github.com/ava-labs/subnet-evm/internal/ethapi"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/ava-labs/subnet-evm/precompile/contracts/txallowlist"
"github.com/ava-labs/subnet-evm/rpc"
"github.com/stretchr/testify/require"
Expand All @@ -42,17 +43,17 @@ func TestTraceBlockPrecompileActivation(t *testing.T) {
activateAllowlistBlock := 3
// assumes gap is 10 sec
activateAllowListTime := uint64(activateAllowlistBlock * 10)
activateTxAllowListConfig := params.PrecompileUpgrade{
activateTxAllowListConfig := extras.PrecompileUpgrade{
Config: txallowlist.NewConfig(&activateAllowListTime, []common.Address{accounts[0].addr}, nil, nil),
}

deactivateAllowlistBlock := activateAllowlistBlock + 3
deactivateAllowListTime := uint64(deactivateAllowlistBlock) * 10
deactivateTxAllowListConfig := params.PrecompileUpgrade{
deactivateTxAllowListConfig := extras.PrecompileUpgrade{
Config: txallowlist.NewDisableConfig(&deactivateAllowListTime),
}

params.GetExtra(genesis.Config).PrecompileUpgrades = []params.PrecompileUpgrade{
params.GetExtra(genesis.Config).PrecompileUpgrades = []extras.PrecompileUpgrade{
activateTxAllowListConfig,
deactivateTxAllowListConfig,
}
Expand Down Expand Up @@ -148,17 +149,17 @@ func TestTraceTransactionPrecompileActivation(t *testing.T) {
activateAllowlistBlock := uint64(2)
// assumes gap is 10 sec
activateAllowListTime := activateAllowlistBlock * 10
activateTxAllowListConfig := params.PrecompileUpgrade{
activateTxAllowListConfig := extras.PrecompileUpgrade{
Config: txallowlist.NewConfig(&activateAllowListTime, []common.Address{accounts[0].addr}, nil, nil),
}

deactivateAllowlistBlock := activateAllowlistBlock + 2
deactivateAllowListTime := deactivateAllowlistBlock * 10
deactivateTxAllowListConfig := params.PrecompileUpgrade{
deactivateTxAllowListConfig := extras.PrecompileUpgrade{
Config: txallowlist.NewDisableConfig(&deactivateAllowListTime),
}

params.GetExtra(genesis.Config).PrecompileUpgrades = []params.PrecompileUpgrade{
params.GetExtra(genesis.Config).PrecompileUpgrades = []extras.PrecompileUpgrade{
activateTxAllowListConfig,
deactivateTxAllowListConfig,
}
Expand Down Expand Up @@ -212,17 +213,17 @@ func TestTraceChainPrecompileActivation(t *testing.T) {
activateAllowlistBlock := uint64(20)
// assumes gap is 10 sec
activateAllowListTime := activateAllowlistBlock * 10
activateTxAllowListConfig := params.PrecompileUpgrade{
activateTxAllowListConfig := extras.PrecompileUpgrade{
Config: txallowlist.NewConfig(&activateAllowListTime, []common.Address{accounts[0].addr}, nil, nil),
}

deactivateAllowlistBlock := activateAllowlistBlock + 10
deactivateAllowListTime := deactivateAllowlistBlock * 10
deactivateTxAllowListConfig := params.PrecompileUpgrade{
deactivateTxAllowListConfig := extras.PrecompileUpgrade{
Config: txallowlist.NewDisableConfig(&deactivateAllowListTime),
}

params.GetExtra(genesis.Config).PrecompileUpgrades = []params.PrecompileUpgrade{
params.GetExtra(genesis.Config).PrecompileUpgrades = []extras.PrecompileUpgrade{
activateTxAllowListConfig,
deactivateTxAllowListConfig,
}
Expand Down Expand Up @@ -309,17 +310,17 @@ func TestTraceCallWithOverridesStateUpgrade(t *testing.T) {
activateStateUpgradeBlock := uint64(2)
// assumes gap is 10 sec
activateStateUpgradeTime := activateStateUpgradeBlock * 10
activateStateUpgradeConfig := params.StateUpgrade{
activateStateUpgradeConfig := extras.StateUpgrade{
BlockTimestamp: &activateStateUpgradeTime,
StateUpgradeAccounts: map[common.Address]params.StateUpgradeAccount{
StateUpgradeAccounts: map[common.Address]extras.StateUpgradeAccount{
accounts[2].addr: {
// deplete all balance
BalanceChange: (*math.HexOrDecimal256)(new(big.Int).Neg(big.NewInt(5 * params.Ether))),
},
},
}

params.GetExtra(genesis.Config).StateUpgrades = []params.StateUpgrade{
params.GetExtra(genesis.Config).StateUpgrades = []extras.StateUpgrade{
activateStateUpgradeConfig,
}
genBlocks := 3
Expand Down
5 changes: 3 additions & 2 deletions internal/ethapi/api_extra.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/ava-labs/subnet-evm/core"
"github.com/ava-labs/subnet-evm/core/types"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/ava-labs/subnet-evm/rpc"
)

Expand Down Expand Up @@ -123,7 +124,7 @@ func (s *BlockChainAPI) FeeConfig(ctx context.Context, blockNrOrHash *rpc.BlockN

// GetActivePrecompilesAt returns the active precompile configs at the given block timestamp.
// DEPRECATED: Use GetActiveRulesAt instead.
func (s *BlockChainAPI) GetActivePrecompilesAt(ctx context.Context, blockTimestamp *uint64) params.Precompiles {
func (s *BlockChainAPI) GetActivePrecompilesAt(ctx context.Context, blockTimestamp *uint64) extras.Precompiles {
var timestamp uint64
if blockTimestamp == nil {
timestamp = s.b.CurrentHeader().Time
Expand All @@ -140,7 +141,7 @@ type ActivePrecompilesResult struct {

type ActiveRulesResult struct {
EthRules params.Rules `json:"ethRules"`
AvalancheRules params.AvalancheRules `json:"avalancheRules"`
AvalancheRules extras.AvalancheRules `json:"avalancheRules"`
ActivePrecompiles map[string]ActivePrecompilesResult `json:"precompiles"`
}

Expand Down
56 changes: 25 additions & 31 deletions params/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import (
"github.com/ava-labs/avalanchego/upgrade"
"github.com/ava-labs/avalanchego/utils/constants"
ethparams "github.com/ava-labs/libevm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/ava-labs/subnet-evm/utils"
)

Expand All @@ -55,11 +56,11 @@ var (
IstanbulBlock: big.NewInt(0),
MuirGlacierBlock: big.NewInt(0),
},
&ChainConfigExtra{
&extras.ChainConfig{
FeeConfig: DefaultFeeConfig,
AllowFeeRecipients: false,
NetworkUpgrades: getDefaultNetworkUpgrades(upgrade.GetConfig(constants.MainnetID)), // This can be changed to correct network (local, test) via VM.
GenesisPrecompiles: Precompiles{},
NetworkUpgrades: extras.GetDefaultNetworkUpgrades(upgrade.GetConfig(constants.MainnetID)), // This can be changed to correct network (local, test) via VM.
GenesisPrecompiles: extras.Precompiles{},
},
)

Expand All @@ -80,14 +81,7 @@ var (
ShanghaiTime: utils.TimeToNewUint64(upgrade.GetConfig(constants.UnitTestID).DurangoTime),
CancunTime: utils.TimeToNewUint64(upgrade.GetConfig(constants.UnitTestID).EtnaTime),
},
&ChainConfigExtra{
AvalancheContext: AvalancheContext{utils.TestSnowContext()},
FeeConfig: DefaultFeeConfig,
AllowFeeRecipients: false,
NetworkUpgrades: getDefaultNetworkUpgrades(upgrade.GetConfig(constants.UnitTestID)), // This can be changed to correct network (local, test) via VM.
GenesisPrecompiles: Precompiles{},
UpgradeConfig: UpgradeConfig{},
},
extras.TestChainConfig,
)

TestPreSubnetEVMChainConfig = WithExtra(
Expand All @@ -105,17 +99,17 @@ var (
BerlinBlock: big.NewInt(0),
LondonBlock: big.NewInt(0),
},
&ChainConfigExtra{
AvalancheContext: AvalancheContext{utils.TestSnowContext()},
&extras.ChainConfig{
AvalancheContext: extras.AvalancheContext{SnowCtx: utils.TestSnowContext()},
FeeConfig: DefaultFeeConfig,
AllowFeeRecipients: false,
NetworkUpgrades: NetworkUpgrades{
NetworkUpgrades: extras.NetworkUpgrades{
SubnetEVMTimestamp: utils.TimeToNewUint64(upgrade.UnscheduledActivationTime),
DurangoTimestamp: utils.TimeToNewUint64(upgrade.UnscheduledActivationTime),
EtnaTimestamp: utils.TimeToNewUint64(upgrade.UnscheduledActivationTime),
},
GenesisPrecompiles: Precompiles{},
UpgradeConfig: UpgradeConfig{},
GenesisPrecompiles: extras.Precompiles{},
UpgradeConfig: extras.UpgradeConfig{},
},
)

Expand All @@ -134,17 +128,17 @@ var (
BerlinBlock: big.NewInt(0),
LondonBlock: big.NewInt(0),
},
&ChainConfigExtra{
AvalancheContext: AvalancheContext{utils.TestSnowContext()},
&extras.ChainConfig{
AvalancheContext: extras.AvalancheContext{SnowCtx: utils.TestSnowContext()},
FeeConfig: DefaultFeeConfig,
AllowFeeRecipients: false,
NetworkUpgrades: NetworkUpgrades{
NetworkUpgrades: extras.NetworkUpgrades{
SubnetEVMTimestamp: utils.NewUint64(0),
DurangoTimestamp: utils.TimeToNewUint64(upgrade.UnscheduledActivationTime),
EtnaTimestamp: utils.TimeToNewUint64(upgrade.UnscheduledActivationTime),
},
GenesisPrecompiles: Precompiles{},
UpgradeConfig: UpgradeConfig{},
GenesisPrecompiles: extras.Precompiles{},
UpgradeConfig: extras.UpgradeConfig{},
},
)

Expand All @@ -164,17 +158,17 @@ var (
LondonBlock: big.NewInt(0),
ShanghaiTime: utils.TimeToNewUint64(upgrade.InitiallyActiveTime),
},
&ChainConfigExtra{
AvalancheContext: AvalancheContext{utils.TestSnowContext()},
&extras.ChainConfig{
AvalancheContext: extras.AvalancheContext{SnowCtx: utils.TestSnowContext()},
FeeConfig: DefaultFeeConfig,
AllowFeeRecipients: false,
NetworkUpgrades: NetworkUpgrades{
NetworkUpgrades: extras.NetworkUpgrades{
SubnetEVMTimestamp: utils.NewUint64(0),
DurangoTimestamp: utils.TimeToNewUint64(upgrade.InitiallyActiveTime),
EtnaTimestamp: utils.TimeToNewUint64(upgrade.UnscheduledActivationTime),
},
GenesisPrecompiles: Precompiles{},
UpgradeConfig: UpgradeConfig{},
GenesisPrecompiles: extras.Precompiles{},
UpgradeConfig: extras.UpgradeConfig{},
},
)

Expand All @@ -195,17 +189,17 @@ var (
ShanghaiTime: utils.TimeToNewUint64(upgrade.InitiallyActiveTime),
CancunTime: utils.TimeToNewUint64(upgrade.InitiallyActiveTime),
},
&ChainConfigExtra{
AvalancheContext: AvalancheContext{utils.TestSnowContext()},
&extras.ChainConfig{
AvalancheContext: extras.AvalancheContext{SnowCtx: utils.TestSnowContext()},
FeeConfig: DefaultFeeConfig,
AllowFeeRecipients: false,
NetworkUpgrades: NetworkUpgrades{
NetworkUpgrades: extras.NetworkUpgrades{
SubnetEVMTimestamp: utils.NewUint64(0),
DurangoTimestamp: utils.TimeToNewUint64(upgrade.InitiallyActiveTime),
EtnaTimestamp: utils.TimeToNewUint64(upgrade.InitiallyActiveTime),
},
GenesisPrecompiles: Precompiles{},
UpgradeConfig: UpgradeConfig{},
GenesisPrecompiles: extras.Precompiles{},
UpgradeConfig: extras.UpgradeConfig{},
},
)
TestRules = TestChainConfig.Rules(new(big.Int), IsMergeTODO, 0)
Expand Down
Loading

0 comments on commit 0d522e7

Please sign in to comment.