attributes
Module0x34a2…c82c
- Move path
- 0xbc3d…e5f9::attributes
- Functions
- 1818 public, 0 entry
- Structs
- 1
- Friend modules
- None
attributes
- access_policy19
- attributes18
- collection19
- composable_nft28
- composable_svg27
- composable_url10
- creators16
- display_info14
- frozen_pub1
- mint_cap15
- mint_event3
- mint_pass12
- mint_supply19
- nft18
- nft_bag28
- nft_protocol5
- p2p_list8
- p2p_list_domain13
- plugins14
- royalty29
- royalty_strategy_bps23
- session_token8
- supply27
- svg13
- symbol10
- tags11
- transfer_allowlist6
- transfer_allowlist_domain13
- transfer_token5
- url7
Bytecode263 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module bc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9.attributes {
use 859eb18bd5b5e8cc32deb6dfb1c39941008ab3c6e27f0b8ce2364be7102bb7cb::utils;
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
struct Attributes has drop, store {
map: VecMap<String, String>
}
public new(Arg0: VecMap<String, String>): Attributes {
B0:
0MoveLoc[0](Arg0: VecMap<String, String>)
1Pack[0](Attributes)
2Ret
}
public empty(): Attributes {
B0:
0Call vec_map::empty<String, String>(): VecMap<String, String>
1Pack[0](Attributes)
2Ret
}
public from_vec(Arg0: vector<String>, Arg1: vector<String>): Attributes {
B0:
0MoveLoc[0](Arg0: vector<String>)
1MoveLoc[1](Arg1: vector<String>)
2Call utils::from_vec_to_map<String, String>(vector<String>, vector<String>): VecMap<String, String>
3Call new(VecMap<String, String>): Attributes
4Ret
}
public add_new(Arg0: &mut UID, Arg1: VecMap<String, String>) {
B0:
0MoveLoc[0](Arg0: &mut UID)
1Call utils::marker<Attributes>(): Marker<Attributes>
2MoveLoc[1](Arg1: VecMap<String, String>)
3Call new(VecMap<String, String>): Attributes
4Call dynamic_field::add<Marker<Attributes>, Attributes>(&mut UID, Marker<Attributes>, Attributes)
5Ret
}
public add_empty(Arg0: &mut UID) {
B0:
0MoveLoc[0](Arg0: &mut UID)
1Call utils::marker<Attributes>(): Marker<Attributes>
2Call empty(): Attributes
3Call dynamic_field::add<Marker<Attributes>, Attributes>(&mut UID, Marker<Attributes>, Attributes)
4Ret
}
public add_from_vec(Arg0: vector<String>, Arg1: vector<String>): Attributes {
B0:
0MoveLoc[0](Arg0: vector<String>)
1MoveLoc[1](Arg1: vector<String>)
2Call utils::from_vec_to_map<String, String>(vector<String>, vector<String>): VecMap<String, String>
3Call new(VecMap<String, String>): Attributes
4Ret
}
public get_attributes(Arg0: &Attributes): &VecMap<String, String> {
B0:
0MoveLoc[0](Arg0: &Attributes)
1ImmBorrowField[0](Attributes.map: VecMap<String, String>)
2Ret
}
public get_attributes_mut(Arg0: &mut Attributes): &mut VecMap<String, String> {
B0:
0MoveLoc[0](Arg0: &mut Attributes)
1MutBorrowField[0](Attributes.map: VecMap<String, String>)
2Ret
}
public insert_attribute<Ty0: drop, Ty1: key>(Arg0: &mut Attributes, Arg1: String, Arg2: String) {
B0:
0MoveLoc[0](Arg0: &mut Attributes)
1Call get_attributes_mut(&mut Attributes): &mut VecMap<String, String>
2MoveLoc[1](Arg1: String)
3MoveLoc[2](Arg2: String)
4Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
5Ret
}
public remove_attribute<Ty0: drop, Ty1: key>(Arg0: &mut Attributes, Arg1: &String) {
B0:
0MoveLoc[0](Arg0: &mut Attributes)
1Call get_attributes_mut(&mut Attributes): &mut VecMap<String, String>
2MoveLoc[1](Arg1: &String)
3Call vec_map::remove<String, String>(&mut VecMap<String, String>, &String): String * String
4Pop
5Pop
6Ret
}
public as_url_parameters(Arg0: &Attributes): vector<u8> {
L1: loc0: &VecMap<String, String>
L2: loc1: u64
L3: loc2: &String
L4: loc3: vector<u8>
L5: loc4: u64
L6: loc5: &String
B0:
0VecPack(26, 0)
1StLoc[4](loc3: vector<u8>)
2MoveLoc[0](Arg0: &Attributes)
3Call get_attributes(&Attributes): &VecMap<String, String>
4StLoc[1](loc0: &VecMap<String, String>)
5CopyLoc[1](loc0: &VecMap<String, String>)
6Call vec_map::size<String, String>(&VecMap<String, String>): u64
7StLoc[5](loc4: u64)
8CopyLoc[5](loc4: u64)
9LdU64(0)
10Gt
11BrFalse(15)
B1:
12MutBorrowLoc[4](loc3: vector<u8>)
13LdConst[2](vector<u8>: "?" ..)
14Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B2:
15LdU64(0)
16StLoc[2](loc1: u64)
B3:
17CopyLoc[2](loc1: u64)
18CopyLoc[5](loc4: u64)
19Lt
20BrFalse(52)
B4:
21Branch(22)
B5:
22CopyLoc[1](loc0: &VecMap<String, String>)
23CopyLoc[2](loc1: u64)
24Call vec_map::get_entry_by_idx<String, String>(&VecMap<String, String>, u64): &String * &String
25StLoc[6](loc5: &String)
26StLoc[3](loc2: &String)
27MutBorrowLoc[4](loc3: vector<u8>)
28MoveLoc[3](loc2: &String)
29ReadRef
30Call ascii::into_bytes(String): vector<u8>
31Call vector::append<u8>(&mut vector<u8>, vector<u8>)
32MutBorrowLoc[4](loc3: vector<u8>)
33LdConst[3](vector<u8>: "=" ..)
34Call vector::append<u8>(&mut vector<u8>, vector<u8>)
35MutBorrowLoc[4](loc3: vector<u8>)
36MoveLoc[6](loc5: &String)
37ReadRef
38Call ascii::into_bytes(String): vector<u8>
39Call vector::append<u8>(&mut vector<u8>, vector<u8>)
40MoveLoc[2](loc1: u64)
41LdU64(1)
42Add
43StLoc[2](loc1: u64)
44CopyLoc[2](loc1: u64)
45CopyLoc[5](loc4: u64)
46Neq
47BrFalse(51)
B6:
48MutBorrowLoc[4](loc3: vector<u8>)
49LdConst[4](vector<u8>: "&" ..)
50Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B7:
51Branch(17)
B8:
52MoveLoc[1](loc0: &VecMap<String, String>)
53Pop
54MoveLoc[4](loc3: vector<u8>)
55Ret
}
public has_domain(Arg0: &UID): bool {
B0:
0MoveLoc[0](Arg0: &UID)
1Call utils::marker<Attributes>(): Marker<Attributes>
2Call dynamic_field::exists_with_type<Marker<Attributes>, Attributes>(&UID, Marker<Attributes>): bool
3Ret
}
public borrow_domain(Arg0: &UID): &Attributes {
B0:
0CopyLoc[0](Arg0: &UID)
1Call assert_attributes(&UID)
2MoveLoc[0](Arg0: &UID)
3Call utils::marker<Attributes>(): Marker<Attributes>
4Call dynamic_field::borrow<Marker<Attributes>, Attributes>(&UID, Marker<Attributes>): &Attributes
5Ret
}
public borrow_domain_mut(Arg0: &mut UID): &mut Attributes {
B0:
0CopyLoc[0](Arg0: &mut UID)
1FreezeRef
2Call assert_attributes(&UID)
3MoveLoc[0](Arg0: &mut UID)
4Call utils::marker<Attributes>(): Marker<Attributes>
5Call dynamic_field::borrow_mut<Marker<Attributes>, Attributes>(&mut UID, Marker<Attributes>): &mut Attributes
6Ret
}
public add_domain(Arg0: &mut UID, Arg1: Attributes) {
B0:
0CopyLoc[0](Arg0: &mut UID)
1FreezeRef
2Call assert_no_attributes(&UID)
3MoveLoc[0](Arg0: &mut UID)
4Call utils::marker<Attributes>(): Marker<Attributes>
5MoveLoc[1](Arg1: Attributes)
6Call dynamic_field::add<Marker<Attributes>, Attributes>(&mut UID, Marker<Attributes>, Attributes)
7Ret
}
public remove_domain(Arg0: &mut UID): Attributes {
B0:
0CopyLoc[0](Arg0: &mut UID)
1FreezeRef
2Call assert_attributes(&UID)
3MoveLoc[0](Arg0: &mut UID)
4Call utils::marker<Attributes>(): Marker<Attributes>
5Call dynamic_field::remove<Marker<Attributes>, Attributes>(&mut UID, Marker<Attributes>): Attributes
6Ret
}
public assert_attributes(Arg0: &UID) {
B0:
0MoveLoc[0](Arg0: &UID)
1Call has_domain(&UID): bool
2BrFalse(4)
B1:
3Branch(6)
B2:
4LdConst[0](u64: 1)
5Abort
B3:
6Ret
}
public assert_no_attributes(Arg0: &UID) {
B0:
0MoveLoc[0](Arg0: &UID)
1Call has_domain(&UID): bool
2Not
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[1](u64: 2)
6Abort
B3:
7Ret
}
Constants [
0 => u64: 1
1 => u64: 2
2 => vector<u8>: "?" // interpreted as UTF8 string
3 => vector<u8>: "=" // interpreted as UTF8 string
4 => vector<u8>: "&" // interpreted as UTF8 string
]
}