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

API

nft

Module0x34a2…c82c
Move path
0xbc3d…e5f9::nft
Functions
1817 public, 1 entry
Structs
3
Friend modules
None
nft

Bytecode232 lines

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

// Move bytecode v6
module bc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9.nft {
use bc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9::mint_cap;
use 16c5f17f2d55584a6e6daa442ccf83b4530d10546a8e7dedda9ba324e012fc40::frozen_publisher;
use 16c5f17f2d55584a6e6daa442ccf83b4530d10546a8e7dedda9ba324e012fc40::witness;
use 859eb18bd5b5e8cc32deb6dfb1c39941008ab3c6e27f0b8ce2364be7102bb7cb::utils;
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000002::display;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::url;
 
struct Witness has drop {
dummy_field: bool
}
 
struct Nft<phantom Ty0> has store, key {
id: UID,
name: String,
url: Url
}
 
struct MintNftEvent has copy, drop {
nft_id: ID,
nft_type: String
}
 
new_<Ty0>(Arg0: String, Arg1: Url, Arg2: &mut TxContext): Nft<Ty0> {
L3: loc0: UID
B0:
0MoveLoc[2](Arg2: &mut TxContext)
1Call object::new(&mut TxContext): UID
2StLoc[3](loc0: UID)
3ImmBorrowLoc[3](loc0: UID)
4Call object::uid_to_inner(&UID): ID
5Call type_name::get<Ty0>(): TypeName
6Call type_name::into_string(TypeName): String
7Pack[2](MintNftEvent)
8Call event::emit<MintNftEvent>(MintNftEvent)
9MoveLoc[3](loc0: UID)
10MoveLoc[0](Arg0: String)
11MoveLoc[1](Arg1: Url)
12PackGeneric[0](Nft<Ty0>)
13Ret
}
 
public new<Ty0>(Arg0: Witness<Ty0>, Arg1: String, Arg2: Url, Arg3: &mut TxContext): Nft<Ty0> {
B0:
0MoveLoc[1](Arg1: String)
1MoveLoc[2](Arg2: Url)
2MoveLoc[3](Arg3: &mut TxContext)
3Call new_<Ty0>(String, Url, &mut TxContext): Nft<Ty0>
4Ret
}
 
public from_mint_cap<Ty0>(Arg0: &mut MintCap<Ty0>, Arg1: String, Arg2: Url, Arg3: &mut TxContext): Nft<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut MintCap<Ty0>)
1LdU64(1)
2Call mint_cap::increment_supply<Ty0>(&mut MintCap<Ty0>, u64)
3MoveLoc[1](Arg1: String)
4MoveLoc[2](Arg2: Url)
5MoveLoc[3](Arg3: &mut TxContext)
6Call new_<Ty0>(String, Url, &mut TxContext): Nft<Ty0>
7Ret
}
 
public borrow_uid<Ty0>(Arg0: &Nft<Ty0>): &UID {
B0:
0MoveLoc[0](Arg0: &Nft<Ty0>)
1ImmBorrowFieldGeneric[0](Nft.id: UID)
2Ret
}
 
public borrow_uid_mut<Ty0>(Arg0: Witness<Ty0>, Arg1: &mut Nft<Ty0>): &mut UID {
B0:
0MoveLoc[1](Arg1: &mut Nft<Ty0>)
1MutBorrowFieldGeneric[0](Nft.id: UID)
2Ret
}
 
public has_domain<Ty0, Ty1: store>(Arg0: &Nft<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &Nft<Ty0>)
1ImmBorrowFieldGeneric[0](Nft.id: UID)
2Call utils::marker<Ty1>(): Marker<Ty1>
3Call dynamic_field::exists_with_type<Marker<Ty1>, Ty1>(&UID, Marker<Ty1>): bool
4Ret
}
 
public borrow_domain<Ty0, Ty1: store>(Arg0: &Nft<Ty0>): &Ty1 {
B0:
0CopyLoc[0](Arg0: &Nft<Ty0>)
1Call assert_domain<Ty0, Ty1>(&Nft<Ty0>)
2MoveLoc[0](Arg0: &Nft<Ty0>)
3ImmBorrowFieldGeneric[0](Nft.id: UID)
4Call utils::marker<Ty1>(): Marker<Ty1>
5Call dynamic_field::borrow<Marker<Ty1>, Ty1>(&UID, Marker<Ty1>): &Ty1
6Ret
}
 
public borrow_domain_mut<Ty0, Ty1: store>(Arg0: Witness<Ty0>, Arg1: &mut Nft<Ty0>): &mut Ty1 {
B0:
0CopyLoc[1](Arg1: &mut Nft<Ty0>)
1FreezeRef
2Call assert_domain<Ty0, Ty1>(&Nft<Ty0>)
3MoveLoc[0](Arg0: Witness<Ty0>)
4MoveLoc[1](Arg1: &mut Nft<Ty0>)
5Call borrow_uid_mut<Ty0>(Witness<Ty0>, &mut Nft<Ty0>): &mut UID
6Call utils::marker<Ty1>(): Marker<Ty1>
7Call dynamic_field::borrow_mut<Marker<Ty1>, Ty1>(&mut UID, Marker<Ty1>): &mut Ty1
8Ret
}
 
public add_domain<Ty0, Ty1: store>(Arg0: Witness<Ty0>, Arg1: &mut Nft<Ty0>, Arg2: Ty1) {
B0:
0CopyLoc[1](Arg1: &mut Nft<Ty0>)
1FreezeRef
2Call assert_no_domain<Ty0, Ty1>(&Nft<Ty0>)
3MoveLoc[0](Arg0: Witness<Ty0>)
4MoveLoc[1](Arg1: &mut Nft<Ty0>)
5Call borrow_uid_mut<Ty0>(Witness<Ty0>, &mut Nft<Ty0>): &mut UID
6Call utils::marker<Ty1>(): Marker<Ty1>
7MoveLoc[2](Arg2: Ty1)
8Call dynamic_field::add<Marker<Ty1>, Ty1>(&mut UID, Marker<Ty1>, Ty1)
9Ret
}
 
public remove_domain<Ty0, Ty1: store>(Arg0: Witness<Ty0>, Arg1: &mut Nft<Ty0>): Ty1 {
B0:
0CopyLoc[1](Arg1: &mut Nft<Ty0>)
1FreezeRef
2Call assert_domain<Ty0, Ty1>(&Nft<Ty0>)
3MoveLoc[0](Arg0: Witness<Ty0>)
4MoveLoc[1](Arg1: &mut Nft<Ty0>)
5Call borrow_uid_mut<Ty0>(Witness<Ty0>, &mut Nft<Ty0>): &mut UID
6Call utils::marker<Ty1>(): Marker<Ty1>
7Call dynamic_field::remove<Marker<Ty1>, Ty1>(&mut UID, Marker<Ty1>): Ty1
8Ret
}
 
entry public delete<Ty0>(Arg0: Nft<Ty0>) {
B0:
0MoveLoc[0](Arg0: Nft<Ty0>)
1UnpackGeneric[0](Nft<Ty0>)
2Pop
3Pop
4Call object::delete(UID)
5Ret
}
 
public name<Ty0>(Arg0: &Nft<Ty0>): &String {
B0:
0MoveLoc[0](Arg0: &Nft<Ty0>)
1ImmBorrowFieldGeneric[1](Nft.name: String)
2Ret
}
 
public url<Ty0>(Arg0: &Nft<Ty0>): &Url {
B0:
0MoveLoc[0](Arg0: &Nft<Ty0>)
1ImmBorrowFieldGeneric[2](Nft.url: Url)
2Ret
}
 
public set_name<Ty0>(Arg0: Witness<Ty0>, Arg1: &mut Nft<Ty0>, Arg2: String) {
B0:
0MoveLoc[2](Arg2: String)
1MoveLoc[1](Arg1: &mut Nft<Ty0>)
2MutBorrowFieldGeneric[1](Nft.name: String)
3WriteRef
4Ret
}
 
public set_url<Ty0>(Arg0: Witness<Ty0>, Arg1: &mut Nft<Ty0>, Arg2: Url) {
B0:
0MoveLoc[2](Arg2: Url)
1MoveLoc[1](Arg1: &mut Nft<Ty0>)
2MutBorrowFieldGeneric[2](Nft.url: Url)
3WriteRef
4Ret
}
 
public assert_domain<Ty0, Ty1: store>(Arg0: &Nft<Ty0>) {
B0:
0MoveLoc[0](Arg0: &Nft<Ty0>)
1Call has_domain<Ty0, Ty1>(&Nft<Ty0>): bool
2BrFalse(4)
B1:
3Branch(6)
B2:
4LdConst[0](u64: 1)
5Abort
B3:
6Ret
}
 
public assert_no_domain<Ty0, Ty1: store>(Arg0: &Nft<Ty0>) {
B0:
0MoveLoc[0](Arg0: &Nft<Ty0>)
1Call has_domain<Ty0, Ty1>(&Nft<Ty0>): bool
2Not
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[1](u64: 2)
6Abort
B3:
7Ret
}
 
public new_display<Ty0>(Arg0: Witness<Ty0>, Arg1: &FrozenPublisher, Arg2: &mut TxContext): Display<Nft<Ty0>> {
B0:
0LdFalse
1Pack[0](Witness)
2MoveLoc[1](Arg1: &FrozenPublisher)
3MoveLoc[2](Arg2: &mut TxContext)
4Call frozen_publisher::new_display<Witness, Nft<Ty0>>(Witness, &FrozenPublisher, &mut TxContext): Display<Nft<Ty0>>
5Ret
}
 
Constants [
0 => u64: 1
1 => u64: 2
]
}