attributes
Module0x43f7…b97d
- Move path
- 0x43f7…b97d::attributes
- Functions
- 84 public, 0 entry
- Structs
- 3
- Friend modules
- rootlet
attributes
Bytecode299 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 43f7a7e57ac5713f2f633d8d299d0f6d4ceb4f7e111d491e077fb61301efb97d.attributes {
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::table_vec;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
struct NftData has store {
number: u64,
keys: vector<String>,
values: vector<String>,
image_url: String
}
struct CollectionData has key {
id: UID,
nfts: TableVec<NftData>
}
struct DataCap has store, key {
id: UID
}
init(Arg0: &mut TxContext) {
B0:
0CopyLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2CopyLoc[0](Arg0: &mut TxContext)
3Call table_vec::empty<NftData>(&mut TxContext): TableVec<NftData>
4Pack[1](CollectionData)
5Call transfer::share_object<CollectionData>(CollectionData)
6CopyLoc[0](Arg0: &mut TxContext)
7Call object::new(&mut TxContext): UID
8Pack[2](DataCap)
9MoveLoc[0](Arg0: &mut TxContext)
10FreezeRef
11Call tx_context::sender(&TxContext): address
12Call transfer::public_transfer<DataCap>(DataCap, address)
13Ret
}
public nfts_left(Arg0: &CollectionData): u64 {
B0:
0MoveLoc[0](Arg0: &CollectionData)
1ImmBorrowField[0](CollectionData.nfts: TableVec<NftData>)
2Call table_vec::length<NftData>(&TableVec<NftData>): u64
3Ret
}
public is_robot(Arg0: u64): bool {
B0:
0MoveLoc[0](Arg0: u64)
1LdConst[1](u64: 5545)
2Gt
3Ret
}
public add_attribute(Arg0: &mut CollectionData, Arg1: &DataCap, Arg2: u64, Arg3: String, Arg4: vector<String>, Arg5: vector<String>) {
L6: loc0: u64
L7: loc1: bool
L8: loc2: vector<String>
L9: loc3: bool
L10: loc4: vector<String>
L11: loc5: u64
L12: loc6: u64
L13: loc7: &String
L14: loc8: NftData
L15: loc9: u64
L16: loc10: &vector<String>
B0:
0CopyLoc[0](Arg0: &mut CollectionData)
1ImmBorrowField[0](CollectionData.nfts: TableVec<NftData>)
2Call table_vec::length<NftData>(&TableVec<NftData>): u64
3LdConst[0](u64: 5555)
4Lt
5BrFalse(11)
B1:
6LdConst[0](u64: 5555)
7CopyLoc[2](Arg2: u64)
8Ge
9StLoc[7](loc1: bool)
10Branch(13)
B2:
11LdFalse
12StLoc[7](loc1: bool)
B3:
13MoveLoc[7](loc1: bool)
14BrFalse(16)
B4:
15Branch(20)
B5:
16MoveLoc[0](Arg0: &mut CollectionData)
17Pop
18LdU64(9223372251603140607)
19Abort
B6:
20ImmBorrowLoc[3](Arg3: String)
21Call string::is_empty(&String): bool
22Not
23BrFalse(25)
B7:
24Branch(29)
B8:
25MoveLoc[0](Arg0: &mut CollectionData)
26Pop
27LdU64(9223372255898107903)
28Abort
B9:
29CopyLoc[2](Arg2: u64)
30Call is_robot(u64): bool
31BrFalse(35)
B10:
32Call robot_attributes(): vector<String>
33StLoc[8](loc2: vector<String>)
34Branch(37)
B11:
35Call attributes(): vector<String>
36StLoc[8](loc2: vector<String>)
B12:
37MoveLoc[8](loc2: vector<String>)
38StLoc[10](loc4: vector<String>)
39ImmBorrowLoc[4](Arg4: vector<String>)
40StLoc[16](loc10: &vector<String>)
41CopyLoc[16](loc10: &vector<String>)
42VecLen(22)
43StLoc[6](loc0: u64)
44LdU64(0)
45StLoc[12](loc6: u64)
46MoveLoc[6](loc0: u64)
47StLoc[15](loc9: u64)
B13:
48CopyLoc[12](loc6: u64)
49CopyLoc[15](loc9: u64)
50Lt
51BrFalse(73)
B14:
52CopyLoc[12](loc6: u64)
53StLoc[11](loc5: u64)
54CopyLoc[16](loc10: &vector<String>)
55MoveLoc[11](loc5: u64)
56VecImmBorrow(22)
57StLoc[13](loc7: &String)
58ImmBorrowLoc[10](loc4: vector<String>)
59MoveLoc[13](loc7: &String)
60Call vector::contains<String>(&vector<String>, &String): bool
61Not
62BrFalse(68)
B15:
63MoveLoc[16](loc10: &vector<String>)
64Pop
65LdFalse
66StLoc[9](loc3: bool)
67Branch(77)
B16:
68MoveLoc[12](loc6: u64)
69LdU64(1)
70Add
71StLoc[12](loc6: u64)
72Branch(48)
B17:
73MoveLoc[16](loc10: &vector<String>)
74Pop
75LdTrue
76StLoc[9](loc3: bool)
B18:
77MoveLoc[9](loc3: bool)
78BrFalse(80)
B19:
79Branch(84)
B20:
80MoveLoc[0](Arg0: &mut CollectionData)
81Pop
82LdU64(9223372273077977087)
83Abort
B21:
84MoveLoc[2](Arg2: u64)
85MoveLoc[4](Arg4: vector<String>)
86MoveLoc[5](Arg5: vector<String>)
87MoveLoc[3](Arg3: String)
88Pack[0](NftData)
89StLoc[14](loc8: NftData)
90MoveLoc[0](Arg0: &mut CollectionData)
91MutBorrowField[0](CollectionData.nfts: TableVec<NftData>)
92MoveLoc[14](loc8: NftData)
93Call table_vec::push_back<NftData>(&mut TableVec<NftData>, NftData)
94Ret
}
public destroy_data(Arg0: CollectionData, Arg1: DataCap) {
L2: loc0: UID
L3: loc1: TableVec<NftData>
B0:
0MoveLoc[0](Arg0: CollectionData)
1Unpack[1](CollectionData)
2StLoc[3](loc1: TableVec<NftData>)
3StLoc[2](loc0: UID)
4ImmBorrowLoc[3](loc1: TableVec<NftData>)
5Call table_vec::is_empty<NftData>(&TableVec<NftData>): bool
6BrFalse(8)
B1:
7Branch(10)
B2:
8LdU64(9223372337502486527)
9Abort
B3:
10MoveLoc[3](loc1: TableVec<NftData>)
11Call table_vec::destroy_empty<NftData>(TableVec<NftData>)
12MoveLoc[2](loc0: UID)
13Call object::delete(UID)
14MoveLoc[1](Arg1: DataCap)
15Unpack[2](DataCap)
16Call object::delete(UID)
17Ret
}
public(friend) get_nft(Arg0: &mut CollectionData, Arg1: u64): u64 * String * vector<String> * vector<String> {
L2: loc0: NftData
L3: loc1: String
L4: loc2: vector<String>
L5: loc3: vector<String>
B0:
0CopyLoc[0](Arg0: &mut CollectionData)
1ImmBorrowField[0](CollectionData.nfts: TableVec<NftData>)
2Call table_vec::length<NftData>(&TableVec<NftData>): u64
3LdU64(1)
4Eq
5BrFalse(11)
B1:
6MoveLoc[0](Arg0: &mut CollectionData)
7MutBorrowField[0](CollectionData.nfts: TableVec<NftData>)
8Call table_vec::pop_back<NftData>(&mut TableVec<NftData>): NftData
9StLoc[2](loc0: NftData)
10Branch(16)
B2:
11MoveLoc[0](Arg0: &mut CollectionData)
12MutBorrowField[0](CollectionData.nfts: TableVec<NftData>)
13MoveLoc[1](Arg1: u64)
14Call table_vec::swap_remove<NftData>(&mut TableVec<NftData>, u64): NftData
15StLoc[2](loc0: NftData)
B3:
16MoveLoc[2](loc0: NftData)
17Unpack[0](NftData)
18StLoc[3](loc1: String)
19StLoc[5](loc3: vector<String>)
20StLoc[4](loc2: vector<String>)
21MoveLoc[3](loc1: String)
22MoveLoc[4](loc2: vector<String>)
23MoveLoc[5](loc3: vector<String>)
24Ret
}
attributes(): vector<String> {
B0:
0LdConst[2](vector<u8>: "Bac..)
1Call string::utf8(vector<u8>): String
2LdConst[3](vector<u8>: "Clo..)
3Call string::utf8(vector<u8>): String
4LdConst[4](vector<u8>: "Han..)
5Call string::utf8(vector<u8>): String
6LdConst[5](vector<u8>: "Hea..)
7Call string::utf8(vector<u8>): String
8LdConst[6](vector<u8>: "Mou..)
9Call string::utf8(vector<u8>): String
10LdConst[7](vector<u8>: "Eye..)
11Call string::utf8(vector<u8>): String
12LdConst[8](vector<u8>: "The..)
13Call string::utf8(vector<u8>): String
14VecPack(22, 7)
15Ret
}
robot_attributes(): vector<String> {
B0:
0LdConst[2](vector<u8>: "Bac..)
1Call string::utf8(vector<u8>): String
2LdConst[9](vector<u8>: "Ser..)
3Call string::utf8(vector<u8>): String
4LdConst[8](vector<u8>: "The..)
5Call string::utf8(vector<u8>): String
6VecPack(22, 3)
7Ret
}
Constants [
0 => u64: 5555
1 => u64: 5545
2 => vector<u8>: "Background" // interpreted as UTF8 string
3 => vector<u8>: "Clothes" // interpreted as UTF8 string
4 => vector<u8>: "Hand" // interpreted as UTF8 string
5 => vector<u8>: "Head" // interpreted as UTF8 string
6 => vector<u8>: "Mouth" // interpreted as UTF8 string
7 => vector<u8>: "Eyes" // interpreted as UTF8 string
8 => vector<u8>: "Theme" // interpreted as UTF8 string
9 => vector<u8>: "Serial" // interpreted as UTF8 string
]
}