juno icon indicating copy to clipboard operation
juno copied to clipboard

migrate: Core-1 vesting accounts to the Charter

Open reecepbcups opened this issue 2 years ago • 9 comments

Summary

Migrates all Core-1 to new vesting contracts. If the wallet is wolf, send funds to the Core-1 subdao (No more vesting for him)

Uses - https://pastebin.com/raw/89MJms1c - to test manually

SDK v47 now lets us create accounts at runtime

Should also use Osmosis as ref: https://github.com/osmosis-labs/cosmos-sdk/blob/osmo/v0.47.5/x/auth/vesting/types/vesting_account.go#L813-L859

reecepbcups avatar Jul 03 '23 19:07 reecepbcups

Bumping to v17+ due to complexity. Would rather it be safe and get more testing since we are moving like millions in funds

reecepbcups avatar Jul 07 '23 01:07 reecepbcups

Bumping to v17+ due to complexity. Would rather it be safe and get more testing since we are moving like millions in funds

Yep, already so much in this release. Absolute huge upgrade and reducing complexity is good.

JakeHartnell avatar Jul 07 '23 12:07 JakeHartnell

Needs a signaling proposal via main gov, not just Core-1; per validator comments to me & modification of genesis accounts

reecepbcups avatar Dec 24 '23 23:12 reecepbcups

Putting this snippet here from the other PR to remove the multisig, as it may be useful (i.e. get the unvested amount, subtract balance, and handle)

func mintUnvestedToCharter(ctx sdk.Context, k *keepers.AppKeepers, CouncilAddr sdk.AccAddress, vestingAcc *vestingtypes.PeriodicVestingAccount) { // nolint:gocritic
	unvested := SumPeriodVestingAccountsUnvestedTokensAmount(ctx, vestingAcc)
	fmt.Printf("Core1Addr Unvested to mint to the charter: %s\n", unvested)

	coins := sdk.NewCoins(sdk.NewCoin("ujuno", unvested))

	if err := k.BankKeeper.MintCoins(ctx, "mint", coins); err != nil {
		panic(err)
	}

	if err := k.BankKeeper.SendCoinsFromModuleToAccount(ctx, "mint", CouncilAddr, coins); err != nil {
		panic(err)
	}
}

reecepbcups avatar Jan 12 '24 20:01 reecepbcups

FYI:

This pull request provides the logic to send all remaining funds from the core-1 vesting accounts to the council wallet. All core-1 accounts will undergo instant redelegation and unbonding. The only exception is Jack's delegations to his validator at Strangelove will not be unbonded.

All logic takes place in the v20 upgrade handler. Once v20 goes into production, the council will then be required to issue new vesting accounts.

The v20 namespace will be created after this PR is approved and merged.

joelsmith-2019 avatar Feb 02 '24 21:02 joelsmith-2019

With Ops Department we decided to put this on hold since not all core-1 members agreed to cancel their vesting

dimiandre avatar Feb 06 '24 07:02 dimiandre

probably should be closed, unless the migration isn't actually done

faddat avatar Mar 01 '24 20:03 faddat

not done, only the multisig was transfered. doubt it will get through since the charter is against upgrades

reecepbcups avatar Mar 01 '24 21:03 reecepbcups

thanks for clarifying @Reecepbcups

faddat avatar Mar 04 '24 20:03 faddat