- Move path
- 0x9e0a…764c::stbl
- Functions
- 1615 public, 6 entry
- Structs
- 10
- Friend modules
- None
stbl
Bytecode404 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v6
module 9e0ac77852731a8c89c9c40713f97ea73dbd15c24663bfa8d158e1b64fbb764c.stbl {
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
struct STBL has drop {
dummy_field: bool
}
struct Capability has store, key {
id: UID,
capability: Option<TreasuryCap<STBL>>
}
struct MintCap has store, key {
id: UID
}
struct BurnCap has store, key {
id: UID
}
struct MetadataCap has store, key {
id: UID
}
struct GeneralCap has store, key {
id: UID
}
struct EventMint has copy, drop {
amount: u64,
operator: address
}
struct EventBurn has copy, drop {
amount: u64,
operator: address
}
struct EventUpdateMetadata has copy, drop {
key: String,
value: String,
operator: address
}
struct EventBurnCap has copy, drop {
id: ID,
cap: String,
operator: address
}
init(Arg0: STBL, Arg1: &mut TxContext) {
L2: loc0: Capability
L3: loc1: CoinMetadata<STBL>
L4: loc2: TreasuryCap<STBL>
B0:
0MoveLoc[0](Arg0: STBL)
1LdU8(9)
2LdConst[0](vector<u8>: "STB..)
3LdConst[1](vector<u8>: "Sta..)
4LdConst[1](vector<u8>: "Sta..)
5Call option::none<Url>(): Option<Url>
6CopyLoc[1](Arg1: &mut TxContext)
7Call coin::create_currency<STBL>(STBL, u8, vector<u8>, vector<u8>, vector<u8>, Option<Url>, &mut TxContext): TreasuryCap<STBL> * CoinMetadata<STBL>
8StLoc[3](loc1: CoinMetadata<STBL>)
9StLoc[4](loc2: TreasuryCap<STBL>)
10CopyLoc[1](Arg1: &mut TxContext)
11Call object::new(&mut TxContext): UID
12MoveLoc[4](loc2: TreasuryCap<STBL>)
13Call option::some<TreasuryCap<STBL>>(TreasuryCap<STBL>): Option<TreasuryCap<STBL>>
14Pack[1](Capability)
15StLoc[2](loc0: Capability)
16MoveLoc[3](loc1: CoinMetadata<STBL>)
17Call transfer::public_share_object<CoinMetadata<STBL>>(CoinMetadata<STBL>)
18MoveLoc[2](loc0: Capability)
19Call transfer::public_share_object<Capability>(Capability)
20CopyLoc[1](Arg1: &mut TxContext)
21Call object::new(&mut TxContext): UID
22Pack[2](MintCap)
23CopyLoc[1](Arg1: &mut TxContext)
24FreezeRef
25Call tx_context::sender(&TxContext): address
26Call transfer::public_transfer<MintCap>(MintCap, address)
27CopyLoc[1](Arg1: &mut TxContext)
28Call object::new(&mut TxContext): UID
29Pack[3](BurnCap)
30CopyLoc[1](Arg1: &mut TxContext)
31FreezeRef
32Call tx_context::sender(&TxContext): address
33Call transfer::public_transfer<BurnCap>(BurnCap, address)
34CopyLoc[1](Arg1: &mut TxContext)
35Call object::new(&mut TxContext): UID
36Pack[4](MetadataCap)
37CopyLoc[1](Arg1: &mut TxContext)
38FreezeRef
39Call tx_context::sender(&TxContext): address
40Call transfer::public_transfer<MetadataCap>(MetadataCap, address)
41CopyLoc[1](Arg1: &mut TxContext)
42Call object::new(&mut TxContext): UID
43Pack[5](GeneralCap)
44MoveLoc[1](Arg1: &mut TxContext)
45FreezeRef
46Call tx_context::sender(&TxContext): address
47Call transfer::public_transfer<GeneralCap>(GeneralCap, address)
48Ret
}
public mint(Arg0: &mut Capability, Arg1: &MintCap, Arg2: u64, Arg3: &mut TxContext): Coin<STBL> {
B0:
0CopyLoc[2](Arg2: u64)
1CopyLoc[3](Arg3: &mut TxContext)
2FreezeRef
3Call tx_context::sender(&TxContext): address
4Pack[6](EventMint)
5Call event::emit<EventMint>(EventMint)
6MoveLoc[0](Arg0: &mut Capability)
7MutBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
8Call option::borrow_mut<TreasuryCap<STBL>>(&mut Option<TreasuryCap<STBL>>): &mut TreasuryCap<STBL>
9MoveLoc[2](Arg2: u64)
10MoveLoc[3](Arg3: &mut TxContext)
11Call coin::mint<STBL>(&mut TreasuryCap<STBL>, u64, &mut TxContext): Coin<STBL>
12Ret
}
entry public mint_and_transfer(Arg0: &mut Capability, Arg1: &MintCap, Arg2: u64, Arg3: address, Arg4: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Capability)
1MutBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::borrow_mut<TreasuryCap<STBL>>(&mut Option<TreasuryCap<STBL>>): &mut TreasuryCap<STBL>
3CopyLoc[2](Arg2: u64)
4MoveLoc[3](Arg3: address)
5CopyLoc[4](Arg4: &mut TxContext)
6Call coin::mint_and_transfer<STBL>(&mut TreasuryCap<STBL>, u64, address, &mut TxContext)
7MoveLoc[2](Arg2: u64)
8MoveLoc[4](Arg4: &mut TxContext)
9FreezeRef
10Call tx_context::sender(&TxContext): address
11Pack[6](EventMint)
12Call event::emit<EventMint>(EventMint)
13Ret
}
entry public burn(Arg0: &mut Capability, Arg1: &BurnCap, Arg2: Coin<STBL>, Arg3: &TxContext) {
B0:
0ImmBorrowLoc[2](Arg2: Coin<STBL>)
1Call coin::value<STBL>(&Coin<STBL>): u64
2MoveLoc[3](Arg3: &TxContext)
3Call tx_context::sender(&TxContext): address
4Pack[7](EventBurn)
5Call event::emit<EventBurn>(EventBurn)
6MoveLoc[0](Arg0: &mut Capability)
7MutBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
8Call option::borrow_mut<TreasuryCap<STBL>>(&mut Option<TreasuryCap<STBL>>): &mut TreasuryCap<STBL>
9MoveLoc[2](Arg2: Coin<STBL>)
10Call coin::burn<STBL>(&mut TreasuryCap<STBL>, Coin<STBL>): u64
11Pop
12Ret
}
entry public update_name(Arg0: &Capability, Arg1: &MetadataCap, Arg2: &mut CoinMetadata<STBL>, Arg3: String, Arg4: &TxContext) {
B0:
0MoveLoc[0](Arg0: &Capability)
1ImmBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::borrow<TreasuryCap<STBL>>(&Option<TreasuryCap<STBL>>): &TreasuryCap<STBL>
3MoveLoc[2](Arg2: &mut CoinMetadata<STBL>)
4CopyLoc[3](Arg3: String)
5Call coin::update_name<STBL>(&TreasuryCap<STBL>, &mut CoinMetadata<STBL>, String)
6LdConst[2](vector<u8>: "nam..)
7Call string::utf8(vector<u8>): String
8MoveLoc[3](Arg3: String)
9MoveLoc[4](Arg4: &TxContext)
10Call tx_context::sender(&TxContext): address
11Pack[8](EventUpdateMetadata)
12Call event::emit<EventUpdateMetadata>(EventUpdateMetadata)
13Ret
}
entry public update_symbol(Arg0: &Capability, Arg1: &MetadataCap, Arg2: &mut CoinMetadata<STBL>, Arg3: String, Arg4: &TxContext) {
B0:
0MoveLoc[0](Arg0: &Capability)
1ImmBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::borrow<TreasuryCap<STBL>>(&Option<TreasuryCap<STBL>>): &TreasuryCap<STBL>
3MoveLoc[2](Arg2: &mut CoinMetadata<STBL>)
4CopyLoc[3](Arg3: String)
5Call coin::update_symbol<STBL>(&TreasuryCap<STBL>, &mut CoinMetadata<STBL>, String)
6LdConst[3](vector<u8>: "sym..)
7Call string::utf8(vector<u8>): String
8MoveLoc[3](Arg3: String)
9Call string::from_ascii(String): String
10MoveLoc[4](Arg4: &TxContext)
11Call tx_context::sender(&TxContext): address
12Pack[8](EventUpdateMetadata)
13Call event::emit<EventUpdateMetadata>(EventUpdateMetadata)
14Ret
}
entry public update_description(Arg0: &Capability, Arg1: &MetadataCap, Arg2: &mut CoinMetadata<STBL>, Arg3: String, Arg4: &TxContext) {
B0:
0MoveLoc[0](Arg0: &Capability)
1ImmBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::borrow<TreasuryCap<STBL>>(&Option<TreasuryCap<STBL>>): &TreasuryCap<STBL>
3MoveLoc[2](Arg2: &mut CoinMetadata<STBL>)
4CopyLoc[3](Arg3: String)
5Call coin::update_description<STBL>(&TreasuryCap<STBL>, &mut CoinMetadata<STBL>, String)
6LdConst[4](vector<u8>: "des..)
7Call string::utf8(vector<u8>): String
8MoveLoc[3](Arg3: String)
9MoveLoc[4](Arg4: &TxContext)
10Call tx_context::sender(&TxContext): address
11Pack[8](EventUpdateMetadata)
12Call event::emit<EventUpdateMetadata>(EventUpdateMetadata)
13Ret
}
entry public update_icon_url(Arg0: &Capability, Arg1: &MetadataCap, Arg2: &mut CoinMetadata<STBL>, Arg3: String, Arg4: &TxContext) {
B0:
0MoveLoc[0](Arg0: &Capability)
1ImmBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::borrow<TreasuryCap<STBL>>(&Option<TreasuryCap<STBL>>): &TreasuryCap<STBL>
3MoveLoc[2](Arg2: &mut CoinMetadata<STBL>)
4CopyLoc[3](Arg3: String)
5Call coin::update_icon_url<STBL>(&TreasuryCap<STBL>, &mut CoinMetadata<STBL>, String)
6LdConst[5](vector<u8>: "ico..)
7Call string::utf8(vector<u8>): String
8MoveLoc[3](Arg3: String)
9Call string::from_ascii(String): String
10MoveLoc[4](Arg4: &TxContext)
11Call tx_context::sender(&TxContext): address
12Pack[8](EventUpdateMetadata)
13Call event::emit<EventUpdateMetadata>(EventUpdateMetadata)
14Ret
}
public total_supply(Arg0: &Capability, Arg1: &GeneralCap): u64 {
B0:
0MoveLoc[0](Arg0: &Capability)
1ImmBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::borrow<TreasuryCap<STBL>>(&Option<TreasuryCap<STBL>>): &TreasuryCap<STBL>
3Call coin::total_supply<STBL>(&TreasuryCap<STBL>): u64
4Ret
}
public treasury_into_supply(Arg0: &mut Capability, Arg1: &GeneralCap): Supply<STBL> {
B0:
0MoveLoc[0](Arg0: &mut Capability)
1MutBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::extract<TreasuryCap<STBL>>(&mut Option<TreasuryCap<STBL>>): TreasuryCap<STBL>
3Call coin::treasury_into_supply<STBL>(TreasuryCap<STBL>): Supply<STBL>
4Ret
}
public supply_immut(Arg0: &Capability, Arg1: &GeneralCap): &Supply<STBL> {
B0:
0MoveLoc[0](Arg0: &Capability)
1ImmBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::borrow<TreasuryCap<STBL>>(&Option<TreasuryCap<STBL>>): &TreasuryCap<STBL>
3Call coin::supply_immut<STBL>(&TreasuryCap<STBL>): &Supply<STBL>
4Ret
}
public supply_mut(Arg0: &mut Capability, Arg1: &GeneralCap): &mut Supply<STBL> {
B0:
0MoveLoc[0](Arg0: &mut Capability)
1MutBorrowField[0](Capability.capability: Option<TreasuryCap<STBL>>)
2Call option::borrow_mut<TreasuryCap<STBL>>(&mut Option<TreasuryCap<STBL>>): &mut TreasuryCap<STBL>
3Call coin::supply_mut<STBL>(&mut TreasuryCap<STBL>): &mut Supply<STBL>
4Ret
}
public delete_mint_cap(Arg0: MintCap, Arg1: &TxContext) {
L2: loc0: String
L3: loc1: ID
L4: loc2: address
L5: loc3: UID
B0:
0MoveLoc[0](Arg0: MintCap)
1Unpack[2](MintCap)
2StLoc[5](loc3: UID)
3LdConst[6](vector<u8>: "Min..)
4Call string::utf8(vector<u8>): String
5StLoc[2](loc0: String)
6ImmBorrowLoc[5](loc3: UID)
7Call object::uid_to_inner(&UID): ID
8StLoc[3](loc1: ID)
9MoveLoc[1](Arg1: &TxContext)
10Call tx_context::sender(&TxContext): address
11StLoc[4](loc2: address)
12MoveLoc[3](loc1: ID)
13MoveLoc[2](loc0: String)
14MoveLoc[4](loc2: address)
15Pack[9](EventBurnCap)
16Call event::emit<EventBurnCap>(EventBurnCap)
17MoveLoc[5](loc3: UID)
18Call object::delete(UID)
19Ret
}
public delete_burn_cap(Arg0: BurnCap, Arg1: &TxContext) {
L2: loc0: String
L3: loc1: ID
L4: loc2: address
L5: loc3: UID
B0:
0MoveLoc[0](Arg0: BurnCap)
1Unpack[3](BurnCap)
2StLoc[5](loc3: UID)
3LdConst[7](vector<u8>: "Bur..)
4Call string::utf8(vector<u8>): String
5StLoc[2](loc0: String)
6ImmBorrowLoc[5](loc3: UID)
7Call object::uid_to_inner(&UID): ID
8StLoc[3](loc1: ID)
9MoveLoc[1](Arg1: &TxContext)
10Call tx_context::sender(&TxContext): address
11StLoc[4](loc2: address)
12MoveLoc[3](loc1: ID)
13MoveLoc[2](loc0: String)
14MoveLoc[4](loc2: address)
15Pack[9](EventBurnCap)
16Call event::emit<EventBurnCap>(EventBurnCap)
17MoveLoc[5](loc3: UID)
18Call object::delete(UID)
19Ret
}
public delete_metadata_cap(Arg0: MetadataCap, Arg1: &TxContext) {
L2: loc0: String
L3: loc1: ID
L4: loc2: address
L5: loc3: UID
B0:
0MoveLoc[0](Arg0: MetadataCap)
1Unpack[4](MetadataCap)
2StLoc[5](loc3: UID)
3LdConst[8](vector<u8>: "Met..)
4Call string::utf8(vector<u8>): String
5StLoc[2](loc0: String)
6ImmBorrowLoc[5](loc3: UID)
7Call object::uid_to_inner(&UID): ID
8StLoc[3](loc1: ID)
9MoveLoc[1](Arg1: &TxContext)
10Call tx_context::sender(&TxContext): address
11StLoc[4](loc2: address)
12MoveLoc[3](loc1: ID)
13MoveLoc[2](loc0: String)
14MoveLoc[4](loc2: address)
15Pack[9](EventBurnCap)
16Call event::emit<EventBurnCap>(EventBurnCap)
17MoveLoc[5](loc3: UID)
18Call object::delete(UID)
19Ret
}
public delete_general_cap(Arg0: GeneralCap, Arg1: &TxContext) {
L2: loc0: String
L3: loc1: ID
L4: loc2: address
L5: loc3: UID
B0:
0MoveLoc[0](Arg0: GeneralCap)
1Unpack[5](GeneralCap)
2StLoc[5](loc3: UID)
3LdConst[9](vector<u8>: "Gen..)
4Call string::utf8(vector<u8>): String
5StLoc[2](loc0: String)
6ImmBorrowLoc[5](loc3: UID)
7Call object::uid_to_inner(&UID): ID
8StLoc[3](loc1: ID)
9MoveLoc[1](Arg1: &TxContext)
10Call tx_context::sender(&TxContext): address
11StLoc[4](loc2: address)
12MoveLoc[3](loc1: ID)
13MoveLoc[2](loc0: String)
14MoveLoc[4](loc2: address)
15Pack[9](EventBurnCap)
16Call event::emit<EventBurnCap>(EventBurnCap)
17MoveLoc[5](loc3: UID)
18Call object::delete(UID)
19Ret
}
Constants [
0 => vector<u8>: "STBL" // interpreted as UTF8 string
1 => vector<u8>: "Starble" // interpreted as UTF8 string
2 => vector<u8>: "name" // interpreted as UTF8 string
3 => vector<u8>: "symbol" // interpreted as UTF8 string
4 => vector<u8>: "description" // interpreted as UTF8 string
5 => vector<u8>: "icon_url" // interpreted as UTF8 string
6 => vector<u8>: "MintCap" // interpreted as UTF8 string
7 => vector<u8>: "BurnCap" // interpreted as UTF8 string
8 => vector<u8>: "MetadataCap" // interpreted as UTF8 string
9 => vector<u8>: "GeneralCap" // interpreted as UTF8 string
]
}