Module bridge::treasury
- Struct BridgeTreasury
- Struct BridgeTokenMetadata
- Struct ForeignTokenRegistration
- Struct UpdateTokenPriceEvent
- Struct NewTokenEvent
- Struct TokenRegistrationEvent
- Constants
- Function token_id
- Function decimal_multiplier
- Function notional_value
- Function register_foreign_token
- Function add_new_token
- Function create
- Function burn
- Function mint
- Function update_asset_notional_price
- Function get_token_metadata
use std::address;
use std::ascii;
use std::bcs;
use std::internal;
use std::option;
use std::string;
use std::type_name;
use std::u128;
use std::u64;
use std::vector;
use sui::accumulator;
use sui::accumulator_settlement;
use sui::address;
use sui::bag;
use sui::balance;
use sui::bcs;
use sui::coin;
use sui::config;
use sui::deny_list;
use sui::dynamic_field;
use sui::dynamic_object_field;
use sui::event;
use sui::funds_accumulator;
use sui::hash;
use sui::hex;
use sui::object;
use sui::object_bag;
use sui::package;
use sui::party;
use sui::protocol_config;
use sui::table;
use sui::transfer;
use sui::tx_context;
use sui::types;
use sui::url;
use sui::vec_map;
use sui::vec_set;
Struct BridgeTreasury
public struct BridgeTreasury has store
Click to open
Fields
- treasuries: sui::object_bag::ObjectBag
- supported_tokens: sui::vec_map::VecMap<std::type_name::TypeName, bridge::treasury::BridgeTokenMetadata>
- id_token_type_map: sui::vec_map::VecMap<u8, std::type_name::TypeName>
- waiting_room: sui::bag::Bag
Struct BridgeTokenMetadata
public struct BridgeTokenMetadata has copy, drop, store
Click to open
Fields
- id: u8
- decimal_multiplier: u64
- notional_value: u64
- native_token: bool
Struct ForeignTokenRegistration
public struct ForeignTokenRegistration has store
Click to open
Fields
- type_name: std::type_name::TypeName
- uc: sui::package::UpgradeCap
- decimal: u8
Struct UpdateTokenPriceEvent
public struct UpdateTokenPriceEvent has copy, drop
Click to open
Fields
- token_id: u8
- new_price: u64
Struct NewTokenEvent
public struct NewTokenEvent has copy, drop
Click to open
Fields
- token_id: u8
- type_name: std::type_name::TypeName
- native_token: bool
- decimal_multiplier: u64
- notional_value: u64
Struct TokenRegistrationEvent
public struct TokenRegistrationEvent has copy, drop
Click to open
Fields
- type_name: std::type_name::TypeName
- decimal: u8
- native_token: bool
Constants
const EUnsupportedTokenType: u64 = 1;
const EInvalidUpgradeCap: u64 = 2;
const ETokenSupplyNonZero: u64 = 3;
const EInvalidNotionalValue: u64 = 4;
Function token_id
public fun token_id<T>(self: &bridge::treasury::BridgeTreasury): u8
Function decimal_multiplier
public fun decimal_multiplier<T>(self: &bridge::treasury::BridgeTreasury): u64
Function notional_value
public fun notional_value<T>(self: &bridge::treasury::BridgeTreasury): u64
Function register_foreign_token
public(package) fun register_foreign_token<T>(self: &mut bridge::treasury::BridgeTreasury, tc: sui::coin::TreasuryCap<T>, uc: sui::package::UpgradeCap, metadata: &sui::coin::CoinMetadata<T>)
Function add_new_token
public(package) fun add_new_token(self: &mut bridge::treasury::BridgeTreasury, token_name: std::ascii::String, token_id: u8, native_token: bool, notional_value: u64)
Function create
public(package) fun create(ctx: &mut sui::tx_context::TxContext): bridge::treasury::BridgeTreasury
Function burn
public(package) fun burn<T>(self: &mut bridge::treasury::BridgeTreasury, token: sui::coin::Coin<T>)
Function mint
public(package) fun mint<T>(self: &mut bridge::treasury::BridgeTreasury, amount: u64, ctx: &mut sui::tx_context::TxContext): sui::coin::Coin<T>
Function update_asset_notional_price
public(package) fun update_asset_notional_price(self: &mut bridge::treasury::BridgeTreasury, token_id: u8, new_usd_price: u64)
Function get_token_metadata
fun get_token_metadata<T>(self: &bridge::treasury::BridgeTreasury): bridge::treasury::BridgeTokenMetadata