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

API

mint_box

Module0x01ec…1199
Move path
0x1f46…0d8b::mint_box
Functions
50 public, 0 entry
Structs
1
Friend modules
launchpad
mint_box

Bytecode311 lines

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

// Move bytecode v6
module 1f468aaa1e906c4e7e87c7b4976ccca82693b7bdc51e380ae314b3a681bc0d8b.mint_box {
use 0000000000000000000000000000000000000000000000000000000000000001::bcs;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 1f468aaa1e906c4e7e87c7b4976ccca82693b7bdc51e380ae314b3a681bc0d8b::pseudorandom;
 
struct MintBox has store, key {
id: UID,
marker: u64,
box_ids: vector<ID>,
size: u64
}
 
public(friend) new(Arg0: &mut TxContext): MintBox {
B0:
0MoveLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2LdU64(0)
3VecPack(9, 0)
4LdU64(0)
5Pack[0](MintBox)
6Ret
}
 
public(friend) destroy(Arg0: MintBox) {
B0:
0MoveLoc[0](Arg0: MintBox)
1Unpack[0](MintBox)
2Pop
3Pop
4Pop
5Call object::delete(UID)
6Ret
}
 
public(friend) load(Arg0: &mut MintBox, Arg1: u64, Arg2: vector<u256>, Arg3: &mut TxContext) {
L4: loc0: bool
L5: loc1: &mut vector<u256>
L6: loc2: ID
L7: loc3: &mut vector<ID>
L8: loc4: u64
L9: loc5: u64
L10: loc6: UID
B0:
0CopyLoc[0](Arg0: &mut MintBox)
1ImmBorrowField[0](MintBox.marker: u64)
2ReadRef
3CopyLoc[1](Arg1: u64)
4Lt
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[0](Arg0: &mut MintBox)
8Pop
9MoveLoc[3](Arg3: &mut TxContext)
10Pop
11LdConst[1](u64: 1)
12Abort
B3:
13MoveLoc[1](Arg1: u64)
14CopyLoc[0](Arg0: &mut MintBox)
15MutBorrowField[0](MintBox.marker: u64)
16WriteRef
17CopyLoc[0](Arg0: &mut MintBox)
18MutBorrowField[1](MintBox.box_ids: vector<ID>)
19StLoc[7](loc3: &mut vector<ID>)
20LdU64(0)
21StLoc[8](loc4: u64)
22LdU64(0)
23StLoc[9](loc5: u64)
B4:
24CopyLoc[9](loc5: u64)
25ImmBorrowLoc[2](Arg2: vector<u256>)
26VecLen(5)
27Lt
28BrFalse(104)
B5:
29CopyLoc[7](loc3: &mut vector<ID>)
30FreezeRef
31VecLen(9)
32CopyLoc[8](loc4: u64)
33Le
34BrFalse(52)
B6:
35Branch(36)
B7:
36CopyLoc[3](Arg3: &mut TxContext)
37Call object::new(&mut TxContext): UID
38StLoc[10](loc6: UID)
39ImmBorrowLoc[10](loc6: UID)
40Call object::uid_to_inner(&UID): ID
41StLoc[6](loc2: ID)
42MoveLoc[10](loc6: UID)
43Call object::delete(UID)
44CopyLoc[7](loc3: &mut vector<ID>)
45CopyLoc[6](loc2: ID)
46VecPushBack(9)
47CopyLoc[0](Arg0: &mut MintBox)
48MutBorrowField[2](MintBox.id: UID)
49MoveLoc[6](loc2: ID)
50VecPack(5, 0)
51Call dynamic_field::add<ID, vector<u256>>(&mut UID, ID, vector<u256>)
B8:
52CopyLoc[0](Arg0: &mut MintBox)
53MutBorrowField[2](MintBox.id: UID)
54CopyLoc[7](loc3: &mut vector<ID>)
55FreezeRef
56CopyLoc[8](loc4: u64)
57VecImmBorrow(9)
58ReadRef
59Call dynamic_field::borrow_mut<ID, vector<u256>>(&mut UID, ID): &mut vector<u256>
60StLoc[5](loc1: &mut vector<u256>)
B9:
61CopyLoc[9](loc5: u64)
62ImmBorrowLoc[2](Arg2: vector<u256>)
63VecLen(5)
64Lt
65BrFalse(73)
B10:
66CopyLoc[5](loc1: &mut vector<u256>)
67FreezeRef
68VecLen(5)
69LdConst[0](u64: 5000)
70Lt
71StLoc[4](loc0: bool)
72Branch(76)
B11:
73LdFalse
74StLoc[4](loc0: bool)
75Branch(76)
B12:
76MoveLoc[4](loc0: bool)
77BrFalse(97)
B13:
78CopyLoc[5](loc1: &mut vector<u256>)
79ImmBorrowLoc[2](Arg2: vector<u256>)
80CopyLoc[9](loc5: u64)
81VecImmBorrow(5)
82ReadRef
83VecPushBack(5)
84MoveLoc[9](loc5: u64)
85LdU64(1)
86Add
87StLoc[9](loc5: u64)
88CopyLoc[0](Arg0: &mut MintBox)
89ImmBorrowField[3](MintBox.size: u64)
90ReadRef
91LdU64(1)
92Add
93CopyLoc[0](Arg0: &mut MintBox)
94MutBorrowField[3](MintBox.size: u64)
95WriteRef
96Branch(61)
B14:
97MoveLoc[5](loc1: &mut vector<u256>)
98Pop
99MoveLoc[8](loc4: u64)
100LdU64(1)
101Add
102StLoc[8](loc4: u64)
103Branch(24)
B15:
104MoveLoc[0](Arg0: &mut MintBox)
105Pop
106MoveLoc[3](Arg3: &mut TxContext)
107Pop
108MoveLoc[7](loc3: &mut vector<ID>)
109Pop
110Ret
}
 
public(friend) get(Arg0: &mut MintBox, Arg1: &mut PseudoRandomCounter, Arg2: &mut TxContext): u256 {
L3: loc0: vector<u8>
L4: loc1: u64
L5: loc2: vector<u8>
L6: loc3: u64
L7: loc4: &mut vector<u256>
L8: loc5: &mut vector<ID>
L9: loc6: u64
L10: loc7: u256
L11: loc8: u64
L12: loc9: vector<u8>
B0:
0CopyLoc[0](Arg0: &mut MintBox)
1FreezeRef
2Call is_empty(&MintBox): bool
3Not
4BrFalse(6)
B1:
5Branch(14)
B2:
6MoveLoc[1](Arg1: &mut PseudoRandomCounter)
7Pop
8MoveLoc[0](Arg0: &mut MintBox)
9Pop
10MoveLoc[2](Arg2: &mut TxContext)
11Pop
12LdConst[2](u64: 2)
13Abort
B3:
14CopyLoc[0](Arg0: &mut MintBox)
15MutBorrowField[1](MintBox.box_ids: vector<ID>)
16StLoc[8](loc5: &mut vector<ID>)
17VecPack(17, 0)
18StLoc[12](loc9: vector<u8>)
19MutBorrowLoc[12](loc9: vector<u8>)
20CopyLoc[0](Arg0: &mut MintBox)
21ImmBorrowField[2](MintBox.id: UID)
22Call object::uid_to_bytes(&UID): vector<u8>
23Call vector::append<u8>(&mut vector<u8>, vector<u8>)
24CopyLoc[8](loc5: &mut vector<ID>)
25FreezeRef
26VecLen(9)
27StLoc[4](loc1: u64)
28CopyLoc[1](Arg1: &mut PseudoRandomCounter)
29CopyLoc[12](loc9: vector<u8>)
30CopyLoc[2](Arg2: &mut TxContext)
31Call pseudorandom::rand(&mut PseudoRandomCounter, vector<u8>, &mut TxContext): vector<u8>
32StLoc[3](loc0: vector<u8>)
33MoveLoc[4](loc1: u64)
34ImmBorrowLoc[3](loc0: vector<u8>)
35Call pseudorandom::select_u64(u64, &vector<u8>): u64
36StLoc[9](loc6: u64)
37CopyLoc[0](Arg0: &mut MintBox)
38MutBorrowField[2](MintBox.id: UID)
39CopyLoc[8](loc5: &mut vector<ID>)
40FreezeRef
41CopyLoc[9](loc6: u64)
42VecImmBorrow(9)
43ReadRef
44Call dynamic_field::borrow_mut<ID, vector<u256>>(&mut UID, ID): &mut vector<u256>
45StLoc[7](loc4: &mut vector<u256>)
46MutBorrowLoc[12](loc9: vector<u8>)
47ImmBorrowLoc[9](loc6: u64)
48Call bcs::to_bytes<u64>(&u64): vector<u8>
49Call vector::append<u8>(&mut vector<u8>, vector<u8>)
50CopyLoc[7](loc4: &mut vector<u256>)
51FreezeRef
52VecLen(5)
53StLoc[6](loc3: u64)
54MoveLoc[1](Arg1: &mut PseudoRandomCounter)
55MoveLoc[12](loc9: vector<u8>)
56MoveLoc[2](Arg2: &mut TxContext)
57Call pseudorandom::rand(&mut PseudoRandomCounter, vector<u8>, &mut TxContext): vector<u8>
58StLoc[5](loc2: vector<u8>)
59MoveLoc[6](loc3: u64)
60ImmBorrowLoc[5](loc2: vector<u8>)
61Call pseudorandom::select_u64(u64, &vector<u8>): u64
62StLoc[11](loc8: u64)
63CopyLoc[7](loc4: &mut vector<u256>)
64MoveLoc[11](loc8: u64)
65Call vector::swap_remove<u256>(&mut vector<u256>, u64): u256
66StLoc[10](loc7: u256)
67CopyLoc[0](Arg0: &mut MintBox)
68ImmBorrowField[3](MintBox.size: u64)
69ReadRef
70LdU64(1)
71Sub
72CopyLoc[0](Arg0: &mut MintBox)
73MutBorrowField[3](MintBox.size: u64)
74WriteRef
75MoveLoc[7](loc4: &mut vector<u256>)
76FreezeRef
77Call vector::is_empty<u256>(&vector<u256>): bool
78BrFalse(93)
B4:
79MoveLoc[0](Arg0: &mut MintBox)
80MutBorrowField[2](MintBox.id: UID)
81CopyLoc[8](loc5: &mut vector<ID>)
82FreezeRef
83CopyLoc[9](loc6: u64)
84VecImmBorrow(9)
85ReadRef
86Call dynamic_field::remove<ID, vector<u256>>(&mut UID, ID): vector<u256>
87VecUnpack(5, 0)
88MoveLoc[8](loc5: &mut vector<ID>)
89MoveLoc[9](loc6: u64)
90Call vector::swap_remove<ID>(&mut vector<ID>, u64): ID
91Pop
92Branch(97)
B5:
93MoveLoc[0](Arg0: &mut MintBox)
94Pop
95MoveLoc[8](loc5: &mut vector<ID>)
96Pop
B6:
97MoveLoc[10](loc7: u256)
98Ret
}
 
public(friend) is_empty(Arg0: &MintBox): bool {
B0:
0MoveLoc[0](Arg0: &MintBox)
1ImmBorrowField[3](MintBox.size: u64)
2ReadRef
3LdU64(0)
4Eq
5Ret
}
 
Constants [
0 => u64: 5000
1 => u64: 1
2 => u64: 2
]
}