github.com/cosmos/cosmos-sdk@v0.50.10/x/bank/migrations/v2/keys.go (about) 1 package v2 2 3 import ( 4 "errors" 5 6 sdk "github.com/cosmos/cosmos-sdk/types" 7 "github.com/cosmos/cosmos-sdk/types/address" 8 ) 9 10 const ( 11 ModuleName = "bank" 12 ) 13 14 var ( 15 SupplyKey = []byte{0x00} 16 BalancesPrefix = []byte{0x02} 17 DenomMetadataPrefix = []byte{0x1} 18 19 ErrInvalidKey = errors.New("invalid key") 20 ) 21 22 func CreateAccountBalancesPrefix(addr []byte) []byte { 23 return append(BalancesPrefix, address.MustLengthPrefix(addr)...) 24 } 25 26 func AddressFromBalancesStore(key []byte) (sdk.AccAddress, error) { 27 if len(key) == 0 { 28 return nil, ErrInvalidKey 29 } 30 31 addrLen := key[0] 32 bound := int(addrLen) 33 34 if len(key)-1 < bound { 35 return nil, ErrInvalidKey 36 } 37 38 return key[1 : bound+1], nil 39 } 40 41 // DenomMetadataKey returns the denomination metadata key. 42 func DenomMetadataKey(denom string) []byte { 43 d := []byte(denom) 44 return append(DenomMetadataPrefix, d...) 45 }