0xa5::token_manager_type
TokenManagerType
lock_unlock
mint_burn
native_interchain_token
from_u256
to_u256
TokenManagerType
struct TokenManagerType has copy, drop
token_manager_type: u256
#[error]
const EInvalidTokenManagerType: vector<u8> = b"invalid token manager type";
const LOCK_UNLOCK: u256 = 2;
const LOCK_UNLOCK_FEE: u256 = 3;
const MAX_TOKEN_MANAGER_TYPE: u256 = 4;
const MINT_BURN: u256 = 4;
const MINT_BURN_FROM: u256 = 1;
const NATIVE_INTERCHAIN_TOKEN: u256 = 0;
lock_unlock
public fun lock_unlock(): token_manager_type::TokenManagerType
public fun lock_unlock(): TokenManagerType {
from_u256(LOCK_UNLOCK)
}
mint_burn
public fun mint_burn(): token_manager_type::TokenManagerType
public fun mint_burn(): TokenManagerType {
from_u256(MINT_BURN)
}
native_interchain_token
Returns the TokenManagerType
for the native interchain token.
This should NOT be allowed to be created outside of ITS since custom tokens can’t be linked via this type.
public(friend) fun native_interchain_token(): token_manager_type::TokenManagerType
public(package) fun native_interchain_token(): TokenManagerType {
from_u256(NATIVE_INTERCHAIN_TOKEN)
}
from_u256
public(friend) fun from_u256(token_manager_type: u256): token_manager_type::TokenManagerType
public(package) fun from_u256(token_manager_type: u256): TokenManagerType {
assert!(token_manager_type <= MAX_TOKEN_MANAGER_TYPE, EInvalidTokenManagerType);
TokenManagerType {
token_manager_type,
}
}
to_u256
public(friend) fun to_u256(token_manager_type: token_manager_type::TokenManagerType): u256
public(package) fun to_u256(token_manager_type: TokenManagerType): u256 {
let TokenManagerType { token_manager_type } = token_manager_type;
token_manager_type
}