github.com/lino-network/lino@v0.6.11/types/sdkconfig.go (about)

     1  package types
     2  
     3  import (
     4  	sdk "github.com/cosmos/cosmos-sdk/types"
     5  )
     6  
     7  const (
     8  	// Bech32PrefixAccAddr defines the Bech32 prefix of an account's address
     9  	Bech32MainPrefix = "lino"
    10  
    11  	// LINO is missing in https://github.com/satoshilabs/slips/blob/master/slip-0044.md
    12  	// Assuming 4937775, https://en.wikipedia.org/wiki/Smith_number
    13  	CoinType = 4937775
    14  
    15  	// PrefixAccount is the prefix for account keys
    16  	PrefixAccount = "acc"
    17  	// PrefixValidator is the prefix for validator keys
    18  	PrefixValidator = "val"
    19  	// PrefixConsensus is the prefix for consensus keys
    20  	PrefixConsensus = "cons"
    21  	// PrefixPublic is the prefix for public keys
    22  	PrefixPublic = "pub"
    23  	// PrefixOperator is the prefix for operator keys
    24  	PrefixOperator = "oper"
    25  
    26  	// PrefixAddress is the prefix for addresses
    27  	PrefixAddress = "addr"
    28  
    29  	// Bech32PrefixAccAddr defines the Bech32 prefix of an account's address
    30  	Bech32PrefixAccAddr = Bech32MainPrefix
    31  	// Bech32PrefixAccPub defines the Bech32 prefix of an account's public key
    32  	Bech32PrefixAccPub = Bech32MainPrefix + PrefixPublic
    33  	// Bech32PrefixValAddr defines the Bech32 prefix of a validator's operator address
    34  	Bech32PrefixValAddr = Bech32MainPrefix + PrefixValidator + PrefixOperator
    35  	// Bech32PrefixValPub defines the Bech32 prefix of a validator's operator public key
    36  	Bech32PrefixValPub = Bech32MainPrefix + PrefixValidator + PrefixOperator + PrefixPublic
    37  	// Bech32PrefixConsAddr defines the Bech32 prefix of a consensus node address
    38  	Bech32PrefixConsAddr = Bech32MainPrefix + PrefixValidator + PrefixConsensus
    39  	// Bech32PrefixConsPub defines the Bech32 prefix of a consensus node public key
    40  	Bech32PrefixConsPub = Bech32MainPrefix + PrefixValidator + PrefixConsensus + PrefixPublic
    41  )
    42  
    43  func ConfigAndSealCosmosSDKAddress() {
    44  	config := sdk.GetConfig()
    45  	config.SetBech32PrefixForAccount(Bech32PrefixAccAddr, Bech32PrefixAccPub)
    46  	config.SetBech32PrefixForValidator(Bech32PrefixValAddr, Bech32PrefixValPub)
    47  	config.SetBech32PrefixForConsensusNode(Bech32PrefixConsAddr, Bech32PrefixConsPub)
    48  	config.SetCoinType(CoinType)
    49  	config.Seal()
    50  }