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

API

duck_nft

Module0xff3e…279d
Move path
0x61e6…e413::duck_nft
Functions
9163 public, 24 entry
Structs
34
Friend modules
nestv2
duck_nft

Bytecode9714 lines

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

// Move bytecode v6
module 61e6afef2cafd54a7f9824e5301a02224bd2cf9ab9c52ce4e780d2ae6f09e413.duck_nft {
use 61e6afef2cafd54a7f9824e5301a02224bd2cf9ab9c52ce4e780d2ae6f09e413::shttoken;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::display;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::kiosk;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::random;
use 0000000000000000000000000000000000000000000000000000000000000002::sui;
use 0000000000000000000000000000000000000000000000000000000000000002::table;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer_policy;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_set;
 
struct DUCK_NFT has drop {
dummy_field: bool
}
 
struct HatchCap has key {
id: UID
}
 
struct AdminCap has key {
id: UID,
team_mint_initialized: bool
}
 
struct TeamMintCap has key {
id: UID,
team_wallet: address,
minted: bool
}
 
struct PackSupply has key {
id: UID,
total_packs_remaining: u64,
last_refresh_time: u64,
start_time: u64,
basic_egg_sht_cost: u64,
basic_egg_sui_cost: u64,
rare_egg_sht_cost: u64,
rare_egg_sui_cost: u64,
golden_egg_sht_cost: u64,
golden_egg_sui_cost: u64,
genesis_whitelist_basic_sui_cost: u64,
genesis_whitelist_rare_sui_cost: u64,
genesis_whitelist_golden_sui_cost: u64,
genesis_public_basic_sui_cost: u64,
genesis_public_rare_sui_cost: u64,
genesis_public_golden_sui_cost: u64,
is_genesis_batch: bool,
genesis_batch_start_time: u64,
whitelist_packs_sold: u64,
whitelist_phase_active: bool,
user_whitelist_purchases: Table<address, u64>,
current_batch_number: u64,
display_batch_number: u64,
previous_batch_completed: bool,
total_nfts_minted_globally: u64,
in_cooldown: bool,
cooldown_end_time: u64,
last_sellout_time: u64,
batch_transition_lock: bool,
user_last_purchase_time: Table<address, u64>
}
 
struct PerTypeSupply has key {
id: UID,
basic_packs_remaining: u64,
rare_packs_remaining: u64,
golden_packs_remaining: u64,
max_basic_per_batch: u64,
max_rare_per_batch: u64,
max_golden_per_batch: u64
}
 
struct Whitelist has key {
id: UID,
addresses: VecSet<address>
}
 
struct TreasuryConfig has key {
id: UID,
treasury_wallet: address
}
 
struct ReferralRegistry has key {
id: UID,
referrers: Table<address, address>
}
 
struct PackPricesV2 has key {
id: UID,
basic_egg_sht_cost: u64,
basic_egg_sui_cost: u64,
rare_egg_sht_cost: u64,
rare_egg_sui_cost: u64,
golden_egg_sht_cost: u64,
golden_egg_sui_cost: u64
}
 
struct PackPurchased has copy, drop {
pack_type: u8,
buyer: address,
sht_cost: u64,
sui_cost: u64,
rarity: u8,
remaining_packs: u64
}
 
struct SupplyRefreshed has copy, drop {
refresh_time: u64,
total_packs_available: u64
}
 
struct PriceUpdated has copy, drop {
pack_type: u8,
old_sht_cost: u64,
new_sht_cost: u64,
old_sui_cost: u64,
new_sui_cost: u64
}
 
struct TeamMintCompleted has copy, drop {
minter: address,
quantity: u64,
remaining_mints: u64
}
 
struct GenesisBatchStarted has copy, drop {
start_time: u64,
total_supply: u64,
whitelist_allocation: u64
}
 
struct WhitelistPhaseEnded has copy, drop {
end_time: u64,
whitelist_packs_sold: u64,
remaining_for_public: u64
}
 
struct GenesisBatchCompleted has copy, drop {
end_time: u64,
total_packs_sold: u64
}
 
struct AddressWhitelisted has copy, drop {
address: address,
added_by: address
}
 
struct AddressRemovedFromWhitelist has copy, drop {
address: address,
removed_by: address
}
 
struct BatchWhitelisted has copy, drop {
count: u64,
added_by: address
}
 
struct ReferralReward has copy, drop {
pack_type: u8,
buyer: address,
referrer: address,
sht_amount: u64,
timestamp: u64
}
 
struct TreasuryWalletUpdated has copy, drop {
old_wallet: address,
new_wallet: address
}
 
struct ReferrerSet has copy, drop {
user: address,
referrer: address,
timestamp: u64
}
 
struct CooldownStarted has copy, drop {
batch_number: u64,
sellout_time: u64,
cooldown_end_time: u64
}
 
struct CooldownRecalculated has copy, drop {
old_end_time: u64,
new_end_time: u64,
duration_used: u64
}
 
struct BatchStarted has copy, drop {
batch_number: u64,
start_time: u64,
packs_available: u64
}
 
struct LastMintOfBatch has copy, drop {
completed_batch_number: u64,
next_batch_number: u64,
cooldown_end_time: u64,
final_nfts_minted: u64
}
 
struct PackTypeLimitUpdated has copy, drop {
pack_type: u8,
old_limit: u64,
new_limit: u64,
updated_by: address
}
 
struct CooldownDurationUpdated has copy, drop {
old_duration_ms: u64,
new_duration_ms: u64,
updated_by: address
}
 
struct GlobalStats has key {
id: UID,
common_minted: u64,
queen_minted: u64,
king_minted: u64,
golden_minted: u64,
total_sht_burned: u64,
sht_burned_today: u64,
last_burn_reset_day: u64
}
 
struct UserStats has copy, drop, store {
lifetime_sht_earned: u64,
total_harvest_attempts: u64,
successful_harvests: u64,
total_sht_burned: u64,
packs_bought: u64,
sht_earned_today: u64,
last_activity_day: u64
}
 
struct UserStatsRegistry has key {
id: UID
}
 
struct DuckNFT has store, key {
id: UID,
name: String,
number: u64,
rarity: u8,
rarity_name: String,
image_url: String,
description: String,
mint_timestamp: u64,
owner: address,
luck: String,
multiplier: String,
batch: String,
is_staked: bool,
staked_at: u64,
last_harvest_time: u64,
nest_level: u8,
attributes: VecMap<String, String>
}
 
struct DuckVirtuallyStaked has copy, drop {
duck_id: ID,
owner: address,
nest_level: u8,
staked_at: u64
}
 
struct DuckVirtuallyUnstaked has copy, drop {
duck_id: ID,
owner: address,
total_time_staked: u64
}
 
struct HarvestTimeUpdated has copy, drop {
duck_id: ID,
new_harvest_time: u64
}
 
init(Arg0: DUCK_NFT, Arg1: &mut TxContext) {
L2: loc0: address
L3: loc1: Display<DuckNFT>
L4: loc2: vector<String>
L5: loc3: TransferPolicyCap<DuckNFT>
L6: loc4: Publisher
L7: loc5: vector<String>
B0:
0CopyLoc[1](Arg1: &mut TxContext)
1FreezeRef
2Call tx_context::sender(&TxContext): address
3StLoc[2](loc0: address)
4MoveLoc[0](Arg0: DUCK_NFT)
5CopyLoc[1](Arg1: &mut TxContext)
6Call package::claim<DUCK_NFT>(DUCK_NFT, &mut TxContext): Publisher
7StLoc[6](loc4: Publisher)
8LdConst[42](vector<u8>: "nam..)
9Call string::utf8(vector<u8>): String
10LdConst[43](vector<u8>: "num..)
11Call string::utf8(vector<u8>): String
12LdConst[44](vector<u8>: "des..)
13Call string::utf8(vector<u8>): String
14LdConst[45](vector<u8>: "ima..)
15Call string::utf8(vector<u8>): String
16LdConst[46](vector<u8>: "rar..)
17Call string::utf8(vector<u8>): String
18LdConst[47](vector<u8>: "luc..)
19Call string::utf8(vector<u8>): String
20LdConst[48](vector<u8>: "mul..)
21Call string::utf8(vector<u8>): String
22LdConst[49](vector<u8>: "bat..)
23Call string::utf8(vector<u8>): String
24LdConst[50](vector<u8>: "att..)
25Call string::utf8(vector<u8>): String
26VecPack(20, 9)
27StLoc[4](loc2: vector<String>)
28LdConst[51](vector<u8>: "{na..)
29Call string::utf8(vector<u8>): String
30LdConst[52](vector<u8>: "{nu..)
31Call string::utf8(vector<u8>): String
32LdConst[53](vector<u8>: "{de..)
33Call string::utf8(vector<u8>): String
34LdConst[54](vector<u8>: "{im..)
35Call string::utf8(vector<u8>): String
36LdConst[55](vector<u8>: "{ra..)
37Call string::utf8(vector<u8>): String
38LdConst[56](vector<u8>: "{lu..)
39Call string::utf8(vector<u8>): String
40LdConst[57](vector<u8>: "{mu..)
41Call string::utf8(vector<u8>): String
42LdConst[58](vector<u8>: "{ba..)
43Call string::utf8(vector<u8>): String
44LdConst[59](vector<u8>: "{at..)
45Call string::utf8(vector<u8>): String
46VecPack(20, 9)
47StLoc[7](loc5: vector<String>)
48ImmBorrowLoc[6](loc4: Publisher)
49MoveLoc[4](loc2: vector<String>)
50MoveLoc[7](loc5: vector<String>)
51CopyLoc[1](Arg1: &mut TxContext)
52Call display::new_with_fields<DuckNFT>(&Publisher, vector<String>, vector<String>, &mut TxContext): Display<DuckNFT>
53StLoc[3](loc1: Display<DuckNFT>)
54MutBorrowLoc[3](loc1: Display<DuckNFT>)
55Call display::update_version<DuckNFT>(&mut Display<DuckNFT>)
56MoveLoc[3](loc1: Display<DuckNFT>)
57CopyLoc[2](loc0: address)
58Call transfer::public_transfer<Display<DuckNFT>>(Display<DuckNFT>, address)
59ImmBorrowLoc[6](loc4: Publisher)
60CopyLoc[1](Arg1: &mut TxContext)
61Call transfer_policy::new<DuckNFT>(&Publisher, &mut TxContext): TransferPolicy<DuckNFT> * TransferPolicyCap<DuckNFT>
62StLoc[5](loc3: TransferPolicyCap<DuckNFT>)
63Call transfer::public_share_object<TransferPolicy<DuckNFT>>(TransferPolicy<DuckNFT>)
64MoveLoc[5](loc3: TransferPolicyCap<DuckNFT>)
65CopyLoc[2](loc0: address)
66Call transfer::public_transfer<TransferPolicyCap<DuckNFT>>(TransferPolicyCap<DuckNFT>, address)
67MoveLoc[6](loc4: Publisher)
68CopyLoc[2](loc0: address)
69Call transfer::public_transfer<Publisher>(Publisher, address)
70CopyLoc[1](Arg1: &mut TxContext)
71Call object::new(&mut TxContext): UID
72Pack[1](HatchCap)
73Call transfer::share_object<HatchCap>(HatchCap)
74CopyLoc[1](Arg1: &mut TxContext)
75Call object::new(&mut TxContext): UID
76LdFalse
77Pack[2](AdminCap)
78CopyLoc[2](loc0: address)
79Call transfer::transfer<AdminCap>(AdminCap, address)
80CopyLoc[1](Arg1: &mut TxContext)
81Call object::new(&mut TxContext): UID
82LdU64(0)
83LdU64(0)
84LdU64(0)
85LdConst[28](u64: 7000..)
86LdConst[29](u64: 2000..)
87LdConst[30](u64: 1500..)
88LdConst[31](u64: 6000..)
89LdConst[32](u64: 2500..)
90LdConst[33](u64: 1200..)
91LdConst[29](u64: 2000..)
92LdConst[31](u64: 6000..)
93LdConst[33](u64: 1200..)
94LdConst[29](u64: 2000..)
95LdConst[31](u64: 6000..)
96LdConst[33](u64: 1200..)
97LdFalse
98LdU64(0)
99LdU64(0)
100LdFalse
101CopyLoc[1](Arg1: &mut TxContext)
102Call table::new<address, u64>(&mut TxContext): Table<address, u64>
103LdU64(0)
104LdU64(0)
105LdFalse
106LdU64(0)
107LdFalse
108LdU64(0)
109LdU64(0)
110LdFalse
111CopyLoc[1](Arg1: &mut TxContext)
112Call table::new<address, u64>(&mut TxContext): Table<address, u64>
113Pack[4](PackSupply)
114Call transfer::share_object<PackSupply>(PackSupply)
115CopyLoc[1](Arg1: &mut TxContext)
116Call object::new(&mut TxContext): UID
117LdU64(0)
118LdU64(0)
119LdU64(0)
120LdU64(0)
121LdU64(0)
122LdU64(0)
123Pack[5](PerTypeSupply)
124Call transfer::share_object<PerTypeSupply>(PerTypeSupply)
125CopyLoc[1](Arg1: &mut TxContext)
126Call object::new(&mut TxContext): UID
127MoveLoc[2](loc0: address)
128Pack[7](TreasuryConfig)
129Call transfer::share_object<TreasuryConfig>(TreasuryConfig)
130CopyLoc[1](Arg1: &mut TxContext)
131Call object::new(&mut TxContext): UID
132Call vec_set::empty<address>(): VecSet<address>
133Pack[6](Whitelist)
134Call transfer::share_object<Whitelist>(Whitelist)
135CopyLoc[1](Arg1: &mut TxContext)
136Call object::new(&mut TxContext): UID
137CopyLoc[1](Arg1: &mut TxContext)
138Call table::new<address, address>(&mut TxContext): Table<address, address>
139Pack[8](ReferralRegistry)
140Call transfer::share_object<ReferralRegistry>(ReferralRegistry)
141CopyLoc[1](Arg1: &mut TxContext)
142Call object::new(&mut TxContext): UID
143LdU64(0)
144LdU64(0)
145LdU64(0)
146LdU64(0)
147LdU64(0)
148LdU64(0)
149LdU64(0)
150Pack[29](GlobalStats)
151Call transfer::share_object<GlobalStats>(GlobalStats)
152MoveLoc[1](Arg1: &mut TxContext)
153Call object::new(&mut TxContext): UID
154Pack[31](UserStatsRegistry)
155Call transfer::share_object<UserStatsRegistry>(UserStatsRegistry)
156Ret
}
 
entry public initialize_game_start(Arg0: &AdminCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Clock) {
L4: loc0: u64
L5: loc1: u64
L6: loc2: u64
L7: loc3: u64
B0:
0CopyLoc[1](Arg1: &mut PackSupply)
1ImmBorrowField[0](PackSupply.start_time: u64)
2ReadRef
3LdU64(0)
4Eq
5BrFalse(7)
B1:
6Branch(15)
B2:
7MoveLoc[2](Arg2: &mut PerTypeSupply)
8Pop
9MoveLoc[1](Arg1: &mut PackSupply)
10Pop
11MoveLoc[3](Arg3: &Clock)
12Pop
13LdConst[10](u64: 11)
14Abort
B3:
15MoveLoc[3](Arg3: &Clock)
16Call clock::timestamp_ms(&Clock): u64
17StLoc[7](loc3: u64)
18LdTrue
19CopyLoc[1](Arg1: &mut PackSupply)
20MutBorrowField[1](PackSupply.is_genesis_batch: bool)
21WriteRef
22CopyLoc[7](loc3: u64)
23CopyLoc[1](Arg1: &mut PackSupply)
24MutBorrowField[2](PackSupply.genesis_batch_start_time: u64)
25WriteRef
26LdConst[37](u64: 600)
27CopyLoc[1](Arg1: &mut PackSupply)
28MutBorrowField[3](PackSupply.total_packs_remaining: u64)
29WriteRef
30LdU64(0)
31CopyLoc[1](Arg1: &mut PackSupply)
32MutBorrowField[4](PackSupply.whitelist_packs_sold: u64)
33WriteRef
34LdTrue
35CopyLoc[1](Arg1: &mut PackSupply)
36MutBorrowField[5](PackSupply.whitelist_phase_active: bool)
37WriteRef
38CopyLoc[7](loc3: u64)
39CopyLoc[1](Arg1: &mut PackSupply)
40MutBorrowField[0](PackSupply.start_time: u64)
41WriteRef
42CopyLoc[7](loc3: u64)
43CopyLoc[1](Arg1: &mut PackSupply)
44MutBorrowField[6](PackSupply.last_refresh_time: u64)
45WriteRef
46LdU64(0)
47CopyLoc[1](Arg1: &mut PackSupply)
48MutBorrowField[7](PackSupply.current_batch_number: u64)
49WriteRef
50LdU64(0)
51CopyLoc[1](Arg1: &mut PackSupply)
52MutBorrowField[8](PackSupply.display_batch_number: u64)
53WriteRef
54LdFalse
55MoveLoc[1](Arg1: &mut PackSupply)
56MutBorrowField[9](PackSupply.previous_batch_completed: bool)
57WriteRef
58CopyLoc[2](Arg2: &mut PerTypeSupply)
59ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
60ReadRef
61LdU64(0)
62Gt
63BrFalse(69)
B4:
64CopyLoc[2](Arg2: &mut PerTypeSupply)
65ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
66ReadRef
67StLoc[4](loc0: u64)
68Branch(71)
B5:
69LdConst[37](u64: 600)
70StLoc[4](loc0: u64)
B6:
71MoveLoc[4](loc0: u64)
72CopyLoc[2](Arg2: &mut PerTypeSupply)
73MutBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
74WriteRef
75CopyLoc[2](Arg2: &mut PerTypeSupply)
76ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
77ReadRef
78LdU64(0)
79Gt
80BrFalse(86)
B7:
81CopyLoc[2](Arg2: &mut PerTypeSupply)
82ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
83ReadRef
84StLoc[5](loc1: u64)
85Branch(88)
B8:
86LdConst[37](u64: 600)
87StLoc[5](loc1: u64)
B9:
88MoveLoc[5](loc1: u64)
89CopyLoc[2](Arg2: &mut PerTypeSupply)
90MutBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
91WriteRef
92CopyLoc[2](Arg2: &mut PerTypeSupply)
93ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
94ReadRef
95LdU64(0)
96Gt
97BrFalse(103)
B10:
98CopyLoc[2](Arg2: &mut PerTypeSupply)
99ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
100ReadRef
101StLoc[6](loc2: u64)
102Branch(105)
B11:
103LdConst[37](u64: 600)
104StLoc[6](loc2: u64)
B12:
105MoveLoc[6](loc2: u64)
106MoveLoc[2](Arg2: &mut PerTypeSupply)
107MutBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
108WriteRef
109MoveLoc[7](loc3: u64)
110LdConst[37](u64: 600)
111LdConst[38](u64: 575)
112Pack[14](GenesisBatchStarted)
113Call event::emit<GenesisBatchStarted>(GenesisBatchStarted)
114Ret
}
 
entry public initialize_team_mint(Arg0: &mut AdminCap, Arg1: address, Arg2: &mut TxContext) {
B0:
0CopyLoc[0](Arg0: &mut AdminCap)
1ImmBorrowField[16](AdminCap.team_mint_initialized: bool)
2ReadRef
3Not
4BrFalse(6)
B1:
5Branch(12)
B2:
6MoveLoc[2](Arg2: &mut TxContext)
7Pop
8MoveLoc[0](Arg0: &mut AdminCap)
9Pop
10LdConst[10](u64: 11)
11Abort
B3:
12MoveLoc[2](Arg2: &mut TxContext)
13Call object::new(&mut TxContext): UID
14CopyLoc[1](Arg1: address)
15LdFalse
16Pack[3](TeamMintCap)
17MoveLoc[1](Arg1: address)
18Call transfer::transfer<TeamMintCap>(TeamMintCap, address)
19LdTrue
20MoveLoc[0](Arg0: &mut AdminCap)
21MutBorrowField[16](AdminCap.team_mint_initialized: bool)
22WriteRef
23Ret
}
 
entry public team_mint(Arg0: &mut TeamMintCap, Arg1: &mut PackSupply, Arg2: &mut GlobalStats, Arg3: &mut Kiosk, Arg4: &KioskOwnerCap, Arg5: &TransferPolicy<DuckNFT>, Arg6: &Clock, Arg7: &mut TxContext) {
L8: loc0: DuckNFT
L9: loc1: DuckNFT
L10: loc2: u64
L11: loc3: u64
L12: loc4: u64
L13: loc5: u64
L14: loc6: address
L15: loc7: u64
B0:
0CopyLoc[7](Arg7: &mut TxContext)
1FreezeRef
2Call tx_context::sender(&TxContext): address
3StLoc[14](loc6: address)
4CopyLoc[14](loc6: address)
5CopyLoc[0](Arg0: &mut TeamMintCap)
6ImmBorrowField[17](TeamMintCap.team_wallet: address)
7ReadRef
8Eq
9BrFalse(11)
B1:
10Branch(29)
B2:
11MoveLoc[4](Arg4: &KioskOwnerCap)
12Pop
13MoveLoc[3](Arg3: &mut Kiosk)
14Pop
15MoveLoc[0](Arg0: &mut TeamMintCap)
16Pop
17MoveLoc[5](Arg5: &TransferPolicy<DuckNFT>)
18Pop
19MoveLoc[1](Arg1: &mut PackSupply)
20Pop
21MoveLoc[2](Arg2: &mut GlobalStats)
22Pop
23MoveLoc[7](Arg7: &mut TxContext)
24Pop
25MoveLoc[6](Arg6: &Clock)
26Pop
27LdConst[3](u64: 4)
28Abort
B3:
29CopyLoc[0](Arg0: &mut TeamMintCap)
30ImmBorrowField[18](TeamMintCap.minted: bool)
31ReadRef
32Not
33BrFalse(35)
B4:
34Branch(53)
B5:
35MoveLoc[4](Arg4: &KioskOwnerCap)
36Pop
37MoveLoc[3](Arg3: &mut Kiosk)
38Pop
39MoveLoc[0](Arg0: &mut TeamMintCap)
40Pop
41MoveLoc[5](Arg5: &TransferPolicy<DuckNFT>)
42Pop
43MoveLoc[1](Arg1: &mut PackSupply)
44Pop
45MoveLoc[2](Arg2: &mut GlobalStats)
46Pop
47MoveLoc[7](Arg7: &mut TxContext)
48Pop
49MoveLoc[6](Arg6: &Clock)
50Pop
51LdConst[2](u64: 3)
52Abort
B6:
53LdU64(200)
54StLoc[15](loc7: u64)
55CopyLoc[1](Arg1: &mut PackSupply)
56ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
57ReadRef
58CopyLoc[15](loc7: u64)
59Add
60LdConst[34](u64: 5555)
61Le
62BrFalse(64)
B7:
63Branch(82)
B8:
64MoveLoc[4](Arg4: &KioskOwnerCap)
65Pop
66MoveLoc[3](Arg3: &mut Kiosk)
67Pop
68MoveLoc[0](Arg0: &mut TeamMintCap)
69Pop
70MoveLoc[5](Arg5: &TransferPolicy<DuckNFT>)
71Pop
72MoveLoc[1](Arg1: &mut PackSupply)
73Pop
74MoveLoc[2](Arg2: &mut GlobalStats)
75Pop
76MoveLoc[7](Arg7: &mut TxContext)
77Pop
78MoveLoc[6](Arg6: &Clock)
79Pop
80LdConst[13](u64: 14)
81Abort
B9:
82LdU64(0)
83StLoc[10](loc2: u64)
B10:
84CopyLoc[10](loc2: u64)
85LdU64(100)
86Lt
87BrFalse(116)
B11:
88CopyLoc[1](Arg1: &mut PackSupply)
89ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
90ReadRef
91CopyLoc[10](loc2: u64)
92Add
93LdU64(1)
94Add
95StLoc[12](loc4: u64)
96LdConst[27](u8: 3)
97LdU64(0)
98MoveLoc[12](loc4: u64)
99CopyLoc[6](Arg6: &Clock)
100CopyLoc[7](Arg7: &mut TxContext)
101Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
102StLoc[8](loc0: DuckNFT)
103CopyLoc[2](Arg2: &mut GlobalStats)
104LdConst[27](u8: 3)
105Call update_rarity_stats(&mut GlobalStats, u8)
106CopyLoc[3](Arg3: &mut Kiosk)
107CopyLoc[4](Arg4: &KioskOwnerCap)
108CopyLoc[5](Arg5: &TransferPolicy<DuckNFT>)
109MoveLoc[8](loc0: DuckNFT)
110Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
111MoveLoc[10](loc2: u64)
112LdU64(1)
113Add
114StLoc[10](loc2: u64)
115Branch(84)
B12:
116LdU64(0)
117StLoc[11](loc3: u64)
B13:
118CopyLoc[11](loc3: u64)
119LdU64(100)
120Lt
121BrFalse(153)
B14:
122Branch(123)
B15:
123CopyLoc[1](Arg1: &mut PackSupply)
124ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
125ReadRef
126LdU64(100)
127Add
128CopyLoc[11](loc3: u64)
129Add
130LdU64(1)
131Add
132StLoc[13](loc5: u64)
133LdConst[26](u8: 2)
134LdU64(0)
135MoveLoc[13](loc5: u64)
136CopyLoc[6](Arg6: &Clock)
137CopyLoc[7](Arg7: &mut TxContext)
138Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
139StLoc[9](loc1: DuckNFT)
140CopyLoc[2](Arg2: &mut GlobalStats)
141LdConst[26](u8: 2)
142Call update_rarity_stats(&mut GlobalStats, u8)
143CopyLoc[3](Arg3: &mut Kiosk)
144CopyLoc[4](Arg4: &KioskOwnerCap)
145CopyLoc[5](Arg5: &TransferPolicy<DuckNFT>)
146MoveLoc[9](loc1: DuckNFT)
147Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
148MoveLoc[11](loc3: u64)
149LdU64(1)
150Add
151StLoc[11](loc3: u64)
152Branch(118)
B16:
153MoveLoc[4](Arg4: &KioskOwnerCap)
154Pop
155MoveLoc[3](Arg3: &mut Kiosk)
156Pop
157MoveLoc[5](Arg5: &TransferPolicy<DuckNFT>)
158Pop
159MoveLoc[2](Arg2: &mut GlobalStats)
160Pop
161MoveLoc[7](Arg7: &mut TxContext)
162Pop
163MoveLoc[6](Arg6: &Clock)
164Pop
165LdTrue
166MoveLoc[0](Arg0: &mut TeamMintCap)
167MutBorrowField[18](TeamMintCap.minted: bool)
168WriteRef
169CopyLoc[1](Arg1: &mut PackSupply)
170ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
171ReadRef
172CopyLoc[15](loc7: u64)
173Add
174MoveLoc[1](Arg1: &mut PackSupply)
175MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
176WriteRef
177MoveLoc[14](loc6: address)
178MoveLoc[15](loc7: u64)
179LdU64(0)
180Pack[13](TeamMintCompleted)
181Call event::emit<TeamMintCompleted>(TeamMintCompleted)
182Ret
}
 
public get_team_mint_status(Arg0: &TeamMintCap): address * bool {
B0:
0CopyLoc[0](Arg0: &TeamMintCap)
1ImmBorrowField[17](TeamMintCap.team_wallet: address)
2ReadRef
3MoveLoc[0](Arg0: &TeamMintCap)
4ImmBorrowField[18](TeamMintCap.minted: bool)
5ReadRef
6Ret
}
 
enforce_public_rate_limit(Arg0: &mut PackSupply, Arg1: bool, Arg2: address, Arg3: u64, Arg4: u64) {
L5: loc0: u64
L6: loc1: &mut u64
B0:
0MoveLoc[1](Arg1: bool)
1Not
2BrFalse(54)
B1:
3MoveLoc[3](Arg3: u64)
4LdConst[4](u64: 5)
5Le
6BrFalse(8)
B2:
7Branch(12)
B3:
8MoveLoc[0](Arg0: &mut PackSupply)
9Pop
10LdConst[15](u64: 16)
11Abort
B4:
12CopyLoc[0](Arg0: &mut PackSupply)
13ImmBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
14CopyLoc[2](Arg2: address)
15Call table::contains<address, u64>(&Table<address, u64>, address): bool
16BrFalse(34)
B5:
17CopyLoc[0](Arg0: &mut PackSupply)
18ImmBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
19CopyLoc[2](Arg2: address)
20Call table::borrow<address, u64>(&Table<address, u64>, address): &u64
21ReadRef
22StLoc[5](loc0: u64)
23CopyLoc[4](Arg4: u64)
24MoveLoc[5](loc0: u64)
25Sub
26LdConst[40](u64: 5000)
27Ge
28BrFalse(30)
B6:
29Branch(34)
B7:
30MoveLoc[0](Arg0: &mut PackSupply)
31Pop
32LdConst[16](u64: 17)
33Abort
B8:
34CopyLoc[0](Arg0: &mut PackSupply)
35ImmBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
36CopyLoc[2](Arg2: address)
37Call table::contains<address, u64>(&Table<address, u64>, address): bool
38BrFalse(48)
B9:
39MoveLoc[0](Arg0: &mut PackSupply)
40MutBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
41MoveLoc[2](Arg2: address)
42Call table::borrow_mut<address, u64>(&mut Table<address, u64>, address): &mut u64
43StLoc[6](loc1: &mut u64)
44MoveLoc[4](Arg4: u64)
45MoveLoc[6](loc1: &mut u64)
46WriteRef
47Branch(56)
B10:
48MoveLoc[0](Arg0: &mut PackSupply)
49MutBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
50MoveLoc[2](Arg2: address)
51MoveLoc[4](Arg4: u64)
52Call table::add<address, u64>(&mut Table<address, u64>, address, u64)
53Branch(56)
B11:
54MoveLoc[0](Arg0: &mut PackSupply)
55Pop
B12:
56Ret
}
 
validate_public_rate_limit(Arg0: &PackSupply, Arg1: address, Arg2: u64, Arg3: u64) {
L4: loc0: u64
B0:
0MoveLoc[2](Arg2: u64)
1LdConst[4](u64: 5)
2Le
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &PackSupply)
6Pop
7LdConst[15](u64: 16)
8Abort
B3:
9CopyLoc[0](Arg0: &PackSupply)
10ImmBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
11CopyLoc[1](Arg1: address)
12Call table::contains<address, u64>(&Table<address, u64>, address): bool
13BrFalse(29)
B4:
14MoveLoc[0](Arg0: &PackSupply)
15ImmBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
16MoveLoc[1](Arg1: address)
17Call table::borrow<address, u64>(&Table<address, u64>, address): &u64
18ReadRef
19StLoc[4](loc0: u64)
20MoveLoc[3](Arg3: u64)
21MoveLoc[4](loc0: u64)
22Sub
23LdConst[40](u64: 5000)
24Ge
25BrFalse(27)
B5:
26Branch(31)
B6:
27LdConst[16](u64: 17)
28Abort
B7:
29MoveLoc[0](Arg0: &PackSupply)
30Pop
B8:
31Ret
}
 
update_public_rate_limit(Arg0: &mut PackSupply, Arg1: address, Arg2: u64) {
L3: loc0: &mut u64
B0:
0CopyLoc[0](Arg0: &mut PackSupply)
1ImmBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
2CopyLoc[1](Arg1: address)
3Call table::contains<address, u64>(&Table<address, u64>, address): bool
4BrFalse(14)
B1:
5MoveLoc[0](Arg0: &mut PackSupply)
6MutBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
7MoveLoc[1](Arg1: address)
8Call table::borrow_mut<address, u64>(&mut Table<address, u64>, address): &mut u64
9StLoc[3](loc0: &mut u64)
10MoveLoc[2](Arg2: u64)
11MoveLoc[3](loc0: &mut u64)
12WriteRef
13Branch(19)
B2:
14MoveLoc[0](Arg0: &mut PackSupply)
15MutBorrowField[20](PackSupply.user_last_purchase_time: Table<address, u64>)
16MoveLoc[1](Arg1: address)
17MoveLoc[2](Arg2: u64)
18Call table::add<address, u64>(&mut Table<address, u64>, address, u64)
B3:
19Ret
}
 
validate_genesis_purchase(Arg0: &PackSupply, Arg1: &Whitelist, Arg2: address, Arg3: u64, Arg4: &Clock) {
L5: loc0: bool
L6: loc1: u64
L7: loc2: bool
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
2ReadRef
3Not
4BrFalse(12)
B1:
5MoveLoc[1](Arg1: &Whitelist)
6Pop
7MoveLoc[0](Arg0: &PackSupply)
8Pop
9MoveLoc[4](Arg4: &Clock)
10Pop
11Ret
B2:
12MoveLoc[4](Arg4: &Clock)
13Call clock::timestamp_ms(&Clock): u64
14CopyLoc[0](Arg0: &PackSupply)
15ImmBorrowField[2](PackSupply.genesis_batch_start_time: u64)
16ReadRef
17LdConst[39](u64: 2160..)
18Add
19Ge
20StLoc[7](loc2: bool)
21CopyLoc[0](Arg0: &PackSupply)
22ImmBorrowField[5](PackSupply.whitelist_phase_active: bool)
23ReadRef
24BrFalse(29)
B3:
25MoveLoc[7](loc2: bool)
26Not
27StLoc[5](loc0: bool)
28Branch(31)
B4:
29LdFalse
30StLoc[5](loc0: bool)
B5:
31MoveLoc[5](loc0: bool)
32BrFalse(68)
B6:
33MoveLoc[1](Arg1: &Whitelist)
34ImmBorrowField[21](Whitelist.addresses: VecSet<address>)
35ImmBorrowLoc[2](Arg2: address)
36Call vec_set::contains<address>(&VecSet<address>, &address): bool
37BrFalse(39)
B7:
38Branch(43)
B8:
39MoveLoc[0](Arg0: &PackSupply)
40Pop
41LdConst[7](u64: 8)
42Abort
B9:
43CopyLoc[0](Arg0: &PackSupply)
44ImmBorrowField[22](PackSupply.user_whitelist_purchases: Table<address, u64>)
45CopyLoc[2](Arg2: address)
46Call table::contains<address, u64>(&Table<address, u64>, address): bool
47BrFalse(55)
B10:
48MoveLoc[0](Arg0: &PackSupply)
49ImmBorrowField[22](PackSupply.user_whitelist_purchases: Table<address, u64>)
50MoveLoc[2](Arg2: address)
51Call table::borrow<address, u64>(&Table<address, u64>, address): &u64
52ReadRef
53StLoc[6](loc1: u64)
54Branch(59)
B11:
55MoveLoc[0](Arg0: &PackSupply)
56Pop
57LdU64(0)
58StLoc[6](loc1: u64)
B12:
59MoveLoc[6](loc1: u64)
60MoveLoc[3](Arg3: u64)
61Add
62LdConst[1](u64: 2)
63Le
64BrFalse(66)
B13:
65Branch(72)
B14:
66LdConst[5](u64: 6)
67Abort
B15:
68MoveLoc[1](Arg1: &Whitelist)
69Pop
70MoveLoc[0](Arg0: &PackSupply)
71Pop
B16:
72Ret
}
 
apply_genesis_purchase(Arg0: &mut PackSupply, Arg1: &Whitelist, Arg2: address, Arg3: u64, Arg4: &Clock) {
L5: loc0: &mut u64
L6: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut PackSupply)
1ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
2ReadRef
3Not
4BrFalse(10)
B1:
5MoveLoc[0](Arg0: &mut PackSupply)
6Pop
7MoveLoc[4](Arg4: &Clock)
8Pop
9Ret
B2:
10MoveLoc[4](Arg4: &Clock)
11Call clock::timestamp_ms(&Clock): u64
12StLoc[6](loc1: u64)
13CopyLoc[0](Arg0: &mut PackSupply)
14ImmBorrowField[5](PackSupply.whitelist_phase_active: bool)
15ReadRef
16BrFalse(38)
B3:
17CopyLoc[6](loc1: u64)
18CopyLoc[0](Arg0: &mut PackSupply)
19ImmBorrowField[2](PackSupply.genesis_batch_start_time: u64)
20ReadRef
21LdConst[39](u64: 2160..)
22Add
23Ge
24BrFalse(38)
B4:
25LdFalse
26CopyLoc[0](Arg0: &mut PackSupply)
27MutBorrowField[5](PackSupply.whitelist_phase_active: bool)
28WriteRef
29CopyLoc[6](loc1: u64)
30CopyLoc[0](Arg0: &mut PackSupply)
31ImmBorrowField[4](PackSupply.whitelist_packs_sold: u64)
32ReadRef
33CopyLoc[0](Arg0: &mut PackSupply)
34ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
35ReadRef
36Pack[15](WhitelistPhaseEnded)
37Call event::emit<WhitelistPhaseEnded>(WhitelistPhaseEnded)
B5:
38CopyLoc[0](Arg0: &mut PackSupply)
39ImmBorrowField[5](PackSupply.whitelist_phase_active: bool)
40ReadRef
41BrFalse(95)
B6:
42CopyLoc[0](Arg0: &mut PackSupply)
43ImmBorrowField[22](PackSupply.user_whitelist_purchases: Table<address, u64>)
44CopyLoc[2](Arg2: address)
45Call table::contains<address, u64>(&Table<address, u64>, address): bool
46BrFalse(59)
B7:
47CopyLoc[0](Arg0: &mut PackSupply)
48MutBorrowField[22](PackSupply.user_whitelist_purchases: Table<address, u64>)
49MoveLoc[2](Arg2: address)
50Call table::borrow_mut<address, u64>(&mut Table<address, u64>, address): &mut u64
51StLoc[5](loc0: &mut u64)
52CopyLoc[5](loc0: &mut u64)
53ReadRef
54CopyLoc[3](Arg3: u64)
55Add
56MoveLoc[5](loc0: &mut u64)
57WriteRef
58Branch(64)
B8:
59CopyLoc[0](Arg0: &mut PackSupply)
60MutBorrowField[22](PackSupply.user_whitelist_purchases: Table<address, u64>)
61MoveLoc[2](Arg2: address)
62CopyLoc[3](Arg3: u64)
63Call table::add<address, u64>(&mut Table<address, u64>, address, u64)
B9:
64CopyLoc[0](Arg0: &mut PackSupply)
65ImmBorrowField[4](PackSupply.whitelist_packs_sold: u64)
66ReadRef
67MoveLoc[3](Arg3: u64)
68Add
69CopyLoc[0](Arg0: &mut PackSupply)
70MutBorrowField[4](PackSupply.whitelist_packs_sold: u64)
71WriteRef
72CopyLoc[0](Arg0: &mut PackSupply)
73ImmBorrowField[4](PackSupply.whitelist_packs_sold: u64)
74ReadRef
75LdConst[38](u64: 575)
76Ge
77BrFalse(92)
B10:
78LdFalse
79CopyLoc[0](Arg0: &mut PackSupply)
80MutBorrowField[5](PackSupply.whitelist_phase_active: bool)
81WriteRef
82MoveLoc[6](loc1: u64)
83CopyLoc[0](Arg0: &mut PackSupply)
84ImmBorrowField[4](PackSupply.whitelist_packs_sold: u64)
85ReadRef
86MoveLoc[0](Arg0: &mut PackSupply)
87ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
88ReadRef
89Pack[15](WhitelistPhaseEnded)
90Call event::emit<WhitelistPhaseEnded>(WhitelistPhaseEnded)
91Branch(97)
B11:
92MoveLoc[0](Arg0: &mut PackSupply)
93Pop
94Branch(97)
B12:
95MoveLoc[0](Arg0: &mut PackSupply)
96Pop
B13:
97Ret
}
 
check_genesis_batch_completion(Arg0: &mut PackSupply, Arg1: &Clock) {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0CopyLoc[0](Arg0: &mut PackSupply)
1ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
2ReadRef
3Not
4BrFalse(10)
B1:
5MoveLoc[0](Arg0: &mut PackSupply)
6Pop
7MoveLoc[1](Arg1: &Clock)
8Pop
9Ret
B2:
10CopyLoc[0](Arg0: &mut PackSupply)
11ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
12ReadRef
13LdU64(0)
14Eq
15BrFalse(91)
B3:
16MoveLoc[1](Arg1: &Clock)
17Call clock::timestamp_ms(&Clock): u64
18StLoc[4](loc2: u64)
19LdFalse
20CopyLoc[0](Arg0: &mut PackSupply)
21MutBorrowField[1](PackSupply.is_genesis_batch: bool)
22WriteRef
23LdFalse
24CopyLoc[0](Arg0: &mut PackSupply)
25MutBorrowField[5](PackSupply.whitelist_phase_active: bool)
26WriteRef
27LdTrue
28CopyLoc[0](Arg0: &mut PackSupply)
29MutBorrowField[23](PackSupply.in_cooldown: bool)
30WriteRef
31CopyLoc[4](loc2: u64)
32CopyLoc[0](Arg0: &mut PackSupply)
33MutBorrowField[24](PackSupply.last_sellout_time: u64)
34WriteRef
35CopyLoc[0](Arg0: &mut PackSupply)
36ImmBorrowField[25](PackSupply.id: UID)
37LdConst[41](vector<u8>: "coo..)
38Call dynamic_field::exists_<vector<u8>>(&UID, vector<u8>): bool
39BrFalse(47)
B4:
40CopyLoc[0](Arg0: &mut PackSupply)
41ImmBorrowField[25](PackSupply.id: UID)
42LdConst[41](vector<u8>: "coo..)
43Call dynamic_field::borrow<vector<u8>, u64>(&UID, vector<u8>): &u64
44ReadRef
45StLoc[2](loc0: u64)
46Branch(49)
B5:
47LdConst[36](u64: 8640..)
48StLoc[2](loc0: u64)
B6:
49MoveLoc[2](loc0: u64)
50StLoc[3](loc1: u64)
51CopyLoc[4](loc2: u64)
52MoveLoc[3](loc1: u64)
53Add
54CopyLoc[0](Arg0: &mut PackSupply)
55MutBorrowField[26](PackSupply.cooldown_end_time: u64)
56WriteRef
57LdU64(1)
58CopyLoc[0](Arg0: &mut PackSupply)
59MutBorrowField[7](PackSupply.current_batch_number: u64)
60WriteRef
61LdU64(0)
62CopyLoc[0](Arg0: &mut PackSupply)
63MutBorrowField[8](PackSupply.display_batch_number: u64)
64WriteRef
65LdTrue
66CopyLoc[0](Arg0: &mut PackSupply)
67MutBorrowField[9](PackSupply.previous_batch_completed: bool)
68WriteRef
69CopyLoc[4](loc2: u64)
70LdConst[37](u64: 600)
71Pack[16](GenesisBatchCompleted)
72Call event::emit<GenesisBatchCompleted>(GenesisBatchCompleted)
73LdU64(0)
74LdU64(1)
75CopyLoc[0](Arg0: &mut PackSupply)
76ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
77ReadRef
78CopyLoc[0](Arg0: &mut PackSupply)
79ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
80ReadRef
81Pack[26](LastMintOfBatch)
82Call event::emit<LastMintOfBatch>(LastMintOfBatch)
83LdU64(0)
84MoveLoc[4](loc2: u64)
85MoveLoc[0](Arg0: &mut PackSupply)
86ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
87ReadRef
88Pack[23](CooldownStarted)
89Call event::emit<CooldownStarted>(CooldownStarted)
90Branch(95)
B7:
91MoveLoc[0](Arg0: &mut PackSupply)
92Pop
93MoveLoc[1](Arg1: &Clock)
94Pop
B8:
95Ret
}
 
entry public hatch_basic_egg(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &ReferralRegistry, Arg6: &mut GlobalStats, Arg7: &mut UserStatsRegistry, Arg8: &mut SharedTreasury, Arg9: &mut Kiosk, Arg10: &KioskOwnerCap, Arg11: &TransferPolicy<DuckNFT>, Arg12: Coin<SHTTOKEN>, Arg13: Coin<SUI>, Arg14: u64, Arg15: &Random, Arg16: &Clock, Arg17: &mut TxContext) {
L18: loc0: bool
L19: loc1: u64
L20: loc2: u64
L21: loc3: Coin<SHTTOKEN>
L22: loc4: address
L23: loc5: u64
L24: loc6: u64
L25: loc7: u64
L26: loc8: DuckNFT
L27: loc9: u8
L28: loc10: address
L29: loc11: Option<address>
L30: loc12: u64
L31: loc13: Coin<SHTTOKEN>
L32: loc14: Coin<SHTTOKEN>
L33: loc15: u64
L34: loc16: Coin<SUI>
L35: loc17: u64
L36: loc18: u64
L37: loc19: Coin<SHTTOKEN>
L38: loc20: Coin<SHTTOKEN>
L39: loc21: u64
L40: loc22: Coin<SHTTOKEN>
B0:
0CopyLoc[16](Arg16: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[23](loc5: u64)
3CopyLoc[17](Arg17: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[22](loc4: address)
7MoveLoc[5](Arg5: &ReferralRegistry)
8CopyLoc[22](loc4: address)
9Call get_referrer(&ReferralRegistry, address): Option<address>
10StLoc[29](loc11: Option<address>)
11CopyLoc[1](Arg1: &mut PackSupply)
12ImmBorrowField[0](PackSupply.start_time: u64)
13ReadRef
14LdU64(0)
15Gt
16BrFalse(24)
B1:
17CopyLoc[23](loc5: u64)
18CopyLoc[1](Arg1: &mut PackSupply)
19ImmBorrowField[0](PackSupply.start_time: u64)
20ReadRef
21Ge
22StLoc[18](loc0: bool)
23Branch(26)
B2:
24LdFalse
25StLoc[18](loc0: bool)
B3:
26MoveLoc[18](loc0: bool)
27BrFalse(29)
B4:
28Branch(55)
B5:
29MoveLoc[7](Arg7: &mut UserStatsRegistry)
30Pop
31MoveLoc[10](Arg10: &KioskOwnerCap)
32Pop
33MoveLoc[9](Arg9: &mut Kiosk)
34Pop
35MoveLoc[4](Arg4: &TreasuryConfig)
36Pop
37MoveLoc[8](Arg8: &mut SharedTreasury)
38Pop
39MoveLoc[15](Arg15: &Random)
40Pop
41MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
42Pop
43MoveLoc[2](Arg2: &mut PerTypeSupply)
44Pop
45MoveLoc[1](Arg1: &mut PackSupply)
46Pop
47MoveLoc[6](Arg6: &mut GlobalStats)
48Pop
49MoveLoc[17](Arg17: &mut TxContext)
50Pop
51MoveLoc[16](Arg16: &Clock)
52Pop
53LdConst[4](u64: 5)
54Abort
B6:
55CopyLoc[1](Arg1: &mut PackSupply)
56ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
57ReadRef
58Not
59BrFalse(61)
B7:
60Branch(87)
B8:
61MoveLoc[7](Arg7: &mut UserStatsRegistry)
62Pop
63MoveLoc[10](Arg10: &KioskOwnerCap)
64Pop
65MoveLoc[9](Arg9: &mut Kiosk)
66Pop
67MoveLoc[4](Arg4: &TreasuryConfig)
68Pop
69MoveLoc[8](Arg8: &mut SharedTreasury)
70Pop
71MoveLoc[15](Arg15: &Random)
72Pop
73MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
74Pop
75MoveLoc[2](Arg2: &mut PerTypeSupply)
76Pop
77MoveLoc[1](Arg1: &mut PackSupply)
78Pop
79MoveLoc[6](Arg6: &mut GlobalStats)
80Pop
81MoveLoc[17](Arg17: &mut TxContext)
82Pop
83MoveLoc[16](Arg16: &Clock)
84Pop
85LdConst[11](u64: 12)
86Abort
B9:
87CopyLoc[1](Arg1: &mut PackSupply)
88CopyLoc[2](Arg2: &mut PerTypeSupply)
89CopyLoc[16](Arg16: &Clock)
90Call check_and_start_new_batch_if_ready(&mut PackSupply, &mut PerTypeSupply, &Clock)
91CopyLoc[1](Arg1: &mut PackSupply)
92ImmBorrowField[23](PackSupply.in_cooldown: bool)
93ReadRef
94Not
95BrFalse(97)
B10:
96Branch(123)
B11:
97MoveLoc[7](Arg7: &mut UserStatsRegistry)
98Pop
99MoveLoc[10](Arg10: &KioskOwnerCap)
100Pop
101MoveLoc[9](Arg9: &mut Kiosk)
102Pop
103MoveLoc[4](Arg4: &TreasuryConfig)
104Pop
105MoveLoc[8](Arg8: &mut SharedTreasury)
106Pop
107MoveLoc[15](Arg15: &Random)
108Pop
109MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
110Pop
111MoveLoc[2](Arg2: &mut PerTypeSupply)
112Pop
113MoveLoc[1](Arg1: &mut PackSupply)
114Pop
115MoveLoc[6](Arg6: &mut GlobalStats)
116Pop
117MoveLoc[17](Arg17: &mut TxContext)
118Pop
119MoveLoc[16](Arg16: &Clock)
120Pop
121LdConst[12](u64: 13)
122Abort
B12:
123CopyLoc[1](Arg1: &mut PackSupply)
124LdFalse
125CopyLoc[22](loc4: address)
126CopyLoc[14](Arg14: u64)
127CopyLoc[23](loc5: u64)
128Call enforce_public_rate_limit(&mut PackSupply, bool, address, u64, u64)
129CopyLoc[1](Arg1: &mut PackSupply)
130ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
131ReadRef
132CopyLoc[14](Arg14: u64)
133Ge
134BrFalse(136)
B13:
135Branch(162)
B14:
136MoveLoc[7](Arg7: &mut UserStatsRegistry)
137Pop
138MoveLoc[10](Arg10: &KioskOwnerCap)
139Pop
140MoveLoc[9](Arg9: &mut Kiosk)
141Pop
142MoveLoc[4](Arg4: &TreasuryConfig)
143Pop
144MoveLoc[8](Arg8: &mut SharedTreasury)
145Pop
146MoveLoc[15](Arg15: &Random)
147Pop
148MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
149Pop
150MoveLoc[2](Arg2: &mut PerTypeSupply)
151Pop
152MoveLoc[1](Arg1: &mut PackSupply)
153Pop
154MoveLoc[6](Arg6: &mut GlobalStats)
155Pop
156MoveLoc[17](Arg17: &mut TxContext)
157Pop
158MoveLoc[16](Arg16: &Clock)
159Pop
160LdConst[2](u64: 3)
161Abort
B15:
162CopyLoc[2](Arg2: &mut PerTypeSupply)
163ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
164ReadRef
165LdU64(0)
166Gt
167BrFalse(201)
B16:
168CopyLoc[2](Arg2: &mut PerTypeSupply)
169ImmBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
170ReadRef
171CopyLoc[14](Arg14: u64)
172Ge
173BrFalse(175)
B17:
174Branch(201)
B18:
175MoveLoc[7](Arg7: &mut UserStatsRegistry)
176Pop
177MoveLoc[10](Arg10: &KioskOwnerCap)
178Pop
179MoveLoc[9](Arg9: &mut Kiosk)
180Pop
181MoveLoc[4](Arg4: &TreasuryConfig)
182Pop
183MoveLoc[8](Arg8: &mut SharedTreasury)
184Pop
185MoveLoc[15](Arg15: &Random)
186Pop
187MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
188Pop
189MoveLoc[2](Arg2: &mut PerTypeSupply)
190Pop
191MoveLoc[1](Arg1: &mut PackSupply)
192Pop
193MoveLoc[6](Arg6: &mut GlobalStats)
194Pop
195MoveLoc[17](Arg17: &mut TxContext)
196Pop
197MoveLoc[16](Arg16: &Clock)
198Pop
199LdConst[17](u64: 18)
200Abort
B19:
201CopyLoc[1](Arg1: &mut PackSupply)
202ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
203ReadRef
204CopyLoc[14](Arg14: u64)
205Add
206LdConst[34](u64: 5555)
207Le
208BrFalse(210)
B20:
209Branch(236)
B21:
210MoveLoc[7](Arg7: &mut UserStatsRegistry)
211Pop
212MoveLoc[10](Arg10: &KioskOwnerCap)
213Pop
214MoveLoc[9](Arg9: &mut Kiosk)
215Pop
216MoveLoc[4](Arg4: &TreasuryConfig)
217Pop
218MoveLoc[8](Arg8: &mut SharedTreasury)
219Pop
220MoveLoc[15](Arg15: &Random)
221Pop
222MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
223Pop
224MoveLoc[2](Arg2: &mut PerTypeSupply)
225Pop
226MoveLoc[1](Arg1: &mut PackSupply)
227Pop
228MoveLoc[6](Arg6: &mut GlobalStats)
229Pop
230MoveLoc[17](Arg17: &mut TxContext)
231Pop
232MoveLoc[16](Arg16: &Clock)
233Pop
234LdConst[13](u64: 14)
235Abort
B22:
236CopyLoc[1](Arg1: &mut PackSupply)
237ImmBorrowField[27](PackSupply.basic_egg_sht_cost: u64)
238ReadRef
239StLoc[33](loc15: u64)
240CopyLoc[1](Arg1: &mut PackSupply)
241ImmBorrowField[28](PackSupply.basic_egg_sui_cost: u64)
242ReadRef
243StLoc[35](loc17: u64)
244CopyLoc[33](loc15: u64)
245CopyLoc[14](Arg14: u64)
246Mul
247StLoc[36](loc18: u64)
248CopyLoc[35](loc17: u64)
249CopyLoc[14](Arg14: u64)
250Mul
251StLoc[39](loc21: u64)
252ImmBorrowLoc[12](Arg12: Coin<SHTTOKEN>)
253Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
254CopyLoc[36](loc18: u64)
255Ge
256BrFalse(258)
B23:
257Branch(284)
B24:
258MoveLoc[7](Arg7: &mut UserStatsRegistry)
259Pop
260MoveLoc[10](Arg10: &KioskOwnerCap)
261Pop
262MoveLoc[9](Arg9: &mut Kiosk)
263Pop
264MoveLoc[4](Arg4: &TreasuryConfig)
265Pop
266MoveLoc[8](Arg8: &mut SharedTreasury)
267Pop
268MoveLoc[15](Arg15: &Random)
269Pop
270MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
271Pop
272MoveLoc[2](Arg2: &mut PerTypeSupply)
273Pop
274MoveLoc[1](Arg1: &mut PackSupply)
275Pop
276MoveLoc[6](Arg6: &mut GlobalStats)
277Pop
278MoveLoc[17](Arg17: &mut TxContext)
279Pop
280MoveLoc[16](Arg16: &Clock)
281Pop
282LdConst[0](u64: 1)
283Abort
B25:
284ImmBorrowLoc[13](Arg13: Coin<SUI>)
285Call coin::value<SUI>(&Coin<SUI>): u64
286CopyLoc[39](loc21: u64)
287Ge
288BrFalse(290)
B26:
289Branch(316)
B27:
290MoveLoc[7](Arg7: &mut UserStatsRegistry)
291Pop
292MoveLoc[10](Arg10: &KioskOwnerCap)
293Pop
294MoveLoc[9](Arg9: &mut Kiosk)
295Pop
296MoveLoc[4](Arg4: &TreasuryConfig)
297Pop
298MoveLoc[8](Arg8: &mut SharedTreasury)
299Pop
300MoveLoc[15](Arg15: &Random)
301Pop
302MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
303Pop
304MoveLoc[2](Arg2: &mut PerTypeSupply)
305Pop
306MoveLoc[1](Arg1: &mut PackSupply)
307Pop
308MoveLoc[6](Arg6: &mut GlobalStats)
309Pop
310MoveLoc[17](Arg17: &mut TxContext)
311Pop
312MoveLoc[16](Arg16: &Clock)
313Pop
314LdConst[1](u64: 2)
315Abort
B28:
316CopyLoc[1](Arg1: &mut PackSupply)
317ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
318ReadRef
319CopyLoc[14](Arg14: u64)
320Sub
321CopyLoc[1](Arg1: &mut PackSupply)
322MutBorrowField[3](PackSupply.total_packs_remaining: u64)
323WriteRef
324CopyLoc[2](Arg2: &mut PerTypeSupply)
325ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
326ReadRef
327LdU64(0)
328Gt
329BrFalse(338)
B29:
330CopyLoc[2](Arg2: &mut PerTypeSupply)
331ImmBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
332ReadRef
333CopyLoc[14](Arg14: u64)
334Sub
335CopyLoc[2](Arg2: &mut PerTypeSupply)
336MutBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
337WriteRef
B30:
338MoveLoc[12](Arg12: Coin<SHTTOKEN>)
339StLoc[32](loc14: Coin<SHTTOKEN>)
340MutBorrowLoc[32](loc14: Coin<SHTTOKEN>)
341CopyLoc[36](loc18: u64)
342CopyLoc[17](Arg17: &mut TxContext)
343Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
344StLoc[37](loc19: Coin<SHTTOKEN>)
345CopyLoc[36](loc18: u64)
346LdU64(80)
347Mul
348LdU64(100)
349Div
350StLoc[20](loc2: u64)
351CopyLoc[36](loc18: u64)
352LdU64(10)
353Mul
354LdU64(100)
355Div
356StLoc[30](loc12: u64)
357MoveLoc[36](loc18: u64)
358CopyLoc[20](loc2: u64)
359Sub
360CopyLoc[30](loc12: u64)
361Sub
362Pop
363MoveLoc[37](loc19: Coin<SHTTOKEN>)
364StLoc[38](loc20: Coin<SHTTOKEN>)
365MutBorrowLoc[38](loc20: Coin<SHTTOKEN>)
366CopyLoc[20](loc2: u64)
367CopyLoc[17](Arg17: &mut TxContext)
368Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
369StLoc[21](loc3: Coin<SHTTOKEN>)
370MutBorrowLoc[38](loc20: Coin<SHTTOKEN>)
371CopyLoc[30](loc12: u64)
372CopyLoc[17](Arg17: &mut TxContext)
373Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
374StLoc[31](loc13: Coin<SHTTOKEN>)
375MoveLoc[38](loc20: Coin<SHTTOKEN>)
376StLoc[40](loc22: Coin<SHTTOKEN>)
377MoveLoc[8](Arg8: &mut SharedTreasury)
378MoveLoc[21](loc3: Coin<SHTTOKEN>)
379Call shttoken::burn(&mut SharedTreasury, Coin<SHTTOKEN>)
380CopyLoc[6](Arg6: &mut GlobalStats)
381CopyLoc[20](loc2: u64)
382CopyLoc[16](Arg16: &Clock)
383Call update_burn_stats(&mut GlobalStats, u64, &Clock)
384MoveLoc[7](Arg7: &mut UserStatsRegistry)
385CopyLoc[22](loc4: address)
386MoveLoc[20](loc2: u64)
387CopyLoc[14](Arg14: u64)
388CopyLoc[16](Arg16: &Clock)
389Call update_user_pack_stats(&mut UserStatsRegistry, address, u64, u64, &Clock)
390ImmBorrowLoc[29](loc11: Option<address>)
391Call option::is_some<address>(&Option<address>): bool
392BrFalse(435)
B31:
393ImmBorrowLoc[29](loc11: Option<address>)
394Call option::borrow<address>(&Option<address>): &address
395ReadRef
396StLoc[28](loc10: address)
397CopyLoc[28](loc10: address)
398CopyLoc[22](loc4: address)
399Neq
400BrFalse(402)
B32:
401Branch(424)
B33:
402MoveLoc[10](Arg10: &KioskOwnerCap)
403Pop
404MoveLoc[9](Arg9: &mut Kiosk)
405Pop
406MoveLoc[4](Arg4: &TreasuryConfig)
407Pop
408MoveLoc[15](Arg15: &Random)
409Pop
410MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
411Pop
412MoveLoc[2](Arg2: &mut PerTypeSupply)
413Pop
414MoveLoc[1](Arg1: &mut PackSupply)
415Pop
416MoveLoc[6](Arg6: &mut GlobalStats)
417Pop
418MoveLoc[17](Arg17: &mut TxContext)
419Pop
420MoveLoc[16](Arg16: &Clock)
421Pop
422LdConst[8](u64: 9)
423Abort
B34:
424LdConst[24](u8: 0)
425MoveLoc[22](loc4: address)
426CopyLoc[28](loc10: address)
427MoveLoc[30](loc12: u64)
428MoveLoc[23](loc5: u64)
429Pack[20](ReferralReward)
430Call event::emit<ReferralReward>(ReferralReward)
431MoveLoc[31](loc13: Coin<SHTTOKEN>)
432MoveLoc[28](loc10: address)
433Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
434Branch(440)
B35:
435MoveLoc[31](loc13: Coin<SHTTOKEN>)
436CopyLoc[4](Arg4: &TreasuryConfig)
437ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
438ReadRef
439Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
B36:
440MoveLoc[40](loc22: Coin<SHTTOKEN>)
441CopyLoc[4](Arg4: &TreasuryConfig)
442ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
443ReadRef
444Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
445ImmBorrowLoc[32](loc14: Coin<SHTTOKEN>)
446Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
447LdU64(0)
448Gt
449BrFalse(456)
B37:
450MoveLoc[32](loc14: Coin<SHTTOKEN>)
451CopyLoc[17](Arg17: &mut TxContext)
452FreezeRef
453Call tx_context::sender(&TxContext): address
454Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
455Branch(458)
B38:
456MoveLoc[32](loc14: Coin<SHTTOKEN>)
457Call coin::destroy_zero<SHTTOKEN>(Coin<SHTTOKEN>)
B39:
458MoveLoc[13](Arg13: Coin<SUI>)
459StLoc[34](loc16: Coin<SUI>)
460MutBorrowLoc[34](loc16: Coin<SUI>)
461MoveLoc[39](loc21: u64)
462CopyLoc[17](Arg17: &mut TxContext)
463Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
464MoveLoc[4](Arg4: &TreasuryConfig)
465ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
466ReadRef
467Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
468ImmBorrowLoc[34](loc16: Coin<SUI>)
469Call coin::value<SUI>(&Coin<SUI>): u64
470LdU64(0)
471Gt
472BrFalse(479)
B40:
473MoveLoc[34](loc16: Coin<SUI>)
474CopyLoc[17](Arg17: &mut TxContext)
475FreezeRef
476Call tx_context::sender(&TxContext): address
477Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
478Branch(481)
B41:
479MoveLoc[34](loc16: Coin<SUI>)
480Call coin::destroy_zero<SUI>(Coin<SUI>)
B42:
481CopyLoc[1](Arg1: &mut PackSupply)
482ImmBorrowField[7](PackSupply.current_batch_number: u64)
483ReadRef
484StLoc[19](loc1: u64)
485LdU64(0)
486StLoc[24](loc6: u64)
B43:
487CopyLoc[24](loc6: u64)
488CopyLoc[14](Arg14: u64)
489Lt
490BrFalse(535)
B44:
491CopyLoc[1](Arg1: &mut PackSupply)
492ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
493ReadRef
494CopyLoc[24](loc6: u64)
495Add
496LdU64(1)
497Add
498StLoc[25](loc7: u64)
499CopyLoc[15](Arg15: &Random)
500CopyLoc[17](Arg17: &mut TxContext)
501Call roll_basic_egg_rarity(&Random, &mut TxContext): u8
502StLoc[27](loc9: u8)
503CopyLoc[27](loc9: u8)
504CopyLoc[19](loc1: u64)
505MoveLoc[25](loc7: u64)
506CopyLoc[16](Arg16: &Clock)
507CopyLoc[17](Arg17: &mut TxContext)
508Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
509StLoc[26](loc8: DuckNFT)
510CopyLoc[6](Arg6: &mut GlobalStats)
511CopyLoc[27](loc9: u8)
512Call update_rarity_stats(&mut GlobalStats, u8)
513LdConst[24](u8: 0)
514CopyLoc[17](Arg17: &mut TxContext)
515FreezeRef
516Call tx_context::sender(&TxContext): address
517CopyLoc[33](loc15: u64)
518CopyLoc[35](loc17: u64)
519MoveLoc[27](loc9: u8)
520CopyLoc[1](Arg1: &mut PackSupply)
521ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
522ReadRef
523Pack[10](PackPurchased)
524Call event::emit<PackPurchased>(PackPurchased)
525CopyLoc[9](Arg9: &mut Kiosk)
526CopyLoc[10](Arg10: &KioskOwnerCap)
527CopyLoc[11](Arg11: &TransferPolicy<DuckNFT>)
528MoveLoc[26](loc8: DuckNFT)
529Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
530MoveLoc[24](loc6: u64)
531LdU64(1)
532Add
533StLoc[24](loc6: u64)
534Branch(487)
B45:
535MoveLoc[10](Arg10: &KioskOwnerCap)
536Pop
537MoveLoc[9](Arg9: &mut Kiosk)
538Pop
539MoveLoc[15](Arg15: &Random)
540Pop
541MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
542Pop
543MoveLoc[6](Arg6: &mut GlobalStats)
544Pop
545MoveLoc[17](Arg17: &mut TxContext)
546Pop
547CopyLoc[1](Arg1: &mut PackSupply)
548ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
549ReadRef
550MoveLoc[14](Arg14: u64)
551Add
552CopyLoc[1](Arg1: &mut PackSupply)
553MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
554WriteRef
555CopyLoc[1](Arg1: &mut PackSupply)
556CopyLoc[16](Arg16: &Clock)
557Call check_genesis_batch_completion(&mut PackSupply, &Clock)
558CopyLoc[1](Arg1: &mut PackSupply)
559ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
560ReadRef
561Not
562BrFalse(568)
B46:
563MoveLoc[1](Arg1: &mut PackSupply)
564MoveLoc[2](Arg2: &mut PerTypeSupply)
565MoveLoc[16](Arg16: &Clock)
566Call start_cooldown_if_sold_out(&mut PackSupply, &mut PerTypeSupply, &Clock)
567Branch(574)
B47:
568MoveLoc[2](Arg2: &mut PerTypeSupply)
569Pop
570MoveLoc[1](Arg1: &mut PackSupply)
571Pop
572MoveLoc[16](Arg16: &Clock)
573Pop
B48:
574Ret
}
 
entry public hatch_rare_egg(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &ReferralRegistry, Arg6: &mut GlobalStats, Arg7: &mut UserStatsRegistry, Arg8: &mut SharedTreasury, Arg9: &mut Kiosk, Arg10: &KioskOwnerCap, Arg11: &TransferPolicy<DuckNFT>, Arg12: Coin<SHTTOKEN>, Arg13: Coin<SUI>, Arg14: u64, Arg15: &Random, Arg16: &Clock, Arg17: &mut TxContext) {
L18: loc0: bool
L19: loc1: u64
L20: loc2: u64
L21: loc3: Coin<SHTTOKEN>
L22: loc4: address
L23: loc5: u64
L24: loc6: u64
L25: loc7: u64
L26: loc8: DuckNFT
L27: loc9: u8
L28: loc10: address
L29: loc11: Option<address>
L30: loc12: u64
L31: loc13: Coin<SHTTOKEN>
L32: loc14: Coin<SHTTOKEN>
L33: loc15: u64
L34: loc16: Coin<SUI>
L35: loc17: u64
L36: loc18: u64
L37: loc19: Coin<SHTTOKEN>
L38: loc20: Coin<SHTTOKEN>
L39: loc21: u64
L40: loc22: Coin<SHTTOKEN>
B0:
0CopyLoc[16](Arg16: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[23](loc5: u64)
3CopyLoc[17](Arg17: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[22](loc4: address)
7MoveLoc[5](Arg5: &ReferralRegistry)
8CopyLoc[22](loc4: address)
9Call get_referrer(&ReferralRegistry, address): Option<address>
10StLoc[29](loc11: Option<address>)
11CopyLoc[1](Arg1: &mut PackSupply)
12ImmBorrowField[0](PackSupply.start_time: u64)
13ReadRef
14LdU64(0)
15Gt
16BrFalse(24)
B1:
17CopyLoc[23](loc5: u64)
18CopyLoc[1](Arg1: &mut PackSupply)
19ImmBorrowField[0](PackSupply.start_time: u64)
20ReadRef
21Ge
22StLoc[18](loc0: bool)
23Branch(26)
B2:
24LdFalse
25StLoc[18](loc0: bool)
B3:
26MoveLoc[18](loc0: bool)
27BrFalse(29)
B4:
28Branch(55)
B5:
29MoveLoc[7](Arg7: &mut UserStatsRegistry)
30Pop
31MoveLoc[10](Arg10: &KioskOwnerCap)
32Pop
33MoveLoc[9](Arg9: &mut Kiosk)
34Pop
35MoveLoc[4](Arg4: &TreasuryConfig)
36Pop
37MoveLoc[8](Arg8: &mut SharedTreasury)
38Pop
39MoveLoc[15](Arg15: &Random)
40Pop
41MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
42Pop
43MoveLoc[2](Arg2: &mut PerTypeSupply)
44Pop
45MoveLoc[1](Arg1: &mut PackSupply)
46Pop
47MoveLoc[6](Arg6: &mut GlobalStats)
48Pop
49MoveLoc[17](Arg17: &mut TxContext)
50Pop
51MoveLoc[16](Arg16: &Clock)
52Pop
53LdConst[4](u64: 5)
54Abort
B6:
55CopyLoc[1](Arg1: &mut PackSupply)
56ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
57ReadRef
58Not
59BrFalse(61)
B7:
60Branch(87)
B8:
61MoveLoc[7](Arg7: &mut UserStatsRegistry)
62Pop
63MoveLoc[10](Arg10: &KioskOwnerCap)
64Pop
65MoveLoc[9](Arg9: &mut Kiosk)
66Pop
67MoveLoc[4](Arg4: &TreasuryConfig)
68Pop
69MoveLoc[8](Arg8: &mut SharedTreasury)
70Pop
71MoveLoc[15](Arg15: &Random)
72Pop
73MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
74Pop
75MoveLoc[2](Arg2: &mut PerTypeSupply)
76Pop
77MoveLoc[1](Arg1: &mut PackSupply)
78Pop
79MoveLoc[6](Arg6: &mut GlobalStats)
80Pop
81MoveLoc[17](Arg17: &mut TxContext)
82Pop
83MoveLoc[16](Arg16: &Clock)
84Pop
85LdConst[11](u64: 12)
86Abort
B9:
87CopyLoc[1](Arg1: &mut PackSupply)
88CopyLoc[2](Arg2: &mut PerTypeSupply)
89CopyLoc[16](Arg16: &Clock)
90Call check_and_start_new_batch_if_ready(&mut PackSupply, &mut PerTypeSupply, &Clock)
91CopyLoc[1](Arg1: &mut PackSupply)
92ImmBorrowField[23](PackSupply.in_cooldown: bool)
93ReadRef
94Not
95BrFalse(97)
B10:
96Branch(123)
B11:
97MoveLoc[7](Arg7: &mut UserStatsRegistry)
98Pop
99MoveLoc[10](Arg10: &KioskOwnerCap)
100Pop
101MoveLoc[9](Arg9: &mut Kiosk)
102Pop
103MoveLoc[4](Arg4: &TreasuryConfig)
104Pop
105MoveLoc[8](Arg8: &mut SharedTreasury)
106Pop
107MoveLoc[15](Arg15: &Random)
108Pop
109MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
110Pop
111MoveLoc[2](Arg2: &mut PerTypeSupply)
112Pop
113MoveLoc[1](Arg1: &mut PackSupply)
114Pop
115MoveLoc[6](Arg6: &mut GlobalStats)
116Pop
117MoveLoc[17](Arg17: &mut TxContext)
118Pop
119MoveLoc[16](Arg16: &Clock)
120Pop
121LdConst[12](u64: 13)
122Abort
B12:
123CopyLoc[1](Arg1: &mut PackSupply)
124LdFalse
125CopyLoc[22](loc4: address)
126CopyLoc[14](Arg14: u64)
127CopyLoc[23](loc5: u64)
128Call enforce_public_rate_limit(&mut PackSupply, bool, address, u64, u64)
129CopyLoc[1](Arg1: &mut PackSupply)
130ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
131ReadRef
132CopyLoc[14](Arg14: u64)
133Ge
134BrFalse(136)
B13:
135Branch(162)
B14:
136MoveLoc[7](Arg7: &mut UserStatsRegistry)
137Pop
138MoveLoc[10](Arg10: &KioskOwnerCap)
139Pop
140MoveLoc[9](Arg9: &mut Kiosk)
141Pop
142MoveLoc[4](Arg4: &TreasuryConfig)
143Pop
144MoveLoc[8](Arg8: &mut SharedTreasury)
145Pop
146MoveLoc[15](Arg15: &Random)
147Pop
148MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
149Pop
150MoveLoc[2](Arg2: &mut PerTypeSupply)
151Pop
152MoveLoc[1](Arg1: &mut PackSupply)
153Pop
154MoveLoc[6](Arg6: &mut GlobalStats)
155Pop
156MoveLoc[17](Arg17: &mut TxContext)
157Pop
158MoveLoc[16](Arg16: &Clock)
159Pop
160LdConst[2](u64: 3)
161Abort
B15:
162CopyLoc[2](Arg2: &mut PerTypeSupply)
163ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
164ReadRef
165LdU64(0)
166Gt
167BrFalse(201)
B16:
168CopyLoc[2](Arg2: &mut PerTypeSupply)
169ImmBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
170ReadRef
171CopyLoc[14](Arg14: u64)
172Ge
173BrFalse(175)
B17:
174Branch(201)
B18:
175MoveLoc[7](Arg7: &mut UserStatsRegistry)
176Pop
177MoveLoc[10](Arg10: &KioskOwnerCap)
178Pop
179MoveLoc[9](Arg9: &mut Kiosk)
180Pop
181MoveLoc[4](Arg4: &TreasuryConfig)
182Pop
183MoveLoc[8](Arg8: &mut SharedTreasury)
184Pop
185MoveLoc[15](Arg15: &Random)
186Pop
187MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
188Pop
189MoveLoc[2](Arg2: &mut PerTypeSupply)
190Pop
191MoveLoc[1](Arg1: &mut PackSupply)
192Pop
193MoveLoc[6](Arg6: &mut GlobalStats)
194Pop
195MoveLoc[17](Arg17: &mut TxContext)
196Pop
197MoveLoc[16](Arg16: &Clock)
198Pop
199LdConst[17](u64: 18)
200Abort
B19:
201CopyLoc[1](Arg1: &mut PackSupply)
202ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
203ReadRef
204CopyLoc[14](Arg14: u64)
205Add
206LdConst[34](u64: 5555)
207Le
208BrFalse(210)
B20:
209Branch(236)
B21:
210MoveLoc[7](Arg7: &mut UserStatsRegistry)
211Pop
212MoveLoc[10](Arg10: &KioskOwnerCap)
213Pop
214MoveLoc[9](Arg9: &mut Kiosk)
215Pop
216MoveLoc[4](Arg4: &TreasuryConfig)
217Pop
218MoveLoc[8](Arg8: &mut SharedTreasury)
219Pop
220MoveLoc[15](Arg15: &Random)
221Pop
222MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
223Pop
224MoveLoc[2](Arg2: &mut PerTypeSupply)
225Pop
226MoveLoc[1](Arg1: &mut PackSupply)
227Pop
228MoveLoc[6](Arg6: &mut GlobalStats)
229Pop
230MoveLoc[17](Arg17: &mut TxContext)
231Pop
232MoveLoc[16](Arg16: &Clock)
233Pop
234LdConst[13](u64: 14)
235Abort
B22:
236CopyLoc[1](Arg1: &mut PackSupply)
237ImmBorrowField[30](PackSupply.rare_egg_sht_cost: u64)
238ReadRef
239StLoc[33](loc15: u64)
240CopyLoc[1](Arg1: &mut PackSupply)
241ImmBorrowField[31](PackSupply.rare_egg_sui_cost: u64)
242ReadRef
243StLoc[35](loc17: u64)
244CopyLoc[33](loc15: u64)
245CopyLoc[14](Arg14: u64)
246Mul
247StLoc[36](loc18: u64)
248CopyLoc[35](loc17: u64)
249CopyLoc[14](Arg14: u64)
250Mul
251StLoc[39](loc21: u64)
252ImmBorrowLoc[12](Arg12: Coin<SHTTOKEN>)
253Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
254CopyLoc[36](loc18: u64)
255Ge
256BrFalse(258)
B23:
257Branch(284)
B24:
258MoveLoc[7](Arg7: &mut UserStatsRegistry)
259Pop
260MoveLoc[10](Arg10: &KioskOwnerCap)
261Pop
262MoveLoc[9](Arg9: &mut Kiosk)
263Pop
264MoveLoc[4](Arg4: &TreasuryConfig)
265Pop
266MoveLoc[8](Arg8: &mut SharedTreasury)
267Pop
268MoveLoc[15](Arg15: &Random)
269Pop
270MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
271Pop
272MoveLoc[2](Arg2: &mut PerTypeSupply)
273Pop
274MoveLoc[1](Arg1: &mut PackSupply)
275Pop
276MoveLoc[6](Arg6: &mut GlobalStats)
277Pop
278MoveLoc[17](Arg17: &mut TxContext)
279Pop
280MoveLoc[16](Arg16: &Clock)
281Pop
282LdConst[0](u64: 1)
283Abort
B25:
284ImmBorrowLoc[13](Arg13: Coin<SUI>)
285Call coin::value<SUI>(&Coin<SUI>): u64
286CopyLoc[39](loc21: u64)
287Ge
288BrFalse(290)
B26:
289Branch(316)
B27:
290MoveLoc[7](Arg7: &mut UserStatsRegistry)
291Pop
292MoveLoc[10](Arg10: &KioskOwnerCap)
293Pop
294MoveLoc[9](Arg9: &mut Kiosk)
295Pop
296MoveLoc[4](Arg4: &TreasuryConfig)
297Pop
298MoveLoc[8](Arg8: &mut SharedTreasury)
299Pop
300MoveLoc[15](Arg15: &Random)
301Pop
302MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
303Pop
304MoveLoc[2](Arg2: &mut PerTypeSupply)
305Pop
306MoveLoc[1](Arg1: &mut PackSupply)
307Pop
308MoveLoc[6](Arg6: &mut GlobalStats)
309Pop
310MoveLoc[17](Arg17: &mut TxContext)
311Pop
312MoveLoc[16](Arg16: &Clock)
313Pop
314LdConst[1](u64: 2)
315Abort
B28:
316CopyLoc[1](Arg1: &mut PackSupply)
317ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
318ReadRef
319CopyLoc[14](Arg14: u64)
320Sub
321CopyLoc[1](Arg1: &mut PackSupply)
322MutBorrowField[3](PackSupply.total_packs_remaining: u64)
323WriteRef
324CopyLoc[2](Arg2: &mut PerTypeSupply)
325ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
326ReadRef
327LdU64(0)
328Gt
329BrFalse(338)
B29:
330CopyLoc[2](Arg2: &mut PerTypeSupply)
331ImmBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
332ReadRef
333CopyLoc[14](Arg14: u64)
334Sub
335CopyLoc[2](Arg2: &mut PerTypeSupply)
336MutBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
337WriteRef
B30:
338MoveLoc[12](Arg12: Coin<SHTTOKEN>)
339StLoc[32](loc14: Coin<SHTTOKEN>)
340MutBorrowLoc[32](loc14: Coin<SHTTOKEN>)
341CopyLoc[36](loc18: u64)
342CopyLoc[17](Arg17: &mut TxContext)
343Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
344StLoc[37](loc19: Coin<SHTTOKEN>)
345CopyLoc[36](loc18: u64)
346LdU64(80)
347Mul
348LdU64(100)
349Div
350StLoc[20](loc2: u64)
351CopyLoc[36](loc18: u64)
352LdU64(10)
353Mul
354LdU64(100)
355Div
356StLoc[30](loc12: u64)
357MoveLoc[36](loc18: u64)
358CopyLoc[20](loc2: u64)
359Sub
360CopyLoc[30](loc12: u64)
361Sub
362Pop
363MoveLoc[37](loc19: Coin<SHTTOKEN>)
364StLoc[38](loc20: Coin<SHTTOKEN>)
365MutBorrowLoc[38](loc20: Coin<SHTTOKEN>)
366CopyLoc[20](loc2: u64)
367CopyLoc[17](Arg17: &mut TxContext)
368Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
369StLoc[21](loc3: Coin<SHTTOKEN>)
370MutBorrowLoc[38](loc20: Coin<SHTTOKEN>)
371CopyLoc[30](loc12: u64)
372CopyLoc[17](Arg17: &mut TxContext)
373Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
374StLoc[31](loc13: Coin<SHTTOKEN>)
375MoveLoc[38](loc20: Coin<SHTTOKEN>)
376StLoc[40](loc22: Coin<SHTTOKEN>)
377MoveLoc[8](Arg8: &mut SharedTreasury)
378MoveLoc[21](loc3: Coin<SHTTOKEN>)
379Call shttoken::burn(&mut SharedTreasury, Coin<SHTTOKEN>)
380CopyLoc[6](Arg6: &mut GlobalStats)
381CopyLoc[20](loc2: u64)
382CopyLoc[16](Arg16: &Clock)
383Call update_burn_stats(&mut GlobalStats, u64, &Clock)
384MoveLoc[7](Arg7: &mut UserStatsRegistry)
385CopyLoc[22](loc4: address)
386MoveLoc[20](loc2: u64)
387CopyLoc[14](Arg14: u64)
388CopyLoc[16](Arg16: &Clock)
389Call update_user_pack_stats(&mut UserStatsRegistry, address, u64, u64, &Clock)
390ImmBorrowLoc[29](loc11: Option<address>)
391Call option::is_some<address>(&Option<address>): bool
392BrFalse(435)
B31:
393ImmBorrowLoc[29](loc11: Option<address>)
394Call option::borrow<address>(&Option<address>): &address
395ReadRef
396StLoc[28](loc10: address)
397CopyLoc[28](loc10: address)
398CopyLoc[22](loc4: address)
399Neq
400BrFalse(402)
B32:
401Branch(424)
B33:
402MoveLoc[10](Arg10: &KioskOwnerCap)
403Pop
404MoveLoc[9](Arg9: &mut Kiosk)
405Pop
406MoveLoc[4](Arg4: &TreasuryConfig)
407Pop
408MoveLoc[15](Arg15: &Random)
409Pop
410MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
411Pop
412MoveLoc[2](Arg2: &mut PerTypeSupply)
413Pop
414MoveLoc[1](Arg1: &mut PackSupply)
415Pop
416MoveLoc[6](Arg6: &mut GlobalStats)
417Pop
418MoveLoc[17](Arg17: &mut TxContext)
419Pop
420MoveLoc[16](Arg16: &Clock)
421Pop
422LdConst[8](u64: 9)
423Abort
B34:
424LdConst[25](u8: 1)
425MoveLoc[22](loc4: address)
426CopyLoc[28](loc10: address)
427MoveLoc[30](loc12: u64)
428MoveLoc[23](loc5: u64)
429Pack[20](ReferralReward)
430Call event::emit<ReferralReward>(ReferralReward)
431MoveLoc[31](loc13: Coin<SHTTOKEN>)
432MoveLoc[28](loc10: address)
433Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
434Branch(440)
B35:
435MoveLoc[31](loc13: Coin<SHTTOKEN>)
436CopyLoc[4](Arg4: &TreasuryConfig)
437ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
438ReadRef
439Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
B36:
440MoveLoc[40](loc22: Coin<SHTTOKEN>)
441CopyLoc[4](Arg4: &TreasuryConfig)
442ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
443ReadRef
444Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
445ImmBorrowLoc[32](loc14: Coin<SHTTOKEN>)
446Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
447LdU64(0)
448Gt
449BrFalse(456)
B37:
450MoveLoc[32](loc14: Coin<SHTTOKEN>)
451CopyLoc[17](Arg17: &mut TxContext)
452FreezeRef
453Call tx_context::sender(&TxContext): address
454Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
455Branch(458)
B38:
456MoveLoc[32](loc14: Coin<SHTTOKEN>)
457Call coin::destroy_zero<SHTTOKEN>(Coin<SHTTOKEN>)
B39:
458MoveLoc[13](Arg13: Coin<SUI>)
459StLoc[34](loc16: Coin<SUI>)
460MutBorrowLoc[34](loc16: Coin<SUI>)
461MoveLoc[39](loc21: u64)
462CopyLoc[17](Arg17: &mut TxContext)
463Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
464MoveLoc[4](Arg4: &TreasuryConfig)
465ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
466ReadRef
467Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
468ImmBorrowLoc[34](loc16: Coin<SUI>)
469Call coin::value<SUI>(&Coin<SUI>): u64
470LdU64(0)
471Gt
472BrFalse(479)
B40:
473MoveLoc[34](loc16: Coin<SUI>)
474CopyLoc[17](Arg17: &mut TxContext)
475FreezeRef
476Call tx_context::sender(&TxContext): address
477Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
478Branch(481)
B41:
479MoveLoc[34](loc16: Coin<SUI>)
480Call coin::destroy_zero<SUI>(Coin<SUI>)
B42:
481CopyLoc[1](Arg1: &mut PackSupply)
482ImmBorrowField[7](PackSupply.current_batch_number: u64)
483ReadRef
484StLoc[19](loc1: u64)
485LdU64(0)
486StLoc[24](loc6: u64)
B43:
487CopyLoc[24](loc6: u64)
488CopyLoc[14](Arg14: u64)
489Lt
490BrFalse(535)
B44:
491CopyLoc[1](Arg1: &mut PackSupply)
492ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
493ReadRef
494CopyLoc[24](loc6: u64)
495Add
496LdU64(1)
497Add
498StLoc[25](loc7: u64)
499CopyLoc[15](Arg15: &Random)
500CopyLoc[17](Arg17: &mut TxContext)
501Call roll_rare_egg_rarity(&Random, &mut TxContext): u8
502StLoc[27](loc9: u8)
503CopyLoc[27](loc9: u8)
504CopyLoc[19](loc1: u64)
505MoveLoc[25](loc7: u64)
506CopyLoc[16](Arg16: &Clock)
507CopyLoc[17](Arg17: &mut TxContext)
508Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
509StLoc[26](loc8: DuckNFT)
510CopyLoc[6](Arg6: &mut GlobalStats)
511CopyLoc[27](loc9: u8)
512Call update_rarity_stats(&mut GlobalStats, u8)
513LdConst[25](u8: 1)
514CopyLoc[17](Arg17: &mut TxContext)
515FreezeRef
516Call tx_context::sender(&TxContext): address
517CopyLoc[33](loc15: u64)
518CopyLoc[35](loc17: u64)
519MoveLoc[27](loc9: u8)
520CopyLoc[1](Arg1: &mut PackSupply)
521ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
522ReadRef
523Pack[10](PackPurchased)
524Call event::emit<PackPurchased>(PackPurchased)
525CopyLoc[9](Arg9: &mut Kiosk)
526CopyLoc[10](Arg10: &KioskOwnerCap)
527CopyLoc[11](Arg11: &TransferPolicy<DuckNFT>)
528MoveLoc[26](loc8: DuckNFT)
529Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
530MoveLoc[24](loc6: u64)
531LdU64(1)
532Add
533StLoc[24](loc6: u64)
534Branch(487)
B45:
535MoveLoc[10](Arg10: &KioskOwnerCap)
536Pop
537MoveLoc[9](Arg9: &mut Kiosk)
538Pop
539MoveLoc[15](Arg15: &Random)
540Pop
541MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
542Pop
543MoveLoc[6](Arg6: &mut GlobalStats)
544Pop
545MoveLoc[17](Arg17: &mut TxContext)
546Pop
547CopyLoc[1](Arg1: &mut PackSupply)
548ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
549ReadRef
550MoveLoc[14](Arg14: u64)
551Add
552CopyLoc[1](Arg1: &mut PackSupply)
553MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
554WriteRef
555CopyLoc[1](Arg1: &mut PackSupply)
556CopyLoc[16](Arg16: &Clock)
557Call check_genesis_batch_completion(&mut PackSupply, &Clock)
558CopyLoc[1](Arg1: &mut PackSupply)
559ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
560ReadRef
561Not
562BrFalse(568)
B46:
563MoveLoc[1](Arg1: &mut PackSupply)
564MoveLoc[2](Arg2: &mut PerTypeSupply)
565MoveLoc[16](Arg16: &Clock)
566Call start_cooldown_if_sold_out(&mut PackSupply, &mut PerTypeSupply, &Clock)
567Branch(574)
B47:
568MoveLoc[2](Arg2: &mut PerTypeSupply)
569Pop
570MoveLoc[1](Arg1: &mut PackSupply)
571Pop
572MoveLoc[16](Arg16: &Clock)
573Pop
B48:
574Ret
}
 
entry public hatch_golden_egg(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &ReferralRegistry, Arg6: &mut GlobalStats, Arg7: &mut UserStatsRegistry, Arg8: &mut SharedTreasury, Arg9: &mut Kiosk, Arg10: &KioskOwnerCap, Arg11: &TransferPolicy<DuckNFT>, Arg12: Coin<SHTTOKEN>, Arg13: Coin<SUI>, Arg14: u64, Arg15: &Random, Arg16: &Clock, Arg17: &mut TxContext) {
L18: loc0: bool
L19: loc1: u64
L20: loc2: u64
L21: loc3: Coin<SHTTOKEN>
L22: loc4: address
L23: loc5: u64
L24: loc6: u64
L25: loc7: u64
L26: loc8: DuckNFT
L27: loc9: u8
L28: loc10: address
L29: loc11: Option<address>
L30: loc12: u64
L31: loc13: Coin<SHTTOKEN>
L32: loc14: Coin<SHTTOKEN>
L33: loc15: u64
L34: loc16: Coin<SUI>
L35: loc17: u64
L36: loc18: u64
L37: loc19: Coin<SHTTOKEN>
L38: loc20: Coin<SHTTOKEN>
L39: loc21: u64
L40: loc22: Coin<SHTTOKEN>
B0:
0CopyLoc[16](Arg16: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[23](loc5: u64)
3CopyLoc[17](Arg17: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[22](loc4: address)
7MoveLoc[5](Arg5: &ReferralRegistry)
8CopyLoc[22](loc4: address)
9Call get_referrer(&ReferralRegistry, address): Option<address>
10StLoc[29](loc11: Option<address>)
11CopyLoc[1](Arg1: &mut PackSupply)
12ImmBorrowField[0](PackSupply.start_time: u64)
13ReadRef
14LdU64(0)
15Gt
16BrFalse(24)
B1:
17CopyLoc[23](loc5: u64)
18CopyLoc[1](Arg1: &mut PackSupply)
19ImmBorrowField[0](PackSupply.start_time: u64)
20ReadRef
21Ge
22StLoc[18](loc0: bool)
23Branch(26)
B2:
24LdFalse
25StLoc[18](loc0: bool)
B3:
26MoveLoc[18](loc0: bool)
27BrFalse(29)
B4:
28Branch(55)
B5:
29MoveLoc[7](Arg7: &mut UserStatsRegistry)
30Pop
31MoveLoc[10](Arg10: &KioskOwnerCap)
32Pop
33MoveLoc[9](Arg9: &mut Kiosk)
34Pop
35MoveLoc[4](Arg4: &TreasuryConfig)
36Pop
37MoveLoc[8](Arg8: &mut SharedTreasury)
38Pop
39MoveLoc[15](Arg15: &Random)
40Pop
41MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
42Pop
43MoveLoc[2](Arg2: &mut PerTypeSupply)
44Pop
45MoveLoc[1](Arg1: &mut PackSupply)
46Pop
47MoveLoc[6](Arg6: &mut GlobalStats)
48Pop
49MoveLoc[17](Arg17: &mut TxContext)
50Pop
51MoveLoc[16](Arg16: &Clock)
52Pop
53LdConst[4](u64: 5)
54Abort
B6:
55CopyLoc[1](Arg1: &mut PackSupply)
56ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
57ReadRef
58Not
59BrFalse(61)
B7:
60Branch(87)
B8:
61MoveLoc[7](Arg7: &mut UserStatsRegistry)
62Pop
63MoveLoc[10](Arg10: &KioskOwnerCap)
64Pop
65MoveLoc[9](Arg9: &mut Kiosk)
66Pop
67MoveLoc[4](Arg4: &TreasuryConfig)
68Pop
69MoveLoc[8](Arg8: &mut SharedTreasury)
70Pop
71MoveLoc[15](Arg15: &Random)
72Pop
73MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
74Pop
75MoveLoc[2](Arg2: &mut PerTypeSupply)
76Pop
77MoveLoc[1](Arg1: &mut PackSupply)
78Pop
79MoveLoc[6](Arg6: &mut GlobalStats)
80Pop
81MoveLoc[17](Arg17: &mut TxContext)
82Pop
83MoveLoc[16](Arg16: &Clock)
84Pop
85LdConst[11](u64: 12)
86Abort
B9:
87CopyLoc[1](Arg1: &mut PackSupply)
88CopyLoc[2](Arg2: &mut PerTypeSupply)
89CopyLoc[16](Arg16: &Clock)
90Call check_and_start_new_batch_if_ready(&mut PackSupply, &mut PerTypeSupply, &Clock)
91CopyLoc[1](Arg1: &mut PackSupply)
92ImmBorrowField[23](PackSupply.in_cooldown: bool)
93ReadRef
94Not
95BrFalse(97)
B10:
96Branch(123)
B11:
97MoveLoc[7](Arg7: &mut UserStatsRegistry)
98Pop
99MoveLoc[10](Arg10: &KioskOwnerCap)
100Pop
101MoveLoc[9](Arg9: &mut Kiosk)
102Pop
103MoveLoc[4](Arg4: &TreasuryConfig)
104Pop
105MoveLoc[8](Arg8: &mut SharedTreasury)
106Pop
107MoveLoc[15](Arg15: &Random)
108Pop
109MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
110Pop
111MoveLoc[2](Arg2: &mut PerTypeSupply)
112Pop
113MoveLoc[1](Arg1: &mut PackSupply)
114Pop
115MoveLoc[6](Arg6: &mut GlobalStats)
116Pop
117MoveLoc[17](Arg17: &mut TxContext)
118Pop
119MoveLoc[16](Arg16: &Clock)
120Pop
121LdConst[12](u64: 13)
122Abort
B12:
123CopyLoc[1](Arg1: &mut PackSupply)
124LdFalse
125CopyLoc[22](loc4: address)
126CopyLoc[14](Arg14: u64)
127CopyLoc[23](loc5: u64)
128Call enforce_public_rate_limit(&mut PackSupply, bool, address, u64, u64)
129CopyLoc[1](Arg1: &mut PackSupply)
130ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
131ReadRef
132CopyLoc[14](Arg14: u64)
133Ge
134BrFalse(136)
B13:
135Branch(162)
B14:
136MoveLoc[7](Arg7: &mut UserStatsRegistry)
137Pop
138MoveLoc[10](Arg10: &KioskOwnerCap)
139Pop
140MoveLoc[9](Arg9: &mut Kiosk)
141Pop
142MoveLoc[4](Arg4: &TreasuryConfig)
143Pop
144MoveLoc[8](Arg8: &mut SharedTreasury)
145Pop
146MoveLoc[15](Arg15: &Random)
147Pop
148MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
149Pop
150MoveLoc[2](Arg2: &mut PerTypeSupply)
151Pop
152MoveLoc[1](Arg1: &mut PackSupply)
153Pop
154MoveLoc[6](Arg6: &mut GlobalStats)
155Pop
156MoveLoc[17](Arg17: &mut TxContext)
157Pop
158MoveLoc[16](Arg16: &Clock)
159Pop
160LdConst[2](u64: 3)
161Abort
B15:
162CopyLoc[2](Arg2: &mut PerTypeSupply)
163ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
164ReadRef
165LdU64(0)
166Gt
167BrFalse(201)
B16:
168CopyLoc[2](Arg2: &mut PerTypeSupply)
169ImmBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
170ReadRef
171CopyLoc[14](Arg14: u64)
172Ge
173BrFalse(175)
B17:
174Branch(201)
B18:
175MoveLoc[7](Arg7: &mut UserStatsRegistry)
176Pop
177MoveLoc[10](Arg10: &KioskOwnerCap)
178Pop
179MoveLoc[9](Arg9: &mut Kiosk)
180Pop
181MoveLoc[4](Arg4: &TreasuryConfig)
182Pop
183MoveLoc[8](Arg8: &mut SharedTreasury)
184Pop
185MoveLoc[15](Arg15: &Random)
186Pop
187MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
188Pop
189MoveLoc[2](Arg2: &mut PerTypeSupply)
190Pop
191MoveLoc[1](Arg1: &mut PackSupply)
192Pop
193MoveLoc[6](Arg6: &mut GlobalStats)
194Pop
195MoveLoc[17](Arg17: &mut TxContext)
196Pop
197MoveLoc[16](Arg16: &Clock)
198Pop
199LdConst[17](u64: 18)
200Abort
B19:
201CopyLoc[1](Arg1: &mut PackSupply)
202ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
203ReadRef
204CopyLoc[14](Arg14: u64)
205Add
206LdConst[34](u64: 5555)
207Le
208BrFalse(210)
B20:
209Branch(236)
B21:
210MoveLoc[7](Arg7: &mut UserStatsRegistry)
211Pop
212MoveLoc[10](Arg10: &KioskOwnerCap)
213Pop
214MoveLoc[9](Arg9: &mut Kiosk)
215Pop
216MoveLoc[4](Arg4: &TreasuryConfig)
217Pop
218MoveLoc[8](Arg8: &mut SharedTreasury)
219Pop
220MoveLoc[15](Arg15: &Random)
221Pop
222MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
223Pop
224MoveLoc[2](Arg2: &mut PerTypeSupply)
225Pop
226MoveLoc[1](Arg1: &mut PackSupply)
227Pop
228MoveLoc[6](Arg6: &mut GlobalStats)
229Pop
230MoveLoc[17](Arg17: &mut TxContext)
231Pop
232MoveLoc[16](Arg16: &Clock)
233Pop
234LdConst[13](u64: 14)
235Abort
B22:
236CopyLoc[1](Arg1: &mut PackSupply)
237ImmBorrowField[32](PackSupply.golden_egg_sht_cost: u64)
238ReadRef
239StLoc[33](loc15: u64)
240CopyLoc[1](Arg1: &mut PackSupply)
241ImmBorrowField[33](PackSupply.golden_egg_sui_cost: u64)
242ReadRef
243StLoc[35](loc17: u64)
244CopyLoc[33](loc15: u64)
245CopyLoc[14](Arg14: u64)
246Mul
247StLoc[36](loc18: u64)
248CopyLoc[35](loc17: u64)
249CopyLoc[14](Arg14: u64)
250Mul
251StLoc[39](loc21: u64)
252ImmBorrowLoc[12](Arg12: Coin<SHTTOKEN>)
253Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
254CopyLoc[36](loc18: u64)
255Ge
256BrFalse(258)
B23:
257Branch(284)
B24:
258MoveLoc[7](Arg7: &mut UserStatsRegistry)
259Pop
260MoveLoc[10](Arg10: &KioskOwnerCap)
261Pop
262MoveLoc[9](Arg9: &mut Kiosk)
263Pop
264MoveLoc[4](Arg4: &TreasuryConfig)
265Pop
266MoveLoc[8](Arg8: &mut SharedTreasury)
267Pop
268MoveLoc[15](Arg15: &Random)
269Pop
270MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
271Pop
272MoveLoc[2](Arg2: &mut PerTypeSupply)
273Pop
274MoveLoc[1](Arg1: &mut PackSupply)
275Pop
276MoveLoc[6](Arg6: &mut GlobalStats)
277Pop
278MoveLoc[17](Arg17: &mut TxContext)
279Pop
280MoveLoc[16](Arg16: &Clock)
281Pop
282LdConst[0](u64: 1)
283Abort
B25:
284ImmBorrowLoc[13](Arg13: Coin<SUI>)
285Call coin::value<SUI>(&Coin<SUI>): u64
286CopyLoc[39](loc21: u64)
287Ge
288BrFalse(290)
B26:
289Branch(316)
B27:
290MoveLoc[7](Arg7: &mut UserStatsRegistry)
291Pop
292MoveLoc[10](Arg10: &KioskOwnerCap)
293Pop
294MoveLoc[9](Arg9: &mut Kiosk)
295Pop
296MoveLoc[4](Arg4: &TreasuryConfig)
297Pop
298MoveLoc[8](Arg8: &mut SharedTreasury)
299Pop
300MoveLoc[15](Arg15: &Random)
301Pop
302MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
303Pop
304MoveLoc[2](Arg2: &mut PerTypeSupply)
305Pop
306MoveLoc[1](Arg1: &mut PackSupply)
307Pop
308MoveLoc[6](Arg6: &mut GlobalStats)
309Pop
310MoveLoc[17](Arg17: &mut TxContext)
311Pop
312MoveLoc[16](Arg16: &Clock)
313Pop
314LdConst[1](u64: 2)
315Abort
B28:
316CopyLoc[1](Arg1: &mut PackSupply)
317ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
318ReadRef
319CopyLoc[14](Arg14: u64)
320Sub
321CopyLoc[1](Arg1: &mut PackSupply)
322MutBorrowField[3](PackSupply.total_packs_remaining: u64)
323WriteRef
324CopyLoc[2](Arg2: &mut PerTypeSupply)
325ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
326ReadRef
327LdU64(0)
328Gt
329BrFalse(338)
B29:
330CopyLoc[2](Arg2: &mut PerTypeSupply)
331ImmBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
332ReadRef
333CopyLoc[14](Arg14: u64)
334Sub
335CopyLoc[2](Arg2: &mut PerTypeSupply)
336MutBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
337WriteRef
B30:
338MoveLoc[12](Arg12: Coin<SHTTOKEN>)
339StLoc[32](loc14: Coin<SHTTOKEN>)
340MutBorrowLoc[32](loc14: Coin<SHTTOKEN>)
341CopyLoc[36](loc18: u64)
342CopyLoc[17](Arg17: &mut TxContext)
343Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
344StLoc[37](loc19: Coin<SHTTOKEN>)
345CopyLoc[36](loc18: u64)
346LdU64(80)
347Mul
348LdU64(100)
349Div
350StLoc[20](loc2: u64)
351CopyLoc[36](loc18: u64)
352LdU64(10)
353Mul
354LdU64(100)
355Div
356StLoc[30](loc12: u64)
357MoveLoc[36](loc18: u64)
358CopyLoc[20](loc2: u64)
359Sub
360CopyLoc[30](loc12: u64)
361Sub
362Pop
363MoveLoc[37](loc19: Coin<SHTTOKEN>)
364StLoc[38](loc20: Coin<SHTTOKEN>)
365MutBorrowLoc[38](loc20: Coin<SHTTOKEN>)
366CopyLoc[20](loc2: u64)
367CopyLoc[17](Arg17: &mut TxContext)
368Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
369StLoc[21](loc3: Coin<SHTTOKEN>)
370MutBorrowLoc[38](loc20: Coin<SHTTOKEN>)
371CopyLoc[30](loc12: u64)
372CopyLoc[17](Arg17: &mut TxContext)
373Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
374StLoc[31](loc13: Coin<SHTTOKEN>)
375MoveLoc[38](loc20: Coin<SHTTOKEN>)
376StLoc[40](loc22: Coin<SHTTOKEN>)
377MoveLoc[8](Arg8: &mut SharedTreasury)
378MoveLoc[21](loc3: Coin<SHTTOKEN>)
379Call shttoken::burn(&mut SharedTreasury, Coin<SHTTOKEN>)
380CopyLoc[6](Arg6: &mut GlobalStats)
381CopyLoc[20](loc2: u64)
382CopyLoc[16](Arg16: &Clock)
383Call update_burn_stats(&mut GlobalStats, u64, &Clock)
384MoveLoc[7](Arg7: &mut UserStatsRegistry)
385CopyLoc[22](loc4: address)
386MoveLoc[20](loc2: u64)
387CopyLoc[14](Arg14: u64)
388CopyLoc[16](Arg16: &Clock)
389Call update_user_pack_stats(&mut UserStatsRegistry, address, u64, u64, &Clock)
390ImmBorrowLoc[29](loc11: Option<address>)
391Call option::is_some<address>(&Option<address>): bool
392BrFalse(435)
B31:
393ImmBorrowLoc[29](loc11: Option<address>)
394Call option::borrow<address>(&Option<address>): &address
395ReadRef
396StLoc[28](loc10: address)
397CopyLoc[28](loc10: address)
398CopyLoc[22](loc4: address)
399Neq
400BrFalse(402)
B32:
401Branch(424)
B33:
402MoveLoc[10](Arg10: &KioskOwnerCap)
403Pop
404MoveLoc[9](Arg9: &mut Kiosk)
405Pop
406MoveLoc[4](Arg4: &TreasuryConfig)
407Pop
408MoveLoc[15](Arg15: &Random)
409Pop
410MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
411Pop
412MoveLoc[2](Arg2: &mut PerTypeSupply)
413Pop
414MoveLoc[1](Arg1: &mut PackSupply)
415Pop
416MoveLoc[6](Arg6: &mut GlobalStats)
417Pop
418MoveLoc[17](Arg17: &mut TxContext)
419Pop
420MoveLoc[16](Arg16: &Clock)
421Pop
422LdConst[8](u64: 9)
423Abort
B34:
424LdConst[26](u8: 2)
425MoveLoc[22](loc4: address)
426CopyLoc[28](loc10: address)
427MoveLoc[30](loc12: u64)
428MoveLoc[23](loc5: u64)
429Pack[20](ReferralReward)
430Call event::emit<ReferralReward>(ReferralReward)
431MoveLoc[31](loc13: Coin<SHTTOKEN>)
432MoveLoc[28](loc10: address)
433Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
434Branch(440)
B35:
435MoveLoc[31](loc13: Coin<SHTTOKEN>)
436CopyLoc[4](Arg4: &TreasuryConfig)
437ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
438ReadRef
439Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
B36:
440MoveLoc[40](loc22: Coin<SHTTOKEN>)
441CopyLoc[4](Arg4: &TreasuryConfig)
442ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
443ReadRef
444Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
445ImmBorrowLoc[32](loc14: Coin<SHTTOKEN>)
446Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
447LdU64(0)
448Gt
449BrFalse(456)
B37:
450MoveLoc[32](loc14: Coin<SHTTOKEN>)
451CopyLoc[17](Arg17: &mut TxContext)
452FreezeRef
453Call tx_context::sender(&TxContext): address
454Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
455Branch(458)
B38:
456MoveLoc[32](loc14: Coin<SHTTOKEN>)
457Call coin::destroy_zero<SHTTOKEN>(Coin<SHTTOKEN>)
B39:
458MoveLoc[13](Arg13: Coin<SUI>)
459StLoc[34](loc16: Coin<SUI>)
460MutBorrowLoc[34](loc16: Coin<SUI>)
461MoveLoc[39](loc21: u64)
462CopyLoc[17](Arg17: &mut TxContext)
463Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
464MoveLoc[4](Arg4: &TreasuryConfig)
465ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
466ReadRef
467Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
468ImmBorrowLoc[34](loc16: Coin<SUI>)
469Call coin::value<SUI>(&Coin<SUI>): u64
470LdU64(0)
471Gt
472BrFalse(479)
B40:
473MoveLoc[34](loc16: Coin<SUI>)
474CopyLoc[17](Arg17: &mut TxContext)
475FreezeRef
476Call tx_context::sender(&TxContext): address
477Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
478Branch(481)
B41:
479MoveLoc[34](loc16: Coin<SUI>)
480Call coin::destroy_zero<SUI>(Coin<SUI>)
B42:
481CopyLoc[1](Arg1: &mut PackSupply)
482ImmBorrowField[7](PackSupply.current_batch_number: u64)
483ReadRef
484StLoc[19](loc1: u64)
485LdU64(0)
486StLoc[24](loc6: u64)
B43:
487CopyLoc[24](loc6: u64)
488CopyLoc[14](Arg14: u64)
489Lt
490BrFalse(535)
B44:
491CopyLoc[1](Arg1: &mut PackSupply)
492ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
493ReadRef
494CopyLoc[24](loc6: u64)
495Add
496LdU64(1)
497Add
498StLoc[25](loc7: u64)
499CopyLoc[15](Arg15: &Random)
500CopyLoc[17](Arg17: &mut TxContext)
501Call roll_golden_egg_rarity(&Random, &mut TxContext): u8
502StLoc[27](loc9: u8)
503CopyLoc[27](loc9: u8)
504CopyLoc[19](loc1: u64)
505MoveLoc[25](loc7: u64)
506CopyLoc[16](Arg16: &Clock)
507CopyLoc[17](Arg17: &mut TxContext)
508Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
509StLoc[26](loc8: DuckNFT)
510CopyLoc[6](Arg6: &mut GlobalStats)
511CopyLoc[27](loc9: u8)
512Call update_rarity_stats(&mut GlobalStats, u8)
513LdConst[26](u8: 2)
514CopyLoc[17](Arg17: &mut TxContext)
515FreezeRef
516Call tx_context::sender(&TxContext): address
517CopyLoc[33](loc15: u64)
518CopyLoc[35](loc17: u64)
519MoveLoc[27](loc9: u8)
520CopyLoc[1](Arg1: &mut PackSupply)
521ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
522ReadRef
523Pack[10](PackPurchased)
524Call event::emit<PackPurchased>(PackPurchased)
525CopyLoc[9](Arg9: &mut Kiosk)
526CopyLoc[10](Arg10: &KioskOwnerCap)
527CopyLoc[11](Arg11: &TransferPolicy<DuckNFT>)
528MoveLoc[26](loc8: DuckNFT)
529Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
530MoveLoc[24](loc6: u64)
531LdU64(1)
532Add
533StLoc[24](loc6: u64)
534Branch(487)
B45:
535MoveLoc[10](Arg10: &KioskOwnerCap)
536Pop
537MoveLoc[9](Arg9: &mut Kiosk)
538Pop
539MoveLoc[15](Arg15: &Random)
540Pop
541MoveLoc[11](Arg11: &TransferPolicy<DuckNFT>)
542Pop
543MoveLoc[6](Arg6: &mut GlobalStats)
544Pop
545MoveLoc[17](Arg17: &mut TxContext)
546Pop
547CopyLoc[1](Arg1: &mut PackSupply)
548ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
549ReadRef
550MoveLoc[14](Arg14: u64)
551Add
552CopyLoc[1](Arg1: &mut PackSupply)
553MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
554WriteRef
555CopyLoc[1](Arg1: &mut PackSupply)
556CopyLoc[16](Arg16: &Clock)
557Call check_genesis_batch_completion(&mut PackSupply, &Clock)
558CopyLoc[1](Arg1: &mut PackSupply)
559ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
560ReadRef
561Not
562BrFalse(568)
B46:
563MoveLoc[1](Arg1: &mut PackSupply)
564MoveLoc[2](Arg2: &mut PerTypeSupply)
565MoveLoc[16](Arg16: &Clock)
566Call start_cooldown_if_sold_out(&mut PackSupply, &mut PerTypeSupply, &Clock)
567Branch(574)
B47:
568MoveLoc[2](Arg2: &mut PerTypeSupply)
569Pop
570MoveLoc[1](Arg1: &mut PackSupply)
571Pop
572MoveLoc[16](Arg16: &Clock)
573Pop
B48:
574Ret
}
 
entry public hatch_genesis_basic_egg(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &mut GlobalStats, Arg6: &mut Kiosk, Arg7: &KioskOwnerCap, Arg8: &TransferPolicy<DuckNFT>, Arg9: Coin<SUI>, Arg10: u64, Arg11: &Random, Arg12: &Clock, Arg13: &mut TxContext) {
L14: loc0: bool
L15: loc1: u64
L16: loc2: address
L17: loc3: u64
L18: loc4: u64
L19: loc5: u64
L20: loc6: DuckNFT
L21: loc7: u8
L22: loc8: Coin<SUI>
L23: loc9: u64
L24: loc10: u64
L25: loc11: bool
B0:
0CopyLoc[12](Arg12: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[17](loc3: u64)
3CopyLoc[13](Arg13: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[16](loc2: address)
7CopyLoc[1](Arg1: &mut PackSupply)
8ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
9ReadRef
10BrFalse(12)
B1:
11Branch(36)
B2:
12MoveLoc[3](Arg3: &Whitelist)
13Pop
14MoveLoc[7](Arg7: &KioskOwnerCap)
15Pop
16MoveLoc[6](Arg6: &mut Kiosk)
17Pop
18MoveLoc[4](Arg4: &TreasuryConfig)
19Pop
20MoveLoc[11](Arg11: &Random)
21Pop
22MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
23Pop
24MoveLoc[2](Arg2: &mut PerTypeSupply)
25Pop
26MoveLoc[1](Arg1: &mut PackSupply)
27Pop
28MoveLoc[5](Arg5: &mut GlobalStats)
29Pop
30MoveLoc[13](Arg13: &mut TxContext)
31Pop
32MoveLoc[12](Arg12: &Clock)
33Pop
34LdConst[6](u64: 7)
35Abort
B3:
36CopyLoc[1](Arg1: &mut PackSupply)
37ImmBorrowField[0](PackSupply.start_time: u64)
38ReadRef
39LdU64(0)
40Gt
41BrFalse(49)
B4:
42CopyLoc[17](loc3: u64)
43CopyLoc[1](Arg1: &mut PackSupply)
44ImmBorrowField[0](PackSupply.start_time: u64)
45ReadRef
46Ge
47StLoc[14](loc0: bool)
48Branch(51)
B5:
49LdFalse
50StLoc[14](loc0: bool)
B6:
51MoveLoc[14](loc0: bool)
52BrFalse(54)
B7:
53Branch(78)
B8:
54MoveLoc[3](Arg3: &Whitelist)
55Pop
56MoveLoc[7](Arg7: &KioskOwnerCap)
57Pop
58MoveLoc[6](Arg6: &mut Kiosk)
59Pop
60MoveLoc[4](Arg4: &TreasuryConfig)
61Pop
62MoveLoc[11](Arg11: &Random)
63Pop
64MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
65Pop
66MoveLoc[2](Arg2: &mut PerTypeSupply)
67Pop
68MoveLoc[1](Arg1: &mut PackSupply)
69Pop
70MoveLoc[5](Arg5: &mut GlobalStats)
71Pop
72MoveLoc[13](Arg13: &mut TxContext)
73Pop
74MoveLoc[12](Arg12: &Clock)
75Pop
76LdConst[4](u64: 5)
77Abort
B9:
78CopyLoc[1](Arg1: &mut PackSupply)
79ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
80ReadRef
81CopyLoc[10](Arg10: u64)
82Ge
83BrFalse(85)
B10:
84Branch(109)
B11:
85MoveLoc[3](Arg3: &Whitelist)
86Pop
87MoveLoc[7](Arg7: &KioskOwnerCap)
88Pop
89MoveLoc[6](Arg6: &mut Kiosk)
90Pop
91MoveLoc[4](Arg4: &TreasuryConfig)
92Pop
93MoveLoc[11](Arg11: &Random)
94Pop
95MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
96Pop
97MoveLoc[2](Arg2: &mut PerTypeSupply)
98Pop
99MoveLoc[1](Arg1: &mut PackSupply)
100Pop
101MoveLoc[5](Arg5: &mut GlobalStats)
102Pop
103MoveLoc[13](Arg13: &mut TxContext)
104Pop
105MoveLoc[12](Arg12: &Clock)
106Pop
107LdConst[2](u64: 3)
108Abort
B12:
109CopyLoc[2](Arg2: &mut PerTypeSupply)
110ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
111ReadRef
112LdU64(0)
113Gt
114BrFalse(146)
B13:
115CopyLoc[2](Arg2: &mut PerTypeSupply)
116ImmBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
117ReadRef
118CopyLoc[10](Arg10: u64)
119Ge
120BrFalse(122)
B14:
121Branch(146)
B15:
122MoveLoc[3](Arg3: &Whitelist)
123Pop
124MoveLoc[7](Arg7: &KioskOwnerCap)
125Pop
126MoveLoc[6](Arg6: &mut Kiosk)
127Pop
128MoveLoc[4](Arg4: &TreasuryConfig)
129Pop
130MoveLoc[11](Arg11: &Random)
131Pop
132MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
133Pop
134MoveLoc[2](Arg2: &mut PerTypeSupply)
135Pop
136MoveLoc[1](Arg1: &mut PackSupply)
137Pop
138MoveLoc[5](Arg5: &mut GlobalStats)
139Pop
140MoveLoc[13](Arg13: &mut TxContext)
141Pop
142MoveLoc[12](Arg12: &Clock)
143Pop
144LdConst[17](u64: 18)
145Abort
B16:
146CopyLoc[1](Arg1: &mut PackSupply)
147ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
148ReadRef
149CopyLoc[10](Arg10: u64)
150Add
151LdConst[34](u64: 5555)
152Le
153BrFalse(155)
B17:
154Branch(179)
B18:
155MoveLoc[3](Arg3: &Whitelist)
156Pop
157MoveLoc[7](Arg7: &KioskOwnerCap)
158Pop
159MoveLoc[6](Arg6: &mut Kiosk)
160Pop
161MoveLoc[4](Arg4: &TreasuryConfig)
162Pop
163MoveLoc[11](Arg11: &Random)
164Pop
165MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
166Pop
167MoveLoc[2](Arg2: &mut PerTypeSupply)
168Pop
169MoveLoc[1](Arg1: &mut PackSupply)
170Pop
171MoveLoc[5](Arg5: &mut GlobalStats)
172Pop
173MoveLoc[13](Arg13: &mut TxContext)
174Pop
175MoveLoc[12](Arg12: &Clock)
176Pop
177LdConst[13](u64: 14)
178Abort
B19:
179CopyLoc[1](Arg1: &mut PackSupply)
180ImmBorrowField[5](PackSupply.whitelist_phase_active: bool)
181ReadRef
182StLoc[25](loc11: bool)
183CopyLoc[25](loc11: bool)
184BrFalse(190)
B20:
185CopyLoc[1](Arg1: &mut PackSupply)
186ImmBorrowField[34](PackSupply.genesis_whitelist_basic_sui_cost: u64)
187ReadRef
188StLoc[15](loc1: u64)
189Branch(194)
B21:
190CopyLoc[1](Arg1: &mut PackSupply)
191ImmBorrowField[35](PackSupply.genesis_public_basic_sui_cost: u64)
192ReadRef
193StLoc[15](loc1: u64)
B22:
194MoveLoc[15](loc1: u64)
195StLoc[23](loc9: u64)
196CopyLoc[23](loc9: u64)
197CopyLoc[10](Arg10: u64)
198Mul
199StLoc[24](loc10: u64)
200ImmBorrowLoc[9](Arg9: Coin<SUI>)
201Call coin::value<SUI>(&Coin<SUI>): u64
202CopyLoc[24](loc10: u64)
203Ge
204BrFalse(206)
B23:
205Branch(230)
B24:
206MoveLoc[3](Arg3: &Whitelist)
207Pop
208MoveLoc[7](Arg7: &KioskOwnerCap)
209Pop
210MoveLoc[6](Arg6: &mut Kiosk)
211Pop
212MoveLoc[4](Arg4: &TreasuryConfig)
213Pop
214MoveLoc[11](Arg11: &Random)
215Pop
216MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
217Pop
218MoveLoc[2](Arg2: &mut PerTypeSupply)
219Pop
220MoveLoc[1](Arg1: &mut PackSupply)
221Pop
222MoveLoc[5](Arg5: &mut GlobalStats)
223Pop
224MoveLoc[13](Arg13: &mut TxContext)
225Pop
226MoveLoc[12](Arg12: &Clock)
227Pop
228LdConst[1](u64: 2)
229Abort
B25:
230CopyLoc[1](Arg1: &mut PackSupply)
231FreezeRef
232CopyLoc[3](Arg3: &Whitelist)
233CopyLoc[16](loc2: address)
234CopyLoc[10](Arg10: u64)
235CopyLoc[12](Arg12: &Clock)
236Call validate_genesis_purchase(&PackSupply, &Whitelist, address, u64, &Clock)
237CopyLoc[25](loc11: bool)
238Not
239BrFalse(246)
B26:
240CopyLoc[1](Arg1: &mut PackSupply)
241FreezeRef
242CopyLoc[16](loc2: address)
243CopyLoc[10](Arg10: u64)
244CopyLoc[17](loc3: u64)
245Call validate_public_rate_limit(&PackSupply, address, u64, u64)
B27:
246CopyLoc[1](Arg1: &mut PackSupply)
247MoveLoc[3](Arg3: &Whitelist)
248CopyLoc[16](loc2: address)
249CopyLoc[10](Arg10: u64)
250CopyLoc[12](Arg12: &Clock)
251Call apply_genesis_purchase(&mut PackSupply, &Whitelist, address, u64, &Clock)
252MoveLoc[25](loc11: bool)
253Not
254BrFalse(259)
B28:
255CopyLoc[1](Arg1: &mut PackSupply)
256MoveLoc[16](loc2: address)
257MoveLoc[17](loc3: u64)
258Call update_public_rate_limit(&mut PackSupply, address, u64)
B29:
259CopyLoc[1](Arg1: &mut PackSupply)
260ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
261ReadRef
262CopyLoc[10](Arg10: u64)
263Sub
264CopyLoc[1](Arg1: &mut PackSupply)
265MutBorrowField[3](PackSupply.total_packs_remaining: u64)
266WriteRef
267CopyLoc[2](Arg2: &mut PerTypeSupply)
268ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
269ReadRef
270LdU64(0)
271Gt
272BrFalse(282)
B30:
273CopyLoc[2](Arg2: &mut PerTypeSupply)
274ImmBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
275ReadRef
276CopyLoc[10](Arg10: u64)
277Sub
278MoveLoc[2](Arg2: &mut PerTypeSupply)
279MutBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
280WriteRef
281Branch(284)
B31:
282MoveLoc[2](Arg2: &mut PerTypeSupply)
283Pop
B32:
284MoveLoc[9](Arg9: Coin<SUI>)
285StLoc[22](loc8: Coin<SUI>)
286MutBorrowLoc[22](loc8: Coin<SUI>)
287MoveLoc[24](loc10: u64)
288CopyLoc[13](Arg13: &mut TxContext)
289Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
290MoveLoc[4](Arg4: &TreasuryConfig)
291ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
292ReadRef
293Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
294ImmBorrowLoc[22](loc8: Coin<SUI>)
295Call coin::value<SUI>(&Coin<SUI>): u64
296LdU64(0)
297Gt
298BrFalse(305)
B33:
299MoveLoc[22](loc8: Coin<SUI>)
300CopyLoc[13](Arg13: &mut TxContext)
301FreezeRef
302Call tx_context::sender(&TxContext): address
303Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
304Branch(307)
B34:
305MoveLoc[22](loc8: Coin<SUI>)
306Call coin::destroy_zero<SUI>(Coin<SUI>)
B35:
307LdU64(0)
308StLoc[18](loc4: u64)
B36:
309CopyLoc[18](loc4: u64)
310CopyLoc[10](Arg10: u64)
311Lt
312BrFalse(357)
B37:
313CopyLoc[1](Arg1: &mut PackSupply)
314ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
315ReadRef
316CopyLoc[18](loc4: u64)
317Add
318LdU64(1)
319Add
320StLoc[19](loc5: u64)
321CopyLoc[11](Arg11: &Random)
322CopyLoc[13](Arg13: &mut TxContext)
323Call roll_basic_egg_rarity(&Random, &mut TxContext): u8
324StLoc[21](loc7: u8)
325CopyLoc[21](loc7: u8)
326LdU64(0)
327MoveLoc[19](loc5: u64)
328CopyLoc[12](Arg12: &Clock)
329CopyLoc[13](Arg13: &mut TxContext)
330Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
331StLoc[20](loc6: DuckNFT)
332CopyLoc[5](Arg5: &mut GlobalStats)
333CopyLoc[21](loc7: u8)
334Call update_rarity_stats(&mut GlobalStats, u8)
335LdConst[24](u8: 0)
336CopyLoc[13](Arg13: &mut TxContext)
337FreezeRef
338Call tx_context::sender(&TxContext): address
339LdU64(0)
340CopyLoc[23](loc9: u64)
341MoveLoc[21](loc7: u8)
342CopyLoc[1](Arg1: &mut PackSupply)
343ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
344ReadRef
345Pack[10](PackPurchased)
346Call event::emit<PackPurchased>(PackPurchased)
347CopyLoc[6](Arg6: &mut Kiosk)
348CopyLoc[7](Arg7: &KioskOwnerCap)
349CopyLoc[8](Arg8: &TransferPolicy<DuckNFT>)
350MoveLoc[20](loc6: DuckNFT)
351Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
352MoveLoc[18](loc4: u64)
353LdU64(1)
354Add
355StLoc[18](loc4: u64)
356Branch(309)
B38:
357MoveLoc[7](Arg7: &KioskOwnerCap)
358Pop
359MoveLoc[6](Arg6: &mut Kiosk)
360Pop
361MoveLoc[11](Arg11: &Random)
362Pop
363MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
364Pop
365MoveLoc[5](Arg5: &mut GlobalStats)
366Pop
367MoveLoc[13](Arg13: &mut TxContext)
368Pop
369CopyLoc[1](Arg1: &mut PackSupply)
370ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
371ReadRef
372MoveLoc[10](Arg10: u64)
373Add
374CopyLoc[1](Arg1: &mut PackSupply)
375MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
376WriteRef
377MoveLoc[1](Arg1: &mut PackSupply)
378MoveLoc[12](Arg12: &Clock)
379Call check_genesis_batch_completion(&mut PackSupply, &Clock)
380Ret
}
 
entry public hatch_genesis_rare_egg(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &mut GlobalStats, Arg6: &mut Kiosk, Arg7: &KioskOwnerCap, Arg8: &TransferPolicy<DuckNFT>, Arg9: Coin<SUI>, Arg10: u64, Arg11: &Random, Arg12: &Clock, Arg13: &mut TxContext) {
L14: loc0: bool
L15: loc1: u64
L16: loc2: address
L17: loc3: u64
L18: loc4: u64
L19: loc5: u64
L20: loc6: DuckNFT
L21: loc7: u8
L22: loc8: Coin<SUI>
L23: loc9: u64
L24: loc10: u64
L25: loc11: bool
B0:
0CopyLoc[12](Arg12: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[17](loc3: u64)
3CopyLoc[13](Arg13: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[16](loc2: address)
7CopyLoc[1](Arg1: &mut PackSupply)
8ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
9ReadRef
10BrFalse(12)
B1:
11Branch(36)
B2:
12MoveLoc[3](Arg3: &Whitelist)
13Pop
14MoveLoc[7](Arg7: &KioskOwnerCap)
15Pop
16MoveLoc[6](Arg6: &mut Kiosk)
17Pop
18MoveLoc[4](Arg4: &TreasuryConfig)
19Pop
20MoveLoc[11](Arg11: &Random)
21Pop
22MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
23Pop
24MoveLoc[2](Arg2: &mut PerTypeSupply)
25Pop
26MoveLoc[1](Arg1: &mut PackSupply)
27Pop
28MoveLoc[5](Arg5: &mut GlobalStats)
29Pop
30MoveLoc[13](Arg13: &mut TxContext)
31Pop
32MoveLoc[12](Arg12: &Clock)
33Pop
34LdConst[6](u64: 7)
35Abort
B3:
36CopyLoc[1](Arg1: &mut PackSupply)
37ImmBorrowField[0](PackSupply.start_time: u64)
38ReadRef
39LdU64(0)
40Gt
41BrFalse(49)
B4:
42CopyLoc[17](loc3: u64)
43CopyLoc[1](Arg1: &mut PackSupply)
44ImmBorrowField[0](PackSupply.start_time: u64)
45ReadRef
46Ge
47StLoc[14](loc0: bool)
48Branch(51)
B5:
49LdFalse
50StLoc[14](loc0: bool)
B6:
51MoveLoc[14](loc0: bool)
52BrFalse(54)
B7:
53Branch(78)
B8:
54MoveLoc[3](Arg3: &Whitelist)
55Pop
56MoveLoc[7](Arg7: &KioskOwnerCap)
57Pop
58MoveLoc[6](Arg6: &mut Kiosk)
59Pop
60MoveLoc[4](Arg4: &TreasuryConfig)
61Pop
62MoveLoc[11](Arg11: &Random)
63Pop
64MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
65Pop
66MoveLoc[2](Arg2: &mut PerTypeSupply)
67Pop
68MoveLoc[1](Arg1: &mut PackSupply)
69Pop
70MoveLoc[5](Arg5: &mut GlobalStats)
71Pop
72MoveLoc[13](Arg13: &mut TxContext)
73Pop
74MoveLoc[12](Arg12: &Clock)
75Pop
76LdConst[4](u64: 5)
77Abort
B9:
78CopyLoc[1](Arg1: &mut PackSupply)
79ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
80ReadRef
81CopyLoc[10](Arg10: u64)
82Ge
83BrFalse(85)
B10:
84Branch(109)
B11:
85MoveLoc[3](Arg3: &Whitelist)
86Pop
87MoveLoc[7](Arg7: &KioskOwnerCap)
88Pop
89MoveLoc[6](Arg6: &mut Kiosk)
90Pop
91MoveLoc[4](Arg4: &TreasuryConfig)
92Pop
93MoveLoc[11](Arg11: &Random)
94Pop
95MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
96Pop
97MoveLoc[2](Arg2: &mut PerTypeSupply)
98Pop
99MoveLoc[1](Arg1: &mut PackSupply)
100Pop
101MoveLoc[5](Arg5: &mut GlobalStats)
102Pop
103MoveLoc[13](Arg13: &mut TxContext)
104Pop
105MoveLoc[12](Arg12: &Clock)
106Pop
107LdConst[2](u64: 3)
108Abort
B12:
109CopyLoc[2](Arg2: &mut PerTypeSupply)
110ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
111ReadRef
112LdU64(0)
113Gt
114BrFalse(146)
B13:
115CopyLoc[2](Arg2: &mut PerTypeSupply)
116ImmBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
117ReadRef
118CopyLoc[10](Arg10: u64)
119Ge
120BrFalse(122)
B14:
121Branch(146)
B15:
122MoveLoc[3](Arg3: &Whitelist)
123Pop
124MoveLoc[7](Arg7: &KioskOwnerCap)
125Pop
126MoveLoc[6](Arg6: &mut Kiosk)
127Pop
128MoveLoc[4](Arg4: &TreasuryConfig)
129Pop
130MoveLoc[11](Arg11: &Random)
131Pop
132MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
133Pop
134MoveLoc[2](Arg2: &mut PerTypeSupply)
135Pop
136MoveLoc[1](Arg1: &mut PackSupply)
137Pop
138MoveLoc[5](Arg5: &mut GlobalStats)
139Pop
140MoveLoc[13](Arg13: &mut TxContext)
141Pop
142MoveLoc[12](Arg12: &Clock)
143Pop
144LdConst[17](u64: 18)
145Abort
B16:
146CopyLoc[1](Arg1: &mut PackSupply)
147ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
148ReadRef
149CopyLoc[10](Arg10: u64)
150Add
151LdConst[34](u64: 5555)
152Le
153BrFalse(155)
B17:
154Branch(179)
B18:
155MoveLoc[3](Arg3: &Whitelist)
156Pop
157MoveLoc[7](Arg7: &KioskOwnerCap)
158Pop
159MoveLoc[6](Arg6: &mut Kiosk)
160Pop
161MoveLoc[4](Arg4: &TreasuryConfig)
162Pop
163MoveLoc[11](Arg11: &Random)
164Pop
165MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
166Pop
167MoveLoc[2](Arg2: &mut PerTypeSupply)
168Pop
169MoveLoc[1](Arg1: &mut PackSupply)
170Pop
171MoveLoc[5](Arg5: &mut GlobalStats)
172Pop
173MoveLoc[13](Arg13: &mut TxContext)
174Pop
175MoveLoc[12](Arg12: &Clock)
176Pop
177LdConst[13](u64: 14)
178Abort
B19:
179CopyLoc[1](Arg1: &mut PackSupply)
180ImmBorrowField[5](PackSupply.whitelist_phase_active: bool)
181ReadRef
182StLoc[25](loc11: bool)
183CopyLoc[25](loc11: bool)
184BrFalse(190)
B20:
185CopyLoc[1](Arg1: &mut PackSupply)
186ImmBorrowField[36](PackSupply.genesis_whitelist_rare_sui_cost: u64)
187ReadRef
188StLoc[15](loc1: u64)
189Branch(194)
B21:
190CopyLoc[1](Arg1: &mut PackSupply)
191ImmBorrowField[37](PackSupply.genesis_public_rare_sui_cost: u64)
192ReadRef
193StLoc[15](loc1: u64)
B22:
194MoveLoc[15](loc1: u64)
195StLoc[23](loc9: u64)
196CopyLoc[23](loc9: u64)
197CopyLoc[10](Arg10: u64)
198Mul
199StLoc[24](loc10: u64)
200ImmBorrowLoc[9](Arg9: Coin<SUI>)
201Call coin::value<SUI>(&Coin<SUI>): u64
202CopyLoc[24](loc10: u64)
203Ge
204BrFalse(206)
B23:
205Branch(230)
B24:
206MoveLoc[3](Arg3: &Whitelist)
207Pop
208MoveLoc[7](Arg7: &KioskOwnerCap)
209Pop
210MoveLoc[6](Arg6: &mut Kiosk)
211Pop
212MoveLoc[4](Arg4: &TreasuryConfig)
213Pop
214MoveLoc[11](Arg11: &Random)
215Pop
216MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
217Pop
218MoveLoc[2](Arg2: &mut PerTypeSupply)
219Pop
220MoveLoc[1](Arg1: &mut PackSupply)
221Pop
222MoveLoc[5](Arg5: &mut GlobalStats)
223Pop
224MoveLoc[13](Arg13: &mut TxContext)
225Pop
226MoveLoc[12](Arg12: &Clock)
227Pop
228LdConst[1](u64: 2)
229Abort
B25:
230CopyLoc[1](Arg1: &mut PackSupply)
231FreezeRef
232CopyLoc[3](Arg3: &Whitelist)
233CopyLoc[16](loc2: address)
234CopyLoc[10](Arg10: u64)
235CopyLoc[12](Arg12: &Clock)
236Call validate_genesis_purchase(&PackSupply, &Whitelist, address, u64, &Clock)
237CopyLoc[25](loc11: bool)
238Not
239BrFalse(246)
B26:
240CopyLoc[1](Arg1: &mut PackSupply)
241FreezeRef
242CopyLoc[16](loc2: address)
243CopyLoc[10](Arg10: u64)
244CopyLoc[17](loc3: u64)
245Call validate_public_rate_limit(&PackSupply, address, u64, u64)
B27:
246CopyLoc[1](Arg1: &mut PackSupply)
247MoveLoc[3](Arg3: &Whitelist)
248CopyLoc[16](loc2: address)
249CopyLoc[10](Arg10: u64)
250CopyLoc[12](Arg12: &Clock)
251Call apply_genesis_purchase(&mut PackSupply, &Whitelist, address, u64, &Clock)
252MoveLoc[25](loc11: bool)
253Not
254BrFalse(259)
B28:
255CopyLoc[1](Arg1: &mut PackSupply)
256MoveLoc[16](loc2: address)
257MoveLoc[17](loc3: u64)
258Call update_public_rate_limit(&mut PackSupply, address, u64)
B29:
259CopyLoc[1](Arg1: &mut PackSupply)
260ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
261ReadRef
262CopyLoc[10](Arg10: u64)
263Sub
264CopyLoc[1](Arg1: &mut PackSupply)
265MutBorrowField[3](PackSupply.total_packs_remaining: u64)
266WriteRef
267CopyLoc[2](Arg2: &mut PerTypeSupply)
268ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
269ReadRef
270LdU64(0)
271Gt
272BrFalse(282)
B30:
273CopyLoc[2](Arg2: &mut PerTypeSupply)
274ImmBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
275ReadRef
276CopyLoc[10](Arg10: u64)
277Sub
278MoveLoc[2](Arg2: &mut PerTypeSupply)
279MutBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
280WriteRef
281Branch(284)
B31:
282MoveLoc[2](Arg2: &mut PerTypeSupply)
283Pop
B32:
284MoveLoc[9](Arg9: Coin<SUI>)
285StLoc[22](loc8: Coin<SUI>)
286MutBorrowLoc[22](loc8: Coin<SUI>)
287MoveLoc[24](loc10: u64)
288CopyLoc[13](Arg13: &mut TxContext)
289Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
290MoveLoc[4](Arg4: &TreasuryConfig)
291ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
292ReadRef
293Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
294ImmBorrowLoc[22](loc8: Coin<SUI>)
295Call coin::value<SUI>(&Coin<SUI>): u64
296LdU64(0)
297Gt
298BrFalse(305)
B33:
299MoveLoc[22](loc8: Coin<SUI>)
300CopyLoc[13](Arg13: &mut TxContext)
301FreezeRef
302Call tx_context::sender(&TxContext): address
303Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
304Branch(307)
B34:
305MoveLoc[22](loc8: Coin<SUI>)
306Call coin::destroy_zero<SUI>(Coin<SUI>)
B35:
307LdU64(0)
308StLoc[18](loc4: u64)
B36:
309CopyLoc[18](loc4: u64)
310CopyLoc[10](Arg10: u64)
311Lt
312BrFalse(357)
B37:
313CopyLoc[1](Arg1: &mut PackSupply)
314ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
315ReadRef
316CopyLoc[18](loc4: u64)
317Add
318LdU64(1)
319Add
320StLoc[19](loc5: u64)
321CopyLoc[11](Arg11: &Random)
322CopyLoc[13](Arg13: &mut TxContext)
323Call roll_rare_egg_rarity(&Random, &mut TxContext): u8
324StLoc[21](loc7: u8)
325CopyLoc[21](loc7: u8)
326LdU64(0)
327MoveLoc[19](loc5: u64)
328CopyLoc[12](Arg12: &Clock)
329CopyLoc[13](Arg13: &mut TxContext)
330Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
331StLoc[20](loc6: DuckNFT)
332CopyLoc[5](Arg5: &mut GlobalStats)
333CopyLoc[21](loc7: u8)
334Call update_rarity_stats(&mut GlobalStats, u8)
335LdConst[25](u8: 1)
336CopyLoc[13](Arg13: &mut TxContext)
337FreezeRef
338Call tx_context::sender(&TxContext): address
339LdU64(0)
340CopyLoc[23](loc9: u64)
341MoveLoc[21](loc7: u8)
342CopyLoc[1](Arg1: &mut PackSupply)
343ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
344ReadRef
345Pack[10](PackPurchased)
346Call event::emit<PackPurchased>(PackPurchased)
347CopyLoc[6](Arg6: &mut Kiosk)
348CopyLoc[7](Arg7: &KioskOwnerCap)
349CopyLoc[8](Arg8: &TransferPolicy<DuckNFT>)
350MoveLoc[20](loc6: DuckNFT)
351Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
352MoveLoc[18](loc4: u64)
353LdU64(1)
354Add
355StLoc[18](loc4: u64)
356Branch(309)
B38:
357MoveLoc[7](Arg7: &KioskOwnerCap)
358Pop
359MoveLoc[6](Arg6: &mut Kiosk)
360Pop
361MoveLoc[11](Arg11: &Random)
362Pop
363MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
364Pop
365MoveLoc[5](Arg5: &mut GlobalStats)
366Pop
367MoveLoc[13](Arg13: &mut TxContext)
368Pop
369CopyLoc[1](Arg1: &mut PackSupply)
370ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
371ReadRef
372MoveLoc[10](Arg10: u64)
373Add
374CopyLoc[1](Arg1: &mut PackSupply)
375MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
376WriteRef
377MoveLoc[1](Arg1: &mut PackSupply)
378MoveLoc[12](Arg12: &Clock)
379Call check_genesis_batch_completion(&mut PackSupply, &Clock)
380Ret
}
 
entry public hatch_genesis_golden_egg(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &mut GlobalStats, Arg6: &mut Kiosk, Arg7: &KioskOwnerCap, Arg8: &TransferPolicy<DuckNFT>, Arg9: Coin<SUI>, Arg10: u64, Arg11: &Random, Arg12: &Clock, Arg13: &mut TxContext) {
L14: loc0: bool
L15: loc1: u64
L16: loc2: address
L17: loc3: u64
L18: loc4: u64
L19: loc5: u64
L20: loc6: DuckNFT
L21: loc7: u8
L22: loc8: Coin<SUI>
L23: loc9: u64
L24: loc10: u64
L25: loc11: bool
B0:
0CopyLoc[12](Arg12: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[17](loc3: u64)
3CopyLoc[13](Arg13: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[16](loc2: address)
7CopyLoc[1](Arg1: &mut PackSupply)
8ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
9ReadRef
10BrFalse(12)
B1:
11Branch(36)
B2:
12MoveLoc[3](Arg3: &Whitelist)
13Pop
14MoveLoc[7](Arg7: &KioskOwnerCap)
15Pop
16MoveLoc[6](Arg6: &mut Kiosk)
17Pop
18MoveLoc[4](Arg4: &TreasuryConfig)
19Pop
20MoveLoc[11](Arg11: &Random)
21Pop
22MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
23Pop
24MoveLoc[2](Arg2: &mut PerTypeSupply)
25Pop
26MoveLoc[1](Arg1: &mut PackSupply)
27Pop
28MoveLoc[5](Arg5: &mut GlobalStats)
29Pop
30MoveLoc[13](Arg13: &mut TxContext)
31Pop
32MoveLoc[12](Arg12: &Clock)
33Pop
34LdConst[6](u64: 7)
35Abort
B3:
36CopyLoc[1](Arg1: &mut PackSupply)
37ImmBorrowField[0](PackSupply.start_time: u64)
38ReadRef
39LdU64(0)
40Gt
41BrFalse(49)
B4:
42CopyLoc[17](loc3: u64)
43CopyLoc[1](Arg1: &mut PackSupply)
44ImmBorrowField[0](PackSupply.start_time: u64)
45ReadRef
46Ge
47StLoc[14](loc0: bool)
48Branch(51)
B5:
49LdFalse
50StLoc[14](loc0: bool)
B6:
51MoveLoc[14](loc0: bool)
52BrFalse(54)
B7:
53Branch(78)
B8:
54MoveLoc[3](Arg3: &Whitelist)
55Pop
56MoveLoc[7](Arg7: &KioskOwnerCap)
57Pop
58MoveLoc[6](Arg6: &mut Kiosk)
59Pop
60MoveLoc[4](Arg4: &TreasuryConfig)
61Pop
62MoveLoc[11](Arg11: &Random)
63Pop
64MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
65Pop
66MoveLoc[2](Arg2: &mut PerTypeSupply)
67Pop
68MoveLoc[1](Arg1: &mut PackSupply)
69Pop
70MoveLoc[5](Arg5: &mut GlobalStats)
71Pop
72MoveLoc[13](Arg13: &mut TxContext)
73Pop
74MoveLoc[12](Arg12: &Clock)
75Pop
76LdConst[4](u64: 5)
77Abort
B9:
78CopyLoc[1](Arg1: &mut PackSupply)
79ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
80ReadRef
81CopyLoc[10](Arg10: u64)
82Ge
83BrFalse(85)
B10:
84Branch(109)
B11:
85MoveLoc[3](Arg3: &Whitelist)
86Pop
87MoveLoc[7](Arg7: &KioskOwnerCap)
88Pop
89MoveLoc[6](Arg6: &mut Kiosk)
90Pop
91MoveLoc[4](Arg4: &TreasuryConfig)
92Pop
93MoveLoc[11](Arg11: &Random)
94Pop
95MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
96Pop
97MoveLoc[2](Arg2: &mut PerTypeSupply)
98Pop
99MoveLoc[1](Arg1: &mut PackSupply)
100Pop
101MoveLoc[5](Arg5: &mut GlobalStats)
102Pop
103MoveLoc[13](Arg13: &mut TxContext)
104Pop
105MoveLoc[12](Arg12: &Clock)
106Pop
107LdConst[2](u64: 3)
108Abort
B12:
109CopyLoc[2](Arg2: &mut PerTypeSupply)
110ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
111ReadRef
112LdU64(0)
113Gt
114BrFalse(146)
B13:
115CopyLoc[2](Arg2: &mut PerTypeSupply)
116ImmBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
117ReadRef
118CopyLoc[10](Arg10: u64)
119Ge
120BrFalse(122)
B14:
121Branch(146)
B15:
122MoveLoc[3](Arg3: &Whitelist)
123Pop
124MoveLoc[7](Arg7: &KioskOwnerCap)
125Pop
126MoveLoc[6](Arg6: &mut Kiosk)
127Pop
128MoveLoc[4](Arg4: &TreasuryConfig)
129Pop
130MoveLoc[11](Arg11: &Random)
131Pop
132MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
133Pop
134MoveLoc[2](Arg2: &mut PerTypeSupply)
135Pop
136MoveLoc[1](Arg1: &mut PackSupply)
137Pop
138MoveLoc[5](Arg5: &mut GlobalStats)
139Pop
140MoveLoc[13](Arg13: &mut TxContext)
141Pop
142MoveLoc[12](Arg12: &Clock)
143Pop
144LdConst[17](u64: 18)
145Abort
B16:
146CopyLoc[1](Arg1: &mut PackSupply)
147ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
148ReadRef
149CopyLoc[10](Arg10: u64)
150Add
151LdConst[34](u64: 5555)
152Le
153BrFalse(155)
B17:
154Branch(179)
B18:
155MoveLoc[3](Arg3: &Whitelist)
156Pop
157MoveLoc[7](Arg7: &KioskOwnerCap)
158Pop
159MoveLoc[6](Arg6: &mut Kiosk)
160Pop
161MoveLoc[4](Arg4: &TreasuryConfig)
162Pop
163MoveLoc[11](Arg11: &Random)
164Pop
165MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
166Pop
167MoveLoc[2](Arg2: &mut PerTypeSupply)
168Pop
169MoveLoc[1](Arg1: &mut PackSupply)
170Pop
171MoveLoc[5](Arg5: &mut GlobalStats)
172Pop
173MoveLoc[13](Arg13: &mut TxContext)
174Pop
175MoveLoc[12](Arg12: &Clock)
176Pop
177LdConst[13](u64: 14)
178Abort
B19:
179CopyLoc[1](Arg1: &mut PackSupply)
180ImmBorrowField[5](PackSupply.whitelist_phase_active: bool)
181ReadRef
182StLoc[25](loc11: bool)
183CopyLoc[25](loc11: bool)
184BrFalse(190)
B20:
185CopyLoc[1](Arg1: &mut PackSupply)
186ImmBorrowField[38](PackSupply.genesis_whitelist_golden_sui_cost: u64)
187ReadRef
188StLoc[15](loc1: u64)
189Branch(194)
B21:
190CopyLoc[1](Arg1: &mut PackSupply)
191ImmBorrowField[39](PackSupply.genesis_public_golden_sui_cost: u64)
192ReadRef
193StLoc[15](loc1: u64)
B22:
194MoveLoc[15](loc1: u64)
195StLoc[23](loc9: u64)
196CopyLoc[23](loc9: u64)
197CopyLoc[10](Arg10: u64)
198Mul
199StLoc[24](loc10: u64)
200ImmBorrowLoc[9](Arg9: Coin<SUI>)
201Call coin::value<SUI>(&Coin<SUI>): u64
202CopyLoc[24](loc10: u64)
203Ge
204BrFalse(206)
B23:
205Branch(230)
B24:
206MoveLoc[3](Arg3: &Whitelist)
207Pop
208MoveLoc[7](Arg7: &KioskOwnerCap)
209Pop
210MoveLoc[6](Arg6: &mut Kiosk)
211Pop
212MoveLoc[4](Arg4: &TreasuryConfig)
213Pop
214MoveLoc[11](Arg11: &Random)
215Pop
216MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
217Pop
218MoveLoc[2](Arg2: &mut PerTypeSupply)
219Pop
220MoveLoc[1](Arg1: &mut PackSupply)
221Pop
222MoveLoc[5](Arg5: &mut GlobalStats)
223Pop
224MoveLoc[13](Arg13: &mut TxContext)
225Pop
226MoveLoc[12](Arg12: &Clock)
227Pop
228LdConst[1](u64: 2)
229Abort
B25:
230CopyLoc[1](Arg1: &mut PackSupply)
231FreezeRef
232CopyLoc[3](Arg3: &Whitelist)
233CopyLoc[16](loc2: address)
234CopyLoc[10](Arg10: u64)
235CopyLoc[12](Arg12: &Clock)
236Call validate_genesis_purchase(&PackSupply, &Whitelist, address, u64, &Clock)
237CopyLoc[25](loc11: bool)
238Not
239BrFalse(246)
B26:
240CopyLoc[1](Arg1: &mut PackSupply)
241FreezeRef
242CopyLoc[16](loc2: address)
243CopyLoc[10](Arg10: u64)
244CopyLoc[17](loc3: u64)
245Call validate_public_rate_limit(&PackSupply, address, u64, u64)
B27:
246CopyLoc[1](Arg1: &mut PackSupply)
247MoveLoc[3](Arg3: &Whitelist)
248CopyLoc[16](loc2: address)
249CopyLoc[10](Arg10: u64)
250CopyLoc[12](Arg12: &Clock)
251Call apply_genesis_purchase(&mut PackSupply, &Whitelist, address, u64, &Clock)
252MoveLoc[25](loc11: bool)
253Not
254BrFalse(259)
B28:
255CopyLoc[1](Arg1: &mut PackSupply)
256MoveLoc[16](loc2: address)
257MoveLoc[17](loc3: u64)
258Call update_public_rate_limit(&mut PackSupply, address, u64)
B29:
259CopyLoc[1](Arg1: &mut PackSupply)
260ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
261ReadRef
262CopyLoc[10](Arg10: u64)
263Sub
264CopyLoc[1](Arg1: &mut PackSupply)
265MutBorrowField[3](PackSupply.total_packs_remaining: u64)
266WriteRef
267CopyLoc[2](Arg2: &mut PerTypeSupply)
268ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
269ReadRef
270LdU64(0)
271Gt
272BrFalse(282)
B30:
273CopyLoc[2](Arg2: &mut PerTypeSupply)
274ImmBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
275ReadRef
276CopyLoc[10](Arg10: u64)
277Sub
278MoveLoc[2](Arg2: &mut PerTypeSupply)
279MutBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
280WriteRef
281Branch(284)
B31:
282MoveLoc[2](Arg2: &mut PerTypeSupply)
283Pop
B32:
284MoveLoc[9](Arg9: Coin<SUI>)
285StLoc[22](loc8: Coin<SUI>)
286MutBorrowLoc[22](loc8: Coin<SUI>)
287MoveLoc[24](loc10: u64)
288CopyLoc[13](Arg13: &mut TxContext)
289Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
290MoveLoc[4](Arg4: &TreasuryConfig)
291ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
292ReadRef
293Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
294ImmBorrowLoc[22](loc8: Coin<SUI>)
295Call coin::value<SUI>(&Coin<SUI>): u64
296LdU64(0)
297Gt
298BrFalse(305)
B33:
299MoveLoc[22](loc8: Coin<SUI>)
300CopyLoc[13](Arg13: &mut TxContext)
301FreezeRef
302Call tx_context::sender(&TxContext): address
303Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
304Branch(307)
B34:
305MoveLoc[22](loc8: Coin<SUI>)
306Call coin::destroy_zero<SUI>(Coin<SUI>)
B35:
307LdU64(0)
308StLoc[18](loc4: u64)
B36:
309CopyLoc[18](loc4: u64)
310CopyLoc[10](Arg10: u64)
311Lt
312BrFalse(357)
B37:
313CopyLoc[1](Arg1: &mut PackSupply)
314ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
315ReadRef
316CopyLoc[18](loc4: u64)
317Add
318LdU64(1)
319Add
320StLoc[19](loc5: u64)
321CopyLoc[11](Arg11: &Random)
322CopyLoc[13](Arg13: &mut TxContext)
323Call roll_golden_egg_rarity(&Random, &mut TxContext): u8
324StLoc[21](loc7: u8)
325CopyLoc[21](loc7: u8)
326LdU64(0)
327MoveLoc[19](loc5: u64)
328CopyLoc[12](Arg12: &Clock)
329CopyLoc[13](Arg13: &mut TxContext)
330Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
331StLoc[20](loc6: DuckNFT)
332CopyLoc[5](Arg5: &mut GlobalStats)
333CopyLoc[21](loc7: u8)
334Call update_rarity_stats(&mut GlobalStats, u8)
335LdConst[26](u8: 2)
336CopyLoc[13](Arg13: &mut TxContext)
337FreezeRef
338Call tx_context::sender(&TxContext): address
339LdU64(0)
340CopyLoc[23](loc9: u64)
341MoveLoc[21](loc7: u8)
342CopyLoc[1](Arg1: &mut PackSupply)
343ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
344ReadRef
345Pack[10](PackPurchased)
346Call event::emit<PackPurchased>(PackPurchased)
347CopyLoc[6](Arg6: &mut Kiosk)
348CopyLoc[7](Arg7: &KioskOwnerCap)
349CopyLoc[8](Arg8: &TransferPolicy<DuckNFT>)
350MoveLoc[20](loc6: DuckNFT)
351Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
352MoveLoc[18](loc4: u64)
353LdU64(1)
354Add
355StLoc[18](loc4: u64)
356Branch(309)
B38:
357MoveLoc[7](Arg7: &KioskOwnerCap)
358Pop
359MoveLoc[6](Arg6: &mut Kiosk)
360Pop
361MoveLoc[11](Arg11: &Random)
362Pop
363MoveLoc[8](Arg8: &TransferPolicy<DuckNFT>)
364Pop
365MoveLoc[5](Arg5: &mut GlobalStats)
366Pop
367MoveLoc[13](Arg13: &mut TxContext)
368Pop
369CopyLoc[1](Arg1: &mut PackSupply)
370ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
371ReadRef
372MoveLoc[10](Arg10: u64)
373Add
374CopyLoc[1](Arg1: &mut PackSupply)
375MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
376WriteRef
377MoveLoc[1](Arg1: &mut PackSupply)
378MoveLoc[12](Arg12: &Clock)
379Call check_genesis_batch_completion(&mut PackSupply, &Clock)
380Ret
}
 
roll_basic_egg_rarity(Arg0: &Random, Arg1: &mut TxContext): u8 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: RandomGenerator
L5: loc3: u64
B0:
0MoveLoc[0](Arg0: &Random)
1MoveLoc[1](Arg1: &mut TxContext)
2Call random::new_generator(&Random, &mut TxContext): RandomGenerator
3StLoc[4](loc2: RandomGenerator)
4MutBorrowLoc[4](loc2: RandomGenerator)
5LdU64(0)
6LdU64(100)
7Call random::generate_u64_in_range(&mut RandomGenerator, u64, u64): u64
8StLoc[5](loc3: u64)
9CopyLoc[5](loc3: u64)
10LdU64(70)
11Lt
12BrFalse(16)
B1:
13LdConst[24](u8: 0)
14StLoc[3](loc1: u8)
15Branch(27)
B2:
16MoveLoc[5](loc3: u64)
17LdU64(95)
18Lt
19BrFalse(23)
B3:
20LdConst[25](u8: 1)
21StLoc[2](loc0: u8)
22Branch(25)
B4:
23LdConst[26](u8: 2)
24StLoc[2](loc0: u8)
B5:
25MoveLoc[2](loc0: u8)
26StLoc[3](loc1: u8)
B6:
27MoveLoc[3](loc1: u8)
28Ret
}
 
roll_rare_egg_rarity(Arg0: &Random, Arg1: &mut TxContext): u8 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: u8
L5: loc3: RandomGenerator
L6: loc4: u64
B0:
0MoveLoc[0](Arg0: &Random)
1MoveLoc[1](Arg1: &mut TxContext)
2Call random::new_generator(&Random, &mut TxContext): RandomGenerator
3StLoc[5](loc3: RandomGenerator)
4MutBorrowLoc[5](loc3: RandomGenerator)
5LdU64(0)
6LdU64(100)
7Call random::generate_u64_in_range(&mut RandomGenerator, u64, u64): u64
8StLoc[6](loc4: u64)
9CopyLoc[6](loc4: u64)
10LdU64(40)
11Lt
12BrFalse(16)
B1:
13LdConst[24](u8: 0)
14StLoc[4](loc2: u8)
15Branch(36)
B2:
16CopyLoc[6](loc4: u64)
17LdU64(80)
18Lt
19BrFalse(23)
B3:
20LdConst[25](u8: 1)
21StLoc[3](loc1: u8)
22Branch(34)
B4:
23MoveLoc[6](loc4: u64)
24LdU64(95)
25Lt
26BrFalse(30)
B5:
27LdConst[26](u8: 2)
28StLoc[2](loc0: u8)
29Branch(32)
B6:
30LdConst[27](u8: 3)
31StLoc[2](loc0: u8)
B7:
32MoveLoc[2](loc0: u8)
33StLoc[3](loc1: u8)
B8:
34MoveLoc[3](loc1: u8)
35StLoc[4](loc2: u8)
B9:
36MoveLoc[4](loc2: u8)
37Ret
}
 
roll_golden_egg_rarity(Arg0: &Random, Arg1: &mut TxContext): u8 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: RandomGenerator
L5: loc3: u64
B0:
0MoveLoc[0](Arg0: &Random)
1MoveLoc[1](Arg1: &mut TxContext)
2Call random::new_generator(&Random, &mut TxContext): RandomGenerator
3StLoc[4](loc2: RandomGenerator)
4MutBorrowLoc[4](loc2: RandomGenerator)
5LdU64(0)
6LdU64(100)
7Call random::generate_u64_in_range(&mut RandomGenerator, u64, u64): u64
8StLoc[5](loc3: u64)
9CopyLoc[5](loc3: u64)
10LdU64(30)
11Lt
12BrFalse(16)
B1:
13LdConst[25](u8: 1)
14StLoc[3](loc1: u8)
15Branch(27)
B2:
16MoveLoc[5](loc3: u64)
17LdU64(80)
18Lt
19BrFalse(23)
B3:
20LdConst[26](u8: 2)
21StLoc[2](loc0: u8)
22Branch(25)
B4:
23LdConst[27](u8: 3)
24StLoc[2](loc0: u8)
B5:
25MoveLoc[2](loc0: u8)
26StLoc[3](loc1: u8)
B6:
27MoveLoc[3](loc1: u8)
28Ret
}
 
create_duck_nft(Arg0: u8, Arg1: u64, Arg2: u64, Arg3: &Clock, Arg4: &mut TxContext): DuckNFT {
L5: loc0: VecMap<String, String>
L6: loc1: String
L7: loc2: String
L8: loc3: String
L9: loc4: String
L10: loc5: String
L11: loc6: String
L12: loc7: String
L13: loc8: String
L14: loc9: String
L15: loc10: String
L16: loc11: String
B0:
0CopyLoc[0](Arg0: u8)
1Call get_rarity_image_url(u8): String
2StLoc[9](loc4: String)
3CopyLoc[0](Arg0: u8)
4Call get_rarity_description(u8): String
5StLoc[8](loc3: String)
6LdConst[60](vector<u8>: "Duc..)
7Call string::utf8(vector<u8>): String
8StLoc[14](loc9: String)
9MutBorrowLoc[14](loc9: String)
10CopyLoc[2](Arg2: u64)
11Call u64_to_string(u64): String
12Call string::append(&mut String, String)
13CopyLoc[0](Arg0: u8)
14Call get_rarity_name(u8): String
15StLoc[16](loc11: String)
16CopyLoc[0](Arg0: u8)
17Call get_rarity_name(u8): String
18StLoc[15](loc10: String)
19CopyLoc[0](Arg0: u8)
20Call get_duck_stats(u8): String * String
21StLoc[13](loc8: String)
22StLoc[11](loc6: String)
23CopyLoc[0](Arg0: u8)
24Call get_duck_stats(u8): String * String
25StLoc[12](loc7: String)
26StLoc[10](loc5: String)
27CopyLoc[1](Arg1: u64)
28Call get_batch_name(u64): String
29StLoc[7](loc2: String)
30MoveLoc[1](Arg1: u64)
31Call get_batch_name(u64): String
32StLoc[6](loc1: String)
33Call vec_map::empty<String, String>(): VecMap<String, String>
34StLoc[5](loc0: VecMap<String, String>)
35MutBorrowLoc[5](loc0: VecMap<String, String>)
36LdConst[61](vector<u8>: "Rar..)
37Call string::utf8(vector<u8>): String
38MoveLoc[15](loc10: String)
39Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
40MutBorrowLoc[5](loc0: VecMap<String, String>)
41LdConst[62](vector<u8>: "Luc..)
42Call string::utf8(vector<u8>): String
43MoveLoc[10](loc5: String)
44Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
45MutBorrowLoc[5](loc0: VecMap<String, String>)
46LdConst[63](vector<u8>: "Mul..)
47Call string::utf8(vector<u8>): String
48MoveLoc[12](loc7: String)
49Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
50MutBorrowLoc[5](loc0: VecMap<String, String>)
51LdConst[64](vector<u8>: "Bat..)
52Call string::utf8(vector<u8>): String
53MoveLoc[6](loc1: String)
54Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
55MutBorrowLoc[5](loc0: VecMap<String, String>)
56LdConst[65](vector<u8>: "Sta..)
57Call string::utf8(vector<u8>): String
58LdConst[66](vector<u8>: "No"..)
59Call string::utf8(vector<u8>): String
60Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
61CopyLoc[4](Arg4: &mut TxContext)
62Call object::new(&mut TxContext): UID
63MoveLoc[14](loc9: String)
64MoveLoc[2](Arg2: u64)
65MoveLoc[0](Arg0: u8)
66MoveLoc[16](loc11: String)
67MoveLoc[9](loc4: String)
68MoveLoc[8](loc3: String)
69MoveLoc[3](Arg3: &Clock)
70Call clock::timestamp_ms(&Clock): u64
71MoveLoc[4](Arg4: &mut TxContext)
72FreezeRef
73Call tx_context::sender(&TxContext): address
74MoveLoc[11](loc6: String)
75MoveLoc[13](loc8: String)
76MoveLoc[7](loc2: String)
77LdFalse
78LdU64(0)
79LdU64(0)
80LdU8(0)
81MoveLoc[5](loc0: VecMap<String, String>)
82Pack[32](DuckNFT)
83Ret
}
 
get_batch_name(Arg0: u64): String {
L1: loc0: String
L2: loc1: String
B0:
0CopyLoc[0](Arg0: u64)
1LdU64(0)
2Eq
3BrFalse(8)
B1:
4LdConst[67](vector<u8>: "Gen..)
5Call string::utf8(vector<u8>): String
6StLoc[1](loc0: String)
7Branch(19)
B2:
8LdConst[68](vector<u8>: "Bat..)
9Call string::utf8(vector<u8>): String
10StLoc[2](loc1: String)
11MutBorrowLoc[2](loc1: String)
12MoveLoc[0](Arg0: u64)
13LdU64(1)
14Add
15Call u64_to_string(u64): String
16Call string::append(&mut String, String)
17MoveLoc[2](loc1: String)
18StLoc[1](loc0: String)
B3:
19MoveLoc[1](loc0: String)
20Ret
}
 
u64_to_string(Arg0: u64): String {
L1: loc0: vector<u8>
L2: loc1: u8
B0:
0CopyLoc[0](Arg0: u64)
1LdU64(0)
2Eq
3BrFalse(7)
B1:
4LdConst[69](vector<u8>: "0" ..)
5Call string::utf8(vector<u8>): String
6Ret
B2:
7VecPack(16, 0)
8StLoc[1](loc0: vector<u8>)
B3:
9CopyLoc[0](Arg0: u64)
10LdU64(0)
11Gt
12BrFalse(28)
B4:
13CopyLoc[0](Arg0: u64)
14LdU64(10)
15Mod
16CastU8
17LdU8(48)
18Add
19StLoc[2](loc1: u8)
20MutBorrowLoc[1](loc0: vector<u8>)
21MoveLoc[2](loc1: u8)
22VecPushBack(16)
23MoveLoc[0](Arg0: u64)
24LdU64(10)
25Div
26StLoc[0](Arg0: u64)
27Branch(9)
B5:
28MutBorrowLoc[1](loc0: vector<u8>)
29Call vector::reverse<u8>(&mut vector<u8>)
30MoveLoc[1](loc0: vector<u8>)
31Call string::utf8(vector<u8>): String
32Ret
}
 
get_duck_stats(Arg0: u8): String * String {
L1: loc0: String
L2: loc1: String
L3: loc2: String
L4: loc3: String
L5: loc4: String
L6: loc5: String
B0:
0CopyLoc[0](Arg0: u8)
1LdConst[27](u8: 3)
2Eq
3BrFalse(11)
B1:
4LdConst[70](vector<u8>: "85%..)
5Call string::utf8(vector<u8>): String
6LdConst[71](vector<u8>: "7x"..)
7Call string::utf8(vector<u8>): String
8StLoc[6](loc5: String)
9StLoc[5](loc4: String)
10Branch(47)
B2:
11CopyLoc[0](Arg0: u8)
12LdConst[26](u8: 2)
13Eq
14BrFalse(22)
B3:
15LdConst[72](vector<u8>: "60%..)
16Call string::utf8(vector<u8>): String
17LdConst[73](vector<u8>: "5x"..)
18Call string::utf8(vector<u8>): String
19StLoc[4](loc3: String)
20StLoc[3](loc2: String)
21Branch(43)
B4:
22MoveLoc[0](Arg0: u8)
23LdConst[25](u8: 1)
24Eq
25BrFalse(33)
B5:
26LdConst[74](vector<u8>: "50%..)
27Call string::utf8(vector<u8>): String
28LdConst[75](vector<u8>: "3x"..)
29Call string::utf8(vector<u8>): String
30StLoc[2](loc1: String)
31StLoc[1](loc0: String)
32Branch(39)
B6:
33LdConst[76](vector<u8>: "40%..)
34Call string::utf8(vector<u8>): String
35LdConst[77](vector<u8>: "1x"..)
36Call string::utf8(vector<u8>): String
37StLoc[2](loc1: String)
38StLoc[1](loc0: String)
B7:
39MoveLoc[1](loc0: String)
40MoveLoc[2](loc1: String)
41StLoc[4](loc3: String)
42StLoc[3](loc2: String)
B8:
43MoveLoc[3](loc2: String)
44MoveLoc[4](loc3: String)
45StLoc[6](loc5: String)
46StLoc[5](loc4: String)
B9:
47MoveLoc[5](loc4: String)
48MoveLoc[6](loc5: String)
49Ret
}
 
entry public set_referrer(Arg0: &mut ReferralRegistry, Arg1: &PackSupply, Arg2: address, Arg3: &Clock, Arg4: &mut TxContext) {
L5: loc0: address
B0:
0MoveLoc[4](Arg4: &mut TxContext)
1FreezeRef
2Call tx_context::sender(&TxContext): address
3StLoc[5](loc0: address)
4CopyLoc[2](Arg2: address)
5CopyLoc[5](loc0: address)
6Neq
7BrFalse(9)
B1:
8Branch(15)
B2:
9MoveLoc[0](Arg0: &mut ReferralRegistry)
10Pop
11MoveLoc[3](Arg3: &Clock)
12Pop
13LdConst[8](u64: 9)
14Abort
B3:
15CopyLoc[0](Arg0: &mut ReferralRegistry)
16ImmBorrowField[40](ReferralRegistry.referrers: Table<address, address>)
17CopyLoc[5](loc0: address)
18Call table::contains<address, address>(&Table<address, address>, address): bool
19Not
20BrFalse(22)
B4:
21Branch(28)
B5:
22MoveLoc[0](Arg0: &mut ReferralRegistry)
23Pop
24MoveLoc[3](Arg3: &Clock)
25Pop
26LdConst[9](u64: 10)
27Abort
B6:
28MoveLoc[0](Arg0: &mut ReferralRegistry)
29MutBorrowField[40](ReferralRegistry.referrers: Table<address, address>)
30CopyLoc[5](loc0: address)
31CopyLoc[2](Arg2: address)
32Call table::add<address, address>(&mut Table<address, address>, address, address)
33MoveLoc[5](loc0: address)
34MoveLoc[2](Arg2: address)
35MoveLoc[3](Arg3: &Clock)
36Call clock::timestamp_ms(&Clock): u64
37Pack[22](ReferrerSet)
38Call event::emit<ReferrerSet>(ReferrerSet)
39Ret
}
 
public get_referrer(Arg0: &ReferralRegistry, Arg1: address): Option<address> {
L2: loc0: Option<address>
B0:
0CopyLoc[0](Arg0: &ReferralRegistry)
1ImmBorrowField[40](ReferralRegistry.referrers: Table<address, address>)
2CopyLoc[1](Arg1: address)
3Call table::contains<address, address>(&Table<address, address>, address): bool
4BrFalse(13)
B1:
5MoveLoc[0](Arg0: &ReferralRegistry)
6ImmBorrowField[40](ReferralRegistry.referrers: Table<address, address>)
7MoveLoc[1](Arg1: address)
8Call table::borrow<address, address>(&Table<address, address>, address): &address
9ReadRef
10Call option::some<address>(address): Option<address>
11StLoc[2](loc0: Option<address>)
12Branch(17)
B2:
13MoveLoc[0](Arg0: &ReferralRegistry)
14Pop
15Call option::none<address>(): Option<address>
16StLoc[2](loc0: Option<address>)
B3:
17MoveLoc[2](loc0: Option<address>)
18Ret
}
 
get_rarity_name(Arg0: u8): String {
L1: loc0: String
L2: loc1: String
L3: loc2: String
B0:
0CopyLoc[0](Arg0: u8)
1LdConst[27](u8: 3)
2Eq
3BrFalse(8)
B1:
4LdConst[78](vector<u8>: "Gol..)
5Call string::utf8(vector<u8>): String
6StLoc[3](loc2: String)
7Branch(31)
B2:
8CopyLoc[0](Arg0: u8)
9LdConst[26](u8: 2)
10Eq
11BrFalse(16)
B3:
12LdConst[79](vector<u8>: "Kin..)
13Call string::utf8(vector<u8>): String
14StLoc[2](loc1: String)
15Branch(29)
B4:
16MoveLoc[0](Arg0: u8)
17LdConst[25](u8: 1)
18Eq
19BrFalse(24)
B5:
20LdConst[80](vector<u8>: "Que..)
21Call string::utf8(vector<u8>): String
22StLoc[1](loc0: String)
23Branch(27)
B6:
24LdConst[81](vector<u8>: "Com..)
25Call string::utf8(vector<u8>): String
26StLoc[1](loc0: String)
B7:
27MoveLoc[1](loc0: String)
28StLoc[2](loc1: String)
B8:
29MoveLoc[2](loc1: String)
30StLoc[3](loc2: String)
B9:
31MoveLoc[3](loc2: String)
32Ret
}
 
get_rarity_image_url(Arg0: u8): String {
L1: loc0: String
L2: loc1: String
L3: loc2: String
B0:
0CopyLoc[0](Arg0: u8)
1LdConst[27](u8: 3)
2Eq
3BrFalse(8)
B1:
4LdConst[82](vector<u8>: "htt..)
5Call string::utf8(vector<u8>): String
6StLoc[3](loc2: String)
7Branch(31)
B2:
8CopyLoc[0](Arg0: u8)
9LdConst[26](u8: 2)
10Eq
11BrFalse(16)
B3:
12LdConst[83](vector<u8>: "htt..)
13Call string::utf8(vector<u8>): String
14StLoc[2](loc1: String)
15Branch(29)
B4:
16MoveLoc[0](Arg0: u8)
17LdConst[25](u8: 1)
18Eq
19BrFalse(24)
B5:
20LdConst[84](vector<u8>: "htt..)
21Call string::utf8(vector<u8>): String
22StLoc[1](loc0: String)
23Branch(27)
B6:
24LdConst[85](vector<u8>: "htt..)
25Call string::utf8(vector<u8>): String
26StLoc[1](loc0: String)
B7:
27MoveLoc[1](loc0: String)
28StLoc[2](loc1: String)
B8:
29MoveLoc[2](loc1: String)
30StLoc[3](loc2: String)
B9:
31MoveLoc[3](loc2: String)
32Ret
}
 
get_rarity_description(Arg0: u8): String {
B0:
0LdConst[86](vector<u8>: "Duc..)
1Call string::utf8(vector<u8>): String
2Ret
}
 
public get_rarity_level(Arg0: &DuckNFT): u8 {
B0:
0MoveLoc[0](Arg0: &DuckNFT)
1ImmBorrowField[41](DuckNFT.rarity: u8)
2ReadRef
3Ret
}
 
check_and_start_new_batch_if_ready(Arg0: &mut PackSupply, Arg1: &mut PerTypeSupply, Arg2: &Clock) {
L3: loc0: u64
L4: loc1: u64
L5: loc2: u64
L6: loc3: u64
B0:
0CopyLoc[0](Arg0: &mut PackSupply)
1ImmBorrowField[23](PackSupply.in_cooldown: bool)
2ReadRef
3Not
4BrFalse(12)
B1:
5MoveLoc[1](Arg1: &mut PerTypeSupply)
6Pop
7MoveLoc[0](Arg0: &mut PackSupply)
8Pop
9MoveLoc[2](Arg2: &Clock)
10Pop
11Ret
B2:
12CopyLoc[0](Arg0: &mut PackSupply)
13ImmBorrowField[42](PackSupply.batch_transition_lock: bool)
14ReadRef
15Not
16BrFalse(18)
B3:
17Branch(26)
B4:
18MoveLoc[1](Arg1: &mut PerTypeSupply)
19Pop
20MoveLoc[0](Arg0: &mut PackSupply)
21Pop
22MoveLoc[2](Arg2: &Clock)
23Pop
24LdConst[14](u64: 15)
25Abort
B5:
26MoveLoc[2](Arg2: &Clock)
27Call clock::timestamp_ms(&Clock): u64
28StLoc[6](loc3: u64)
29CopyLoc[6](loc3: u64)
30CopyLoc[0](Arg0: &mut PackSupply)
31ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
32ReadRef
33Ge
34BrFalse(124)
B6:
35LdTrue
36CopyLoc[0](Arg0: &mut PackSupply)
37MutBorrowField[42](PackSupply.batch_transition_lock: bool)
38WriteRef
39LdFalse
40CopyLoc[0](Arg0: &mut PackSupply)
41MutBorrowField[23](PackSupply.in_cooldown: bool)
42WriteRef
43LdConst[35](u64: 300)
44CopyLoc[0](Arg0: &mut PackSupply)
45MutBorrowField[3](PackSupply.total_packs_remaining: u64)
46WriteRef
47CopyLoc[6](loc3: u64)
48CopyLoc[0](Arg0: &mut PackSupply)
49MutBorrowField[6](PackSupply.last_refresh_time: u64)
50WriteRef
51CopyLoc[1](Arg1: &mut PerTypeSupply)
52ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
53ReadRef
54LdU64(0)
55Gt
56BrFalse(62)
B7:
57CopyLoc[1](Arg1: &mut PerTypeSupply)
58ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
59ReadRef
60StLoc[3](loc0: u64)
61Branch(64)
B8:
62LdConst[35](u64: 300)
63StLoc[3](loc0: u64)
B9:
64MoveLoc[3](loc0: u64)
65CopyLoc[1](Arg1: &mut PerTypeSupply)
66MutBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
67WriteRef
68CopyLoc[1](Arg1: &mut PerTypeSupply)
69ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
70ReadRef
71LdU64(0)
72Gt
73BrFalse(79)
B10:
74CopyLoc[1](Arg1: &mut PerTypeSupply)
75ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
76ReadRef
77StLoc[4](loc1: u64)
78Branch(81)
B11:
79LdConst[35](u64: 300)
80StLoc[4](loc1: u64)
B12:
81MoveLoc[4](loc1: u64)
82CopyLoc[1](Arg1: &mut PerTypeSupply)
83MutBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
84WriteRef
85CopyLoc[1](Arg1: &mut PerTypeSupply)
86ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
87ReadRef
88LdU64(0)
89Gt
90BrFalse(96)
B13:
91CopyLoc[1](Arg1: &mut PerTypeSupply)
92ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
93ReadRef
94StLoc[5](loc2: u64)
95Branch(98)
B14:
96LdConst[35](u64: 300)
97StLoc[5](loc2: u64)
B15:
98MoveLoc[5](loc2: u64)
99MoveLoc[1](Arg1: &mut PerTypeSupply)
100MutBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
101WriteRef
102CopyLoc[0](Arg0: &mut PackSupply)
103ImmBorrowField[7](PackSupply.current_batch_number: u64)
104ReadRef
105CopyLoc[0](Arg0: &mut PackSupply)
106MutBorrowField[8](PackSupply.display_batch_number: u64)
107WriteRef
108LdFalse
109CopyLoc[0](Arg0: &mut PackSupply)
110MutBorrowField[9](PackSupply.previous_batch_completed: bool)
111WriteRef
112CopyLoc[0](Arg0: &mut PackSupply)
113ImmBorrowField[7](PackSupply.current_batch_number: u64)
114ReadRef
115MoveLoc[6](loc3: u64)
116LdConst[35](u64: 300)
117Pack[25](BatchStarted)
118Call event::emit<BatchStarted>(BatchStarted)
119LdFalse
120MoveLoc[0](Arg0: &mut PackSupply)
121MutBorrowField[42](PackSupply.batch_transition_lock: bool)
122WriteRef
123Branch(128)
B16:
124MoveLoc[1](Arg1: &mut PerTypeSupply)
125Pop
126MoveLoc[0](Arg0: &mut PackSupply)
127Pop
B17:
128Ret
}
 
start_cooldown_if_sold_out(Arg0: &mut PackSupply, Arg1: &mut PerTypeSupply, Arg2: &Clock) {
L3: loc0: bool
L4: loc1: u64
L5: loc2: u64
L6: loc3: u64
L7: loc4: u64
L8: loc5: u64
L9: loc6: u64
L10: loc7: u64
B0:
0CopyLoc[0](Arg0: &mut PackSupply)
1ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
2ReadRef
3LdU64(0)
4Eq
5BrFalse(12)
B1:
6CopyLoc[0](Arg0: &mut PackSupply)
7ImmBorrowField[23](PackSupply.in_cooldown: bool)
8ReadRef
9Not
10StLoc[3](loc0: bool)
11Branch(14)
B2:
12LdFalse
13StLoc[3](loc0: bool)
B3:
14MoveLoc[3](loc0: bool)
15BrFalse(140)
B4:
16MoveLoc[2](Arg2: &Clock)
17Call clock::timestamp_ms(&Clock): u64
18StLoc[10](loc7: u64)
19CopyLoc[1](Arg1: &mut PerTypeSupply)
20ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
21ReadRef
22LdU64(0)
23Gt
24BrFalse(30)
B5:
25CopyLoc[1](Arg1: &mut PerTypeSupply)
26ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
27ReadRef
28StLoc[4](loc1: u64)
29Branch(32)
B6:
30LdConst[35](u64: 300)
31StLoc[4](loc1: u64)
B7:
32MoveLoc[4](loc1: u64)
33CopyLoc[1](Arg1: &mut PerTypeSupply)
34MutBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
35WriteRef
36CopyLoc[1](Arg1: &mut PerTypeSupply)
37ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
38ReadRef
39LdU64(0)
40Gt
41BrFalse(47)
B8:
42CopyLoc[1](Arg1: &mut PerTypeSupply)
43ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
44ReadRef
45StLoc[5](loc2: u64)
46Branch(49)
B9:
47LdConst[35](u64: 300)
48StLoc[5](loc2: u64)
B10:
49MoveLoc[5](loc2: u64)
50CopyLoc[1](Arg1: &mut PerTypeSupply)
51MutBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
52WriteRef
53CopyLoc[1](Arg1: &mut PerTypeSupply)
54ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
55ReadRef
56LdU64(0)
57Gt
58BrFalse(64)
B11:
59CopyLoc[1](Arg1: &mut PerTypeSupply)
60ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
61ReadRef
62StLoc[6](loc3: u64)
63Branch(66)
B12:
64LdConst[35](u64: 300)
65StLoc[6](loc3: u64)
B13:
66MoveLoc[6](loc3: u64)
67MoveLoc[1](Arg1: &mut PerTypeSupply)
68MutBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
69WriteRef
70CopyLoc[0](Arg0: &mut PackSupply)
71ImmBorrowField[7](PackSupply.current_batch_number: u64)
72ReadRef
73StLoc[8](loc5: u64)
74CopyLoc[0](Arg0: &mut PackSupply)
75ImmBorrowField[7](PackSupply.current_batch_number: u64)
76ReadRef
77LdU64(1)
78Add
79CopyLoc[0](Arg0: &mut PackSupply)
80MutBorrowField[7](PackSupply.current_batch_number: u64)
81WriteRef
82CopyLoc[8](loc5: u64)
83CopyLoc[0](Arg0: &mut PackSupply)
84MutBorrowField[8](PackSupply.display_batch_number: u64)
85WriteRef
86LdTrue
87CopyLoc[0](Arg0: &mut PackSupply)
88MutBorrowField[9](PackSupply.previous_batch_completed: bool)
89WriteRef
90LdTrue
91CopyLoc[0](Arg0: &mut PackSupply)
92MutBorrowField[23](PackSupply.in_cooldown: bool)
93WriteRef
94CopyLoc[10](loc7: u64)
95CopyLoc[0](Arg0: &mut PackSupply)
96MutBorrowField[24](PackSupply.last_sellout_time: u64)
97WriteRef
98CopyLoc[0](Arg0: &mut PackSupply)
99ImmBorrowField[25](PackSupply.id: UID)
100LdConst[41](vector<u8>: "coo..)
101Call dynamic_field::exists_<vector<u8>>(&UID, vector<u8>): bool
102BrFalse(110)
B14:
103CopyLoc[0](Arg0: &mut PackSupply)
104ImmBorrowField[25](PackSupply.id: UID)
105LdConst[41](vector<u8>: "coo..)
106Call dynamic_field::borrow<vector<u8>, u64>(&UID, vector<u8>): &u64
107ReadRef
108StLoc[7](loc4: u64)
109Branch(112)
B15:
110LdConst[36](u64: 8640..)
111StLoc[7](loc4: u64)
B16:
112MoveLoc[7](loc4: u64)
113StLoc[9](loc6: u64)
114CopyLoc[10](loc7: u64)
115MoveLoc[9](loc6: u64)
116Add
117CopyLoc[0](Arg0: &mut PackSupply)
118MutBorrowField[26](PackSupply.cooldown_end_time: u64)
119WriteRef
120CopyLoc[8](loc5: u64)
121CopyLoc[0](Arg0: &mut PackSupply)
122ImmBorrowField[7](PackSupply.current_batch_number: u64)
123ReadRef
124CopyLoc[0](Arg0: &mut PackSupply)
125ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
126ReadRef
127CopyLoc[0](Arg0: &mut PackSupply)
128ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
129ReadRef
130Pack[26](LastMintOfBatch)
131Call event::emit<LastMintOfBatch>(LastMintOfBatch)
132MoveLoc[8](loc5: u64)
133MoveLoc[10](loc7: u64)
134MoveLoc[0](Arg0: &mut PackSupply)
135ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
136ReadRef
137Pack[23](CooldownStarted)
138Call event::emit<CooldownStarted>(CooldownStarted)
139Branch(146)
B17:
140MoveLoc[1](Arg1: &mut PerTypeSupply)
141Pop
142MoveLoc[0](Arg0: &mut PackSupply)
143Pop
144MoveLoc[2](Arg2: &Clock)
145Pop
B18:
146Ret
}
 
entry public lock_duck_in_kiosk(Arg0: DuckNFT, Arg1: &mut Kiosk, Arg2: &KioskOwnerCap, Arg3: &TransferPolicy<DuckNFT>) {
B0:
0MoveLoc[1](Arg1: &mut Kiosk)
1MoveLoc[2](Arg2: &KioskOwnerCap)
2MoveLoc[3](Arg3: &TransferPolicy<DuckNFT>)
3MoveLoc[0](Arg0: DuckNFT)
4Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
5Ret
}
 
entry public admin_refresh_supply(Arg0: &AdminCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Clock) {
L4: loc0: u64
L5: loc1: u64
L6: loc2: u64
L7: loc3: u64
B0:
0MoveLoc[3](Arg3: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[7](loc3: u64)
3LdConst[35](u64: 300)
4CopyLoc[1](Arg1: &mut PackSupply)
5MutBorrowField[3](PackSupply.total_packs_remaining: u64)
6WriteRef
7CopyLoc[7](loc3: u64)
8MoveLoc[1](Arg1: &mut PackSupply)
9MutBorrowField[6](PackSupply.last_refresh_time: u64)
10WriteRef
11CopyLoc[2](Arg2: &mut PerTypeSupply)
12ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
13ReadRef
14LdU64(0)
15Gt
16BrFalse(22)
B1:
17CopyLoc[2](Arg2: &mut PerTypeSupply)
18ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
19ReadRef
20StLoc[4](loc0: u64)
21Branch(24)
B2:
22LdConst[35](u64: 300)
23StLoc[4](loc0: u64)
B3:
24MoveLoc[4](loc0: u64)
25CopyLoc[2](Arg2: &mut PerTypeSupply)
26MutBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
27WriteRef
28CopyLoc[2](Arg2: &mut PerTypeSupply)
29ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
30ReadRef
31LdU64(0)
32Gt
33BrFalse(39)
B4:
34CopyLoc[2](Arg2: &mut PerTypeSupply)
35ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
36ReadRef
37StLoc[5](loc1: u64)
38Branch(41)
B5:
39LdConst[35](u64: 300)
40StLoc[5](loc1: u64)
B6:
41MoveLoc[5](loc1: u64)
42CopyLoc[2](Arg2: &mut PerTypeSupply)
43MutBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
44WriteRef
45CopyLoc[2](Arg2: &mut PerTypeSupply)
46ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
47ReadRef
48LdU64(0)
49Gt
50BrFalse(56)
B7:
51CopyLoc[2](Arg2: &mut PerTypeSupply)
52ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
53ReadRef
54StLoc[6](loc2: u64)
55Branch(58)
B8:
56LdConst[35](u64: 300)
57StLoc[6](loc2: u64)
B9:
58MoveLoc[6](loc2: u64)
59MoveLoc[2](Arg2: &mut PerTypeSupply)
60MutBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
61WriteRef
62MoveLoc[7](loc3: u64)
63LdConst[35](u64: 300)
64Pack[11](SupplyRefreshed)
65Call event::emit<SupplyRefreshed>(SupplyRefreshed)
66Ret
}
 
is_mint_running(Arg0: &PackSupply): bool {
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[0](PackSupply.start_time: u64)
2ReadRef
3LdU64(0)
4Eq
5BrFalse(10)
B1:
6MoveLoc[0](Arg0: &PackSupply)
7Pop
8LdFalse
9Ret
B2:
10CopyLoc[0](Arg0: &PackSupply)
11ImmBorrowField[23](PackSupply.in_cooldown: bool)
12ReadRef
13BrFalse(18)
B3:
14MoveLoc[0](Arg0: &PackSupply)
15Pop
16LdFalse
17Ret
B4:
18MoveLoc[0](Arg0: &PackSupply)
19ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
20ReadRef
21BrFalse(24)
B5:
22LdTrue
23Ret
B6:
24LdTrue
25Ret
}
 
entry public admin_update_pack_limits(Arg0: &AdminCap, Arg1: &PackSupply, Arg2: &mut PerTypeSupply, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: &TxContext) {
L7: loc0: bool
L8: loc1: u64
L9: loc2: u64
L10: loc3: u64
L11: loc4: u64
L12: loc5: u64
L13: loc6: u64
L14: loc7: u64
L15: loc8: u64
L16: loc9: address
L17: loc10: u64
B0:
0CopyLoc[1](Arg1: &PackSupply)
1Call is_mint_running(&PackSupply): bool
2Not
3BrFalse(5)
B1:
4Branch(13)
B2:
5MoveLoc[2](Arg2: &mut PerTypeSupply)
6Pop
7MoveLoc[1](Arg1: &PackSupply)
8Pop
9MoveLoc[6](Arg6: &TxContext)
10Pop
11LdConst[18](u64: 19)
12Abort
B3:
13CopyLoc[3](Arg3: u64)
14LdU64(0)
15Gt
16BrFalse(29)
B4:
17CopyLoc[4](Arg4: u64)
18LdU64(0)
19Gt
20BrFalse(26)
B5:
21CopyLoc[5](Arg5: u64)
22LdU64(0)
23Gt
24StLoc[7](loc0: bool)
25Branch(31)
B6:
26LdFalse
27StLoc[7](loc0: bool)
28Branch(31)
B7:
29LdFalse
30StLoc[7](loc0: bool)
B8:
31MoveLoc[7](loc0: bool)
32BrFalse(63)
B9:
33CopyLoc[3](Arg3: u64)
34CopyLoc[4](Arg4: u64)
35Add
36CopyLoc[5](Arg5: u64)
37Add
38StLoc[17](loc10: u64)
39MoveLoc[1](Arg1: &PackSupply)
40ImmBorrowField[0](PackSupply.start_time: u64)
41ReadRef
42LdU64(0)
43Eq
44BrFalse(48)
B10:
45LdConst[37](u64: 600)
46StLoc[8](loc1: u64)
47Branch(50)
B11:
48LdConst[35](u64: 300)
49StLoc[8](loc1: u64)
B12:
50MoveLoc[8](loc1: u64)
51StLoc[12](loc5: u64)
52MoveLoc[17](loc10: u64)
53MoveLoc[12](loc5: u64)
54Eq
55BrFalse(57)
B13:
56Branch(65)
B14:
57MoveLoc[2](Arg2: &mut PerTypeSupply)
58Pop
59MoveLoc[6](Arg6: &TxContext)
60Pop
61LdConst[19](u64: 20)
62Abort
B15:
63MoveLoc[1](Arg1: &PackSupply)
64Pop
B16:
65CopyLoc[2](Arg2: &mut PerTypeSupply)
66ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
67ReadRef
68StLoc[13](loc6: u64)
69CopyLoc[2](Arg2: &mut PerTypeSupply)
70ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
71ReadRef
72StLoc[15](loc8: u64)
73CopyLoc[2](Arg2: &mut PerTypeSupply)
74ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
75ReadRef
76StLoc[14](loc7: u64)
77CopyLoc[3](Arg3: u64)
78CopyLoc[2](Arg2: &mut PerTypeSupply)
79MutBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
80WriteRef
81CopyLoc[4](Arg4: u64)
82CopyLoc[2](Arg2: &mut PerTypeSupply)
83MutBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
84WriteRef
85CopyLoc[5](Arg5: u64)
86CopyLoc[2](Arg2: &mut PerTypeSupply)
87MutBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
88WriteRef
89CopyLoc[3](Arg3: u64)
90LdU64(0)
91Gt
92BrFalse(96)
B17:
93CopyLoc[3](Arg3: u64)
94StLoc[9](loc2: u64)
95Branch(98)
B18:
96LdConst[35](u64: 300)
97StLoc[9](loc2: u64)
B19:
98MoveLoc[9](loc2: u64)
99CopyLoc[2](Arg2: &mut PerTypeSupply)
100MutBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
101WriteRef
102CopyLoc[4](Arg4: u64)
103LdU64(0)
104Gt
105BrFalse(109)
B20:
106CopyLoc[4](Arg4: u64)
107StLoc[10](loc3: u64)
108Branch(111)
B21:
109LdConst[35](u64: 300)
110StLoc[10](loc3: u64)
B22:
111MoveLoc[10](loc3: u64)
112CopyLoc[2](Arg2: &mut PerTypeSupply)
113MutBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
114WriteRef
115CopyLoc[5](Arg5: u64)
116LdU64(0)
117Gt
118BrFalse(122)
B23:
119CopyLoc[5](Arg5: u64)
120StLoc[11](loc4: u64)
121Branch(124)
B24:
122LdConst[35](u64: 300)
123StLoc[11](loc4: u64)
B25:
124MoveLoc[11](loc4: u64)
125MoveLoc[2](Arg2: &mut PerTypeSupply)
126MutBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
127WriteRef
128MoveLoc[6](Arg6: &TxContext)
129Call tx_context::sender(&TxContext): address
130StLoc[16](loc9: address)
131CopyLoc[13](loc6: u64)
132CopyLoc[3](Arg3: u64)
133Neq
134BrFalse(141)
B26:
135LdConst[24](u8: 0)
136MoveLoc[13](loc6: u64)
137MoveLoc[3](Arg3: u64)
138CopyLoc[16](loc9: address)
139Pack[27](PackTypeLimitUpdated)
140Call event::emit<PackTypeLimitUpdated>(PackTypeLimitUpdated)
B27:
141CopyLoc[15](loc8: u64)
142CopyLoc[4](Arg4: u64)
143Neq
144BrFalse(151)
B28:
145LdConst[25](u8: 1)
146MoveLoc[15](loc8: u64)
147MoveLoc[4](Arg4: u64)
148CopyLoc[16](loc9: address)
149Pack[27](PackTypeLimitUpdated)
150Call event::emit<PackTypeLimitUpdated>(PackTypeLimitUpdated)
B29:
151CopyLoc[14](loc7: u64)
152CopyLoc[5](Arg5: u64)
153Neq
154BrFalse(161)
B30:
155LdConst[26](u8: 2)
156MoveLoc[14](loc7: u64)
157MoveLoc[5](Arg5: u64)
158MoveLoc[16](loc9: address)
159Pack[27](PackTypeLimitUpdated)
160Call event::emit<PackTypeLimitUpdated>(PackTypeLimitUpdated)
B31:
161Ret
}
 
entry public admin_update_basic_price(Arg0: &AdminCap, Arg1: &mut PackSupply, Arg2: u64, Arg3: u64) {
L4: loc0: u64
L5: loc1: u64
B0:
0CopyLoc[1](Arg1: &mut PackSupply)
1ImmBorrowField[27](PackSupply.basic_egg_sht_cost: u64)
2ReadRef
3StLoc[4](loc0: u64)
4CopyLoc[1](Arg1: &mut PackSupply)
5ImmBorrowField[28](PackSupply.basic_egg_sui_cost: u64)
6ReadRef
7StLoc[5](loc1: u64)
8CopyLoc[2](Arg2: u64)
9CopyLoc[1](Arg1: &mut PackSupply)
10MutBorrowField[27](PackSupply.basic_egg_sht_cost: u64)
11WriteRef
12CopyLoc[3](Arg3: u64)
13MoveLoc[1](Arg1: &mut PackSupply)
14MutBorrowField[28](PackSupply.basic_egg_sui_cost: u64)
15WriteRef
16LdConst[24](u8: 0)
17MoveLoc[4](loc0: u64)
18MoveLoc[2](Arg2: u64)
19MoveLoc[5](loc1: u64)
20MoveLoc[3](Arg3: u64)
21Pack[12](PriceUpdated)
22Call event::emit<PriceUpdated>(PriceUpdated)
23Ret
}
 
entry public admin_update_rare_price(Arg0: &AdminCap, Arg1: &mut PackSupply, Arg2: u64, Arg3: u64) {
L4: loc0: u64
L5: loc1: u64
B0:
0CopyLoc[1](Arg1: &mut PackSupply)
1ImmBorrowField[30](PackSupply.rare_egg_sht_cost: u64)
2ReadRef
3StLoc[4](loc0: u64)
4CopyLoc[1](Arg1: &mut PackSupply)
5ImmBorrowField[31](PackSupply.rare_egg_sui_cost: u64)
6ReadRef
7StLoc[5](loc1: u64)
8CopyLoc[2](Arg2: u64)
9CopyLoc[1](Arg1: &mut PackSupply)
10MutBorrowField[30](PackSupply.rare_egg_sht_cost: u64)
11WriteRef
12CopyLoc[3](Arg3: u64)
13MoveLoc[1](Arg1: &mut PackSupply)
14MutBorrowField[31](PackSupply.rare_egg_sui_cost: u64)
15WriteRef
16LdConst[25](u8: 1)
17MoveLoc[4](loc0: u64)
18MoveLoc[2](Arg2: u64)
19MoveLoc[5](loc1: u64)
20MoveLoc[3](Arg3: u64)
21Pack[12](PriceUpdated)
22Call event::emit<PriceUpdated>(PriceUpdated)
23Ret
}
 
entry public admin_update_golden_price(Arg0: &AdminCap, Arg1: &mut PackSupply, Arg2: u64, Arg3: u64) {
L4: loc0: u64
L5: loc1: u64
B0:
0CopyLoc[1](Arg1: &mut PackSupply)
1ImmBorrowField[32](PackSupply.golden_egg_sht_cost: u64)
2ReadRef
3StLoc[4](loc0: u64)
4CopyLoc[1](Arg1: &mut PackSupply)
5ImmBorrowField[33](PackSupply.golden_egg_sui_cost: u64)
6ReadRef
7StLoc[5](loc1: u64)
8CopyLoc[2](Arg2: u64)
9CopyLoc[1](Arg1: &mut PackSupply)
10MutBorrowField[32](PackSupply.golden_egg_sht_cost: u64)
11WriteRef
12CopyLoc[3](Arg3: u64)
13MoveLoc[1](Arg1: &mut PackSupply)
14MutBorrowField[33](PackSupply.golden_egg_sui_cost: u64)
15WriteRef
16LdConst[26](u8: 2)
17MoveLoc[4](loc0: u64)
18MoveLoc[2](Arg2: u64)
19MoveLoc[5](loc1: u64)
20MoveLoc[3](Arg3: u64)
21Pack[12](PriceUpdated)
22Call event::emit<PriceUpdated>(PriceUpdated)
23Ret
}
 
entry public admin_update_genesis_whitelist_prices(Arg0: &AdminCap, Arg1: &mut PackSupply, Arg2: u64, Arg3: u64, Arg4: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1CopyLoc[1](Arg1: &mut PackSupply)
2MutBorrowField[34](PackSupply.genesis_whitelist_basic_sui_cost: u64)
3WriteRef
4MoveLoc[3](Arg3: u64)
5CopyLoc[1](Arg1: &mut PackSupply)
6MutBorrowField[36](PackSupply.genesis_whitelist_rare_sui_cost: u64)
7WriteRef
8MoveLoc[4](Arg4: u64)
9MoveLoc[1](Arg1: &mut PackSupply)
10MutBorrowField[38](PackSupply.genesis_whitelist_golden_sui_cost: u64)
11WriteRef
12Ret
}
 
entry public admin_update_genesis_public_prices(Arg0: &AdminCap, Arg1: &mut PackSupply, Arg2: u64, Arg3: u64, Arg4: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1CopyLoc[1](Arg1: &mut PackSupply)
2MutBorrowField[35](PackSupply.genesis_public_basic_sui_cost: u64)
3WriteRef
4MoveLoc[3](Arg3: u64)
5CopyLoc[1](Arg1: &mut PackSupply)
6MutBorrowField[37](PackSupply.genesis_public_rare_sui_cost: u64)
7WriteRef
8MoveLoc[4](Arg4: u64)
9MoveLoc[1](Arg1: &mut PackSupply)
10MutBorrowField[39](PackSupply.genesis_public_golden_sui_cost: u64)
11WriteRef
12Ret
}
 
entry public admin_update_treasury_wallet(Arg0: &AdminCap, Arg1: &mut TreasuryConfig, Arg2: address) {
L3: loc0: address
B0:
0CopyLoc[1](Arg1: &mut TreasuryConfig)
1ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
2ReadRef
3StLoc[3](loc0: address)
4CopyLoc[2](Arg2: address)
5MoveLoc[1](Arg1: &mut TreasuryConfig)
6MutBorrowField[29](TreasuryConfig.treasury_wallet: address)
7WriteRef
8MoveLoc[3](loc0: address)
9MoveLoc[2](Arg2: address)
10Pack[21](TreasuryWalletUpdated)
11Call event::emit<TreasuryWalletUpdated>(TreasuryWalletUpdated)
12Ret
}
 
entry public admin_update_cooldown_duration(Arg0: &AdminCap, Arg1: &mut PackSupply, Arg2: u64, Arg3: &TxContext) {
L4: loc0: u64
L5: loc1: u64
B0:
0CopyLoc[1](Arg1: &mut PackSupply)
1ImmBorrowField[23](PackSupply.in_cooldown: bool)
2ReadRef
3Not
4BrFalse(6)
B1:
5Branch(12)
B2:
6MoveLoc[1](Arg1: &mut PackSupply)
7Pop
8MoveLoc[3](Arg3: &TxContext)
9Pop
10LdConst[12](u64: 13)
11Abort
B3:
12CopyLoc[1](Arg1: &mut PackSupply)
13ImmBorrowField[25](PackSupply.id: UID)
14LdConst[41](vector<u8>: "coo..)
15Call dynamic_field::exists_<vector<u8>>(&UID, vector<u8>): bool
16BrFalse(24)
B4:
17CopyLoc[1](Arg1: &mut PackSupply)
18ImmBorrowField[25](PackSupply.id: UID)
19LdConst[41](vector<u8>: "coo..)
20Call dynamic_field::borrow<vector<u8>, u64>(&UID, vector<u8>): &u64
21ReadRef
22StLoc[4](loc0: u64)
23Branch(26)
B5:
24LdConst[36](u64: 8640..)
25StLoc[4](loc0: u64)
B6:
26MoveLoc[4](loc0: u64)
27StLoc[5](loc1: u64)
28CopyLoc[1](Arg1: &mut PackSupply)
29ImmBorrowField[25](PackSupply.id: UID)
30LdConst[41](vector<u8>: "coo..)
31Call dynamic_field::exists_<vector<u8>>(&UID, vector<u8>): bool
32BrFalse(40)
B7:
33CopyLoc[2](Arg2: u64)
34MoveLoc[1](Arg1: &mut PackSupply)
35MutBorrowField[25](PackSupply.id: UID)
36LdConst[41](vector<u8>: "coo..)
37Call dynamic_field::borrow_mut<vector<u8>, u64>(&mut UID, vector<u8>): &mut u64
38WriteRef
39Branch(45)
B8:
40MoveLoc[1](Arg1: &mut PackSupply)
41MutBorrowField[25](PackSupply.id: UID)
42LdConst[41](vector<u8>: "coo..)
43CopyLoc[2](Arg2: u64)
44Call dynamic_field::add<vector<u8>, u64>(&mut UID, vector<u8>, u64)
B9:
45MoveLoc[5](loc1: u64)
46MoveLoc[2](Arg2: u64)
47MoveLoc[3](Arg3: &TxContext)
48Call tx_context::sender(&TxContext): address
49Pack[28](CooldownDurationUpdated)
50Call event::emit<CooldownDurationUpdated>(CooldownDurationUpdated)
51Ret
}
 
public get_cooldown_duration(Arg0: &PackSupply): u64 {
L1: loc0: u64
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[25](PackSupply.id: UID)
2LdConst[41](vector<u8>: "coo..)
3Call dynamic_field::exists_<vector<u8>>(&UID, vector<u8>): bool
4BrFalse(12)
B1:
5MoveLoc[0](Arg0: &PackSupply)
6ImmBorrowField[25](PackSupply.id: UID)
7LdConst[41](vector<u8>: "coo..)
8Call dynamic_field::borrow<vector<u8>, u64>(&UID, vector<u8>): &u64
9ReadRef
10StLoc[1](loc0: u64)
11Branch(16)
B2:
12MoveLoc[0](Arg0: &PackSupply)
13Pop
14LdConst[36](u64: 8640..)
15StLoc[1](loc0: u64)
B3:
16MoveLoc[1](loc0: u64)
17Ret
}
 
entry public admin_recalculate_cooldown(Arg0: &AdminCap, Arg1: &mut PackSupply) {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0CopyLoc[1](Arg1: &mut PackSupply)
1ImmBorrowField[23](PackSupply.in_cooldown: bool)
2ReadRef
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[1](Arg1: &mut PackSupply)
6Pop
7LdConst[23](u64: 24)
8Abort
B3:
9CopyLoc[1](Arg1: &mut PackSupply)
10ImmBorrowField[25](PackSupply.id: UID)
11LdConst[41](vector<u8>: "coo..)
12Call dynamic_field::exists_<vector<u8>>(&UID, vector<u8>): bool
13BrFalse(21)
B4:
14CopyLoc[1](Arg1: &mut PackSupply)
15ImmBorrowField[25](PackSupply.id: UID)
16LdConst[41](vector<u8>: "coo..)
17Call dynamic_field::borrow<vector<u8>, u64>(&UID, vector<u8>): &u64
18ReadRef
19StLoc[2](loc0: u64)
20Branch(23)
B5:
21LdConst[36](u64: 8640..)
22StLoc[2](loc0: u64)
B6:
23MoveLoc[2](loc0: u64)
24StLoc[3](loc1: u64)
25CopyLoc[1](Arg1: &mut PackSupply)
26ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
27ReadRef
28StLoc[4](loc2: u64)
29CopyLoc[1](Arg1: &mut PackSupply)
30ImmBorrowField[24](PackSupply.last_sellout_time: u64)
31ReadRef
32CopyLoc[3](loc1: u64)
33Add
34CopyLoc[1](Arg1: &mut PackSupply)
35MutBorrowField[26](PackSupply.cooldown_end_time: u64)
36WriteRef
37MoveLoc[4](loc2: u64)
38MoveLoc[1](Arg1: &mut PackSupply)
39ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
40ReadRef
41MoveLoc[3](loc1: u64)
42Pack[24](CooldownRecalculated)
43Call event::emit<CooldownRecalculated>(CooldownRecalculated)
44Ret
}
 
entry public admin_create_v2_prices(Arg0: &AdminCap, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: u64, Arg7: &mut TxContext) {
B0:
0MoveLoc[7](Arg7: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[1](Arg1: u64)
3MoveLoc[2](Arg2: u64)
4MoveLoc[3](Arg3: u64)
5MoveLoc[4](Arg4: u64)
6MoveLoc[5](Arg5: u64)
7MoveLoc[6](Arg6: u64)
8Pack[9](PackPricesV2)
9Call transfer::share_object<PackPricesV2>(PackPricesV2)
10Ret
}
 
entry public admin_update_v2_basic_price(Arg0: &AdminCap, Arg1: &mut PackPricesV2, Arg2: u64, Arg3: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1CopyLoc[1](Arg1: &mut PackPricesV2)
2MutBorrowField[43](PackPricesV2.basic_egg_sht_cost: u64)
3WriteRef
4MoveLoc[3](Arg3: u64)
5MoveLoc[1](Arg1: &mut PackPricesV2)
6MutBorrowField[44](PackPricesV2.basic_egg_sui_cost: u64)
7WriteRef
8Ret
}
 
entry public admin_update_v2_rare_price(Arg0: &AdminCap, Arg1: &mut PackPricesV2, Arg2: u64, Arg3: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1CopyLoc[1](Arg1: &mut PackPricesV2)
2MutBorrowField[45](PackPricesV2.rare_egg_sht_cost: u64)
3WriteRef
4MoveLoc[3](Arg3: u64)
5MoveLoc[1](Arg1: &mut PackPricesV2)
6MutBorrowField[46](PackPricesV2.rare_egg_sui_cost: u64)
7WriteRef
8Ret
}
 
entry public admin_update_v2_golden_price(Arg0: &AdminCap, Arg1: &mut PackPricesV2, Arg2: u64, Arg3: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1CopyLoc[1](Arg1: &mut PackPricesV2)
2MutBorrowField[47](PackPricesV2.golden_egg_sht_cost: u64)
3WriteRef
4MoveLoc[3](Arg3: u64)
5MoveLoc[1](Arg1: &mut PackPricesV2)
6MutBorrowField[48](PackPricesV2.golden_egg_sui_cost: u64)
7WriteRef
8Ret
}
 
public get_v2_prices(Arg0: &PackPricesV2): u64 * u64 * u64 * u64 * u64 * u64 {
B0:
0CopyLoc[0](Arg0: &PackPricesV2)
1ImmBorrowField[43](PackPricesV2.basic_egg_sht_cost: u64)
2ReadRef
3CopyLoc[0](Arg0: &PackPricesV2)
4ImmBorrowField[44](PackPricesV2.basic_egg_sui_cost: u64)
5ReadRef
6CopyLoc[0](Arg0: &PackPricesV2)
7ImmBorrowField[45](PackPricesV2.rare_egg_sht_cost: u64)
8ReadRef
9CopyLoc[0](Arg0: &PackPricesV2)
10ImmBorrowField[46](PackPricesV2.rare_egg_sui_cost: u64)
11ReadRef
12CopyLoc[0](Arg0: &PackPricesV2)
13ImmBorrowField[47](PackPricesV2.golden_egg_sht_cost: u64)
14ReadRef
15MoveLoc[0](Arg0: &PackPricesV2)
16ImmBorrowField[48](PackPricesV2.golden_egg_sui_cost: u64)
17ReadRef
18Ret
}
 
public get_pack_supply_status(Arg0: &PackSupply): u64 * u64 * u64 * u64 * bool {
L1: loc0: u64
L2: loc1: u64
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
2ReadRef
3BrFalse(7)
B1:
4LdConst[37](u64: 600)
5StLoc[1](loc0: u64)
6Branch(9)
B2:
7LdConst[35](u64: 300)
8StLoc[1](loc0: u64)
B3:
9MoveLoc[1](loc0: u64)
10StLoc[2](loc1: u64)
11CopyLoc[2](loc1: u64)
12CopyLoc[0](Arg0: &PackSupply)
13ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
14ReadRef
15Sub
16MoveLoc[2](loc1: u64)
17CopyLoc[0](Arg0: &PackSupply)
18ImmBorrowField[6](PackSupply.last_refresh_time: u64)
19ReadRef
20CopyLoc[0](Arg0: &PackSupply)
21ImmBorrowField[0](PackSupply.start_time: u64)
22ReadRef
23MoveLoc[0](Arg0: &PackSupply)
24ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
25ReadRef
26Ret
}
 
public get_per_type_supply_status(Arg0: &PerTypeSupply): u64 * u64 * u64 * u64 * u64 * u64 {
B0:
0CopyLoc[0](Arg0: &PerTypeSupply)
1ImmBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
2ReadRef
3CopyLoc[0](Arg0: &PerTypeSupply)
4ImmBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
5ReadRef
6CopyLoc[0](Arg0: &PerTypeSupply)
7ImmBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
8ReadRef
9CopyLoc[0](Arg0: &PerTypeSupply)
10ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
11ReadRef
12CopyLoc[0](Arg0: &PerTypeSupply)
13ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
14ReadRef
15MoveLoc[0](Arg0: &PerTypeSupply)
16ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
17ReadRef
18Ret
}
 
public is_game_started(Arg0: &PackSupply, Arg1: &Clock): bool {
L2: loc0: bool
L3: loc1: u64
B0:
0MoveLoc[1](Arg1: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[3](loc1: u64)
3CopyLoc[0](Arg0: &PackSupply)
4ImmBorrowField[0](PackSupply.start_time: u64)
5ReadRef
6LdU64(0)
7Gt
8BrFalse(16)
B1:
9MoveLoc[3](loc1: u64)
10MoveLoc[0](Arg0: &PackSupply)
11ImmBorrowField[0](PackSupply.start_time: u64)
12ReadRef
13Ge
14StLoc[2](loc0: bool)
15Branch(20)
B2:
16MoveLoc[0](Arg0: &PackSupply)
17Pop
18LdFalse
19StLoc[2](loc0: bool)
B3:
20MoveLoc[2](loc0: bool)
21Ret
}
 
public get_current_pack_prices(Arg0: &PackSupply): u64 * u64 * u64 * u64 * u64 * u64 {
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[27](PackSupply.basic_egg_sht_cost: u64)
2ReadRef
3CopyLoc[0](Arg0: &PackSupply)
4ImmBorrowField[28](PackSupply.basic_egg_sui_cost: u64)
5ReadRef
6CopyLoc[0](Arg0: &PackSupply)
7ImmBorrowField[30](PackSupply.rare_egg_sht_cost: u64)
8ReadRef
9CopyLoc[0](Arg0: &PackSupply)
10ImmBorrowField[31](PackSupply.rare_egg_sui_cost: u64)
11ReadRef
12CopyLoc[0](Arg0: &PackSupply)
13ImmBorrowField[32](PackSupply.golden_egg_sht_cost: u64)
14ReadRef
15MoveLoc[0](Arg0: &PackSupply)
16ImmBorrowField[33](PackSupply.golden_egg_sui_cost: u64)
17ReadRef
18Ret
}
 
public get_time_until_refresh(Arg0: &PackSupply, Arg1: &Clock): u64 {
L2: loc0: u64
L3: loc1: u64
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[23](PackSupply.in_cooldown: bool)
2ReadRef
3Not
4BrFalse(11)
B1:
5MoveLoc[0](Arg0: &PackSupply)
6Pop
7MoveLoc[1](Arg1: &Clock)
8Pop
9LdU64(0)
10Ret
B2:
11MoveLoc[1](Arg1: &Clock)
12Call clock::timestamp_ms(&Clock): u64
13StLoc[3](loc1: u64)
14CopyLoc[3](loc1: u64)
15CopyLoc[0](Arg0: &PackSupply)
16ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
17ReadRef
18Ge
19BrFalse(25)
B3:
20MoveLoc[0](Arg0: &PackSupply)
21Pop
22LdU64(0)
23StLoc[2](loc0: u64)
24Branch(31)
B4:
25MoveLoc[0](Arg0: &PackSupply)
26ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
27ReadRef
28MoveLoc[3](loc1: u64)
29Sub
30StLoc[2](loc0: u64)
B5:
31MoveLoc[2](loc0: u64)
32Ret
}
 
public get_treasury_wallet(Arg0: &TreasuryConfig): address {
B0:
0MoveLoc[0](Arg0: &TreasuryConfig)
1ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
2ReadRef
3Ret
}
 
public can_set_referrer(Arg0: &ReferralRegistry, Arg1: &PackSupply, Arg2: address): bool {
B0:
0MoveLoc[0](Arg0: &ReferralRegistry)
1ImmBorrowField[40](ReferralRegistry.referrers: Table<address, address>)
2MoveLoc[2](Arg2: address)
3Call table::contains<address, address>(&Table<address, address>, address): bool
4Not
5Ret
}
 
public get_current_batch(Arg0: &PackSupply): u64 * bool {
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[7](PackSupply.current_batch_number: u64)
2ReadRef
3MoveLoc[0](Arg0: &PackSupply)
4ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
5ReadRef
6Ret
}
 
public get_batch_number(Arg0: &PackSupply): u64 {
B0:
0MoveLoc[0](Arg0: &PackSupply)
1ImmBorrowField[7](PackSupply.current_batch_number: u64)
2ReadRef
3Ret
}
 
public get_batch_display_info(Arg0: &PackSupply): u64 * u64 * bool {
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[7](PackSupply.current_batch_number: u64)
2ReadRef
3CopyLoc[0](Arg0: &PackSupply)
4ImmBorrowField[8](PackSupply.display_batch_number: u64)
5ReadRef
6MoveLoc[0](Arg0: &PackSupply)
7ImmBorrowField[9](PackSupply.previous_batch_completed: bool)
8ReadRef
9Ret
}
 
public get_total_minted(Arg0: &PackSupply): u64 {
B0:
0MoveLoc[0](Arg0: &PackSupply)
1ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
2ReadRef
3Ret
}
 
public get_max_total_supply(Arg0: &PackSupply): u64 {
B0:
0LdConst[34](u64: 5555)
1Ret
}
 
public get_genesis_batch_total_supply(Arg0: &PackSupply): u64 {
B0:
0LdConst[37](u64: 600)
1Ret
}
 
public get_whitelist_allocation(Arg0: &PackSupply): u64 {
B0:
0LdConst[38](u64: 575)
1Ret
}
 
public get_public_phase_allocation(Arg0: &PackSupply): u64 {
B0:
0LdConst[37](u64: 600)
1LdConst[38](u64: 575)
2Sub
3Ret
}
 
public get_regular_batch_supply(Arg0: &PackSupply): u64 {
B0:
0LdConst[35](u64: 300)
1Ret
}
 
public get_whitelist_period_duration(): u64 {
B0:
0LdConst[39](u64: 2160..)
1Ret
}
 
public get_whitelist_per_wallet_limit(): u64 {
B0:
0LdConst[1](u64: 2)
1Ret
}
 
public get_supply_refresh_interval(): u64 {
B0:
0LdConst[36](u64: 8640..)
1Ret
}
 
public get_supply_constants(Arg0: &PackSupply): u64 * u64 * u64 * u64 * u64 * u64 {
B0:
0LdConst[34](u64: 5555)
1LdConst[37](u64: 600)
2LdConst[38](u64: 575)
3LdConst[37](u64: 600)
4LdConst[38](u64: 575)
5Sub
6LdConst[35](u64: 300)
7MoveLoc[0](Arg0: &PackSupply)
8ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
9ReadRef
10Ret
}
 
public get_genesis_pack_prices(Arg0: &PackSupply): u64 * u64 * u64 * u64 * u64 * u64 {
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[34](PackSupply.genesis_whitelist_basic_sui_cost: u64)
2ReadRef
3CopyLoc[0](Arg0: &PackSupply)
4ImmBorrowField[36](PackSupply.genesis_whitelist_rare_sui_cost: u64)
5ReadRef
6CopyLoc[0](Arg0: &PackSupply)
7ImmBorrowField[38](PackSupply.genesis_whitelist_golden_sui_cost: u64)
8ReadRef
9CopyLoc[0](Arg0: &PackSupply)
10ImmBorrowField[35](PackSupply.genesis_public_basic_sui_cost: u64)
11ReadRef
12CopyLoc[0](Arg0: &PackSupply)
13ImmBorrowField[37](PackSupply.genesis_public_rare_sui_cost: u64)
14ReadRef
15MoveLoc[0](Arg0: &PackSupply)
16ImmBorrowField[39](PackSupply.genesis_public_golden_sui_cost: u64)
17ReadRef
18Ret
}
 
public is_in_cooldown(Arg0: &PackSupply): bool {
B0:
0MoveLoc[0](Arg0: &PackSupply)
1ImmBorrowField[23](PackSupply.in_cooldown: bool)
2ReadRef
3Ret
}
 
public get_cooldown_status(Arg0: &PackSupply, Arg1: &Clock): bool * u64 * u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: bool
L5: loc3: bool
L6: loc4: u64
L7: loc5: u64
L8: loc6: u64
L9: loc7: bool
L10: loc8: u64
B0:
0CopyLoc[0](Arg0: &PackSupply)
1ImmBorrowField[23](PackSupply.in_cooldown: bool)
2ReadRef
3BrFalse(25)
B1:
4MoveLoc[1](Arg1: &Clock)
5Call clock::timestamp_ms(&Clock): u64
6StLoc[7](loc5: u64)
7CopyLoc[7](loc5: u64)
8CopyLoc[0](Arg0: &PackSupply)
9ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
10ReadRef
11Ge
12BrFalse(16)
B2:
13LdU64(0)
14StLoc[2](loc0: u64)
15Branch(22)
B3:
16CopyLoc[0](Arg0: &PackSupply)
17ImmBorrowField[26](PackSupply.cooldown_end_time: u64)
18ReadRef
19MoveLoc[7](loc5: u64)
20Sub
21StLoc[2](loc0: u64)
B4:
22MoveLoc[2](loc0: u64)
23StLoc[3](loc1: u64)
24Branch(29)
B5:
25MoveLoc[1](Arg1: &Clock)
26Pop
27LdU64(0)
28StLoc[3](loc1: u64)
B6:
29MoveLoc[3](loc1: u64)
30StLoc[10](loc8: u64)
31CopyLoc[0](Arg0: &PackSupply)
32ImmBorrowField[23](PackSupply.in_cooldown: bool)
33ReadRef
34BrFalse(40)
B7:
35CopyLoc[10](loc8: u64)
36LdU64(0)
37Gt
38StLoc[4](loc2: bool)
39Branch(42)
B8:
40LdFalse
41StLoc[4](loc2: bool)
B9:
42MoveLoc[4](loc2: bool)
43StLoc[9](loc7: bool)
44CopyLoc[0](Arg0: &PackSupply)
45ImmBorrowField[23](PackSupply.in_cooldown: bool)
46ReadRef
47BrFalse(53)
B10:
48CopyLoc[10](loc8: u64)
49LdU64(0)
50Eq
51StLoc[5](loc3: bool)
52Branch(55)
B11:
53LdFalse
54StLoc[5](loc3: bool)
B12:
55MoveLoc[5](loc3: bool)
56BrFalse(62)
B13:
57MoveLoc[0](Arg0: &PackSupply)
58Pop
59LdConst[35](u64: 300)
60StLoc[6](loc4: u64)
61Branch(66)
B14:
62MoveLoc[0](Arg0: &PackSupply)
63ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
64ReadRef
65StLoc[6](loc4: u64)
B15:
66MoveLoc[6](loc4: u64)
67StLoc[8](loc6: u64)
68MoveLoc[9](loc7: bool)
69MoveLoc[10](loc8: u64)
70MoveLoc[8](loc6: u64)
71Ret
}
 
entry public admin_add_to_whitelist(Arg0: &AdminCap, Arg1: &mut Whitelist, Arg2: address, Arg3: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut Whitelist)
1MutBorrowField[21](Whitelist.addresses: VecSet<address>)
2CopyLoc[2](Arg2: address)
3Call vec_set::insert<address>(&mut VecSet<address>, address)
4MoveLoc[2](Arg2: address)
5MoveLoc[3](Arg3: &mut TxContext)
6FreezeRef
7Call tx_context::sender(&TxContext): address
8Pack[17](AddressWhitelisted)
9Call event::emit<AddressWhitelisted>(AddressWhitelisted)
10Ret
}
 
entry public admin_add_batch_to_whitelist(Arg0: &AdminCap, Arg1: &mut Whitelist, Arg2: vector<address>, Arg3: &mut TxContext) {
L4: loc0: address
L5: loc1: u64
L6: loc2: u64
B0:
0LdU64(0)
1StLoc[5](loc1: u64)
2ImmBorrowLoc[2](Arg2: vector<address>)
3VecLen(44)
4StLoc[6](loc2: u64)
B1:
5CopyLoc[5](loc1: u64)
6CopyLoc[6](loc2: u64)
7Lt
8BrFalse(36)
B2:
9Branch(10)
B3:
10ImmBorrowLoc[2](Arg2: vector<address>)
11CopyLoc[5](loc1: u64)
12VecImmBorrow(44)
13ReadRef
14StLoc[4](loc0: address)
15CopyLoc[1](Arg1: &mut Whitelist)
16ImmBorrowField[21](Whitelist.addresses: VecSet<address>)
17ImmBorrowLoc[4](loc0: address)
18Call vec_set::contains<address>(&VecSet<address>, &address): bool
19Not
20BrFalse(31)
B4:
21CopyLoc[1](Arg1: &mut Whitelist)
22MutBorrowField[21](Whitelist.addresses: VecSet<address>)
23CopyLoc[4](loc0: address)
24Call vec_set::insert<address>(&mut VecSet<address>, address)
25MoveLoc[4](loc0: address)
26CopyLoc[3](Arg3: &mut TxContext)
27FreezeRef
28Call tx_context::sender(&TxContext): address
29Pack[17](AddressWhitelisted)
30Call event::emit<AddressWhitelisted>(AddressWhitelisted)
B5:
31MoveLoc[5](loc1: u64)
32LdU64(1)
33Add
34StLoc[5](loc1: u64)
35Branch(5)
B6:
36MoveLoc[1](Arg1: &mut Whitelist)
37Pop
38MoveLoc[3](Arg3: &mut TxContext)
39Pop
40Ret
}
 
entry public admin_add_batch_to_whitelist_efficient(Arg0: &AdminCap, Arg1: &mut Whitelist, Arg2: vector<address>, Arg3: &mut TxContext) {
L4: loc0: u64
L5: loc1: address
L6: loc2: u64
L7: loc3: u64
B0:
0LdU64(0)
1StLoc[6](loc2: u64)
2ImmBorrowLoc[2](Arg2: vector<address>)
3VecLen(44)
4StLoc[7](loc3: u64)
5LdU64(0)
6StLoc[4](loc0: u64)
B1:
7CopyLoc[6](loc2: u64)
8CopyLoc[7](loc3: u64)
9Lt
10BrFalse(36)
B2:
11Branch(12)
B3:
12ImmBorrowLoc[2](Arg2: vector<address>)
13CopyLoc[6](loc2: u64)
14VecImmBorrow(44)
15ReadRef
16StLoc[5](loc1: address)
17CopyLoc[1](Arg1: &mut Whitelist)
18ImmBorrowField[21](Whitelist.addresses: VecSet<address>)
19ImmBorrowLoc[5](loc1: address)
20Call vec_set::contains<address>(&VecSet<address>, &address): bool
21Not
22BrFalse(31)
B4:
23CopyLoc[1](Arg1: &mut Whitelist)
24MutBorrowField[21](Whitelist.addresses: VecSet<address>)
25MoveLoc[5](loc1: address)
26Call vec_set::insert<address>(&mut VecSet<address>, address)
27MoveLoc[4](loc0: u64)
28LdU64(1)
29Add
30StLoc[4](loc0: u64)
B5:
31MoveLoc[6](loc2: u64)
32LdU64(1)
33Add
34StLoc[6](loc2: u64)
35Branch(7)
B6:
36MoveLoc[1](Arg1: &mut Whitelist)
37Pop
38CopyLoc[4](loc0: u64)
39LdU64(0)
40Gt
41BrFalse(49)
B7:
42MoveLoc[4](loc0: u64)
43MoveLoc[3](Arg3: &mut TxContext)
44FreezeRef
45Call tx_context::sender(&TxContext): address
46Pack[19](BatchWhitelisted)
47Call event::emit<BatchWhitelisted>(BatchWhitelisted)
48Branch(51)
B8:
49MoveLoc[3](Arg3: &mut TxContext)
50Pop
B9:
51Ret
}
 
entry public admin_remove_from_whitelist(Arg0: &AdminCap, Arg1: &mut Whitelist, Arg2: address, Arg3: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut Whitelist)
1MutBorrowField[21](Whitelist.addresses: VecSet<address>)
2ImmBorrowLoc[2](Arg2: address)
3Call vec_set::remove<address>(&mut VecSet<address>, &address)
4MoveLoc[2](Arg2: address)
5MoveLoc[3](Arg3: &mut TxContext)
6FreezeRef
7Call tx_context::sender(&TxContext): address
8Pack[18](AddressRemovedFromWhitelist)
9Call event::emit<AddressRemovedFromWhitelist>(AddressRemovedFromWhitelist)
10Ret
}
 
public is_whitelisted(Arg0: &Whitelist, Arg1: address): bool {
B0:
0MoveLoc[0](Arg0: &Whitelist)
1ImmBorrowField[21](Whitelist.addresses: VecSet<address>)
2ImmBorrowLoc[1](Arg1: address)
3Call vec_set::contains<address>(&VecSet<address>, &address): bool
4Ret
}
 
public get_whitelist_size(Arg0: &Whitelist): u64 {
B0:
0MoveLoc[0](Arg0: &Whitelist)
1ImmBorrowField[21](Whitelist.addresses: VecSet<address>)
2Call vec_set::length<address>(&VecSet<address>): u64
3Ret
}
 
update_rarity_stats(Arg0: &mut GlobalStats, Arg1: u8) {
B0:
0CopyLoc[1](Arg1: u8)
1LdConst[24](u8: 0)
2Eq
3BrFalse(13)
B1:
4CopyLoc[0](Arg0: &mut GlobalStats)
5ImmBorrowField[49](GlobalStats.common_minted: u64)
6ReadRef
7LdU64(1)
8Add
9MoveLoc[0](Arg0: &mut GlobalStats)
10MutBorrowField[49](GlobalStats.common_minted: u64)
11WriteRef
12Branch(54)
B2:
13CopyLoc[1](Arg1: u8)
14LdConst[25](u8: 1)
15Eq
16BrFalse(26)
B3:
17CopyLoc[0](Arg0: &mut GlobalStats)
18ImmBorrowField[50](GlobalStats.queen_minted: u64)
19ReadRef
20LdU64(1)
21Add
22MoveLoc[0](Arg0: &mut GlobalStats)
23MutBorrowField[50](GlobalStats.queen_minted: u64)
24WriteRef
25Branch(54)
B4:
26CopyLoc[1](Arg1: u8)
27LdConst[26](u8: 2)
28Eq
29BrFalse(39)
B5:
30CopyLoc[0](Arg0: &mut GlobalStats)
31ImmBorrowField[51](GlobalStats.king_minted: u64)
32ReadRef
33LdU64(1)
34Add
35MoveLoc[0](Arg0: &mut GlobalStats)
36MutBorrowField[51](GlobalStats.king_minted: u64)
37WriteRef
38Branch(54)
B6:
39MoveLoc[1](Arg1: u8)
40LdConst[27](u8: 3)
41Eq
42BrFalse(52)
B7:
43CopyLoc[0](Arg0: &mut GlobalStats)
44ImmBorrowField[52](GlobalStats.golden_minted: u64)
45ReadRef
46LdU64(1)
47Add
48MoveLoc[0](Arg0: &mut GlobalStats)
49MutBorrowField[52](GlobalStats.golden_minted: u64)
50WriteRef
51Branch(54)
B8:
52MoveLoc[0](Arg0: &mut GlobalStats)
53Pop
B9:
54Ret
}
 
update_burn_stats(Arg0: &mut GlobalStats, Arg1: u64, Arg2: &Clock) {
L3: loc0: u64
B0:
0MoveLoc[2](Arg2: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2LdU64(86400000)
3Div
4StLoc[3](loc0: u64)
5CopyLoc[3](loc0: u64)
6CopyLoc[0](Arg0: &mut GlobalStats)
7ImmBorrowField[53](GlobalStats.last_burn_reset_day: u64)
8ReadRef
9Gt
10BrFalse(19)
B1:
11LdU64(0)
12CopyLoc[0](Arg0: &mut GlobalStats)
13MutBorrowField[54](GlobalStats.sht_burned_today: u64)
14WriteRef
15MoveLoc[3](loc0: u64)
16CopyLoc[0](Arg0: &mut GlobalStats)
17MutBorrowField[53](GlobalStats.last_burn_reset_day: u64)
18WriteRef
B2:
19CopyLoc[0](Arg0: &mut GlobalStats)
20ImmBorrowField[55](GlobalStats.total_sht_burned: u64)
21ReadRef
22CopyLoc[1](Arg1: u64)
23Add
24CopyLoc[0](Arg0: &mut GlobalStats)
25MutBorrowField[55](GlobalStats.total_sht_burned: u64)
26WriteRef
27CopyLoc[0](Arg0: &mut GlobalStats)
28ImmBorrowField[54](GlobalStats.sht_burned_today: u64)
29ReadRef
30MoveLoc[1](Arg1: u64)
31Add
32MoveLoc[0](Arg0: &mut GlobalStats)
33MutBorrowField[54](GlobalStats.sht_burned_today: u64)
34WriteRef
35Ret
}
 
update_user_pack_stats(Arg0: &mut UserStatsRegistry, Arg1: address, Arg2: u64, Arg3: u64, Arg4: &Clock) {
L5: loc0: u64
L6: loc1: &mut UserStats
L7: loc2: UserStats
B0:
0MoveLoc[4](Arg4: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2LdU64(86400000)
3Div
4StLoc[5](loc0: u64)
5CopyLoc[0](Arg0: &mut UserStatsRegistry)
6ImmBorrowField[56](UserStatsRegistry.id: UID)
7CopyLoc[1](Arg1: address)
8Call dynamic_field::exists_<address>(&UID, address): bool
9BrFalse(36)
B1:
10MoveLoc[0](Arg0: &mut UserStatsRegistry)
11MutBorrowField[56](UserStatsRegistry.id: UID)
12MoveLoc[1](Arg1: address)
13Call dynamic_field::borrow_mut<address, UserStats>(&mut UID, address): &mut UserStats
14StLoc[6](loc1: &mut UserStats)
15CopyLoc[6](loc1: &mut UserStats)
16ImmBorrowField[57](UserStats.total_sht_burned: u64)
17ReadRef
18MoveLoc[2](Arg2: u64)
19Add
20CopyLoc[6](loc1: &mut UserStats)
21MutBorrowField[57](UserStats.total_sht_burned: u64)
22WriteRef
23CopyLoc[6](loc1: &mut UserStats)
24ImmBorrowField[58](UserStats.packs_bought: u64)
25ReadRef
26MoveLoc[3](Arg3: u64)
27Add
28CopyLoc[6](loc1: &mut UserStats)
29MutBorrowField[58](UserStats.packs_bought: u64)
30WriteRef
31MoveLoc[5](loc0: u64)
32MoveLoc[6](loc1: &mut UserStats)
33MutBorrowField[59](UserStats.last_activity_day: u64)
34WriteRef
35Branch(50)
B2:
36LdU64(0)
37LdU64(0)
38LdU64(0)
39MoveLoc[2](Arg2: u64)
40MoveLoc[3](Arg3: u64)
41LdU64(0)
42MoveLoc[5](loc0: u64)
43Pack[30](UserStats)
44StLoc[7](loc2: UserStats)
45MoveLoc[0](Arg0: &mut UserStatsRegistry)
46MutBorrowField[56](UserStatsRegistry.id: UID)
47MoveLoc[1](Arg1: address)
48MoveLoc[7](loc2: UserStats)
49Call dynamic_field::add<address, UserStats>(&mut UID, address, UserStats)
B3:
50Ret
}
 
public get_global_stats(Arg0: &GlobalStats): u64 * u64 * u64 * u64 * u64 * u64 * u64 {
B0:
0CopyLoc[0](Arg0: &GlobalStats)
1ImmBorrowField[49](GlobalStats.common_minted: u64)
2ReadRef
3CopyLoc[0](Arg0: &GlobalStats)
4ImmBorrowField[50](GlobalStats.queen_minted: u64)
5ReadRef
6CopyLoc[0](Arg0: &GlobalStats)
7ImmBorrowField[51](GlobalStats.king_minted: u64)
8ReadRef
9CopyLoc[0](Arg0: &GlobalStats)
10ImmBorrowField[52](GlobalStats.golden_minted: u64)
11ReadRef
12CopyLoc[0](Arg0: &GlobalStats)
13ImmBorrowField[55](GlobalStats.total_sht_burned: u64)
14ReadRef
15CopyLoc[0](Arg0: &GlobalStats)
16ImmBorrowField[54](GlobalStats.sht_burned_today: u64)
17ReadRef
18MoveLoc[0](Arg0: &GlobalStats)
19ImmBorrowField[53](GlobalStats.last_burn_reset_day: u64)
20ReadRef
21Ret
}
 
public get_rarity_distribution(Arg0: &GlobalStats): u64 * u64 * u64 * u64 {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u64
L4: loc3: u64
L5: loc4: u64
B0:
0CopyLoc[0](Arg0: &GlobalStats)
1ImmBorrowField[49](GlobalStats.common_minted: u64)
2ReadRef
3CopyLoc[0](Arg0: &GlobalStats)
4ImmBorrowField[50](GlobalStats.queen_minted: u64)
5ReadRef
6Add
7CopyLoc[0](Arg0: &GlobalStats)
8ImmBorrowField[51](GlobalStats.king_minted: u64)
9ReadRef
10Add
11CopyLoc[0](Arg0: &GlobalStats)
12ImmBorrowField[52](GlobalStats.golden_minted: u64)
13ReadRef
14Add
15StLoc[5](loc4: u64)
16CopyLoc[5](loc4: u64)
17LdU64(0)
18Eq
19BrFalse(27)
B1:
20MoveLoc[0](Arg0: &GlobalStats)
21Pop
22LdU64(0)
23LdU64(0)
24LdU64(0)
25LdU64(0)
26Ret
B2:
27CopyLoc[0](Arg0: &GlobalStats)
28ImmBorrowField[49](GlobalStats.common_minted: u64)
29ReadRef
30LdU64(10000)
31Mul
32CopyLoc[5](loc4: u64)
33Div
34StLoc[1](loc0: u64)
35CopyLoc[0](Arg0: &GlobalStats)
36ImmBorrowField[50](GlobalStats.queen_minted: u64)
37ReadRef
38LdU64(10000)
39Mul
40CopyLoc[5](loc4: u64)
41Div
42StLoc[4](loc3: u64)
43CopyLoc[0](Arg0: &GlobalStats)
44ImmBorrowField[51](GlobalStats.king_minted: u64)
45ReadRef
46LdU64(10000)
47Mul
48CopyLoc[5](loc4: u64)
49Div
50StLoc[3](loc2: u64)
51MoveLoc[0](Arg0: &GlobalStats)
52ImmBorrowField[52](GlobalStats.golden_minted: u64)
53ReadRef
54LdU64(10000)
55Mul
56MoveLoc[5](loc4: u64)
57Div
58StLoc[2](loc1: u64)
59MoveLoc[1](loc0: u64)
60MoveLoc[4](loc3: u64)
61MoveLoc[3](loc2: u64)
62MoveLoc[2](loc1: u64)
63Ret
}
 
public get_user_stats(Arg0: &UserStatsRegistry, Arg1: address): u64 * u64 * u64 * u64 * u64 * u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
L7: loc5: u64
L8: loc6: &UserStats
B0:
0CopyLoc[0](Arg0: &UserStatsRegistry)
1ImmBorrowField[56](UserStatsRegistry.id: UID)
2CopyLoc[1](Arg1: address)
3Call dynamic_field::exists_<address>(&UID, address): bool
4BrFalse(35)
B1:
5MoveLoc[0](Arg0: &UserStatsRegistry)
6ImmBorrowField[56](UserStatsRegistry.id: UID)
7MoveLoc[1](Arg1: address)
8Call dynamic_field::borrow<address, UserStats>(&UID, address): &UserStats
9StLoc[8](loc6: &UserStats)
10CopyLoc[8](loc6: &UserStats)
11ImmBorrowField[60](UserStats.lifetime_sht_earned: u64)
12ReadRef
13CopyLoc[8](loc6: &UserStats)
14ImmBorrowField[61](UserStats.total_harvest_attempts: u64)
15ReadRef
16CopyLoc[8](loc6: &UserStats)
17ImmBorrowField[62](UserStats.successful_harvests: u64)
18ReadRef
19CopyLoc[8](loc6: &UserStats)
20ImmBorrowField[57](UserStats.total_sht_burned: u64)
21ReadRef
22CopyLoc[8](loc6: &UserStats)
23ImmBorrowField[58](UserStats.packs_bought: u64)
24ReadRef
25MoveLoc[8](loc6: &UserStats)
26ImmBorrowField[63](UserStats.sht_earned_today: u64)
27ReadRef
28StLoc[7](loc5: u64)
29StLoc[6](loc4: u64)
30StLoc[5](loc3: u64)
31StLoc[4](loc2: u64)
32StLoc[3](loc1: u64)
33StLoc[2](loc0: u64)
34Branch(49)
B2:
35MoveLoc[0](Arg0: &UserStatsRegistry)
36Pop
37LdU64(0)
38LdU64(0)
39LdU64(0)
40LdU64(0)
41LdU64(0)
42LdU64(0)
43StLoc[7](loc5: u64)
44StLoc[6](loc4: u64)
45StLoc[5](loc3: u64)
46StLoc[4](loc2: u64)
47StLoc[3](loc1: u64)
48StLoc[2](loc0: u64)
B3:
49MoveLoc[2](loc0: u64)
50MoveLoc[3](loc1: u64)
51MoveLoc[4](loc2: u64)
52MoveLoc[5](loc3: u64)
53MoveLoc[6](loc4: u64)
54MoveLoc[7](loc5: u64)
55Ret
}
 
public has_user_stats(Arg0: &UserStatsRegistry, Arg1: address): bool {
B0:
0MoveLoc[0](Arg0: &UserStatsRegistry)
1ImmBorrowField[56](UserStatsRegistry.id: UID)
2MoveLoc[1](Arg1: address)
3Call dynamic_field::exists_<address>(&UID, address): bool
4Ret
}
 
public(friend) stake_duck_virtual(Arg0: &mut DuckNFT, Arg1: u8, Arg2: &Clock, Arg3: &TxContext) {
L4: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut DuckNFT)
1ImmBorrowField[64](DuckNFT.is_staked: bool)
2ReadRef
3Not
4BrFalse(6)
B1:
5Branch(14)
B2:
6MoveLoc[0](Arg0: &mut DuckNFT)
7Pop
8MoveLoc[3](Arg3: &TxContext)
9Pop
10MoveLoc[2](Arg2: &Clock)
11Pop
12LdConst[20](u64: 21)
13Abort
B3:
14MoveLoc[2](Arg2: &Clock)
15Call clock::timestamp_ms(&Clock): u64
16StLoc[4](loc0: u64)
17LdTrue
18CopyLoc[0](Arg0: &mut DuckNFT)
19MutBorrowField[64](DuckNFT.is_staked: bool)
20WriteRef
21CopyLoc[4](loc0: u64)
22CopyLoc[0](Arg0: &mut DuckNFT)
23MutBorrowField[65](DuckNFT.staked_at: u64)
24WriteRef
25CopyLoc[4](loc0: u64)
26CopyLoc[0](Arg0: &mut DuckNFT)
27MutBorrowField[66](DuckNFT.last_harvest_time: u64)
28WriteRef
29CopyLoc[1](Arg1: u8)
30CopyLoc[0](Arg0: &mut DuckNFT)
31MutBorrowField[67](DuckNFT.nest_level: u8)
32WriteRef
33CopyLoc[0](Arg0: &mut DuckNFT)
34LdTrue
35Call update_staked_attribute(&mut DuckNFT, bool)
36MoveLoc[0](Arg0: &mut DuckNFT)
37FreezeRef
38Call object::id<DuckNFT>(&DuckNFT): ID
39MoveLoc[3](Arg3: &TxContext)
40Call tx_context::sender(&TxContext): address
41MoveLoc[1](Arg1: u8)
42MoveLoc[4](loc0: u64)
43Pack[33](DuckVirtuallyStaked)
44Call event::emit<DuckVirtuallyStaked>(DuckVirtuallyStaked)
45Ret
}
 
public(friend) unstake_duck_virtual(Arg0: &mut DuckNFT, Arg1: &Clock, Arg2: &TxContext) {
L3: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut DuckNFT)
1ImmBorrowField[64](DuckNFT.is_staked: bool)
2ReadRef
3BrFalse(5)
B1:
4Branch(13)
B2:
5MoveLoc[0](Arg0: &mut DuckNFT)
6Pop
7MoveLoc[2](Arg2: &TxContext)
8Pop
9MoveLoc[1](Arg1: &Clock)
10Pop
11LdConst[21](u64: 22)
12Abort
B3:
13MoveLoc[1](Arg1: &Clock)
14Call clock::timestamp_ms(&Clock): u64
15CopyLoc[0](Arg0: &mut DuckNFT)
16ImmBorrowField[65](DuckNFT.staked_at: u64)
17ReadRef
18Sub
19StLoc[3](loc0: u64)
20LdFalse
21CopyLoc[0](Arg0: &mut DuckNFT)
22MutBorrowField[64](DuckNFT.is_staked: bool)
23WriteRef
24LdU64(0)
25CopyLoc[0](Arg0: &mut DuckNFT)
26MutBorrowField[65](DuckNFT.staked_at: u64)
27WriteRef
28LdU8(0)
29CopyLoc[0](Arg0: &mut DuckNFT)
30MutBorrowField[67](DuckNFT.nest_level: u8)
31WriteRef
32CopyLoc[0](Arg0: &mut DuckNFT)
33LdFalse
34Call update_staked_attribute(&mut DuckNFT, bool)
35MoveLoc[0](Arg0: &mut DuckNFT)
36FreezeRef
37Call object::id<DuckNFT>(&DuckNFT): ID
38MoveLoc[2](Arg2: &TxContext)
39Call tx_context::sender(&TxContext): address
40MoveLoc[3](loc0: u64)
41Pack[34](DuckVirtuallyUnstaked)
42Call event::emit<DuckVirtuallyUnstaked>(DuckVirtuallyUnstaked)
43Ret
}
 
public(friend) update_harvest_time(Arg0: &mut DuckNFT, Arg1: &Clock) {
L2: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut DuckNFT)
1ImmBorrowField[64](DuckNFT.is_staked: bool)
2ReadRef
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[0](Arg0: &mut DuckNFT)
6Pop
7MoveLoc[1](Arg1: &Clock)
8Pop
9LdConst[21](u64: 22)
10Abort
B3:
11MoveLoc[1](Arg1: &Clock)
12Call clock::timestamp_ms(&Clock): u64
13StLoc[2](loc0: u64)
14CopyLoc[2](loc0: u64)
15CopyLoc[0](Arg0: &mut DuckNFT)
16MutBorrowField[66](DuckNFT.last_harvest_time: u64)
17WriteRef
18MoveLoc[0](Arg0: &mut DuckNFT)
19FreezeRef
20Call object::id<DuckNFT>(&DuckNFT): ID
21MoveLoc[2](loc0: u64)
22Pack[35](HarvestTimeUpdated)
23Call event::emit<HarvestTimeUpdated>(HarvestTimeUpdated)
24Ret
}
 
public(friend) update_duck_nest_level(Arg0: &mut DuckNFT, Arg1: u8) {
B0:
0CopyLoc[0](Arg0: &mut DuckNFT)
1ImmBorrowField[64](DuckNFT.is_staked: bool)
2ReadRef
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut DuckNFT)
6Pop
7LdConst[21](u64: 22)
8Abort
B3:
9MoveLoc[1](Arg1: u8)
10MoveLoc[0](Arg0: &mut DuckNFT)
11MutBorrowField[67](DuckNFT.nest_level: u8)
12WriteRef
13Ret
}
 
public get_image_url(Arg0: &DuckNFT): String {
B0:
0MoveLoc[0](Arg0: &DuckNFT)
1ImmBorrowField[68](DuckNFT.image_url: String)
2ReadRef
3Ret
}
 
public(friend) update_image_url(Arg0: &mut DuckNFT, Arg1: String) {
B0:
0MoveLoc[1](Arg1: String)
1MoveLoc[0](Arg0: &mut DuckNFT)
2MutBorrowField[68](DuckNFT.image_url: String)
3WriteRef
4Ret
}
 
public(friend) update_death_attributes(Arg0: &mut DuckNFT, Arg1: bool, Arg2: u8) {
L3: loc0: String
L4: loc1: String
L5: loc2: String
L6: loc3: String
L7: loc4: String
L8: loc5: String
L9: loc6: String
L10: loc7: String
B0:
0LdConst[87](vector<u8>: "Sta..)
1Call string::utf8(vector<u8>): String
2StLoc[9](loc6: String)
3MoveLoc[1](Arg1: bool)
4BrFalse(9)
B1:
5LdConst[88](vector<u8>: "Fro..)
6Call string::utf8(vector<u8>): String
7StLoc[3](loc0: String)
8Branch(12)
B2:
9LdConst[89](vector<u8>: "Ali..)
10Call string::utf8(vector<u8>): String
11StLoc[3](loc0: String)
B3:
12MoveLoc[3](loc0: String)
13StLoc[10](loc7: String)
14CopyLoc[0](Arg0: &mut DuckNFT)
15ImmBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
16ImmBorrowLoc[9](loc6: String)
17Call vec_map::contains<String, String>(&VecMap<String, String>, &String): bool
18BrFalse(25)
B4:
19CopyLoc[0](Arg0: &mut DuckNFT)
20MutBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
21ImmBorrowLoc[9](loc6: String)
22Call vec_map::remove<String, String>(&mut VecMap<String, String>, &String): String * String
23Pop
24Pop
B5:
25CopyLoc[0](Arg0: &mut DuckNFT)
26MutBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
27MoveLoc[9](loc6: String)
28MoveLoc[10](loc7: String)
29Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
30LdConst[90](vector<u8>: "Bon..)
31Call string::utf8(vector<u8>): String
32StLoc[7](loc4: String)
33CopyLoc[2](Arg2: u8)
34LdU8(0)
35Eq
36BrFalse(41)
B6:
37LdConst[69](vector<u8>: "0" ..)
38Call string::utf8(vector<u8>): String
39StLoc[6](loc3: String)
40Branch(64)
B7:
41CopyLoc[2](Arg2: u8)
42LdU8(1)
43Eq
44BrFalse(49)
B8:
45LdConst[91](vector<u8>: "1" ..)
46Call string::utf8(vector<u8>): String
47StLoc[5](loc2: String)
48Branch(62)
B9:
49MoveLoc[2](Arg2: u8)
50LdU8(2)
51Eq
52BrFalse(57)
B10:
53LdConst[92](vector<u8>: "2" ..)
54Call string::utf8(vector<u8>): String
55StLoc[4](loc1: String)
56Branch(60)
B11:
57LdConst[93](vector<u8>: "3" ..)
58Call string::utf8(vector<u8>): String
59StLoc[4](loc1: String)
B12:
60MoveLoc[4](loc1: String)
61StLoc[5](loc2: String)
B13:
62MoveLoc[5](loc2: String)
63StLoc[6](loc3: String)
B14:
64MoveLoc[6](loc3: String)
65StLoc[8](loc5: String)
66CopyLoc[0](Arg0: &mut DuckNFT)
67ImmBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
68ImmBorrowLoc[7](loc4: String)
69Call vec_map::contains<String, String>(&VecMap<String, String>, &String): bool
70BrFalse(77)
B15:
71CopyLoc[0](Arg0: &mut DuckNFT)
72MutBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
73ImmBorrowLoc[7](loc4: String)
74Call vec_map::remove<String, String>(&mut VecMap<String, String>, &String): String * String
75Pop
76Pop
B16:
77MoveLoc[0](Arg0: &mut DuckNFT)
78MutBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
79MoveLoc[7](loc4: String)
80MoveLoc[8](loc5: String)
81Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
82Ret
}
 
update_staked_attribute(Arg0: &mut DuckNFT, Arg1: bool) {
L2: loc0: String
L3: loc1: String
L4: loc2: String
B0:
0LdConst[65](vector<u8>: "Sta..)
1Call string::utf8(vector<u8>): String
2StLoc[4](loc2: String)
3MoveLoc[1](Arg1: bool)
4BrFalse(9)
B1:
5LdConst[94](vector<u8>: "Yes..)
6Call string::utf8(vector<u8>): String
7StLoc[2](loc0: String)
8Branch(12)
B2:
9LdConst[66](vector<u8>: "No"..)
10Call string::utf8(vector<u8>): String
11StLoc[2](loc0: String)
B3:
12MoveLoc[2](loc0: String)
13StLoc[3](loc1: String)
14CopyLoc[0](Arg0: &mut DuckNFT)
15ImmBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
16ImmBorrowLoc[4](loc2: String)
17Call vec_map::contains<String, String>(&VecMap<String, String>, &String): bool
18BrFalse(25)
B4:
19CopyLoc[0](Arg0: &mut DuckNFT)
20MutBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
21ImmBorrowLoc[4](loc2: String)
22Call vec_map::remove<String, String>(&mut VecMap<String, String>, &String): String * String
23Pop
24Pop
B5:
25MoveLoc[0](Arg0: &mut DuckNFT)
26MutBorrowField[69](DuckNFT.attributes: VecMap<String, String>)
27MoveLoc[4](loc2: String)
28MoveLoc[3](loc1: String)
29Call vec_map::insert<String, String>(&mut VecMap<String, String>, String, String)
30Ret
}
 
public mark_as_staked(Arg0: &mut DuckNFT, Arg1: u64, Arg2: u8) {
B0:
0LdTrue
1CopyLoc[0](Arg0: &mut DuckNFT)
2MutBorrowField[64](DuckNFT.is_staked: bool)
3WriteRef
4CopyLoc[1](Arg1: u64)
5CopyLoc[0](Arg0: &mut DuckNFT)
6MutBorrowField[65](DuckNFT.staked_at: u64)
7WriteRef
8MoveLoc[1](Arg1: u64)
9CopyLoc[0](Arg0: &mut DuckNFT)
10MutBorrowField[66](DuckNFT.last_harvest_time: u64)
11WriteRef
12MoveLoc[2](Arg2: u8)
13CopyLoc[0](Arg0: &mut DuckNFT)
14MutBorrowField[67](DuckNFT.nest_level: u8)
15WriteRef
16MoveLoc[0](Arg0: &mut DuckNFT)
17LdTrue
18Call update_staked_attribute(&mut DuckNFT, bool)
19Ret
}
 
public mark_as_unstaked(Arg0: &mut DuckNFT) {
B0:
0LdFalse
1CopyLoc[0](Arg0: &mut DuckNFT)
2MutBorrowField[64](DuckNFT.is_staked: bool)
3WriteRef
4LdU64(0)
5CopyLoc[0](Arg0: &mut DuckNFT)
6MutBorrowField[65](DuckNFT.staked_at: u64)
7WriteRef
8LdU64(0)
9CopyLoc[0](Arg0: &mut DuckNFT)
10MutBorrowField[66](DuckNFT.last_harvest_time: u64)
11WriteRef
12LdU8(0)
13CopyLoc[0](Arg0: &mut DuckNFT)
14MutBorrowField[67](DuckNFT.nest_level: u8)
15WriteRef
16MoveLoc[0](Arg0: &mut DuckNFT)
17LdFalse
18Call update_staked_attribute(&mut DuckNFT, bool)
19Ret
}
 
public is_duck_staked(Arg0: &DuckNFT): bool {
B0:
0MoveLoc[0](Arg0: &DuckNFT)
1ImmBorrowField[64](DuckNFT.is_staked: bool)
2ReadRef
3Ret
}
 
public get_duck_staking_info(Arg0: &DuckNFT): bool * u64 * u64 * u8 {
B0:
0CopyLoc[0](Arg0: &DuckNFT)
1ImmBorrowField[64](DuckNFT.is_staked: bool)
2ReadRef
3CopyLoc[0](Arg0: &DuckNFT)
4ImmBorrowField[65](DuckNFT.staked_at: u64)
5ReadRef
6CopyLoc[0](Arg0: &DuckNFT)
7ImmBorrowField[66](DuckNFT.last_harvest_time: u64)
8ReadRef
9MoveLoc[0](Arg0: &DuckNFT)
10ImmBorrowField[67](DuckNFT.nest_level: u8)
11ReadRef
12Ret
}
 
public get_time_until_harvest(Arg0: &DuckNFT, Arg1: u64, Arg2: &Clock): u64 {
L3: loc0: u64
L4: loc1: u64
L5: loc2: u64
B0:
0CopyLoc[0](Arg0: &DuckNFT)
1ImmBorrowField[64](DuckNFT.is_staked: bool)
2ReadRef
3Not
4BrFalse(11)
B1:
5MoveLoc[0](Arg0: &DuckNFT)
6Pop
7MoveLoc[2](Arg2: &Clock)
8Pop
9LdU64(0)
10Ret
B2:
11MoveLoc[2](Arg2: &Clock)
12Call clock::timestamp_ms(&Clock): u64
13StLoc[4](loc1: u64)
14MoveLoc[0](Arg0: &DuckNFT)
15ImmBorrowField[66](DuckNFT.last_harvest_time: u64)
16ReadRef
17MoveLoc[1](Arg1: u64)
18Add
19StLoc[5](loc2: u64)
20CopyLoc[4](loc1: u64)
21CopyLoc[5](loc2: u64)
22Ge
23BrFalse(27)
B3:
24LdU64(0)
25StLoc[3](loc0: u64)
26Branch(31)
B4:
27MoveLoc[5](loc2: u64)
28MoveLoc[4](loc1: u64)
29Sub
30StLoc[3](loc0: u64)
B5:
31MoveLoc[3](loc0: u64)
32Ret
}
 
public get_available_harvest_cycles(Arg0: &DuckNFT, Arg1: u64, Arg2: u64, Arg3: &Clock): u64 {
L4: loc0: u64
L5: loc1: u64
L6: loc2: u64
B0:
0CopyLoc[0](Arg0: &DuckNFT)
1ImmBorrowField[64](DuckNFT.is_staked: bool)
2ReadRef
3Not
4BrFalse(11)
B1:
5MoveLoc[0](Arg0: &DuckNFT)
6Pop
7MoveLoc[3](Arg3: &Clock)
8Pop
9LdU64(0)
10Ret
B2:
11MoveLoc[3](Arg3: &Clock)
12Call clock::timestamp_ms(&Clock): u64
13StLoc[5](loc1: u64)
14CopyLoc[5](loc1: u64)
15CopyLoc[0](Arg0: &DuckNFT)
16ImmBorrowField[66](DuckNFT.last_harvest_time: u64)
17ReadRef
18CopyLoc[1](Arg1: u64)
19Add
20Lt
21BrFalse(26)
B3:
22MoveLoc[0](Arg0: &DuckNFT)
23Pop
24LdU64(0)
25Ret
B4:
26MoveLoc[5](loc1: u64)
27MoveLoc[0](Arg0: &DuckNFT)
28ImmBorrowField[66](DuckNFT.last_harvest_time: u64)
29ReadRef
30Sub
31MoveLoc[1](Arg1: u64)
32Div
33StLoc[6](loc2: u64)
34CopyLoc[6](loc2: u64)
35CopyLoc[2](Arg2: u64)
36Gt
37BrFalse(41)
B5:
38MoveLoc[2](Arg2: u64)
39StLoc[4](loc0: u64)
40Branch(43)
B6:
41MoveLoc[6](loc2: u64)
42StLoc[4](loc0: u64)
B7:
43MoveLoc[4](loc0: u64)
44Ret
}
 
entry hatch_basic_egg_v2(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &ReferralRegistry, Arg6: &mut GlobalStats, Arg7: &mut UserStatsRegistry, Arg8: &mut SharedTreasury, Arg9: &PackPricesV2, Arg10: &mut Kiosk, Arg11: &KioskOwnerCap, Arg12: &TransferPolicy<DuckNFT>, Arg13: Coin<SHTTOKEN>, Arg14: Coin<SUI>, Arg15: u64, Arg16: &Random, Arg17: &Clock, Arg18: &mut TxContext) {
L19: loc0: bool
L20: loc1: u64
L21: loc2: u64
L22: loc3: Coin<SHTTOKEN>
L23: loc4: address
L24: loc5: u64
L25: loc6: u64
L26: loc7: u64
L27: loc8: DuckNFT
L28: loc9: u8
L29: loc10: address
L30: loc11: Option<address>
L31: loc12: u64
L32: loc13: Coin<SHTTOKEN>
L33: loc14: Coin<SHTTOKEN>
L34: loc15: u64
L35: loc16: Coin<SUI>
L36: loc17: u64
L37: loc18: u64
L38: loc19: Coin<SHTTOKEN>
L39: loc20: Coin<SHTTOKEN>
L40: loc21: u64
L41: loc22: Coin<SHTTOKEN>
B0:
0CopyLoc[17](Arg17: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[24](loc5: u64)
3CopyLoc[18](Arg18: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[23](loc4: address)
7MoveLoc[5](Arg5: &ReferralRegistry)
8CopyLoc[23](loc4: address)
9Call get_referrer(&ReferralRegistry, address): Option<address>
10StLoc[30](loc11: Option<address>)
11CopyLoc[1](Arg1: &mut PackSupply)
12ImmBorrowField[0](PackSupply.start_time: u64)
13ReadRef
14LdU64(0)
15Gt
16BrFalse(24)
B1:
17CopyLoc[24](loc5: u64)
18CopyLoc[1](Arg1: &mut PackSupply)
19ImmBorrowField[0](PackSupply.start_time: u64)
20ReadRef
21Ge
22StLoc[19](loc0: bool)
23Branch(26)
B2:
24LdFalse
25StLoc[19](loc0: bool)
B3:
26MoveLoc[19](loc0: bool)
27BrFalse(29)
B4:
28Branch(57)
B5:
29MoveLoc[7](Arg7: &mut UserStatsRegistry)
30Pop
31MoveLoc[11](Arg11: &KioskOwnerCap)
32Pop
33MoveLoc[10](Arg10: &mut Kiosk)
34Pop
35MoveLoc[4](Arg4: &TreasuryConfig)
36Pop
37MoveLoc[8](Arg8: &mut SharedTreasury)
38Pop
39MoveLoc[16](Arg16: &Random)
40Pop
41MoveLoc[9](Arg9: &PackPricesV2)
42Pop
43MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
44Pop
45MoveLoc[2](Arg2: &mut PerTypeSupply)
46Pop
47MoveLoc[1](Arg1: &mut PackSupply)
48Pop
49MoveLoc[6](Arg6: &mut GlobalStats)
50Pop
51MoveLoc[18](Arg18: &mut TxContext)
52Pop
53MoveLoc[17](Arg17: &Clock)
54Pop
55LdConst[4](u64: 5)
56Abort
B6:
57CopyLoc[1](Arg1: &mut PackSupply)
58ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
59ReadRef
60Not
61BrFalse(63)
B7:
62Branch(91)
B8:
63MoveLoc[7](Arg7: &mut UserStatsRegistry)
64Pop
65MoveLoc[11](Arg11: &KioskOwnerCap)
66Pop
67MoveLoc[10](Arg10: &mut Kiosk)
68Pop
69MoveLoc[4](Arg4: &TreasuryConfig)
70Pop
71MoveLoc[8](Arg8: &mut SharedTreasury)
72Pop
73MoveLoc[16](Arg16: &Random)
74Pop
75MoveLoc[9](Arg9: &PackPricesV2)
76Pop
77MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
78Pop
79MoveLoc[2](Arg2: &mut PerTypeSupply)
80Pop
81MoveLoc[1](Arg1: &mut PackSupply)
82Pop
83MoveLoc[6](Arg6: &mut GlobalStats)
84Pop
85MoveLoc[18](Arg18: &mut TxContext)
86Pop
87MoveLoc[17](Arg17: &Clock)
88Pop
89LdConst[11](u64: 12)
90Abort
B9:
91CopyLoc[1](Arg1: &mut PackSupply)
92CopyLoc[2](Arg2: &mut PerTypeSupply)
93CopyLoc[17](Arg17: &Clock)
94Call check_and_start_new_batch_if_ready(&mut PackSupply, &mut PerTypeSupply, &Clock)
95CopyLoc[1](Arg1: &mut PackSupply)
96ImmBorrowField[23](PackSupply.in_cooldown: bool)
97ReadRef
98Not
99BrFalse(101)
B10:
100Branch(129)
B11:
101MoveLoc[7](Arg7: &mut UserStatsRegistry)
102Pop
103MoveLoc[11](Arg11: &KioskOwnerCap)
104Pop
105MoveLoc[10](Arg10: &mut Kiosk)
106Pop
107MoveLoc[4](Arg4: &TreasuryConfig)
108Pop
109MoveLoc[8](Arg8: &mut SharedTreasury)
110Pop
111MoveLoc[16](Arg16: &Random)
112Pop
113MoveLoc[9](Arg9: &PackPricesV2)
114Pop
115MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
116Pop
117MoveLoc[2](Arg2: &mut PerTypeSupply)
118Pop
119MoveLoc[1](Arg1: &mut PackSupply)
120Pop
121MoveLoc[6](Arg6: &mut GlobalStats)
122Pop
123MoveLoc[18](Arg18: &mut TxContext)
124Pop
125MoveLoc[17](Arg17: &Clock)
126Pop
127LdConst[12](u64: 13)
128Abort
B12:
129CopyLoc[1](Arg1: &mut PackSupply)
130LdFalse
131CopyLoc[23](loc4: address)
132CopyLoc[15](Arg15: u64)
133CopyLoc[24](loc5: u64)
134Call enforce_public_rate_limit(&mut PackSupply, bool, address, u64, u64)
135CopyLoc[1](Arg1: &mut PackSupply)
136ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
137ReadRef
138CopyLoc[15](Arg15: u64)
139Ge
140BrFalse(142)
B13:
141Branch(170)
B14:
142MoveLoc[7](Arg7: &mut UserStatsRegistry)
143Pop
144MoveLoc[11](Arg11: &KioskOwnerCap)
145Pop
146MoveLoc[10](Arg10: &mut Kiosk)
147Pop
148MoveLoc[4](Arg4: &TreasuryConfig)
149Pop
150MoveLoc[8](Arg8: &mut SharedTreasury)
151Pop
152MoveLoc[16](Arg16: &Random)
153Pop
154MoveLoc[9](Arg9: &PackPricesV2)
155Pop
156MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
157Pop
158MoveLoc[2](Arg2: &mut PerTypeSupply)
159Pop
160MoveLoc[1](Arg1: &mut PackSupply)
161Pop
162MoveLoc[6](Arg6: &mut GlobalStats)
163Pop
164MoveLoc[18](Arg18: &mut TxContext)
165Pop
166MoveLoc[17](Arg17: &Clock)
167Pop
168LdConst[2](u64: 3)
169Abort
B15:
170CopyLoc[2](Arg2: &mut PerTypeSupply)
171ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
172ReadRef
173LdU64(0)
174Gt
175BrFalse(211)
B16:
176CopyLoc[2](Arg2: &mut PerTypeSupply)
177ImmBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
178ReadRef
179CopyLoc[15](Arg15: u64)
180Ge
181BrFalse(183)
B17:
182Branch(211)
B18:
183MoveLoc[7](Arg7: &mut UserStatsRegistry)
184Pop
185MoveLoc[11](Arg11: &KioskOwnerCap)
186Pop
187MoveLoc[10](Arg10: &mut Kiosk)
188Pop
189MoveLoc[4](Arg4: &TreasuryConfig)
190Pop
191MoveLoc[8](Arg8: &mut SharedTreasury)
192Pop
193MoveLoc[16](Arg16: &Random)
194Pop
195MoveLoc[9](Arg9: &PackPricesV2)
196Pop
197MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
198Pop
199MoveLoc[2](Arg2: &mut PerTypeSupply)
200Pop
201MoveLoc[1](Arg1: &mut PackSupply)
202Pop
203MoveLoc[6](Arg6: &mut GlobalStats)
204Pop
205MoveLoc[18](Arg18: &mut TxContext)
206Pop
207MoveLoc[17](Arg17: &Clock)
208Pop
209LdConst[17](u64: 18)
210Abort
B19:
211CopyLoc[1](Arg1: &mut PackSupply)
212ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
213ReadRef
214CopyLoc[15](Arg15: u64)
215Add
216LdConst[34](u64: 5555)
217Le
218BrFalse(220)
B20:
219Branch(248)
B21:
220MoveLoc[7](Arg7: &mut UserStatsRegistry)
221Pop
222MoveLoc[11](Arg11: &KioskOwnerCap)
223Pop
224MoveLoc[10](Arg10: &mut Kiosk)
225Pop
226MoveLoc[4](Arg4: &TreasuryConfig)
227Pop
228MoveLoc[8](Arg8: &mut SharedTreasury)
229Pop
230MoveLoc[16](Arg16: &Random)
231Pop
232MoveLoc[9](Arg9: &PackPricesV2)
233Pop
234MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
235Pop
236MoveLoc[2](Arg2: &mut PerTypeSupply)
237Pop
238MoveLoc[1](Arg1: &mut PackSupply)
239Pop
240MoveLoc[6](Arg6: &mut GlobalStats)
241Pop
242MoveLoc[18](Arg18: &mut TxContext)
243Pop
244MoveLoc[17](Arg17: &Clock)
245Pop
246LdConst[13](u64: 14)
247Abort
B22:
248CopyLoc[9](Arg9: &PackPricesV2)
249ImmBorrowField[43](PackPricesV2.basic_egg_sht_cost: u64)
250ReadRef
251StLoc[34](loc15: u64)
252MoveLoc[9](Arg9: &PackPricesV2)
253ImmBorrowField[44](PackPricesV2.basic_egg_sui_cost: u64)
254ReadRef
255StLoc[36](loc17: u64)
256CopyLoc[34](loc15: u64)
257CopyLoc[15](Arg15: u64)
258Mul
259StLoc[37](loc18: u64)
260CopyLoc[36](loc17: u64)
261CopyLoc[15](Arg15: u64)
262Mul
263StLoc[40](loc21: u64)
264ImmBorrowLoc[13](Arg13: Coin<SHTTOKEN>)
265Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
266CopyLoc[37](loc18: u64)
267Ge
268BrFalse(270)
B23:
269Branch(296)
B24:
270MoveLoc[7](Arg7: &mut UserStatsRegistry)
271Pop
272MoveLoc[11](Arg11: &KioskOwnerCap)
273Pop
274MoveLoc[10](Arg10: &mut Kiosk)
275Pop
276MoveLoc[4](Arg4: &TreasuryConfig)
277Pop
278MoveLoc[8](Arg8: &mut SharedTreasury)
279Pop
280MoveLoc[16](Arg16: &Random)
281Pop
282MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
283Pop
284MoveLoc[2](Arg2: &mut PerTypeSupply)
285Pop
286MoveLoc[1](Arg1: &mut PackSupply)
287Pop
288MoveLoc[6](Arg6: &mut GlobalStats)
289Pop
290MoveLoc[18](Arg18: &mut TxContext)
291Pop
292MoveLoc[17](Arg17: &Clock)
293Pop
294LdConst[0](u64: 1)
295Abort
B25:
296ImmBorrowLoc[14](Arg14: Coin<SUI>)
297Call coin::value<SUI>(&Coin<SUI>): u64
298CopyLoc[40](loc21: u64)
299Ge
300BrFalse(302)
B26:
301Branch(328)
B27:
302MoveLoc[7](Arg7: &mut UserStatsRegistry)
303Pop
304MoveLoc[11](Arg11: &KioskOwnerCap)
305Pop
306MoveLoc[10](Arg10: &mut Kiosk)
307Pop
308MoveLoc[4](Arg4: &TreasuryConfig)
309Pop
310MoveLoc[8](Arg8: &mut SharedTreasury)
311Pop
312MoveLoc[16](Arg16: &Random)
313Pop
314MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
315Pop
316MoveLoc[2](Arg2: &mut PerTypeSupply)
317Pop
318MoveLoc[1](Arg1: &mut PackSupply)
319Pop
320MoveLoc[6](Arg6: &mut GlobalStats)
321Pop
322MoveLoc[18](Arg18: &mut TxContext)
323Pop
324MoveLoc[17](Arg17: &Clock)
325Pop
326LdConst[1](u64: 2)
327Abort
B28:
328CopyLoc[1](Arg1: &mut PackSupply)
329ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
330ReadRef
331CopyLoc[15](Arg15: u64)
332Sub
333CopyLoc[1](Arg1: &mut PackSupply)
334MutBorrowField[3](PackSupply.total_packs_remaining: u64)
335WriteRef
336CopyLoc[2](Arg2: &mut PerTypeSupply)
337ImmBorrowField[10](PerTypeSupply.max_basic_per_batch: u64)
338ReadRef
339LdU64(0)
340Gt
341BrFalse(350)
B29:
342CopyLoc[2](Arg2: &mut PerTypeSupply)
343ImmBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
344ReadRef
345CopyLoc[15](Arg15: u64)
346Sub
347CopyLoc[2](Arg2: &mut PerTypeSupply)
348MutBorrowField[11](PerTypeSupply.basic_packs_remaining: u64)
349WriteRef
B30:
350MoveLoc[13](Arg13: Coin<SHTTOKEN>)
351StLoc[33](loc14: Coin<SHTTOKEN>)
352MutBorrowLoc[33](loc14: Coin<SHTTOKEN>)
353CopyLoc[37](loc18: u64)
354CopyLoc[18](Arg18: &mut TxContext)
355Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
356StLoc[38](loc19: Coin<SHTTOKEN>)
357CopyLoc[37](loc18: u64)
358LdU64(80)
359Mul
360LdU64(100)
361Div
362StLoc[21](loc2: u64)
363CopyLoc[37](loc18: u64)
364LdU64(10)
365Mul
366LdU64(100)
367Div
368StLoc[31](loc12: u64)
369MoveLoc[37](loc18: u64)
370CopyLoc[21](loc2: u64)
371Sub
372CopyLoc[31](loc12: u64)
373Sub
374Pop
375MoveLoc[38](loc19: Coin<SHTTOKEN>)
376StLoc[39](loc20: Coin<SHTTOKEN>)
377MutBorrowLoc[39](loc20: Coin<SHTTOKEN>)
378CopyLoc[21](loc2: u64)
379CopyLoc[18](Arg18: &mut TxContext)
380Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
381StLoc[22](loc3: Coin<SHTTOKEN>)
382MutBorrowLoc[39](loc20: Coin<SHTTOKEN>)
383CopyLoc[31](loc12: u64)
384CopyLoc[18](Arg18: &mut TxContext)
385Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
386StLoc[32](loc13: Coin<SHTTOKEN>)
387MoveLoc[39](loc20: Coin<SHTTOKEN>)
388StLoc[41](loc22: Coin<SHTTOKEN>)
389MoveLoc[8](Arg8: &mut SharedTreasury)
390MoveLoc[22](loc3: Coin<SHTTOKEN>)
391Call shttoken::burn(&mut SharedTreasury, Coin<SHTTOKEN>)
392CopyLoc[6](Arg6: &mut GlobalStats)
393CopyLoc[21](loc2: u64)
394CopyLoc[17](Arg17: &Clock)
395Call update_burn_stats(&mut GlobalStats, u64, &Clock)
396MoveLoc[7](Arg7: &mut UserStatsRegistry)
397CopyLoc[23](loc4: address)
398MoveLoc[21](loc2: u64)
399CopyLoc[15](Arg15: u64)
400CopyLoc[17](Arg17: &Clock)
401Call update_user_pack_stats(&mut UserStatsRegistry, address, u64, u64, &Clock)
402ImmBorrowLoc[30](loc11: Option<address>)
403Call option::is_some<address>(&Option<address>): bool
404BrFalse(447)
B31:
405ImmBorrowLoc[30](loc11: Option<address>)
406Call option::borrow<address>(&Option<address>): &address
407ReadRef
408StLoc[29](loc10: address)
409CopyLoc[29](loc10: address)
410CopyLoc[23](loc4: address)
411Neq
412BrFalse(414)
B32:
413Branch(436)
B33:
414MoveLoc[11](Arg11: &KioskOwnerCap)
415Pop
416MoveLoc[10](Arg10: &mut Kiosk)
417Pop
418MoveLoc[4](Arg4: &TreasuryConfig)
419Pop
420MoveLoc[16](Arg16: &Random)
421Pop
422MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
423Pop
424MoveLoc[2](Arg2: &mut PerTypeSupply)
425Pop
426MoveLoc[1](Arg1: &mut PackSupply)
427Pop
428MoveLoc[6](Arg6: &mut GlobalStats)
429Pop
430MoveLoc[18](Arg18: &mut TxContext)
431Pop
432MoveLoc[17](Arg17: &Clock)
433Pop
434LdConst[8](u64: 9)
435Abort
B34:
436LdConst[24](u8: 0)
437MoveLoc[23](loc4: address)
438CopyLoc[29](loc10: address)
439MoveLoc[31](loc12: u64)
440MoveLoc[24](loc5: u64)
441Pack[20](ReferralReward)
442Call event::emit<ReferralReward>(ReferralReward)
443MoveLoc[32](loc13: Coin<SHTTOKEN>)
444MoveLoc[29](loc10: address)
445Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
446Branch(452)
B35:
447MoveLoc[32](loc13: Coin<SHTTOKEN>)
448CopyLoc[4](Arg4: &TreasuryConfig)
449ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
450ReadRef
451Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
B36:
452MoveLoc[41](loc22: Coin<SHTTOKEN>)
453CopyLoc[4](Arg4: &TreasuryConfig)
454ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
455ReadRef
456Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
457ImmBorrowLoc[33](loc14: Coin<SHTTOKEN>)
458Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
459LdU64(0)
460Gt
461BrFalse(468)
B37:
462MoveLoc[33](loc14: Coin<SHTTOKEN>)
463CopyLoc[18](Arg18: &mut TxContext)
464FreezeRef
465Call tx_context::sender(&TxContext): address
466Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
467Branch(470)
B38:
468MoveLoc[33](loc14: Coin<SHTTOKEN>)
469Call coin::destroy_zero<SHTTOKEN>(Coin<SHTTOKEN>)
B39:
470MoveLoc[14](Arg14: Coin<SUI>)
471StLoc[35](loc16: Coin<SUI>)
472MutBorrowLoc[35](loc16: Coin<SUI>)
473MoveLoc[40](loc21: u64)
474CopyLoc[18](Arg18: &mut TxContext)
475Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
476MoveLoc[4](Arg4: &TreasuryConfig)
477ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
478ReadRef
479Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
480ImmBorrowLoc[35](loc16: Coin<SUI>)
481Call coin::value<SUI>(&Coin<SUI>): u64
482LdU64(0)
483Gt
484BrFalse(491)
B40:
485MoveLoc[35](loc16: Coin<SUI>)
486CopyLoc[18](Arg18: &mut TxContext)
487FreezeRef
488Call tx_context::sender(&TxContext): address
489Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
490Branch(493)
B41:
491MoveLoc[35](loc16: Coin<SUI>)
492Call coin::destroy_zero<SUI>(Coin<SUI>)
B42:
493CopyLoc[1](Arg1: &mut PackSupply)
494ImmBorrowField[7](PackSupply.current_batch_number: u64)
495ReadRef
496StLoc[20](loc1: u64)
497LdU64(0)
498StLoc[25](loc6: u64)
B43:
499CopyLoc[25](loc6: u64)
500CopyLoc[15](Arg15: u64)
501Lt
502BrFalse(547)
B44:
503CopyLoc[1](Arg1: &mut PackSupply)
504ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
505ReadRef
506CopyLoc[25](loc6: u64)
507Add
508LdU64(1)
509Add
510StLoc[26](loc7: u64)
511CopyLoc[16](Arg16: &Random)
512CopyLoc[18](Arg18: &mut TxContext)
513Call roll_basic_egg_rarity(&Random, &mut TxContext): u8
514StLoc[28](loc9: u8)
515CopyLoc[28](loc9: u8)
516CopyLoc[20](loc1: u64)
517MoveLoc[26](loc7: u64)
518CopyLoc[17](Arg17: &Clock)
519CopyLoc[18](Arg18: &mut TxContext)
520Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
521StLoc[27](loc8: DuckNFT)
522CopyLoc[6](Arg6: &mut GlobalStats)
523CopyLoc[28](loc9: u8)
524Call update_rarity_stats(&mut GlobalStats, u8)
525LdConst[24](u8: 0)
526CopyLoc[18](Arg18: &mut TxContext)
527FreezeRef
528Call tx_context::sender(&TxContext): address
529CopyLoc[34](loc15: u64)
530CopyLoc[36](loc17: u64)
531MoveLoc[28](loc9: u8)
532CopyLoc[1](Arg1: &mut PackSupply)
533ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
534ReadRef
535Pack[10](PackPurchased)
536Call event::emit<PackPurchased>(PackPurchased)
537CopyLoc[10](Arg10: &mut Kiosk)
538CopyLoc[11](Arg11: &KioskOwnerCap)
539CopyLoc[12](Arg12: &TransferPolicy<DuckNFT>)
540MoveLoc[27](loc8: DuckNFT)
541Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
542MoveLoc[25](loc6: u64)
543LdU64(1)
544Add
545StLoc[25](loc6: u64)
546Branch(499)
B45:
547MoveLoc[11](Arg11: &KioskOwnerCap)
548Pop
549MoveLoc[10](Arg10: &mut Kiosk)
550Pop
551MoveLoc[16](Arg16: &Random)
552Pop
553MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
554Pop
555MoveLoc[6](Arg6: &mut GlobalStats)
556Pop
557MoveLoc[18](Arg18: &mut TxContext)
558Pop
559CopyLoc[1](Arg1: &mut PackSupply)
560ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
561ReadRef
562MoveLoc[15](Arg15: u64)
563Add
564CopyLoc[1](Arg1: &mut PackSupply)
565MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
566WriteRef
567CopyLoc[1](Arg1: &mut PackSupply)
568CopyLoc[17](Arg17: &Clock)
569Call check_genesis_batch_completion(&mut PackSupply, &Clock)
570CopyLoc[1](Arg1: &mut PackSupply)
571ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
572ReadRef
573Not
574BrFalse(580)
B46:
575MoveLoc[1](Arg1: &mut PackSupply)
576MoveLoc[2](Arg2: &mut PerTypeSupply)
577MoveLoc[17](Arg17: &Clock)
578Call start_cooldown_if_sold_out(&mut PackSupply, &mut PerTypeSupply, &Clock)
579Branch(586)
B47:
580MoveLoc[2](Arg2: &mut PerTypeSupply)
581Pop
582MoveLoc[1](Arg1: &mut PackSupply)
583Pop
584MoveLoc[17](Arg17: &Clock)
585Pop
B48:
586Ret
}
 
entry hatch_rare_egg_v2(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &ReferralRegistry, Arg6: &mut GlobalStats, Arg7: &mut UserStatsRegistry, Arg8: &mut SharedTreasury, Arg9: &PackPricesV2, Arg10: &mut Kiosk, Arg11: &KioskOwnerCap, Arg12: &TransferPolicy<DuckNFT>, Arg13: Coin<SHTTOKEN>, Arg14: Coin<SUI>, Arg15: u64, Arg16: &Random, Arg17: &Clock, Arg18: &mut TxContext) {
L19: loc0: bool
L20: loc1: u64
L21: loc2: u64
L22: loc3: Coin<SHTTOKEN>
L23: loc4: address
L24: loc5: u64
L25: loc6: u64
L26: loc7: u64
L27: loc8: DuckNFT
L28: loc9: u8
L29: loc10: address
L30: loc11: Option<address>
L31: loc12: u64
L32: loc13: Coin<SHTTOKEN>
L33: loc14: Coin<SHTTOKEN>
L34: loc15: u64
L35: loc16: Coin<SUI>
L36: loc17: u64
L37: loc18: u64
L38: loc19: Coin<SHTTOKEN>
L39: loc20: Coin<SHTTOKEN>
L40: loc21: u64
L41: loc22: Coin<SHTTOKEN>
B0:
0CopyLoc[17](Arg17: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[24](loc5: u64)
3CopyLoc[18](Arg18: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[23](loc4: address)
7MoveLoc[5](Arg5: &ReferralRegistry)
8CopyLoc[23](loc4: address)
9Call get_referrer(&ReferralRegistry, address): Option<address>
10StLoc[30](loc11: Option<address>)
11CopyLoc[1](Arg1: &mut PackSupply)
12ImmBorrowField[0](PackSupply.start_time: u64)
13ReadRef
14LdU64(0)
15Gt
16BrFalse(24)
B1:
17CopyLoc[24](loc5: u64)
18CopyLoc[1](Arg1: &mut PackSupply)
19ImmBorrowField[0](PackSupply.start_time: u64)
20ReadRef
21Ge
22StLoc[19](loc0: bool)
23Branch(26)
B2:
24LdFalse
25StLoc[19](loc0: bool)
B3:
26MoveLoc[19](loc0: bool)
27BrFalse(29)
B4:
28Branch(57)
B5:
29MoveLoc[7](Arg7: &mut UserStatsRegistry)
30Pop
31MoveLoc[11](Arg11: &KioskOwnerCap)
32Pop
33MoveLoc[10](Arg10: &mut Kiosk)
34Pop
35MoveLoc[4](Arg4: &TreasuryConfig)
36Pop
37MoveLoc[8](Arg8: &mut SharedTreasury)
38Pop
39MoveLoc[16](Arg16: &Random)
40Pop
41MoveLoc[9](Arg9: &PackPricesV2)
42Pop
43MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
44Pop
45MoveLoc[2](Arg2: &mut PerTypeSupply)
46Pop
47MoveLoc[1](Arg1: &mut PackSupply)
48Pop
49MoveLoc[6](Arg6: &mut GlobalStats)
50Pop
51MoveLoc[18](Arg18: &mut TxContext)
52Pop
53MoveLoc[17](Arg17: &Clock)
54Pop
55LdConst[4](u64: 5)
56Abort
B6:
57CopyLoc[1](Arg1: &mut PackSupply)
58ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
59ReadRef
60Not
61BrFalse(63)
B7:
62Branch(91)
B8:
63MoveLoc[7](Arg7: &mut UserStatsRegistry)
64Pop
65MoveLoc[11](Arg11: &KioskOwnerCap)
66Pop
67MoveLoc[10](Arg10: &mut Kiosk)
68Pop
69MoveLoc[4](Arg4: &TreasuryConfig)
70Pop
71MoveLoc[8](Arg8: &mut SharedTreasury)
72Pop
73MoveLoc[16](Arg16: &Random)
74Pop
75MoveLoc[9](Arg9: &PackPricesV2)
76Pop
77MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
78Pop
79MoveLoc[2](Arg2: &mut PerTypeSupply)
80Pop
81MoveLoc[1](Arg1: &mut PackSupply)
82Pop
83MoveLoc[6](Arg6: &mut GlobalStats)
84Pop
85MoveLoc[18](Arg18: &mut TxContext)
86Pop
87MoveLoc[17](Arg17: &Clock)
88Pop
89LdConst[11](u64: 12)
90Abort
B9:
91CopyLoc[1](Arg1: &mut PackSupply)
92CopyLoc[2](Arg2: &mut PerTypeSupply)
93CopyLoc[17](Arg17: &Clock)
94Call check_and_start_new_batch_if_ready(&mut PackSupply, &mut PerTypeSupply, &Clock)
95CopyLoc[1](Arg1: &mut PackSupply)
96ImmBorrowField[23](PackSupply.in_cooldown: bool)
97ReadRef
98Not
99BrFalse(101)
B10:
100Branch(129)
B11:
101MoveLoc[7](Arg7: &mut UserStatsRegistry)
102Pop
103MoveLoc[11](Arg11: &KioskOwnerCap)
104Pop
105MoveLoc[10](Arg10: &mut Kiosk)
106Pop
107MoveLoc[4](Arg4: &TreasuryConfig)
108Pop
109MoveLoc[8](Arg8: &mut SharedTreasury)
110Pop
111MoveLoc[16](Arg16: &Random)
112Pop
113MoveLoc[9](Arg9: &PackPricesV2)
114Pop
115MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
116Pop
117MoveLoc[2](Arg2: &mut PerTypeSupply)
118Pop
119MoveLoc[1](Arg1: &mut PackSupply)
120Pop
121MoveLoc[6](Arg6: &mut GlobalStats)
122Pop
123MoveLoc[18](Arg18: &mut TxContext)
124Pop
125MoveLoc[17](Arg17: &Clock)
126Pop
127LdConst[12](u64: 13)
128Abort
B12:
129CopyLoc[1](Arg1: &mut PackSupply)
130LdFalse
131CopyLoc[23](loc4: address)
132CopyLoc[15](Arg15: u64)
133CopyLoc[24](loc5: u64)
134Call enforce_public_rate_limit(&mut PackSupply, bool, address, u64, u64)
135CopyLoc[1](Arg1: &mut PackSupply)
136ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
137ReadRef
138CopyLoc[15](Arg15: u64)
139Ge
140BrFalse(142)
B13:
141Branch(170)
B14:
142MoveLoc[7](Arg7: &mut UserStatsRegistry)
143Pop
144MoveLoc[11](Arg11: &KioskOwnerCap)
145Pop
146MoveLoc[10](Arg10: &mut Kiosk)
147Pop
148MoveLoc[4](Arg4: &TreasuryConfig)
149Pop
150MoveLoc[8](Arg8: &mut SharedTreasury)
151Pop
152MoveLoc[16](Arg16: &Random)
153Pop
154MoveLoc[9](Arg9: &PackPricesV2)
155Pop
156MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
157Pop
158MoveLoc[2](Arg2: &mut PerTypeSupply)
159Pop
160MoveLoc[1](Arg1: &mut PackSupply)
161Pop
162MoveLoc[6](Arg6: &mut GlobalStats)
163Pop
164MoveLoc[18](Arg18: &mut TxContext)
165Pop
166MoveLoc[17](Arg17: &Clock)
167Pop
168LdConst[2](u64: 3)
169Abort
B15:
170CopyLoc[2](Arg2: &mut PerTypeSupply)
171ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
172ReadRef
173LdU64(0)
174Gt
175BrFalse(211)
B16:
176CopyLoc[2](Arg2: &mut PerTypeSupply)
177ImmBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
178ReadRef
179CopyLoc[15](Arg15: u64)
180Ge
181BrFalse(183)
B17:
182Branch(211)
B18:
183MoveLoc[7](Arg7: &mut UserStatsRegistry)
184Pop
185MoveLoc[11](Arg11: &KioskOwnerCap)
186Pop
187MoveLoc[10](Arg10: &mut Kiosk)
188Pop
189MoveLoc[4](Arg4: &TreasuryConfig)
190Pop
191MoveLoc[8](Arg8: &mut SharedTreasury)
192Pop
193MoveLoc[16](Arg16: &Random)
194Pop
195MoveLoc[9](Arg9: &PackPricesV2)
196Pop
197MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
198Pop
199MoveLoc[2](Arg2: &mut PerTypeSupply)
200Pop
201MoveLoc[1](Arg1: &mut PackSupply)
202Pop
203MoveLoc[6](Arg6: &mut GlobalStats)
204Pop
205MoveLoc[18](Arg18: &mut TxContext)
206Pop
207MoveLoc[17](Arg17: &Clock)
208Pop
209LdConst[17](u64: 18)
210Abort
B19:
211CopyLoc[1](Arg1: &mut PackSupply)
212ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
213ReadRef
214CopyLoc[15](Arg15: u64)
215Add
216LdConst[34](u64: 5555)
217Le
218BrFalse(220)
B20:
219Branch(248)
B21:
220MoveLoc[7](Arg7: &mut UserStatsRegistry)
221Pop
222MoveLoc[11](Arg11: &KioskOwnerCap)
223Pop
224MoveLoc[10](Arg10: &mut Kiosk)
225Pop
226MoveLoc[4](Arg4: &TreasuryConfig)
227Pop
228MoveLoc[8](Arg8: &mut SharedTreasury)
229Pop
230MoveLoc[16](Arg16: &Random)
231Pop
232MoveLoc[9](Arg9: &PackPricesV2)
233Pop
234MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
235Pop
236MoveLoc[2](Arg2: &mut PerTypeSupply)
237Pop
238MoveLoc[1](Arg1: &mut PackSupply)
239Pop
240MoveLoc[6](Arg6: &mut GlobalStats)
241Pop
242MoveLoc[18](Arg18: &mut TxContext)
243Pop
244MoveLoc[17](Arg17: &Clock)
245Pop
246LdConst[13](u64: 14)
247Abort
B22:
248CopyLoc[9](Arg9: &PackPricesV2)
249ImmBorrowField[45](PackPricesV2.rare_egg_sht_cost: u64)
250ReadRef
251StLoc[34](loc15: u64)
252MoveLoc[9](Arg9: &PackPricesV2)
253ImmBorrowField[46](PackPricesV2.rare_egg_sui_cost: u64)
254ReadRef
255StLoc[36](loc17: u64)
256CopyLoc[34](loc15: u64)
257CopyLoc[15](Arg15: u64)
258Mul
259StLoc[37](loc18: u64)
260CopyLoc[36](loc17: u64)
261CopyLoc[15](Arg15: u64)
262Mul
263StLoc[40](loc21: u64)
264ImmBorrowLoc[13](Arg13: Coin<SHTTOKEN>)
265Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
266CopyLoc[37](loc18: u64)
267Ge
268BrFalse(270)
B23:
269Branch(296)
B24:
270MoveLoc[7](Arg7: &mut UserStatsRegistry)
271Pop
272MoveLoc[11](Arg11: &KioskOwnerCap)
273Pop
274MoveLoc[10](Arg10: &mut Kiosk)
275Pop
276MoveLoc[4](Arg4: &TreasuryConfig)
277Pop
278MoveLoc[8](Arg8: &mut SharedTreasury)
279Pop
280MoveLoc[16](Arg16: &Random)
281Pop
282MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
283Pop
284MoveLoc[2](Arg2: &mut PerTypeSupply)
285Pop
286MoveLoc[1](Arg1: &mut PackSupply)
287Pop
288MoveLoc[6](Arg6: &mut GlobalStats)
289Pop
290MoveLoc[18](Arg18: &mut TxContext)
291Pop
292MoveLoc[17](Arg17: &Clock)
293Pop
294LdConst[0](u64: 1)
295Abort
B25:
296ImmBorrowLoc[14](Arg14: Coin<SUI>)
297Call coin::value<SUI>(&Coin<SUI>): u64
298CopyLoc[40](loc21: u64)
299Ge
300BrFalse(302)
B26:
301Branch(328)
B27:
302MoveLoc[7](Arg7: &mut UserStatsRegistry)
303Pop
304MoveLoc[11](Arg11: &KioskOwnerCap)
305Pop
306MoveLoc[10](Arg10: &mut Kiosk)
307Pop
308MoveLoc[4](Arg4: &TreasuryConfig)
309Pop
310MoveLoc[8](Arg8: &mut SharedTreasury)
311Pop
312MoveLoc[16](Arg16: &Random)
313Pop
314MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
315Pop
316MoveLoc[2](Arg2: &mut PerTypeSupply)
317Pop
318MoveLoc[1](Arg1: &mut PackSupply)
319Pop
320MoveLoc[6](Arg6: &mut GlobalStats)
321Pop
322MoveLoc[18](Arg18: &mut TxContext)
323Pop
324MoveLoc[17](Arg17: &Clock)
325Pop
326LdConst[1](u64: 2)
327Abort
B28:
328CopyLoc[1](Arg1: &mut PackSupply)
329ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
330ReadRef
331CopyLoc[15](Arg15: u64)
332Sub
333CopyLoc[1](Arg1: &mut PackSupply)
334MutBorrowField[3](PackSupply.total_packs_remaining: u64)
335WriteRef
336CopyLoc[2](Arg2: &mut PerTypeSupply)
337ImmBorrowField[12](PerTypeSupply.max_rare_per_batch: u64)
338ReadRef
339LdU64(0)
340Gt
341BrFalse(350)
B29:
342CopyLoc[2](Arg2: &mut PerTypeSupply)
343ImmBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
344ReadRef
345CopyLoc[15](Arg15: u64)
346Sub
347CopyLoc[2](Arg2: &mut PerTypeSupply)
348MutBorrowField[13](PerTypeSupply.rare_packs_remaining: u64)
349WriteRef
B30:
350MoveLoc[13](Arg13: Coin<SHTTOKEN>)
351StLoc[33](loc14: Coin<SHTTOKEN>)
352MutBorrowLoc[33](loc14: Coin<SHTTOKEN>)
353CopyLoc[37](loc18: u64)
354CopyLoc[18](Arg18: &mut TxContext)
355Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
356StLoc[38](loc19: Coin<SHTTOKEN>)
357CopyLoc[37](loc18: u64)
358LdU64(80)
359Mul
360LdU64(100)
361Div
362StLoc[21](loc2: u64)
363CopyLoc[37](loc18: u64)
364LdU64(10)
365Mul
366LdU64(100)
367Div
368StLoc[31](loc12: u64)
369MoveLoc[37](loc18: u64)
370CopyLoc[21](loc2: u64)
371Sub
372CopyLoc[31](loc12: u64)
373Sub
374Pop
375MoveLoc[38](loc19: Coin<SHTTOKEN>)
376StLoc[39](loc20: Coin<SHTTOKEN>)
377MutBorrowLoc[39](loc20: Coin<SHTTOKEN>)
378CopyLoc[21](loc2: u64)
379CopyLoc[18](Arg18: &mut TxContext)
380Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
381StLoc[22](loc3: Coin<SHTTOKEN>)
382MutBorrowLoc[39](loc20: Coin<SHTTOKEN>)
383CopyLoc[31](loc12: u64)
384CopyLoc[18](Arg18: &mut TxContext)
385Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
386StLoc[32](loc13: Coin<SHTTOKEN>)
387MoveLoc[39](loc20: Coin<SHTTOKEN>)
388StLoc[41](loc22: Coin<SHTTOKEN>)
389MoveLoc[8](Arg8: &mut SharedTreasury)
390MoveLoc[22](loc3: Coin<SHTTOKEN>)
391Call shttoken::burn(&mut SharedTreasury, Coin<SHTTOKEN>)
392CopyLoc[6](Arg6: &mut GlobalStats)
393CopyLoc[21](loc2: u64)
394CopyLoc[17](Arg17: &Clock)
395Call update_burn_stats(&mut GlobalStats, u64, &Clock)
396MoveLoc[7](Arg7: &mut UserStatsRegistry)
397CopyLoc[23](loc4: address)
398MoveLoc[21](loc2: u64)
399CopyLoc[15](Arg15: u64)
400CopyLoc[17](Arg17: &Clock)
401Call update_user_pack_stats(&mut UserStatsRegistry, address, u64, u64, &Clock)
402ImmBorrowLoc[30](loc11: Option<address>)
403Call option::is_some<address>(&Option<address>): bool
404BrFalse(447)
B31:
405ImmBorrowLoc[30](loc11: Option<address>)
406Call option::borrow<address>(&Option<address>): &address
407ReadRef
408StLoc[29](loc10: address)
409CopyLoc[29](loc10: address)
410CopyLoc[23](loc4: address)
411Neq
412BrFalse(414)
B32:
413Branch(436)
B33:
414MoveLoc[11](Arg11: &KioskOwnerCap)
415Pop
416MoveLoc[10](Arg10: &mut Kiosk)
417Pop
418MoveLoc[4](Arg4: &TreasuryConfig)
419Pop
420MoveLoc[16](Arg16: &Random)
421Pop
422MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
423Pop
424MoveLoc[2](Arg2: &mut PerTypeSupply)
425Pop
426MoveLoc[1](Arg1: &mut PackSupply)
427Pop
428MoveLoc[6](Arg6: &mut GlobalStats)
429Pop
430MoveLoc[18](Arg18: &mut TxContext)
431Pop
432MoveLoc[17](Arg17: &Clock)
433Pop
434LdConst[8](u64: 9)
435Abort
B34:
436LdConst[25](u8: 1)
437MoveLoc[23](loc4: address)
438CopyLoc[29](loc10: address)
439MoveLoc[31](loc12: u64)
440MoveLoc[24](loc5: u64)
441Pack[20](ReferralReward)
442Call event::emit<ReferralReward>(ReferralReward)
443MoveLoc[32](loc13: Coin<SHTTOKEN>)
444MoveLoc[29](loc10: address)
445Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
446Branch(452)
B35:
447MoveLoc[32](loc13: Coin<SHTTOKEN>)
448CopyLoc[4](Arg4: &TreasuryConfig)
449ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
450ReadRef
451Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
B36:
452MoveLoc[41](loc22: Coin<SHTTOKEN>)
453CopyLoc[4](Arg4: &TreasuryConfig)
454ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
455ReadRef
456Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
457ImmBorrowLoc[33](loc14: Coin<SHTTOKEN>)
458Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
459LdU64(0)
460Gt
461BrFalse(468)
B37:
462MoveLoc[33](loc14: Coin<SHTTOKEN>)
463CopyLoc[18](Arg18: &mut TxContext)
464FreezeRef
465Call tx_context::sender(&TxContext): address
466Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
467Branch(470)
B38:
468MoveLoc[33](loc14: Coin<SHTTOKEN>)
469Call coin::destroy_zero<SHTTOKEN>(Coin<SHTTOKEN>)
B39:
470MoveLoc[14](Arg14: Coin<SUI>)
471StLoc[35](loc16: Coin<SUI>)
472MutBorrowLoc[35](loc16: Coin<SUI>)
473MoveLoc[40](loc21: u64)
474CopyLoc[18](Arg18: &mut TxContext)
475Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
476MoveLoc[4](Arg4: &TreasuryConfig)
477ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
478ReadRef
479Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
480ImmBorrowLoc[35](loc16: Coin<SUI>)
481Call coin::value<SUI>(&Coin<SUI>): u64
482LdU64(0)
483Gt
484BrFalse(491)
B40:
485MoveLoc[35](loc16: Coin<SUI>)
486CopyLoc[18](Arg18: &mut TxContext)
487FreezeRef
488Call tx_context::sender(&TxContext): address
489Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
490Branch(493)
B41:
491MoveLoc[35](loc16: Coin<SUI>)
492Call coin::destroy_zero<SUI>(Coin<SUI>)
B42:
493CopyLoc[1](Arg1: &mut PackSupply)
494ImmBorrowField[7](PackSupply.current_batch_number: u64)
495ReadRef
496StLoc[20](loc1: u64)
497LdU64(0)
498StLoc[25](loc6: u64)
B43:
499CopyLoc[25](loc6: u64)
500CopyLoc[15](Arg15: u64)
501Lt
502BrFalse(547)
B44:
503CopyLoc[1](Arg1: &mut PackSupply)
504ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
505ReadRef
506CopyLoc[25](loc6: u64)
507Add
508LdU64(1)
509Add
510StLoc[26](loc7: u64)
511CopyLoc[16](Arg16: &Random)
512CopyLoc[18](Arg18: &mut TxContext)
513Call roll_rare_egg_rarity(&Random, &mut TxContext): u8
514StLoc[28](loc9: u8)
515CopyLoc[28](loc9: u8)
516CopyLoc[20](loc1: u64)
517MoveLoc[26](loc7: u64)
518CopyLoc[17](Arg17: &Clock)
519CopyLoc[18](Arg18: &mut TxContext)
520Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
521StLoc[27](loc8: DuckNFT)
522CopyLoc[6](Arg6: &mut GlobalStats)
523CopyLoc[28](loc9: u8)
524Call update_rarity_stats(&mut GlobalStats, u8)
525LdConst[25](u8: 1)
526CopyLoc[18](Arg18: &mut TxContext)
527FreezeRef
528Call tx_context::sender(&TxContext): address
529CopyLoc[34](loc15: u64)
530CopyLoc[36](loc17: u64)
531MoveLoc[28](loc9: u8)
532CopyLoc[1](Arg1: &mut PackSupply)
533ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
534ReadRef
535Pack[10](PackPurchased)
536Call event::emit<PackPurchased>(PackPurchased)
537CopyLoc[10](Arg10: &mut Kiosk)
538CopyLoc[11](Arg11: &KioskOwnerCap)
539CopyLoc[12](Arg12: &TransferPolicy<DuckNFT>)
540MoveLoc[27](loc8: DuckNFT)
541Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
542MoveLoc[25](loc6: u64)
543LdU64(1)
544Add
545StLoc[25](loc6: u64)
546Branch(499)
B45:
547MoveLoc[11](Arg11: &KioskOwnerCap)
548Pop
549MoveLoc[10](Arg10: &mut Kiosk)
550Pop
551MoveLoc[16](Arg16: &Random)
552Pop
553MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
554Pop
555MoveLoc[6](Arg6: &mut GlobalStats)
556Pop
557MoveLoc[18](Arg18: &mut TxContext)
558Pop
559CopyLoc[1](Arg1: &mut PackSupply)
560ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
561ReadRef
562MoveLoc[15](Arg15: u64)
563Add
564CopyLoc[1](Arg1: &mut PackSupply)
565MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
566WriteRef
567CopyLoc[1](Arg1: &mut PackSupply)
568CopyLoc[17](Arg17: &Clock)
569Call check_genesis_batch_completion(&mut PackSupply, &Clock)
570CopyLoc[1](Arg1: &mut PackSupply)
571ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
572ReadRef
573Not
574BrFalse(580)
B46:
575MoveLoc[1](Arg1: &mut PackSupply)
576MoveLoc[2](Arg2: &mut PerTypeSupply)
577MoveLoc[17](Arg17: &Clock)
578Call start_cooldown_if_sold_out(&mut PackSupply, &mut PerTypeSupply, &Clock)
579Branch(586)
B47:
580MoveLoc[2](Arg2: &mut PerTypeSupply)
581Pop
582MoveLoc[1](Arg1: &mut PackSupply)
583Pop
584MoveLoc[17](Arg17: &Clock)
585Pop
B48:
586Ret
}
 
entry hatch_golden_egg_v2(Arg0: &HatchCap, Arg1: &mut PackSupply, Arg2: &mut PerTypeSupply, Arg3: &Whitelist, Arg4: &TreasuryConfig, Arg5: &ReferralRegistry, Arg6: &mut GlobalStats, Arg7: &mut UserStatsRegistry, Arg8: &mut SharedTreasury, Arg9: &PackPricesV2, Arg10: &mut Kiosk, Arg11: &KioskOwnerCap, Arg12: &TransferPolicy<DuckNFT>, Arg13: Coin<SHTTOKEN>, Arg14: Coin<SUI>, Arg15: u64, Arg16: &Random, Arg17: &Clock, Arg18: &mut TxContext) {
L19: loc0: bool
L20: loc1: u64
L21: loc2: u64
L22: loc3: Coin<SHTTOKEN>
L23: loc4: address
L24: loc5: u64
L25: loc6: u64
L26: loc7: u64
L27: loc8: DuckNFT
L28: loc9: u8
L29: loc10: address
L30: loc11: Option<address>
L31: loc12: u64
L32: loc13: Coin<SHTTOKEN>
L33: loc14: Coin<SHTTOKEN>
L34: loc15: u64
L35: loc16: Coin<SUI>
L36: loc17: u64
L37: loc18: u64
L38: loc19: Coin<SHTTOKEN>
L39: loc20: Coin<SHTTOKEN>
L40: loc21: u64
L41: loc22: Coin<SHTTOKEN>
B0:
0CopyLoc[17](Arg17: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[24](loc5: u64)
3CopyLoc[18](Arg18: &mut TxContext)
4FreezeRef
5Call tx_context::sender(&TxContext): address
6StLoc[23](loc4: address)
7MoveLoc[5](Arg5: &ReferralRegistry)
8CopyLoc[23](loc4: address)
9Call get_referrer(&ReferralRegistry, address): Option<address>
10StLoc[30](loc11: Option<address>)
11CopyLoc[1](Arg1: &mut PackSupply)
12ImmBorrowField[0](PackSupply.start_time: u64)
13ReadRef
14LdU64(0)
15Gt
16BrFalse(24)
B1:
17CopyLoc[24](loc5: u64)
18CopyLoc[1](Arg1: &mut PackSupply)
19ImmBorrowField[0](PackSupply.start_time: u64)
20ReadRef
21Ge
22StLoc[19](loc0: bool)
23Branch(26)
B2:
24LdFalse
25StLoc[19](loc0: bool)
B3:
26MoveLoc[19](loc0: bool)
27BrFalse(29)
B4:
28Branch(57)
B5:
29MoveLoc[7](Arg7: &mut UserStatsRegistry)
30Pop
31MoveLoc[11](Arg11: &KioskOwnerCap)
32Pop
33MoveLoc[10](Arg10: &mut Kiosk)
34Pop
35MoveLoc[4](Arg4: &TreasuryConfig)
36Pop
37MoveLoc[8](Arg8: &mut SharedTreasury)
38Pop
39MoveLoc[16](Arg16: &Random)
40Pop
41MoveLoc[9](Arg9: &PackPricesV2)
42Pop
43MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
44Pop
45MoveLoc[2](Arg2: &mut PerTypeSupply)
46Pop
47MoveLoc[1](Arg1: &mut PackSupply)
48Pop
49MoveLoc[6](Arg6: &mut GlobalStats)
50Pop
51MoveLoc[18](Arg18: &mut TxContext)
52Pop
53MoveLoc[17](Arg17: &Clock)
54Pop
55LdConst[4](u64: 5)
56Abort
B6:
57CopyLoc[1](Arg1: &mut PackSupply)
58ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
59ReadRef
60Not
61BrFalse(63)
B7:
62Branch(91)
B8:
63MoveLoc[7](Arg7: &mut UserStatsRegistry)
64Pop
65MoveLoc[11](Arg11: &KioskOwnerCap)
66Pop
67MoveLoc[10](Arg10: &mut Kiosk)
68Pop
69MoveLoc[4](Arg4: &TreasuryConfig)
70Pop
71MoveLoc[8](Arg8: &mut SharedTreasury)
72Pop
73MoveLoc[16](Arg16: &Random)
74Pop
75MoveLoc[9](Arg9: &PackPricesV2)
76Pop
77MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
78Pop
79MoveLoc[2](Arg2: &mut PerTypeSupply)
80Pop
81MoveLoc[1](Arg1: &mut PackSupply)
82Pop
83MoveLoc[6](Arg6: &mut GlobalStats)
84Pop
85MoveLoc[18](Arg18: &mut TxContext)
86Pop
87MoveLoc[17](Arg17: &Clock)
88Pop
89LdConst[11](u64: 12)
90Abort
B9:
91CopyLoc[1](Arg1: &mut PackSupply)
92CopyLoc[2](Arg2: &mut PerTypeSupply)
93CopyLoc[17](Arg17: &Clock)
94Call check_and_start_new_batch_if_ready(&mut PackSupply, &mut PerTypeSupply, &Clock)
95CopyLoc[1](Arg1: &mut PackSupply)
96ImmBorrowField[23](PackSupply.in_cooldown: bool)
97ReadRef
98Not
99BrFalse(101)
B10:
100Branch(129)
B11:
101MoveLoc[7](Arg7: &mut UserStatsRegistry)
102Pop
103MoveLoc[11](Arg11: &KioskOwnerCap)
104Pop
105MoveLoc[10](Arg10: &mut Kiosk)
106Pop
107MoveLoc[4](Arg4: &TreasuryConfig)
108Pop
109MoveLoc[8](Arg8: &mut SharedTreasury)
110Pop
111MoveLoc[16](Arg16: &Random)
112Pop
113MoveLoc[9](Arg9: &PackPricesV2)
114Pop
115MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
116Pop
117MoveLoc[2](Arg2: &mut PerTypeSupply)
118Pop
119MoveLoc[1](Arg1: &mut PackSupply)
120Pop
121MoveLoc[6](Arg6: &mut GlobalStats)
122Pop
123MoveLoc[18](Arg18: &mut TxContext)
124Pop
125MoveLoc[17](Arg17: &Clock)
126Pop
127LdConst[12](u64: 13)
128Abort
B12:
129CopyLoc[1](Arg1: &mut PackSupply)
130LdFalse
131CopyLoc[23](loc4: address)
132CopyLoc[15](Arg15: u64)
133CopyLoc[24](loc5: u64)
134Call enforce_public_rate_limit(&mut PackSupply, bool, address, u64, u64)
135CopyLoc[1](Arg1: &mut PackSupply)
136ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
137ReadRef
138CopyLoc[15](Arg15: u64)
139Ge
140BrFalse(142)
B13:
141Branch(170)
B14:
142MoveLoc[7](Arg7: &mut UserStatsRegistry)
143Pop
144MoveLoc[11](Arg11: &KioskOwnerCap)
145Pop
146MoveLoc[10](Arg10: &mut Kiosk)
147Pop
148MoveLoc[4](Arg4: &TreasuryConfig)
149Pop
150MoveLoc[8](Arg8: &mut SharedTreasury)
151Pop
152MoveLoc[16](Arg16: &Random)
153Pop
154MoveLoc[9](Arg9: &PackPricesV2)
155Pop
156MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
157Pop
158MoveLoc[2](Arg2: &mut PerTypeSupply)
159Pop
160MoveLoc[1](Arg1: &mut PackSupply)
161Pop
162MoveLoc[6](Arg6: &mut GlobalStats)
163Pop
164MoveLoc[18](Arg18: &mut TxContext)
165Pop
166MoveLoc[17](Arg17: &Clock)
167Pop
168LdConst[2](u64: 3)
169Abort
B15:
170CopyLoc[2](Arg2: &mut PerTypeSupply)
171ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
172ReadRef
173LdU64(0)
174Gt
175BrFalse(211)
B16:
176CopyLoc[2](Arg2: &mut PerTypeSupply)
177ImmBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
178ReadRef
179CopyLoc[15](Arg15: u64)
180Ge
181BrFalse(183)
B17:
182Branch(211)
B18:
183MoveLoc[7](Arg7: &mut UserStatsRegistry)
184Pop
185MoveLoc[11](Arg11: &KioskOwnerCap)
186Pop
187MoveLoc[10](Arg10: &mut Kiosk)
188Pop
189MoveLoc[4](Arg4: &TreasuryConfig)
190Pop
191MoveLoc[8](Arg8: &mut SharedTreasury)
192Pop
193MoveLoc[16](Arg16: &Random)
194Pop
195MoveLoc[9](Arg9: &PackPricesV2)
196Pop
197MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
198Pop
199MoveLoc[2](Arg2: &mut PerTypeSupply)
200Pop
201MoveLoc[1](Arg1: &mut PackSupply)
202Pop
203MoveLoc[6](Arg6: &mut GlobalStats)
204Pop
205MoveLoc[18](Arg18: &mut TxContext)
206Pop
207MoveLoc[17](Arg17: &Clock)
208Pop
209LdConst[17](u64: 18)
210Abort
B19:
211CopyLoc[1](Arg1: &mut PackSupply)
212ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
213ReadRef
214CopyLoc[15](Arg15: u64)
215Add
216LdConst[34](u64: 5555)
217Le
218BrFalse(220)
B20:
219Branch(248)
B21:
220MoveLoc[7](Arg7: &mut UserStatsRegistry)
221Pop
222MoveLoc[11](Arg11: &KioskOwnerCap)
223Pop
224MoveLoc[10](Arg10: &mut Kiosk)
225Pop
226MoveLoc[4](Arg4: &TreasuryConfig)
227Pop
228MoveLoc[8](Arg8: &mut SharedTreasury)
229Pop
230MoveLoc[16](Arg16: &Random)
231Pop
232MoveLoc[9](Arg9: &PackPricesV2)
233Pop
234MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
235Pop
236MoveLoc[2](Arg2: &mut PerTypeSupply)
237Pop
238MoveLoc[1](Arg1: &mut PackSupply)
239Pop
240MoveLoc[6](Arg6: &mut GlobalStats)
241Pop
242MoveLoc[18](Arg18: &mut TxContext)
243Pop
244MoveLoc[17](Arg17: &Clock)
245Pop
246LdConst[13](u64: 14)
247Abort
B22:
248CopyLoc[9](Arg9: &PackPricesV2)
249ImmBorrowField[47](PackPricesV2.golden_egg_sht_cost: u64)
250ReadRef
251StLoc[34](loc15: u64)
252MoveLoc[9](Arg9: &PackPricesV2)
253ImmBorrowField[48](PackPricesV2.golden_egg_sui_cost: u64)
254ReadRef
255StLoc[36](loc17: u64)
256CopyLoc[34](loc15: u64)
257CopyLoc[15](Arg15: u64)
258Mul
259StLoc[37](loc18: u64)
260CopyLoc[36](loc17: u64)
261CopyLoc[15](Arg15: u64)
262Mul
263StLoc[40](loc21: u64)
264ImmBorrowLoc[13](Arg13: Coin<SHTTOKEN>)
265Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
266CopyLoc[37](loc18: u64)
267Ge
268BrFalse(270)
B23:
269Branch(296)
B24:
270MoveLoc[7](Arg7: &mut UserStatsRegistry)
271Pop
272MoveLoc[11](Arg11: &KioskOwnerCap)
273Pop
274MoveLoc[10](Arg10: &mut Kiosk)
275Pop
276MoveLoc[4](Arg4: &TreasuryConfig)
277Pop
278MoveLoc[8](Arg8: &mut SharedTreasury)
279Pop
280MoveLoc[16](Arg16: &Random)
281Pop
282MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
283Pop
284MoveLoc[2](Arg2: &mut PerTypeSupply)
285Pop
286MoveLoc[1](Arg1: &mut PackSupply)
287Pop
288MoveLoc[6](Arg6: &mut GlobalStats)
289Pop
290MoveLoc[18](Arg18: &mut TxContext)
291Pop
292MoveLoc[17](Arg17: &Clock)
293Pop
294LdConst[0](u64: 1)
295Abort
B25:
296ImmBorrowLoc[14](Arg14: Coin<SUI>)
297Call coin::value<SUI>(&Coin<SUI>): u64
298CopyLoc[40](loc21: u64)
299Ge
300BrFalse(302)
B26:
301Branch(328)
B27:
302MoveLoc[7](Arg7: &mut UserStatsRegistry)
303Pop
304MoveLoc[11](Arg11: &KioskOwnerCap)
305Pop
306MoveLoc[10](Arg10: &mut Kiosk)
307Pop
308MoveLoc[4](Arg4: &TreasuryConfig)
309Pop
310MoveLoc[8](Arg8: &mut SharedTreasury)
311Pop
312MoveLoc[16](Arg16: &Random)
313Pop
314MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
315Pop
316MoveLoc[2](Arg2: &mut PerTypeSupply)
317Pop
318MoveLoc[1](Arg1: &mut PackSupply)
319Pop
320MoveLoc[6](Arg6: &mut GlobalStats)
321Pop
322MoveLoc[18](Arg18: &mut TxContext)
323Pop
324MoveLoc[17](Arg17: &Clock)
325Pop
326LdConst[1](u64: 2)
327Abort
B28:
328CopyLoc[1](Arg1: &mut PackSupply)
329ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
330ReadRef
331CopyLoc[15](Arg15: u64)
332Sub
333CopyLoc[1](Arg1: &mut PackSupply)
334MutBorrowField[3](PackSupply.total_packs_remaining: u64)
335WriteRef
336CopyLoc[2](Arg2: &mut PerTypeSupply)
337ImmBorrowField[14](PerTypeSupply.max_golden_per_batch: u64)
338ReadRef
339LdU64(0)
340Gt
341BrFalse(350)
B29:
342CopyLoc[2](Arg2: &mut PerTypeSupply)
343ImmBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
344ReadRef
345CopyLoc[15](Arg15: u64)
346Sub
347CopyLoc[2](Arg2: &mut PerTypeSupply)
348MutBorrowField[15](PerTypeSupply.golden_packs_remaining: u64)
349WriteRef
B30:
350MoveLoc[13](Arg13: Coin<SHTTOKEN>)
351StLoc[33](loc14: Coin<SHTTOKEN>)
352MutBorrowLoc[33](loc14: Coin<SHTTOKEN>)
353CopyLoc[37](loc18: u64)
354CopyLoc[18](Arg18: &mut TxContext)
355Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
356StLoc[38](loc19: Coin<SHTTOKEN>)
357CopyLoc[37](loc18: u64)
358LdU64(80)
359Mul
360LdU64(100)
361Div
362StLoc[21](loc2: u64)
363CopyLoc[37](loc18: u64)
364LdU64(10)
365Mul
366LdU64(100)
367Div
368StLoc[31](loc12: u64)
369MoveLoc[37](loc18: u64)
370CopyLoc[21](loc2: u64)
371Sub
372CopyLoc[31](loc12: u64)
373Sub
374Pop
375MoveLoc[38](loc19: Coin<SHTTOKEN>)
376StLoc[39](loc20: Coin<SHTTOKEN>)
377MutBorrowLoc[39](loc20: Coin<SHTTOKEN>)
378CopyLoc[21](loc2: u64)
379CopyLoc[18](Arg18: &mut TxContext)
380Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
381StLoc[22](loc3: Coin<SHTTOKEN>)
382MutBorrowLoc[39](loc20: Coin<SHTTOKEN>)
383CopyLoc[31](loc12: u64)
384CopyLoc[18](Arg18: &mut TxContext)
385Call coin::split<SHTTOKEN>(&mut Coin<SHTTOKEN>, u64, &mut TxContext): Coin<SHTTOKEN>
386StLoc[32](loc13: Coin<SHTTOKEN>)
387MoveLoc[39](loc20: Coin<SHTTOKEN>)
388StLoc[41](loc22: Coin<SHTTOKEN>)
389MoveLoc[8](Arg8: &mut SharedTreasury)
390MoveLoc[22](loc3: Coin<SHTTOKEN>)
391Call shttoken::burn(&mut SharedTreasury, Coin<SHTTOKEN>)
392CopyLoc[6](Arg6: &mut GlobalStats)
393CopyLoc[21](loc2: u64)
394CopyLoc[17](Arg17: &Clock)
395Call update_burn_stats(&mut GlobalStats, u64, &Clock)
396MoveLoc[7](Arg7: &mut UserStatsRegistry)
397CopyLoc[23](loc4: address)
398MoveLoc[21](loc2: u64)
399CopyLoc[15](Arg15: u64)
400CopyLoc[17](Arg17: &Clock)
401Call update_user_pack_stats(&mut UserStatsRegistry, address, u64, u64, &Clock)
402ImmBorrowLoc[30](loc11: Option<address>)
403Call option::is_some<address>(&Option<address>): bool
404BrFalse(447)
B31:
405ImmBorrowLoc[30](loc11: Option<address>)
406Call option::borrow<address>(&Option<address>): &address
407ReadRef
408StLoc[29](loc10: address)
409CopyLoc[29](loc10: address)
410CopyLoc[23](loc4: address)
411Neq
412BrFalse(414)
B32:
413Branch(436)
B33:
414MoveLoc[11](Arg11: &KioskOwnerCap)
415Pop
416MoveLoc[10](Arg10: &mut Kiosk)
417Pop
418MoveLoc[4](Arg4: &TreasuryConfig)
419Pop
420MoveLoc[16](Arg16: &Random)
421Pop
422MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
423Pop
424MoveLoc[2](Arg2: &mut PerTypeSupply)
425Pop
426MoveLoc[1](Arg1: &mut PackSupply)
427Pop
428MoveLoc[6](Arg6: &mut GlobalStats)
429Pop
430MoveLoc[18](Arg18: &mut TxContext)
431Pop
432MoveLoc[17](Arg17: &Clock)
433Pop
434LdConst[8](u64: 9)
435Abort
B34:
436LdConst[26](u8: 2)
437MoveLoc[23](loc4: address)
438CopyLoc[29](loc10: address)
439MoveLoc[31](loc12: u64)
440MoveLoc[24](loc5: u64)
441Pack[20](ReferralReward)
442Call event::emit<ReferralReward>(ReferralReward)
443MoveLoc[32](loc13: Coin<SHTTOKEN>)
444MoveLoc[29](loc10: address)
445Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
446Branch(452)
B35:
447MoveLoc[32](loc13: Coin<SHTTOKEN>)
448CopyLoc[4](Arg4: &TreasuryConfig)
449ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
450ReadRef
451Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
B36:
452MoveLoc[41](loc22: Coin<SHTTOKEN>)
453CopyLoc[4](Arg4: &TreasuryConfig)
454ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
455ReadRef
456Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
457ImmBorrowLoc[33](loc14: Coin<SHTTOKEN>)
458Call coin::value<SHTTOKEN>(&Coin<SHTTOKEN>): u64
459LdU64(0)
460Gt
461BrFalse(468)
B37:
462MoveLoc[33](loc14: Coin<SHTTOKEN>)
463CopyLoc[18](Arg18: &mut TxContext)
464FreezeRef
465Call tx_context::sender(&TxContext): address
466Call transfer::public_transfer<Coin<SHTTOKEN>>(Coin<SHTTOKEN>, address)
467Branch(470)
B38:
468MoveLoc[33](loc14: Coin<SHTTOKEN>)
469Call coin::destroy_zero<SHTTOKEN>(Coin<SHTTOKEN>)
B39:
470MoveLoc[14](Arg14: Coin<SUI>)
471StLoc[35](loc16: Coin<SUI>)
472MutBorrowLoc[35](loc16: Coin<SUI>)
473MoveLoc[40](loc21: u64)
474CopyLoc[18](Arg18: &mut TxContext)
475Call coin::split<SUI>(&mut Coin<SUI>, u64, &mut TxContext): Coin<SUI>
476MoveLoc[4](Arg4: &TreasuryConfig)
477ImmBorrowField[29](TreasuryConfig.treasury_wallet: address)
478ReadRef
479Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
480ImmBorrowLoc[35](loc16: Coin<SUI>)
481Call coin::value<SUI>(&Coin<SUI>): u64
482LdU64(0)
483Gt
484BrFalse(491)
B40:
485MoveLoc[35](loc16: Coin<SUI>)
486CopyLoc[18](Arg18: &mut TxContext)
487FreezeRef
488Call tx_context::sender(&TxContext): address
489Call transfer::public_transfer<Coin<SUI>>(Coin<SUI>, address)
490Branch(493)
B41:
491MoveLoc[35](loc16: Coin<SUI>)
492Call coin::destroy_zero<SUI>(Coin<SUI>)
B42:
493CopyLoc[1](Arg1: &mut PackSupply)
494ImmBorrowField[7](PackSupply.current_batch_number: u64)
495ReadRef
496StLoc[20](loc1: u64)
497LdU64(0)
498StLoc[25](loc6: u64)
B43:
499CopyLoc[25](loc6: u64)
500CopyLoc[15](Arg15: u64)
501Lt
502BrFalse(547)
B44:
503CopyLoc[1](Arg1: &mut PackSupply)
504ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
505ReadRef
506CopyLoc[25](loc6: u64)
507Add
508LdU64(1)
509Add
510StLoc[26](loc7: u64)
511CopyLoc[16](Arg16: &Random)
512CopyLoc[18](Arg18: &mut TxContext)
513Call roll_golden_egg_rarity(&Random, &mut TxContext): u8
514StLoc[28](loc9: u8)
515CopyLoc[28](loc9: u8)
516CopyLoc[20](loc1: u64)
517MoveLoc[26](loc7: u64)
518CopyLoc[17](Arg17: &Clock)
519CopyLoc[18](Arg18: &mut TxContext)
520Call create_duck_nft(u8, u64, u64, &Clock, &mut TxContext): DuckNFT
521StLoc[27](loc8: DuckNFT)
522CopyLoc[6](Arg6: &mut GlobalStats)
523CopyLoc[28](loc9: u8)
524Call update_rarity_stats(&mut GlobalStats, u8)
525LdConst[26](u8: 2)
526CopyLoc[18](Arg18: &mut TxContext)
527FreezeRef
528Call tx_context::sender(&TxContext): address
529CopyLoc[34](loc15: u64)
530CopyLoc[36](loc17: u64)
531MoveLoc[28](loc9: u8)
532CopyLoc[1](Arg1: &mut PackSupply)
533ImmBorrowField[3](PackSupply.total_packs_remaining: u64)
534ReadRef
535Pack[10](PackPurchased)
536Call event::emit<PackPurchased>(PackPurchased)
537CopyLoc[10](Arg10: &mut Kiosk)
538CopyLoc[11](Arg11: &KioskOwnerCap)
539CopyLoc[12](Arg12: &TransferPolicy<DuckNFT>)
540MoveLoc[27](loc8: DuckNFT)
541Call kiosk::lock<DuckNFT>(&mut Kiosk, &KioskOwnerCap, &TransferPolicy<DuckNFT>, DuckNFT)
542MoveLoc[25](loc6: u64)
543LdU64(1)
544Add
545StLoc[25](loc6: u64)
546Branch(499)
B45:
547MoveLoc[11](Arg11: &KioskOwnerCap)
548Pop
549MoveLoc[10](Arg10: &mut Kiosk)
550Pop
551MoveLoc[16](Arg16: &Random)
552Pop
553MoveLoc[12](Arg12: &TransferPolicy<DuckNFT>)
554Pop
555MoveLoc[6](Arg6: &mut GlobalStats)
556Pop
557MoveLoc[18](Arg18: &mut TxContext)
558Pop
559CopyLoc[1](Arg1: &mut PackSupply)
560ImmBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
561ReadRef
562MoveLoc[15](Arg15: u64)
563Add
564CopyLoc[1](Arg1: &mut PackSupply)
565MutBorrowField[19](PackSupply.total_nfts_minted_globally: u64)
566WriteRef
567CopyLoc[1](Arg1: &mut PackSupply)
568CopyLoc[17](Arg17: &Clock)
569Call check_genesis_batch_completion(&mut PackSupply, &Clock)
570CopyLoc[1](Arg1: &mut PackSupply)
571ImmBorrowField[1](PackSupply.is_genesis_batch: bool)
572ReadRef
573Not
574BrFalse(580)
B46:
575MoveLoc[1](Arg1: &mut PackSupply)
576MoveLoc[2](Arg2: &mut PerTypeSupply)
577MoveLoc[17](Arg17: &Clock)
578Call start_cooldown_if_sold_out(&mut PackSupply, &mut PerTypeSupply, &Clock)
579Branch(586)
B47:
580MoveLoc[2](Arg2: &mut PerTypeSupply)
581Pop
582MoveLoc[1](Arg1: &mut PackSupply)
583Pop
584MoveLoc[17](Arg17: &Clock)
585Pop
B48:
586Ret
}
 
Constants [
0 => u64: 1
1 => u64: 2
2 => u64: 3
3 => u64: 4
4 => u64: 5
5 => u64: 6
6 => u64: 7
7 => u64: 8
8 => u64: 9
9 => u64: 10
10 => u64: 11
11 => u64: 12
12 => u64: 13
13 => u64: 14
14 => u64: 15
15 => u64: 16
16 => u64: 17
17 => u64: 18
18 => u64: 19
19 => u64: 20
20 => u64: 21
21 => u64: 22
22 => u64: 23
23 => u64: 24
24 => u8: 0
25 => u8: 1
26 => u8: 2
27 => u8: 3
28 => u64: 7000000000000
29 => u64: 2000000000
30 => u64: 15000000000000
31 => u64: 6000000000
32 => u64: 25000000000000
33 => u64: 12000000000
34 => u64: 5555
35 => u64: 300
36 => u64: 86400000
37 => u64: 600
38 => u64: 575
39 => u64: 21600000
40 => u64: 5000
41 => vector<u8>: "cooldown_duration" // interpreted as UTF8 string
42 => vector<u8>: "name" // interpreted as UTF8 string
43 => vector<u8>: "number" // interpreted as UTF8 string
44 => vector<u8>: "description" // interpreted as UTF8 string
45 => vector<u8>: "image_url" // interpreted as UTF8 string
46 => vector<u8>: "rarity" // interpreted as UTF8 string
47 => vector<u8>: "luck" // interpreted as UTF8 string
48 => vector<u8>: "multiplier" // interpreted as UTF8 string
49 => vector<u8>: "batch" // interpreted as UTF8 string
50 => vector<u8>: "attributes" // interpreted as UTF8 string
51 => vector<u8>: "{name}" // interpreted as UTF8 string
52 => vector<u8>: "{number}" // interpreted as UTF8 string
53 => vector<u8>: "{description}" // interpreted as UTF8 string
54 => vector<u8>: "{image_url}" // interpreted as UTF8 string
55 => vector<u8>: "{rarity_name}" // interpreted as UTF8 string
56 => vector<u8>: "{luck}" // interpreted as UTF8 string
57 => vector<u8>: "{multiplier}" // interpreted as UTF8 string
58 => vector<u8>: "{batch}" // interpreted as UTF8 string
59 => vector<u8>: "{attributes}" // interpreted as UTF8 string
60 => vector<u8>: "Duck Dynasty #" // interpreted as UTF8 string
61 => vector<u8>: "Rarity" // interpreted as UTF8 string
62 => vector<u8>: "Luck" // interpreted as UTF8 string
63 => vector<u8>: "Multiplier" // interpreted as UTF8 string
64 => vector<u8>: "Batch" // interpreted as UTF8 string
65 => vector<u8>: "Staked" // interpreted as UTF8 string
66 => vector<u8>: "No" // interpreted as UTF8 string
67 => vector<u8>: "Genesis Batch" // interpreted as UTF8 string
68 => vector<u8>: "Batch #" // interpreted as UTF8 string
69 => vector<u8>: "0" // interpreted as UTF8 string
70 => vector<u8>: "85%" // interpreted as UTF8 string
71 => vector<u8>: "7x" // interpreted as UTF8 string
72 => vector<u8>: "60%" // interpreted as UTF8 string
73 => vector<u8>: "5x" // interpreted as UTF8 string
74 => vector<u8>: "50%" // interpreted as UTF8 string
75 => vector<u8>: "3x" // interpreted as UTF8 string
76 => vector<u8>: "40%" // interpreted as UTF8 string
77 => vector<u8>: "1x" // interpreted as UTF8 string
78 => vector<u8>: "Golden" // interpreted as UTF8 string
79 => vector<u8>: "King" // interpreted as UTF8 string
80 => vector<u8>: "Queen" // interpreted as UTF8 string
81 => vector<u8>: "Common" // interpreted as UTF8 string
82 => vector<u8>: "https://gateway.lighthouse.storage/ipfs/bafybeignzuwwl5bn2q7jv6lwkoy5cfeusjtq4mepwtbbiob3lcajnx4t3q/Golden.png" // interpreted as UTF8 string
83 => vector<u8>: "https://gateway.lighthouse.storage/ipfs/bafybeignzuwwl5bn2q7jv6lwkoy5cfeusjtq4mepwtbbiob3lcajnx4t3q/King.png" // interpreted as UTF8 string
84 => vector<u8>: "https://gateway.lighthouse.storage/ipfs/bafybeignzuwwl5bn2q7jv6lwkoy5cfeusjtq4mepwtbbiob3lcajnx4t3q/Queen.png" // interpreted as UTF8 string
85 => vector<u8>: "https://gateway.lighthouse.storage/ipfs/bafybeignzuwwl5bn2q7jv6lwkoy5cfeusjtq4mepwtbbiob3lcajnx4t3q/Common.png" // interpreted as UTF8 string
86 => vector<u8>: "Duck Dynasty is a feathery force of nature generating SHT day in, day out." // interpreted as UTF8 string
87 => vector<u8>: "Status" // interpreted as UTF8 string
88 => vector<u8>: "Frozen" // interpreted as UTF8 string
89 => vector<u8>: "Alive" // interpreted as UTF8 string
90 => vector<u8>: "Bones" // interpreted as UTF8 string
91 => vector<u8>: "1" // interpreted as UTF8 string
92 => vector<u8>: "2" // interpreted as UTF8 string
93 => vector<u8>: "3" // interpreted as UTF8 string
94 => vector<u8>: "Yes" // interpreted as UTF8 string
]
}