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

coin

Module0x0000…0002
Move path
0x0000…0002::coin
Functions
5447 public, 7 entry
Structs
7
Friend modules
coin_registry
coin

Bytecode855 lines

The on-chain disassembly. Offsets are instruction numbers within each function.

// Move bytecode v7
module 2.coin {
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::deny_list;
use 0000000000000000000000000000000000000000000000000000000000000002::funds_accumulator;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::types;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
 
struct Coin<phantom Ty0> has store, key {
id: UID,
balance: Balance<Ty0>
}
 
struct CoinMetadata<phantom Ty0> has store, key {
id: UID,
decimals: u8,
name: String,
symbol: String,
description: String,
icon_url: Option<Url>
}
 
struct RegulatedCoinMetadata<phantom Ty0> has key {
id: UID,
coin_metadata_object: ID,
deny_cap_object: ID
}
 
struct TreasuryCap<phantom Ty0> has store, key {
id: UID,
total_supply: Supply<Ty0>
}
 
struct DenyCapV2<phantom Ty0> has store, key {
id: UID,
allow_global_pause: bool
}
 
struct CurrencyCreated<phantom Ty0> has copy, drop {
decimals: u8
}
 
struct DenyCap<phantom Ty0> has store, key {
id: UID
}
 
public total_supply<Ty0>(Arg0: &TreasuryCap<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &TreasuryCap<Ty0>)
1ImmBorrowFieldGeneric[0](TreasuryCap.total_supply: Supply<Ty0>)
2Call balance::supply_value<Ty0>(&Supply<Ty0>): u64
3Ret
}
 
public treasury_into_supply<Ty0>(Arg0: TreasuryCap<Ty0>): Supply<Ty0> {
L1: loc0: Supply<Ty0>
B0:
0MoveLoc[0](Arg0: TreasuryCap<Ty0>)
1UnpackGeneric[0](TreasuryCap<Ty0>)
2StLoc[1](loc0: Supply<Ty0>)
3Call object::delete(UID)
4MoveLoc[1](loc0: Supply<Ty0>)
5Ret
}
 
public supply_immut<Ty0>(Arg0: &TreasuryCap<Ty0>): &Supply<Ty0> {
B0:
0MoveLoc[0](Arg0: &TreasuryCap<Ty0>)
1ImmBorrowFieldGeneric[0](TreasuryCap.total_supply: Supply<Ty0>)
2Ret
}
 
public supply_mut<Ty0>(Arg0: &mut TreasuryCap<Ty0>): &mut Supply<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut TreasuryCap<Ty0>)
1MutBorrowFieldGeneric[0](TreasuryCap.total_supply: Supply<Ty0>)
2Ret
}
 
public value<Ty0>(Arg0: &Coin<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &Coin<Ty0>)
1ImmBorrowFieldGeneric[1](Coin.balance: Balance<Ty0>)
2Call balance::value<Ty0>(&Balance<Ty0>): u64
3Ret
}
 
public balance<Ty0>(Arg0: &Coin<Ty0>): &Balance<Ty0> {
B0:
0MoveLoc[0](Arg0: &Coin<Ty0>)
1ImmBorrowFieldGeneric[1](Coin.balance: Balance<Ty0>)
2Ret
}
 
public balance_mut<Ty0>(Arg0: &mut Coin<Ty0>): &mut Balance<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut Coin<Ty0>)
1MutBorrowFieldGeneric[1](Coin.balance: Balance<Ty0>)
2Ret
}
 
public from_balance<Ty0>(Arg0: Balance<Ty0>, Arg1: &mut TxContext): Coin<Ty0> {
B0:
0MoveLoc[1](Arg1: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[0](Arg0: Balance<Ty0>)
3PackGeneric[1](Coin<Ty0>)
4Ret
}
 
public into_balance<Ty0>(Arg0: Coin<Ty0>): Balance<Ty0> {
L1: loc0: Balance<Ty0>
B0:
0MoveLoc[0](Arg0: Coin<Ty0>)
1UnpackGeneric[1](Coin<Ty0>)
2StLoc[1](loc0: Balance<Ty0>)
3Call object::delete(UID)
4MoveLoc[1](loc0: Balance<Ty0>)
5Ret
}
 
public take<Ty0>(Arg0: &mut Balance<Ty0>, Arg1: u64, Arg2: &mut TxContext): Coin<Ty0> {
B0:
0MoveLoc[2](Arg2: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[0](Arg0: &mut Balance<Ty0>)
3MoveLoc[1](Arg1: u64)
4Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
5PackGeneric[1](Coin<Ty0>)
6Ret
}
 
public put<Ty0>(Arg0: &mut Balance<Ty0>, Arg1: Coin<Ty0>) {
B0:
0MoveLoc[0](Arg0: &mut Balance<Ty0>)
1MoveLoc[1](Arg1: Coin<Ty0>)
2Call into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
3Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
4Pop
5Ret
}
 
public redeem_funds<Ty0>(Arg0: Withdrawal<Balance<Ty0>>, Arg1: &mut TxContext): Coin<Ty0> {
B0:
0MoveLoc[0](Arg0: Withdrawal<Balance<Ty0>>)
1Call balance::redeem_funds<Ty0>(Withdrawal<Balance<Ty0>>): Balance<Ty0>
2MoveLoc[1](Arg1: &mut TxContext)
3Call from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
4Ret
}
 
public send_funds<Ty0>(Arg0: Coin<Ty0>, Arg1: address) {
B0:
0MoveLoc[0](Arg0: Coin<Ty0>)
1Call into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
2MoveLoc[1](Arg1: address)
3Call balance::send_funds<Ty0>(Balance<Ty0>, address)
4Ret
}
 
entry public join<Ty0>(Arg0: &mut Coin<Ty0>, Arg1: Coin<Ty0>) {
L2: loc0: Balance<Ty0>
B0:
0MoveLoc[1](Arg1: Coin<Ty0>)
1UnpackGeneric[1](Coin<Ty0>)
2StLoc[2](loc0: Balance<Ty0>)
3Call object::delete(UID)
4MoveLoc[0](Arg0: &mut Coin<Ty0>)
5MutBorrowFieldGeneric[1](Coin.balance: Balance<Ty0>)
6MoveLoc[2](loc0: Balance<Ty0>)
7Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
8Pop
9Ret
}
 
public split<Ty0>(Arg0: &mut Coin<Ty0>, Arg1: u64, Arg2: &mut TxContext): Coin<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut Coin<Ty0>)
1MutBorrowFieldGeneric[1](Coin.balance: Balance<Ty0>)
2MoveLoc[1](Arg1: u64)
3MoveLoc[2](Arg2: &mut TxContext)
4Call take<Ty0>(&mut Balance<Ty0>, u64, &mut TxContext): Coin<Ty0>
5Ret
}
 
public divide_into_n<Ty0>(Arg0: &mut Coin<Ty0>, Arg1: u64, Arg2: &mut TxContext): vector<Coin<Ty0>> {
L3: loc0: u64
L4: loc1: Coin<Ty0>
L5: loc2: &mut vector<Coin<Ty0>>
L6: loc3: u64
L7: loc4: u64
L8: loc5: u64
L9: loc6: u64
L10: loc7: vector<Coin<Ty0>>
B0:
0CopyLoc[1](Arg1: u64)
1LdU64(0)
2Gt
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[0](Arg0: &mut Coin<Ty0>)
6Pop
7MoveLoc[2](Arg2: &mut TxContext)
8Pop
9LdConst[1](u64: 1)
10Abort
B3:
11CopyLoc[1](Arg1: u64)
12CopyLoc[0](Arg0: &mut Coin<Ty0>)
13FreezeRef
14Call value<Ty0>(&Coin<Ty0>): u64
15Le
16BrFalse(18)
B4:
17Branch(24)
B5:
18MoveLoc[0](Arg0: &mut Coin<Ty0>)
19Pop
20MoveLoc[2](Arg2: &mut TxContext)
21Pop
22LdConst[2](u64: 2)
23Abort
B6:
24CopyLoc[0](Arg0: &mut Coin<Ty0>)
25FreezeRef
26Call value<Ty0>(&Coin<Ty0>): u64
27CopyLoc[1](Arg1: u64)
28Div
29StLoc[8](loc5: u64)
30VecPack(12, 0)
31StLoc[10](loc7: vector<Coin<Ty0>>)
32MoveLoc[1](Arg1: u64)
33LdU64(1)
34Sub
35StLoc[3](loc0: u64)
36LdU64(0)
37StLoc[7](loc4: u64)
38MoveLoc[3](loc0: u64)
39StLoc[9](loc6: u64)
B7:
40CopyLoc[7](loc4: u64)
41CopyLoc[9](loc6: u64)
42Lt
43BrFalse(63)
B8:
44CopyLoc[7](loc4: u64)
45StLoc[6](loc3: u64)
46MutBorrowLoc[10](loc7: vector<Coin<Ty0>>)
47StLoc[5](loc2: &mut vector<Coin<Ty0>>)
48MoveLoc[6](loc3: u64)
49Pop
50CopyLoc[0](Arg0: &mut Coin<Ty0>)
51CopyLoc[8](loc5: u64)
52CopyLoc[2](Arg2: &mut TxContext)
53Call split<Ty0>(&mut Coin<Ty0>, u64, &mut TxContext): Coin<Ty0>
54StLoc[4](loc1: Coin<Ty0>)
55MoveLoc[5](loc2: &mut vector<Coin<Ty0>>)
56MoveLoc[4](loc1: Coin<Ty0>)
57VecPushBack(12)
58MoveLoc[7](loc4: u64)
59LdU64(1)
60Add
61StLoc[7](loc4: u64)
62Branch(40)
B9:
63MoveLoc[0](Arg0: &mut Coin<Ty0>)
64Pop
65MoveLoc[2](Arg2: &mut TxContext)
66Pop
67MoveLoc[10](loc7: vector<Coin<Ty0>>)
68Ret
}
 
public zero<Ty0>(Arg0: &mut TxContext): Coin<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2Call balance::zero<Ty0>(): Balance<Ty0>
3PackGeneric[1](Coin<Ty0>)
4Ret
}
 
public destroy_zero<Ty0>(Arg0: Coin<Ty0>) {
L1: loc0: Balance<Ty0>
B0:
0MoveLoc[0](Arg0: Coin<Ty0>)
1UnpackGeneric[1](Coin<Ty0>)
2StLoc[1](loc0: Balance<Ty0>)
3Call object::delete(UID)
4MoveLoc[1](loc0: Balance<Ty0>)
5Call balance::destroy_zero<Ty0>(Balance<Ty0>)
6Ret
}
 
public create_currency<Ty0: drop>(Arg0: Ty0, Arg1: u8, Arg2: vector<u8>, Arg3: vector<u8>, Arg4: vector<u8>, Arg5: Option<Url>, Arg6: &mut TxContext): TreasuryCap<Ty0> * CoinMetadata<Ty0> {
B0:
0ImmBorrowLoc[0](Arg0: Ty0)
1Call types::is_one_time_witness<Ty0>(&Ty0): bool
2BrFalse(4)
B1:
3Branch(8)
B2:
4MoveLoc[6](Arg6: &mut TxContext)
5Pop
6LdConst[0](u64: 0)
7Abort
B3:
8CopyLoc[6](Arg6: &mut TxContext)
9Call object::new(&mut TxContext): UID
10MoveLoc[0](Arg0: Ty0)
11Call balance::create_supply<Ty0>(Ty0): Supply<Ty0>
12PackGeneric[0](TreasuryCap<Ty0>)
13MoveLoc[6](Arg6: &mut TxContext)
14Call object::new(&mut TxContext): UID
15MoveLoc[1](Arg1: u8)
16MoveLoc[3](Arg3: vector<u8>)
17Call string::utf8(vector<u8>): String
18MoveLoc[2](Arg2: vector<u8>)
19Call ascii::string(vector<u8>): String
20MoveLoc[4](Arg4: vector<u8>)
21Call string::utf8(vector<u8>): String
22MoveLoc[5](Arg5: Option<Url>)
23PackGeneric[2](CoinMetadata<Ty0>)
24Ret
}
 
public create_regulated_currency_v2<Ty0: drop>(Arg0: Ty0, Arg1: u8, Arg2: vector<u8>, Arg3: vector<u8>, Arg4: vector<u8>, Arg5: Option<Url>, Arg6: bool, Arg7: &mut TxContext): TreasuryCap<Ty0> * DenyCapV2<Ty0> * CoinMetadata<Ty0> {
L8: loc0: DenyCapV2<Ty0>
L9: loc1: CoinMetadata<Ty0>
L10: loc2: TreasuryCap<Ty0>
B0:
0MoveLoc[0](Arg0: Ty0)
1MoveLoc[1](Arg1: u8)
2MoveLoc[2](Arg2: vector<u8>)
3MoveLoc[3](Arg3: vector<u8>)
4MoveLoc[4](Arg4: vector<u8>)
5MoveLoc[5](Arg5: Option<Url>)
6CopyLoc[7](Arg7: &mut TxContext)
7Call create_currency<Ty0>(Ty0, u8, vector<u8>, vector<u8>, vector<u8>, Option<Url>, &mut TxContext): TreasuryCap<Ty0> * CoinMetadata<Ty0>
8StLoc[9](loc1: CoinMetadata<Ty0>)
9StLoc[10](loc2: TreasuryCap<Ty0>)
10CopyLoc[7](Arg7: &mut TxContext)
11Call object::new(&mut TxContext): UID
12MoveLoc[6](Arg6: bool)
13PackGeneric[3](DenyCapV2<Ty0>)
14StLoc[8](loc0: DenyCapV2<Ty0>)
15MoveLoc[7](Arg7: &mut TxContext)
16Call object::new(&mut TxContext): UID
17ImmBorrowLoc[9](loc1: CoinMetadata<Ty0>)
18Call object::id<CoinMetadata<Ty0>>(&CoinMetadata<Ty0>): ID
19ImmBorrowLoc[8](loc0: DenyCapV2<Ty0>)
20Call object::id<DenyCapV2<Ty0>>(&DenyCapV2<Ty0>): ID
21PackGeneric[4](RegulatedCoinMetadata<Ty0>)
22Call transfer::freeze_object<RegulatedCoinMetadata<Ty0>>(RegulatedCoinMetadata<Ty0>)
23MoveLoc[10](loc2: TreasuryCap<Ty0>)
24MoveLoc[8](loc0: DenyCapV2<Ty0>)
25MoveLoc[9](loc1: CoinMetadata<Ty0>)
26Ret
}
 
public migrate_regulated_currency_to_v2<Ty0>(Arg0: &mut DenyList, Arg1: DenyCap<Ty0>, Arg2: bool, Arg3: &mut TxContext): DenyCapV2<Ty0> {
L4: loc0: vector<u8>
B0:
0MoveLoc[1](Arg1: DenyCap<Ty0>)
1UnpackGeneric[5](DenyCap<Ty0>)
2Call object::delete(UID)
3Call type_name::with_defining_ids<Ty0>(): TypeName
4Call type_name::into_string(TypeName): String
5Call ascii::into_bytes(String): vector<u8>
6StLoc[4](loc0: vector<u8>)
7MoveLoc[0](Arg0: &mut DenyList)
8LdConst[0](u64: 0)
9MoveLoc[4](loc0: vector<u8>)
10CopyLoc[3](Arg3: &mut TxContext)
11Call deny_list::migrate_v1_to_v2(&mut DenyList, u64, vector<u8>, &mut TxContext)
12MoveLoc[3](Arg3: &mut TxContext)
13Call object::new(&mut TxContext): UID
14MoveLoc[2](Arg2: bool)
15PackGeneric[3](DenyCapV2<Ty0>)
16Ret
}
 
public mint<Ty0>(Arg0: &mut TreasuryCap<Ty0>, Arg1: u64, Arg2: &mut TxContext): Coin<Ty0> {
B0:
0MoveLoc[2](Arg2: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[0](Arg0: &mut TreasuryCap<Ty0>)
3MutBorrowFieldGeneric[0](TreasuryCap.total_supply: Supply<Ty0>)
4MoveLoc[1](Arg1: u64)
5Call balance::increase_supply<Ty0>(&mut Supply<Ty0>, u64): Balance<Ty0>
6PackGeneric[1](Coin<Ty0>)
7Ret
}
 
public mint_balance<Ty0>(Arg0: &mut TreasuryCap<Ty0>, Arg1: u64): Balance<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut TreasuryCap<Ty0>)
1MutBorrowFieldGeneric[0](TreasuryCap.total_supply: Supply<Ty0>)
2MoveLoc[1](Arg1: u64)
3Call balance::increase_supply<Ty0>(&mut Supply<Ty0>, u64): Balance<Ty0>
4Ret
}
 
entry public burn<Ty0>(Arg0: &mut TreasuryCap<Ty0>, Arg1: Coin<Ty0>): u64 {
L2: loc0: Balance<Ty0>
B0:
0MoveLoc[1](Arg1: Coin<Ty0>)
1UnpackGeneric[1](Coin<Ty0>)
2StLoc[2](loc0: Balance<Ty0>)
3Call object::delete(UID)
4MoveLoc[0](Arg0: &mut TreasuryCap<Ty0>)
5MutBorrowFieldGeneric[0](TreasuryCap.total_supply: Supply<Ty0>)
6MoveLoc[2](loc0: Balance<Ty0>)
7Call balance::decrease_supply<Ty0>(&mut Supply<Ty0>, Balance<Ty0>): u64
8Ret
}
 
public deny_list_v2_add<Ty0>(Arg0: &mut DenyList, Arg1: &mut DenyCapV2<Ty0>, Arg2: address, Arg3: &mut TxContext) {
L4: loc0: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call ascii::into_bytes(String): vector<u8>
3StLoc[4](loc0: vector<u8>)
4MoveLoc[0](Arg0: &mut DenyList)
5LdConst[0](u64: 0)
6MoveLoc[4](loc0: vector<u8>)
7MoveLoc[2](Arg2: address)
8MoveLoc[3](Arg3: &mut TxContext)
9Call deny_list::v2_add(&mut DenyList, u64, vector<u8>, address, &mut TxContext)
10Ret
}
 
public deny_list_v2_remove<Ty0>(Arg0: &mut DenyList, Arg1: &mut DenyCapV2<Ty0>, Arg2: address, Arg3: &mut TxContext) {
L4: loc0: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call ascii::into_bytes(String): vector<u8>
3StLoc[4](loc0: vector<u8>)
4MoveLoc[0](Arg0: &mut DenyList)
5LdConst[0](u64: 0)
6MoveLoc[4](loc0: vector<u8>)
7MoveLoc[2](Arg2: address)
8MoveLoc[3](Arg3: &mut TxContext)
9Call deny_list::v2_remove(&mut DenyList, u64, vector<u8>, address, &mut TxContext)
10Ret
}
 
public deny_list_v2_contains_current_epoch<Ty0>(Arg0: &DenyList, Arg1: address, Arg2: &TxContext): bool {
L3: loc0: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call ascii::into_bytes(String): vector<u8>
3StLoc[3](loc0: vector<u8>)
4MoveLoc[0](Arg0: &DenyList)
5LdConst[0](u64: 0)
6MoveLoc[3](loc0: vector<u8>)
7MoveLoc[1](Arg1: address)
8MoveLoc[2](Arg2: &TxContext)
9Call deny_list::v2_contains_current_epoch(&DenyList, u64, vector<u8>, address, &TxContext): bool
10Ret
}
 
public deny_list_v2_contains_next_epoch<Ty0>(Arg0: &DenyList, Arg1: address): bool {
L2: loc0: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call ascii::into_bytes(String): vector<u8>
3StLoc[2](loc0: vector<u8>)
4MoveLoc[0](Arg0: &DenyList)
5LdConst[0](u64: 0)
6MoveLoc[2](loc0: vector<u8>)
7MoveLoc[1](Arg1: address)
8Call deny_list::v2_contains_next_epoch(&DenyList, u64, vector<u8>, address): bool
9Ret
}
 
public deny_list_v2_enable_global_pause<Ty0>(Arg0: &mut DenyList, Arg1: &mut DenyCapV2<Ty0>, Arg2: &mut TxContext) {
L3: loc0: vector<u8>
B0:
0MoveLoc[1](Arg1: &mut DenyCapV2<Ty0>)
1ImmBorrowFieldGeneric[2](DenyCapV2.allow_global_pause: bool)
2ReadRef
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[0](Arg0: &mut DenyList)
6Pop
7MoveLoc[2](Arg2: &mut TxContext)
8Pop
9LdConst[3](u64: 3)
10Abort
B3:
11Call type_name::with_defining_ids<Ty0>(): TypeName
12Call type_name::into_string(TypeName): String
13Call ascii::into_bytes(String): vector<u8>
14StLoc[3](loc0: vector<u8>)
15MoveLoc[0](Arg0: &mut DenyList)
16LdConst[0](u64: 0)
17MoveLoc[3](loc0: vector<u8>)
18MoveLoc[2](Arg2: &mut TxContext)
19Call deny_list::v2_enable_global_pause(&mut DenyList, u64, vector<u8>, &mut TxContext)
20Ret
}
 
public deny_list_v2_disable_global_pause<Ty0>(Arg0: &mut DenyList, Arg1: &mut DenyCapV2<Ty0>, Arg2: &mut TxContext) {
L3: loc0: vector<u8>
B0:
0MoveLoc[1](Arg1: &mut DenyCapV2<Ty0>)
1ImmBorrowFieldGeneric[2](DenyCapV2.allow_global_pause: bool)
2ReadRef
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[0](Arg0: &mut DenyList)
6Pop
7MoveLoc[2](Arg2: &mut TxContext)
8Pop
9LdConst[3](u64: 3)
10Abort
B3:
11Call type_name::with_defining_ids<Ty0>(): TypeName
12Call type_name::into_string(TypeName): String
13Call ascii::into_bytes(String): vector<u8>
14StLoc[3](loc0: vector<u8>)
15MoveLoc[0](Arg0: &mut DenyList)
16LdConst[0](u64: 0)
17MoveLoc[3](loc0: vector<u8>)
18MoveLoc[2](Arg2: &mut TxContext)
19Call deny_list::v2_disable_global_pause(&mut DenyList, u64, vector<u8>, &mut TxContext)
20Ret
}
 
public deny_list_v2_is_global_pause_enabled_current_epoch<Ty0>(Arg0: &DenyList, Arg1: &TxContext): bool {
L2: loc0: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call ascii::into_bytes(String): vector<u8>
3StLoc[2](loc0: vector<u8>)
4MoveLoc[0](Arg0: &DenyList)
5LdConst[0](u64: 0)
6MoveLoc[2](loc0: vector<u8>)
7MoveLoc[1](Arg1: &TxContext)
8Call deny_list::v2_is_global_pause_enabled_current_epoch(&DenyList, u64, vector<u8>, &TxContext): bool
9Ret
}
 
public deny_list_v2_is_global_pause_enabled_next_epoch<Ty0>(Arg0: &DenyList): bool {
L1: loc0: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call ascii::into_bytes(String): vector<u8>
3StLoc[1](loc0: vector<u8>)
4MoveLoc[0](Arg0: &DenyList)
5LdConst[0](u64: 0)
6MoveLoc[1](loc0: vector<u8>)
7Call deny_list::v2_is_global_pause_enabled_next_epoch(&DenyList, u64, vector<u8>): bool
8Ret
}
 
entry public mint_and_transfer<Ty0>(Arg0: &mut TreasuryCap<Ty0>, Arg1: u64, Arg2: address, Arg3: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut TreasuryCap<Ty0>)
1MoveLoc[1](Arg1: u64)
2MoveLoc[3](Arg3: &mut TxContext)
3Call mint<Ty0>(&mut TreasuryCap<Ty0>, u64, &mut TxContext): Coin<Ty0>
4MoveLoc[2](Arg2: address)
5Call transfer::public_transfer<Coin<Ty0>>(Coin<Ty0>, address)
6Ret
}
 
entry public update_name<Ty0>(Arg0: &TreasuryCap<Ty0>, Arg1: &mut CoinMetadata<Ty0>, Arg2: String) {
B0:
0MoveLoc[2](Arg2: String)
1MoveLoc[1](Arg1: &mut CoinMetadata<Ty0>)
2MutBorrowFieldGeneric[3](CoinMetadata.name: String)
3WriteRef
4Ret
}
 
entry public update_symbol<Ty0>(Arg0: &TreasuryCap<Ty0>, Arg1: &mut CoinMetadata<Ty0>, Arg2: String) {
B0:
0MoveLoc[2](Arg2: String)
1MoveLoc[1](Arg1: &mut CoinMetadata<Ty0>)
2MutBorrowFieldGeneric[4](CoinMetadata.symbol: String)
3WriteRef
4Ret
}
 
entry public update_description<Ty0>(Arg0: &TreasuryCap<Ty0>, Arg1: &mut CoinMetadata<Ty0>, Arg2: String) {
B0:
0MoveLoc[2](Arg2: String)
1MoveLoc[1](Arg1: &mut CoinMetadata<Ty0>)
2MutBorrowFieldGeneric[5](CoinMetadata.description: String)
3WriteRef
4Ret
}
 
entry public update_icon_url<Ty0>(Arg0: &TreasuryCap<Ty0>, Arg1: &mut CoinMetadata<Ty0>, Arg2: String) {
B0:
0MoveLoc[2](Arg2: String)
1Call url::new_unsafe(String): Url
2Call option::some<Url>(Url): Option<Url>
3MoveLoc[1](Arg1: &mut CoinMetadata<Ty0>)
4MutBorrowFieldGeneric[6](CoinMetadata.icon_url: Option<Url>)
5WriteRef
6Ret
}
 
public get_decimals<Ty0>(Arg0: &CoinMetadata<Ty0>): u8 {
B0:
0MoveLoc[0](Arg0: &CoinMetadata<Ty0>)
1ImmBorrowFieldGeneric[7](CoinMetadata.decimals: u8)
2ReadRef
3Ret
}
 
public get_name<Ty0>(Arg0: &CoinMetadata<Ty0>): String {
B0:
0MoveLoc[0](Arg0: &CoinMetadata<Ty0>)
1ImmBorrowFieldGeneric[3](CoinMetadata.name: String)
2ReadRef
3Ret
}
 
public get_symbol<Ty0>(Arg0: &CoinMetadata<Ty0>): String {
B0:
0MoveLoc[0](Arg0: &CoinMetadata<Ty0>)
1ImmBorrowFieldGeneric[4](CoinMetadata.symbol: String)
2ReadRef
3Ret
}
 
public get_description<Ty0>(Arg0: &CoinMetadata<Ty0>): String {
B0:
0MoveLoc[0](Arg0: &CoinMetadata<Ty0>)
1ImmBorrowFieldGeneric[5](CoinMetadata.description: String)
2ReadRef
3Ret
}
 
public get_icon_url<Ty0>(Arg0: &CoinMetadata<Ty0>): Option<Url> {
B0:
0MoveLoc[0](Arg0: &CoinMetadata<Ty0>)
1ImmBorrowFieldGeneric[6](CoinMetadata.icon_url: Option<Url>)
2ReadRef
3Ret
}
 
public(friend) destroy_metadata<Ty0>(Arg0: CoinMetadata<Ty0>) {
B0:
0MoveLoc[0](Arg0: CoinMetadata<Ty0>)
1UnpackGeneric[2](CoinMetadata<Ty0>)
2Pop
3Pop
4Pop
5Pop
6Pop
7Call object::delete(UID)
8Ret
}
 
public(friend) deny_cap_id<Ty0>(Arg0: &RegulatedCoinMetadata<Ty0>): ID {
B0:
0MoveLoc[0](Arg0: &RegulatedCoinMetadata<Ty0>)
1ImmBorrowFieldGeneric[8](RegulatedCoinMetadata.deny_cap_object: ID)
2ReadRef
3Ret
}
 
public(friend) new_deny_cap_v2<Ty0>(Arg0: bool, Arg1: &mut TxContext): DenyCapV2<Ty0> {
B0:
0MoveLoc[1](Arg1: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[0](Arg0: bool)
3PackGeneric[3](DenyCapV2<Ty0>)
4Ret
}
 
public(friend) new_treasury_cap<Ty0>(Arg0: &mut TxContext): TreasuryCap<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2Call balance::create_supply_internal<Ty0>(): Supply<Ty0>
3PackGeneric[0](TreasuryCap<Ty0>)
4Ret
}
 
public(friend) allow_global_pause<Ty0>(Arg0: &DenyCapV2<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &DenyCapV2<Ty0>)
1ImmBorrowFieldGeneric[2](DenyCapV2.allow_global_pause: bool)
2ReadRef
3Ret
}
 
public(friend) new_coin_metadata<Ty0>(Arg0: u8, Arg1: String, Arg2: String, Arg3: String, Arg4: String, Arg5: &mut TxContext): CoinMetadata<Ty0> {
B0:
0MoveLoc[5](Arg5: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[0](Arg0: u8)
3MoveLoc[1](Arg1: String)
4MoveLoc[2](Arg2: String)
5MoveLoc[3](Arg3: String)
6MoveLoc[4](Arg4: String)
7Call url::new_unsafe(String): Url
8Call option::some<Url>(Url): Option<Url>
9PackGeneric[2](CoinMetadata<Ty0>)
10Ret
}
 
public(friend) update_coin_metadata<Ty0>(Arg0: &mut CoinMetadata<Ty0>, Arg1: String, Arg2: String, Arg3: String, Arg4: String) {
B0:
0MoveLoc[1](Arg1: String)
1CopyLoc[0](Arg0: &mut CoinMetadata<Ty0>)
2MutBorrowFieldGeneric[3](CoinMetadata.name: String)
3WriteRef
4MoveLoc[2](Arg2: String)
5CopyLoc[0](Arg0: &mut CoinMetadata<Ty0>)
6MutBorrowFieldGeneric[4](CoinMetadata.symbol: String)
7WriteRef
8MoveLoc[3](Arg3: String)
9CopyLoc[0](Arg0: &mut CoinMetadata<Ty0>)
10MutBorrowFieldGeneric[5](CoinMetadata.description: String)
11WriteRef
12MoveLoc[4](Arg4: String)
13Call url::new_unsafe(String): Url
14Call option::some<Url>(Url): Option<Url>
15MoveLoc[0](Arg0: &mut CoinMetadata<Ty0>)
16MutBorrowFieldGeneric[6](CoinMetadata.icon_url: Option<Url>)
17WriteRef
18Ret
}
 
public supply<Ty0>(Arg0: &mut TreasuryCap<Ty0>): &Supply<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut TreasuryCap<Ty0>)
1ImmBorrowFieldGeneric[0](TreasuryCap.total_supply: Supply<Ty0>)
2Ret
}
 
public create_regulated_currency<Ty0: drop>(Arg0: Ty0, Arg1: u8, Arg2: vector<u8>, Arg3: vector<u8>, Arg4: vector<u8>, Arg5: Option<Url>, Arg6: &mut TxContext): TreasuryCap<Ty0> * DenyCap<Ty0> * CoinMetadata<Ty0> {
L7: loc0: DenyCap<Ty0>
L8: loc1: CoinMetadata<Ty0>
L9: loc2: TreasuryCap<Ty0>
B0:
0MoveLoc[0](Arg0: Ty0)
1MoveLoc[1](Arg1: u8)
2MoveLoc[2](Arg2: vector<u8>)
3MoveLoc[3](Arg3: vector<u8>)
4MoveLoc[4](Arg4: vector<u8>)
5MoveLoc[5](Arg5: Option<Url>)
6CopyLoc[6](Arg6: &mut TxContext)
7Call create_currency<Ty0>(Ty0, u8, vector<u8>, vector<u8>, vector<u8>, Option<Url>, &mut TxContext): TreasuryCap<Ty0> * CoinMetadata<Ty0>
8StLoc[8](loc1: CoinMetadata<Ty0>)
9StLoc[9](loc2: TreasuryCap<Ty0>)
10CopyLoc[6](Arg6: &mut TxContext)
11Call object::new(&mut TxContext): UID
12PackGeneric[5](DenyCap<Ty0>)
13StLoc[7](loc0: DenyCap<Ty0>)
14MoveLoc[6](Arg6: &mut TxContext)
15Call object::new(&mut TxContext): UID
16ImmBorrowLoc[8](loc1: CoinMetadata<Ty0>)
17Call object::id<CoinMetadata<Ty0>>(&CoinMetadata<Ty0>): ID
18ImmBorrowLoc[7](loc0: DenyCap<Ty0>)
19Call object::id<DenyCap<Ty0>>(&DenyCap<Ty0>): ID
20PackGeneric[4](RegulatedCoinMetadata<Ty0>)
21Call transfer::freeze_object<RegulatedCoinMetadata<Ty0>>(RegulatedCoinMetadata<Ty0>)
22MoveLoc[9](loc2: TreasuryCap<Ty0>)
23MoveLoc[7](loc0: DenyCap<Ty0>)
24MoveLoc[8](loc1: CoinMetadata<Ty0>)
25Ret
}
 
public deny_list_add<Ty0>(Arg0: &mut DenyList, Arg1: &mut DenyCap<Ty0>, Arg2: address, Arg3: &mut TxContext) {
L4: loc0: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call ascii::into_bytes(String): vector<u8>
3StLoc[4](loc0: vector<u8>)
4MoveLoc[0](Arg0: &mut DenyList)
5LdConst[0](u64: 0)
6MoveLoc[4](loc0: vector<u8>)
7MoveLoc[2](Arg2: address)
8Call deny_list::v1_add(&mut DenyList, u64, vector<u8>, address)
9Ret
}
 
public deny_list_remove<Ty0>(Arg0: &mut DenyList, Arg1: &mut DenyCap<Ty0>, Arg2: address, Arg3: &mut TxContext) {
L4: loc0: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1Call type_name::into_string(TypeName): String
2Call ascii::into_bytes(String): vector<u8>
3StLoc[4](loc0: vector<u8>)
4MoveLoc[0](Arg0: &mut DenyList)
5LdConst[0](u64: 0)
6MoveLoc[4](loc0: vector<u8>)
7MoveLoc[2](Arg2: address)
8Call deny_list::v1_remove(&mut DenyList, u64, vector<u8>, address)
9Ret
}
 
public deny_list_contains<Ty0>(Arg0: &DenyList, Arg1: address): bool {
L2: loc0: TypeName
L3: loc1: vector<u8>
B0:
0Call type_name::with_defining_ids<Ty0>(): TypeName
1StLoc[2](loc0: TypeName)
2ImmBorrowLoc[2](loc0: TypeName)
3Call type_name::is_primitive(&TypeName): bool
4BrFalse(9)
B1:
5MoveLoc[0](Arg0: &DenyList)
6Pop
7LdFalse
8Ret
B2:
9MoveLoc[2](loc0: TypeName)
10Call type_name::into_string(TypeName): String
11Call ascii::into_bytes(String): vector<u8>
12StLoc[3](loc1: vector<u8>)
13MoveLoc[0](Arg0: &DenyList)
14LdConst[0](u64: 0)
15MoveLoc[3](loc1: vector<u8>)
16MoveLoc[1](Arg1: address)
17Call deny_list::v1_contains(&DenyList, u64, vector<u8>, address): bool
18Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 3
]
}