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

display

Module0x0000…0002
Move path
0x0000…0002::display
Functions
1411 public, 6 entry
Structs
3
Friend modules
display_registry
display

Bytecode367 lines

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

// Move bytecode v7
module 2.display {
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
 
struct Display<phantom Ty0: key> has store, key {
id: UID,
fields: VecMap<String, String>,
version: u16
}
 
struct DisplayCreated<phantom Ty0: key> has copy, drop {
id: ID
}
 
struct VersionUpdated<phantom Ty0: key> has copy, drop {
id: ID,
version: u16,
fields: VecMap<String, String>
}
 
public new<Ty0: key>(Arg0: &Publisher, Arg1: &mut TxContext): Display<Ty0> {
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call is_authorized<Ty0>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(8)
B2:
4MoveLoc[1](Arg1: &mut TxContext)
5Pop
6LdConst[0](u64: 0)
7Abort
B3:
8MoveLoc[1](Arg1: &mut TxContext)
9Call create_internal<Ty0>(&mut TxContext): Display<Ty0>
10Ret
}
 
public new_with_fields<Ty0: key>(Arg0: &Publisher, Arg1: vector<String>, Arg2: vector<String>, Arg3: &mut TxContext): Display<Ty0> {
L4: loc0: u64
L5: loc1: Display<Ty0>
L6: loc2: String
L7: loc3: u64
L8: loc4: u64
L9: loc5: vector<String>
L10: loc6: vector<String>
L11: loc7: vector<String>
L12: loc8: String
B0:
0ImmBorrowLoc[1](Arg1: vector<String>)
1VecLen(16)
2ImmBorrowLoc[2](Arg2: vector<String>)
3VecLen(16)
4Eq
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[0](Arg0: &Publisher)
8Pop
9MoveLoc[3](Arg3: &mut TxContext)
10Pop
11LdConst[1](u64: 1)
12Abort
B3:
13MoveLoc[0](Arg0: &Publisher)
14MoveLoc[3](Arg3: &mut TxContext)
15Call new<Ty0>(&Publisher, &mut TxContext): Display<Ty0>
16StLoc[5](loc1: Display<Ty0>)
17MoveLoc[1](Arg1: vector<String>)
18StLoc[10](loc6: vector<String>)
19MoveLoc[2](Arg2: vector<String>)
20StLoc[11](loc7: vector<String>)
21MutBorrowLoc[11](loc7: vector<String>)
22Call vector::reverse<String>(&mut vector<String>)
23ImmBorrowLoc[10](loc6: vector<String>)
24VecLen(16)
25ImmBorrowLoc[11](loc7: vector<String>)
26VecLen(16)
27Eq
28BrFalse(30)
B4:
29Branch(32)
B5:
30LdU64(13906834582365274111)
31Abort
B6:
32MoveLoc[10](loc6: vector<String>)
33StLoc[9](loc5: vector<String>)
34MutBorrowLoc[9](loc5: vector<String>)
35Call vector::reverse<String>(&mut vector<String>)
36ImmBorrowLoc[9](loc5: vector<String>)
37VecLen(16)
38StLoc[4](loc0: u64)
39LdU64(0)
40StLoc[7](loc3: u64)
41MoveLoc[4](loc0: u64)
42StLoc[8](loc4: u64)
B7:
43CopyLoc[7](loc3: u64)
44CopyLoc[8](loc4: u64)
45Lt
46BrFalse(64)
B8:
47CopyLoc[7](loc3: u64)
48Pop
49MutBorrowLoc[9](loc5: vector<String>)
50VecPopBack(16)
51StLoc[6](loc2: String)
52MutBorrowLoc[11](loc7: vector<String>)
53VecPopBack(16)
54StLoc[12](loc8: String)
55MutBorrowLoc[5](loc1: Display<Ty0>)
56MoveLoc[6](loc2: String)
57MoveLoc[12](loc8: String)
58Call add_internal<Ty0>(&mut Display<Ty0>, String, String)
59MoveLoc[7](loc3: u64)
60LdU64(1)
61Add
62StLoc[7](loc3: u64)
63Branch(43)
B9:
64MoveLoc[9](loc5: vector<String>)
65VecUnpack(16, 0)
66MoveLoc[11](loc7: vector<String>)
67VecUnpack(16, 0)
68MoveLoc[5](loc1: Display<Ty0>)
69Ret
}
 
entry public create_and_keep<Ty0: key>(Arg0: &Publisher, Arg1: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &Publisher)
1CopyLoc[1](Arg1: &mut TxContext)
2Call new<Ty0>(&Publisher, &mut TxContext): Display<Ty0>
3MoveLoc[1](Arg1: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6Call transfer::public_transfer<Display<Ty0>>(Display<Ty0>, address)
7Ret
}
 
entry public update_version<Ty0: key>(Arg0: &mut Display<Ty0>) {
L1: loc0: u16
L2: loc1: VecMap<String, String>
B0:
0CopyLoc[0](Arg0: &mut Display<Ty0>)
1ImmBorrowFieldGeneric[0](Display.version: u16)
2ReadRef
3LdU16(1)
4Add
5CopyLoc[0](Arg0: &mut Display<Ty0>)
6MutBorrowFieldGeneric[0](Display.version: u16)
7WriteRef
8CopyLoc[0](Arg0: &mut Display<Ty0>)
9ImmBorrowFieldGeneric[0](Display.version: u16)
10ReadRef
11StLoc[1](loc0: u16)
12CopyLoc[0](Arg0: &mut Display<Ty0>)
13ImmBorrowFieldGeneric[1](Display.fields: VecMap<String, String>)
14ReadRef
15StLoc[2](loc1: VecMap<String, String>)
16MoveLoc[0](Arg0: &mut Display<Ty0>)
17ImmBorrowFieldGeneric[2](Display.id: UID)
18Call object::uid_to_inner(&UID): ID
19MoveLoc[1](loc0: u16)
20MoveLoc[2](loc1: VecMap<String, String>)
21PackGeneric[0](VersionUpdated<Ty0>)
22Call event::emit<VersionUpdated<Ty0>>(VersionUpdated<Ty0>)
23Ret
}
 
entry public add<Ty0: key>(Arg0: &mut Display<Ty0>, Arg1: String, Arg2: String) {
B0:
0MoveLoc[0](Arg0: &mut Display<Ty0>)
1MoveLoc[1](Arg1: String)
2MoveLoc[2](Arg2: String)
3Call add_internal<Ty0>(&mut Display<Ty0>, String, String)
4Ret
}
 
entry public add_multiple<Ty0: key>(Arg0: &mut Display<Ty0>, Arg1: vector<String>, Arg2: vector<String>) {
L3: loc0: u64
L4: loc1: String
L5: loc2: u64
L6: loc3: u64
L7: loc4: vector<String>
L8: loc5: vector<String>
L9: loc6: vector<String>
L10: loc7: String
B0:
0ImmBorrowLoc[1](Arg1: vector<String>)
1VecLen(16)
2ImmBorrowLoc[2](Arg2: vector<String>)
3VecLen(16)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut Display<Ty0>)
8Pop
9LdConst[1](u64: 1)
10Abort
B3:
11MoveLoc[1](Arg1: vector<String>)
12StLoc[8](loc5: vector<String>)
13MoveLoc[2](Arg2: vector<String>)
14StLoc[9](loc6: vector<String>)
15MutBorrowLoc[9](loc6: vector<String>)
16Call vector::reverse<String>(&mut vector<String>)
17ImmBorrowLoc[8](loc5: vector<String>)
18VecLen(16)
19ImmBorrowLoc[9](loc6: vector<String>)
20VecLen(16)
21Eq
22BrFalse(24)
B4:
23Branch(28)
B5:
24MoveLoc[0](Arg0: &mut Display<Ty0>)
25Pop
26LdU64(13906834754163965951)
27Abort
B6:
28MoveLoc[8](loc5: vector<String>)
29StLoc[7](loc4: vector<String>)
30MutBorrowLoc[7](loc4: vector<String>)
31Call vector::reverse<String>(&mut vector<String>)
32ImmBorrowLoc[7](loc4: vector<String>)
33VecLen(16)
34StLoc[3](loc0: u64)
35LdU64(0)
36StLoc[5](loc2: u64)
37MoveLoc[3](loc0: u64)
38StLoc[6](loc3: u64)
B7:
39CopyLoc[5](loc2: u64)
40CopyLoc[6](loc3: u64)
41Lt
42BrFalse(60)
B8:
43CopyLoc[5](loc2: u64)
44Pop
45MutBorrowLoc[7](loc4: vector<String>)
46VecPopBack(16)
47StLoc[4](loc1: String)
48MutBorrowLoc[9](loc6: vector<String>)
49VecPopBack(16)
50StLoc[10](loc7: String)
51CopyLoc[0](Arg0: &mut Display<Ty0>)
52MoveLoc[4](loc1: String)
53MoveLoc[10](loc7: String)
54Call add_internal<Ty0>(&mut Display<Ty0>, String, String)
55MoveLoc[5](loc2: u64)
56LdU64(1)
57Add
58StLoc[5](loc2: u64)
59Branch(39)
B9:
60MoveLoc[0](Arg0: &mut Display<Ty0>)
61Pop
62MoveLoc[7](loc4: vector<String>)
63VecUnpack(16, 0)
64MoveLoc[9](loc6: vector<String>)
65VecUnpack(16, 0)
66Ret
}
 
entry public edit<Ty0: key>(Arg0: &mut Display<Ty0>, Arg1: String, Arg2: String) {
B0:
0CopyLoc[0](Arg0: &mut Display<Ty0>)
1MutBorrowFieldGeneric[1](Display.fields: VecMap<String, String>)
2ImmBorrowLoc[1](Arg1: String)
3Call vec_map::remove<String, String>(&mut VecMap<String, String>, &String): String * String
4Pop
5Pop
6MoveLoc[0](Arg0: &mut Display<Ty0>)
7MoveLoc[1](Arg1: String)
8MoveLoc[2](Arg2: String)
9Call add_internal<Ty0>(&mut Display<Ty0>, String, String)
10Ret
}
 
entry public remove<Ty0: key>(Arg0: &mut Display<Ty0>, Arg1: String) {
B0:
0MoveLoc[0](Arg0: &mut Display<Ty0>)
1MutBorrowFieldGeneric[1](Display.fields: VecMap<String, String>)
2ImmBorrowLoc[1](Arg1: String)
3Call vec_map::remove<String, String>(&mut VecMap<String, String>, &String): String * String
4Pop
5Pop
6Ret
}
 
public is_authorized<Ty0: key>(Arg0: &Publisher): bool {
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<Ty0>(&Publisher): bool
2Ret
}
 
public version<Ty0: key>(Arg0: &Display<Ty0>): u16 {
B0:
0MoveLoc[0](Arg0: &Display<Ty0>)
1ImmBorrowFieldGeneric[0](Display.version: u16)
2ReadRef
3Ret
}
 
public fields<Ty0: key>(Arg0: &Display<Ty0>): &VecMap<String, String> {
B0:
0MoveLoc[0](Arg0: &Display<Ty0>)
1ImmBorrowFieldGeneric[1](Display.fields: VecMap<String, String>)
2Ret
}
 
public(friend) destroy<Ty0: key>(Arg0: Display<Ty0>) {
B0:
0MoveLoc[0](Arg0: Display<Ty0>)
1UnpackGeneric[1](Display<Ty0>)
2Pop
3Pop
4Call object::delete(UID)
5Ret
}
 
create_internal<Ty0: key>(Arg0: &mut TxContext): Display<Ty0> {
L1: loc0: UID
B0:
0MoveLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2StLoc[1](loc0: UID)
3ImmBorrowLoc[1](loc0: UID)
4Call object::uid_to_inner(&UID): ID
5PackGeneric[2](DisplayCreated<Ty0>)
6Call event::emit<DisplayCreated<Ty0>>(DisplayCreated<Ty0>)
7MoveLoc[1](loc0: UID)
8Call vec_map::empty<String, String>(): VecMap<String, String>
9LdU16(0)
10PackGeneric[1](Display<Ty0>)
11Ret
}
 
add_internal<Ty0: key>(Arg0: &mut Display<Ty0>, Arg1: String, Arg2: String) {
B0:
0MoveLoc[0](Arg0: &mut Display<Ty0>)
1MutBorrowFieldGeneric[1](Display.fields: VecMap<String, String>)
2MoveLoc[1](Arg1: String)
3MoveLoc[2](Arg2: String)
4Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
5Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
]
}