Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

revert: layer2 feat #131

Closed
wants to merge 9 commits into from
2 changes: 1 addition & 1 deletion app/genesis_test.go

Large diffs are not rendered by default.

24 changes: 3 additions & 21 deletions app/keepers/keepers.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ import (
"github.com/functionx/fx-core/v6/x/erc20"
erc20keeper "github.com/functionx/fx-core/v6/x/erc20/keeper"
erc20types "github.com/functionx/fx-core/v6/x/erc20/types"
ethkeeper "github.com/functionx/fx-core/v6/x/eth/keeper"
ethtypes "github.com/functionx/fx-core/v6/x/eth/types"
fxevmkeeper "github.com/functionx/fx-core/v6/x/evm/keeper"
fxgovkeeper "github.com/functionx/fx-core/v6/x/gov/keeper"
Expand All @@ -73,7 +72,6 @@ import (
fxtransfer "github.com/functionx/fx-core/v6/x/ibc/applications/transfer"
fxtransferkeeper "github.com/functionx/fx-core/v6/x/ibc/applications/transfer/keeper"
"github.com/functionx/fx-core/v6/x/ibc/ibcrouter"
layer2types "github.com/functionx/fx-core/v6/x/layer2/types"
migratekeeper "github.com/functionx/fx-core/v6/x/migrate/keeper"
migratetypes "github.com/functionx/fx-core/v6/x/migrate/types"
optimismtypes "github.com/functionx/fx-core/v6/x/optimism/types"
Expand All @@ -92,7 +90,6 @@ type CrossChainKeepers struct {
TronKeeper tronkeeper.Keeper
ArbitrumKeeper crosschainkeeper.Keeper
OptimismKeeper crosschainkeeper.Keeper
Layer2Keeper crosschainkeeper.Keeper
}

type AppKeepers struct {
Expand Down Expand Up @@ -414,19 +411,6 @@ func NewAppKeeper(
appKeepers.AccountKeeper,
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)
appKeepers.Layer2Keeper = crosschainkeeper.NewKeeper(
appCodec,
layer2types.ModuleName,
appKeepers.keys[layer2types.StoreKey],
appKeepers.StakingKeeper,
stakingkeeper.NewMsgServerImpl(appKeepers.StakingKeeper.Keeper),
distrkeeper.NewMsgServerImpl(appKeepers.DistrKeeper),
appKeepers.BankKeeper,
appKeepers.IBCTransferKeeper,
appKeepers.Erc20Keeper,
appKeepers.AccountKeeper,
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)
appKeepers.TronKeeper = tronkeeper.NewKeeper(crosschainkeeper.NewKeeper(
appCodec,
trontypes.ModuleName,
Expand All @@ -447,10 +431,9 @@ func NewAppKeeper(
AddRoute(bsctypes.ModuleName, crosschainkeeper.NewModuleHandler(appKeepers.BscKeeper)).
AddRoute(polygontypes.ModuleName, crosschainkeeper.NewModuleHandler(appKeepers.PolygonKeeper)).
AddRoute(avalanchetypes.ModuleName, crosschainkeeper.NewModuleHandler(appKeepers.AvalancheKeeper)).
AddRoute(ethtypes.ModuleName, ethkeeper.NewModuleHandler(appKeepers.EthKeeper)).
AddRoute(ethtypes.ModuleName, crosschainkeeper.NewModuleHandler(appKeepers.EthKeeper)).
AddRoute(arbitrumtypes.ModuleName, crosschainkeeper.NewModuleHandler(appKeepers.ArbitrumKeeper)).
AddRoute(optimismtypes.ModuleName, crosschainkeeper.NewModuleHandler(appKeepers.OptimismKeeper)).
AddRoute(layer2types.ModuleName, crosschainkeeper.NewModuleHandler(appKeepers.Layer2Keeper)).
AddRoute(trontypes.ModuleName, tronkeeper.NewModuleHandler(appKeepers.TronKeeper))

appKeepers.CrosschainKeeper = crosschainkeeper.NewRouterKeeper(crosschainRouter)
Expand Down Expand Up @@ -494,15 +477,14 @@ func NewAppKeeper(
)

ibcTransferRouter := fxtypes.NewRouter().
AddRoute(gravitytypes.ModuleName, appKeepers.Layer2Keeper).
AddRoute(ethtypes.ModuleName, appKeepers.Layer2Keeper).
AddRoute(gravitytypes.ModuleName, appKeepers.EthKeeper).
AddRoute(ethtypes.ModuleName, appKeepers.EthKeeper).
AddRoute(bsctypes.ModuleName, appKeepers.BscKeeper).
AddRoute(polygontypes.ModuleName, appKeepers.PolygonKeeper).
AddRoute(trontypes.ModuleName, appKeepers.TronKeeper).
AddRoute(avalanchetypes.ModuleName, appKeepers.AvalancheKeeper).
AddRoute(arbitrumtypes.ModuleName, appKeepers.ArbitrumKeeper).
AddRoute(optimismtypes.ModuleName, appKeepers.OptimismKeeper).
AddRoute(layer2types.ModuleName, appKeepers.Layer2Keeper).
AddRoute(erc20types.ModuleName, appKeepers.Erc20Keeper)
appKeepers.FxTransferKeeper = appKeepers.FxTransferKeeper.SetRouter(*ibcTransferRouter)
appKeepers.FxTransferKeeper = appKeepers.FxTransferKeeper.SetRefundHook(appKeepers.Erc20Keeper)
Expand Down
2 changes: 0 additions & 2 deletions app/keepers/keepers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
bsctypes "github.com/functionx/fx-core/v6/x/bsc/types"
erc20types "github.com/functionx/fx-core/v6/x/erc20/types"
ethtypes "github.com/functionx/fx-core/v6/x/eth/types"
layer2types "github.com/functionx/fx-core/v6/x/layer2/types"
optimismtypes "github.com/functionx/fx-core/v6/x/optimism/types"
polygontypes "github.com/functionx/fx-core/v6/x/polygon/types"
trontypes "github.com/functionx/fx-core/v6/x/tron/types"
Expand Down Expand Up @@ -55,7 +54,6 @@ func TestNewAppKeeper(t *testing.T) {
trontypes.ModuleName: {authtypes.Minter, authtypes.Burner},
arbitrumtypes.ModuleName: {authtypes.Minter, authtypes.Burner},
optimismtypes.ModuleName: {authtypes.Minter, authtypes.Burner},
layer2types.ModuleName: {authtypes.Minter, authtypes.Burner},
evmtypes.ModuleName: {authtypes.Minter, authtypes.Burner},
erc20types.ModuleName: {authtypes.Minter, authtypes.Burner},
}
Expand Down
8 changes: 3 additions & 5 deletions app/keepers/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import (
ethtypes "github.com/functionx/fx-core/v6/x/eth/types"
precompilescrosschain "github.com/functionx/fx-core/v6/x/evm/precompiles/crosschain"
precompilesstaking "github.com/functionx/fx-core/v6/x/evm/precompiles/staking"
layer2types "github.com/functionx/fx-core/v6/x/layer2/types"
migratetypes "github.com/functionx/fx-core/v6/x/migrate/types"
optimismtypes "github.com/functionx/fx-core/v6/x/optimism/types"
polygontypes "github.com/functionx/fx-core/v6/x/polygon/types"
Expand All @@ -48,7 +47,7 @@ func (appKeepers *AppKeepers) generateKeys() {
evidencetypes.StoreKey, ibctransfertypes.StoreKey, capabilitytypes.StoreKey,
feegrant.StoreKey, authzkeeper.StoreKey,
bsctypes.StoreKey, polygontypes.StoreKey, avalanchetypes.StoreKey, ethtypes.StoreKey, trontypes.StoreKey,
arbitrumtypes.ModuleName, optimismtypes.ModuleName, layer2types.ModuleName,
arbitrumtypes.ModuleName, optimismtypes.ModuleName,
evmtypes.StoreKey, feemarkettypes.StoreKey,
erc20types.StoreKey, migratetypes.StoreKey,
)
Expand Down Expand Up @@ -89,14 +88,13 @@ func (appKeepers *AppKeepers) EvmPrecompiled() {

// cross chain precompile
transferRouter := fxtypes.NewRouter().
// AddRoute(ethtypes.ModuleName, appKeepers.EthKeeper).
AddRoute(ethtypes.ModuleName, appKeepers.EthKeeper).
AddRoute(bsctypes.ModuleName, appKeepers.BscKeeper).
AddRoute(polygontypes.ModuleName, appKeepers.PolygonKeeper).
AddRoute(trontypes.ModuleName, appKeepers.TronKeeper).
AddRoute(avalanchetypes.ModuleName, appKeepers.AvalancheKeeper).
AddRoute(arbitrumtypes.ModuleName, appKeepers.ArbitrumKeeper).
AddRoute(optimismtypes.ModuleName, appKeepers.OptimismKeeper).
AddRoute(layer2types.ModuleName, appKeepers.Layer2Keeper)
AddRoute(optimismtypes.ModuleName, appKeepers.OptimismKeeper)
precompiled[precompilescrosschain.GetAddress()] = func(ctx sdk.Context) vm.PrecompiledContract {
return precompilescrosschain.NewPrecompiledContract(
ctx,
Expand Down
9 changes: 0 additions & 9 deletions app/modules.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ import (
fxgov "github.com/functionx/fx-core/v6/x/gov"
fxibctransfer "github.com/functionx/fx-core/v6/x/ibc/applications/transfer"
fxibctransfertypes "github.com/functionx/fx-core/v6/x/ibc/applications/transfer/types"
"github.com/functionx/fx-core/v6/x/layer2"
layer2types "github.com/functionx/fx-core/v6/x/layer2/types"
"github.com/functionx/fx-core/v6/x/migrate"
migratetypes "github.com/functionx/fx-core/v6/x/migrate/types"
"github.com/functionx/fx-core/v6/x/optimism"
Expand All @@ -83,7 +81,6 @@ func init() {
crosschaintypes.RegisterValidateBasic(trontypes.ModuleName, trontypes.TronMsgValidate{})
crosschaintypes.RegisterValidateBasic(arbitrumtypes.ModuleName, crosschaintypes.MsgValidate{})
crosschaintypes.RegisterValidateBasic(optimismtypes.ModuleName, crosschaintypes.MsgValidate{})
crosschaintypes.RegisterValidateBasic(layer2types.ModuleName, crosschaintypes.MsgValidate{})
}

// module account permissions
Expand All @@ -102,7 +99,6 @@ var maccPerms = map[string][]string{
trontypes.ModuleName: {authtypes.Minter, authtypes.Burner},
arbitrumtypes.ModuleName: {authtypes.Minter, authtypes.Burner},
optimismtypes.ModuleName: {authtypes.Minter, authtypes.Burner},
layer2types.ModuleName: {authtypes.Minter, authtypes.Burner},
evmtypes.ModuleName: {authtypes.Minter, authtypes.Burner},
erc20types.ModuleName: {authtypes.Minter, authtypes.Burner},
}
Expand Down Expand Up @@ -149,7 +145,6 @@ var ModuleBasics = module.NewBasicManager(
tron.AppModuleBasic{},
arbitrum.AppModule{},
optimism.AppModule{},
layer2.AppModule{},
fxevm.AppModuleBasic{},
feemarket.AppModuleBasic{},
erc20.AppModuleBasic{},
Expand Down Expand Up @@ -190,7 +185,6 @@ func appModules(
tron.NewAppModule(app.TronKeeper, app.GetSubspace(trontypes.ModuleName)),
arbitrum.NewAppModule(app.ArbitrumKeeper),
optimism.NewAppModule(app.OptimismKeeper),
layer2.NewAppModule(app.Layer2Keeper),
fxevm.NewAppModule(app.EvmKeeper, app.AccountKeeper, app.LegacyAmino(), app.GetKey(paramstypes.StoreKey), app.GetSubspace(evmtypes.ModuleName)),
feemarket.NewAppModule(app.FeeMarketKeeper, app.GetSubspace(feemarkettypes.ModuleName)),
erc20.NewAppModule(app.Erc20Keeper, app.GetSubspace(erc20types.ModuleName)),
Expand Down Expand Up @@ -229,7 +223,6 @@ func orderBeginBlockers() []string {
ethtypes.ModuleName,
arbitrumtypes.ModuleName,
optimismtypes.ModuleName,
layer2types.ModuleName,

feemarkettypes.ModuleName, // begin
evmtypes.ModuleName, // begin
Expand Down Expand Up @@ -268,7 +261,6 @@ func orderEndBlockers() []string {
ethtypes.ModuleName, // end
arbitrumtypes.ModuleName, // end
optimismtypes.ModuleName, // end
layer2types.ModuleName, // end

evmtypes.ModuleName, // end
feemarkettypes.ModuleName, // end
Expand Down Expand Up @@ -307,7 +299,6 @@ func orderInitBlockers() []string {
ethtypes.ModuleName,
arbitrumtypes.ModuleName,
optimismtypes.ModuleName,
layer2types.ModuleName,

feemarkettypes.ModuleName,
evmtypes.ModuleName,
Expand Down
15 changes: 1 addition & 14 deletions app/upgrades/v6/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,12 @@ import (
storetypes "github.com/cosmos/cosmos-sdk/store/types"

"github.com/functionx/fx-core/v6/app/upgrades"
layer2types "github.com/functionx/fx-core/v6/x/layer2/types"
)

var Layer2GenesisTokenAddress = map[string]string{
"FX": "",
"PUNDIX": "",
"USDT": "",
"WETH": "",
"LINK": "",
"WBTC": "",
"USDC": "",
}

var Upgrade = upgrades.Upgrade{
UpgradeName: "v6.0.x",
CreateUpgradeHandler: CreateUpgradeHandler,
StoreUpgrades: func() *storetypes.StoreUpgrades {
return &storetypes.StoreUpgrades{
Added: []string{layer2types.ModuleName},
}
return &storetypes.StoreUpgrades{}
},
}
139 changes: 0 additions & 139 deletions app/upgrades/v6/upgrade.go
Original file line number Diff line number Diff line change
@@ -1,25 +1,11 @@
package v6

import (
"fmt"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/ethereum/go-ethereum/common"

"github.com/functionx/fx-core/v6/app/keepers"
crosschainkeeper "github.com/functionx/fx-core/v6/x/crosschain/keeper"
fxgovtypes "github.com/functionx/fx-core/v6/x/gov/types"
layer2types "github.com/functionx/fx-core/v6/x/layer2/types"
migratekeeper "github.com/functionx/fx-core/v6/x/migrate/keeper"
fxstakingkeeper "github.com/functionx/fx-core/v6/x/staking/keeper"
)

func CreateUpgradeHandler(
Expand All @@ -30,14 +16,6 @@ func CreateUpgradeHandler(
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
cacheCtx, commit := ctx.CacheContext()

if err := UpdateParams(cacheCtx, app); err != nil {
return nil, err
}

MigrateMetadata(cacheCtx, app.BankKeeper)
MigrateLayer2Module(cacheCtx, app.Layer2Keeper)
ExportCommunityPool(cacheCtx, app.DistrKeeper, app.BankKeeper)

ctx.Logger().Info("start to run v6 migrations...", "module", "upgrade")
toVM, err := mm.RunMigrations(cacheCtx, configurator, fromVM)
if err != nil {
Expand All @@ -49,120 +27,3 @@ func CreateUpgradeHandler(
return toVM, nil
}
}

func UpdateParams(cacheCtx sdk.Context, app *keepers.AppKeepers) error {
mintParams := app.MintKeeper.GetParams(cacheCtx)
mintParams.InflationMax = sdk.ZeroDec()
mintParams.InflationMin = sdk.ZeroDec()
if err := mintParams.Validate(); err != nil {
return err
}
app.MintKeeper.SetParams(cacheCtx, mintParams)

distrParams := app.DistrKeeper.GetParams(cacheCtx)
distrParams.CommunityTax = sdk.ZeroDec()
distrParams.BaseProposerReward = sdk.ZeroDec()
distrParams.BonusProposerReward = sdk.ZeroDec()
if err := distrParams.ValidateBasic(); err != nil {
return err
}
app.DistrKeeper.SetParams(cacheCtx, distrParams)

stakingParams := app.StakingKeeper.GetParams(cacheCtx)
stakingParams.UnbondingTime = 1
if err := stakingParams.Validate(); err != nil {
return err
}
app.StakingKeeper.SetParams(cacheCtx, stakingParams)

govTallyParams := app.GovKeeper.GetTallyParams(cacheCtx)
govTallyParams.Quorum = sdk.OneDec().String() // 100%
govTallyParams.Threshold = sdk.OneDec().String() // 100%
govTallyParams.VetoThreshold = sdk.OneDec().String() // 100%
app.GovKeeper.SetTallyParams(cacheCtx, govTallyParams)

app.GovKeeper.IterateParams(cacheCtx, func(param *fxgovtypes.Params) (stop bool) {
param.Quorum = sdk.OneDec().String() // 100%
param.Threshold = sdk.OneDec().String() // 100%
param.VetoThreshold = sdk.OneDec().String() // 100%
if err := param.ValidateBasic(); err != nil {
panic(err)
}
if err := app.GovKeeper.SetParams(cacheCtx, param); err != nil {
panic(err)
}
return false
})
return nil
}

func ExportCommunityPool(ctx sdk.Context, distrKeeper distrkeeper.Keeper, bankKeeper bankkeeper.Keeper) sdk.Coins {
feePool := distrKeeper.GetFeePool(ctx)
truncatedCoins, changeCoins := feePool.CommunityPool.TruncateDecimal()
feePool.CommunityPool = changeCoins
distrKeeper.SetFeePool(ctx, feePool)

if err := bankKeeper.SendCoinsFromModuleToModule(ctx, distrtypes.ModuleName, govtypes.ModuleName, truncatedCoins); err != nil {
panic(err)
}
if err := bankKeeper.BurnCoins(ctx, govtypes.ModuleName, truncatedCoins); err != nil {
panic(err)
}
ctx.Logger().Info("export community pool", "coins", truncatedCoins.String())
return truncatedCoins
}

func MigrateMetadata(ctx sdk.Context, bankKeeper bankkeeper.Keeper) {
bankKeeper.IterateAllDenomMetaData(ctx, func(metadata banktypes.Metadata) bool {
address, ok := Layer2GenesisTokenAddress[metadata.Symbol]
if !ok {
return false
}
if len(metadata.DenomUnits) > 0 {
metadata.DenomUnits[0].Aliases = append(metadata.DenomUnits[0].Aliases,
fmt.Sprintf("%s%s", layer2types.ModuleName, address))
bankKeeper.SetDenomMetaData(ctx, metadata)
}
return false
})
}

func MigrateLayer2Module(ctx sdk.Context, layer2CrossChainKeeper crosschainkeeper.Keeper) {
for _, address := range Layer2GenesisTokenAddress {
fxTokenDenom := fmt.Sprintf("%s%s", layer2types.ModuleName, address)
layer2CrossChainKeeper.AddBridgeToken(ctx, address, fxTokenDenom)
}
}

func AutoUndelegate(ctx sdk.Context, stakingKeeper fxstakingkeeper.Keeper) []stakingtypes.Delegation {
var delegations []stakingtypes.Delegation
stakingKeeper.IterateAllDelegations(ctx, func(delegation stakingtypes.Delegation) (stop bool) {
delegations = append(delegations, delegation)
delegator := sdk.MustAccAddressFromBech32(delegation.DelegatorAddress)
valAddress, err := sdk.ValAddressFromBech32(delegation.ValidatorAddress)
if err != nil {
panic(err)
}
if delegator.Equals(valAddress) {
return false
}
if _, err := stakingKeeper.Undelegate(ctx, delegator, valAddress, delegation.Shares); err != nil {
panic(err)
}
return false
})
return delegations
}

func ExportDelegate(ctx sdk.Context, migrateKeeper migratekeeper.Keeper, delegations []stakingtypes.Delegation) []stakingtypes.Delegation {
for i := 0; i < len(delegations); i++ {
delegation := delegations[i]
delegator := sdk.MustAccAddressFromBech32(delegation.DelegatorAddress)
if !migrateKeeper.HasMigratedDirectionTo(ctx, common.BytesToAddress(delegator.Bytes())) {
delegations = append(delegations[:i], delegations[i+1:]...)
i--
continue
}
}
return delegations
}
Loading
Loading