Skip to content

Commit 7ce7d57

Browse files
committed
chore: register dynamic precompiles codehash in evm
1 parent c022fd3 commit 7ce7d57

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

app/app.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1248,7 +1248,7 @@ func (app *Haqq) setupUpgradeHandlers() {
12481248
// v1.9.0 Upgrade Cosmos SDK to v0.50.9 and IBC to v8.6.1
12491249
app.UpgradeKeeper.SetUpgradeHandler(
12501250
v190.UpgradeName,
1251-
v190.CreateUpgradeHandler(app.mm, app.configurator, app.GovKeeper),
1251+
v190.CreateUpgradeHandler(app.mm, app.configurator, app.GovKeeper, app.Erc20Keeper),
12521252
)
12531253

12541254
// When a planned update height is reached, the old binary will panic

app/upgrades/v1.9.0/upgrades.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@ import (
88
"github.com/cosmos/cosmos-sdk/types/module"
99
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
1010
govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
11+
"github.com/ethereum/go-ethereum/common"
12+
13+
erc20keeper "github.com/haqq-network/haqq/x/erc20/keeper"
1114
)
1215

1316
// CreateUpgradeHandler creates an SDK upgrade handler for Evmos v20
1417
func CreateUpgradeHandler(
1518
mm *module.Manager,
1619
configurator module.Configurator,
1720
gk govkeeper.Keeper,
21+
ek erc20keeper.Keeper,
1822
) upgradetypes.UpgradeHandler {
1923
return func(c context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
2024
ctx := sdk.UnwrapSDKContext(c)
@@ -30,6 +34,13 @@ func CreateUpgradeHandler(
3034
logger.Debug("Updating expedited prop params...")
3135
if err := UpdateExpeditedPropsParams(ctx, gk); err != nil {
3236
logger.Error("error while updating gov params", "error", err.Error())
37+
return nil, err
38+
}
39+
40+
logger.Debug("Register dynamic precompiles...")
41+
if err := RegisterDynamicPrecompiles(ctx, ek); err != nil {
42+
logger.Error("error while registering erc20 precompiles", "error", err.Error())
43+
return nil, err
3344
}
3445

3546
return vm, nil
@@ -63,3 +74,19 @@ func UpdateExpeditedPropsParams(ctx sdk.Context, gk govkeeper.Keeper) error {
6374
}
6475
return gk.Params.Set(ctx, params)
6576
}
77+
78+
func RegisterDynamicPrecompiles(ctx sdk.Context, ek erc20keeper.Keeper) error {
79+
erc20Params := ek.GetParams(ctx)
80+
if len(erc20Params.DynamicPrecompiles) == 0 {
81+
return nil
82+
}
83+
84+
// if a precompile is present we should register the account with the erc20 codehash
85+
for _, precompile := range erc20Params.DynamicPrecompiles {
86+
if err := ek.RegisterERC20CodeHash(ctx, common.HexToAddress(precompile)); err != nil {
87+
return err
88+
}
89+
}
90+
91+
return nil
92+
}

0 commit comments

Comments
 (0)