axelar-cgp-sui

Module 0xa5::token_manager_type

Struct TokenManagerType

struct TokenManagerType has copy, drop
Fields
token_manager_type: u256

Constants

#[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;

Function lock_unlock

public fun lock_unlock(): token_manager_type::TokenManagerType
Implementation
public fun lock_unlock(): TokenManagerType {
    from_u256(LOCK_UNLOCK)
}

Function mint_burn

public fun mint_burn(): token_manager_type::TokenManagerType
Implementation
public fun mint_burn(): TokenManagerType {
    from_u256(MINT_BURN)
}

Function 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
Implementation
public(package) fun native_interchain_token(): TokenManagerType {
    from_u256(NATIVE_INTERCHAIN_TOKEN)
}

Function from_u256

public(friend) fun from_u256(token_manager_type: u256): token_manager_type::TokenManagerType
Implementation
public(package) fun from_u256(token_manager_type: u256): TokenManagerType {
    assert!(token_manager_type <= MAX_TOKEN_MANAGER_TYPE, EInvalidTokenManagerType);

    TokenManagerType {
        token_manager_type,
    }
}

Function to_u256

public(friend) fun to_u256(token_manager_type: token_manager_type::TokenManagerType): u256
Implementation
public(package) fun to_u256(token_manager_type: TokenManagerType): u256 {
    let TokenManagerType { token_manager_type } = token_manager_type;
    token_manager_type
}