/types/sdkconfig.go

https://github.com/lino-network/lino · Go · 50 lines · 28 code · 7 blank · 15 comment · 0 complexity · 49637bf9488a6c5e65c4e4e32811824c MD5 · raw file

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