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 }