Coin Decimals
It stores information about Coins' decimals to allow protocols to fetch them. The idea is to pass a single argument CoinDecimals to functions that require several sui::coin::CoinMetadata objects.
Structs
Decimals
struct Decimals has store {
decimals: u8,
scalar: u64
}decimals - decimals of a
sui::coinscalar - The scalar of a
sui::coin's decimals. It is calculated by 10^decimals. E.g.sui::suihas a scalar of 1_000_000_000 or 1e9.
CoinDecimals
struct CoinDecimals has key, store {
id: UID
}The Decimals struct is saved in CoinDecimals using dynamic fields.
Interface
new
It creates a new CoinDecimals.
public fun new(ctx: &mut TxContext): CoinDecimals@return CoinDecimals.
contains
Checks if a coin with type CoinType has been added to self.
public fun contains<CoinType>(self: &CoinDecimals): bool@param self A {CoinDecimals} object.
@return bool. True if the coin's decimals and scalar are in the
self.
decimals
Returns the decimals of a coin with the type CoinType.
public fun decimals<CoinType>(self: &CoinDecimals): u8@param self A CoinDecimals object.
@return u8. The decimals of the coin.
Aborts
CoinTypehas not been added to theself.
scalar
Returns the decimals scalar of a coin with type CoinType.
public fun scalar<CoinType>(self: &CoinDecimals): u64@param self A {CoinDecimals} object.
@return u64. The decimal's scalar. It is calculated by 10^decimals.
Aborts
CoinTypehas not been added to theself.
add
Adds the decimals and decimal scalar of a coin with type CoinType to self.
public fun add<CoinType>(self: &mut CoinDecimals, coin_metadata: &CoinMetadata<CoinType>)@param self A CoinDecimals object.
@return coin_metadata The
sui::coin::CoinMetadataof a coin with typeCoinType.
Last updated
Was this helpful?