token
Module0x9bc5…2f5b
- Move path
- 0x9bc5…2f5b::token
- Functions
- 177 public, 0 entry
- Structs
- 5
- Friend modules
- None
token
Bytecode1173 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 9bc51e84b25b968a33a4ec1b2bbf0f328bdd81e75615a75d1f11954c148d2f5b.token {
use 50a3ac2280430c3b668535d82b56c7fe860cac42132b687ca1e1cd11dfe8c918::curve;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::display;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::table;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
struct TOKEN has drop {
dummy_field: bool
}
struct Supply has store, key {
id: UID,
bitmaps: vector<vector<u64>>
}
struct Data has store, key {
id: UID,
curve: Option<ID>,
images: Table<u64, String>,
labels: vector<String>,
values: vector<vector<String>>
}
struct Apesui has store, key {
id: UID,
number: u64,
image: String,
attributes: VecMap<String, String>
}
struct ManagerCap has store, key {
id: UID
}
init(Arg0: TOKEN, Arg1: &mut TxContext) {
L2: loc0: Data
L3: loc1: Display<Apesui>
L4: loc2: ManagerCap
L5: loc3: Publisher
L6: loc4: Supply
B0:
0MoveLoc[0](Arg0: TOKEN)
1CopyLoc[1](Arg1: &mut TxContext)
2Call package::claim<TOKEN>(TOKEN, &mut TxContext): Publisher
3StLoc[5](loc3: Publisher)
4ImmBorrowLoc[5](loc3: Publisher)
5CopyLoc[1](Arg1: &mut TxContext)
6Call display::new<Apesui>(&Publisher, &mut TxContext): Display<Apesui>
7StLoc[3](loc1: Display<Apesui>)
8MutBorrowLoc[3](loc1: Display<Apesui>)
9LdConst[3](vector<u8>: "nam..)
10Call string::utf8(vector<u8>): String
11LdConst[4](vector<u8>: "APE..)
12Call string::utf8(vector<u8>): String
13Call display::add<Apesui>(&mut Display<Apesui>, String, String)
14MutBorrowLoc[3](loc1: Display<Apesui>)
15LdConst[5](vector<u8>: "des..)
16Call string::utf8(vector<u8>): String
17LdConst[6](vector<u8>: "APE..)
18Call string::utf8(vector<u8>): String
19Call display::add<Apesui>(&mut Display<Apesui>, String, String)
20MutBorrowLoc[3](loc1: Display<Apesui>)
21LdConst[7](vector<u8>: "ima..)
22Call string::utf8(vector<u8>): String
23LdConst[8](vector<u8>: "ipf..)
24Call string::utf8(vector<u8>): String
25Call display::add<Apesui>(&mut Display<Apesui>, String, String)
26MutBorrowLoc[3](loc1: Display<Apesui>)
27LdConst[9](vector<u8>: "att..)
28Call string::utf8(vector<u8>): String
29LdConst[10](vector<u8>: "{at..)
30Call string::utf8(vector<u8>): String
31Call display::add<Apesui>(&mut Display<Apesui>, String, String)
32MutBorrowLoc[3](loc1: Display<Apesui>)
33Call display::update_version<Apesui>(&mut Display<Apesui>)
34CopyLoc[1](Arg1: &mut TxContext)
35Call object::new(&mut TxContext): UID
36VecPack(35, 0)
37Pack[1](Supply)
38StLoc[6](loc4: Supply)
39CopyLoc[1](Arg1: &mut TxContext)
40Call object::new(&mut TxContext): UID
41Call option::none<ID>(): Option<ID>
42CopyLoc[1](Arg1: &mut TxContext)
43Call table::new<u64, String>(&mut TxContext): Table<u64, String>
44VecPack(31, 0)
45VecPack(10, 0)
46Pack[2](Data)
47StLoc[2](loc0: Data)
48CopyLoc[1](Arg1: &mut TxContext)
49Call object::new(&mut TxContext): UID
50Pack[4](ManagerCap)
51StLoc[4](loc2: ManagerCap)
52MoveLoc[6](loc4: Supply)
53Call transfer::public_share_object<Supply>(Supply)
54MoveLoc[2](loc0: Data)
55Call transfer::public_share_object<Data>(Data)
56MoveLoc[5](loc3: Publisher)
57CopyLoc[1](Arg1: &mut TxContext)
58FreezeRef
59Call tx_context::sender(&TxContext): address
60Call transfer::public_transfer<Publisher>(Publisher, address)
61MoveLoc[3](loc1: Display<Apesui>)
62CopyLoc[1](Arg1: &mut TxContext)
63FreezeRef
64Call tx_context::sender(&TxContext): address
65Call transfer::public_transfer<Display<Apesui>>(Display<Apesui>, address)
66MoveLoc[4](loc2: ManagerCap)
67MoveLoc[1](Arg1: &mut TxContext)
68FreezeRef
69Call tx_context::sender(&TxContext): address
70Call transfer::transfer<ManagerCap>(ManagerCap, address)
71Ret
}
public set_images(Arg0: &ManagerCap, Arg1: vector<String>, Arg2: vector<u64>, Arg3: &mut Data, Arg4: &mut Supply) {
L5: loc0: u64
L6: loc1: u64
L7: loc2: String
L8: loc3: u64
L9: loc4: vector<u64>
B0:
0ImmBorrowLoc[1](Arg1: vector<String>)
1Call vector::is_empty<String>(&vector<String>): bool
2Not
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[4](Arg4: &mut Supply)
6Pop
7MoveLoc[3](Arg3: &mut Data)
8Pop
9LdU64(0)
10Abort
B3:
11ImmBorrowLoc[2](Arg2: vector<u64>)
12Call vector::is_empty<u64>(&vector<u64>): bool
13Not
14BrFalse(16)
B4:
15Branch(22)
B5:
16MoveLoc[4](Arg4: &mut Supply)
17Pop
18MoveLoc[3](Arg3: &mut Data)
19Pop
20LdU64(0)
21Abort
B6:
22ImmBorrowLoc[2](Arg2: vector<u64>)
23VecLen(12)
24ImmBorrowLoc[1](Arg1: vector<String>)
25VecLen(31)
26Eq
27BrFalse(29)
B7:
28Branch(35)
B8:
29MoveLoc[4](Arg4: &mut Supply)
30Pop
31MoveLoc[3](Arg3: &mut Data)
32Pop
33LdU64(0)
34Abort
B9:
35MutBorrowLoc[1](Arg1: vector<String>)
36Call vector::reverse<String>(&mut vector<String>)
37MutBorrowLoc[2](Arg2: vector<u64>)
38Call vector::reverse<u64>(&mut vector<u64>)
39CopyLoc[4](Arg4: &mut Supply)
40ImmBorrowField[0](Supply.bitmaps: vector<vector<u64>>)
41VecLen(35)
42StLoc[6](loc1: u64)
B10:
43ImmBorrowLoc[1](Arg1: vector<String>)
44Call vector::is_empty<String>(&vector<String>): bool
45Not
46BrFalse(77)
B11:
47MoveLoc[6](loc1: u64)
48LdU64(1)
49Add
50StLoc[6](loc1: u64)
51MutBorrowLoc[1](Arg1: vector<String>)
52VecPopBack(31)
53StLoc[7](loc2: String)
54MutBorrowLoc[2](Arg2: vector<u64>)
55VecPopBack(12)
56StLoc[5](loc0: u64)
57CopyLoc[3](Arg3: &mut Data)
58MutBorrowField[1](Data.images: Table<u64, String>)
59CopyLoc[5](loc0: u64)
60MoveLoc[7](loc2: String)
61Call table::add<u64, String>(&mut Table<u64, String>, u64, String)
62VecPack(12, 0)
63StLoc[9](loc4: vector<u64>)
64CopyLoc[6](loc1: u64)
65StLoc[8](loc3: u64)
66MutBorrowLoc[9](loc4: vector<u64>)
67MoveLoc[8](loc3: u64)
68VecPushBack(12)
69MutBorrowLoc[9](loc4: vector<u64>)
70MoveLoc[5](loc0: u64)
71VecPushBack(12)
72CopyLoc[4](Arg4: &mut Supply)
73MutBorrowField[0](Supply.bitmaps: vector<vector<u64>>)
74MoveLoc[9](loc4: vector<u64>)
75VecPushBack(35)
76Branch(43)
B12:
77MoveLoc[4](Arg4: &mut Supply)
78Pop
79MoveLoc[3](Arg3: &mut Data)
80Pop
81Ret
}
public set_traits(Arg0: &ManagerCap, Arg1: vector<String>, Arg2: vector<vector<String>>, Arg3: &mut Data) {
L4: loc0: bool
L5: loc1: bool
L6: loc2: u64
L7: loc3: u64
B0:
0ImmBorrowLoc[1](Arg1: vector<String>)
1VecLen(31)
2LdConst[0](u64: 5)
3Ge
4BrFalse(11)
B1:
5ImmBorrowLoc[1](Arg1: vector<String>)
6VecLen(31)
7LdConst[1](u64: 16)
8Le
9StLoc[4](loc0: bool)
10Branch(13)
B2:
11LdFalse
12StLoc[4](loc0: bool)
B3:
13MoveLoc[4](loc0: bool)
14BrFalse(16)
B4:
15Branch(20)
B5:
16MoveLoc[3](Arg3: &mut Data)
17Pop
18LdU64(0)
19Abort
B6:
20ImmBorrowLoc[2](Arg2: vector<vector<String>>)
21VecLen(10)
22ImmBorrowLoc[1](Arg1: vector<String>)
23VecLen(31)
24Eq
25BrFalse(27)
B7:
26Branch(31)
B8:
27MoveLoc[3](Arg3: &mut Data)
28Pop
29LdU64(0)
30Abort
B9:
31CopyLoc[3](Arg3: &mut Data)
32ImmBorrowField[2](Data.labels: vector<String>)
33Call vector::is_empty<String>(&vector<String>): bool
34BrFalse(36)
B10:
35Branch(40)
B11:
36MoveLoc[3](Arg3: &mut Data)
37Pop
38LdU64(0)
39Abort
B12:
40CopyLoc[3](Arg3: &mut Data)
41ImmBorrowField[3](Data.values: vector<vector<String>>)
42Call vector::is_empty<vector<String>>(&vector<vector<String>>): bool
43BrFalse(45)
B13:
44Branch(49)
B14:
45MoveLoc[3](Arg3: &mut Data)
46Pop
47LdU64(0)
48Abort
B15:
49LdU64(1)
50StLoc[6](loc2: u64)
B16:
51CopyLoc[6](loc2: u64)
52CopyLoc[3](Arg3: &mut Data)
53ImmBorrowField[3](Data.values: vector<vector<String>>)
54VecLen(10)
55Le
56BrFalse(86)
B17:
57CopyLoc[3](Arg3: &mut Data)
58ImmBorrowField[3](Data.values: vector<vector<String>>)
59CopyLoc[6](loc2: u64)
60VecImmBorrow(10)
61VecLen(31)
62StLoc[7](loc3: u64)
63CopyLoc[7](loc3: u64)
64LdConst[0](u64: 5)
65Ge
66BrFalse(72)
B18:
67MoveLoc[7](loc3: u64)
68LdConst[1](u64: 16)
69Le
70StLoc[5](loc1: bool)
71Branch(74)
B19:
72LdFalse
73StLoc[5](loc1: bool)
B20:
74MoveLoc[5](loc1: bool)
75BrFalse(77)
B21:
76Branch(81)
B22:
77MoveLoc[3](Arg3: &mut Data)
78Pop
79LdU64(9223372552250851327)
80Abort
B23:
81MoveLoc[6](loc2: u64)
82LdU64(1)
83Add
84StLoc[6](loc2: u64)
85Branch(51)
B24:
86MoveLoc[2](Arg2: vector<vector<String>>)
87CopyLoc[3](Arg3: &mut Data)
88MutBorrowField[3](Data.values: vector<vector<String>>)
89WriteRef
90MoveLoc[1](Arg1: vector<String>)
91MoveLoc[3](Arg3: &mut Data)
92MutBorrowField[2](Data.labels: vector<String>)
93WriteRef
94Ret
}
public set_curve(Arg0: &ManagerCap, Arg1: &mut Data, Arg2: ID) {
B0:
0CopyLoc[1](Arg1: &mut Data)
1ImmBorrowField[4](Data.curve: Option<ID>)
2Call option::is_none<ID>(&Option<ID>): bool
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[1](Arg1: &mut Data)
6Pop
7LdU64(0)
8Abort
B3:
9MoveLoc[2](Arg2: ID)
10Call option::some<ID>(ID): Option<ID>
11MoveLoc[1](Arg1: &mut Data)
12MutBorrowField[4](Data.curve: Option<ID>)
13WriteRef
14Ret
}
public buy_on_curve(Arg0: CurveBuyOrder<Apesui>, Arg1: &Data, Arg2: &mut Supply, Arg3: &mut TxContext): vector<Apesui> * CurveBuyOrder<Apesui> {
L4: loc0: ID
B0:
0CopyLoc[1](Arg1: &Data)
1ImmBorrowField[4](Data.curve: Option<ID>)
2Call option::is_some<ID>(&Option<ID>): bool
3BrFalse(5)
B1:
4Branch(13)
B2:
5MoveLoc[2](Arg2: &mut Supply)
6Pop
7MoveLoc[1](Arg1: &Data)
8Pop
9MoveLoc[3](Arg3: &mut TxContext)
10Pop
11LdU64(0)
12Abort
B3:
13ImmBorrowLoc[0](Arg0: CurveBuyOrder<Apesui>)
14Call curve::buy_order_curve<Apesui>(&CurveBuyOrder<Apesui>): ID
15StLoc[4](loc0: ID)
16ImmBorrowLoc[4](loc0: ID)
17CopyLoc[1](Arg1: &Data)
18ImmBorrowField[4](Data.curve: Option<ID>)
19Call option::borrow<ID>(&Option<ID>): &ID
20Eq
21BrFalse(23)
B4:
22Branch(31)
B5:
23MoveLoc[2](Arg2: &mut Supply)
24Pop
25MoveLoc[1](Arg1: &Data)
26Pop
27MoveLoc[3](Arg3: &mut TxContext)
28Pop
29LdU64(0)
30Abort
B6:
31MoveLoc[1](Arg1: &Data)
32MoveLoc[2](Arg2: &mut Supply)
33ImmBorrowLoc[0](Arg0: CurveBuyOrder<Apesui>)
34Call curve::buy_order_size<Apesui>(&CurveBuyOrder<Apesui>): u64
35MoveLoc[3](Arg3: &mut TxContext)
36Call mint(&Data, &mut Supply, u64, &mut TxContext): vector<Apesui>
37MoveLoc[0](Arg0: CurveBuyOrder<Apesui>)
38Ret
}
mint(Arg0: &Data, Arg1: &mut Supply, Arg2: u64, Arg3: &mut TxContext): vector<Apesui> {
L4: loc0: bool
L5: loc1: Apesui
L6: loc2: vector<Apesui>
L7: loc3: VecMap<String, String>
L8: loc4: u64
L9: loc5: vector<String>
L10: loc6: u64
L11: loc7: u64
L12: loc8: String
L13: loc9: u64
L14: loc10: u64
L15: loc11: vector<u64>
L16: loc12: u64
L17: loc13: String
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Gt
3BrFalse(9)
B1:
4CopyLoc[2](Arg2: u64)
5LdConst[2](u64: 1000)
6Le
7StLoc[4](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[4](loc0: bool)
B3:
11MoveLoc[4](loc0: bool)
12BrFalse(14)
B4:
13Branch(22)
B5:
14MoveLoc[1](Arg1: &mut Supply)
15Pop
16MoveLoc[0](Arg0: &Data)
17Pop
18MoveLoc[3](Arg3: &mut TxContext)
19Pop
20LdU64(0)
21Abort
B6:
22CopyLoc[2](Arg2: u64)
23CopyLoc[1](Arg1: &mut Supply)
24ImmBorrowField[0](Supply.bitmaps: vector<vector<u64>>)
25VecLen(35)
26Le
27BrFalse(29)
B7:
28Branch(37)
B8:
29MoveLoc[1](Arg1: &mut Supply)
30Pop
31MoveLoc[0](Arg0: &Data)
32Pop
33MoveLoc[3](Arg3: &mut TxContext)
34Pop
35LdU64(9223372706869673983)
36Abort
B9:
37LdU64(0)
38StLoc[11](loc7: u64)
39VecPack(27, 0)
40StLoc[6](loc2: vector<Apesui>)
B10:
41CopyLoc[11](loc7: u64)
42CopyLoc[2](Arg2: u64)
43Lt
44BrFalse(127)
B11:
45CopyLoc[1](Arg1: &mut Supply)
46ImmBorrowField[0](Supply.bitmaps: vector<vector<u64>>)
47VecLen(35)
48LdU64(1)
49Sub
50StLoc[13](loc9: u64)
51CopyLoc[3](Arg3: &mut TxContext)
52FreezeRef
53Call tx_context::digest(&TxContext): &vector<u8>
54Call seed(&vector<u8>): u64
55LdU64(0)
56MoveLoc[13](loc9: u64)
57Call random_in_range(u64, u64, u64): u64
58StLoc[16](loc12: u64)
59CopyLoc[1](Arg1: &mut Supply)
60MutBorrowField[0](Supply.bitmaps: vector<vector<u64>>)
61MoveLoc[16](loc12: u64)
62CastU64
63Call vector::swap_remove<vector<u64>>(&mut vector<vector<u64>>, u64): vector<u64>
64StLoc[15](loc11: vector<u64>)
65MutBorrowLoc[15](loc11: vector<u64>)
66VecPopBack(12)
67StLoc[8](loc4: u64)
68MutBorrowLoc[15](loc11: vector<u64>)
69VecPopBack(12)
70StLoc[14](loc10: u64)
71CopyLoc[8](loc4: u64)
72CopyLoc[0](Arg0: &Data)
73ImmBorrowField[3](Data.values: vector<vector<String>>)
74ReadRef
75Call decode_bitmap(u64, vector<vector<String>>): vector<String>
76StLoc[9](loc5: vector<String>)
77LdU64(0)
78StLoc[10](loc6: u64)
79Call vec_map::empty<String, String>(): VecMap<String, String>
80StLoc[7](loc3: VecMap<String, String>)
B12:
81CopyLoc[10](loc6: u64)
82CopyLoc[0](Arg0: &Data)
83ImmBorrowField[2](Data.labels: vector<String>)
84VecLen(31)
85Lt
86BrFalse(108)
B13:
87Branch(88)
B14:
88CopyLoc[0](Arg0: &Data)
89ImmBorrowField[2](Data.labels: vector<String>)
90CopyLoc[10](loc6: u64)
91VecImmBorrow(31)
92ReadRef
93StLoc[12](loc8: String)
94ImmBorrowLoc[9](loc5: vector<String>)
95CopyLoc[10](loc6: u64)
96VecImmBorrow(31)
97ReadRef
98StLoc[17](loc13: String)
99MutBorrowLoc[7](loc3: VecMap<String, String>)
100MoveLoc[12](loc8: String)
101MoveLoc[17](loc13: String)
102Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
103MoveLoc[10](loc6: u64)
104LdU64(1)
105Add
106StLoc[10](loc6: u64)
107Branch(81)
B15:
108CopyLoc[3](Arg3: &mut TxContext)
109Call object::new(&mut TxContext): UID
110MoveLoc[14](loc10: u64)
111CopyLoc[0](Arg0: &Data)
112ImmBorrowField[1](Data.images: Table<u64, String>)
113MoveLoc[8](loc4: u64)
114Call table::borrow<u64, String>(&Table<u64, String>, u64): &String
115ReadRef
116MoveLoc[7](loc3: VecMap<String, String>)
117Pack[3](Apesui)
118StLoc[5](loc1: Apesui)
119MutBorrowLoc[6](loc2: vector<Apesui>)
120MoveLoc[5](loc1: Apesui)
121VecPushBack(27)
122MoveLoc[11](loc7: u64)
123LdU64(1)
124Add
125StLoc[11](loc7: u64)
126Branch(41)
B16:
127MoveLoc[1](Arg1: &mut Supply)
128Pop
129MoveLoc[0](Arg0: &Data)
130Pop
131MoveLoc[3](Arg3: &mut TxContext)
132Pop
133MoveLoc[6](loc2: vector<Apesui>)
134Ret
}
public decode_bitmap(Arg0: u64, Arg1: vector<vector<String>>): vector<String> {
L2: loc0: bool
L3: loc1: vector<String>
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
L7: loc5: u8
L8: loc6: &String
B0:
0ImmBorrowLoc[1](Arg1: vector<vector<String>>)
1VecLen(10)
2StLoc[6](loc4: u64)
3CopyLoc[6](loc4: u64)
4LdConst[0](u64: 5)
5Ge
6BrFalse(12)
B1:
7CopyLoc[6](loc4: u64)
8LdConst[1](u64: 16)
9Le
10StLoc[2](loc0: bool)
11Branch(14)
B2:
12LdFalse
13StLoc[2](loc0: bool)
B3:
14MoveLoc[2](loc0: bool)
15BrFalse(17)
B4:
16Branch(19)
B5:
17LdU64(0)
18Abort
B6:
19VecPack(31, 0)
20StLoc[3](loc1: vector<String>)
21LdU8(0)
22StLoc[7](loc5: u8)
23LdU64(0)
24StLoc[5](loc3: u64)
B7:
25CopyLoc[5](loc3: u64)
26CopyLoc[6](loc4: u64)
27Lt
28BrFalse(55)
B8:
29CopyLoc[0](Arg0: u64)
30CopyLoc[7](loc5: u8)
31Shr
32LdU64(15)
33BitAnd
34CastU64
35StLoc[4](loc2: u64)
36ImmBorrowLoc[1](Arg1: vector<vector<String>>)
37CopyLoc[5](loc3: u64)
38VecImmBorrow(10)
39MoveLoc[4](loc2: u64)
40VecImmBorrow(31)
41StLoc[8](loc6: &String)
42MutBorrowLoc[3](loc1: vector<String>)
43MoveLoc[8](loc6: &String)
44ReadRef
45VecPushBack(31)
46MoveLoc[7](loc5: u8)
47LdU8(4)
48Add
49StLoc[7](loc5: u8)
50MoveLoc[5](loc3: u64)
51LdU64(1)
52Add
53StLoc[5](loc3: u64)
54Branch(25)
B9:
55MoveLoc[3](loc1: vector<String>)
56Ret
}
public encode_bitmap(Arg0: vector<String>, Arg1: vector<vector<String>>): u64 {
L2: loc0: bool
L3: loc1: u64
L4: loc2: &String
L5: loc3: u64
L6: loc4: u64
L7: loc5: u64
L8: loc6: &vector<String>
L9: loc7: u8
L10: loc8: u64
B0:
0ImmBorrowLoc[1](Arg1: vector<vector<String>>)
1VecLen(10)
2StLoc[7](loc5: u64)
3CopyLoc[7](loc5: u64)
4LdConst[0](u64: 5)
5Ge
6BrFalse(12)
B1:
7CopyLoc[7](loc5: u64)
8LdConst[1](u64: 16)
9Le
10StLoc[2](loc0: bool)
11Branch(14)
B2:
12LdFalse
13StLoc[2](loc0: bool)
B3:
14MoveLoc[2](loc0: bool)
15BrFalse(17)
B4:
16Branch(19)
B5:
17LdU64(0)
18Abort
B6:
19LdU64(0)
20StLoc[3](loc1: u64)
21LdU8(0)
22StLoc[9](loc7: u8)
23LdU64(0)
24StLoc[5](loc3: u64)
B7:
25CopyLoc[5](loc3: u64)
26CopyLoc[7](loc5: u64)
27Lt
28BrFalse(84)
B8:
29ImmBorrowLoc[0](Arg0: vector<String>)
30CopyLoc[5](loc3: u64)
31VecImmBorrow(31)
32StLoc[4](loc2: &String)
33ImmBorrowLoc[1](Arg1: vector<vector<String>>)
34CopyLoc[5](loc3: u64)
35VecImmBorrow(10)
36StLoc[8](loc6: &vector<String>)
37LdU64(0)
38StLoc[6](loc4: u64)
39LdU64(0)
40StLoc[10](loc8: u64)
41Branch(42)
B9:
42CopyLoc[6](loc4: u64)
43CopyLoc[8](loc6: &vector<String>)
44VecLen(31)
45Lt
46BrFalse(69)
B10:
47CopyLoc[8](loc6: &vector<String>)
48CopyLoc[6](loc4: u64)
49VecImmBorrow(31)
50ReadRef
51CopyLoc[4](loc2: &String)
52ReadRef
53Eq
54BrFalse(64)
B11:
55Branch(56)
B12:
56MoveLoc[8](loc6: &vector<String>)
57Pop
58MoveLoc[4](loc2: &String)
59Pop
60MoveLoc[6](loc4: u64)
61CastU64
62StLoc[10](loc8: u64)
63Branch(69)
B13:
64MoveLoc[6](loc4: u64)
65LdU64(1)
66Add
67StLoc[6](loc4: u64)
68Branch(42)
B14:
69MoveLoc[3](loc1: u64)
70MoveLoc[10](loc8: u64)
71CopyLoc[9](loc7: u8)
72Shl
73BitOr
74StLoc[3](loc1: u64)
75MoveLoc[9](loc7: u8)
76LdU8(4)
77Add
78StLoc[9](loc7: u8)
79MoveLoc[5](loc3: u64)
80LdU64(1)
81Add
82StLoc[5](loc3: u64)
83Branch(25)
B15:
84MoveLoc[3](loc1: u64)
85Ret
}
public sell_on_curve(Arg0: vector<Apesui>, Arg1: CurveSellOrder<Apesui>, Arg2: &mut Supply, Arg3: &Data): vector<UID> * CurveSellOrder<Apesui> {
L4: loc0: ID
L5: loc1: Apesui
L6: loc2: vector<ID>
L7: loc3: vector<Apesui>
L8: loc4: u64
L9: loc5: ID
L10: loc6: u64
L11: loc7: UID
L12: loc8: vector<UID>
B0:
0CopyLoc[3](Arg3: &Data)
1ImmBorrowField[4](Data.curve: Option<ID>)
2Call option::is_some<ID>(&Option<ID>): bool
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[2](Arg2: &mut Supply)
6Pop
7MoveLoc[3](Arg3: &Data)
8Pop
9LdU64(0)
10Abort
B3:
11ImmBorrowLoc[1](Arg1: CurveSellOrder<Apesui>)
12Call curve::sell_order_curve<Apesui>(&CurveSellOrder<Apesui>): ID
13StLoc[4](loc0: ID)
14ImmBorrowLoc[4](loc0: ID)
15CopyLoc[3](Arg3: &Data)
16ImmBorrowField[4](Data.curve: Option<ID>)
17Call option::borrow<ID>(&Option<ID>): &ID
18Eq
19BrFalse(21)
B4:
20Branch(27)
B5:
21MoveLoc[2](Arg2: &mut Supply)
22Pop
23MoveLoc[3](Arg3: &Data)
24Pop
25LdU64(0)
26Abort
B6:
27ImmBorrowLoc[1](Arg1: CurveSellOrder<Apesui>)
28Call curve::sell_asset_ids<Apesui>(&CurveSellOrder<Apesui>): vector<ID>
29StLoc[6](loc2: vector<ID>)
30MoveLoc[0](Arg0: vector<Apesui>)
31StLoc[7](loc3: vector<Apesui>)
32ImmBorrowLoc[6](loc2: vector<ID>)
33VecLen(20)
34ImmBorrowLoc[7](loc3: vector<Apesui>)
35VecLen(27)
36Eq
37BrFalse(39)
B7:
38Branch(45)
B8:
39MoveLoc[2](Arg2: &mut Supply)
40Pop
41MoveLoc[3](Arg3: &Data)
42Pop
43LdU64(0)
44Abort
B9:
45ImmBorrowLoc[6](loc2: vector<ID>)
46VecLen(20)
47StLoc[10](loc6: u64)
48LdU64(0)
49StLoc[8](loc4: u64)
50VecPack(16, 0)
51StLoc[12](loc8: vector<UID>)
B10:
52CopyLoc[8](loc4: u64)
53CopyLoc[10](loc6: u64)
54Lt
55BrFalse(87)
B11:
56MutBorrowLoc[7](loc3: vector<Apesui>)
57VecPopBack(27)
58StLoc[5](loc1: Apesui)
59MutBorrowLoc[6](loc2: vector<ID>)
60VecPopBack(20)
61StLoc[9](loc5: ID)
62ImmBorrowLoc[5](loc1: Apesui)
63Call id(&Apesui): ID
64MoveLoc[9](loc5: ID)
65Eq
66BrFalse(68)
B12:
67Branch(74)
B13:
68MoveLoc[2](Arg2: &mut Supply)
69Pop
70MoveLoc[3](Arg3: &Data)
71Pop
72LdU64(0)
73Abort
B14:
74MoveLoc[5](loc1: Apesui)
75CopyLoc[2](Arg2: &mut Supply)
76CopyLoc[3](Arg3: &Data)
77Call burn(Apesui, &mut Supply, &Data): UID
78StLoc[11](loc7: UID)
79MutBorrowLoc[12](loc8: vector<UID>)
80MoveLoc[11](loc7: UID)
81VecPushBack(16)
82MoveLoc[8](loc4: u64)
83LdU64(1)
84Add
85StLoc[8](loc4: u64)
86Branch(52)
B15:
87MoveLoc[2](Arg2: &mut Supply)
88Pop
89MoveLoc[3](Arg3: &Data)
90Pop
91MoveLoc[7](loc3: vector<Apesui>)
92VecUnpack(27, 0)
93MoveLoc[6](loc2: vector<ID>)
94VecUnpack(20, 0)
95MutBorrowLoc[12](loc8: vector<UID>)
96Call vector::reverse<UID>(&mut vector<UID>)
97MoveLoc[12](loc8: vector<UID>)
98MoveLoc[1](Arg1: CurveSellOrder<Apesui>)
99Ret
}
burn(Arg0: Apesui, Arg1: &mut Supply, Arg2: &Data): UID {
L3: loc0: VecMap<String, String>
L4: loc1: u64
L5: loc2: vector<String>
L6: loc3: u64
L7: loc4: UID
L8: loc5: String
L9: loc6: u64
L10: loc7: u64
L11: loc8: vector<u64>
B0:
0MoveLoc[0](Arg0: Apesui)
1Unpack[3](Apesui)
2StLoc[3](loc0: VecMap<String, String>)
3Pop
4StLoc[10](loc7: u64)
5StLoc[7](loc4: UID)
6LdU64(0)
7StLoc[6](loc3: u64)
8CopyLoc[2](Arg2: &Data)
9ImmBorrowField[2](Data.labels: vector<String>)
10VecLen(31)
11StLoc[9](loc6: u64)
12VecPack(31, 0)
13StLoc[5](loc2: vector<String>)
B1:
14CopyLoc[6](loc3: u64)
15CopyLoc[9](loc6: u64)
16Lt
17BrFalse(36)
B2:
18Branch(19)
B3:
19CopyLoc[2](Arg2: &Data)
20ImmBorrowField[2](Data.labels: vector<String>)
21CopyLoc[6](loc3: u64)
22VecImmBorrow(31)
23ReadRef
24StLoc[8](loc5: String)
25MutBorrowLoc[5](loc2: vector<String>)
26ImmBorrowLoc[3](loc0: VecMap<String, String>)
27ImmBorrowLoc[8](loc5: String)
28Call vec_map::get<String, String>(&VecMap<String, String>, &String): &String
29ReadRef
30VecPushBack(31)
31MoveLoc[6](loc3: u64)
32LdU64(1)
33Add
34StLoc[6](loc3: u64)
35Branch(14)
B4:
36MoveLoc[5](loc2: vector<String>)
37MoveLoc[2](Arg2: &Data)
38ImmBorrowField[3](Data.values: vector<vector<String>>)
39ReadRef
40Call encode_bitmap(vector<String>, vector<vector<String>>): u64
41StLoc[4](loc1: u64)
42VecPack(12, 0)
43StLoc[11](loc8: vector<u64>)
44MutBorrowLoc[11](loc8: vector<u64>)
45MoveLoc[10](loc7: u64)
46VecPushBack(12)
47MutBorrowLoc[11](loc8: vector<u64>)
48MoveLoc[4](loc1: u64)
49VecPushBack(12)
50MoveLoc[1](Arg1: &mut Supply)
51MutBorrowField[0](Supply.bitmaps: vector<vector<u64>>)
52MoveLoc[11](loc8: vector<u64>)
53VecPushBack(35)
54MoveLoc[7](loc4: UID)
55Ret
}
random_u64(Arg0: u64): u64 {
L1: loc0: u64
B0:
0MoveLoc[0](Arg0: u64)
1StLoc[1](loc0: u64)
2CopyLoc[1](loc0: u64)
3MoveLoc[1](loc0: u64)
4LdU8(13)
5Shl
6Xor
7StLoc[1](loc0: u64)
8CopyLoc[1](loc0: u64)
9MoveLoc[1](loc0: u64)
10LdU8(7)
11Shr
12Xor
13StLoc[1](loc0: u64)
14CopyLoc[1](loc0: u64)
15MoveLoc[1](loc0: u64)
16LdU8(17)
17Shl
18Xor
19Ret
}
random_in_range(Arg0: u64, Arg1: u64, Arg2: u64): u64 {
L3: loc0: u64
L4: loc1: u64
B0:
0CopyLoc[2](Arg2: u64)
1CopyLoc[1](Arg1: u64)
2Ge
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdU64(1)
6Abort
B3:
7CopyLoc[1](Arg1: u64)
8CopyLoc[2](Arg2: u64)
9Eq
10BrFalse(13)
B4:
11MoveLoc[1](Arg1: u64)
12Ret
B5:
13MoveLoc[2](Arg2: u64)
14CopyLoc[1](Arg1: u64)
15Sub
16LdU64(1)
17Add
18StLoc[4](loc1: u64)
19MoveLoc[0](Arg0: u64)
20Call random_u64(u64): u64
21MoveLoc[4](loc1: u64)
22Mod
23StLoc[3](loc0: u64)
24MoveLoc[1](Arg1: u64)
25MoveLoc[3](loc0: u64)
26Add
27Ret
}
seed(Arg0: &vector<u8>): u64 {
B0:
0CopyLoc[0](Arg0: &vector<u8>)
1VecLen(71)
2LdU64(8)
3Ge
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &vector<u8>)
7Pop
8LdU64(1)
9Abort
B3:
10CopyLoc[0](Arg0: &vector<u8>)
11LdU64(0)
12VecImmBorrow(71)
13ReadRef
14CastU64
15CopyLoc[0](Arg0: &vector<u8>)
16LdU64(1)
17VecImmBorrow(71)
18ReadRef
19CastU64
20LdU8(8)
21Shl
22BitOr
23CopyLoc[0](Arg0: &vector<u8>)
24LdU64(2)
25VecImmBorrow(71)
26ReadRef
27CastU64
28LdU8(16)
29Shl
30BitOr
31CopyLoc[0](Arg0: &vector<u8>)
32LdU64(3)
33VecImmBorrow(71)
34ReadRef
35CastU64
36LdU8(24)
37Shl
38BitOr
39CopyLoc[0](Arg0: &vector<u8>)
40LdU64(4)
41VecImmBorrow(71)
42ReadRef
43CastU64
44LdU8(32)
45Shl
46BitOr
47CopyLoc[0](Arg0: &vector<u8>)
48LdU64(5)
49VecImmBorrow(71)
50ReadRef
51CastU64
52LdU8(40)
53Shl
54BitOr
55CopyLoc[0](Arg0: &vector<u8>)
56LdU64(6)
57VecImmBorrow(71)
58ReadRef
59CastU64
60LdU8(48)
61Shl
62BitOr
63MoveLoc[0](Arg0: &vector<u8>)
64LdU64(7)
65VecImmBorrow(71)
66ReadRef
67CastU64
68LdU8(56)
69Shl
70BitOr
71Ret
}
public(friend) id(Arg0: &Apesui): ID {
B0:
0MoveLoc[0](Arg0: &Apesui)
1Call object::id<Apesui>(&Apesui): ID
2Ret
}
public(friend) number(Arg0: &Apesui): u64 {
B0:
0MoveLoc[0](Arg0: &Apesui)
1ImmBorrowField[5](Apesui.number: u64)
2ReadRef
3Ret
}
public(friend) image(Arg0: &Apesui): &String {
B0:
0MoveLoc[0](Arg0: &Apesui)
1ImmBorrowField[6](Apesui.image: String)
2Ret
}
public(friend) attributes(Arg0: &Apesui): &VecMap<String, String> {
B0:
0MoveLoc[0](Arg0: &Apesui)
1ImmBorrowField[7](Apesui.attributes: VecMap<String, String>)
2Ret
}
Constants [
0 => u64: 5
1 => u64: 16
2 => u64: 1000
3 => vector<u8>: "name" // interpreted as UTF8 string
4 => vector<u8>: "APESUI #{number}" // interpreted as UTF8 string
5 => vector<u8>: "description" // interpreted as UTF8 string
6 => vector<u8>: "APESUI GO TO SUI" // interpreted as UTF8 string
7 => vector<u8>: "image_url" // interpreted as UTF8 string
8 => vector<u8>: "ipfs://{image}" // interpreted as UTF8 string
9 => vector<u8>: "attributes" // interpreted as UTF8 string
10 => vector<u8>: "{attributes}" // interpreted as UTF8 string
]
}