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

API

launchpad

Module0xf895…c5f8
Move path
0x95e3…4f50::launchpad
Functions
3414 public, 13 entry
Structs
16
Friend modules
None
launchpad

Bytecode1949 lines

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

// Move bytecode v7
module 95e360f56458bf2862cd983b63aaa23e43997674eda99f28541cca1adfa44f50.launchpad {
use 434b5bd8f6a7b05fede0ff46c6e511d71ea326ed38056e3bcd681d2d7c2a7879::royalty_rule;
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::bcs;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::display;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::kiosk;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::pay;
use 0000000000000000000000000000000000000000000000000000000000000002::sui;
use 0000000000000000000000000000000000000000000000000000000000000002::table;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer_policy;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 95e360f56458bf2862cd983b63aaa23e43997674eda99f28541cca1adfa44f50::mint_box;
use 95e360f56458bf2862cd983b63aaa23e43997674eda99f28541cca1adfa44f50::pseudorandom;
use 95e360f56458bf2862cd983b63aaa23e43997674eda99f28541cca1adfa44f50::signature;
 
struct LAUNCHPAD has drop {
dummy_field: bool
}
 
struct Manager has store, key {
id: UID,
version: u64,
admin: address,
public_key: vector<u8>,
balance: Balance<SUI>,
pseudorandom_counter: PseudoRandomCounter
}
 
struct Collection has store, key {
id: UID,
collection_id: String,
mint_box: MintBox,
orders: Table<String, u64>,
supplies: Table<String, u64>,
reserved_supplies: Table<String, u64>,
balance: Balance<SUI>
}
 
struct CollectionOwnerCap has store, key {
id: UID,
collection_ref: ID,
collection_id: String
}
 
struct Verification {
nft_id: Option<ID>,
verified: bool
}
 
struct NftMutationRequest<phantom Ty0: store + key> {
kind: u64,
nft_id: ID,
name: String,
description: String,
media_url: String,
attribute_keys: vector<String>,
attribute_values: vector<String>,
fulfilled: bool,
version: u64
}
 
struct Request has drop {
sender: vector<u8>,
nft_type: String,
nft_id: vector<u8>,
edition_id: String,
collection_ref: vector<u8>,
collection_id: String,
order_id: String,
expire_at: u64,
name: String,
description: String,
media_url: String,
attribute_keys: vector<String>,
attribute_values: vector<String>,
max_supply: u64,
autoreserve_interval: u64,
is_soulbound: bool,
price: u64,
fee: u64,
recipient: vector<u8>
}
 
struct CreateCollectionEvent has copy, drop {
collection_id: String
}
 
struct FundCollectionEvent has copy, drop {
collection_id: String,
funded: u64
}
 
struct UpdateCollectionEvent has copy, drop {
collection_id: String
}
 
struct WithdrawCollectionEvent has copy, drop {
collection_id: String,
withdrawn: u64,
recipient: address
}
 
struct LoadMintBoxEvent has copy, drop {
collection_id: String,
marker: u64
}
 
struct UnloadMintBoxEvent has copy, drop {
collection_id: String,
collection_supply: u64
}
 
struct MintOrderEvent has copy, drop {
collection_id: String,
order_id: String,
nft_hash: u256
}
 
struct MintNftEvent has copy, drop {
collection_id: String,
order_id: String,
nft_id: ID,
price: u64,
is_autoreserved: bool
}
 
struct UpdateNftEvent has copy, drop {
nft_id: ID
}
 
init(Arg0: LAUNCHPAD, Arg1: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: LAUNCHPAD)
1CopyLoc[1](Arg1: &mut TxContext)
2Call package::claim_and_keep<LAUNCHPAD>(LAUNCHPAD, &mut TxContext)
3CopyLoc[1](Arg1: &mut TxContext)
4Call object::new(&mut TxContext): UID
5LdConst[1](u64: 2)
6CopyLoc[1](Arg1: &mut TxContext)
7FreezeRef
8Call tx_context::sender(&TxContext): address
9VecPack(41, 0)
10Call balance::zero<SUI>(): Balance<SUI>
11MoveLoc[1](Arg1: &mut TxContext)
12Call pseudorandom::new(&mut TxContext): PseudoRandomCounter
13Pack[1](Manager)
14Call transfer::share_object<Manager>(Manager)
15Ret
}
 
public mint_order(Arg0: &mut Manager, Arg1: &Clock, Arg2: &mut Collection, Arg3: String, Arg4: u64, Arg5: u64, Arg6: u64, Arg7: vector<u8>, Arg8: Coin<SUI>, Arg9: &mut TxContext) {
L10: loc0: ID
L11: loc1: String
L12: loc2: vector<u8>
L13: loc3: String
L14: loc4: address
L15: loc5: vector<u8>
L16: loc6: u256
L17: loc7: Request
B0:
0CopyLoc[0](Arg0: &mut Manager)
1FreezeRef
2Call verify_version(&Manager)
3CopyLoc[9](Arg9: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[14](loc4: address)
7ImmBorrowLoc[14](loc4: address)
8Call bcs::to_bytes<address>(&address): vector<u8>
9StLoc[15](loc5: vector<u8>)
10VecPack(41, 0)
11Call string::utf8(vector<u8>): String
12StLoc[13](loc3: String)
13VecPack(41, 0)
14StLoc[12](loc2: vector<u8>)
15VecPack(41, 0)
16Call string::utf8(vector<u8>): String
17StLoc[11](loc1: String)
18CopyLoc[2](Arg2: &mut Collection)
19FreezeRef
20Call object::id<Collection>(&Collection): ID
21StLoc[10](loc0: ID)
22MoveLoc[15](loc5: vector<u8>)
23MoveLoc[13](loc3: String)
24MoveLoc[12](loc2: vector<u8>)
25MoveLoc[11](loc1: String)
26ImmBorrowLoc[10](loc0: ID)
27Call object::id_to_bytes(&ID): vector<u8>
28CopyLoc[2](Arg2: &mut Collection)
29ImmBorrowField[0](Collection.collection_id: String)
30ReadRef
31CopyLoc[3](Arg3: String)
32CopyLoc[4](Arg4: u64)
33VecPack(41, 0)
34Call string::utf8(vector<u8>): String
35VecPack(41, 0)
36Call string::utf8(vector<u8>): String
37VecPack(41, 0)
38Call string::utf8(vector<u8>): String
39VecPack(50, 0)
40VecPack(50, 0)
41LdU64(0)
42LdU64(0)
43LdFalse
44CopyLoc[5](Arg5: u64)
45CopyLoc[6](Arg6: u64)
46VecPack(41, 0)
47Pack[6](Request)
48StLoc[17](loc7: Request)
49MoveLoc[7](Arg7: vector<u8>)
50CopyLoc[0](Arg0: &mut Manager)
51ImmBorrowField[1](Manager.public_key: vector<u8>)
52ReadRef
53ImmBorrowLoc[17](loc7: Request)
54Call signature::verify_signature<Request>(vector<u8>, vector<u8>, &Request)
55CopyLoc[2](Arg2: &mut Collection)
56CopyLoc[3](Arg3: String)
57LdU64(0)
58Call upsert_order(&mut Collection, String, u64)
59MoveLoc[1](Arg1: &Clock)
60Call clock::timestamp_ms(&Clock): u64
61MoveLoc[4](Arg4: u64)
62LdU64(1000)
63Mul
64Lt
65BrFalse(67)
B1:
66Branch(75)
B2:
67MoveLoc[0](Arg0: &mut Manager)
68Pop
69MoveLoc[9](Arg9: &mut TxContext)
70Pop
71MoveLoc[2](Arg2: &mut Collection)
72Pop
73LdConst[2](u64: 3)
74Abort
B3:
75CopyLoc[2](Arg2: &mut Collection)
76MutBorrowField[2](Collection.mint_box: MintBox)
77CopyLoc[0](Arg0: &mut Manager)
78MutBorrowField[3](Manager.pseudorandom_counter: PseudoRandomCounter)
79CopyLoc[9](Arg9: &mut TxContext)
80Call mint_box::get(&mut MintBox, &mut PseudoRandomCounter, &mut TxContext): u256
81StLoc[16](loc6: u256)
82CopyLoc[2](Arg2: &mut Collection)
83ImmBorrowField[0](Collection.collection_id: String)
84ReadRef
85MoveLoc[3](Arg3: String)
86MoveLoc[16](loc6: u256)
87Pack[13](MintOrderEvent)
88Call event::emit<MintOrderEvent>(MintOrderEvent)
89ImmBorrowLoc[8](Arg8: Coin<SUI>)
90Call coin::value<SUI>(&Coin<SUI>): u64
91MoveLoc[5](Arg5: u64)
92Eq
93BrFalse(95)
B4:
94Branch(103)
B5:
95MoveLoc[0](Arg0: &mut Manager)
96Pop
97MoveLoc[9](Arg9: &mut TxContext)
98Pop
99MoveLoc[2](Arg2: &mut Collection)
100Pop
101LdConst[3](u64: 4)
102Abort
B6:
103CopyLoc[2](Arg2: &mut Collection)
104MutBorrowField[4](Collection.balance: Balance<SUI>)
105MoveLoc[8](Arg8: Coin<SUI>)
106Call coin::put<SUI>(&mut Balance<SUI>, Coin<SUI>)
107MoveLoc[0](Arg0: &mut Manager)
108MutBorrowField[5](Manager.balance: Balance<SUI>)
109MoveLoc[2](Arg2: &mut Collection)
110MutBorrowField[4](Collection.balance: Balance<SUI>)
111MoveLoc[6](Arg6: u64)
112MoveLoc[9](Arg9: &mut TxContext)
113Call coin::take<SUI>(&mut Balance<SUI>, u64, &mut TxContext): Coin<SUI>
114Call coin::put<SUI>(&mut Balance<SUI>, Coin<SUI>)
115Ret
}
 
public mint_nft<Ty0: store + key>(Arg0: &Manager, Arg1: &TransferPolicy<Ty0>, Arg2: &mut Collection, Arg3: String, Arg4: String, Arg5: String, Arg6: String, Arg7: String, Arg8: vector<String>, Arg9: vector<String>, Arg10: u64, Arg11: u64, Arg12: u64, Arg13: address, Arg14: &mut Verification, Arg15: vector<u8>, Arg16: Ty0, Arg17: &mut TxContext) {
B0:
0LdConst[0](u64: 1)
1Abort
}
 
public mint_nft_with_mutation_request<Ty0: store + key>(Arg0: &Manager, Arg1: &TransferPolicy<Ty0>, Arg2: &mut Collection, Arg3: String, Arg4: String, Arg5: u64, Arg6: u64, Arg7: u64, Arg8: address, Arg9: &mut NftMutationRequest<Ty0>, Arg10: vector<u8>, Arg11: Ty0, Arg12: &mut TxContext) {
L13: loc0: ID
L14: loc1: String
L15: loc2: vector<u8>
L16: loc3: String
L17: loc4: address
L18: loc5: vector<u8>
L19: loc6: Kiosk
L20: loc7: KioskOwnerCap
L21: loc8: Request
B0:
0CopyLoc[0](Arg0: &Manager)
1CopyLoc[12](Arg12: &mut TxContext)
2FreezeRef
3Call verify_admin_and_version(&Manager, &TxContext)
4CopyLoc[0](Arg0: &Manager)
5CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
6FreezeRef
7Call verify_nft_mutation_request_version<Ty0>(&Manager, &NftMutationRequest<Ty0>)
8CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
9ImmBorrowFieldGeneric[0](NftMutationRequest.kind: u64)
10ReadRef
11LdU64(0)
12Eq
13BrFalse(15)
B1:
14Branch(27)
B2:
15MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
16Pop
17MoveLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
18Pop
19MoveLoc[0](Arg0: &Manager)
20Pop
21MoveLoc[12](Arg12: &mut TxContext)
22Pop
23MoveLoc[2](Arg2: &mut Collection)
24Pop
25LdConst[10](u64: 11)
26Abort
B3:
27CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
28ImmBorrowFieldGeneric[1](NftMutationRequest.nft_id: ID)
29ReadRef
30ImmBorrowLoc[11](Arg11: Ty0)
31Call object::id<Ty0>(&Ty0): ID
32Eq
33BrFalse(35)
B4:
34Branch(47)
B5:
35MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
36Pop
37MoveLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
38Pop
39MoveLoc[0](Arg0: &Manager)
40Pop
41MoveLoc[12](Arg12: &mut TxContext)
42Pop
43MoveLoc[2](Arg2: &mut Collection)
44Pop
45LdConst[7](u64: 8)
46Abort
B6:
47CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
48ImmBorrowFieldGeneric[2](NftMutationRequest.fulfilled: bool)
49ReadRef
50Not
51BrFalse(53)
B7:
52Branch(65)
B8:
53MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
54Pop
55MoveLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
56Pop
57MoveLoc[0](Arg0: &Manager)
58Pop
59MoveLoc[12](Arg12: &mut TxContext)
60Pop
61MoveLoc[2](Arg2: &mut Collection)
62Pop
63LdConst[9](u64: 10)
64Abort
B9:
65CopyLoc[12](Arg12: &mut TxContext)
66FreezeRef
67Call tx_context::sender(&TxContext): address
68StLoc[17](loc4: address)
69ImmBorrowLoc[17](loc4: address)
70Call bcs::to_bytes<address>(&address): vector<u8>
71StLoc[18](loc5: vector<u8>)
72Call type_name::with_defining_ids<Ty0>(): TypeName
73Call type_name::into_string(TypeName): String
74Call string::from_ascii(String): String
75StLoc[16](loc3: String)
76VecPack(41, 0)
77StLoc[15](loc2: vector<u8>)
78CopyLoc[3](Arg3: String)
79StLoc[14](loc1: String)
80CopyLoc[2](Arg2: &mut Collection)
81FreezeRef
82Call object::id<Collection>(&Collection): ID
83StLoc[13](loc0: ID)
84MoveLoc[18](loc5: vector<u8>)
85MoveLoc[16](loc3: String)
86MoveLoc[15](loc2: vector<u8>)
87MoveLoc[14](loc1: String)
88ImmBorrowLoc[13](loc0: ID)
89Call object::id_to_bytes(&ID): vector<u8>
90CopyLoc[2](Arg2: &mut Collection)
91ImmBorrowField[0](Collection.collection_id: String)
92ReadRef
93CopyLoc[4](Arg4: String)
94LdU64(0)
95CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
96ImmBorrowFieldGeneric[3](NftMutationRequest.name: String)
97ReadRef
98CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
99ImmBorrowFieldGeneric[4](NftMutationRequest.description: String)
100ReadRef
101CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
102ImmBorrowFieldGeneric[5](NftMutationRequest.media_url: String)
103ReadRef
104CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
105ImmBorrowFieldGeneric[6](NftMutationRequest.attribute_keys: vector<String>)
106ReadRef
107CopyLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
108ImmBorrowFieldGeneric[7](NftMutationRequest.attribute_values: vector<String>)
109ReadRef
110CopyLoc[7](Arg7: u64)
111LdU64(0)
112LdFalse
113CopyLoc[5](Arg5: u64)
114MoveLoc[6](Arg6: u64)
115ImmBorrowLoc[8](Arg8: address)
116Call bcs::to_bytes<address>(&address): vector<u8>
117Pack[6](Request)
118StLoc[21](loc8: Request)
119MoveLoc[10](Arg10: vector<u8>)
120MoveLoc[0](Arg0: &Manager)
121ImmBorrowField[1](Manager.public_key: vector<u8>)
122ReadRef
123ImmBorrowLoc[21](loc8: Request)
124Call signature::verify_signature<Request>(vector<u8>, vector<u8>, &Request)
125CopyLoc[2](Arg2: &mut Collection)
126CopyLoc[4](Arg4: String)
127LdU64(1)
128Call upsert_order(&mut Collection, String, u64)
129CopyLoc[7](Arg7: u64)
130LdU64(0)
131Gt
132BrFalse(139)
B10:
133CopyLoc[2](Arg2: &mut Collection)
134MoveLoc[3](Arg3: String)
135MoveLoc[7](Arg7: u64)
136Call option::none<u64>(): Option<u64>
137Call upsert_supply(&mut Collection, String, u64, Option<u64>): bool
138Pop
B11:
139MoveLoc[2](Arg2: &mut Collection)
140ImmBorrowField[0](Collection.collection_id: String)
141ReadRef
142MoveLoc[4](Arg4: String)
143ImmBorrowLoc[11](Arg11: Ty0)
144Call object::id<Ty0>(&Ty0): ID
145MoveLoc[5](Arg5: u64)
146LdFalse
147Pack[14](MintNftEvent)
148Call event::emit<MintNftEvent>(MintNftEvent)
149MoveLoc[12](Arg12: &mut TxContext)
150Call kiosk::new(&mut TxContext): Kiosk * KioskOwnerCap
151StLoc[20](loc7: KioskOwnerCap)
152StLoc[19](loc6: Kiosk)
153MutBorrowLoc[19](loc6: Kiosk)
154ImmBorrowLoc[20](loc7: KioskOwnerCap)
155MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
156MoveLoc[11](Arg11: Ty0)
157Call kiosk::lock<Ty0>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<Ty0>, Ty0)
158MoveLoc[20](loc7: KioskOwnerCap)
159MoveLoc[8](Arg8: address)
160Call transfer::public_transfer<KioskOwnerCap>(KioskOwnerCap, address)
161MoveLoc[19](loc6: Kiosk)
162Call transfer::public_share_object<Kiosk>(Kiosk)
163LdTrue
164MoveLoc[9](Arg9: &mut NftMutationRequest<Ty0>)
165MutBorrowFieldGeneric[2](NftMutationRequest.fulfilled: bool)
166WriteRef
167Ret
}
 
public mint_edition_nft<Ty0: store + key>(Arg0: &mut Manager, Arg1: &TransferPolicy<Ty0>, Arg2: &Clock, Arg3: &mut Collection, Arg4: String, Arg5: String, Arg6: u64, Arg7: String, Arg8: String, Arg9: String, Arg10: vector<String>, Arg11: vector<String>, Arg12: u64, Arg13: u64, Arg14: u64, Arg15: u64, Arg16: &mut Verification, Arg17: vector<u8>, Arg18: Coin<SUI>, Arg19: Ty0, Arg20: &mut Kiosk, Arg21: &KioskOwnerCap, Arg22: &mut TxContext) {
B0:
0LdConst[0](u64: 1)
1Abort
}
 
public mint_edition_nft_with_mutation_request<Ty0: store + key>(Arg0: &mut Manager, Arg1: &TransferPolicy<Ty0>, Arg2: &Clock, Arg3: &mut Collection, Arg4: String, Arg5: String, Arg6: u64, Arg7: u64, Arg8: u64, Arg9: u64, Arg10: u64, Arg11: &mut NftMutationRequest<Ty0>, Arg12: vector<u8>, Arg13: Coin<SUI>, Arg14: Ty0, Arg15: &mut Kiosk, Arg16: &KioskOwnerCap, Arg17: &mut TxContext) {
L18: loc0: ID
L19: loc1: String
L20: loc2: vector<u8>
L21: loc3: String
L22: loc4: address
L23: loc5: vector<u8>
L24: loc6: bool
L25: loc7: Request
B0:
0CopyLoc[0](Arg0: &mut Manager)
1FreezeRef
2Call verify_version(&Manager)
3CopyLoc[0](Arg0: &mut Manager)
4FreezeRef
5CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
6FreezeRef
7Call verify_nft_mutation_request_version<Ty0>(&Manager, &NftMutationRequest<Ty0>)
8CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
9ImmBorrowFieldGeneric[0](NftMutationRequest.kind: u64)
10ReadRef
11LdU64(0)
12Eq
13BrFalse(15)
B1:
14Branch(33)
B2:
15MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
16Pop
17MoveLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
18Pop
19MoveLoc[0](Arg0: &mut Manager)
20Pop
21MoveLoc[16](Arg16: &KioskOwnerCap)
22Pop
23MoveLoc[15](Arg15: &mut Kiosk)
24Pop
25MoveLoc[17](Arg17: &mut TxContext)
26Pop
27MoveLoc[3](Arg3: &mut Collection)
28Pop
29MoveLoc[2](Arg2: &Clock)
30Pop
31LdConst[10](u64: 11)
32Abort
B3:
33CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
34ImmBorrowFieldGeneric[1](NftMutationRequest.nft_id: ID)
35ReadRef
36ImmBorrowLoc[14](Arg14: Ty0)
37Call object::id<Ty0>(&Ty0): ID
38Eq
39BrFalse(41)
B4:
40Branch(59)
B5:
41MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
42Pop
43MoveLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
44Pop
45MoveLoc[0](Arg0: &mut Manager)
46Pop
47MoveLoc[16](Arg16: &KioskOwnerCap)
48Pop
49MoveLoc[15](Arg15: &mut Kiosk)
50Pop
51MoveLoc[17](Arg17: &mut TxContext)
52Pop
53MoveLoc[3](Arg3: &mut Collection)
54Pop
55MoveLoc[2](Arg2: &Clock)
56Pop
57LdConst[7](u64: 8)
58Abort
B6:
59CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
60ImmBorrowFieldGeneric[2](NftMutationRequest.fulfilled: bool)
61ReadRef
62Not
63BrFalse(65)
B7:
64Branch(83)
B8:
65MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
66Pop
67MoveLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
68Pop
69MoveLoc[0](Arg0: &mut Manager)
70Pop
71MoveLoc[16](Arg16: &KioskOwnerCap)
72Pop
73MoveLoc[15](Arg15: &mut Kiosk)
74Pop
75MoveLoc[17](Arg17: &mut TxContext)
76Pop
77MoveLoc[3](Arg3: &mut Collection)
78Pop
79MoveLoc[2](Arg2: &Clock)
80Pop
81LdConst[9](u64: 10)
82Abort
B9:
83CopyLoc[17](Arg17: &mut TxContext)
84FreezeRef
85Call tx_context::sender(&TxContext): address
86StLoc[22](loc4: address)
87ImmBorrowLoc[22](loc4: address)
88Call bcs::to_bytes<address>(&address): vector<u8>
89StLoc[23](loc5: vector<u8>)
90Call type_name::with_defining_ids<Ty0>(): TypeName
91Call type_name::into_string(TypeName): String
92Call string::from_ascii(String): String
93StLoc[21](loc3: String)
94VecPack(41, 0)
95StLoc[20](loc2: vector<u8>)
96CopyLoc[4](Arg4: String)
97StLoc[19](loc1: String)
98CopyLoc[3](Arg3: &mut Collection)
99FreezeRef
100Call object::id<Collection>(&Collection): ID
101StLoc[18](loc0: ID)
102MoveLoc[23](loc5: vector<u8>)
103MoveLoc[21](loc3: String)
104MoveLoc[20](loc2: vector<u8>)
105MoveLoc[19](loc1: String)
106ImmBorrowLoc[18](loc0: ID)
107Call object::id_to_bytes(&ID): vector<u8>
108CopyLoc[3](Arg3: &mut Collection)
109ImmBorrowField[0](Collection.collection_id: String)
110ReadRef
111CopyLoc[5](Arg5: String)
112CopyLoc[6](Arg6: u64)
113CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
114ImmBorrowFieldGeneric[3](NftMutationRequest.name: String)
115ReadRef
116CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
117ImmBorrowFieldGeneric[4](NftMutationRequest.description: String)
118ReadRef
119CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
120ImmBorrowFieldGeneric[5](NftMutationRequest.media_url: String)
121ReadRef
122CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
123ImmBorrowFieldGeneric[6](NftMutationRequest.attribute_keys: vector<String>)
124ReadRef
125CopyLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
126ImmBorrowFieldGeneric[7](NftMutationRequest.attribute_values: vector<String>)
127ReadRef
128CopyLoc[9](Arg9: u64)
129CopyLoc[10](Arg10: u64)
130LdFalse
131CopyLoc[7](Arg7: u64)
132CopyLoc[8](Arg8: u64)
133VecPack(41, 0)
134Pack[6](Request)
135StLoc[25](loc7: Request)
136MoveLoc[12](Arg12: vector<u8>)
137CopyLoc[0](Arg0: &mut Manager)
138ImmBorrowField[1](Manager.public_key: vector<u8>)
139ReadRef
140ImmBorrowLoc[25](loc7: Request)
141Call signature::verify_signature<Request>(vector<u8>, vector<u8>, &Request)
142CopyLoc[3](Arg3: &mut Collection)
143CopyLoc[5](Arg5: String)
144LdU64(1)
145Call upsert_order(&mut Collection, String, u64)
146MoveLoc[2](Arg2: &Clock)
147Call clock::timestamp_ms(&Clock): u64
148MoveLoc[6](Arg6: u64)
149LdU64(1000)
150Mul
151Lt
152BrFalse(154)
B10:
153Branch(170)
B11:
154MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
155Pop
156MoveLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
157Pop
158MoveLoc[0](Arg0: &mut Manager)
159Pop
160MoveLoc[16](Arg16: &KioskOwnerCap)
161Pop
162MoveLoc[15](Arg15: &mut Kiosk)
163Pop
164MoveLoc[17](Arg17: &mut TxContext)
165Pop
166MoveLoc[3](Arg3: &mut Collection)
167Pop
168LdConst[2](u64: 3)
169Abort
B12:
170CopyLoc[3](Arg3: &mut Collection)
171MoveLoc[4](Arg4: String)
172MoveLoc[9](Arg9: u64)
173MoveLoc[10](Arg10: u64)
174Call option::some<u64>(u64): Option<u64>
175Call upsert_supply(&mut Collection, String, u64, Option<u64>): bool
176StLoc[24](loc6: bool)
177CopyLoc[3](Arg3: &mut Collection)
178ImmBorrowField[0](Collection.collection_id: String)
179ReadRef
180MoveLoc[5](Arg5: String)
181ImmBorrowLoc[14](Arg14: Ty0)
182Call object::id<Ty0>(&Ty0): ID
183CopyLoc[7](Arg7: u64)
184MoveLoc[24](loc6: bool)
185Pack[14](MintNftEvent)
186Call event::emit<MintNftEvent>(MintNftEvent)
187MoveLoc[15](Arg15: &mut Kiosk)
188MoveLoc[16](Arg16: &KioskOwnerCap)
189MoveLoc[1](Arg1: &TransferPolicy<Ty0>)
190MoveLoc[14](Arg14: Ty0)
191Call kiosk::lock<Ty0>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<Ty0>, Ty0)
192ImmBorrowLoc[13](Arg13: Coin<SUI>)
193Call coin::value<SUI>(&Coin<SUI>): u64
194MoveLoc[7](Arg7: u64)
195Eq
196BrFalse(198)
B13:
197Branch(208)
B14:
198MoveLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
199Pop
200MoveLoc[0](Arg0: &mut Manager)
201Pop
202MoveLoc[17](Arg17: &mut TxContext)
203Pop
204MoveLoc[3](Arg3: &mut Collection)
205Pop
206LdConst[3](u64: 4)
207Abort
B15:
208CopyLoc[3](Arg3: &mut Collection)
209MutBorrowField[4](Collection.balance: Balance<SUI>)
210MoveLoc[13](Arg13: Coin<SUI>)
211Call coin::put<SUI>(&mut Balance<SUI>, Coin<SUI>)
212MoveLoc[0](Arg0: &mut Manager)
213MutBorrowField[5](Manager.balance: Balance<SUI>)
214MoveLoc[3](Arg3: &mut Collection)
215MutBorrowField[4](Collection.balance: Balance<SUI>)
216MoveLoc[8](Arg8: u64)
217MoveLoc[17](Arg17: &mut TxContext)
218Call coin::take<SUI>(&mut Balance<SUI>, u64, &mut TxContext): Coin<SUI>
219Call coin::put<SUI>(&mut Balance<SUI>, Coin<SUI>)
220LdTrue
221MoveLoc[11](Arg11: &mut NftMutationRequest<Ty0>)
222MutBorrowFieldGeneric[2](NftMutationRequest.fulfilled: bool)
223WriteRef
224Ret
}
 
public update_nft(Arg0: &mut Manager, Arg1: ID, Arg2: String, Arg3: String, Arg4: String, Arg5: vector<String>, Arg6: vector<String>, Arg7: vector<u8>, Arg8: &mut TxContext): Verification {
B0:
0LdConst[0](u64: 1)
1Abort
}
 
public update_nft_with_mutation_request<Ty0: store + key>(Arg0: &mut Manager, Arg1: &mut NftMutationRequest<Ty0>, Arg2: vector<u8>, Arg3: &mut TxContext) {
L4: loc0: address
L5: loc1: Request
B0:
0CopyLoc[0](Arg0: &mut Manager)
1FreezeRef
2Call verify_version(&Manager)
3CopyLoc[0](Arg0: &mut Manager)
4FreezeRef
5CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
6FreezeRef
7Call verify_nft_mutation_request_version<Ty0>(&Manager, &NftMutationRequest<Ty0>)
8CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
9ImmBorrowFieldGeneric[0](NftMutationRequest.kind: u64)
10ReadRef
11LdU64(1)
12Eq
13BrFalse(15)
B1:
14Branch(23)
B2:
15MoveLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
16Pop
17MoveLoc[0](Arg0: &mut Manager)
18Pop
19MoveLoc[3](Arg3: &mut TxContext)
20Pop
21LdConst[10](u64: 11)
22Abort
B3:
23CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
24ImmBorrowFieldGeneric[2](NftMutationRequest.fulfilled: bool)
25ReadRef
26Not
27BrFalse(29)
B4:
28Branch(37)
B5:
29MoveLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
30Pop
31MoveLoc[0](Arg0: &mut Manager)
32Pop
33MoveLoc[3](Arg3: &mut TxContext)
34Pop
35LdConst[9](u64: 10)
36Abort
B6:
37MoveLoc[3](Arg3: &mut TxContext)
38FreezeRef
39Call tx_context::sender(&TxContext): address
40StLoc[4](loc0: address)
41ImmBorrowLoc[4](loc0: address)
42Call bcs::to_bytes<address>(&address): vector<u8>
43VecPack(41, 0)
44Call string::utf8(vector<u8>): String
45CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
46ImmBorrowFieldGeneric[1](NftMutationRequest.nft_id: ID)
47Call object::id_to_bytes(&ID): vector<u8>
48VecPack(41, 0)
49Call string::utf8(vector<u8>): String
50VecPack(41, 0)
51VecPack(41, 0)
52Call string::utf8(vector<u8>): String
53VecPack(41, 0)
54Call string::utf8(vector<u8>): String
55LdU64(0)
56CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
57ImmBorrowFieldGeneric[3](NftMutationRequest.name: String)
58ReadRef
59CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
60ImmBorrowFieldGeneric[4](NftMutationRequest.description: String)
61ReadRef
62CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
63ImmBorrowFieldGeneric[5](NftMutationRequest.media_url: String)
64ReadRef
65CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
66ImmBorrowFieldGeneric[6](NftMutationRequest.attribute_keys: vector<String>)
67ReadRef
68CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
69ImmBorrowFieldGeneric[7](NftMutationRequest.attribute_values: vector<String>)
70ReadRef
71LdU64(0)
72LdU64(0)
73LdFalse
74LdU64(0)
75LdU64(0)
76VecPack(41, 0)
77Pack[6](Request)
78StLoc[5](loc1: Request)
79MoveLoc[2](Arg2: vector<u8>)
80MoveLoc[0](Arg0: &mut Manager)
81ImmBorrowField[1](Manager.public_key: vector<u8>)
82ReadRef
83ImmBorrowLoc[5](loc1: Request)
84Call signature::verify_signature<Request>(vector<u8>, vector<u8>, &Request)
85CopyLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
86ImmBorrowFieldGeneric[1](NftMutationRequest.nft_id: ID)
87ReadRef
88Pack[15](UpdateNftEvent)
89Call event::emit<UpdateNftEvent>(UpdateNftEvent)
90LdTrue
91MoveLoc[1](Arg1: &mut NftMutationRequest<Ty0>)
92MutBorrowFieldGeneric[2](NftMutationRequest.fulfilled: bool)
93WriteRef
94Ret
}
 
public create_verification(): Verification {
B0:
0LdConst[0](u64: 1)
1Abort
}
 
public create_nft_mutation_request<Ty0: store + key>(Arg0: u64, Arg1: ID, Arg2: String, Arg3: String, Arg4: String, Arg5: vector<String>, Arg6: vector<String>, Arg7: u64): NftMutationRequest<Ty0> {
B0:
0MoveLoc[0](Arg0: u64)
1MoveLoc[1](Arg1: ID)
2MoveLoc[2](Arg2: String)
3MoveLoc[3](Arg3: String)
4MoveLoc[4](Arg4: String)
5MoveLoc[5](Arg5: vector<String>)
6MoveLoc[6](Arg6: vector<String>)
7LdFalse
8MoveLoc[7](Arg7: u64)
9PackGeneric[0](NftMutationRequest<Ty0>)
10Ret
}
 
public set_verification_nft_id(Arg0: &mut Verification, Arg1: ID) {
B0:
0LdConst[0](u64: 1)
1Abort
}
 
public get_verification_nft_id(Arg0: &Verification): ID {
B0:
0LdConst[0](u64: 1)
1Abort
}
 
public drop_verification(Arg0: Verification) {
B0:
0LdConst[0](u64: 1)
1Abort
}
 
public drop_nft_mutation_request<Ty0: store + key>(Arg0: NftMutationRequest<Ty0>) {
B0:
0ImmBorrowLoc[0](Arg0: NftMutationRequest<Ty0>)
1ImmBorrowFieldGeneric[2](NftMutationRequest.fulfilled: bool)
2ReadRef
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[8](u64: 9)
6Abort
B3:
7MoveLoc[0](Arg0: NftMutationRequest<Ty0>)
8UnpackGeneric[0](NftMutationRequest<Ty0>)
9Pop
10Pop
11Pop
12Pop
13Pop
14Pop
15Pop
16Pop
17Pop
18Ret
}
 
entry set_version(Arg0: &mut Manager, Arg1: u64, Arg2: &TxContext) {
B0:
0CopyLoc[0](Arg0: &mut Manager)
1FreezeRef
2MoveLoc[2](Arg2: &TxContext)
3Call verify_admin(&Manager, &TxContext)
4MoveLoc[1](Arg1: u64)
5MoveLoc[0](Arg0: &mut Manager)
6MutBorrowField[14](Manager.version: u64)
7WriteRef
8Ret
}
 
entry set_admin(Arg0: &mut Manager, Arg1: address, Arg2: &TxContext) {
B0:
0CopyLoc[0](Arg0: &mut Manager)
1FreezeRef
2MoveLoc[2](Arg2: &TxContext)
3Call verify_admin_and_version(&Manager, &TxContext)
4MoveLoc[1](Arg1: address)
5MoveLoc[0](Arg0: &mut Manager)
6MutBorrowField[15](Manager.admin: address)
7WriteRef
8Ret
}
 
entry set_public_key(Arg0: &mut Manager, Arg1: vector<u8>, Arg2: &TxContext) {
B0:
0CopyLoc[0](Arg0: &mut Manager)
1FreezeRef
2MoveLoc[2](Arg2: &TxContext)
3Call verify_admin_and_version(&Manager, &TxContext)
4MoveLoc[1](Arg1: vector<u8>)
5MoveLoc[0](Arg0: &mut Manager)
6MutBorrowField[1](Manager.public_key: vector<u8>)
7WriteRef
8Ret
}
 
entry withdraw_balance(Arg0: &mut Manager, Arg1: u64, Arg2: address, Arg3: &mut TxContext) {
L4: loc0: Balance<SUI>
L5: loc1: Coin<SUI>
B0:
0CopyLoc[0](Arg0: &mut Manager)
1FreezeRef
2CopyLoc[3](Arg3: &mut TxContext)
3FreezeRef
4Call verify_admin_and_version(&Manager, &TxContext)
5CopyLoc[1](Arg1: u64)
6LdU64(0)
7Eq
8BrFalse(14)
B1:
9MoveLoc[0](Arg0: &mut Manager)
10MutBorrowField[5](Manager.balance: Balance<SUI>)
11Call balance::withdraw_all<SUI>(&mut Balance<SUI>): Balance<SUI>
12StLoc[4](loc0: Balance<SUI>)
13Branch(19)
B2:
14MoveLoc[0](Arg0: &mut Manager)
15MutBorrowField[5](Manager.balance: Balance<SUI>)
16MoveLoc[1](Arg1: u64)
17Call balance::split<SUI>(&mut Balance<SUI>, u64): Balance<SUI>
18StLoc[4](loc0: Balance<SUI>)
B3:
19MoveLoc[4](loc0: Balance<SUI>)
20CopyLoc[3](Arg3: &mut TxContext)
21Call coin::from_balance<SUI>(Balance<SUI>, &mut TxContext): Coin<SUI>
22StLoc[5](loc1: Coin<SUI>)
23CopyLoc[3](Arg3: &mut TxContext)
24FreezeRef
25Call tx_context::sender(&TxContext): address
26CopyLoc[2](Arg2: address)
27Eq
28BrFalse(34)
B4:
29MoveLoc[5](loc1: Coin<SUI>)
30MoveLoc[3](Arg3: &mut TxContext)
31FreezeRef
32Call pay::keep<SUI>(Coin<SUI>, &TxContext)
33Branch(39)
B5:
34MoveLoc[3](Arg3: &mut TxContext)
35Pop
36MoveLoc[5](loc1: Coin<SUI>)
37MoveLoc[2](Arg2: address)
38Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
B6:
39Ret
}
 
entry migrate_collection(Arg0: &Manager, Arg1: String, Arg2: vector<String>, Arg3: vector<u64>, Arg4: vector<u64>, Arg5: address, Arg6: &mut TxContext) {
L7: loc0: Collection
L8: loc1: CollectionOwnerCap
L9: loc2: String
B0:
0MoveLoc[0](Arg0: &Manager)
1CopyLoc[6](Arg6: &mut TxContext)
2FreezeRef
3Call verify_admin_and_version(&Manager, &TxContext)
4CopyLoc[6](Arg6: &mut TxContext)
5Call object::new(&mut TxContext): UID
6CopyLoc[1](Arg1: String)
7CopyLoc[6](Arg6: &mut TxContext)
8Call mint_box::new(&mut TxContext): MintBox
9CopyLoc[6](Arg6: &mut TxContext)
10Call table::new<String, u64>(&mut TxContext): Table<String, u64>
11CopyLoc[6](Arg6: &mut TxContext)
12Call table::new<String, u64>(&mut TxContext): Table<String, u64>
13CopyLoc[6](Arg6: &mut TxContext)
14Call table::new<String, u64>(&mut TxContext): Table<String, u64>
15Call balance::zero<SUI>(): Balance<SUI>
16Pack[2](Collection)
17StLoc[7](loc0: Collection)
B1:
18ImmBorrowLoc[2](Arg2: vector<String>)
19Call vector::is_empty<String>(&vector<String>): bool
20Not
21BrFalse(39)
B2:
22Branch(23)
B3:
23MutBorrowLoc[2](Arg2: vector<String>)
24VecPopBack(50)
25StLoc[9](loc2: String)
26MutBorrowLoc[7](loc0: Collection)
27MutBorrowField[16](Collection.supplies: Table<String, u64>)
28CopyLoc[9](loc2: String)
29MutBorrowLoc[3](Arg3: vector<u64>)
30VecPopBack(56)
31Call table::add<String, u64>(&mut Table<String, u64>, String, u64)
32MutBorrowLoc[7](loc0: Collection)
33MutBorrowField[17](Collection.reserved_supplies: Table<String, u64>)
34MoveLoc[9](loc2: String)
35MutBorrowLoc[4](Arg4: vector<u64>)
36VecPopBack(56)
37Call table::add<String, u64>(&mut Table<String, u64>, String, u64)
38Branch(18)
B4:
39MoveLoc[6](Arg6: &mut TxContext)
40Call object::new(&mut TxContext): UID
41ImmBorrowLoc[7](loc0: Collection)
42Call object::id<Collection>(&Collection): ID
43ImmBorrowLoc[7](loc0: Collection)
44ImmBorrowField[0](Collection.collection_id: String)
45ReadRef
46Pack[3](CollectionOwnerCap)
47StLoc[8](loc1: CollectionOwnerCap)
48MoveLoc[1](Arg1: String)
49Pack[7](CreateCollectionEvent)
50Call event::emit<CreateCollectionEvent>(CreateCollectionEvent)
51MoveLoc[8](loc1: CollectionOwnerCap)
52MoveLoc[5](Arg5: address)
53Call transfer::public_transfer<CollectionOwnerCap>(CollectionOwnerCap, address)
54MoveLoc[7](loc0: Collection)
55Call transfer::public_share_object<Collection>(Collection)
56Ret
}
 
entry create_collection(Arg0: &Manager, Arg1: String, Arg2: vector<u8>, Arg3: &mut TxContext) {
L4: loc0: address
L5: loc1: Collection
L6: loc2: CollectionOwnerCap
L7: loc3: Request
B0:
0CopyLoc[0](Arg0: &Manager)
1Call verify_version(&Manager)
2CopyLoc[3](Arg3: &mut TxContext)
3FreezeRef
4Call tx_context::sender(&TxContext): address
5StLoc[4](loc0: address)
6ImmBorrowLoc[4](loc0: address)
7Call bcs::to_bytes<address>(&address): vector<u8>
8VecPack(41, 0)
9Call string::utf8(vector<u8>): String
10VecPack(41, 0)
11VecPack(41, 0)
12Call string::utf8(vector<u8>): String
13VecPack(41, 0)
14CopyLoc[1](Arg1: String)
15VecPack(41, 0)
16Call string::utf8(vector<u8>): String
17LdU64(0)
18VecPack(41, 0)
19Call string::utf8(vector<u8>): String
20VecPack(41, 0)
21Call string::utf8(vector<u8>): String
22VecPack(41, 0)
23Call string::utf8(vector<u8>): String
24VecPack(50, 0)
25VecPack(50, 0)
26LdU64(0)
27LdU64(0)
28LdFalse
29LdU64(0)
30LdU64(0)
31VecPack(41, 0)
32Pack[6](Request)
33StLoc[7](loc3: Request)
34MoveLoc[2](Arg2: vector<u8>)
35MoveLoc[0](Arg0: &Manager)
36ImmBorrowField[1](Manager.public_key: vector<u8>)
37ReadRef
38ImmBorrowLoc[7](loc3: Request)
39Call signature::verify_signature<Request>(vector<u8>, vector<u8>, &Request)
40CopyLoc[3](Arg3: &mut TxContext)
41Call object::new(&mut TxContext): UID
42CopyLoc[1](Arg1: String)
43CopyLoc[3](Arg3: &mut TxContext)
44Call mint_box::new(&mut TxContext): MintBox
45CopyLoc[3](Arg3: &mut TxContext)
46Call table::new<String, u64>(&mut TxContext): Table<String, u64>
47CopyLoc[3](Arg3: &mut TxContext)
48Call table::new<String, u64>(&mut TxContext): Table<String, u64>
49CopyLoc[3](Arg3: &mut TxContext)
50Call table::new<String, u64>(&mut TxContext): Table<String, u64>
51Call balance::zero<SUI>(): Balance<SUI>
52Pack[2](Collection)
53StLoc[5](loc1: Collection)
54CopyLoc[3](Arg3: &mut TxContext)
55Call object::new(&mut TxContext): UID
56ImmBorrowLoc[5](loc1: Collection)
57Call object::id<Collection>(&Collection): ID
58CopyLoc[1](Arg1: String)
59Pack[3](CollectionOwnerCap)
60StLoc[6](loc2: CollectionOwnerCap)
61MoveLoc[1](Arg1: String)
62Pack[7](CreateCollectionEvent)
63Call event::emit<CreateCollectionEvent>(CreateCollectionEvent)
64MoveLoc[6](loc2: CollectionOwnerCap)
65MoveLoc[3](Arg3: &mut TxContext)
66FreezeRef
67Call tx_context::sender(&TxContext): address
68Call transfer::public_transfer<CollectionOwnerCap>(CollectionOwnerCap, address)
69MoveLoc[5](loc1: Collection)
70Call transfer::public_share_object<Collection>(Collection)
71Ret
}
 
entry fund_collection(Arg0: &mut Manager, Arg1: &Collection, Arg2: u64, Arg3: vector<u8>, Arg4: Coin<SUI>, Arg5: &TxContext) {
L6: loc0: ID
L7: loc1: String
L8: loc2: vector<u8>
L9: loc3: String
L10: loc4: address
L11: loc5: vector<u8>
L12: loc6: Request
B0:
0CopyLoc[0](Arg0: &mut Manager)
1FreezeRef
2Call verify_version(&Manager)
3MoveLoc[5](Arg5: &TxContext)
4Call tx_context::sender(&TxContext): address
5StLoc[10](loc4: address)
6ImmBorrowLoc[10](loc4: address)
7Call bcs::to_bytes<address>(&address): vector<u8>
8StLoc[11](loc5: vector<u8>)
9VecPack(41, 0)
10Call string::utf8(vector<u8>): String
11StLoc[9](loc3: String)
12VecPack(41, 0)
13StLoc[8](loc2: vector<u8>)
14VecPack(41, 0)
15Call string::utf8(vector<u8>): String
16StLoc[7](loc1: String)
17CopyLoc[1](Arg1: &Collection)
18Call object::id<Collection>(&Collection): ID
19StLoc[6](loc0: ID)
20MoveLoc[11](loc5: vector<u8>)
21MoveLoc[9](loc3: String)
22MoveLoc[8](loc2: vector<u8>)
23MoveLoc[7](loc1: String)
24ImmBorrowLoc[6](loc0: ID)
25Call object::id_to_bytes(&ID): vector<u8>
26CopyLoc[1](Arg1: &Collection)
27ImmBorrowField[0](Collection.collection_id: String)
28ReadRef
29VecPack(41, 0)
30Call string::utf8(vector<u8>): String
31LdU64(0)
32VecPack(41, 0)
33Call string::utf8(vector<u8>): String
34VecPack(41, 0)
35Call string::utf8(vector<u8>): String
36VecPack(41, 0)
37Call string::utf8(vector<u8>): String
38VecPack(50, 0)
39VecPack(50, 0)
40LdU64(0)
41LdU64(0)
42LdFalse
43LdU64(0)
44CopyLoc[2](Arg2: u64)
45VecPack(41, 0)
46Pack[6](Request)
47StLoc[12](loc6: Request)
48MoveLoc[3](Arg3: vector<u8>)
49CopyLoc[0](Arg0: &mut Manager)
50ImmBorrowField[1](Manager.public_key: vector<u8>)
51ReadRef
52ImmBorrowLoc[12](loc6: Request)
53Call signature::verify_signature<Request>(vector<u8>, vector<u8>, &Request)
54MoveLoc[1](Arg1: &Collection)
55ImmBorrowField[0](Collection.collection_id: String)
56ReadRef
57CopyLoc[2](Arg2: u64)
58Pack[8](FundCollectionEvent)
59Call event::emit<FundCollectionEvent>(FundCollectionEvent)
60ImmBorrowLoc[4](Arg4: Coin<SUI>)
61Call coin::value<SUI>(&Coin<SUI>): u64
62MoveLoc[2](Arg2: u64)
63Eq
64BrFalse(66)
B1:
65Branch(70)
B2:
66MoveLoc[0](Arg0: &mut Manager)
67Pop
68LdConst[3](u64: 4)
69Abort
B3:
70MoveLoc[0](Arg0: &mut Manager)
71MutBorrowField[5](Manager.balance: Balance<SUI>)
72MoveLoc[4](Arg4: Coin<SUI>)
73Call coin::put<SUI>(&mut Balance<SUI>, Coin<SUI>)
74Ret
}
 
entry load_mint_box(Arg0: &Manager, Arg1: &mut Collection, Arg2: u64, Arg3: vector<u256>, Arg4: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &Manager)
1CopyLoc[4](Arg4: &mut TxContext)
2FreezeRef
3Call verify_admin_and_version(&Manager, &TxContext)
4CopyLoc[1](Arg1: &mut Collection)
5MutBorrowField[2](Collection.mint_box: MintBox)
6CopyLoc[2](Arg2: u64)
7MoveLoc[3](Arg3: vector<u256>)
8MoveLoc[4](Arg4: &mut TxContext)
9Call mint_box::load(&mut MintBox, u64, vector<u256>, &mut TxContext)
10MoveLoc[1](Arg1: &mut Collection)
11ImmBorrowField[0](Collection.collection_id: String)
12ReadRef
13MoveLoc[2](Arg2: u64)
14Pack[11](LoadMintBoxEvent)
15Call event::emit<LoadMintBoxEvent>(LoadMintBoxEvent)
16Ret
}
 
entry unload_mint_box(Arg0: &Manager, Arg1: &mut Collection, Arg2: u64, Arg3: &TxContext) {
L4: loc0: u64
B0:
0MoveLoc[0](Arg0: &Manager)
1MoveLoc[3](Arg3: &TxContext)
2Call verify_admin_and_version(&Manager, &TxContext)
3CopyLoc[2](Arg2: u64)
4CopyLoc[1](Arg1: &mut Collection)
5ImmBorrowField[18](Collection.orders: Table<String, u64>)
6Call table::length<String, u64>(&Table<String, u64>): u64
7Ge
8BrFalse(10)
B1:
9Branch(14)
B2:
10MoveLoc[1](Arg1: &mut Collection)
11Pop
12LdConst[6](u64: 7)
13Abort
B3:
14CopyLoc[2](Arg2: u64)
15CopyLoc[1](Arg1: &mut Collection)
16ImmBorrowField[18](Collection.orders: Table<String, u64>)
17Call table::length<String, u64>(&Table<String, u64>): u64
18Sub
19StLoc[4](loc0: u64)
B4:
20CopyLoc[1](Arg1: &mut Collection)
21ImmBorrowField[2](Collection.mint_box: MintBox)
22Call mint_box::size(&MintBox): u64
23CopyLoc[4](loc0: u64)
24Gt
25BrFalse(31)
B5:
26CopyLoc[1](Arg1: &mut Collection)
27MutBorrowField[2](Collection.mint_box: MintBox)
28Call mint_box::pop_back(&mut MintBox): u256
29Pop
30Branch(20)
B6:
31MoveLoc[1](Arg1: &mut Collection)
32ImmBorrowField[0](Collection.collection_id: String)
33ReadRef
34MoveLoc[2](Arg2: u64)
35Pack[12](UnloadMintBoxEvent)
36Call event::emit<UnloadMintBoxEvent>(UnloadMintBoxEvent)
37Ret
}
 
entry update_collection<Ty0: store + key>(Arg0: &Manager, Arg1: &CollectionOwnerCap, Arg2: &mut Display<Ty0>, Arg3: vector<String>, Arg4: vector<String>, Arg5: vector<String>) {
L6: loc0: u64
B0:
0MoveLoc[0](Arg0: &Manager)
1Call verify_version(&Manager)
2LdU64(0)
3StLoc[6](loc0: u64)
B1:
4CopyLoc[6](loc0: u64)
5ImmBorrowLoc[3](Arg3: vector<String>)
6VecLen(50)
7Lt
8BrFalse(21)
B2:
9Branch(10)
B3:
10CopyLoc[2](Arg2: &mut Display<Ty0>)
11ImmBorrowLoc[3](Arg3: vector<String>)
12CopyLoc[6](loc0: u64)
13VecImmBorrow(50)
14ReadRef
15Call display::remove<Ty0>(&mut Display<Ty0>, String)
16MoveLoc[6](loc0: u64)
17LdU64(1)
18Add
19StLoc[6](loc0: u64)
20Branch(4)
B4:
21ImmBorrowLoc[4](Arg4: vector<String>)
22VecLen(50)
23ImmBorrowLoc[5](Arg5: vector<String>)
24VecLen(50)
25Eq
26BrFalse(28)
B5:
27Branch(34)
B6:
28MoveLoc[2](Arg2: &mut Display<Ty0>)
29Pop
30MoveLoc[1](Arg1: &CollectionOwnerCap)
31Pop
32LdConst[4](u64: 5)
33Abort
B7:
34LdU64(0)
35StLoc[6](loc0: u64)
B8:
36CopyLoc[6](loc0: u64)
37ImmBorrowLoc[4](Arg4: vector<String>)
38VecLen(50)
39Lt
40BrFalse(56)
B9:
41CopyLoc[2](Arg2: &mut Display<Ty0>)
42ImmBorrowLoc[4](Arg4: vector<String>)
43CopyLoc[6](loc0: u64)
44VecImmBorrow(50)
45ReadRef
46ImmBorrowLoc[5](Arg5: vector<String>)
47CopyLoc[6](loc0: u64)
48VecImmBorrow(50)
49ReadRef
50Call display::add<Ty0>(&mut Display<Ty0>, String, String)
51MoveLoc[6](loc0: u64)
52LdU64(1)
53Add
54StLoc[6](loc0: u64)
55Branch(36)
B10:
56MoveLoc[2](Arg2: &mut Display<Ty0>)
57Pop
58MoveLoc[1](Arg1: &CollectionOwnerCap)
59ImmBorrowField[19](CollectionOwnerCap.collection_id: String)
60ReadRef
61Pack[9](UpdateCollectionEvent)
62Call event::emit<UpdateCollectionEvent>(UpdateCollectionEvent)
63Ret
}
 
entry update_collection_royalty<Ty0: store + key, Ty1: drop, Ty2: drop + store>(Arg0: &Manager, Arg1: &CollectionOwnerCap, Arg2: &mut TransferPolicy<Ty0>, Arg3: &TransferPolicyCap<Ty0>, Arg4: u16) {
B0:
0MoveLoc[0](Arg0: &Manager)
1Call verify_version(&Manager)
2CopyLoc[2](Arg2: &mut TransferPolicy<Ty0>)
3FreezeRef
4Call transfer_policy::has_rule<Ty0, Ty1>(&TransferPolicy<Ty0>): bool
5BrFalse(9)
B1:
6CopyLoc[2](Arg2: &mut TransferPolicy<Ty0>)
7CopyLoc[3](Arg3: &TransferPolicyCap<Ty0>)
8Call transfer_policy::remove_rule<Ty0, Ty1, Ty2>(&mut TransferPolicy<Ty0>, &TransferPolicyCap<Ty0>)
B2:
9MoveLoc[2](Arg2: &mut TransferPolicy<Ty0>)
10MoveLoc[3](Arg3: &TransferPolicyCap<Ty0>)
11MoveLoc[4](Arg4: u16)
12LdU64(0)
13Call royalty_rule::add<Ty0>(&mut TransferPolicy<Ty0>, &TransferPolicyCap<Ty0>, u16, u64)
14MoveLoc[1](Arg1: &CollectionOwnerCap)
15ImmBorrowField[19](CollectionOwnerCap.collection_id: String)
16ReadRef
17Pack[9](UpdateCollectionEvent)
18Call event::emit<UpdateCollectionEvent>(UpdateCollectionEvent)
19Ret
}
 
entry withdraw_collection_balance(Arg0: &Manager, Arg1: &mut Collection, Arg2: &CollectionOwnerCap, Arg3: u64, Arg4: address, Arg5: vector<u8>, Arg6: &mut TxContext) {
L7: loc0: ID
L8: loc1: String
L9: loc2: vector<u8>
L10: loc3: String
L11: loc4: address
L12: loc5: vector<u8>
L13: loc6: Coin<SUI>
L14: loc7: Request
B0:
0CopyLoc[0](Arg0: &Manager)
1Call verify_version(&Manager)
2CopyLoc[1](Arg1: &mut Collection)
3FreezeRef
4Call object::id<Collection>(&Collection): ID
5CopyLoc[2](Arg2: &CollectionOwnerCap)
6ImmBorrowField[20](CollectionOwnerCap.collection_ref: ID)
7ReadRef
8Eq
9BrFalse(11)
B1:
10Branch(21)
B2:
11MoveLoc[0](Arg0: &Manager)
12Pop
13MoveLoc[6](Arg6: &mut TxContext)
14Pop
15MoveLoc[2](Arg2: &CollectionOwnerCap)
16Pop
17MoveLoc[1](Arg1: &mut Collection)
18Pop
19LdConst[0](u64: 1)
20Abort
B3:
21CopyLoc[1](Arg1: &mut Collection)
22ImmBorrowField[0](Collection.collection_id: String)
23ReadRef
24MoveLoc[2](Arg2: &CollectionOwnerCap)
25ImmBorrowField[19](CollectionOwnerCap.collection_id: String)
26ReadRef
27Eq
28BrFalse(30)
B4:
29Branch(38)
B5:
30MoveLoc[0](Arg0: &Manager)
31Pop
32MoveLoc[6](Arg6: &mut TxContext)
33Pop
34MoveLoc[1](Arg1: &mut Collection)
35Pop
36LdConst[0](u64: 1)
37Abort
B6:
38CopyLoc[6](Arg6: &mut TxContext)
39FreezeRef
40Call tx_context::sender(&TxContext): address
41StLoc[11](loc4: address)
42ImmBorrowLoc[11](loc4: address)
43Call bcs::to_bytes<address>(&address): vector<u8>
44StLoc[12](loc5: vector<u8>)
45VecPack(41, 0)
46Call string::utf8(vector<u8>): String
47StLoc[10](loc3: String)
48VecPack(41, 0)
49StLoc[9](loc2: vector<u8>)
50VecPack(41, 0)
51Call string::utf8(vector<u8>): String
52StLoc[8](loc1: String)
53CopyLoc[1](Arg1: &mut Collection)
54FreezeRef
55Call object::id<Collection>(&Collection): ID
56StLoc[7](loc0: ID)
57MoveLoc[12](loc5: vector<u8>)
58MoveLoc[10](loc3: String)
59MoveLoc[9](loc2: vector<u8>)
60MoveLoc[8](loc1: String)
61ImmBorrowLoc[7](loc0: ID)
62Call object::id_to_bytes(&ID): vector<u8>
63CopyLoc[1](Arg1: &mut Collection)
64ImmBorrowField[0](Collection.collection_id: String)
65ReadRef
66VecPack(41, 0)
67Call string::utf8(vector<u8>): String
68LdU64(0)
69VecPack(41, 0)
70Call string::utf8(vector<u8>): String
71VecPack(41, 0)
72Call string::utf8(vector<u8>): String
73VecPack(41, 0)
74Call string::utf8(vector<u8>): String
75VecPack(50, 0)
76VecPack(50, 0)
77LdU64(0)
78LdU64(0)
79LdFalse
80CopyLoc[3](Arg3: u64)
81LdU64(0)
82ImmBorrowLoc[4](Arg4: address)
83Call bcs::to_bytes<address>(&address): vector<u8>
84Pack[6](Request)
85StLoc[14](loc7: Request)
86MoveLoc[5](Arg5: vector<u8>)
87MoveLoc[0](Arg0: &Manager)
88ImmBorrowField[1](Manager.public_key: vector<u8>)
89ReadRef
90ImmBorrowLoc[14](loc7: Request)
91Call signature::verify_signature<Request>(vector<u8>, vector<u8>, &Request)
92CopyLoc[1](Arg1: &mut Collection)
93MutBorrowField[4](Collection.balance: Balance<SUI>)
94CopyLoc[3](Arg3: u64)
95Call balance::split<SUI>(&mut Balance<SUI>, u64): Balance<SUI>
96CopyLoc[6](Arg6: &mut TxContext)
97Call coin::from_balance<SUI>(Balance<SUI>, &mut TxContext): Coin<SUI>
98StLoc[13](loc6: Coin<SUI>)
99MoveLoc[1](Arg1: &mut Collection)
100ImmBorrowField[0](Collection.collection_id: String)
101ReadRef
102MoveLoc[3](Arg3: u64)
103CopyLoc[4](Arg4: address)
104Pack[10](WithdrawCollectionEvent)
105Call event::emit<WithdrawCollectionEvent>(WithdrawCollectionEvent)
106CopyLoc[6](Arg6: &mut TxContext)
107FreezeRef
108Call tx_context::sender(&TxContext): address
109CopyLoc[4](Arg4: address)
110Eq
111BrFalse(117)
B7:
112MoveLoc[13](loc6: Coin<SUI>)
113MoveLoc[6](Arg6: &mut TxContext)
114FreezeRef
115Call pay::keep<SUI>(Coin<SUI>, &TxContext)
116Branch(122)
B8:
117MoveLoc[6](Arg6: &mut TxContext)
118Pop
119MoveLoc[13](loc6: Coin<SUI>)
120MoveLoc[4](Arg4: address)
121Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
B9:
122Ret
}
 
public withdraw_collection_royalty<Ty0: store + key>(Arg0: &Manager, Arg1: &mut TransferPolicy<Ty0>, Arg2: &TransferPolicyCap<Ty0>, Arg3: u64, Arg4: address, Arg5: &mut TxContext) {
L6: loc0: Coin<SUI>
L7: loc1: Coin<SUI>
B0:
0MoveLoc[0](Arg0: &Manager)
1Call verify_version(&Manager)
2CopyLoc[3](Arg3: u64)
3LdU64(0)
4Eq
5BrFalse(13)
B1:
6MoveLoc[1](Arg1: &mut TransferPolicy<Ty0>)
7MoveLoc[2](Arg2: &TransferPolicyCap<Ty0>)
8Call option::none<u64>(): Option<u64>
9CopyLoc[5](Arg5: &mut TxContext)
10Call transfer_policy::withdraw<Ty0>(&mut TransferPolicy<Ty0>, &TransferPolicyCap<Ty0>, Option<u64>, &mut TxContext): Coin<SUI>
11StLoc[6](loc0: Coin<SUI>)
12Branch(20)
B2:
13MoveLoc[1](Arg1: &mut TransferPolicy<Ty0>)
14MoveLoc[2](Arg2: &TransferPolicyCap<Ty0>)
15MoveLoc[3](Arg3: u64)
16Call option::some<u64>(u64): Option<u64>
17CopyLoc[5](Arg5: &mut TxContext)
18Call transfer_policy::withdraw<Ty0>(&mut TransferPolicy<Ty0>, &TransferPolicyCap<Ty0>, Option<u64>, &mut TxContext): Coin<SUI>
19StLoc[6](loc0: Coin<SUI>)
B3:
20MoveLoc[6](loc0: Coin<SUI>)
21StLoc[7](loc1: Coin<SUI>)
22CopyLoc[5](Arg5: &mut TxContext)
23FreezeRef
24Call tx_context::sender(&TxContext): address
25CopyLoc[4](Arg4: address)
26Eq
27BrFalse(33)
B4:
28MoveLoc[7](loc1: Coin<SUI>)
29MoveLoc[5](Arg5: &mut TxContext)
30FreezeRef
31Call pay::keep<SUI>(Coin<SUI>, &TxContext)
32Branch(38)
B5:
33MoveLoc[5](Arg5: &mut TxContext)
34Pop
35MoveLoc[7](loc1: Coin<SUI>)
36MoveLoc[4](Arg4: address)
37Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
B6:
38Ret
}
 
entry drop_collection(Arg0: &Manager, Arg1: Collection, Arg2: address, Arg3: &mut TxContext) {
L4: loc0: Balance<SUI>
L5: loc1: Coin<SUI>
L6: loc2: UID
L7: loc3: MintBox
L8: loc4: Table<String, u64>
L9: loc5: Table<String, u64>
L10: loc6: Table<String, u64>
B0:
0MoveLoc[0](Arg0: &Manager)
1CopyLoc[3](Arg3: &mut TxContext)
2FreezeRef
3Call verify_admin_and_version(&Manager, &TxContext)
4MoveLoc[1](Arg1: Collection)
5Unpack[2](Collection)
6StLoc[4](loc0: Balance<SUI>)
7StLoc[9](loc5: Table<String, u64>)
8StLoc[10](loc6: Table<String, u64>)
9StLoc[8](loc4: Table<String, u64>)
10StLoc[7](loc3: MintBox)
11Pop
12StLoc[6](loc2: UID)
13MoveLoc[7](loc3: MintBox)
14Call mint_box::destroy(MintBox)
15MoveLoc[4](loc0: Balance<SUI>)
16CopyLoc[3](Arg3: &mut TxContext)
17Call coin::from_balance<SUI>(Balance<SUI>, &mut TxContext): Coin<SUI>
18StLoc[5](loc1: Coin<SUI>)
19CopyLoc[3](Arg3: &mut TxContext)
20FreezeRef
21Call tx_context::sender(&TxContext): address
22CopyLoc[2](Arg2: address)
23Eq
24BrFalse(30)
B1:
25MoveLoc[5](loc1: Coin<SUI>)
26MoveLoc[3](Arg3: &mut TxContext)
27FreezeRef
28Call pay::keep<SUI>(Coin<SUI>, &TxContext)
29Branch(35)
B2:
30MoveLoc[3](Arg3: &mut TxContext)
31Pop
32MoveLoc[5](loc1: Coin<SUI>)
33MoveLoc[2](Arg2: address)
34Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
B3:
35MoveLoc[8](loc4: Table<String, u64>)
36Call table::drop<String, u64>(Table<String, u64>)
37MoveLoc[10](loc6: Table<String, u64>)
38Call table::drop<String, u64>(Table<String, u64>)
39MoveLoc[9](loc5: Table<String, u64>)
40Call table::drop<String, u64>(Table<String, u64>)
41MoveLoc[6](loc2: UID)
42Call object::delete(UID)
43Ret
}
 
verify_admin_and_version(Arg0: &Manager, Arg1: &TxContext) {
B0:
0CopyLoc[0](Arg0: &Manager)
1MoveLoc[1](Arg1: &TxContext)
2Call verify_admin(&Manager, &TxContext)
3MoveLoc[0](Arg0: &Manager)
4Call verify_version(&Manager)
5Ret
}
 
verify_admin(Arg0: &Manager, Arg1: &TxContext) {
B0:
0MoveLoc[0](Arg0: &Manager)
1ImmBorrowField[15](Manager.admin: address)
2ReadRef
3MoveLoc[1](Arg1: &TxContext)
4Call tx_context::sender(&TxContext): address
5Eq
6BrFalse(8)
B1:
7Branch(10)
B2:
8LdConst[0](u64: 1)
9Abort
B3:
10Ret
}
 
verify_version(Arg0: &Manager) {
B0:
0MoveLoc[0](Arg0: &Manager)
1ImmBorrowField[14](Manager.version: u64)
2ReadRef
3LdConst[1](u64: 2)
4Le
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[1](u64: 2)
8Abort
B3:
9Ret
}
 
verify_nft_mutation_request_version<Ty0: store + key>(Arg0: &Manager, Arg1: &NftMutationRequest<Ty0>) {
B0:
0MoveLoc[0](Arg0: &Manager)
1ImmBorrowField[14](Manager.version: u64)
2ReadRef
3MoveLoc[1](Arg1: &NftMutationRequest<Ty0>)
4ImmBorrowFieldGeneric[8](NftMutationRequest.version: u64)
5ReadRef
6Le
7BrFalse(9)
B1:
8Branch(11)
B2:
9LdConst[1](u64: 2)
10Abort
B3:
11Ret
}
 
upsert_order(Arg0: &mut Collection, Arg1: String, Arg2: u64) {
B0:
0CopyLoc[0](Arg0: &mut Collection)
1ImmBorrowField[18](Collection.orders: Table<String, u64>)
2CopyLoc[1](Arg1: String)
3Call table::contains<String, u64>(&Table<String, u64>, String): bool
4BrFalse(17)
B1:
5CopyLoc[0](Arg0: &mut Collection)
6MutBorrowField[18](Collection.orders: Table<String, u64>)
7CopyLoc[1](Arg1: String)
8Call table::remove<String, u64>(&mut Table<String, u64>, String): u64
9CopyLoc[2](Arg2: u64)
10Lt
11BrFalse(13)
B2:
12Branch(17)
B3:
13MoveLoc[0](Arg0: &mut Collection)
14Pop
15LdConst[2](u64: 3)
16Abort
B4:
17MoveLoc[0](Arg0: &mut Collection)
18MutBorrowField[18](Collection.orders: Table<String, u64>)
19MoveLoc[1](Arg1: String)
20MoveLoc[2](Arg2: u64)
21Call table::add<String, u64>(&mut Table<String, u64>, String, u64)
22Ret
}
 
upsert_supply(Arg0: &mut Collection, Arg1: String, Arg2: u64, Arg3: Option<u64>): bool {
L4: loc0: u64
L5: loc1: bool
L6: loc2: u64
L7: loc3: u64
L8: loc4: bool
L9: loc5: u64
L10: loc6: u64
L11: loc7: u64
B0:
0ImmBorrowLoc[3](Arg3: Option<u64>)
1Call option::is_none<u64>(&Option<u64>): bool
2BrFalse(28)
B1:
3MoveLoc[3](Arg3: Option<u64>)
4Call option::destroy_none<u64>(Option<u64>)
5CopyLoc[0](Arg0: &mut Collection)
6MutBorrowField[17](Collection.reserved_supplies: Table<String, u64>)
7CopyLoc[1](Arg1: String)
8Call table::remove<String, u64>(&mut Table<String, u64>, String): u64
9StLoc[9](loc5: u64)
10CopyLoc[9](loc5: u64)
11LdU64(0)
12Gt
13BrFalse(15)
B2:
14Branch(19)
B3:
15MoveLoc[0](Arg0: &mut Collection)
16Pop
17LdConst[5](u64: 6)
18Abort
B4:
19MoveLoc[0](Arg0: &mut Collection)
20MutBorrowField[17](Collection.reserved_supplies: Table<String, u64>)
21MoveLoc[1](Arg1: String)
22MoveLoc[9](loc5: u64)
23LdU64(1)
24Sub
25Call table::add<String, u64>(&mut Table<String, u64>, String, u64)
26LdFalse
27Ret
B5:
28MoveLoc[3](Arg3: Option<u64>)
29Call option::destroy_some<u64>(Option<u64>): u64
30StLoc[7](loc3: u64)
31CopyLoc[0](Arg0: &mut Collection)
32ImmBorrowField[16](Collection.supplies: Table<String, u64>)
33CopyLoc[1](Arg1: String)
34Call table::contains<String, u64>(&Table<String, u64>, String): bool
35BrFalse(42)
B6:
36CopyLoc[0](Arg0: &mut Collection)
37MutBorrowField[16](Collection.supplies: Table<String, u64>)
38CopyLoc[1](Arg1: String)
39Call table::remove<String, u64>(&mut Table<String, u64>, String): u64
40StLoc[4](loc0: u64)
41Branch(44)
B7:
42LdU64(0)
43StLoc[4](loc0: u64)
B8:
44MoveLoc[4](loc0: u64)
45StLoc[11](loc7: u64)
46CopyLoc[11](loc7: u64)
47CopyLoc[2](Arg2: u64)
48Lt
49BrFalse(51)
B9:
50Branch(55)
B10:
51MoveLoc[0](Arg0: &mut Collection)
52Pop
53LdConst[5](u64: 6)
54Abort
B11:
55MoveLoc[11](loc7: u64)
56LdU64(1)
57Add
58StLoc[11](loc7: u64)
59LdFalse
60StLoc[8](loc4: bool)
61CopyLoc[7](loc3: u64)
62LdU64(0)
63Gt
64BrFalse(81)
B12:
65CopyLoc[11](loc7: u64)
66MoveLoc[2](Arg2: u64)
67Lt
68BrFalse(78)
B13:
69CopyLoc[11](loc7: u64)
70LdU64(1)
71Add
72MoveLoc[7](loc3: u64)
73Mod
74LdU64(0)
75Eq
76StLoc[5](loc1: bool)
77Branch(83)
B14:
78LdFalse
79StLoc[5](loc1: bool)
80Branch(83)
B15:
81LdFalse
82StLoc[5](loc1: bool)
B16:
83MoveLoc[5](loc1: bool)
84BrFalse(113)
B17:
85MoveLoc[11](loc7: u64)
86LdU64(1)
87Add
88StLoc[11](loc7: u64)
89LdTrue
90StLoc[8](loc4: bool)
91CopyLoc[0](Arg0: &mut Collection)
92ImmBorrowField[17](Collection.reserved_supplies: Table<String, u64>)
93CopyLoc[1](Arg1: String)
94Call table::contains<String, u64>(&Table<String, u64>, String): bool
95BrFalse(102)
B18:
96CopyLoc[0](Arg0: &mut Collection)
97MutBorrowField[17](Collection.reserved_supplies: Table<String, u64>)
98CopyLoc[1](Arg1: String)
99Call table::remove<String, u64>(&mut Table<String, u64>, String): u64
100StLoc[6](loc2: u64)
101Branch(104)
B19:
102LdU64(0)
103StLoc[6](loc2: u64)
B20:
104MoveLoc[6](loc2: u64)
105StLoc[10](loc6: u64)
106CopyLoc[0](Arg0: &mut Collection)
107MutBorrowField[17](Collection.reserved_supplies: Table<String, u64>)
108CopyLoc[1](Arg1: String)
109MoveLoc[10](loc6: u64)
110LdU64(1)
111Add
112Call table::add<String, u64>(&mut Table<String, u64>, String, u64)
B21:
113MoveLoc[0](Arg0: &mut Collection)
114MutBorrowField[16](Collection.supplies: Table<String, u64>)
115MoveLoc[1](Arg1: String)
116MoveLoc[11](loc7: u64)
117Call table::add<String, u64>(&mut Table<String, u64>, String, u64)
118MoveLoc[8](loc4: bool)
119Ret
}
 
Constants [
0 => u64: 1
1 => u64: 2
2 => u64: 3
3 => u64: 4
4 => u64: 5
5 => u64: 6
6 => u64: 7
7 => u64: 8
8 => u64: 9
9 => u64: 10
10 => u64: 11
]
}