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  }