diff --git a/app/upgrades/v8/constants.go b/app/upgrades/v8/constants.go index b8d932eb..814fcc70 100644 --- a/app/upgrades/v8/constants.go +++ b/app/upgrades/v8/constants.go @@ -77,3 +77,12 @@ func GetMigrateEscrowDenoms(chainID string) map[string]string { result[pundixDenom] = fxtypes.PundixWrapDenom return result } + +const mainnetPundiAIToken = "0x0000000000000000000000000000000000000000" // TODO update address + +func getMainnetBridgeToken(ctx sdk.Context) common.Address { + if ctx.ChainID() == fxtypes.MainnetChainId { + return common.HexToAddress(mainnetPundiAIToken) + } + panic("invalid chain id") +} diff --git a/app/upgrades/v8/erc20.go b/app/upgrades/v8/erc20.go index ecd34176..caede4cc 100644 --- a/app/upgrades/v8/erc20.go +++ b/app/upgrades/v8/erc20.go @@ -47,3 +47,8 @@ func updateFXBridgeDenom(ctx sdk.Context, keeper erc20keeper.Keeper) error { bridgeDenom := erc20types.NewBridgeDenom(ethtypes.ModuleName, bridgeToken.Contract) return keeper.DenomIndex.Set(ctx, bridgeDenom, fxtypes.FXDenom) } + +func addMainnetPundiAIBridgeToken(ctx sdk.Context, keeper erc20keeper.Keeper) error { + pundiaiToken := getMainnetBridgeToken(ctx) + return keeper.AddBridgeToken(ctx, fxtypes.DefaultDenom, ethtypes.ModuleName, pundiaiToken.String(), false) +} diff --git a/app/upgrades/v8/upgrade.go b/app/upgrades/v8/upgrade.go index f9cd7057..2d1362ee 100644 --- a/app/upgrades/v8/upgrade.go +++ b/app/upgrades/v8/upgrade.go @@ -110,6 +110,9 @@ func upgradeMainnet( if err = mintPurseBridgeToken(ctx, app.Erc20Keeper, app.BankKeeper); err != nil { return fromVM, err } + if err = updateMainnetPundiAI(ctx, app); err != nil { + return fromVM, err + } if err = updateContract(ctx, app); err != nil { return fromVM, err } @@ -119,9 +122,6 @@ func upgradeMainnet( if err = migrateModulesData(ctx, codec, app); err != nil { return fromVM, err } - if err = updateFXBridgeDenom(ctx, app.Erc20Keeper); err != nil { - return fromVM, err - } return toVM, nil } @@ -136,9 +136,6 @@ func migrateModulesData(ctx sdk.Context, codec codec.Codec, app *keepers.AppKeep if err := migrateMetadataDisplay(ctx, app.BankKeeper); err != nil { return err } - if err := migrateErc20FXToPundiAI(ctx, app.Erc20Keeper); err != nil { - return err - } if err := migrateMetadataFXToPundiAI(ctx, app.BankKeeper); err != nil { return err } @@ -244,3 +241,13 @@ func fixPurseCoin(ctx sdk.Context, evmKeeper *fxevmkeeper.Keeper, erc20Keeper er needIBCPurseSupply := sdk.NewCoin(ibcPurseToken.GetIbcDenom(), basePurseSupply.Amount.Sub(ibcPurseSupply.Amount)) return bankKeeper.MintCoins(ctx, crosschaintypes.ModuleName, sdk.NewCoins(needIBCPurseSupply)) } + +func updateMainnetPundiAI(ctx sdk.Context, app *keepers.AppKeepers) error { + if err := migrateErc20FXToPundiAI(ctx, app.Erc20Keeper); err != nil { + return err + } + if err := updateFXBridgeDenom(ctx, app.Erc20Keeper); err != nil { + return err + } + return addMainnetPundiAIBridgeToken(ctx, app.Erc20Keeper) +}