paws
Module0xe360…e721
- Move path
- 0xcd71…96bf::paws
- Functions
- 75 public, 5 entry
- Structs
- 4
- Friend modules
- None
paws
Bytecode498 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module cd714a5ffde199ef5b3bf7e7db3bfe4b9e7bdbb5039d65b515823f965e3596bf.paws {
use 434b5bd8f6a7b05fede0ff46c6e511d71ea326ed38056e3bcd681d2d7c2a7879::kiosk_lock_rule;
use 434b5bd8f6a7b05fede0ff46c6e511d71ea326ed38056e3bcd681d2d7c2a7879::royalty_rule;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000002::bag;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::display;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::kiosk;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::pay;
use 0000000000000000000000000000000000000000000000000000000000000002::sui;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer_policy;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
use 7112eaa13769bf331de6c8e42875021fb6ef72e4f5e52dd62f162cb06ef6f603::tradeport_launchpad;
struct PAWS has drop {
dummy_field: bool
}
struct Manager has store, key {
id: UID,
version: u64,
display: Display<Nft>,
transfer_policy_cap: TransferPolicyCap<Nft>,
balance: Balance<SUI>,
reserved_nfts: vector<Nft>
}
struct Nft has store, key {
id: UID,
group_id: String,
type: u64,
name: String,
index: u64,
description: String,
media_url: String,
attributes: VecMap<String, String>
}
struct MintNftEvent has copy, drop {
id: ID,
group_id: String,
type: u64,
index: u64,
order_id: String,
stage_id: String,
is_autoreserve: bool,
price: u64
}
struct WithdrawReservedNftEvent has copy, drop {
id: ID,
price: u64
}
init(Arg0: PAWS, Arg1: &mut TxContext) {
L2: loc0: Display<Nft>
L3: loc1: Manager
L4: loc2: Publisher
L5: loc3: TransferPolicy<Nft>
L6: loc4: TransferPolicyCap<Nft>
B0:
0MoveLoc[0](Arg0: PAWS)
1CopyLoc[1](Arg1: &mut TxContext)
2Call package::claim<PAWS>(PAWS, &mut TxContext): Publisher
3StLoc[4](loc2: Publisher)
4ImmBorrowLoc[4](loc2: Publisher)
5CopyLoc[1](Arg1: &mut TxContext)
6Call display::new<Nft>(&Publisher, &mut TxContext): Display<Nft>
7StLoc[2](loc0: Display<Nft>)
8MutBorrowLoc[2](loc0: Display<Nft>)
9LdConst[5](vector<u8>: "col..)
10Call string::utf8(vector<u8>): String
11LdConst[0](vector<u8>: "Paw..)
12Call string::utf8(vector<u8>): String
13Call display::add<Nft>(&mut Display<Nft>, String, String)
14MutBorrowLoc[2](loc0: Display<Nft>)
15LdConst[6](vector<u8>: "col..)
16Call string::utf8(vector<u8>): String
17LdConst[1](vector<u8>: "333..)
18Call string::utf8(vector<u8>): String
19Call display::add<Nft>(&mut Display<Nft>, String, String)
20MutBorrowLoc[2](loc0: Display<Nft>)
21LdConst[7](vector<u8>: "col..)
22Call string::utf8(vector<u8>): String
23LdConst[2](vector<u8>: "htt..)
24Call string::utf8(vector<u8>): String
25Call display::add<Nft>(&mut Display<Nft>, String, String)
26MutBorrowLoc[2](loc0: Display<Nft>)
27LdConst[8](vector<u8>: "gro..)
28Call string::utf8(vector<u8>): String
29LdConst[9](vector<u8>: "{gr..)
30Call string::utf8(vector<u8>): String
31Call display::add<Nft>(&mut Display<Nft>, String, String)
32MutBorrowLoc[2](loc0: Display<Nft>)
33LdConst[10](vector<u8>: "nam..)
34Call string::utf8(vector<u8>): String
35LdConst[11](vector<u8>: "{na..)
36Call string::utf8(vector<u8>): String
37Call display::add<Nft>(&mut Display<Nft>, String, String)
38MutBorrowLoc[2](loc0: Display<Nft>)
39LdConst[12](vector<u8>: "des..)
40Call string::utf8(vector<u8>): String
41LdConst[13](vector<u8>: "{de..)
42Call string::utf8(vector<u8>): String
43Call display::add<Nft>(&mut Display<Nft>, String, String)
44MutBorrowLoc[2](loc0: Display<Nft>)
45LdConst[14](vector<u8>: "med..)
46Call string::utf8(vector<u8>): String
47LdConst[15](vector<u8>: "{me..)
48Call string::utf8(vector<u8>): String
49Call display::add<Nft>(&mut Display<Nft>, String, String)
50MutBorrowLoc[2](loc0: Display<Nft>)
51LdConst[16](vector<u8>: "att..)
52Call string::utf8(vector<u8>): String
53LdConst[17](vector<u8>: "{at..)
54Call string::utf8(vector<u8>): String
55Call display::add<Nft>(&mut Display<Nft>, String, String)
56MutBorrowLoc[2](loc0: Display<Nft>)
57Call display::update_version<Nft>(&mut Display<Nft>)
58ImmBorrowLoc[4](loc2: Publisher)
59CopyLoc[1](Arg1: &mut TxContext)
60Call transfer_policy::new<Nft>(&Publisher, &mut TxContext): TransferPolicy<Nft> * TransferPolicyCap<Nft>
61StLoc[6](loc4: TransferPolicyCap<Nft>)
62StLoc[5](loc3: TransferPolicy<Nft>)
63MutBorrowLoc[5](loc3: TransferPolicy<Nft>)
64ImmBorrowLoc[6](loc4: TransferPolicyCap<Nft>)
65Call kiosk_lock_rule::add<Nft>(&mut TransferPolicy<Nft>, &TransferPolicyCap<Nft>)
66MutBorrowLoc[5](loc3: TransferPolicy<Nft>)
67ImmBorrowLoc[6](loc4: TransferPolicyCap<Nft>)
68LdConst[3](u16: 1000)
69LdU64(0)
70Call royalty_rule::add<Nft>(&mut TransferPolicy<Nft>, &TransferPolicyCap<Nft>, u16, u64)
71CopyLoc[1](Arg1: &mut TxContext)
72Call object::new(&mut TxContext): UID
73LdU64(0)
74MoveLoc[2](loc0: Display<Nft>)
75MoveLoc[6](loc4: TransferPolicyCap<Nft>)
76Call balance::zero<SUI>(): Balance<SUI>
77VecPack(8, 0)
78Pack[1](Manager)
79StLoc[3](loc1: Manager)
80MoveLoc[5](loc3: TransferPolicy<Nft>)
81Call transfer::public_share_object<TransferPolicy<Nft>>(TransferPolicy<Nft>)
82MoveLoc[3](loc1: Manager)
83Call transfer::public_share_object<Manager>(Manager)
84MoveLoc[4](loc2: Publisher)
85MoveLoc[1](Arg1: &mut TxContext)
86FreezeRef
87Call tx_context::sender(&TxContext): address
88Call transfer::public_transfer<Publisher>(Publisher, address)
89Ret
}
entry public withdraw_balance(Arg0: &Publisher, Arg1: &mut Manager, Arg2: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<Nft>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(10)
B2:
4MoveLoc[1](Arg1: &mut Manager)
5Pop
6MoveLoc[2](Arg2: &mut TxContext)
7Pop
8LdConst[4](u64: 2)
9Abort
B3:
10MoveLoc[1](Arg1: &mut Manager)
11MutBorrowField[0](Manager.balance: Balance<SUI>)
12Call balance::withdraw_all<SUI>(&mut Balance<SUI>): Balance<SUI>
13CopyLoc[2](Arg2: &mut TxContext)
14Call coin::from_balance<SUI>(Balance<SUI>, &mut TxContext): Coin<SUI>
15MoveLoc[2](Arg2: &mut TxContext)
16FreezeRef
17Call pay::keep<SUI>(Coin<SUI>, &TxContext)
18Ret
}
entry public withdraw_balance_and_royalties(Arg0: &Publisher, Arg1: &mut Manager, Arg2: &mut TransferPolicy<Nft>, Arg3: &mut TxContext) {
L4: loc0: Coin<SUI>
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<Nft>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(12)
B2:
4MoveLoc[2](Arg2: &mut TransferPolicy<Nft>)
5Pop
6MoveLoc[1](Arg1: &mut Manager)
7Pop
8MoveLoc[3](Arg3: &mut TxContext)
9Pop
10LdConst[4](u64: 2)
11Abort
B3:
12CopyLoc[1](Arg1: &mut Manager)
13MutBorrowField[0](Manager.balance: Balance<SUI>)
14Call balance::withdraw_all<SUI>(&mut Balance<SUI>): Balance<SUI>
15CopyLoc[3](Arg3: &mut TxContext)
16Call coin::from_balance<SUI>(Balance<SUI>, &mut TxContext): Coin<SUI>
17StLoc[4](loc0: Coin<SUI>)
18MutBorrowLoc[4](loc0: Coin<SUI>)
19MoveLoc[2](Arg2: &mut TransferPolicy<Nft>)
20MoveLoc[1](Arg1: &mut Manager)
21ImmBorrowField[1](Manager.transfer_policy_cap: TransferPolicyCap<Nft>)
22Call option::none<u64>(): Option<u64>
23CopyLoc[3](Arg3: &mut TxContext)
24Call transfer_policy::withdraw<Nft>(&mut TransferPolicy<Nft>, &TransferPolicyCap<Nft>, Option<u64>, &mut TxContext): Coin<SUI>
25Call pay::join<SUI>(&mut Coin<SUI>, Coin<SUI>)
26MoveLoc[4](loc0: Coin<SUI>)
27MoveLoc[3](Arg3: &mut TxContext)
28FreezeRef
29Call pay::keep<SUI>(Coin<SUI>, &TxContext)
30Ret
}
entry public withdraw_reserved_nfts(Arg0: &Publisher, Arg1: &mut Manager, Arg2: &mut Kiosk, Arg3: &KioskOwnerCap, Arg4: &TransferPolicy<Nft>, Arg5: &mut TxContext) {
L6: loc0: u64
L7: loc1: u64
L8: loc2: Nft
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<Nft>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(14)
B2:
4MoveLoc[4](Arg4: &TransferPolicy<Nft>)
5Pop
6MoveLoc[1](Arg1: &mut Manager)
7Pop
8MoveLoc[3](Arg3: &KioskOwnerCap)
9Pop
10MoveLoc[2](Arg2: &mut Kiosk)
11Pop
12LdConst[4](u64: 2)
13Abort
B3:
14CopyLoc[1](Arg1: &mut Manager)
15ImmBorrowField[2](Manager.reserved_nfts: vector<Nft>)
16VecLen(8)
17StLoc[7](loc1: u64)
18LdU64(0)
19StLoc[6](loc0: u64)
B4:
20CopyLoc[6](loc0: u64)
21CopyLoc[7](loc1: u64)
22Lt
23BrFalse(44)
B5:
24Branch(25)
B6:
25MoveLoc[6](loc0: u64)
26LdU64(1)
27Add
28StLoc[6](loc0: u64)
29CopyLoc[1](Arg1: &mut Manager)
30MutBorrowField[2](Manager.reserved_nfts: vector<Nft>)
31VecPopBack(8)
32StLoc[8](loc2: Nft)
33ImmBorrowLoc[8](loc2: Nft)
34Call object::id<Nft>(&Nft): ID
35LdU64(0)
36Pack[4](WithdrawReservedNftEvent)
37Call event::emit<WithdrawReservedNftEvent>(WithdrawReservedNftEvent)
38CopyLoc[2](Arg2: &mut Kiosk)
39CopyLoc[3](Arg3: &KioskOwnerCap)
40CopyLoc[4](Arg4: &TransferPolicy<Nft>)
41MoveLoc[8](loc2: Nft)
42Call kiosk::lock<Nft>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<Nft>, Nft)
43Branch(20)
B7:
44MoveLoc[4](Arg4: &TransferPolicy<Nft>)
45Pop
46MoveLoc[1](Arg1: &mut Manager)
47Pop
48MoveLoc[3](Arg3: &KioskOwnerCap)
49Pop
50MoveLoc[2](Arg2: &mut Kiosk)
51Pop
52Ret
}
entry public add_nft_metadata(Arg0: &Publisher, Arg1: &mut Store, Arg2: String, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: String, Arg7: String, Arg8: String, Arg9: vector<String>, Arg10: vector<String>, Arg11: vector<u8>, Arg12: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &Publisher)
1Call package::from_package<Nft>(&Publisher): bool
2BrFalse(4)
B1:
3Branch(10)
B2:
4MoveLoc[1](Arg1: &mut Store)
5Pop
6MoveLoc[12](Arg12: &mut TxContext)
7Pop
8LdConst[4](u64: 2)
9Abort
B3:
10MoveLoc[1](Arg1: &mut Store)
11MoveLoc[2](Arg2: String)
12MoveLoc[3](Arg3: u64)
13MoveLoc[4](Arg4: u64)
14MoveLoc[5](Arg5: u64)
15MoveLoc[6](Arg6: String)
16MoveLoc[7](Arg7: String)
17MoveLoc[8](Arg8: String)
18MoveLoc[9](Arg9: vector<String>)
19MoveLoc[10](Arg10: vector<String>)
20MoveLoc[11](Arg11: vector<u8>)
21MoveLoc[12](Arg12: &mut TxContext)
22Call tradeport_launchpad::add_nft_metadata(&mut Store, String, u64, u64, u64, String, String, String, vector<String>, vector<String>, vector<u8>, &mut TxContext)
23Ret
}
entry public mint_nft(Arg0: &Clock, Arg1: &mut Manager, Arg2: &mut Store, Arg3: String, Arg4: u64, Arg5: String, Arg6: u64, Arg7: String, Arg8: u64, Arg9: u64, Arg10: u64, Arg11: vector<u8>, Arg12: &mut Coin<SUI>, Arg13: &mut Kiosk, Arg14: &KioskOwnerCap, Arg15: &TransferPolicy<Nft>, Arg16: &mut TxContext) {
L17: loc0: Nft
L18: loc1: Option<Bag>
L19: loc2: Nft
B0:
0MoveLoc[0](Arg0: &Clock)
1MoveLoc[2](Arg2: &mut Store)
2CopyLoc[3](Arg3: String)
3CopyLoc[4](Arg4: u64)
4CopyLoc[5](Arg5: String)
5MoveLoc[6](Arg6: u64)
6CopyLoc[7](Arg7: String)
7MoveLoc[8](Arg8: u64)
8CopyLoc[9](Arg9: u64)
9CopyLoc[10](Arg10: u64)
10MoveLoc[11](Arg11: vector<u8>)
11CopyLoc[12](Arg12: &mut Coin<SUI>)
12CopyLoc[16](Arg16: &mut TxContext)
13Call tradeport_launchpad::get_nft_metadata(&Clock, &mut Store, String, u64, String, u64, String, u64, u64, u64, vector<u8>, &mut Coin<SUI>, &mut TxContext): Bag * Option<Bag>
14StLoc[18](loc1: Option<Bag>)
15CopyLoc[16](Arg16: &mut TxContext)
16Call to_nft(Bag, &mut TxContext): Nft
17StLoc[19](loc2: Nft)
18ImmBorrowLoc[19](loc2: Nft)
19Call object::id<Nft>(&Nft): ID
20CopyLoc[3](Arg3: String)
21CopyLoc[4](Arg4: u64)
22ImmBorrowLoc[19](loc2: Nft)
23ImmBorrowField[3](Nft.index: u64)
24ReadRef
25CopyLoc[5](Arg5: String)
26CopyLoc[7](Arg7: String)
27LdFalse
28CopyLoc[9](Arg9: u64)
29MoveLoc[10](Arg10: u64)
30Add
31Pack[3](MintNftEvent)
32Call event::emit<MintNftEvent>(MintNftEvent)
33MoveLoc[13](Arg13: &mut Kiosk)
34MoveLoc[14](Arg14: &KioskOwnerCap)
35MoveLoc[15](Arg15: &TransferPolicy<Nft>)
36MoveLoc[19](loc2: Nft)
37Call kiosk::lock<Nft>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<Nft>, Nft)
38ImmBorrowLoc[18](loc1: Option<Bag>)
39Call option::is_some<Bag>(&Option<Bag>): bool
40BrFalse(64)
B1:
41MoveLoc[18](loc1: Option<Bag>)
42Call option::destroy_some<Bag>(Option<Bag>): Bag
43CopyLoc[16](Arg16: &mut TxContext)
44Call to_nft(Bag, &mut TxContext): Nft
45StLoc[17](loc0: Nft)
46ImmBorrowLoc[17](loc0: Nft)
47Call object::id<Nft>(&Nft): ID
48MoveLoc[3](Arg3: String)
49MoveLoc[4](Arg4: u64)
50ImmBorrowLoc[17](loc0: Nft)
51ImmBorrowField[3](Nft.index: u64)
52ReadRef
53MoveLoc[5](Arg5: String)
54MoveLoc[7](Arg7: String)
55LdTrue
56LdU64(0)
57Pack[3](MintNftEvent)
58Call event::emit<MintNftEvent>(MintNftEvent)
59CopyLoc[1](Arg1: &mut Manager)
60MutBorrowField[2](Manager.reserved_nfts: vector<Nft>)
61MoveLoc[17](loc0: Nft)
62VecPushBack(8)
63Branch(66)
B2:
64MoveLoc[18](loc1: Option<Bag>)
65Call option::destroy_none<Bag>(Option<Bag>)
B3:
66MoveLoc[1](Arg1: &mut Manager)
67MutBorrowField[0](Manager.balance: Balance<SUI>)
68MoveLoc[12](Arg12: &mut Coin<SUI>)
69MoveLoc[9](Arg9: u64)
70MoveLoc[16](Arg16: &mut TxContext)
71Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
72Call coin::put<SUI>(&mut Balance<SUI>, Coin<SUI>)
73Ret
}
to_nft(Arg0: Bag, Arg1: &mut TxContext): Nft {
L2: loc0: UID
L3: loc1: String
L4: loc2: u64
L5: loc3: u64
L6: loc4: String
L7: loc5: String
L8: loc6: String
L9: loc7: VecMap<String, String>
L10: loc8: Nft
B0:
0MoveLoc[1](Arg1: &mut TxContext)
1Call object::new(&mut TxContext): UID
2StLoc[2](loc0: UID)
3MutBorrowLoc[0](Arg0: Bag)
4LdConst[8](vector<u8>: "gro..)
5Call string::utf8(vector<u8>): String
6Call bag::remove<String, String>(&mut Bag, String): String
7StLoc[3](loc1: String)
8MutBorrowLoc[0](Arg0: Bag)
9LdConst[18](vector<u8>: "typ..)
10Call string::utf8(vector<u8>): String
11Call bag::remove<String, u64>(&mut Bag, String): u64
12StLoc[4](loc2: u64)
13MutBorrowLoc[0](Arg0: Bag)
14LdConst[19](vector<u8>: "ind..)
15Call string::utf8(vector<u8>): String
16Call bag::remove<String, u64>(&mut Bag, String): u64
17StLoc[5](loc3: u64)
18MutBorrowLoc[0](Arg0: Bag)
19LdConst[10](vector<u8>: "nam..)
20Call string::utf8(vector<u8>): String
21Call bag::remove<String, String>(&mut Bag, String): String
22StLoc[6](loc4: String)
23MutBorrowLoc[0](Arg0: Bag)
24LdConst[12](vector<u8>: "des..)
25Call string::utf8(vector<u8>): String
26Call bag::remove<String, String>(&mut Bag, String): String
27StLoc[7](loc5: String)
28MutBorrowLoc[0](Arg0: Bag)
29LdConst[14](vector<u8>: "med..)
30Call string::utf8(vector<u8>): String
31Call bag::remove<String, String>(&mut Bag, String): String
32StLoc[8](loc6: String)
33MutBorrowLoc[0](Arg0: Bag)
34LdConst[16](vector<u8>: "att..)
35Call string::utf8(vector<u8>): String
36Call bag::remove<String, VecMap<String, String>>(&mut Bag, String): VecMap<String, String>
37StLoc[9](loc7: VecMap<String, String>)
38MoveLoc[2](loc0: UID)
39MoveLoc[3](loc1: String)
40MoveLoc[4](loc2: u64)
41MoveLoc[6](loc4: String)
42MoveLoc[5](loc3: u64)
43MoveLoc[7](loc5: String)
44MoveLoc[8](loc6: String)
45MoveLoc[9](loc7: VecMap<String, String>)
46Pack[2](Nft)
47StLoc[10](loc8: Nft)
48MoveLoc[0](Arg0: Bag)
49Call bag::destroy_empty(Bag)
50MoveLoc[10](loc8: Nft)
51Ret
}
Constants [
0 => vector<u8>: "Paws NFT" // interpreted as UTF8 string
1 => vector<u8>: "3333 little paws bringing innovation and creativity to SUI" // interpreted as UTF8 string
2 => vector<u8>: "https://byzantion.mypinata.cloud/ipfs/QmUjonamriXKAjVk8egV7WvnVNX4XjSsrRVsU1yKBka7WP" // interpreted as UTF8 string
3 => u16: 1000
4 => u64: 2
5 => vector<u8>: "collection_name" // interpreted as UTF8 string
6 => vector<u8>: "collection_description" // interpreted as UTF8 string
7 => vector<u8>: "collection_cover_url" // interpreted as UTF8 string
8 => vector<u8>: "group_id" // interpreted as UTF8 string
9 => vector<u8>: "{group_id}" // interpreted as UTF8 string
10 => vector<u8>: "name" // interpreted as UTF8 string
11 => vector<u8>: "{name}" // interpreted as UTF8 string
12 => vector<u8>: "description" // interpreted as UTF8 string
13 => vector<u8>: "{description}" // interpreted as UTF8 string
14 => vector<u8>: "media_url" // interpreted as UTF8 string
15 => vector<u8>: "{media_url}" // interpreted as UTF8 string
16 => vector<u8>: "attributes" // interpreted as UTF8 string
17 => vector<u8>: "{attributes}" // interpreted as UTF8 string
18 => vector<u8>: "type" // interpreted as UTF8 string
19 => vector<u8>: "index" // interpreted as UTF8 string
]
}