Skip to content

Commit

Permalink
chore: add foundation multi-coin rewards migration (#247)
Browse files Browse the repository at this point in the history
  • Loading branch information
fabianriewe authored Feb 18, 2025
1 parent 79b8e9d commit 82e8799
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
2 changes: 2 additions & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,8 @@ func New(
app.StakingKeeper,
app.BankKeeper,
app.BundlesKeeper,
app.MultiCoinRewardsKeeper,
app.DistributionKeeper,
),
)

Expand Down
41 changes: 41 additions & 0 deletions app/upgrades/v2_0/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ import (
"context"
"fmt"

multicoinrewardskeeper "github.com/KYVENetwork/chain/x/multi_coin_rewards/keeper"
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"

multicoinrewardstypes "github.com/KYVENetwork/chain/x/multi_coin_rewards/types"

authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
Expand Down Expand Up @@ -42,6 +45,8 @@ func CreateUpgradeHandler(
stakingKeeper *stakingkeeper.Keeper,
bankKeeper bankkeeper.Keeper,
bundlesKeeper bundleskeeper.Keeper,
multiCoinRewardsKeeper multicoinrewardskeeper.Keeper,
distrKeeper *distrkeeper.Keeper,
) upgradetypes.UpgradeHandler {
return func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
sdkCtx := sdk.UnwrapSDKContext(ctx)
Expand All @@ -60,12 +65,48 @@ func CreateUpgradeHandler(
// Run Bundles Merkle Roots migrations
bundlesKeeper.SetBundlesMigrationUpgradeHeight(sdkCtx, uint64(sdkCtx.BlockHeight()))

// Set MultiCoinRewards and Withdraw address for the KYVE Foundation
if sdkCtx.ChainID() == "kyve-1" {
SetWithdrawAddressAndMultiCoinRewards(
sdkCtx, multiCoinRewardsKeeper, accountKeeper, distrKeeper,
"kyve1dur8kw9qh28p00urmjulmnxyt0m34k3j7veehz", "kyve173pnpz27lcn6zq4x37392n09y8mnz5vadjx2m9")
}

logger.Info(fmt.Sprintf("finished upgrade %v", UpgradeName))

return migratedVersionMap, err
}
}

// SetWithdrawAddressAndMultiCoinRewards sets a withdraw-address and enables multi-coin rewards for
// a given delegator
func SetWithdrawAddressAndMultiCoinRewards(
ctx sdk.Context,
multiCoinRewardsKeeper multicoinrewardskeeper.Keeper,
accountKeeper authkeeper.AccountKeeper,
distrKeeper *distrkeeper.Keeper,
delegatorAddress string,
withdrawAddress string,
) {
delegatorAccAddress, err := accountKeeper.AddressCodec().StringToBytes(delegatorAddress)
if err != nil {
panic(err)
}

withdrawAccAddress, err := accountKeeper.AddressCodec().StringToBytes(withdrawAddress)
if err != nil {
panic(err)
}

if err = distrKeeper.SetWithdrawAddr(ctx, delegatorAccAddress, withdrawAccAddress); err != nil {
panic(err)
}

if err := multiCoinRewardsKeeper.MultiCoinRewardsEnabled.Set(ctx, delegatorAccAddress); err != nil {
panic(err)
}
}

func EnsureMultiCoinDistributionAccount(ctx sdk.Context, ak authkeeper.AccountKeeper) {
address := authTypes.NewModuleAddress(multicoinrewardstypes.MultiCoinRewardsRedistributionAccountName)
account := ak.GetAccount(ctx, address)
Expand Down

0 comments on commit 82e8799

Please sign in to comment.