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

API

display_registry

Module0x0000…0002
Move path
0x0000…0002::display_registry
Functions
1813 public, 2 entry
Structs
5
Friend modules
None
display_registry

Bytecode399 lines

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

// Move bytecode v7
module 2.display_registry {
use 0000000000000000000000000000000000000000000000000000000000000001::internal;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000002::derived_object;
use 0000000000000000000000000000000000000000000000000000000000000002::display;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
 
struct DisplayRegistry has key {
id: UID
}
 
struct SystemMigrationCap has key {
id: UID
}
 
struct Display<phantom Ty0> has key {
id: UID,
fields: VecMap<String, String>,
cap_id: Option<ID>
}
 
struct DisplayCap<phantom Ty0> has store, key {
id: UID
}
 
struct DisplayKey<phantom Ty0> has copy, drop, store {
dummy_field: bool
}
 
public new<Ty0>(Arg0: &mut DisplayRegistry, Arg1: Permit<Ty0>, Arg2: &mut TxContext): Display<Ty0> * DisplayCap<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut DisplayRegistry)
1MoveLoc[2](Arg2: &mut TxContext)
2Call new_display<Ty0>(&mut DisplayRegistry, &mut TxContext): Display<Ty0> * DisplayCap<Ty0>
3Ret
}
 
public new_with_publisher<Ty0>(Arg0: &mut DisplayRegistry, Arg1: &mut Publisher, Arg2: &mut TxContext): Display<Ty0> * DisplayCap<Ty0> {
B0:
0MoveLoc[1](Arg1: &mut Publisher)
1FreezeRef
2Call package::from_package<Ty0>(&Publisher): bool
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[0](Arg0: &mut DisplayRegistry)
6Pop
7MoveLoc[2](Arg2: &mut TxContext)
8Pop
9LdU64(13835902776565497864)
10Abort
B3:
11MoveLoc[0](Arg0: &mut DisplayRegistry)
12MoveLoc[2](Arg2: &mut TxContext)
13Call new_display<Ty0>(&mut DisplayRegistry, &mut TxContext): Display<Ty0> * DisplayCap<Ty0>
14Ret
}
 
public unset<Ty0>(Arg0: &mut Display<Ty0>, Arg1: &DisplayCap<Ty0>, Arg2: String) {
B0:
0CopyLoc[0](Arg0: &mut Display<Ty0>)
1ImmBorrowFieldGeneric[0](Display.fields: VecMap<String, String>)
2ImmBorrowLoc[2](Arg2: String)
3Call vec_map::contains<String, String>(&VecMap<String, String>, &String): bool
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut Display<Ty0>)
7Pop
8LdU64(13836184281607110666)
9Abort
B3:
10MoveLoc[0](Arg0: &mut Display<Ty0>)
11MutBorrowFieldGeneric[0](Display.fields: VecMap<String, String>)
12ImmBorrowLoc[2](Arg2: String)
13Call vec_map::remove<String, String>(&mut VecMap<String, String>, &String): String * String
14Pop
15Pop
16Ret
}
 
public set<Ty0>(Arg0: &mut Display<Ty0>, Arg1: &DisplayCap<Ty0>, Arg2: String, Arg3: String) {
B0:
0CopyLoc[0](Arg0: &mut Display<Ty0>)
1ImmBorrowFieldGeneric[0](Display.fields: VecMap<String, String>)
2ImmBorrowLoc[2](Arg2: String)
3Call vec_map::contains<String, String>(&VecMap<String, String>, &String): bool
4BrFalse(11)
B1:
5CopyLoc[0](Arg0: &mut Display<Ty0>)
6MutBorrowFieldGeneric[0](Display.fields: VecMap<String, String>)
7ImmBorrowLoc[2](Arg2: String)
8Call vec_map::remove<String, String>(&mut VecMap<String, String>, &String): String * String
9Pop
10Pop
B2:
11MoveLoc[0](Arg0: &mut Display<Ty0>)
12MutBorrowFieldGeneric[0](Display.fields: VecMap<String, String>)
13MoveLoc[2](Arg2: String)
14MoveLoc[3](Arg3: String)
15Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
16Ret
}
 
public clear<Ty0>(Arg0: &mut Display<Ty0>, Arg1: &DisplayCap<Ty0>) {
B0:
0Call vec_map::empty<String, String>(): VecMap<String, String>
1MoveLoc[0](Arg0: &mut Display<Ty0>)
2MutBorrowFieldGeneric[0](Display.fields: VecMap<String, String>)
3WriteRef
4Ret
}
 
public share<Ty0>(Arg0: Display<Ty0>) {
B0:
0MoveLoc[0](Arg0: Display<Ty0>)
1Call transfer::share_object<Display<Ty0>>(Display<Ty0>)
2Ret
}
 
public claim<Ty0: key>(Arg0: &mut Display<Ty0>, Arg1: Display<Ty0>, Arg2: &mut TxContext): DisplayCap<Ty0> {
L3: loc0: DisplayCap<Ty0>
B0:
0CopyLoc[0](Arg0: &mut Display<Ty0>)
1ImmBorrowFieldGeneric[1](Display.cap_id: Option<ID>)
2Call option::is_none<ID>(&Option<ID>): bool
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[0](Arg0: &mut Display<Ty0>)
6Pop
7MoveLoc[2](Arg2: &mut TxContext)
8Pop
9LdU64(13835621451912511494)
10Abort
B3:
11MoveLoc[2](Arg2: &mut TxContext)
12Call object::new(&mut TxContext): UID
13PackGeneric[0](DisplayCap<Ty0>)
14StLoc[3](loc0: DisplayCap<Ty0>)
15MoveLoc[0](Arg0: &mut Display<Ty0>)
16MutBorrowFieldGeneric[1](Display.cap_id: Option<ID>)
17ImmBorrowLoc[3](loc0: DisplayCap<Ty0>)
18ImmBorrowFieldGeneric[2](DisplayCap.id: UID)
19Call object::uid_to_inner(&UID): ID
20Call option::fill<ID>(&mut Option<ID>, ID)
21MoveLoc[1](Arg1: Display<Ty0>)
22Call display::destroy<Ty0>(Display<Ty0>)
23MoveLoc[3](loc0: DisplayCap<Ty0>)
24Ret
}
 
public claim_with_publisher<Ty0: key>(Arg0: &mut Display<Ty0>, Arg1: &mut Publisher, Arg2: &mut TxContext): DisplayCap<Ty0> {
L3: loc0: DisplayCap<Ty0>
B0:
0CopyLoc[0](Arg0: &mut Display<Ty0>)
1ImmBorrowFieldGeneric[1](Display.cap_id: Option<ID>)
2Call option::is_none<ID>(&Option<ID>): bool
3BrFalse(5)
B1:
4Branch(13)
B2:
5MoveLoc[1](Arg1: &mut Publisher)
6Pop
7MoveLoc[0](Arg0: &mut Display<Ty0>)
8Pop
9MoveLoc[2](Arg2: &mut TxContext)
10Pop
11LdU64(13835621507747086342)
12Abort
B3:
13MoveLoc[1](Arg1: &mut Publisher)
14FreezeRef
15Call package::from_package<Ty0>(&Publisher): bool
16BrFalse(18)
B4:
17Branch(24)
B5:
18MoveLoc[0](Arg0: &mut Display<Ty0>)
19Pop
20MoveLoc[2](Arg2: &mut TxContext)
21Pop
22LdU64(13835902987018895368)
23Abort
B6:
24MoveLoc[2](Arg2: &mut TxContext)
25Call object::new(&mut TxContext): UID
26PackGeneric[0](DisplayCap<Ty0>)
27StLoc[3](loc0: DisplayCap<Ty0>)
28MoveLoc[0](Arg0: &mut Display<Ty0>)
29MutBorrowFieldGeneric[1](Display.cap_id: Option<ID>)
30ImmBorrowLoc[3](loc0: DisplayCap<Ty0>)
31ImmBorrowFieldGeneric[2](DisplayCap.id: UID)
32Call object::uid_to_inner(&UID): ID
33Call option::fill<ID>(&mut Option<ID>, ID)
34MoveLoc[3](loc0: DisplayCap<Ty0>)
35Ret
}
 
public system_migration<Ty0: key>(Arg0: &mut DisplayRegistry, Arg1: &SystemMigrationCap, Arg2: vector<String>, Arg3: vector<String>, Arg4: &mut TxContext) {
L5: loc0: DisplayKey<Ty0>
B0:
0LdFalse
1PackGeneric[1](DisplayKey<Ty0>)
2StLoc[5](loc0: DisplayKey<Ty0>)
3CopyLoc[0](Arg0: &mut DisplayRegistry)
4ImmBorrowField[3](DisplayRegistry.id: UID)
5CopyLoc[5](loc0: DisplayKey<Ty0>)
6Call derived_object::exists<DisplayKey<Ty0>>(&UID, DisplayKey<Ty0>): bool
7BrFalse(11)
B1:
8MoveLoc[0](Arg0: &mut DisplayRegistry)
9Pop
10Ret
B2:
11MoveLoc[0](Arg0: &mut DisplayRegistry)
12MutBorrowField[3](DisplayRegistry.id: UID)
13MoveLoc[5](loc0: DisplayKey<Ty0>)
14Call derived_object::claim<DisplayKey<Ty0>>(&mut UID, DisplayKey<Ty0>): UID
15MoveLoc[2](Arg2: vector<String>)
16MoveLoc[3](Arg3: vector<String>)
17Call vec_map::from_keys_values<String, String>(vector<String>, vector<String>): VecMap<String, String>
18Call option::none<ID>(): Option<ID>
19PackGeneric[2](Display<Ty0>)
20Call transfer::share_object<Display<Ty0>>(Display<Ty0>)
21Ret
}
 
public migrate_v1_to_v2<Ty0: key>(Arg0: &mut DisplayRegistry, Arg1: Display<Ty0>, Arg2: &mut TxContext): Display<Ty0> * DisplayCap<Ty0> {
L3: loc0: DisplayCap<Ty0>
L4: loc1: Display<Ty0>
B0:
0MoveLoc[0](Arg0: &mut DisplayRegistry)
1MoveLoc[2](Arg2: &mut TxContext)
2Call new_display<Ty0>(&mut DisplayRegistry, &mut TxContext): Display<Ty0> * DisplayCap<Ty0>
3StLoc[3](loc0: DisplayCap<Ty0>)
4StLoc[4](loc1: Display<Ty0>)
5ImmBorrowLoc[1](Arg1: Display<Ty0>)
6Call display::fields<Ty0>(&Display<Ty0>): &VecMap<String, String>
7ReadRef
8MutBorrowLoc[4](loc1: Display<Ty0>)
9MutBorrowFieldGeneric[0](Display.fields: VecMap<String, String>)
10WriteRef
11MoveLoc[1](Arg1: Display<Ty0>)
12Call display::destroy<Ty0>(Display<Ty0>)
13MoveLoc[4](loc1: Display<Ty0>)
14MoveLoc[3](loc0: DisplayCap<Ty0>)
15Ret
}
 
entry destroy_system_migration_cap(Arg0: SystemMigrationCap) {
B0:
0MoveLoc[0](Arg0: SystemMigrationCap)
1Unpack[1](SystemMigrationCap)
2Call object::delete(UID)
3Ret
}
 
entry transfer_migration_cap(Arg0: SystemMigrationCap, Arg1: address) {
B0:
0MoveLoc[0](Arg0: SystemMigrationCap)
1MoveLoc[1](Arg1: address)
2Call transfer::transfer<SystemMigrationCap>(SystemMigrationCap, address)
3Ret
}
 
public delete_legacy<Ty0: key>(Arg0: &Display<Ty0>, Arg1: Display<Ty0>) {
B0:
0MoveLoc[0](Arg0: &Display<Ty0>)
1ImmBorrowFieldGeneric[1](Display.cap_id: Option<ID>)
2Call option::is_some<ID>(&Option<ID>): bool
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdU64(13836466173195780108)
6Abort
B3:
7MoveLoc[1](Arg1: Display<Ty0>)
8Call display::destroy<Ty0>(Display<Ty0>)
9Ret
}
 
public fields<Ty0>(Arg0: &Display<Ty0>): &VecMap<String, String> {
B0:
0MoveLoc[0](Arg0: &Display<Ty0>)
1ImmBorrowFieldGeneric[0](Display.fields: VecMap<String, String>)
2Ret
}
 
public cap_id<Ty0>(Arg0: &Display<Ty0>): Option<ID> {
B0:
0MoveLoc[0](Arg0: &Display<Ty0>)
1ImmBorrowFieldGeneric[1](Display.cap_id: Option<ID>)
2ReadRef
3Ret
}
 
public(friend) migration_cap_receiver(): address {
B0:
0LdConst[0](address: 0x80..)
1Ret
}
 
new_display<Ty0>(Arg0: &mut DisplayRegistry, Arg1: &mut TxContext): Display<Ty0> * DisplayCap<Ty0> {
L2: loc0: DisplayCap<Ty0>
L3: loc1: DisplayKey<Ty0>
B0:
0LdFalse
1PackGeneric[1](DisplayKey<Ty0>)
2StLoc[3](loc1: DisplayKey<Ty0>)
3CopyLoc[0](Arg0: &mut DisplayRegistry)
4ImmBorrowField[3](DisplayRegistry.id: UID)
5CopyLoc[3](loc1: DisplayKey<Ty0>)
6Call derived_object::exists<DisplayKey<Ty0>>(&UID, DisplayKey<Ty0>): bool
7Not
8BrFalse(10)
B1:
9Branch(16)
B2:
10MoveLoc[0](Arg0: &mut DisplayRegistry)
11Pop
12MoveLoc[1](Arg1: &mut TxContext)
13Pop
14LdU64(13835340372072660996)
15Abort
B3:
16MoveLoc[1](Arg1: &mut TxContext)
17Call object::new(&mut TxContext): UID
18PackGeneric[0](DisplayCap<Ty0>)
19StLoc[2](loc0: DisplayCap<Ty0>)
20MoveLoc[0](Arg0: &mut DisplayRegistry)
21MutBorrowField[3](DisplayRegistry.id: UID)
22MoveLoc[3](loc1: DisplayKey<Ty0>)
23Call derived_object::claim<DisplayKey<Ty0>>(&mut UID, DisplayKey<Ty0>): UID
24Call vec_map::empty<String, String>(): VecMap<String, String>
25ImmBorrowLoc[2](loc0: DisplayCap<Ty0>)
26ImmBorrowFieldGeneric[2](DisplayCap.id: UID)
27Call object::uid_to_inner(&UID): ID
28Call option::some<ID>(ID): Option<ID>
29PackGeneric[2](Display<Ty0>)
30MoveLoc[2](loc0: DisplayCap<Ty0>)
31Ret
}
 
create(Arg0: &mut TxContext) {
B0:
0CopyLoc[0](Arg0: &mut TxContext)
1FreezeRef
2Call tx_context::sender(&TxContext): address
3LdConst[13](address: 0x00..)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut TxContext)
8Pop
9LdU64(13835058952930394114)
10Abort
B3:
11Call object::sui_display_registry_object_id(): UID
12Pack[0](DisplayRegistry)
13Call transfer::share_object<DisplayRegistry>(DisplayRegistry)
14MoveLoc[0](Arg0: &mut TxContext)
15Call object::new(&mut TxContext): UID
16Pack[1](SystemMigrationCap)
17LdConst[0](address: 0x80..)
18Call transfer::transfer<SystemMigrationCap>(SystemMigrationCap, address)
19Ret
}
 
Constants [
0 => address: 0x80e8249451c1a94b0d4ec317d9dd040f11344dcce6f917218086caf2bb1d7bdd
1 => vector<u8>: "ENotSystemAddress" // interpreted as UTF8 string
2 => vector<u8>: "This is only callable from system address." // interpreted as UTF8 string
3 => vector<u8>: "EDisplayAlreadyExists" // interpreted as UTF8 string
4 => vector<u8>: "Display for the supplied type already exists." // interpreted as UTF8 string
5 => vector<u8>: "ECapAlreadyClaimed" // interpreted as UTF8 string
6 => vector<u8>: "Cap for this display object has already been claimed." // interpreted as UTF8 string
7 => vector<u8>: "ENotValidPublisher" // interpreted as UTF8 string
8 => vector<u8>: "The publisher is not valid for the supplied type." // interpreted as UTF8 string
9 => vector<u8>: "EFieldDoesNotExist" // interpreted as UTF8 string
10 => vector<u8>: "Field does not exist in the display." // interpreted as UTF8 string
11 => vector<u8>: "ECapNotClaimed" // interpreted as UTF8 string
12 => vector<u8>: "Cap for this display object has not been claimed so you cannot delete the legacy display yet." // interpreted as UTF8 string
13 => address: 0x0000000000000000000000000000000000000000000000000000000000000000
]
}