github.com/Finschia/finschia-sdk@v0.48.1/x/bank/legacy/v043/json.go (about) 1 package v043 2 3 import ( 4 sdk "github.com/Finschia/finschia-sdk/types" 5 "github.com/Finschia/finschia-sdk/x/bank/types" 6 ) 7 8 // pruneZeroBalancesJSON removes the zero balance addresses from exported genesis. 9 func pruneZeroBalancesJSON(oldBalances []types.Balance) []types.Balance { 10 var balances []types.Balance 11 12 for _, b := range oldBalances { 13 if !b.Coins.IsZero() { 14 b.Coins = sdk.NewCoins(b.Coins...) // prunes zero denom. 15 balances = append(balances, b) 16 } 17 } 18 19 return balances 20 } 21 22 // MigrateJSON accepts exported v0.40 x/bank genesis state and migrates it to 23 // v0.43 x/bank genesis state. The migration includes: 24 // - Prune balances & supply with zero coins (ref: https://github.com/cosmos/cosmos-sdk/pull/9229) 25 func MigrateJSON(oldState *types.GenesisState) *types.GenesisState { 26 return &types.GenesisState{ 27 Params: oldState.Params, 28 Balances: pruneZeroBalancesJSON(oldState.Balances), 29 Supply: sdk.NewCoins(oldState.Supply...), // NewCoins used here to remove zero coin denoms from supply. 30 DenomMetadata: oldState.DenomMetadata, 31 } 32 }