Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

shttoken

Module0xff3e…279d
Move path
0x61e6…e413::shttoken
Functions
53 public, 2 entry
Structs
3
shttoken

Bytecode228 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v6
module 61e6afef2cafd54a7f9824e5301a02224bd2cf9ab9c52ce4e780d2ae6f09e413.shttoken {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
 
struct SHTTOKEN has drop {
dummy_field: bool
}
 
struct NestMintCap has store, key {
id: UID
}
 
struct NestMintCapV2 has key {
id: UID
}
 
struct MinigamesMintCap has key {
id: UID
}
 
struct StakingMintCap has key {
id: UID
}
 
struct SharedTreasury has key {
id: UID,
treasury_cap: TreasuryCap<SHTTOKEN>
}
 
init(Arg0: SHTTOKEN, Arg1: &mut TxContext) {
L2: loc0: CoinMetadata<SHTTOKEN>
L3: loc1: TreasuryCap<SHTTOKEN>
B0:
0MoveLoc[0](Arg0: SHTTOKEN)
1LdU8(9)
2LdConst[2](vector<u8>: "SHT..)
3LdConst[3](vector<u8>: "Swe..)
4LdConst[4](vector<u8>: "Uti..)
5LdConst[5](vector<u8>: "htt..)
6Call url::new_unsafe_from_bytes(vector<u8>): Url
7Call option::some<Url>(Url): Option<Url>
8CopyLoc[1](Arg1: &mut TxContext)
9Call coin::create_currency<SHTTOKEN>(SHTTOKEN, u8, vector<u8>, vector<u8>, vector<u8>, Option<Url>, &mut TxContext): TreasuryCap<SHTTOKEN> * CoinMetadata<SHTTOKEN>
10StLoc[2](loc0: CoinMetadata<SHTTOKEN>)
11StLoc[3](loc1: TreasuryCap<SHTTOKEN>)
12MoveLoc[2](loc0: CoinMetadata<SHTTOKEN>)
13Call transfer::public_freeze_object<CoinMetadata<SHTTOKEN>>(CoinMetadata<SHTTOKEN>)
14MutBorrowLoc[3](loc1: TreasuryCap<SHTTOKEN>)
15LdU64(100000000000000000)
16CopyLoc[1](Arg1: &mut TxContext)
17Call coin::mint<SHTTOKEN>(&mut TreasuryCap<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
18CopyLoc[1](Arg1: &mut TxContext)
19FreezeRef
20Call tx_context::sender(&TxContext): address
21Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
22CopyLoc[1](Arg1: &mut TxContext)
23Call object::new(&mut TxContext): UID
24Pack[1](NestMintCap)
25Call transfer::share_object<NestMintCap>(NestMintCap)
26MoveLoc[3](loc1: TreasuryCap<SHTTOKEN>)
27MoveLoc[1](Arg1: &mut TxContext)
28FreezeRef
29Call tx_context::sender(&TxContext): address
30Call transfer::public_transfer<TreasuryCap<SHTTOKEN>>(TreasuryCap<SHTTOKEN>, address)
31Ret
}
 
entry public create_shared_treasury(Arg0: TreasuryCap<SHTTOKEN>, Arg1: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[0](Arg0: TreasuryCap<SHTTOKEN>)
3Pack[5](SharedTreasury)
4Call transfer::share_object<SharedTreasury>(SharedTreasury)
5Ret
}
 
entry public create_nest_mint_cap_v2(Arg0: &Publisher, Arg1: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<NestMintCap>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(8)
B2:
4MoveLoc[1](Arg1: &mut TxContext)
5Pop
6LdConst[1](u64: 2)
7Abort
B3:
8MoveLoc[1](Arg1: &mut TxContext)
9Call object::new(&mut TxContext): UID
10Pack[2](NestMintCapV2)
11Call transfer::share_object<NestMintCapV2>(NestMintCapV2)
12Ret
}
 
entry public create_minigames_mint_cap(Arg0: &Publisher, Arg1: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<MinigamesMintCap>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(8)
B2:
4MoveLoc[1](Arg1: &mut TxContext)
5Pop
6LdConst[1](u64: 2)
7Abort
B3:
8MoveLoc[1](Arg1: &mut TxContext)
9Call object::new(&mut TxContext): UID
10Pack[3](MinigamesMintCap)
11Call transfer::share_object<MinigamesMintCap>(MinigamesMintCap)
12Ret
}
 
entry public create_staking_mint_cap(Arg0: &Publisher, Arg1: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<StakingMintCap>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(8)
B2:
4MoveLoc[1](Arg1: &mut TxContext)
5Pop
6LdConst[1](u64: 2)
7Abort
B3:
8MoveLoc[1](Arg1: &mut TxContext)
9Call object::new(&mut TxContext): UID
10Pack[4](StakingMintCap)
11Call transfer::share_object<StakingMintCap>(StakingMintCap)
12Ret
}
 
entry public delete_nest_mint_cap_v1(Arg0: &Publisher, Arg1: NestMintCap) {
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<NestMintCap>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(6)
B2:
4LdConst[1](u64: 2)
5Abort
B3:
6MoveLoc[1](Arg1: NestMintCap)
7Unpack[1](NestMintCap)
8Call object::delete(UID)
9Ret
}
 
public(friend) mint_for_nest(Arg0: &NestMintCap, Arg1: &mut SharedTreasury, Arg2: u64, Arg3: &mut TxContext): Coin<SHTTOKEN> {
B0:
0MoveLoc[1](Arg1: &mut SharedTreasury)
1MutBorrowField[0](SharedTreasury.treasury_cap: TreasuryCap<SHTTOKEN>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: &mut TxContext)
4Call coin::mint<SHTTOKEN>(&mut TreasuryCap<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
5Ret
}
 
public(friend) mint_for_nest_v2(Arg0: &NestMintCapV2, Arg1: &mut SharedTreasury, Arg2: u64, Arg3: &mut TxContext): Coin<SHTTOKEN> {
B0:
0MoveLoc[1](Arg1: &mut SharedTreasury)
1MutBorrowField[0](SharedTreasury.treasury_cap: TreasuryCap<SHTTOKEN>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: &mut TxContext)
4Call coin::mint<SHTTOKEN>(&mut TreasuryCap<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
5Ret
}
 
public(friend) mint_for_minigames(Arg0: &MinigamesMintCap, Arg1: &mut SharedTreasury, Arg2: u64, Arg3: &mut TxContext): Coin<SHTTOKEN> {
B0:
0MoveLoc[1](Arg1: &mut SharedTreasury)
1MutBorrowField[0](SharedTreasury.treasury_cap: TreasuryCap<SHTTOKEN>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: &mut TxContext)
4Call coin::mint<SHTTOKEN>(&mut TreasuryCap<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
5Ret
}
 
public(friend) mint_for_staking(Arg0: &StakingMintCap, Arg1: &mut SharedTreasury, Arg2: u64, Arg3: &mut TxContext): Coin<SHTTOKEN> {
B0:
0MoveLoc[1](Arg1: &mut SharedTreasury)
1MutBorrowField[0](SharedTreasury.treasury_cap: TreasuryCap<SHTTOKEN>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: &mut TxContext)
4Call coin::mint<SHTTOKEN>(&mut TreasuryCap<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
5Ret
}
 
entry public burn(Arg0: &mut SharedTreasury, Arg1: Coin<SHTTOKEN>) {
B0:
0MoveLoc[0](Arg0: &mut SharedTreasury)
1MutBorrowField[0](SharedTreasury.treasury_cap: TreasuryCap<SHTTOKEN>)
2MoveLoc[1](Arg1: Coin<SHTTOKEN>)
3Call coin::burn<SHTTOKEN>(&mut TreasuryCap<SHTTOKEN>, Coin<SHTTOKEN>): u64
4Pop
5Ret
}
 
public total_supply(Arg0: &SharedTreasury): u64 {
B0:
0MoveLoc[0](Arg0: &SharedTreasury)
1ImmBorrowField[0](SharedTreasury.treasury_cap: TreasuryCap<SHTTOKEN>)
2Call coin::total_supply<SHTTOKEN>(&TreasuryCap<SHTTOKEN>): u64
3Ret
}
 
Constants [
0 => u64: 1
1 => u64: 2
2 => vector<u8>: "SHT" // interpreted as UTF8 string
3 => vector<u8>: "Sweet Hatch Tonic" // interpreted as UTF8 string
4 => vector<u8>: "Utility token designed to fuel Duck Dynasty ecosystem" // interpreted as UTF8 string
5 => vector<u8>: "https://duckdynasty.io/sht.png" // interpreted as UTF8 string
]
}