Skip to main content

Module bridge::treasury

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

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

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