github.com/gravity-devs/liquidity@v1.5.3/x/liquidity/legacy/v043/helpers.go (about)

     1  package v043
     2  
     3  import (
     4  	"github.com/cosmos/cosmos-sdk/store/prefix"
     5  	sdk "github.com/cosmos/cosmos-sdk/types"
     6  	"github.com/cosmos/cosmos-sdk/types/address"
     7  )
     8  
     9  // MigratePrefixAddress is a helper function that migrates all keys of format:
    10  // prefix_bytes | address_bytes
    11  // into format:
    12  // prefix_bytes | address_len (1 byte) | address_bytes
    13  func MigratePrefixAddress(store sdk.KVStore, prefixBz []byte) {
    14  	oldStore := prefix.NewStore(store, prefixBz)
    15  
    16  	oldStoreIter := oldStore.Iterator(nil, nil)
    17  	defer oldStoreIter.Close()
    18  
    19  	for ; oldStoreIter.Valid(); oldStoreIter.Next() {
    20  		// Set new key on store. Values don't change.
    21  		store.Set(append(prefixBz, address.MustLengthPrefix(oldStoreIter.Key())...), oldStoreIter.Value())
    22  		oldStore.Delete(oldStoreIter.Key())
    23  	}
    24  }
    25  
    26  // DeleteDeprecatedPrefix is a helper function that deletes all keys which started the prefix
    27  func DeleteDeprecatedPrefix(store sdk.KVStore, prefixBz []byte) {
    28  	oldStore := prefix.NewStore(store, prefixBz)
    29  
    30  	oldStoreIter := oldStore.Iterator(nil, nil)
    31  	defer oldStoreIter.Close()
    32  
    33  	for ; oldStoreIter.Valid(); oldStoreIter.Next() {
    34  		oldStore.Delete(oldStoreIter.Key())
    35  	}
    36  }