Documentation ¶
Index ¶
- Constants
- func DefaultCoinDenomRegex() string
- func GetBaseDenom() (string, error)
- func GetDenomUnit(denom string) (sdkmath.LegacyDec, bool)
- func RegisterDenom(denom string, unit sdkmath.LegacyDec) error
- func SetCoinDenomRegex(reFn func() string)
- func ValidateDenom(denom string) error
- type Coin
- func (coin Coin) Add(coinB Coin) Coin
- func (coin Coin) AddAmount(amount sdkmath.Int) Coin
- func (coin Coin) IsEqual(other Coin) bool
- func (coin Coin) IsGTE(other Coin) bool
- func (coin Coin) IsLT(other Coin) bool
- func (coin Coin) IsNegative() bool
- func (coin Coin) IsNil() bool
- func (coin Coin) IsPositive() bool
- func (coin Coin) IsValid() bool
- func (coin Coin) IsZero() bool
- func (coin Coin) String() string
- func (coin Coin) Sub(coinB Coin) Coin
- func (coin Coin) SubAmount(amount sdkmath.Int) Coin
- func (coin Coin) Validate() error
- type Coins
- func (coins Coins) Add(coinsB ...Coin) Coins
- func (coins Coins) AmountOf(denom string) sdkmath.Int
- func (coins Coins) AmountOfNoDenomValidation(denom string) sdkmath.Int
- func (coins Coins) DenomsSubsetOf(coinsB Coins) bool
- func (coins Coins) Empty() bool
- func (coins Coins) GetDenomByIndex(i int) string
- func (coins Coins) IsAllGT(coinsB Coins) bool
- func (coins Coins) IsAllGTE(coinsB Coins) bool
- func (coins Coins) IsAllLT(coinsB Coins) bool
- func (coins Coins) IsAllLTE(coinsB Coins) bool
- func (coins Coins) IsAllPositive() bool
- func (coins Coins) IsAnyGT(coinsB Coins) bool
- func (coins Coins) IsAnyGTE(coinsB Coins) bool
- func (coins Coins) IsAnyNegative() bool
- func (coins Coins) IsAnyNil() bool
- func (coins Coins) IsEqual(coinsB Coins) bool
- func (coins Coins) IsValid() bool
- func (coins Coins) IsZero() bool
- func (coins Coins) Len() int
- func (coins Coins) Less(i, j int) bool
- func (coins Coins) MarshalJSON() ([]byte, error)
- func (coins Coins) Max(coinsB Coins) Coins
- func (coins Coins) Min(coinsB Coins) Coins
- func (coins Coins) SafeSub(coinsB Coins) (Coins, bool)
- func (coins Coins) Sort() Coins
- func (coins Coins) String() string
- func (coins Coins) Sub(coinsB Coins) Coins
- func (coins Coins) Swap(i, j int)
- func (coins Coins) Validate() error
- type DecCoin
- func ConvertDecCoin(coin DecCoin, denom string) (DecCoin, error)
- func NewDecCoin(denom string, amount sdkmath.Int) DecCoin
- func NewDecCoinFromCoin(coin Coin) DecCoin
- func NewDecCoinFromDec(denom string, amount sdkmath.LegacyDec) DecCoin
- func NewInt64DecCoin(denom string, amount int64) DecCoin
- func NormalizeDecCoin(coin DecCoin) DecCoin
- func ParseDecCoin(coinStr string) (coin DecCoin, err error)
- func (coin DecCoin) Add(coinB DecCoin) DecCoin
- func (coin DecCoin) IsEqual(other DecCoin) bool
- func (coin DecCoin) IsGTE(other DecCoin) bool
- func (coin DecCoin) IsLT(other DecCoin) bool
- func (coin DecCoin) IsNegative() bool
- func (coin DecCoin) IsPositive() bool
- func (coin DecCoin) IsValid() bool
- func (coin DecCoin) IsZero() bool
- func (coin DecCoin) String() string
- func (coin DecCoin) Sub(coinB DecCoin) DecCoin
- func (coin DecCoin) TruncateDecimal() (Coin, DecCoin)
- func (coin DecCoin) Validate() error
- type DecCoins
- func (coins DecCoins) Add(coinsB ...DecCoin) DecCoins
- func (coins DecCoins) AmountOf(denom string) sdkmath.LegacyDec
- func (coins DecCoins) Empty() bool
- func (coins DecCoins) GetDenomByIndex(i int) string
- func (coins DecCoins) Intersect(coinsB DecCoins) DecCoins
- func (coins DecCoins) IsAllPositive() bool
- func (coins DecCoins) IsAnyNegative() bool
- func (coins DecCoins) IsEqual(coinsB DecCoins) bool
- func (coins DecCoins) IsValid() bool
- func (coins DecCoins) IsZero() bool
- func (coins DecCoins) Len() int
- func (coins DecCoins) Less(i, j int) bool
- func (coins DecCoins) MulDec(d sdkmath.LegacyDec) DecCoins
- func (coins DecCoins) MulDecTruncate(d sdkmath.LegacyDec) DecCoins
- func (coins DecCoins) QuoDec(d sdkmath.LegacyDec) DecCoins
- func (coins DecCoins) QuoDecTruncate(d sdkmath.LegacyDec) DecCoins
- func (coins DecCoins) SafeSub(coinsB DecCoins) (DecCoins, bool)
- func (coins DecCoins) Sort() DecCoins
- func (coins DecCoins) String() string
- func (coins DecCoins) Sub(coinsB DecCoins) DecCoins
- func (coins DecCoins) Swap(i, j int)
- func (coins DecCoins) TruncateDecimal() (truncatedCoins Coins, changeCoins DecCoins)
- func (coins DecCoins) Validate() error
- type ResourceNodeState
- type SignatureKey
- type Traffic
- type TxFee
- type UnsignedMsg
- type UnsignedMsgBytes
- type UnsignedMsgs
Constants ¶
const ( Stos = "stos" Gwei = "gwei" Wei = "wei" // WeiDenomUnit defines the base denomination unit for stos. // 1 stos = 1x10^{WeiDenomUnit} wei WeiDenomUnit = 18 GweiDenomUnit = 9 )
const ( SignatureSecp256k1 = 0 SignatureEd25519 = 1 )
Variables ¶
This section is empty.
Functions ¶
func DefaultCoinDenomRegex ¶
func DefaultCoinDenomRegex() string
DefaultCoinDenomRegex returns the default regex string
func GetBaseDenom ¶
GetBaseDenom returns the denom of smallest unit registered
func GetDenomUnit ¶
GetDenomUnit returns a unit for a given denomination if it exists. A boolean is returned if the denomination is registered.
func RegisterDenom ¶
RegisterDenom registers a denomination with a corresponding unit. If the denomination is already registered, an error will be returned.
func SetCoinDenomRegex ¶
func SetCoinDenomRegex(reFn func() string)
SetCoinDenomRegex allows for coin's custom validation by overriding the regular expression string used for denom validation.
func ValidateDenom ¶
ValidateDenom is the default validation function for Coin.Denom.
Types ¶
type Coin ¶
func ConvertCoin ¶
ConvertCoin attempts to convert a coin to a given denomination. If the given denomination is invalid or if neither denomination is registered, an error is returned.
func NewCoin ¶
NewCoin returns a new coin with a denomination and amount. It will panic if the amount is negative or if the denomination is invalid.
func NewInt64Coin ¶
NewInt64Coin returns a new coin with a denomination and amount. It will panic if the amount is negative.
func NormalizeCoin ¶
NormalizeCoin try to convert a coin to the smallest unit registered, returns original one if failed.
func ParseCoinNormalized ¶
ParseCoinNormalized parses and normalize a cli input for one coin type, returning errors if invalid or on an empty string as well. Expected format: "{amount}{denomination}"
func (Coin) Add ¶
Add adds amounts of two coins with same denom. If the coins differ in denom then it panics.
func (Coin) IsGTE ¶
IsGTE returns true if they are the same type and the receiver is an equal or greater value
func (Coin) IsNegative ¶
IsNegative returns true if the coin amount is negative and false otherwise.
TODO: Remove once unsigned integers are used.
func (Coin) IsPositive ¶
IsPositive returns true if coin amount is positive.
TODO: Remove once unsigned integers are used.
func (Coin) IsValid ¶
IsValid returns true if the Coin has a non-negative amount and the denom is valid.
func (Coin) Sub ¶
Sub subtracts amounts of two coins with same denom. If the coins differ in denom then it panics.
type Coins ¶
type Coins []Coin
Coins is a set of Coin, one per currency
func NewCoins ¶
NewCoins constructs a new coin set. The provided coins will be sanitized by removing zero coins and sorting the coin set. A panic will occur if the coin set is not valid.
func NormalizeCoins ¶
NormalizeCoins normalize and truncate a list of decimal coins
func ParseCoinsNormalized ¶
ParseCoinsNormalized will parse out a list of coins separated by commas, and normalize them by converting to the smallest unit. If the parsing is successful, the provided coins will be sanitized by removing zero coins and sorting the coin set. Lastly a validation of the coin set is executed. If the check passes, ParseCoinsNormalized will return the sanitized coins. Otherwise, it will return an error. If an empty string is provided to ParseCoinsNormalized, it returns nil Coins. ParseCoinsNormalized supports decimal coins as inputs, and truncate them to int after converted to the smallest unit. Expected format: "{amount0}{denomination},...,{amountN}{denominationN}"
func (Coins) Add ¶
Add adds two sets of coins.
e.g. {2A} + {A, 2B} = {3A, 2B} {2A} + {0B} = {2A}
NOTE: Add operates under the invariant that coins are sorted by denominations.
CONTRACT: Add will never return Coins where one Coin has a non-positive amount. In otherwords, IsValid will always return true. The function panics if `coins` or `coinsB` are not sorted (ascending).
func (Coins) AmountOfNoDenomValidation ¶
AmountOfNoDenomValidation returns the amount of a denom from coins without validating the denomination.
func (Coins) DenomsSubsetOf ¶
DenomsSubsetOf returns true if receiver's denom set is subset of coinsB's denoms.
func (Coins) GetDenomByIndex ¶
GetDenomByIndex returns the Denom of the certain coin to make the findDup generic
func (Coins) IsAllGT ¶
IsAllGT returns true if for every denom in coinsB, the denom is present at a greater amount in coins.
func (Coins) IsAllGTE ¶
IsAllGTE returns false if for any denom in coinsB, the denom is present at a smaller amount in coins; else returns true.
func (Coins) IsAllLT ¶
IsAllLT returns True iff for every denom in coins, the denom is present at a smaller amount in coinsB.
func (Coins) IsAllLTE ¶
IsAllLTE returns true iff for every denom in coins, the denom is present at a smaller or equal amount in coinsB.
func (Coins) IsAllPositive ¶
IsAllPositive returns true if there is at least one coin and all currencies have a positive value.
func (Coins) IsAnyGT ¶
IsAnyGT returns true iff for any denom in coins, the denom is present at a greater amount in coinsB.
e.g. {2A, 3B}.IsAnyGT{A} = true {2A, 3B}.IsAnyGT{5C} = false {}.IsAnyGT{5C} = false {2A, 3B}.IsAnyGT{} = false
func (Coins) IsAnyGTE ¶
IsAnyGTE returns true iff coins contains at least one denom that is present at a greater or equal amount in coinsB; it returns false otherwise.
NOTE: IsAnyGTE operates under the invariant that both coin sets are sorted by denominations and there exists no zero coins.
func (Coins) IsAnyNegative ¶
IsAnyNegative returns true if there is at least one coin whose amount is negative; returns false otherwise. It returns false if the coin set is empty too.
TODO: Remove once unsigned integers are used.
func (Coins) IsAnyNil ¶
IsAnyNil returns true if there is at least one coin whose amount is nil; returns false otherwise. It returns false if the coin set is empty too.
func (Coins) IsValid ¶
IsValid calls Validate and returns true when the Coins are sorted, have positive amount, with a valid and unique denomination (i.e no duplicates).
func (Coins) MarshalJSON ¶
MarshalJSON implements a custom JSON marshaller for the Coins type to allow nil Coins to be encoded as an empty array.
func (Coins) Max ¶
Max takes two valid Coins inputs and returns a valid Coins result where for every denom D, AmountOf(D) of the result is the maximum of AmountOf(D) of the inputs. Note that the result might be not be equal to either input. For any valid Coins a, b, and c, the following are always true:
a.IsAllLTE(a.Max(b)) b.IsAllLTE(a.Max(b)) a.IsAllLTE(c) && b.IsAllLTE(c) == a.Max(b).IsAllLTE(c) a.Add(b...).IsEqual(a.Min(b).Add(a.Max(b)...))
E.g. {1A, 3B, 2C}.Max({4A, 2B, 2C} == {4A, 3B, 2C}) {2A, 3B}.Max({1B, 4C}) == {2A, 3B, 4C} {1A, 2B}.Max({}) == {1A, 2B}
func (Coins) Min ¶
Min takes two valid Coins inputs and returns a valid Coins result where for every denom D, AmountOf(D) of the result is the minimum of AmountOf(D) of the inputs. Note that the result might be not be equal to either input. For any valid Coins a, b, and c, the following are always true:
a.Min(b).IsAllLTE(a) a.Min(b).IsAllLTE(b) c.IsAllLTE(a) && c.IsAllLTE(b) == c.IsAllLTE(a.Min(b)) a.Add(b...).IsEqual(a.Min(b).Add(a.Max(b)...))
E.g. {1A, 3B, 2C}.Min({4A, 2B, 2C} == {1A, 2B, 2C}) {2A, 3B}.Min({1B, 4C}) == {1B} {1A, 2B}.Min({3C}) == empty
See also DecCoins.Intersect().
func (Coins) SafeSub ¶
SafeSub performs the same arithmetic as Sub but returns a boolean if any negative coin amount was returned. The function panics if `coins` or `coinsB` are not sorted (ascending).
type DecCoin ¶
type DecCoin struct { Denom string `json:"denom,omitempty"` Amount sdkmath.LegacyDec `json:"amount"` }
func ConvertDecCoin ¶
ConvertDecCoin attempts to convert a decimal coin to a given denomination. If the given denomination is invalid or if neither denomination is registered, an error is returned.
func NewDecCoin ¶
NewDecCoin creates a new DecCoin instance from an Int.
func NewDecCoinFromCoin ¶
NewDecCoinFromCoin creates a new DecCoin from a Coin.
func NewDecCoinFromDec ¶
NewDecCoinFromDec creates a new DecCoin instance from a Dec.
func NewInt64DecCoin ¶
NewInt64DecCoin returns a new DecCoin with a denomination and amount. It will panic if the amount is negative or denom is invalid.
func NormalizeDecCoin ¶
NormalizeDecCoin try to convert a decimal coin to the smallest unit registered, returns original one if failed.
func ParseDecCoin ¶
ParseDecCoin parses a decimal coin from a string, returning an error if invalid. An empty string is considered invalid.
func (DecCoin) IsGTE ¶
IsGTE returns true if they are the same type and the receiver is an equal or greater value.
func (DecCoin) IsLT ¶
IsLT returns true if they are the same type and the receiver is a smaller value.
func (DecCoin) IsNegative ¶
IsNegative returns true if the coin amount is negative and false otherwise.
TODO: Remove once unsigned integers are used.
func (DecCoin) IsPositive ¶
IsPositive returns true if coin amount is positive.
TODO: Remove once unsigned integers are used.
func (DecCoin) IsValid ¶
IsValid returns true if the DecCoin has a non-negative amount and the denom is valid.
func (DecCoin) String ¶
String implements the Stringer interface for DecCoin. It returns a human-readable representation of a decimal coin.
func (DecCoin) TruncateDecimal ¶
TruncateDecimal returns a Coin with a truncated decimal and a DecCoin for the change. Note, the change may be zero.
type DecCoins ¶
type DecCoins []DecCoin
DecCoins defines a slice of coins with decimal values
func NewDecCoins ¶
NewDecCoins constructs a new coin set with with decimal values from DecCoins. The provided coins will be sanitized by removing zero coins and sorting the coin set. A panic will occur if the coin set is not valid.
func NewDecCoinsFromCoins ¶
NewDecCoinsFromCoins constructs a new coin set with decimal values from regular Coins.
func ParseDecCoins ¶
ParseDecCoins will parse out a list of decimal coins separated by commas. If the parsing is successuful, the provided coins will be sanitized by removing zero coins and sorting the coin set. Lastly a validation of the coin set is executed. If the check passes, ParseDecCoins will return the sanitized coins. Otherwise it will return an error. If an empty string is provided to ParseDecCoins, it returns nil Coins. Expected format: "{amount0}{denomination},...,{amountN}{denominationN}"
func (DecCoins) Add ¶
Add adds two sets of DecCoins.
NOTE: Add operates under the invariant that coins are sorted by denominations.
CONTRACT: Add will never return Coins where one Coin has a non-positive amount. In otherwords, IsValid will always return true.
func (DecCoins) GetDenomByIndex ¶
GetDenomByIndex returns the Denom to make the findDup generic
func (DecCoins) Intersect ¶
Intersect will return a new set of coins which contains the minimum DecCoin for common denoms found in both `coins` and `coinsB`. For denoms not common to both `coins` and `coinsB` the minimum is considered to be 0, thus they are not added to the final set. In other words, trim any denom amount from coin which exceeds that of coinB, such that (coin.Intersect(coinB)).IsLTE(coinB). See also Coins.Min().
func (DecCoins) IsAllPositive ¶
IsAllPositive returns true if there is at least one coin and all currencies have a positive value.
TODO: Remove once unsigned integers are used.
func (DecCoins) IsAnyNegative ¶
IsAnyNegative returns true if there is at least one coin whose amount is negative; returns false otherwise. It returns false if the DecCoins set is empty too.
TODO: Remove once unsigned integers are used.
func (DecCoins) IsValid ¶
IsValid calls Validate and returns true when the DecCoins are sorted, have positive amount, with a valid and unique denomination (i.e no duplicates).
func (DecCoins) MulDec ¶
MulDec multiplies all the coins by a decimal.
CONTRACT: No zero coins will be returned.
func (DecCoins) MulDecTruncate ¶
MulDecTruncate multiplies all the decimal coins by a decimal, truncating. It panics if d is zero.
CONTRACT: No zero coins will be returned.
func (DecCoins) QuoDec ¶
QuoDec divides all the decimal coins by a decimal. It panics if d is zero.
CONTRACT: No zero coins will be returned.
func (DecCoins) QuoDecTruncate ¶
QuoDecTruncate divides all the decimal coins by a decimal, truncating. It panics if d is zero.
CONTRACT: No zero coins will be returned.
func (DecCoins) SafeSub ¶
SafeSub performs the same arithmetic as Sub but returns a boolean if any negative coin amount was returned.
func (DecCoins) String ¶
String implements the Stringer interface for DecCoins. It returns a human-readable representation of decimal coins.
func (DecCoins) TruncateDecimal ¶
TruncateDecimal returns the coins with truncated decimals and returns the change. Note, it will not return any zero-amount coins in either the truncated or change coins.
type ResourceNodeState ¶
type SignatureKey ¶
type SignatureKey struct { AccountNum uint64 `json:"account_num,omitempty"` AccountSequence uint64 `json:"account_sequence,omitempty"` Address string `json:"address,omitempty"` PrivateKey []byte `json:"private_key,omitempty"` Type int `json:"type,omitempty"` }
SignatureKey --------------------------------------
type UnsignedMsg ¶
type UnsignedMsg struct { Msg *anypb.Any `json:"msg,omitempty"` SignatureKeys []*SignatureKey `json:"signature_keys,omitempty"` Type string `json:"type,omitempty"` }
UnsignedMsg ---------------------------------------
func (*UnsignedMsg) ToBytes ¶
func (u *UnsignedMsg) ToBytes() (*UnsignedMsgBytes, error)
type UnsignedMsgBytes ¶
type UnsignedMsgBytes struct { Msg []byte `json:"msg,omitempty"` SignatureKeys []*SignatureKey `json:"signature_keys,omitempty"` Type string `json:"type,omitempty"` }
UnsignedMsgBytes ----------------------------------
func (*UnsignedMsgBytes) FromBytes ¶
func (u *UnsignedMsgBytes) FromBytes() (*UnsignedMsg, error)
type UnsignedMsgs ¶
type UnsignedMsgs struct {
Msgs []*UnsignedMsgBytes `json:"msgs,omitempty"`
}
UnsignedMsgs --------------------------------------