pool
Module0xd47b…3db2
- Move path
- 0x361d…7ffc::pool
- Functions
- 153107 public, 27 entry
- Structs
- 21
- Friend modules
- None
Bytecode5718 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 361dd589b98e8fcda9a7ee53b85efabef3569d00416640d2faa516e3801d7ffc.pool {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::bcs;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::ed25519;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::math;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 361dd589b98e8fcda9a7ee53b85efabef3569d00416640d2faa516e3801d7ffc::TOKEN;
use 361dd589b98e8fcda9a7ee53b85efabef3569d00416640d2faa516e3801d7ffc::permission;
use 361dd589b98e8fcda9a7ee53b85efabef3569d00416640d2faa516e3801d7ffc::ratio;
use 361dd589b98e8fcda9a7ee53b85efabef3569d00416640d2faa516e3801d7ffc::utils;
use 361dd589b98e8fcda9a7ee53b85efabef3569d00416640d2faa516e3801d7ffc::vpt;
struct POOL has drop {
dummy_field: bool
}
struct TagEvent has copy, drop, store {
operation: vector<u8>,
tag: vector<u8>
}
struct PoolCreateEvent has copy, drop, store {
pool_id: ID
}
struct SwapTokenEvent<phantom Ty0, phantom Ty1> has copy, drop {
pool_index: u64,
x_to_y: bool,
in_amount: u64,
out_amount: u64
}
struct LiquidityEvent<phantom Ty0, phantom Ty1> has copy, drop {
pool_index: u64,
is_added: bool,
x_amount: u64,
y_amount: u64,
lsp_amount: u64,
lsp_id: ID
}
struct SnapshotEvent<phantom Ty0, phantom Ty1> has copy, drop, store {
pool_index: u64,
x: u64,
y: u64,
lsp: u64
}
struct SwapCap has key {
id: UID,
registry_id: Option<ID>
}
struct PoolCreateInfo has copy, drop, store {
pool_id: ID,
reverse: bool
}
struct PoolCreateInfoKey<phantom Ty0, phantom Ty1> has copy, drop, store {
dummy_field: bool
}
struct LSP<phantom Ty0, phantom Ty1> has drop {
dummy_field: bool
}
struct PoolNoAdminSetupInfo has store {
allowance: bool,
fee_direction: u8,
admin_fee: u64,
lp_fee: u64,
th_fee: u64,
withdraw_fee: u64
}
struct PoolBoostMultiplierData has copy, drop, store {
epoch: u64,
boost_multiplier: u64
}
struct PoolRegistry has key {
id: UID,
version: u64,
pool_counter: u64,
pool_no_admin: PoolNoAdminSetupInfo,
pool_th_reward_nepoch: u64,
pool_boost_multiplier_data: vector<PoolBoostMultiplierData>
}
struct PoolTotalTradeInfo has store {
x: u128,
y: u128,
x_last_epoch: u128,
y_last_epoch: u128,
x_current_epoch: u128,
y_current_epoch: u128
}
struct PoolTokenHolderRewardInfo<phantom Ty0, phantom Ty1> has store {
type: u8,
x: Balance<Ty0>,
y: Balance<Ty1>,
x_supply: u64,
y_supply: u64,
nepoch: u64,
start_epcoh: u64,
end_epoch: u64,
total_stake_amount: u64,
total_stake_boost: u128
}
struct PoolLiquidityMiningInfo has store {
permission: Option<Permission<TokenBank>>,
speed: u256,
ampt: ValuePerToken,
last_epoch: u64
}
struct PoolFeeInfo has store {
direction: u8,
admin: u64,
lp: u64,
th: u64,
withdraw: u64
}
struct PoolBalanceInfo<phantom Ty0, phantom Ty1> has store {
x: Balance<Ty0>,
y: Balance<Ty1>,
x_admin: Balance<Ty0>,
y_admin: Balance<Ty1>,
x_th: Balance<Ty0>,
y_th: Balance<Ty1>,
bx: u64,
by: u64
}
struct PoolStableInfo has store {
amp: u64,
x_scale: u64,
y_scale: u64
}
struct Pool<phantom Ty0, phantom Ty1> has key {
id: UID,
version: u64,
owner: address,
index: u64,
pool_type: u8,
lsp_supply: u64,
freeze: u8,
trade_epoch: u64,
boost_multiplier_data: vector<PoolBoostMultiplierData>,
fee: PoolFeeInfo,
stable: PoolStableInfo,
balance: PoolBalanceInfo<Ty0, Ty1>,
total_trade: PoolTotalTradeInfo,
th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>,
mining: PoolLiquidityMiningInfo
}
struct PoolLsp<phantom Ty0, phantom Ty1> has key {
id: UID,
pool_id: ID,
value: u64,
pool_x: u64,
pool_y: u64,
pool_lsp: u64,
pool_mining_ampt: ValuePerToken,
start_epoch: u64,
end_epoch: u64,
boost_multiplier: u64
}
public pool_create_info_get_pool_id(Arg0: &PoolCreateInfo): ID {
B0:
0MoveLoc[0](Arg0: &PoolCreateInfo)
1ImmBorrowField[0](PoolCreateInfo.pool_id: ID)
2ReadRef
3Ret
}
public pool_registry_get_id(Arg0: &PoolRegistry): ID {
B0:
0MoveLoc[0](Arg0: &PoolRegistry)
1ImmBorrowField[1](PoolRegistry.id: UID)
2Call object::uid_to_inner(&UID): ID
3Ret
}
public pool_registry_get_pool_counter(Arg0: &PoolRegistry): u64 {
B0:
0MoveLoc[0](Arg0: &PoolRegistry)
1ImmBorrowField[2](PoolRegistry.pool_counter: u64)
2ReadRef
3Ret
}
public pool_registry_get_no_admin_pool_allowance(Arg0: &PoolRegistry): bool {
B0:
0MoveLoc[0](Arg0: &PoolRegistry)
1ImmBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
2ImmBorrowField[4](PoolNoAdminSetupInfo.allowance: bool)
3ReadRef
4Ret
}
public pool_registry_get_no_admin_pool_fee_direction(Arg0: &PoolRegistry): u8 {
B0:
0MoveLoc[0](Arg0: &PoolRegistry)
1ImmBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
2ImmBorrowField[5](PoolNoAdminSetupInfo.fee_direction: u8)
3ReadRef
4Ret
}
public pool_registry_get_no_admin_pool_admin_fee(Arg0: &PoolRegistry): u64 {
B0:
0MoveLoc[0](Arg0: &PoolRegistry)
1ImmBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
2ImmBorrowField[6](PoolNoAdminSetupInfo.admin_fee: u64)
3ReadRef
4Ret
}
public pool_registry_get_no_admin_pool_lp_fee(Arg0: &PoolRegistry): u64 {
B0:
0MoveLoc[0](Arg0: &PoolRegistry)
1ImmBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
2ImmBorrowField[7](PoolNoAdminSetupInfo.lp_fee: u64)
3ReadRef
4Ret
}
public pool_registry_get_no_admin_pool_th_fee(Arg0: &PoolRegistry): u64 {
B0:
0MoveLoc[0](Arg0: &PoolRegistry)
1ImmBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
2ImmBorrowField[8](PoolNoAdminSetupInfo.th_fee: u64)
3ReadRef
4Ret
}
public pool_registry_get_no_admin_pool_withdraw_fee(Arg0: &PoolRegistry): u64 {
B0:
0MoveLoc[0](Arg0: &PoolRegistry)
1ImmBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
2ImmBorrowField[9](PoolNoAdminSetupInfo.withdraw_fee: u64)
3ReadRef
4Ret
}
public pool_registry_set_no_admin_pool_allowance(Arg0: &SwapCap, Arg1: &mut PoolRegistry, Arg2: bool) {
B0:
0MoveLoc[2](Arg2: bool)
1MoveLoc[1](Arg1: &mut PoolRegistry)
2MutBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
3MutBorrowField[4](PoolNoAdminSetupInfo.allowance: bool)
4WriteRef
5Ret
}
public pool_registry_set_no_admin_pool_fee_direction(Arg0: &SwapCap, Arg1: &mut PoolRegistry, Arg2: u8) {
B0:
0MoveLoc[2](Arg2: u8)
1MoveLoc[1](Arg1: &mut PoolRegistry)
2MutBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
3MutBorrowField[5](PoolNoAdminSetupInfo.fee_direction: u8)
4WriteRef
5Ret
}
public pool_registry_set_no_admin_pool_admin_fee(Arg0: &SwapCap, Arg1: &mut PoolRegistry, Arg2: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1MoveLoc[1](Arg1: &mut PoolRegistry)
2MutBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
3MutBorrowField[6](PoolNoAdminSetupInfo.admin_fee: u64)
4WriteRef
5Ret
}
public pool_registry_set_no_admin_pool_lp_fee(Arg0: &SwapCap, Arg1: &mut PoolRegistry, Arg2: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1MoveLoc[1](Arg1: &mut PoolRegistry)
2MutBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
3MutBorrowField[7](PoolNoAdminSetupInfo.lp_fee: u64)
4WriteRef
5Ret
}
public pool_registry_set_no_admin_pool_th_fee(Arg0: &SwapCap, Arg1: &mut PoolRegistry, Arg2: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1MoveLoc[1](Arg1: &mut PoolRegistry)
2MutBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
3MutBorrowField[8](PoolNoAdminSetupInfo.th_fee: u64)
4WriteRef
5Ret
}
public pool_registry_set_no_admin_pool_withdraw_fee(Arg0: &SwapCap, Arg1: &mut PoolRegistry, Arg2: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1MoveLoc[1](Arg1: &mut PoolRegistry)
2MutBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
3MutBorrowField[9](PoolNoAdminSetupInfo.withdraw_fee: u64)
4WriteRef
5Ret
}
public pool_get_id<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): ID {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[0](Pool.id: UID)
2Call object::uid_to_inner(&UID): ID
3Ret
}
public pool_get_index<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[1](Pool.index: u64)
2ReadRef
3Ret
}
public pool_get_owner<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): address {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[2](Pool.owner: address)
2ReadRef
3Ret
}
public pool_get_pool_type<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u8 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[3](Pool.pool_type: u8)
2ReadRef
3Ret
}
public pool_get_lsp_supply<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[4](Pool.lsp_supply: u64)
2ReadRef
3Ret
}
public pool_get_freeze<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u8 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[5](Pool.freeze: u8)
2ReadRef
3Ret
}
public pool_get_trade_epoch<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[6](Pool.trade_epoch: u64)
2ReadRef
3Ret
}
public pool_get_boost_multiplier_length<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[7](Pool.boost_multiplier_data: vector<PoolBoostMultiplierData>)
2VecLen(13)
3Ret
}
public pool_get_boost_multiplier_data<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: u64): PoolBoostMultiplierData {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[7](Pool.boost_multiplier_data: vector<PoolBoostMultiplierData>)
2MoveLoc[1](Arg1: u64)
3VecImmBorrow(13)
4ReadRef
5Ret
}
public pool_get_fee_direction<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u8 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
2ImmBorrowField[19](PoolFeeInfo.direction: u8)
3ReadRef
4Ret
}
public pool_get_fee_admin<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
2ImmBorrowField[20](PoolFeeInfo.admin: u64)
3ReadRef
4Ret
}
public pool_get_fee_lp<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
2ImmBorrowField[21](PoolFeeInfo.lp: u64)
3ReadRef
4Ret
}
public pool_get_fee_th<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
2ImmBorrowField[22](PoolFeeInfo.th: u64)
3ReadRef
4Ret
}
public pool_get_fee_withdraw<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
2ImmBorrowField[23](PoolFeeInfo.withdraw: u64)
3ReadRef
4Ret
}
public pool_get_stable_amp<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
2ImmBorrowField[25](PoolStableInfo.amp: u64)
3ReadRef
4Ret
}
public pool_get_stable_x_scale<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
2ImmBorrowField[26](PoolStableInfo.x_scale: u64)
3ReadRef
4Ret
}
public pool_get_stable_y_scale<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
2ImmBorrowField[27](PoolStableInfo.y_scale: u64)
3ReadRef
4Ret
}
public pool_get_balance_x_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[11](PoolBalanceInfo.x: Balance<Ty0>)
3Call balance::value<Ty0>(&Balance<Ty0>): u64
4Ret
}
public pool_get_balance_y_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[12](PoolBalanceInfo.y: Balance<Ty1>)
3Call balance::value<Ty1>(&Balance<Ty1>): u64
4Ret
}
public pool_get_balance_x_admin_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[13](PoolBalanceInfo.x_admin: Balance<Ty0>)
3Call balance::value<Ty0>(&Balance<Ty0>): u64
4Ret
}
public pool_get_balance_y_admin_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[14](PoolBalanceInfo.y_admin: Balance<Ty1>)
3Call balance::value<Ty1>(&Balance<Ty1>): u64
4Ret
}
public pool_get_balance_x_th_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[15](PoolBalanceInfo.x_th: Balance<Ty0>)
3Call balance::value<Ty0>(&Balance<Ty0>): u64
4Ret
}
public pool_get_balance_y_th_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[16](PoolBalanceInfo.y_th: Balance<Ty1>)
3Call balance::value<Ty1>(&Balance<Ty1>): u64
4Ret
}
public pool_get_total_trade_x<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u128 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
2ImmBorrowField[36](PoolTotalTradeInfo.x: u128)
3ReadRef
4Ret
}
public pool_get_total_trade_y<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u128 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
2ImmBorrowField[37](PoolTotalTradeInfo.y: u128)
3ReadRef
4Ret
}
public pool_get_total_trade_x_last_epoch<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u128 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
2ImmBorrowField[38](PoolTotalTradeInfo.x_last_epoch: u128)
3ReadRef
4Ret
}
public pool_get_total_trade_y_last_epoch<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u128 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
2ImmBorrowField[39](PoolTotalTradeInfo.y_last_epoch: u128)
3ReadRef
4Ret
}
public pool_get_total_trade_x_current_epoch<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u128 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
2ImmBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
3ReadRef
4Ret
}
public pool_get_total_trade_y_current_epoch<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u128 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
2ImmBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
3ReadRef
4Ret
}
public pool_get_th_reward_type<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u8 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[19](PoolTokenHolderRewardInfo.type: u8)
3ReadRef
4Ret
}
public pool_get_th_reward_x_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[20](PoolTokenHolderRewardInfo.x: Balance<Ty0>)
3Call balance::value<Ty0>(&Balance<Ty0>): u64
4Ret
}
public pool_get_th_reward_y_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[21](PoolTokenHolderRewardInfo.y: Balance<Ty1>)
3Call balance::value<Ty1>(&Balance<Ty1>): u64
4Ret
}
public pool_get_th_reward_x_supply<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[22](PoolTokenHolderRewardInfo.x_supply: u64)
3ReadRef
4Ret
}
public pool_get_th_reward_y_supply<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[23](PoolTokenHolderRewardInfo.y_supply: u64)
3ReadRef
4Ret
}
public pool_get_th_reward_nepoch<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[24](PoolTokenHolderRewardInfo.nepoch: u64)
3ReadRef
4Ret
}
public pool_get_th_reward_start_epcoh<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[25](PoolTokenHolderRewardInfo.start_epcoh: u64)
3ReadRef
4Ret
}
public pool_get_th_reward_end_epoch<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[26](PoolTokenHolderRewardInfo.end_epoch: u64)
3ReadRef
4Ret
}
public pool_get_th_reward_total_stake_amount<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[27](PoolTokenHolderRewardInfo.total_stake_amount: u64)
3ReadRef
4Ret
}
public pool_get_th_reward_total_stake_boost<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u128 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[28](PoolTokenHolderRewardInfo.total_stake_boost: u128)
3ReadRef
4Ret
}
public pool_get_mining_has_permission<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): bool {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
2ImmBorrowField[54](PoolLiquidityMiningInfo.permission: Option<Permission<TokenBank>>)
3Call option::is_some<Permission<TokenBank>>(&Option<Permission<TokenBank>>): bool
4Ret
}
public pool_get_mining_speed<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u256 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
2ImmBorrowField[55](PoolLiquidityMiningInfo.speed: u256)
3ReadRef
4Ret
}
public pool_get_mining_ampt<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): ValuePerToken {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
2ImmBorrowField[56](PoolLiquidityMiningInfo.ampt: ValuePerToken)
3ReadRef
4Ret
}
public pool_get_mining_last_epoch<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
2ImmBorrowField[57](PoolLiquidityMiningInfo.last_epoch: u64)
3ReadRef
4Ret
}
public pool_lsp_get_id<Ty0, Ty1>(Arg0: &PoolLsp<Ty0, Ty1>): ID {
B0:
0MoveLoc[0](Arg0: &PoolLsp<Ty0, Ty1>)
1ImmBorrowFieldGeneric[30](PoolLsp.id: UID)
2Call object::uid_to_inner(&UID): ID
3Ret
}
public pool_lsp_get_pool_id<Ty0, Ty1>(Arg0: &PoolLsp<Ty0, Ty1>): ID {
B0:
0MoveLoc[0](Arg0: &PoolLsp<Ty0, Ty1>)
1ImmBorrowFieldGeneric[31](PoolLsp.pool_id: ID)
2ReadRef
3Ret
}
public pool_lsp_get_value<Ty0, Ty1>(Arg0: &PoolLsp<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &PoolLsp<Ty0, Ty1>)
1ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
2ReadRef
3Ret
}
public pool_lsp_get_pool_x<Ty0, Ty1>(Arg0: &PoolLsp<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &PoolLsp<Ty0, Ty1>)
1ImmBorrowFieldGeneric[33](PoolLsp.pool_x: u64)
2ReadRef
3Ret
}
public pool_lsp_get_pool_y<Ty0, Ty1>(Arg0: &PoolLsp<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &PoolLsp<Ty0, Ty1>)
1ImmBorrowFieldGeneric[34](PoolLsp.pool_y: u64)
2ReadRef
3Ret
}
init(Arg0: POOL, Arg1: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: POOL)
1CopyLoc[1](Arg1: &mut TxContext)
2Call package::claim_and_keep<POOL>(POOL, &mut TxContext)
3MoveLoc[1](Arg1: &mut TxContext)
4Call init_impl(&mut TxContext)
5Ret
}
entry public create_registry(Arg0: &mut SwapCap, Arg1: u64, Arg2: vector<u64>, Arg3: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut SwapCap)
1MoveLoc[1](Arg1: u64)
2MoveLoc[2](Arg2: vector<u64>)
3MoveLoc[3](Arg3: &mut TxContext)
4Call do_create_registry(&mut SwapCap, u64, vector<u64>, &mut TxContext)
5Ret
}
entry public create_pool<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut PoolRegistry, Arg2: &TokenFarm, Arg3: u8, Arg4: u8, Arg5: u8, Arg6: u64, Arg7: u64, Arg8: u64, Arg9: u64, Arg10: u64, Arg11: u8, Arg12: u8, Arg13: u64, Arg14: u64, Arg15: u8, Arg16: &Clock, Arg17: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &SwapCap)
1MoveLoc[1](Arg1: &mut PoolRegistry)
2MoveLoc[2](Arg2: &TokenFarm)
3MoveLoc[3](Arg3: u8)
4MoveLoc[4](Arg4: u8)
5MoveLoc[5](Arg5: u8)
6MoveLoc[6](Arg6: u64)
7MoveLoc[7](Arg7: u64)
8MoveLoc[8](Arg8: u64)
9MoveLoc[9](Arg9: u64)
10MoveLoc[10](Arg10: u64)
11MoveLoc[11](Arg11: u8)
12MoveLoc[12](Arg12: u8)
13MoveLoc[13](Arg13: u64)
14MoveLoc[14](Arg14: u64)
15MoveLoc[15](Arg15: u8)
16MoveLoc[16](Arg16: &Clock)
17MoveLoc[17](Arg17: &mut TxContext)
18Call do_create_pool<Ty0, Ty1>(&SwapCap, &mut PoolRegistry, &TokenFarm, u8, u8, u8, u64, u64, u64, u64, u64, u8, u8, u64, u64, u8, &Clock, &mut TxContext)
19Ret
}
entry public change_fee<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &SwapCap)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: u64)
5MoveLoc[5](Arg5: &mut TxContext)
6Call do_change_fee<Ty0, Ty1>(&SwapCap, &mut Pool<Ty0, Ty1>, u64, u64, u64, &mut TxContext)
7Ret
}
entry public freeze_pool<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>) {
B0:
0MoveLoc[0](Arg0: &SwapCap)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2LdConst[3](u8: 1)
3LdConst[8](u8: 2)
4BitOr
5LdConst[9](u8: 4)
6BitOr
7Call do_set_pool_freeze<Ty0, Ty1>(&SwapCap, &mut Pool<Ty0, Ty1>, u8)
8Ret
}
entry public unfreeze_pool<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>) {
B0:
0MoveLoc[0](Arg0: &SwapCap)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2LdU8(0)
3Call do_set_pool_freeze<Ty0, Ty1>(&SwapCap, &mut Pool<Ty0, Ty1>, u8)
4Ret
}
entry public redeem_admin_balance<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: u64, Arg4: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &SwapCap)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: &mut TxContext)
5Call do_redeem_admin_balance<Ty0, Ty1>(&SwapCap, &mut Pool<Ty0, Ty1>, u64, u64, &mut TxContext)
6Ret
}
entry public change_pool_mining_speed<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &TokenCap, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64) {
B0:
0MoveLoc[0](Arg0: &SwapCap)
1MoveLoc[1](Arg1: &TokenCap)
2MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
3MoveLoc[3](Arg3: u64)
4Call do_change_pool_mining_speed<Ty0, Ty1>(&SwapCap, &TokenCap, &mut Pool<Ty0, Ty1>, u64)
5Ret
}
entry public create_pool_no_admin<Ty0, Ty1>(Arg0: &mut PoolRegistry, Arg1: &TokenFarm, Arg2: &Clock, Arg3: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut PoolRegistry)
1MoveLoc[1](Arg1: &TokenFarm)
2MoveLoc[2](Arg2: &Clock)
3MoveLoc[3](Arg3: &mut TxContext)
4Call do_create_pool_no_admin<Ty0, Ty1>(&mut PoolRegistry, &TokenFarm, &Clock, &mut TxContext)
5Ret
}
entry public swap_x_to_y<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: u64, Arg3: u64, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: &Clock)
5MoveLoc[5](Arg5: &mut TxContext)
6Call do_swap_x_to_y<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, u64, u64, &Clock, &mut TxContext)
7Ret
}
entry public swap_y_to_x<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty1>>, Arg2: u64, Arg3: u64, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty1>>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: &Clock)
5MoveLoc[5](Arg5: &mut TxContext)
6Call do_swap_y_to_x<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty1>>, u64, u64, &Clock, &mut TxContext)
7Ret
}
entry public swap_x_to_y_all<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: u64, Arg3: &Clock, Arg4: &mut TxContext) {
L5: loc0: Coin<Ty0>
L6: loc1: u64
B0:
0MoveLoc[1](Arg1: vector<Coin<Ty0>>)
1CopyLoc[4](Arg4: &mut TxContext)
2Call utils::merge_coins<Ty0>(vector<Coin<Ty0>>, &mut TxContext): Coin<Ty0>
3StLoc[5](loc0: Coin<Ty0>)
4ImmBorrowLoc[5](loc0: Coin<Ty0>)
5Call coin::value<Ty0>(&Coin<Ty0>): u64
6StLoc[6](loc1: u64)
7MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8MoveLoc[5](loc0: Coin<Ty0>)
9Call vector::singleton<Coin<Ty0>>(Coin<Ty0>): vector<Coin<Ty0>>
10MoveLoc[6](loc1: u64)
11MoveLoc[2](Arg2: u64)
12MoveLoc[3](Arg3: &Clock)
13MoveLoc[4](Arg4: &mut TxContext)
14Call do_swap_x_to_y<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, u64, u64, &Clock, &mut TxContext)
15Ret
}
entry public swap_y_to_x_all<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty1>>, Arg2: u64, Arg3: &Clock, Arg4: &mut TxContext) {
L5: loc0: Coin<Ty1>
L6: loc1: u64
B0:
0MoveLoc[1](Arg1: vector<Coin<Ty1>>)
1CopyLoc[4](Arg4: &mut TxContext)
2Call utils::merge_coins<Ty1>(vector<Coin<Ty1>>, &mut TxContext): Coin<Ty1>
3StLoc[5](loc0: Coin<Ty1>)
4ImmBorrowLoc[5](loc0: Coin<Ty1>)
5Call coin::value<Ty1>(&Coin<Ty1>): u64
6StLoc[6](loc1: u64)
7MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8MoveLoc[5](loc0: Coin<Ty1>)
9Call vector::singleton<Coin<Ty1>>(Coin<Ty1>): vector<Coin<Ty1>>
10MoveLoc[6](loc1: u64)
11MoveLoc[2](Arg2: u64)
12MoveLoc[3](Arg3: &Clock)
13MoveLoc[4](Arg4: &mut TxContext)
14Call do_swap_y_to_x<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty1>>, u64, u64, &Clock, &mut TxContext)
15Ret
}
entry public add_liquidity<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: vector<Coin<Ty1>>, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: &Clock, Arg7: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: vector<Coin<Ty1>>)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: u64)
5MoveLoc[5](Arg5: u64)
6MoveLoc[6](Arg6: &Clock)
7MoveLoc[7](Arg7: &mut TxContext)
8Call do_add_liquidity<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, vector<Coin<Ty1>>, u64, u64, u64, &Clock, &mut TxContext)
9Ret
}
entry public remove_liquidity<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut TokenBank, Arg2: PoolLsp<Ty0, Ty1>, Arg3: u64, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: &mut TokenBank)
2MoveLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: &Clock)
5MoveLoc[5](Arg5: &mut TxContext)
6Call do_remove_liquidity<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut TokenBank, PoolLsp<Ty0, Ty1>, u64, &Clock, &mut TxContext)
7Ret
}
entry public add_liquidity_all<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: vector<Coin<Ty1>>, Arg3: u64, Arg4: &Clock, Arg5: &mut TxContext) {
L6: loc0: u64
L7: loc1: u64
L8: loc2: Coin<Ty0>
L9: loc3: Coin<Ty1>
B0:
0MoveLoc[1](Arg1: vector<Coin<Ty0>>)
1CopyLoc[5](Arg5: &mut TxContext)
2Call utils::merge_coins<Ty0>(vector<Coin<Ty0>>, &mut TxContext): Coin<Ty0>
3StLoc[8](loc2: Coin<Ty0>)
4MoveLoc[2](Arg2: vector<Coin<Ty1>>)
5CopyLoc[5](Arg5: &mut TxContext)
6Call utils::merge_coins<Ty1>(vector<Coin<Ty1>>, &mut TxContext): Coin<Ty1>
7StLoc[9](loc3: Coin<Ty1>)
8ImmBorrowLoc[8](loc2: Coin<Ty0>)
9Call coin::value<Ty0>(&Coin<Ty0>): u64
10StLoc[6](loc0: u64)
11ImmBorrowLoc[9](loc3: Coin<Ty1>)
12Call coin::value<Ty1>(&Coin<Ty1>): u64
13StLoc[7](loc1: u64)
14MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
15MoveLoc[8](loc2: Coin<Ty0>)
16Call vector::singleton<Coin<Ty0>>(Coin<Ty0>): vector<Coin<Ty0>>
17MoveLoc[9](loc3: Coin<Ty1>)
18Call vector::singleton<Coin<Ty1>>(Coin<Ty1>): vector<Coin<Ty1>>
19MoveLoc[6](loc0: u64)
20MoveLoc[7](loc1: u64)
21MoveLoc[3](Arg3: u64)
22MoveLoc[4](Arg4: &Clock)
23MoveLoc[5](Arg5: &mut TxContext)
24Call do_add_liquidity<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, vector<Coin<Ty1>>, u64, u64, u64, &Clock, &mut TxContext)
25Ret
}
entry public remove_liquidity_all<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut TokenBank, Arg2: PoolLsp<Ty0, Ty1>, Arg3: &Clock, Arg4: &mut TxContext) {
L5: loc0: u64
B0:
0ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
1ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
2ReadRef
3StLoc[5](loc0: u64)
4MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
5MoveLoc[1](Arg1: &mut TokenBank)
6MoveLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
7MoveLoc[5](loc0: u64)
8MoveLoc[3](Arg3: &Clock)
9MoveLoc[4](Arg4: &mut TxContext)
10Call do_remove_liquidity<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut TokenBank, PoolLsp<Ty0, Ty1>, u64, &Clock, &mut TxContext)
11Ret
}
entry public claim_th_reward<Ty0, Ty1>(Arg0: &TokenFarm, Arg1: &mut StakedToken, Arg2: &mut Pool<Ty0, Ty1>, Arg3: &Clock, Arg4: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &TokenFarm)
1MoveLoc[1](Arg1: &mut StakedToken)
2MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
3MoveLoc[3](Arg3: &Clock)
4MoveLoc[4](Arg4: &mut TxContext)
5Call do_claim_th_reward<Ty0, Ty1>(&TokenFarm, &mut StakedToken, &mut Pool<Ty0, Ty1>, &Clock, &mut TxContext)
6Ret
}
entry public update_th_reward<Ty0, Ty1>(Arg0: &TokenFarm, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &Clock, Arg3: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &TokenFarm)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MoveLoc[2](Arg2: &Clock)
3MoveLoc[3](Arg3: &mut TxContext)
4Call do_update_th_reward<Ty0, Ty1>(&TokenFarm, &mut Pool<Ty0, Ty1>, &Clock, &mut TxContext)
5Ret
}
entry swap_x_to_y_tag<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: u64, Arg3: u64, Arg4: vector<u8>, Arg5: &Clock, Arg6: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: u64)
4MoveLoc[5](Arg5: &Clock)
5MoveLoc[6](Arg6: &mut TxContext)
6Call swap_x_to_y<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, u64, u64, &Clock, &mut TxContext)
7LdConst[50](vector<u8>: "swa..)
8MoveLoc[4](Arg4: vector<u8>)
9Pack[1](TagEvent)
10Call event::emit<TagEvent>(TagEvent)
11Ret
}
entry swap_y_to_x_tag<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty1>>, Arg2: u64, Arg3: u64, Arg4: vector<u8>, Arg5: &Clock, Arg6: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty1>>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[3](Arg3: u64)
4MoveLoc[5](Arg5: &Clock)
5MoveLoc[6](Arg6: &mut TxContext)
6Call swap_y_to_x<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty1>>, u64, u64, &Clock, &mut TxContext)
7LdConst[51](vector<u8>: "swa..)
8MoveLoc[4](Arg4: vector<u8>)
9Pack[1](TagEvent)
10Call event::emit<TagEvent>(TagEvent)
11Ret
}
entry swap_x_to_y_all_tag<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: u64, Arg3: vector<u8>, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[4](Arg4: &Clock)
4MoveLoc[5](Arg5: &mut TxContext)
5Call swap_x_to_y_all<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, u64, &Clock, &mut TxContext)
6LdConst[52](vector<u8>: "swa..)
7MoveLoc[3](Arg3: vector<u8>)
8Pack[1](TagEvent)
9Call event::emit<TagEvent>(TagEvent)
10Ret
}
entry swap_y_to_x_all_tag<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty1>>, Arg2: u64, Arg3: vector<u8>, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty1>>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[4](Arg4: &Clock)
4MoveLoc[5](Arg5: &mut TxContext)
5Call swap_y_to_x_all<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty1>>, u64, &Clock, &mut TxContext)
6LdConst[53](vector<u8>: "swa..)
7MoveLoc[3](Arg3: vector<u8>)
8Pack[1](TagEvent)
9Call event::emit<TagEvent>(TagEvent)
10Ret
}
entry add_liquidity_tag<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: vector<Coin<Ty1>>, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: vector<u8>, Arg7: &Clock, Arg8: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: vector<Coin<Ty1>>)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: u64)
5MoveLoc[5](Arg5: u64)
6MoveLoc[7](Arg7: &Clock)
7MoveLoc[8](Arg8: &mut TxContext)
8Call add_liquidity<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, vector<Coin<Ty1>>, u64, u64, u64, &Clock, &mut TxContext)
9LdConst[54](vector<u8>: "add..)
10MoveLoc[6](Arg6: vector<u8>)
11Pack[1](TagEvent)
12Call event::emit<TagEvent>(TagEvent)
13Ret
}
entry remove_liquidity_tag<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut TokenBank, Arg2: PoolLsp<Ty0, Ty1>, Arg3: u64, Arg4: vector<u8>, Arg5: &Clock, Arg6: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: &mut TokenBank)
2MoveLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
3MoveLoc[3](Arg3: u64)
4MoveLoc[5](Arg5: &Clock)
5MoveLoc[6](Arg6: &mut TxContext)
6Call remove_liquidity<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut TokenBank, PoolLsp<Ty0, Ty1>, u64, &Clock, &mut TxContext)
7LdConst[55](vector<u8>: "rem..)
8MoveLoc[4](Arg4: vector<u8>)
9Pack[1](TagEvent)
10Call event::emit<TagEvent>(TagEvent)
11Ret
}
entry add_liquidity_all_tag<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: vector<Coin<Ty1>>, Arg3: u64, Arg4: vector<u8>, Arg5: &Clock, Arg6: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: vector<Coin<Ty1>>)
3MoveLoc[3](Arg3: u64)
4MoveLoc[5](Arg5: &Clock)
5MoveLoc[6](Arg6: &mut TxContext)
6Call add_liquidity_all<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, vector<Coin<Ty1>>, u64, &Clock, &mut TxContext)
7LdConst[56](vector<u8>: "add..)
8MoveLoc[4](Arg4: vector<u8>)
9Pack[1](TagEvent)
10Call event::emit<TagEvent>(TagEvent)
11Ret
}
entry remove_liquidity_all_tag<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut TokenBank, Arg2: PoolLsp<Ty0, Ty1>, Arg3: vector<u8>, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: &mut TokenBank)
2MoveLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
3MoveLoc[4](Arg4: &Clock)
4MoveLoc[5](Arg5: &mut TxContext)
5Call remove_liquidity_all<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut TokenBank, PoolLsp<Ty0, Ty1>, &Clock, &mut TxContext)
6LdConst[57](vector<u8>: "rem..)
7MoveLoc[3](Arg3: vector<u8>)
8Pack[1](TagEvent)
9Call event::emit<TagEvent>(TagEvent)
10Ret
}
entry claim_th_reward_tag<Ty0, Ty1>(Arg0: &TokenFarm, Arg1: &mut StakedToken, Arg2: &mut Pool<Ty0, Ty1>, Arg3: vector<u8>, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &TokenFarm)
1MoveLoc[1](Arg1: &mut StakedToken)
2MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
3MoveLoc[4](Arg4: &Clock)
4MoveLoc[5](Arg5: &mut TxContext)
5Call claim_th_reward<Ty0, Ty1>(&TokenFarm, &mut StakedToken, &mut Pool<Ty0, Ty1>, &Clock, &mut TxContext)
6LdConst[58](vector<u8>: "cla..)
7MoveLoc[3](Arg3: vector<u8>)
8Pack[1](TagEvent)
9Call event::emit<TagEvent>(TagEvent)
10Ret
}
public get_amounts<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 * u64 * u64 {
B0:
0CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[11](PoolBalanceInfo.x: Balance<Ty0>)
3Call balance::value<Ty0>(&Balance<Ty0>): u64
4CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
5ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
6ImmBorrowFieldGeneric[35](PoolBalanceInfo.bx: u64)
7ReadRef
8Add
9CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
10ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
11ImmBorrowFieldGeneric[12](PoolBalanceInfo.y: Balance<Ty1>)
12Call balance::value<Ty1>(&Balance<Ty1>): u64
13CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
14ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
15ImmBorrowFieldGeneric[36](PoolBalanceInfo.by: u64)
16ReadRef
17Add
18MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
19ImmBorrowFieldGeneric[4](Pool.lsp_supply: u64)
20ReadRef
21Ret
}
public get_admin_amounts<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 * u64 {
B0:
0CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[13](PoolBalanceInfo.x_admin: Balance<Ty0>)
3Call balance::value<Ty0>(&Balance<Ty0>): u64
4MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
5ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
6ImmBorrowFieldGeneric[14](PoolBalanceInfo.y_admin: Balance<Ty1>)
7Call balance::value<Ty1>(&Balance<Ty1>): u64
8Ret
}
public get_k<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u256 {
L1: loc0: u256
L2: loc1: u256
L3: loc2: u64
L4: loc3: u64
B0:
0CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
1Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
2Pop
3StLoc[4](loc3: u64)
4StLoc[3](loc2: u64)
5CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
6ImmBorrowFieldGeneric[3](Pool.pool_type: u8)
7ReadRef
8LdConst[4](u8: 100)
9Eq
10BrFalse(20)
B1:
11MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
12Pop
13MoveLoc[3](loc2: u64)
14CastU256
15MoveLoc[4](loc3: u64)
16CastU256
17Mul
18StLoc[1](loc0: u256)
19Branch(35)
B2:
20MoveLoc[3](loc2: u64)
21CastU256
22MoveLoc[4](loc3: u64)
23CastU256
24MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
25ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
26ImmBorrowField[25](PoolStableInfo.amp: u64)
27ReadRef
28CastU256
29Call ss_compute_d(u256, u256, u256): u256
30StLoc[2](loc1: u256)
31CopyLoc[2](loc1: u256)
32MoveLoc[2](loc1: u256)
33Mul
34StLoc[1](loc0: u256)
B3:
35MoveLoc[1](loc0: u256)
36Ret
}
public get_k2_per_lsp<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u256 {
L1: loc0: u256
L2: loc1: u64
L3: loc2: u256
L4: loc3: u256
L5: loc4: u64
L6: loc5: u256
B0:
0MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
2StLoc[2](loc1: u64)
3StLoc[5](loc4: u64)
4CastU256
5StLoc[4](loc3: u256)
6MoveLoc[5](loc4: u64)
7CastU256
8StLoc[6](loc5: u256)
9MoveLoc[2](loc1: u64)
10CastU256
11StLoc[3](loc2: u256)
12CopyLoc[3](loc2: u256)
13LdU256(0)
14Eq
15BrFalse(19)
B1:
16LdU256(0)
17StLoc[1](loc0: u256)
18Branch(27)
B2:
19MoveLoc[4](loc3: u256)
20MoveLoc[6](loc5: u256)
21Mul
22CopyLoc[3](loc2: u256)
23MoveLoc[3](loc2: u256)
24Mul
25Div
26StLoc[1](loc0: u256)
B3:
27MoveLoc[1](loc0: u256)
28Ret
}
create_pool_impl<Ty0, Ty1>(Arg0: &mut PoolRegistry, Arg1: &TokenFarm, Arg2: u8, Arg3: u8, Arg4: u8, Arg5: u64, Arg6: u64, Arg7: u64, Arg8: u64, Arg9: u64, Arg10: u8, Arg11: u8, Arg12: u64, Arg13: u64, Arg14: u8, Arg15: &Clock, Arg16: &mut TxContext) {
L17: loc0: bool
L18: loc1: bool
L19: loc2: bool
L20: loc3: bool
L21: loc4: bool
L22: loc5: bool
L23: loc6: u64
L24: loc7: bool
L25: loc8: bool
L26: loc9: Pool<Ty0, Ty1>
L27: loc10: ID
L28: loc11: u64
L29: loc12: UID
L30: loc13: address
L31: loc14: u64
L32: loc15: u64
L33: loc16: u64
L34: loc17: u64
L35: loc18: u64
L36: loc19: u8
L37: loc20: u8
B0:
0CopyLoc[4](Arg4: u8)
1LdConst[6](u8: 200)
2Eq
3BrFalse(7)
B1:
4LdTrue
5StLoc[17](loc0: bool)
6Branch(11)
B2:
7CopyLoc[4](Arg4: u8)
8LdConst[7](u8: 201)
9Eq
10StLoc[17](loc0: bool)
B3:
11MoveLoc[17](loc0: bool)
12BrFalse(14)
B4:
13Branch(24)
B5:
14MoveLoc[0](Arg0: &mut PoolRegistry)
15Pop
16MoveLoc[1](Arg1: &TokenFarm)
17Pop
18MoveLoc[16](Arg16: &mut TxContext)
19Pop
20MoveLoc[15](Arg15: &Clock)
21Pop
22LdConst[12](u64: 13400)
23Abort
B6:
24CopyLoc[2](Arg2: u8)
25LdConst[4](u8: 100)
26Eq
27BrFalse(31)
B7:
28LdTrue
29StLoc[19](loc2: bool)
30Branch(35)
B8:
31CopyLoc[2](Arg2: u8)
32LdConst[5](u8: 101)
33Eq
34StLoc[19](loc2: bool)
B9:
35MoveLoc[19](loc2: bool)
36BrFalse(38)
B10:
37Branch(48)
B11:
38MoveLoc[0](Arg0: &mut PoolRegistry)
39Pop
40MoveLoc[1](Arg1: &TokenFarm)
41Pop
42MoveLoc[16](Arg16: &mut TxContext)
43Pop
44MoveLoc[15](Arg15: &Clock)
45Pop
46LdConst[12](u64: 13400)
47Abort
B12:
48CopyLoc[3](Arg3: u8)
49LdConst[10](u8: 210)
50Eq
51BrFalse(55)
B13:
52LdTrue
53StLoc[20](loc3: bool)
54Branch(59)
B14:
55CopyLoc[3](Arg3: u8)
56LdConst[11](u8: 211)
57Eq
58StLoc[20](loc3: bool)
B15:
59MoveLoc[20](loc3: bool)
60BrFalse(62)
B16:
61Branch(72)
B17:
62MoveLoc[0](Arg0: &mut PoolRegistry)
63Pop
64MoveLoc[1](Arg1: &TokenFarm)
65Pop
66MoveLoc[16](Arg16: &mut TxContext)
67Pop
68MoveLoc[15](Arg15: &Clock)
69Pop
70LdConst[12](u64: 13400)
71Abort
B18:
72CopyLoc[6](Arg6: u64)
73CopyLoc[5](Arg5: u64)
74Add
75CopyLoc[7](Arg7: u64)
76Add
77LdConst[38](u64: 10000)
78Lt
79BrFalse(81)
B19:
80Branch(91)
B20:
81MoveLoc[0](Arg0: &mut PoolRegistry)
82Pop
83MoveLoc[1](Arg1: &TokenFarm)
84Pop
85MoveLoc[16](Arg16: &mut TxContext)
86Pop
87MoveLoc[15](Arg15: &Clock)
88Pop
89LdConst[13](u64: 134001)
90Abort
B21:
91CopyLoc[0](Arg0: &mut PoolRegistry)
92MutBorrowField[1](PoolRegistry.id: UID)
93FreezeRef
94LdFalse
95PackGeneric[0](PoolCreateInfoKey<Ty0, Ty1>)
96Call dynamic_field::exists_<PoolCreateInfoKey<Ty0, Ty1>>(&UID, PoolCreateInfoKey<Ty0, Ty1>): bool
97StLoc[24](loc7: bool)
98CopyLoc[0](Arg0: &mut PoolRegistry)
99MutBorrowField[1](PoolRegistry.id: UID)
100FreezeRef
101LdFalse
102PackGeneric[1](PoolCreateInfoKey<Ty1, Ty0>)
103Call dynamic_field::exists_<PoolCreateInfoKey<Ty1, Ty0>>(&UID, PoolCreateInfoKey<Ty1, Ty0>): bool
104StLoc[25](loc8: bool)
105MoveLoc[24](loc7: bool)
106LdFalse
107Eq
108BrFalse(114)
B22:
109MoveLoc[25](loc8: bool)
110LdFalse
111Eq
112StLoc[21](loc4: bool)
113Branch(116)
B23:
114LdFalse
115StLoc[21](loc4: bool)
B24:
116MoveLoc[21](loc4: bool)
117BrFalse(119)
B25:
118Branch(129)
B26:
119MoveLoc[0](Arg0: &mut PoolRegistry)
120Pop
121MoveLoc[1](Arg1: &TokenFarm)
122Pop
123MoveLoc[16](Arg16: &mut TxContext)
124Pop
125MoveLoc[15](Arg15: &Clock)
126Pop
127LdConst[25](u64: 134013)
128Abort
B27:
129CopyLoc[16](Arg16: &mut TxContext)
130Call object::new(&mut TxContext): UID
131StLoc[29](loc12: UID)
132ImmBorrowLoc[29](loc12: UID)
133Call object::uid_to_inner(&UID): ID
134StLoc[27](loc10: ID)
135CopyLoc[0](Arg0: &mut PoolRegistry)
136ImmBorrowField[2](PoolRegistry.pool_counter: u64)
137ReadRef
138StLoc[28](loc11: u64)
139CopyLoc[0](Arg0: &mut PoolRegistry)
140ImmBorrowField[2](PoolRegistry.pool_counter: u64)
141ReadRef
142LdU64(1)
143Add
144CopyLoc[0](Arg0: &mut PoolRegistry)
145MutBorrowField[2](PoolRegistry.pool_counter: u64)
146WriteRef
147LdU64(0)
148StLoc[31](loc14: u64)
149LdU64(0)
150StLoc[32](loc15: u64)
151CopyLoc[2](Arg2: u8)
152LdConst[5](u8: 101)
153Eq
154BrFalse(228)
B28:
155MoveLoc[10](Arg10: u8)
156StLoc[36](loc19: u8)
157MoveLoc[11](Arg11: u8)
158StLoc[37](loc20: u8)
159CopyLoc[36](loc19: u8)
160LdConst[42](u8: 18)
161Le
162BrFalse(168)
B29:
163CopyLoc[37](loc20: u8)
164LdConst[42](u8: 18)
165Le
166StLoc[22](loc5: bool)
167Branch(170)
B30:
168LdFalse
169StLoc[22](loc5: bool)
B31:
170MoveLoc[22](loc5: bool)
171BrFalse(173)
B32:
172Branch(183)
B33:
173MoveLoc[0](Arg0: &mut PoolRegistry)
174Pop
175MoveLoc[1](Arg1: &TokenFarm)
176Pop
177MoveLoc[16](Arg16: &mut TxContext)
178Pop
179MoveLoc[15](Arg15: &Clock)
180Pop
181LdConst[26](u64: 134014)
182Abort
B34:
183CopyLoc[9](Arg9: u64)
184LdConst[44](u64: 1)
185Ge
186BrFalse(192)
B35:
187CopyLoc[9](Arg9: u64)
188LdConst[45](u64: 1000..)
189Le
190StLoc[18](loc1: bool)
191Branch(194)
B36:
192LdFalse
193StLoc[18](loc1: bool)
B37:
194MoveLoc[18](loc1: bool)
195BrFalse(197)
B38:
196Branch(207)
B39:
197MoveLoc[0](Arg0: &mut PoolRegistry)
198Pop
199MoveLoc[1](Arg1: &TokenFarm)
200Pop
201MoveLoc[16](Arg16: &mut TxContext)
202Pop
203MoveLoc[15](Arg15: &Clock)
204Pop
205LdConst[12](u64: 13400)
206Abort
B40:
207CopyLoc[36](loc19: u8)
208CopyLoc[37](loc20: u8)
209Lt
210BrFalse(220)
B41:
211LdU64(10)
212MoveLoc[37](loc20: u8)
213MoveLoc[36](loc19: u8)
214Sub
215Call math::pow(u64, u8): u64
216StLoc[31](loc14: u64)
217LdU64(1)
218StLoc[32](loc15: u64)
219Branch(228)
B42:
220LdU64(1)
221StLoc[31](loc14: u64)
222LdU64(10)
223MoveLoc[36](loc19: u8)
224MoveLoc[37](loc20: u8)
225Sub
226Call math::pow(u64, u8): u64
227StLoc[32](loc15: u64)
B43:
228CopyLoc[15](Arg15: &Clock)
229Call utils::get_epoch(&Clock): u64
230StLoc[23](loc6: u64)
231CopyLoc[0](Arg0: &mut PoolRegistry)
232ImmBorrowField[65](PoolRegistry.pool_th_reward_nepoch: u64)
233ReadRef
234StLoc[34](loc17: u64)
235CopyLoc[23](loc6: u64)
236CopyLoc[34](loc17: u64)
237Call get_th_reward_start_and_end_epoch(u64, u64): u64 * u64
238StLoc[33](loc16: u64)
239StLoc[35](loc18: u64)
240CopyLoc[16](Arg16: &mut TxContext)
241FreezeRef
242Call tx_context::sender(&TxContext): address
243StLoc[30](loc13: address)
244MoveLoc[29](loc12: UID)
245LdConst[0](u64: 0)
246MoveLoc[30](loc13: address)
247MoveLoc[28](loc11: u64)
248MoveLoc[2](Arg2: u8)
249LdU64(0)
250MoveLoc[14](Arg14: u8)
251CopyLoc[23](loc6: u64)
252CopyLoc[0](Arg0: &mut PoolRegistry)
253ImmBorrowField[66](PoolRegistry.pool_boost_multiplier_data: vector<PoolBoostMultiplierData>)
254ReadRef
255MoveLoc[4](Arg4: u8)
256MoveLoc[5](Arg5: u64)
257MoveLoc[6](Arg6: u64)
258MoveLoc[7](Arg7: u64)
259MoveLoc[8](Arg8: u64)
260Pack[16](PoolFeeInfo)
261MoveLoc[9](Arg9: u64)
262MoveLoc[31](loc14: u64)
263MoveLoc[32](loc15: u64)
264Pack[18](PoolStableInfo)
265Call balance::zero<Ty0>(): Balance<Ty0>
266Call balance::zero<Ty1>(): Balance<Ty1>
267Call balance::zero<Ty0>(): Balance<Ty0>
268Call balance::zero<Ty1>(): Balance<Ty1>
269Call balance::zero<Ty0>(): Balance<Ty0>
270Call balance::zero<Ty1>(): Balance<Ty1>
271MoveLoc[12](Arg12: u64)
272MoveLoc[13](Arg13: u64)
273PackGeneric[2](PoolBalanceInfo<Ty0, Ty1>)
274LdU128(0)
275LdU128(0)
276LdU128(0)
277LdU128(0)
278LdU128(0)
279LdU128(0)
280Pack[13](PoolTotalTradeInfo)
281MoveLoc[3](Arg3: u8)
282Call balance::zero<Ty0>(): Balance<Ty0>
283Call balance::zero<Ty1>(): Balance<Ty1>
284LdU64(0)
285LdU64(0)
286MoveLoc[34](loc17: u64)
287MoveLoc[35](loc18: u64)
288MoveLoc[33](loc16: u64)
289CopyLoc[1](Arg1: &TokenFarm)
290Call TOKEN::token_farm_get_total_stake_amount(&TokenFarm): u64
291CopyLoc[1](Arg1: &TokenFarm)
292Call TOKEN::token_farm_get_total_stake_boost(&TokenFarm): u128
293PackGeneric[3](PoolTokenHolderRewardInfo<Ty0, Ty1>)
294Call option::none<Permission<TokenBank>>(): Option<Permission<TokenBank>>
295LdU256(0)
296Call vpt::zero(): ValuePerToken
297MoveLoc[23](loc6: u64)
298LdU64(1)
299Add
300Pack[15](PoolLiquidityMiningInfo)
301PackGeneric[4](Pool<Ty0, Ty1>)
302StLoc[26](loc9: Pool<Ty0, Ty1>)
303MoveLoc[1](Arg1: &TokenFarm)
304MutBorrowLoc[26](loc9: Pool<Ty0, Ty1>)
305MoveLoc[15](Arg15: &Clock)
306MoveLoc[16](Arg16: &mut TxContext)
307Call do_update_th_reward<Ty0, Ty1>(&TokenFarm, &mut Pool<Ty0, Ty1>, &Clock, &mut TxContext)
308CopyLoc[0](Arg0: &mut PoolRegistry)
309MutBorrowField[1](PoolRegistry.id: UID)
310LdFalse
311PackGeneric[0](PoolCreateInfoKey<Ty0, Ty1>)
312CopyLoc[27](loc10: ID)
313LdFalse
314Pack[7](PoolCreateInfo)
315Call dynamic_field::add<PoolCreateInfoKey<Ty0, Ty1>, PoolCreateInfo>(&mut UID, PoolCreateInfoKey<Ty0, Ty1>, PoolCreateInfo)
316MoveLoc[0](Arg0: &mut PoolRegistry)
317MutBorrowField[1](PoolRegistry.id: UID)
318LdFalse
319PackGeneric[1](PoolCreateInfoKey<Ty1, Ty0>)
320CopyLoc[27](loc10: ID)
321LdTrue
322Pack[7](PoolCreateInfo)
323Call dynamic_field::add<PoolCreateInfoKey<Ty1, Ty0>, PoolCreateInfo>(&mut UID, PoolCreateInfoKey<Ty1, Ty0>, PoolCreateInfo)
324MoveLoc[26](loc9: Pool<Ty0, Ty1>)
325Call transfer::share_object<Pool<Ty0, Ty1>>(Pool<Ty0, Ty1>)
326MoveLoc[27](loc10: ID)
327Pack[2](PoolCreateEvent)
328Call event::emit<PoolCreateEvent>(PoolCreateEvent)
329Ret
}
collect_fee<Ty0>(Arg0: &mut Balance<Ty0>, Arg1: u64): Balance<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut Balance<Ty0>)
1MoveLoc[1](Arg1: u64)
2LdConst[38](u64: 10000)
3Call ratio::ratio(u64, u64): Ratio
4Call utils::split_partial_balance<Ty0>(&mut Balance<Ty0>, Ratio): Balance<Ty0>
5Ret
}
collect_admin_and_th_fee_x<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut Balance<Ty0>) {
L2: loc0: u64
L3: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
2ImmBorrowField[19](PoolFeeInfo.direction: u8)
3ReadRef
4LdConst[6](u8: 200)
5Eq
6BrFalse(34)
B1:
7CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
9ImmBorrowField[20](PoolFeeInfo.admin: u64)
10ReadRef
11StLoc[2](loc0: u64)
12CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
13ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
14ImmBorrowField[22](PoolFeeInfo.th: u64)
15ReadRef
16StLoc[3](loc1: u64)
17CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
18MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
19MutBorrowFieldGeneric[13](PoolBalanceInfo.x_admin: Balance<Ty0>)
20CopyLoc[1](Arg1: &mut Balance<Ty0>)
21MoveLoc[2](loc0: u64)
22Call collect_fee<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
23Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
24Pop
25MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
26MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
27MutBorrowFieldGeneric[15](PoolBalanceInfo.x_th: Balance<Ty0>)
28MoveLoc[1](Arg1: &mut Balance<Ty0>)
29MoveLoc[3](loc1: u64)
30Call collect_fee<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
31Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
32Pop
33Branch(38)
B2:
34MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
35Pop
36MoveLoc[1](Arg1: &mut Balance<Ty0>)
37Pop
B3:
38Ret
}
collect_admin_and_th_fee_y<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut Balance<Ty1>) {
L2: loc0: u64
L3: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
2ImmBorrowField[19](PoolFeeInfo.direction: u8)
3ReadRef
4LdConst[7](u8: 201)
5Eq
6BrFalse(34)
B1:
7CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
9ImmBorrowField[20](PoolFeeInfo.admin: u64)
10ReadRef
11StLoc[2](loc0: u64)
12CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
13ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
14ImmBorrowField[22](PoolFeeInfo.th: u64)
15ReadRef
16StLoc[3](loc1: u64)
17CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
18MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
19MutBorrowFieldGeneric[14](PoolBalanceInfo.y_admin: Balance<Ty1>)
20CopyLoc[1](Arg1: &mut Balance<Ty1>)
21MoveLoc[2](loc0: u64)
22Call collect_fee<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
23Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
24Pop
25MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
26MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
27MutBorrowFieldGeneric[16](PoolBalanceInfo.y_th: Balance<Ty1>)
28MoveLoc[1](Arg1: &mut Balance<Ty1>)
29MoveLoc[3](loc1: u64)
30Call collect_fee<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
31Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
32Pop
33Branch(38)
B2:
34MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
35Pop
36MoveLoc[1](Arg1: &mut Balance<Ty1>)
37Pop
B3:
38Ret
}
process_auto_buyback<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>) {
L1: loc0: bool
L2: loc1: bool
L3: loc2: Balance<Ty0>
L4: loc3: Balance<Ty1>
L5: loc4: Balance<Ty0>
L6: loc5: Balance<Ty1>
L7: loc6: u64
L8: loc7: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
2ImmBorrowFieldGeneric[19](PoolTokenHolderRewardInfo.type: u8)
3ReadRef
4LdConst[11](u8: 211)
5Eq
6BrFalse(92)
B1:
7CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
9ImmBorrowField[19](PoolFeeInfo.direction: u8)
10ReadRef
11LdConst[6](u8: 200)
12Eq
13BrFalse(22)
B2:
14CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
15ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
16ImmBorrowFieldGeneric[15](PoolBalanceInfo.x_th: Balance<Ty0>)
17Call balance::value<Ty0>(&Balance<Ty0>): u64
18LdU64(0)
19Gt
20StLoc[1](loc0: bool)
21Branch(24)
B3:
22LdFalse
23StLoc[1](loc0: bool)
B4:
24MoveLoc[1](loc0: bool)
25BrFalse(48)
B5:
26CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
27ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
28ImmBorrowFieldGeneric[15](PoolBalanceInfo.x_th: Balance<Ty0>)
29Call balance::value<Ty0>(&Balance<Ty0>): u64
30StLoc[7](loc6: u64)
31CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
32MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
33MutBorrowFieldGeneric[15](PoolBalanceInfo.x_th: Balance<Ty0>)
34MoveLoc[7](loc6: u64)
35Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
36StLoc[3](loc2: Balance<Ty0>)
37CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
38MoveLoc[3](loc2: Balance<Ty0>)
39Call swap_x_to_y_direct_no_fee_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, Balance<Ty0>): Balance<Ty1>
40StLoc[6](loc5: Balance<Ty1>)
41MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
42MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
43MutBorrowFieldGeneric[16](PoolBalanceInfo.y_th: Balance<Ty1>)
44MoveLoc[6](loc5: Balance<Ty1>)
45Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
46Pop
47Branch(91)
B6:
48CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
49ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
50ImmBorrowField[19](PoolFeeInfo.direction: u8)
51ReadRef
52LdConst[7](u8: 201)
53Eq
54BrFalse(63)
B7:
55CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
56ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
57ImmBorrowFieldGeneric[16](PoolBalanceInfo.y_th: Balance<Ty1>)
58Call balance::value<Ty1>(&Balance<Ty1>): u64
59LdU64(0)
60Gt
61StLoc[2](loc1: bool)
62Branch(65)
B8:
63LdFalse
64StLoc[2](loc1: bool)
B9:
65MoveLoc[2](loc1: bool)
66BrFalse(89)
B10:
67CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
68ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
69ImmBorrowFieldGeneric[16](PoolBalanceInfo.y_th: Balance<Ty1>)
70Call balance::value<Ty1>(&Balance<Ty1>): u64
71StLoc[8](loc7: u64)
72CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
73MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
74MutBorrowFieldGeneric[16](PoolBalanceInfo.y_th: Balance<Ty1>)
75MoveLoc[8](loc7: u64)
76Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
77StLoc[4](loc3: Balance<Ty1>)
78CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
79MoveLoc[4](loc3: Balance<Ty1>)
80Call swap_y_to_x_direct_no_fee_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, Balance<Ty1>): Balance<Ty0>
81StLoc[5](loc4: Balance<Ty0>)
82MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
83MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
84MutBorrowFieldGeneric[15](PoolBalanceInfo.x_th: Balance<Ty0>)
85MoveLoc[5](loc4: Balance<Ty0>)
86Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
87Pop
88Branch(91)
B11:
89MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
90Pop
B12:
91Branch(94)
B13:
92MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
93Pop
B14:
94Ret
}
collect_withdraw_fee<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut Balance<Ty0>, Arg2: &mut Balance<Ty1>) {
L3: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
2ImmBorrowField[23](PoolFeeInfo.withdraw: u64)
3ReadRef
4StLoc[3](loc0: u64)
5CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
6MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
7MutBorrowFieldGeneric[13](PoolBalanceInfo.x_admin: Balance<Ty0>)
8MoveLoc[1](Arg1: &mut Balance<Ty0>)
9CopyLoc[3](loc0: u64)
10Call collect_fee<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
11Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
12Pop
13MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
14MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
15MutBorrowFieldGeneric[14](PoolBalanceInfo.y_admin: Balance<Ty1>)
16MoveLoc[2](Arg2: &mut Balance<Ty1>)
17MoveLoc[3](loc0: u64)
18Call collect_fee<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
19Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
20Pop
21Ret
}
update_th_reward_impl<Ty0, Ty1>(Arg0: &TokenFarm, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64) {
L3: loc0: u64
B0:
0CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
8Pop
9MoveLoc[0](Arg0: &TokenFarm)
10Pop
11LdConst[36](u64: 200000)
12Abort
B3:
13CopyLoc[2](Arg2: u64)
14CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
15ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
16ImmBorrowFieldGeneric[26](PoolTokenHolderRewardInfo.end_epoch: u64)
17ReadRef
18Gt
19BrFalse(93)
B4:
20MoveLoc[2](Arg2: u64)
21CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
22ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
23ImmBorrowFieldGeneric[24](PoolTokenHolderRewardInfo.nepoch: u64)
24ReadRef
25Call get_th_reward_start_and_end_epoch(u64, u64): u64 * u64
26StLoc[3](loc0: u64)
27CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
28MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
29MutBorrowFieldGeneric[25](PoolTokenHolderRewardInfo.start_epcoh: u64)
30WriteRef
31MoveLoc[3](loc0: u64)
32CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
33MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
34MutBorrowFieldGeneric[26](PoolTokenHolderRewardInfo.end_epoch: u64)
35WriteRef
36CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
37MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
38MutBorrowFieldGeneric[13](PoolBalanceInfo.x_admin: Balance<Ty0>)
39CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
40MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
41MutBorrowFieldGeneric[20](PoolTokenHolderRewardInfo.x: Balance<Ty0>)
42Call utils::join_balance<Ty0>(&mut Balance<Ty0>, &mut Balance<Ty0>)
43CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
44MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
45MutBorrowFieldGeneric[14](PoolBalanceInfo.y_admin: Balance<Ty1>)
46CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
47MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
48MutBorrowFieldGeneric[21](PoolTokenHolderRewardInfo.y: Balance<Ty1>)
49Call utils::join_balance<Ty1>(&mut Balance<Ty1>, &mut Balance<Ty1>)
50CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
51MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
52MutBorrowFieldGeneric[20](PoolTokenHolderRewardInfo.x: Balance<Ty0>)
53CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
54MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
55MutBorrowFieldGeneric[15](PoolBalanceInfo.x_th: Balance<Ty0>)
56Call utils::join_balance<Ty0>(&mut Balance<Ty0>, &mut Balance<Ty0>)
57CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
58MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
59MutBorrowFieldGeneric[21](PoolTokenHolderRewardInfo.y: Balance<Ty1>)
60CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
61MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
62MutBorrowFieldGeneric[16](PoolBalanceInfo.y_th: Balance<Ty1>)
63Call utils::join_balance<Ty1>(&mut Balance<Ty1>, &mut Balance<Ty1>)
64CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
65ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
66ImmBorrowFieldGeneric[20](PoolTokenHolderRewardInfo.x: Balance<Ty0>)
67Call balance::value<Ty0>(&Balance<Ty0>): u64
68CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
69MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
70MutBorrowFieldGeneric[22](PoolTokenHolderRewardInfo.x_supply: u64)
71WriteRef
72CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
73ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
74ImmBorrowFieldGeneric[21](PoolTokenHolderRewardInfo.y: Balance<Ty1>)
75Call balance::value<Ty1>(&Balance<Ty1>): u64
76CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
77MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
78MutBorrowFieldGeneric[23](PoolTokenHolderRewardInfo.y_supply: u64)
79WriteRef
80CopyLoc[0](Arg0: &TokenFarm)
81Call TOKEN::token_farm_get_total_stake_amount(&TokenFarm): u64
82CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
83MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
84MutBorrowFieldGeneric[27](PoolTokenHolderRewardInfo.total_stake_amount: u64)
85WriteRef
86MoveLoc[0](Arg0: &TokenFarm)
87Call TOKEN::token_farm_get_total_stake_boost(&TokenFarm): u128
88MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
89MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
90MutBorrowFieldGeneric[28](PoolTokenHolderRewardInfo.total_stake_boost: u128)
91WriteRef
92Branch(97)
B5:
93MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
94Pop
95MoveLoc[0](Arg0: &TokenFarm)
96Pop
B6:
97Ret
}
claim_th_reward_impl<Ty0, Ty1>(Arg0: &TokenFarm, Arg1: &mut StakedToken, Arg2: &mut Pool<Ty0, Ty1>, Arg3: &Clock, Arg4: &mut TxContext): u64 {
L5: loc0: Balance<Ty0>
L6: loc1: Balance<Ty1>
L7: loc2: u64
L8: loc3: Coin<Ty0>
L9: loc4: Coin<Ty1>
L10: loc5: u128
L11: loc6: Option<u64>
L12: loc7: u128
L13: loc8: address
L14: loc9: u64
L15: loc10: u128
L16: loc11: u64
L17: loc12: u128
L18: loc13: u64
B0:
0CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(19)
B2:
7MoveLoc[1](Arg1: &mut StakedToken)
8Pop
9MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
10Pop
11MoveLoc[0](Arg0: &TokenFarm)
12Pop
13MoveLoc[4](Arg4: &mut TxContext)
14Pop
15MoveLoc[3](Arg3: &Clock)
16Pop
17LdConst[36](u64: 200000)
18Abort
B3:
19CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
20ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
21ImmBorrowFieldGeneric[19](PoolTokenHolderRewardInfo.type: u8)
22ReadRef
23LdConst[10](u8: 210)
24Eq
25BrFalse(27)
B4:
26Branch(39)
B5:
27MoveLoc[1](Arg1: &mut StakedToken)
28Pop
29MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
30Pop
31MoveLoc[0](Arg0: &TokenFarm)
32Pop
33MoveLoc[4](Arg4: &mut TxContext)
34Pop
35MoveLoc[3](Arg3: &Clock)
36Pop
37LdConst[34](u64: 134022)
38Abort
B6:
39MoveLoc[3](Arg3: &Clock)
40Call utils::get_epoch(&Clock): u64
41StLoc[7](loc2: u64)
42MoveLoc[0](Arg0: &TokenFarm)
43CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
44CopyLoc[7](loc2: u64)
45Call update_th_reward_impl<Ty0, Ty1>(&TokenFarm, &mut Pool<Ty0, Ty1>, u64)
46CopyLoc[1](Arg1: &mut StakedToken)
47FreezeRef
48Call TOKEN::staked_token_get_start_epoch(&StakedToken): u64
49StLoc[14](loc9: u64)
50CopyLoc[1](Arg1: &mut StakedToken)
51CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
52ImmBorrowFieldGeneric[1](Pool.index: u64)
53ReadRef
54Call TOKEN::staked_token_pop_data<u64, u64>(&mut StakedToken, u64): Option<u64>
55StLoc[11](loc6: Option<u64>)
56ImmBorrowLoc[11](loc6: Option<u64>)
57MoveLoc[14](loc9: u64)
58Call option::get_with_default<u64>(&Option<u64>, u64): u64
59CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
60ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
61ImmBorrowFieldGeneric[25](PoolTokenHolderRewardInfo.start_epcoh: u64)
62ReadRef
63Ge
64BrFalse(73)
B7:
65MoveLoc[1](Arg1: &mut StakedToken)
66Pop
67MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
68Pop
69MoveLoc[4](Arg4: &mut TxContext)
70Pop
71LdConst[29](u64: 134017)
72Ret
B8:
73CopyLoc[1](Arg1: &mut StakedToken)
74FreezeRef
75Call TOKEN::staked_token_get_boost(&StakedToken): u128
76StLoc[12](loc7: u128)
77CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
78ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
79ImmBorrowFieldGeneric[28](PoolTokenHolderRewardInfo.total_stake_boost: u128)
80ReadRef
81StLoc[10](loc5: u128)
82CopyLoc[10](loc5: u128)
83LdU128(0)
84Eq
85BrFalse(90)
B9:
86LdU128(0)
87StLoc[12](loc7: u128)
88LdU128(1)
89StLoc[10](loc5: u128)
B10:
90CopyLoc[12](loc7: u128)
91CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
92ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
93ImmBorrowFieldGeneric[22](PoolTokenHolderRewardInfo.x_supply: u64)
94ReadRef
95CastU128
96Mul
97CopyLoc[10](loc5: u128)
98Div
99StLoc[15](loc10: u128)
100MoveLoc[12](loc7: u128)
101CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
102ImmBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
103ImmBorrowFieldGeneric[23](PoolTokenHolderRewardInfo.y_supply: u64)
104ReadRef
105CastU128
106Mul
107MoveLoc[10](loc5: u128)
108Div
109StLoc[17](loc12: u128)
110MoveLoc[15](loc10: u128)
111CastU64
112StLoc[16](loc11: u64)
113MoveLoc[17](loc12: u128)
114CastU64
115StLoc[18](loc13: u64)
116CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
117MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
118MutBorrowFieldGeneric[20](PoolTokenHolderRewardInfo.x: Balance<Ty0>)
119MoveLoc[16](loc11: u64)
120Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
121StLoc[5](loc0: Balance<Ty0>)
122CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
123MutBorrowFieldGeneric[18](Pool.th_reward: PoolTokenHolderRewardInfo<Ty0, Ty1>)
124MutBorrowFieldGeneric[21](PoolTokenHolderRewardInfo.y: Balance<Ty1>)
125MoveLoc[18](loc13: u64)
126Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
127StLoc[6](loc1: Balance<Ty1>)
128MoveLoc[5](loc0: Balance<Ty0>)
129CopyLoc[4](Arg4: &mut TxContext)
130Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
131StLoc[8](loc3: Coin<Ty0>)
132MoveLoc[6](loc1: Balance<Ty1>)
133CopyLoc[4](Arg4: &mut TxContext)
134Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
135StLoc[9](loc4: Coin<Ty1>)
136MoveLoc[4](Arg4: &mut TxContext)
137FreezeRef
138Call tx_context::sender(&TxContext): address
139StLoc[13](loc8: address)
140MoveLoc[8](loc3: Coin<Ty0>)
141CopyLoc[13](loc8: address)
142Call utils::transfer_or_destroy_zero<Ty0>(Coin<Ty0>, address)
143MoveLoc[9](loc4: Coin<Ty1>)
144MoveLoc[13](loc8: address)
145Call utils::transfer_or_destroy_zero<Ty1>(Coin<Ty1>, address)
146MoveLoc[1](Arg1: &mut StakedToken)
147MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
148ImmBorrowFieldGeneric[1](Pool.index: u64)
149ReadRef
150MoveLoc[7](loc2: u64)
151Call TOKEN::staked_token_add_data<u64, u64>(&mut StakedToken, u64, u64)
152LdU64(0)
153Ret
}
add_liquidity_direct_impl<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: vector<Coin<Ty1>>, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: bool, Arg7: &Clock, Arg8: &mut TxContext): PoolLsp<Ty0, Ty1> {
L9: loc0: u64
L10: loc1: u64
L11: loc2: u64
L12: loc3: u64
L13: loc4: Balance<Ty0>
L14: loc5: Balance<Ty1>
L15: loc6: u64
L16: loc7: u64
L17: loc8: PoolLsp<Ty0, Ty1>
L18: loc9: u64
L19: loc10: u64
L20: loc11: address
L21: loc12: u64
L22: loc13: u64
L23: loc14: u64
L24: loc15: &PoolBoostMultiplierData
L25: loc16: u64
L26: loc17: u64
L27: loc18: Balance<Ty0>
L28: loc19: u64
L29: loc20: u64
L30: loc21: Balance<Ty1>
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(15)
B2:
7MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8Pop
9MoveLoc[8](Arg8: &mut TxContext)
10Pop
11MoveLoc[7](Arg7: &Clock)
12Pop
13LdConst[36](u64: 200000)
14Abort
B3:
15CopyLoc[8](Arg8: &mut TxContext)
16FreezeRef
17Call tx_context::sender(&TxContext): address
18CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
19ImmBorrowFieldGeneric[2](Pool.owner: address)
20ReadRef
21Neq
22BrFalse(40)
B4:
23CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
24ImmBorrowFieldGeneric[5](Pool.freeze: u8)
25ReadRef
26LdConst[8](u8: 2)
27BitAnd
28LdU8(0)
29Eq
30BrFalse(32)
B5:
31Branch(40)
B6:
32MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
33Pop
34MoveLoc[8](Arg8: &mut TxContext)
35Pop
36MoveLoc[7](Arg7: &Clock)
37Pop
38LdConst[22](u64: 134010)
39Abort
B7:
40MoveLoc[1](Arg1: vector<Coin<Ty0>>)
41CopyLoc[8](Arg8: &mut TxContext)
42Call utils::merge_coins<Ty0>(vector<Coin<Ty0>>, &mut TxContext): Coin<Ty0>
43Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
44StLoc[13](loc4: Balance<Ty0>)
45MoveLoc[2](Arg2: vector<Coin<Ty1>>)
46CopyLoc[8](Arg8: &mut TxContext)
47Call utils::merge_coins<Ty1>(vector<Coin<Ty1>>, &mut TxContext): Coin<Ty1>
48Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
49StLoc[14](loc5: Balance<Ty1>)
50ImmBorrowLoc[13](loc4: Balance<Ty0>)
51Call balance::value<Ty0>(&Balance<Ty0>): u64
52CopyLoc[3](Arg3: u64)
53Ge
54BrFalse(56)
B8:
55Branch(64)
B9:
56MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
57Pop
58MoveLoc[8](Arg8: &mut TxContext)
59Pop
60MoveLoc[7](Arg7: &Clock)
61Pop
62LdConst[20](u64: 134008)
63Abort
B10:
64ImmBorrowLoc[14](loc5: Balance<Ty1>)
65Call balance::value<Ty1>(&Balance<Ty1>): u64
66CopyLoc[4](Arg4: u64)
67Ge
68BrFalse(70)
B11:
69Branch(78)
B12:
70MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
71Pop
72MoveLoc[8](Arg8: &mut TxContext)
73Pop
74MoveLoc[7](Arg7: &Clock)
75Pop
76LdConst[20](u64: 134008)
77Abort
B13:
78CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
79CopyLoc[7](Arg7: &Clock)
80Call update_pool_mining<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &Clock)
81MoveLoc[7](Arg7: &Clock)
82Call utils::get_epoch(&Clock): u64
83StLoc[23](loc14: u64)
84CopyLoc[23](loc14: u64)
85CopyLoc[5](Arg5: u64)
86Add
87StLoc[15](loc6: u64)
88LdConst[49](u64: 10)
89StLoc[12](loc3: u64)
90CopyLoc[15](loc6: u64)
91CopyLoc[23](loc14: u64)
92Gt
93BrFalse(139)
B14:
94LdU64(0)
95StLoc[16](loc7: u64)
96CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
97ImmBorrowFieldGeneric[7](Pool.boost_multiplier_data: vector<PoolBoostMultiplierData>)
98VecLen(13)
99StLoc[19](loc10: u64)
B15:
100CopyLoc[16](loc7: u64)
101CopyLoc[19](loc10: u64)
102Lt
103BrFalse(128)
B16:
104Branch(105)
B17:
105CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
106ImmBorrowFieldGeneric[7](Pool.boost_multiplier_data: vector<PoolBoostMultiplierData>)
107CopyLoc[16](loc7: u64)
108VecImmBorrow(13)
109StLoc[24](loc15: &PoolBoostMultiplierData)
110CopyLoc[24](loc15: &PoolBoostMultiplierData)
111ImmBorrowField[68](PoolBoostMultiplierData.epoch: u64)
112ReadRef
113CopyLoc[5](Arg5: u64)
114Eq
115BrFalse(121)
B18:
116MoveLoc[24](loc15: &PoolBoostMultiplierData)
117ImmBorrowField[69](PoolBoostMultiplierData.boost_multiplier: u64)
118ReadRef
119StLoc[12](loc3: u64)
120Branch(128)
B19:
121MoveLoc[24](loc15: &PoolBoostMultiplierData)
122Pop
123MoveLoc[16](loc7: u64)
124LdU64(1)
125Add
126StLoc[16](loc7: u64)
127Branch(100)
B20:
128MoveLoc[16](loc7: u64)
129MoveLoc[19](loc10: u64)
130Lt
131BrFalse(133)
B21:
132Branch(139)
B22:
133MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
134Pop
135MoveLoc[8](Arg8: &mut TxContext)
136Pop
137LdConst[30](u64: 134018)
138Abort
B23:
139MoveLoc[3](Arg3: u64)
140StLoc[25](loc16: u64)
141MoveLoc[4](Arg4: u64)
142StLoc[28](loc19: u64)
143MutBorrowLoc[13](loc4: Balance<Ty0>)
144CopyLoc[25](loc16: u64)
145Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
146StLoc[27](loc18: Balance<Ty0>)
147MutBorrowLoc[14](loc5: Balance<Ty1>)
148CopyLoc[28](loc19: u64)
149Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
150StLoc[30](loc21: Balance<Ty1>)
151CopyLoc[8](Arg8: &mut TxContext)
152FreezeRef
153Call tx_context::sender(&TxContext): address
154StLoc[20](loc11: address)
155MoveLoc[13](loc4: Balance<Ty0>)
156CopyLoc[8](Arg8: &mut TxContext)
157Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
158CopyLoc[20](loc11: address)
159Call utils::transfer_or_destroy_zero<Ty0>(Coin<Ty0>, address)
160MoveLoc[14](loc5: Balance<Ty1>)
161CopyLoc[8](Arg8: &mut TxContext)
162Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
163MoveLoc[20](loc11: address)
164Call utils::transfer_or_destroy_zero<Ty1>(Coin<Ty1>, address)
165CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
166FreezeRef
167Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
168StLoc[18](loc9: u64)
169StLoc[29](loc20: u64)
170StLoc[26](loc17: u64)
171CopyLoc[18](loc9: u64)
172LdU64(0)
173Gt
174BrFalse(223)
B24:
175CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
176ImmBorrowFieldGeneric[3](Pool.pool_type: u8)
177ReadRef
178LdConst[4](u8: 100)
179Eq
180BrFalse(201)
B25:
181MoveLoc[6](Arg6: bool)
182BrFalse(191)
B26:
183CopyLoc[25](loc16: u64)
184CopyLoc[28](loc19: u64)
185MoveLoc[26](loc17: u64)
186MoveLoc[29](loc20: u64)
187MoveLoc[18](loc9: u64)
188Call compute_deposit_allow_price_move(u64, u64, u64, u64, u64): u64
189StLoc[9](loc0: u64)
190Branch(198)
B27:
191CopyLoc[25](loc16: u64)
192CopyLoc[28](loc19: u64)
193MoveLoc[26](loc17: u64)
194MoveLoc[29](loc20: u64)
195MoveLoc[18](loc9: u64)
196Call compute_deposit(u64, u64, u64, u64, u64): u64
197StLoc[9](loc0: u64)
B28:
198MoveLoc[9](loc0: u64)
199StLoc[10](loc1: u64)
200Branch(220)
B29:
201CopyLoc[25](loc16: u64)
202CopyLoc[28](loc19: u64)
203MoveLoc[26](loc17: u64)
204MoveLoc[29](loc20: u64)
205MoveLoc[18](loc9: u64)
206CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
207ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
208ImmBorrowField[26](PoolStableInfo.x_scale: u64)
209ReadRef
210CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
211ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
212ImmBorrowField[27](PoolStableInfo.y_scale: u64)
213ReadRef
214CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
215ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
216ImmBorrowField[25](PoolStableInfo.amp: u64)
217ReadRef
218Call compute_deposit_stable(u64, u64, u64, u64, u64, u64, u64, u64): u64
219StLoc[10](loc1: u64)
B30:
220MoveLoc[10](loc1: u64)
221StLoc[11](loc2: u64)
222Branch(246)
B31:
223MoveLoc[26](loc17: u64)
224CopyLoc[25](loc16: u64)
225Add
226Call math::sqrt(u64): u64
227MoveLoc[29](loc20: u64)
228CopyLoc[28](loc19: u64)
229Add
230Call math::sqrt(u64): u64
231Mul
232StLoc[21](loc12: u64)
233CopyLoc[21](loc12: u64)
234LdU64(0)
235Gt
236BrFalse(238)
B32:
237Branch(244)
B33:
238MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
239Pop
240MoveLoc[8](Arg8: &mut TxContext)
241Pop
242LdConst[35](u64: 134023)
243Abort
B34:
244MoveLoc[21](loc12: u64)
245StLoc[11](loc2: u64)
B35:
246MoveLoc[11](loc2: u64)
247StLoc[22](loc13: u64)
248CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
249MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
250MutBorrowFieldGeneric[11](PoolBalanceInfo.x: Balance<Ty0>)
251MoveLoc[27](loc18: Balance<Ty0>)
252Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
253Pop
254CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
255MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
256MutBorrowFieldGeneric[12](PoolBalanceInfo.y: Balance<Ty1>)
257MoveLoc[30](loc21: Balance<Ty1>)
258Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
259Pop
260CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
261CopyLoc[22](loc13: u64)
262MoveLoc[23](loc14: u64)
263MoveLoc[15](loc6: u64)
264MoveLoc[12](loc3: u64)
265MoveLoc[8](Arg8: &mut TxContext)
266Call increase_lsp_supply<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64, u64, u64, u64, &mut TxContext): PoolLsp<Ty0, Ty1>
267StLoc[17](loc8: PoolLsp<Ty0, Ty1>)
268MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
269ImmBorrowFieldGeneric[1](Pool.index: u64)
270ReadRef
271LdTrue
272MoveLoc[25](loc16: u64)
273MoveLoc[28](loc19: u64)
274MoveLoc[22](loc13: u64)
275ImmBorrowLoc[17](loc8: PoolLsp<Ty0, Ty1>)
276ImmBorrowFieldGeneric[30](PoolLsp.id: UID)
277Call object::uid_to_inner(&UID): ID
278PackGeneric[5](LiquidityEvent<Ty0, Ty1>)
279Call event::emit<LiquidityEvent<Ty0, Ty1>>(LiquidityEvent<Ty0, Ty1>)
280MoveLoc[17](loc8: PoolLsp<Ty0, Ty1>)
281Ret
}
remove_liquidity_impl<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut TokenBank, Arg2: PoolLsp<Ty0, Ty1>, Arg3: u64, Arg4: u8, Arg5: bool, Arg6: &Clock, Arg7: &mut TxContext) {
L8: loc0: u64
L9: loc1: u64
L10: loc2: bool
L11: loc3: bool
L12: loc4: Balance<Ty0>
L13: loc5: Balance<Ty1>
L14: loc6: Coin<Ty1>
L15: loc7: PoolLsp<Ty0, Ty1>
L16: loc8: u256
L17: loc9: ID
L18: loc10: u256
L19: loc11: u64
L20: loc12: u64
L21: loc13: u128
L22: loc14: u64
L23: loc15: u128
L24: loc16: address
L25: loc17: u64
L26: loc18: u128
L27: loc19: u64
L28: loc20: u128
L29: loc21: u64
L30: loc22: u64
L31: loc23: u128
L32: loc24: u64
L33: loc25: u128
L34: loc26: u64
B0:
0CopyLoc[4](Arg4: u8)
1LdU8(2)
2Le
3BrFalse(5)
B1:
4Branch(15)
B2:
5MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
6Pop
7MoveLoc[7](Arg7: &mut TxContext)
8Pop
9MoveLoc[6](Arg6: &Clock)
10Pop
11MoveLoc[1](Arg1: &mut TokenBank)
12Pop
13LdConst[12](u64: 13400)
14Abort
B3:
15CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
16ImmBorrowFieldGeneric[37](Pool.version: u64)
17ReadRef
18LdConst[0](u64: 0)
19Eq
20BrFalse(22)
B4:
21Branch(32)
B5:
22MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
23Pop
24MoveLoc[7](Arg7: &mut TxContext)
25Pop
26MoveLoc[6](Arg6: &Clock)
27Pop
28MoveLoc[1](Arg1: &mut TokenBank)
29Pop
30LdConst[36](u64: 200000)
31Abort
B6:
32CopyLoc[7](Arg7: &mut TxContext)
33FreezeRef
34Call tx_context::sender(&TxContext): address
35CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
36ImmBorrowFieldGeneric[2](Pool.owner: address)
37ReadRef
38Neq
39BrFalse(59)
B7:
40CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
41ImmBorrowFieldGeneric[5](Pool.freeze: u8)
42ReadRef
43LdConst[9](u8: 4)
44BitAnd
45LdU8(0)
46Eq
47BrFalse(49)
B8:
48Branch(59)
B9:
49MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
50Pop
51MoveLoc[7](Arg7: &mut TxContext)
52Pop
53MoveLoc[6](Arg6: &Clock)
54Pop
55MoveLoc[1](Arg1: &mut TokenBank)
56Pop
57LdConst[22](u64: 134010)
58Abort
B10:
59CopyLoc[3](Arg3: u64)
60LdU64(0)
61Gt
62BrFalse(64)
B11:
63Branch(74)
B12:
64MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
65Pop
66MoveLoc[7](Arg7: &mut TxContext)
67Pop
68MoveLoc[6](Arg6: &Clock)
69Pop
70MoveLoc[1](Arg1: &mut TokenBank)
71Pop
72LdConst[12](u64: 13400)
73Abort
B13:
74ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
75ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
76ReadRef
77CopyLoc[3](Arg3: u64)
78Ge
79BrFalse(81)
B14:
80Branch(91)
B15:
81MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
82Pop
83MoveLoc[7](Arg7: &mut TxContext)
84Pop
85MoveLoc[6](Arg6: &Clock)
86Pop
87MoveLoc[1](Arg1: &mut TokenBank)
88Pop
89LdConst[20](u64: 134008)
90Abort
B16:
91MoveLoc[5](Arg5: bool)
92LdFalse
93Eq
94BrFalse(113)
B17:
95CopyLoc[6](Arg6: &Clock)
96Call utils::get_epoch(&Clock): u64
97ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
98ImmBorrowFieldGeneric[38](PoolLsp.end_epoch: u64)
99ReadRef
100Ge
101BrFalse(103)
B18:
102Branch(113)
B19:
103MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
104Pop
105MoveLoc[7](Arg7: &mut TxContext)
106Pop
107MoveLoc[6](Arg6: &Clock)
108Pop
109MoveLoc[1](Arg1: &mut TokenBank)
110Pop
111LdConst[31](u64: 134019)
112Abort
B20:
113CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
114MoveLoc[6](Arg6: &Clock)
115Call update_pool_mining<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &Clock)
116CopyLoc[7](Arg7: &mut TxContext)
117FreezeRef
118Call tx_context::sender(&TxContext): address
119StLoc[24](loc16: address)
120ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
121ImmBorrowFieldGeneric[30](PoolLsp.id: UID)
122Call object::uid_to_inner(&UID): ID
123StLoc[17](loc9: ID)
124CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
125FreezeRef
126Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
127StLoc[20](loc12: u64)
128StLoc[30](loc22: u64)
129StLoc[25](loc17: u64)
130CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
131ImmBorrowFieldGeneric[3](Pool.pool_type: u8)
132ReadRef
133LdConst[4](u8: 100)
134Eq
135BrFalse(145)
B21:
136CopyLoc[25](loc17: u64)
137CopyLoc[30](loc22: u64)
138CopyLoc[20](loc12: u64)
139CopyLoc[3](Arg3: u64)
140CopyLoc[4](Arg4: u8)
141Call compute_withdraw(u64, u64, u64, u64, u8): u64 * u64
142StLoc[9](loc1: u64)
143StLoc[8](loc0: u64)
144Branch(164)
B22:
145CopyLoc[25](loc17: u64)
146CopyLoc[30](loc22: u64)
147CopyLoc[20](loc12: u64)
148CopyLoc[3](Arg3: u64)
149CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
150ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
151ImmBorrowField[26](PoolStableInfo.x_scale: u64)
152ReadRef
153CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
154ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
155ImmBorrowField[27](PoolStableInfo.y_scale: u64)
156ReadRef
157CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
158ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
159ImmBorrowField[25](PoolStableInfo.amp: u64)
160ReadRef
161Call compute_withdraw_stable(u64, u64, u64, u64, u64, u64, u64): u64 * u64
162StLoc[9](loc1: u64)
163StLoc[8](loc0: u64)
B23:
164MoveLoc[8](loc0: u64)
165MoveLoc[9](loc1: u64)
166StLoc[34](loc26: u64)
167StLoc[29](loc21: u64)
168ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
169ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
170ReadRef
171CastU256
172ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
173ImmBorrowFieldGeneric[39](PoolLsp.boost_multiplier: u64)
174ReadRef
175CastU256
176Mul
177StLoc[16](loc8: u256)
178CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
179ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
180ImmBorrowField[56](PoolLiquidityMiningInfo.ampt: ValuePerToken)
181ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
182ImmBorrowFieldGeneric[40](PoolLsp.pool_mining_ampt: ValuePerToken)
183MoveLoc[16](loc8: u256)
184Call vpt::diff(&ValuePerToken, &ValuePerToken, u256): u256
185StLoc[18](loc10: u256)
186CopyLoc[18](loc10: u256)
187LdConst[41](u256: 1844..)
188Le
189BrFalse(191)
B24:
190Branch(199)
B25:
191MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
192Pop
193MoveLoc[7](Arg7: &mut TxContext)
194Pop
195MoveLoc[1](Arg1: &mut TokenBank)
196Pop
197LdConst[18](u64: 134006)
198Abort
B26:
199MoveLoc[18](loc10: u256)
200CastU64
201StLoc[19](loc11: u64)
202CopyLoc[1](Arg1: &mut TokenBank)
203FreezeRef
204Call TOKEN::token_bank_get_balance_value(&TokenBank): u64
205CopyLoc[19](loc11: u64)
206Ge
207BrFalse(214)
B27:
208CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
209ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
210ImmBorrowField[54](PoolLiquidityMiningInfo.permission: Option<Permission<TokenBank>>)
211Call option::is_some<Permission<TokenBank>>(&Option<Permission<TokenBank>>): bool
212StLoc[10](loc2: bool)
213Branch(216)
B28:
214LdFalse
215StLoc[10](loc2: bool)
B29:
216MoveLoc[10](loc2: bool)
217BrFalse(223)
B30:
218CopyLoc[19](loc11: u64)
219LdU64(0)
220Gt
221StLoc[11](loc3: bool)
222Branch(225)
B31:
223LdFalse
224StLoc[11](loc3: bool)
B32:
225MoveLoc[11](loc3: bool)
226BrFalse(237)
B33:
227CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
228ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
229ImmBorrowField[54](PoolLiquidityMiningInfo.permission: Option<Permission<TokenBank>>)
230Call option::borrow<Permission<TokenBank>>(&Option<Permission<TokenBank>>): &Permission<TokenBank>
231MoveLoc[1](Arg1: &mut TokenBank)
232MoveLoc[19](loc11: u64)
233CopyLoc[24](loc16: address)
234CopyLoc[7](Arg7: &mut TxContext)
235Call TOKEN::do_send_liquidity_mine_token(&Permission<TokenBank>, &mut TokenBank, u64, address, &mut TxContext)
236Branch(239)
B34:
237MoveLoc[1](Arg1: &mut TokenBank)
238Pop
B35:
239CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
240MoveLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
241CopyLoc[3](Arg3: u64)
242CopyLoc[7](Arg7: &mut TxContext)
243Call remove_lsp_supply<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, PoolLsp<Ty0, Ty1>, u64, &mut TxContext): PoolLsp<Ty0, Ty1>
244StLoc[15](loc7: PoolLsp<Ty0, Ty1>)
245ImmBorrowLoc[15](loc7: PoolLsp<Ty0, Ty1>)
246ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
247ReadRef
248LdU64(0)
249Gt
250BrFalse(255)
B36:
251MoveLoc[15](loc7: PoolLsp<Ty0, Ty1>)
252CopyLoc[24](loc16: address)
253Call transfer::transfer<PoolLsp<Ty0, Ty1>>(PoolLsp<Ty0, Ty1>, address)
254Branch(257)
B37:
255MoveLoc[15](loc7: PoolLsp<Ty0, Ty1>)
256Call destroy_zero_lsp<Ty0, Ty1>(PoolLsp<Ty0, Ty1>)
B38:
257CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
258MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
259MutBorrowFieldGeneric[11](PoolBalanceInfo.x: Balance<Ty0>)
260CopyLoc[29](loc21: u64)
261Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
262CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
263MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
264MutBorrowFieldGeneric[12](PoolBalanceInfo.y: Balance<Ty1>)
265CopyLoc[34](loc26: u64)
266Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
267StLoc[13](loc5: Balance<Ty1>)
268StLoc[12](loc4: Balance<Ty0>)
269CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
270MutBorrowLoc[12](loc4: Balance<Ty0>)
271MutBorrowLoc[13](loc5: Balance<Ty1>)
272Call collect_withdraw_fee<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut Balance<Ty0>, &mut Balance<Ty1>)
273MoveLoc[12](loc4: Balance<Ty0>)
274CopyLoc[7](Arg7: &mut TxContext)
275Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
276MoveLoc[13](loc5: Balance<Ty1>)
277MoveLoc[7](Arg7: &mut TxContext)
278Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
279StLoc[14](loc6: Coin<Ty1>)
280CopyLoc[24](loc16: address)
281Call utils::transfer_or_destroy_zero<Ty0>(Coin<Ty0>, address)
282MoveLoc[14](loc6: Coin<Ty1>)
283MoveLoc[24](loc16: address)
284Call utils::transfer_or_destroy_zero<Ty1>(Coin<Ty1>, address)
285MoveLoc[4](Arg4: u8)
286LdU8(2)
287Eq
288BrFalse(339)
B39:
289CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
290FreezeRef
291Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
292StLoc[22](loc14: u64)
293StLoc[32](loc24: u64)
294StLoc[27](loc19: u64)
295MoveLoc[25](loc17: u64)
296CastU128
297StLoc[26](loc18: u128)
298MoveLoc[30](loc22: u64)
299CastU128
300StLoc[31](loc23: u128)
301MoveLoc[20](loc12: u64)
302CastU128
303StLoc[21](loc13: u128)
304MoveLoc[27](loc19: u64)
305CastU128
306StLoc[28](loc20: u128)
307MoveLoc[32](loc24: u64)
308CastU128
309StLoc[33](loc25: u128)
310MoveLoc[22](loc14: u64)
311CastU128
312StLoc[23](loc15: u128)
313MoveLoc[26](loc18: u128)
314CopyLoc[23](loc15: u128)
315Mul
316MoveLoc[28](loc20: u128)
317CopyLoc[21](loc13: u128)
318Mul
319Le
320BrFalse(322)
B40:
321Branch(326)
B41:
322MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
323Pop
324LdConst[18](u64: 134006)
325Abort
B42:
326MoveLoc[31](loc23: u128)
327MoveLoc[23](loc15: u128)
328Mul
329MoveLoc[33](loc25: u128)
330MoveLoc[21](loc13: u128)
331Mul
332Le
333BrFalse(335)
B43:
334Branch(339)
B44:
335MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
336Pop
337LdConst[18](u64: 134006)
338Abort
B45:
339MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
340ImmBorrowFieldGeneric[1](Pool.index: u64)
341ReadRef
342LdFalse
343MoveLoc[29](loc21: u64)
344MoveLoc[34](loc26: u64)
345MoveLoc[3](Arg3: u64)
346MoveLoc[17](loc9: ID)
347PackGeneric[5](LiquidityEvent<Ty0, Ty1>)
348Call event::emit<LiquidityEvent<Ty0, Ty1>>(LiquidityEvent<Ty0, Ty1>)
349Ret
}
compute_amount(Arg0: u64, Arg1: u64, Arg2: u64): u64 {
L3: loc0: u128
L4: loc1: u128
L5: loc2: u128
L6: loc3: u128
L7: loc4: u128
L8: loc5: u128
L9: loc6: u128
L10: loc7: u128
B0:
0MoveLoc[0](Arg0: u64)
1CastU128
2MoveLoc[1](Arg1: u64)
3CastU128
4MoveLoc[2](Arg2: u64)
5CastU128
6StLoc[10](loc7: u128)
7StLoc[9](loc6: u128)
8StLoc[4](loc1: u128)
9CopyLoc[10](loc7: u128)
10CopyLoc[4](loc1: u128)
11Mul
12StLoc[8](loc5: u128)
13CopyLoc[9](loc6: u128)
14CopyLoc[4](loc1: u128)
15Add
16StLoc[3](loc0: u128)
17MoveLoc[8](loc5: u128)
18MoveLoc[3](loc0: u128)
19Div
20StLoc[5](loc2: u128)
21CopyLoc[5](loc2: u128)
22LdConst[39](u128: 1844..)
23Le
24BrFalse(26)
B1:
25Branch(28)
B2:
26LdConst[17](u64: 134005)
27Abort
B3:
28CopyLoc[9](loc6: u128)
29MoveLoc[4](loc1: u128)
30Add
31CopyLoc[10](loc7: u128)
32CopyLoc[5](loc2: u128)
33Sub
34Mul
35StLoc[6](loc3: u128)
36MoveLoc[9](loc6: u128)
37MoveLoc[10](loc7: u128)
38Mul
39StLoc[7](loc4: u128)
40MoveLoc[6](loc3: u128)
41MoveLoc[7](loc4: u128)
42Ge
43BrFalse(45)
B4:
44Branch(47)
B5:
45LdConst[18](u64: 134006)
46Abort
B6:
47MoveLoc[5](loc2: u128)
48CastU64
49Ret
}
compute_amount_stable(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64): u64 {
L6: loc0: u256
L7: loc1: u256
L8: loc2: u256
L9: loc3: u256
L10: loc4: u256
L11: loc5: u256
B0:
0MoveLoc[3](Arg3: u64)
1CastU256
2StLoc[9](loc3: u256)
3MoveLoc[4](Arg4: u64)
4CastU256
5StLoc[11](loc5: u256)
6MoveLoc[0](Arg0: u64)
7CastU256
8CopyLoc[9](loc3: u256)
9Mul
10StLoc[7](loc1: u256)
11MoveLoc[1](Arg1: u64)
12CastU256
13MoveLoc[9](loc3: u256)
14Mul
15StLoc[8](loc2: u256)
16MoveLoc[2](Arg2: u64)
17CastU256
18CopyLoc[11](loc5: u256)
19Mul
20StLoc[10](loc4: u256)
21MoveLoc[5](Arg5: u64)
22CastU256
23StLoc[6](loc0: u256)
24MoveLoc[7](loc1: u256)
25MoveLoc[8](loc2: u256)
26MoveLoc[10](loc4: u256)
27MoveLoc[6](loc0: u256)
28Call ss_swap_to(u256, u256, u256, u256): u256
29MoveLoc[11](loc5: u256)
30Div
31CastU64
32Ret
}
compute_deposit(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64): u64 {
L5: loc0: u128
L6: loc1: u128
L7: loc2: u128
B0:
0MoveLoc[0](Arg0: u64)
1CastU128
2CopyLoc[4](Arg4: u64)
3CastU128
4Mul
5MoveLoc[2](Arg2: u64)
6CastU128
7Div
8StLoc[6](loc1: u128)
9MoveLoc[1](Arg1: u64)
10CastU128
11MoveLoc[4](Arg4: u64)
12CastU128
13Mul
14MoveLoc[3](Arg3: u64)
15CastU128
16Div
17StLoc[7](loc2: u128)
18CopyLoc[6](loc1: u128)
19CopyLoc[7](loc2: u128)
20Lt
21BrFalse(25)
B1:
22MoveLoc[6](loc1: u128)
23StLoc[5](loc0: u128)
24Branch(27)
B2:
25MoveLoc[7](loc2: u128)
26StLoc[5](loc0: u128)
B3:
27MoveLoc[5](loc0: u128)
28CastU64
29Ret
}
compute_deposit_allow_price_move(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64): u64 {
L5: loc0: u256
L6: loc1: u256
L7: loc2: u256
L8: loc3: u256
L9: loc4: u256
B0:
0CopyLoc[2](Arg2: u64)
1MoveLoc[0](Arg0: u64)
2Add
3CastU256
4StLoc[7](loc2: u256)
5CopyLoc[3](Arg3: u64)
6MoveLoc[1](Arg1: u64)
7Add
8CastU256
9StLoc[9](loc4: u256)
10MoveLoc[2](Arg2: u64)
11CastU256
12StLoc[6](loc1: u256)
13MoveLoc[3](Arg3: u64)
14CastU256
15StLoc[8](loc3: u256)
16CopyLoc[4](Arg4: u64)
17CastU256
18StLoc[5](loc0: u256)
19MoveLoc[7](loc2: u256)
20MoveLoc[9](loc4: u256)
21Mul
22CopyLoc[5](loc0: u256)
23Mul
24MoveLoc[5](loc0: u256)
25Mul
26MoveLoc[6](loc1: u256)
27MoveLoc[8](loc3: u256)
28Mul
29Div
30CastU128
31Call math::sqrt_u128(u128): u128
32CastU64
33MoveLoc[4](Arg4: u64)
34Sub
35Ret
}
compute_deposit_stable(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: u64, Arg7: u64): u64 {
L8: loc0: u256
L9: loc1: u256
L10: loc2: u256
L11: loc3: u256
L12: loc4: u256
L13: loc5: u256
L14: loc6: u256
L15: loc7: u256
B0:
0MoveLoc[5](Arg5: u64)
1CastU256
2StLoc[12](loc4: u256)
3MoveLoc[6](Arg6: u64)
4CastU256
5StLoc[15](loc7: u256)
6MoveLoc[2](Arg2: u64)
7CastU256
8CopyLoc[12](loc4: u256)
9Mul
10StLoc[10](loc2: u256)
11MoveLoc[3](Arg3: u64)
12CastU256
13CopyLoc[15](loc7: u256)
14Mul
15StLoc[13](loc5: u256)
16MoveLoc[0](Arg0: u64)
17CastU256
18MoveLoc[12](loc4: u256)
19Mul
20StLoc[11](loc3: u256)
21MoveLoc[1](Arg1: u64)
22CastU256
23MoveLoc[15](loc7: u256)
24Mul
25StLoc[14](loc6: u256)
26MoveLoc[4](Arg4: u64)
27CastU256
28StLoc[9](loc1: u256)
29MoveLoc[7](Arg7: u64)
30CastU256
31StLoc[8](loc0: u256)
32MoveLoc[11](loc3: u256)
33MoveLoc[14](loc6: u256)
34MoveLoc[10](loc2: u256)
35MoveLoc[13](loc5: u256)
36MoveLoc[9](loc1: u256)
37MoveLoc[8](loc0: u256)
38Call ss_compute_mint_amount_for_deposit(u256, u256, u256, u256, u256, u256): u256
39CastU64
40Ret
}
compute_withdraw(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u8): u64 * u64 {
L5: loc0: u256
L6: loc1: u256
L7: loc2: u256
L8: loc3: u256
L9: loc4: u64
L10: loc5: u128
L11: loc6: u64
L12: loc7: u64
L13: loc8: u128
L14: loc9: u64
B0:
0CopyLoc[4](Arg4: u8)
1LdU8(2)
2Eq
3BrFalse(31)
B1:
4MoveLoc[0](Arg0: u64)
5CastU128
6CopyLoc[3](Arg3: u64)
7CastU128
8Mul
9CopyLoc[2](Arg2: u64)
10CastU128
11Div
12StLoc[10](loc5: u128)
13MoveLoc[1](Arg1: u64)
14CastU128
15MoveLoc[3](Arg3: u64)
16CastU128
17Mul
18MoveLoc[2](Arg2: u64)
19CastU128
20Div
21StLoc[13](loc8: u128)
22MoveLoc[10](loc5: u128)
23CastU64
24StLoc[11](loc6: u64)
25MoveLoc[13](loc8: u128)
26CastU64
27StLoc[14](loc9: u64)
28MoveLoc[11](loc6: u64)
29MoveLoc[14](loc9: u64)
30Ret
B2:
31CopyLoc[2](Arg2: u64)
32MoveLoc[3](Arg3: u64)
33Sub
34CastU256
35StLoc[8](loc3: u256)
36MoveLoc[2](Arg2: u64)
37CastU256
38StLoc[5](loc0: u256)
39CopyLoc[8](loc3: u256)
40MoveLoc[8](loc3: u256)
41Mul
42StLoc[7](loc2: u256)
43CopyLoc[5](loc0: u256)
44MoveLoc[5](loc0: u256)
45Mul
46StLoc[6](loc1: u256)
47MoveLoc[4](Arg4: u8)
48LdU8(0)
49Eq
50BrFalse(64)
B3:
51CopyLoc[0](Arg0: u64)
52CastU256
53MoveLoc[7](loc2: u256)
54Mul
55MoveLoc[6](loc1: u256)
56Div
57CastU64
58StLoc[9](loc4: u64)
59MoveLoc[0](Arg0: u64)
60MoveLoc[9](loc4: u64)
61Sub
62LdU64(0)
63Ret
B4:
64CopyLoc[1](Arg1: u64)
65CastU256
66MoveLoc[7](loc2: u256)
67Mul
68MoveLoc[6](loc1: u256)
69Div
70CastU64
71StLoc[12](loc7: u64)
72LdU64(0)
73MoveLoc[1](Arg1: u64)
74MoveLoc[12](loc7: u64)
75Sub
76Ret
}
compute_withdraw_stable(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: u64): u64 * u64 {
L7: loc0: u256
L8: loc1: u256
L9: loc2: u256
L10: loc3: u256
L11: loc4: u64
L12: loc5: u256
L13: loc6: u256
L14: loc7: u256
L15: loc8: u64
L16: loc9: u256
B0:
0MoveLoc[4](Arg4: u64)
1CastU256
2StLoc[12](loc5: u256)
3MoveLoc[5](Arg5: u64)
4CastU256
5StLoc[16](loc9: u256)
6MoveLoc[2](Arg2: u64)
7CastU256
8StLoc[9](loc2: u256)
9MoveLoc[3](Arg3: u64)
10CastU256
11StLoc[7](loc0: u256)
12MoveLoc[6](Arg6: u64)
13CastU256
14StLoc[8](loc1: u256)
15MoveLoc[0](Arg0: u64)
16CastU256
17CopyLoc[12](loc5: u256)
18Mul
19StLoc[10](loc3: u256)
20MoveLoc[1](Arg1: u64)
21CastU256
22CopyLoc[16](loc9: u256)
23Mul
24StLoc[13](loc6: u256)
25MoveLoc[7](loc0: u256)
26MoveLoc[9](loc2: u256)
27MoveLoc[10](loc3: u256)
28MoveLoc[13](loc6: u256)
29MoveLoc[8](loc1: u256)
30Call ss_compute_withdraw(u256, u256, u256, u256, u256): u256 * u256
31StLoc[14](loc7: u256)
32MoveLoc[12](loc5: u256)
33Div
34CastU64
35StLoc[11](loc4: u64)
36MoveLoc[14](loc7: u256)
37MoveLoc[16](loc9: u256)
38Div
39CastU64
40StLoc[15](loc8: u64)
41MoveLoc[11](loc4: u64)
42MoveLoc[15](loc8: u64)
43Ret
}
swap_x_to_y_direct_no_fee_impl<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: Balance<Ty0>): Balance<Ty1> {
L2: loc0: bool
L3: loc1: u64
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1FreezeRef
2Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
3Pop
4StLoc[6](loc4: u64)
5StLoc[5](loc3: u64)
6CopyLoc[5](loc3: u64)
7LdU64(0)
8Gt
9BrFalse(15)
B1:
10CopyLoc[6](loc4: u64)
11LdU64(0)
12Gt
13StLoc[2](loc0: bool)
14Branch(17)
B2:
15LdFalse
16StLoc[2](loc0: bool)
B3:
17MoveLoc[2](loc0: bool)
18BrFalse(20)
B4:
19Branch(24)
B5:
20MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
21Pop
22LdConst[14](u64: 134002)
23Abort
B6:
24CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
25ImmBorrowFieldGeneric[3](Pool.pool_type: u8)
26ReadRef
27LdConst[4](u8: 100)
28Eq
29BrFalse(37)
B7:
30ImmBorrowLoc[1](Arg1: Balance<Ty0>)
31Call balance::value<Ty0>(&Balance<Ty0>): u64
32MoveLoc[5](loc3: u64)
33MoveLoc[6](loc4: u64)
34Call compute_amount(u64, u64, u64): u64
35StLoc[3](loc1: u64)
36Branch(55)
B8:
37ImmBorrowLoc[1](Arg1: Balance<Ty0>)
38Call balance::value<Ty0>(&Balance<Ty0>): u64
39MoveLoc[5](loc3: u64)
40MoveLoc[6](loc4: u64)
41CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
42ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
43ImmBorrowField[26](PoolStableInfo.x_scale: u64)
44ReadRef
45CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
46ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
47ImmBorrowField[27](PoolStableInfo.y_scale: u64)
48ReadRef
49CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
50ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
51ImmBorrowField[25](PoolStableInfo.amp: u64)
52ReadRef
53Call compute_amount_stable(u64, u64, u64, u64, u64, u64): u64
54StLoc[3](loc1: u64)
B9:
55MoveLoc[3](loc1: u64)
56StLoc[4](loc2: u64)
57CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
58MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
59MutBorrowFieldGeneric[11](PoolBalanceInfo.x: Balance<Ty0>)
60MoveLoc[1](Arg1: Balance<Ty0>)
61Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
62Pop
63MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
64MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
65MutBorrowFieldGeneric[12](PoolBalanceInfo.y: Balance<Ty1>)
66MoveLoc[4](loc2: u64)
67Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
68Ret
}
swap_y_to_x_direct_no_fee_impl<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: Balance<Ty1>): Balance<Ty0> {
L2: loc0: bool
L3: loc1: u64
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1FreezeRef
2Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
3Pop
4StLoc[6](loc4: u64)
5StLoc[5](loc3: u64)
6CopyLoc[5](loc3: u64)
7LdU64(0)
8Gt
9BrFalse(15)
B1:
10CopyLoc[6](loc4: u64)
11LdU64(0)
12Gt
13StLoc[2](loc0: bool)
14Branch(17)
B2:
15LdFalse
16StLoc[2](loc0: bool)
B3:
17MoveLoc[2](loc0: bool)
18BrFalse(20)
B4:
19Branch(24)
B5:
20MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
21Pop
22LdConst[14](u64: 134002)
23Abort
B6:
24CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
25ImmBorrowFieldGeneric[3](Pool.pool_type: u8)
26ReadRef
27LdConst[4](u8: 100)
28Eq
29BrFalse(37)
B7:
30ImmBorrowLoc[1](Arg1: Balance<Ty1>)
31Call balance::value<Ty1>(&Balance<Ty1>): u64
32MoveLoc[6](loc4: u64)
33MoveLoc[5](loc3: u64)
34Call compute_amount(u64, u64, u64): u64
35StLoc[3](loc1: u64)
36Branch(55)
B8:
37ImmBorrowLoc[1](Arg1: Balance<Ty1>)
38Call balance::value<Ty1>(&Balance<Ty1>): u64
39MoveLoc[6](loc4: u64)
40MoveLoc[5](loc3: u64)
41CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
42ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
43ImmBorrowField[27](PoolStableInfo.y_scale: u64)
44ReadRef
45CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
46ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
47ImmBorrowField[26](PoolStableInfo.x_scale: u64)
48ReadRef
49CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
50ImmBorrowFieldGeneric[9](Pool.stable: PoolStableInfo)
51ImmBorrowField[25](PoolStableInfo.amp: u64)
52ReadRef
53Call compute_amount_stable(u64, u64, u64, u64, u64, u64): u64
54StLoc[3](loc1: u64)
B9:
55MoveLoc[3](loc1: u64)
56StLoc[4](loc2: u64)
57CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
58MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
59MutBorrowFieldGeneric[12](PoolBalanceInfo.y: Balance<Ty1>)
60MoveLoc[1](Arg1: Balance<Ty1>)
61Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
62Pop
63MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
64MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
65MutBorrowFieldGeneric[11](PoolBalanceInfo.x: Balance<Ty0>)
66MoveLoc[4](loc2: u64)
67Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
68Ret
}
increase_lsp_supply<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: &mut TxContext): PoolLsp<Ty0, Ty1> {
L6: loc0: PoolLsp<Ty0, Ty1>
L7: loc1: u64
L8: loc2: u64
L9: loc3: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[4](Pool.lsp_supply: u64)
2ReadRef
3CopyLoc[1](Arg1: u64)
4Add
5CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
6MutBorrowFieldGeneric[4](Pool.lsp_supply: u64)
7WriteRef
8CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
9FreezeRef
10Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
11StLoc[7](loc1: u64)
12StLoc[9](loc3: u64)
13StLoc[8](loc2: u64)
14MoveLoc[5](Arg5: &mut TxContext)
15Call object::new(&mut TxContext): UID
16CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
17ImmBorrowFieldGeneric[0](Pool.id: UID)
18Call object::uid_to_inner(&UID): ID
19CopyLoc[1](Arg1: u64)
20MoveLoc[8](loc2: u64)
21MoveLoc[9](loc3: u64)
22MoveLoc[7](loc1: u64)
23CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
24ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
25ImmBorrowField[56](PoolLiquidityMiningInfo.ampt: ValuePerToken)
26ReadRef
27MoveLoc[2](Arg2: u64)
28MoveLoc[3](Arg3: u64)
29CopyLoc[4](Arg4: u64)
30PackGeneric[6](PoolLsp<Ty0, Ty1>)
31StLoc[6](loc0: PoolLsp<Ty0, Ty1>)
32MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
33MutBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
34MutBorrowField[56](PoolLiquidityMiningInfo.ampt: ValuePerToken)
35MoveLoc[1](Arg1: u64)
36CastU256
37MoveLoc[4](Arg4: u64)
38CastU256
39Mul
40Call vpt::add_amount(&mut ValuePerToken, u256)
41MoveLoc[6](loc0: PoolLsp<Ty0, Ty1>)
42Ret
}
remove_lsp_supply<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: PoolLsp<Ty0, Ty1>, Arg2: u64, Arg3: &mut TxContext): PoolLsp<Ty0, Ty1> {
L4: loc0: u64
L5: loc1: u64
L6: loc2: PoolLsp<Ty0, Ty1>
B0:
0ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
1ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
2ReadRef
3MoveLoc[2](Arg2: u64)
4Call math::min(u64, u64): u64
5StLoc[4](loc0: u64)
6ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
7ImmBorrowFieldGeneric[39](PoolLsp.boost_multiplier: u64)
8ReadRef
9StLoc[5](loc1: u64)
10CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
11ImmBorrowFieldGeneric[4](Pool.lsp_supply: u64)
12ReadRef
13CopyLoc[4](loc0: u64)
14Sub
15CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
16MutBorrowFieldGeneric[4](Pool.lsp_supply: u64)
17WriteRef
18MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
19MutBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
20MutBorrowField[56](PoolLiquidityMiningInfo.ampt: ValuePerToken)
21CopyLoc[4](loc0: u64)
22CastU256
23MoveLoc[5](loc1: u64)
24CastU256
25Mul
26Call vpt::dec_amount(&mut ValuePerToken, u256)
27MoveLoc[3](Arg3: &mut TxContext)
28Call object::new(&mut TxContext): UID
29ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
30ImmBorrowFieldGeneric[31](PoolLsp.pool_id: ID)
31ReadRef
32ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
33ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
34ReadRef
35MoveLoc[4](loc0: u64)
36Sub
37ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
38ImmBorrowFieldGeneric[33](PoolLsp.pool_x: u64)
39ReadRef
40ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
41ImmBorrowFieldGeneric[34](PoolLsp.pool_y: u64)
42ReadRef
43ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
44ImmBorrowFieldGeneric[41](PoolLsp.pool_lsp: u64)
45ReadRef
46ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
47ImmBorrowFieldGeneric[40](PoolLsp.pool_mining_ampt: ValuePerToken)
48ReadRef
49ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
50ImmBorrowFieldGeneric[42](PoolLsp.start_epoch: u64)
51ReadRef
52ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
53ImmBorrowFieldGeneric[38](PoolLsp.end_epoch: u64)
54ReadRef
55ImmBorrowLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
56ImmBorrowFieldGeneric[39](PoolLsp.boost_multiplier: u64)
57ReadRef
58PackGeneric[6](PoolLsp<Ty0, Ty1>)
59StLoc[6](loc2: PoolLsp<Ty0, Ty1>)
60MoveLoc[1](Arg1: PoolLsp<Ty0, Ty1>)
61UnpackGeneric[6](PoolLsp<Ty0, Ty1>)
62Pop
63Pop
64Pop
65Pop
66Pop
67Pop
68Pop
69Pop
70Pop
71Call object::delete(UID)
72MoveLoc[6](loc2: PoolLsp<Ty0, Ty1>)
73Ret
}
destroy_zero_lsp<Ty0, Ty1>(Arg0: PoolLsp<Ty0, Ty1>) {
B0:
0ImmBorrowLoc[0](Arg0: PoolLsp<Ty0, Ty1>)
1ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
2ReadRef
3LdU64(0)
4Eq
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[12](u64: 13400)
8Abort
B3:
9MoveLoc[0](Arg0: PoolLsp<Ty0, Ty1>)
10UnpackGeneric[6](PoolLsp<Ty0, Ty1>)
11Pop
12Pop
13Pop
14Pop
15Pop
16Pop
17Pop
18Pop
19Pop
20Call object::delete(UID)
21Ret
}
update_pool_mining<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &Clock) {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u256
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
2ImmBorrowField[55](PoolLiquidityMiningInfo.speed: u256)
3ReadRef
4LdU256(0)
5Gt
6BrFalse(56)
B1:
7MoveLoc[1](Arg1: &Clock)
8Call utils::get_epoch(&Clock): u64
9StLoc[2](loc0: u64)
10CopyLoc[2](loc0: u64)
11CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
12ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
13ImmBorrowField[57](PoolLiquidityMiningInfo.last_epoch: u64)
14ReadRef
15Gt
16BrFalse(53)
B2:
17CopyLoc[2](loc0: u64)
18CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
19ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
20ImmBorrowField[57](PoolLiquidityMiningInfo.last_epoch: u64)
21ReadRef
22Sub
23StLoc[3](loc1: u64)
24MoveLoc[2](loc0: u64)
25CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
26MutBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
27MutBorrowField[57](PoolLiquidityMiningInfo.last_epoch: u64)
28WriteRef
29MoveLoc[3](loc1: u64)
30CastU256
31CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
32ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
33ImmBorrowField[55](PoolLiquidityMiningInfo.speed: u256)
34ReadRef
35Mul
36StLoc[4](loc2: u256)
37CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
38ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
39ImmBorrowField[56](PoolLiquidityMiningInfo.ampt: ValuePerToken)
40Call vpt::amount(&ValuePerToken): u256
41LdU256(0)
42Gt
43BrFalse(50)
B3:
44MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
45MutBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
46MutBorrowField[56](PoolLiquidityMiningInfo.ampt: ValuePerToken)
47MoveLoc[4](loc2: u256)
48Call vpt::add_sum(&mut ValuePerToken, u256)
49Branch(52)
B4:
50MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
51Pop
B5:
52Branch(55)
B6:
53MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
54Pop
B7:
55Branch(60)
B8:
56MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
57Pop
58MoveLoc[1](Arg1: &Clock)
59Pop
B9:
60Ret
}
get_th_reward_start_and_end_epoch(Arg0: u64, Arg1: u64): u64 * u64 {
L2: loc0: u64
L3: loc1: u64
B0:
0MoveLoc[0](Arg0: u64)
1CopyLoc[1](Arg1: u64)
2Div
3CopyLoc[1](Arg1: u64)
4Mul
5StLoc[3](loc1: u64)
6CopyLoc[3](loc1: u64)
7MoveLoc[1](Arg1: u64)
8Add
9LdU64(1)
10Sub
11StLoc[2](loc0: u64)
12MoveLoc[3](loc1: u64)
13MoveLoc[2](loc0: u64)
14Ret
}
ss_compute_next_d(Arg0: u256, Arg1: u256, Arg2: u256, Arg3: u256): u256 {
L4: loc0: u256
L5: loc1: u256
L6: loc2: u256
L7: loc3: u256
L8: loc4: u256
B0:
0LdConst[43](u64: 2)
1CastU256
2StLoc[7](loc3: u256)
3MoveLoc[0](Arg0: u256)
4CopyLoc[7](loc3: u256)
5Mul
6StLoc[4](loc0: u256)
7MoveLoc[3](Arg3: u256)
8CopyLoc[4](loc0: u256)
9Mul
10StLoc[6](loc2: u256)
11CopyLoc[1](Arg1: u256)
12CopyLoc[2](Arg2: u256)
13CopyLoc[7](loc3: u256)
14Mul
15MoveLoc[6](loc2: u256)
16Add
17Mul
18StLoc[8](loc4: u256)
19MoveLoc[1](Arg1: u256)
20MoveLoc[4](loc0: u256)
21LdU256(1)
22Sub
23Mul
24MoveLoc[2](Arg2: u256)
25MoveLoc[7](loc3: u256)
26LdU256(1)
27Add
28Mul
29Add
30StLoc[5](loc1: u256)
31MoveLoc[8](loc4: u256)
32MoveLoc[5](loc1: u256)
33Div
34Ret
}
ss_compute_d(Arg0: u256, Arg1: u256, Arg2: u256): u256 {
L3: loc0: u256
L4: loc1: u256
L5: loc2: u64
L6: loc3: u256
L7: loc4: u256
L8: loc5: u256
L9: loc6: u256
B0:
0CopyLoc[0](Arg0: u256)
1CopyLoc[1](Arg1: u256)
2Add
3StLoc[9](loc6: u256)
4CopyLoc[9](loc6: u256)
5LdU256(0)
6Eq
7BrFalse(10)
B1:
8LdU256(0)
9Ret
B2:
10MoveLoc[0](Arg0: u256)
11LdConst[43](u64: 2)
12CastU256
13Mul
14StLoc[3](loc0: u256)
15MoveLoc[1](Arg1: u256)
16LdConst[43](u64: 2)
17CastU256
18Mul
19StLoc[4](loc1: u256)
20CopyLoc[9](loc6: u256)
21StLoc[6](loc3: u256)
22LdU64(0)
23StLoc[5](loc2: u64)
B3:
24CopyLoc[5](loc2: u64)
25LdU64(256)
26Lt
27BrFalse(59)
B4:
28Branch(29)
B5:
29CopyLoc[6](loc3: u256)
30CopyLoc[6](loc3: u256)
31Mul
32CopyLoc[3](loc0: u256)
33Div
34CopyLoc[6](loc3: u256)
35Mul
36CopyLoc[4](loc1: u256)
37Div
38StLoc[8](loc5: u256)
39CopyLoc[6](loc3: u256)
40StLoc[7](loc4: u256)
41CopyLoc[2](Arg2: u256)
42MoveLoc[6](loc3: u256)
43MoveLoc[8](loc5: u256)
44CopyLoc[9](loc6: u256)
45Call ss_compute_next_d(u256, u256, u256, u256): u256
46StLoc[6](loc3: u256)
47CopyLoc[6](loc3: u256)
48MoveLoc[7](loc4: u256)
49Call abs_sub(u256, u256): u256
50LdU256(1)
51Le
52BrFalse(54)
B6:
53Branch(59)
B7:
54MoveLoc[5](loc2: u64)
55LdU64(1)
56Add
57StLoc[5](loc2: u64)
58Branch(24)
B8:
59MoveLoc[6](loc3: u256)
60Ret
}
ss_compute_y(Arg0: u256, Arg1: u256, Arg2: u256): u256 {
L3: loc0: u256
L4: loc1: u256
L5: loc2: u256
L6: loc3: u64
L7: loc4: u256
L8: loc5: u256
L9: loc6: u256
B0:
0LdConst[43](u64: 2)
1CastU256
2StLoc[7](loc4: u256)
3MoveLoc[2](Arg2: u256)
4CopyLoc[7](loc4: u256)
5Mul
6StLoc[3](loc0: u256)
7CopyLoc[1](Arg1: u256)
8CopyLoc[1](Arg1: u256)
9Mul
10CopyLoc[0](Arg0: u256)
11CopyLoc[7](loc4: u256)
12Mul
13Div
14CopyLoc[1](Arg1: u256)
15Mul
16CopyLoc[3](loc0: u256)
17MoveLoc[7](loc4: u256)
18Mul
19Div
20StLoc[5](loc2: u256)
21CopyLoc[1](Arg1: u256)
22MoveLoc[3](loc0: u256)
23Div
24MoveLoc[0](Arg0: u256)
25Add
26StLoc[4](loc1: u256)
27CopyLoc[1](Arg1: u256)
28StLoc[8](loc5: u256)
29LdU64(0)
30StLoc[6](loc3: u64)
B1:
31CopyLoc[6](loc3: u64)
32LdU64(256)
33Lt
34BrFalse(64)
B2:
35Branch(36)
B3:
36CopyLoc[8](loc5: u256)
37StLoc[9](loc6: u256)
38CopyLoc[8](loc5: u256)
39CopyLoc[8](loc5: u256)
40Mul
41CopyLoc[5](loc2: u256)
42Add
43MoveLoc[8](loc5: u256)
44LdU256(2)
45Mul
46CopyLoc[4](loc1: u256)
47Add
48CopyLoc[1](Arg1: u256)
49Sub
50Div
51StLoc[8](loc5: u256)
52CopyLoc[8](loc5: u256)
53MoveLoc[9](loc6: u256)
54Call abs_sub(u256, u256): u256
55LdU256(1)
56Le
57BrFalse(59)
B4:
58Branch(64)
B5:
59MoveLoc[6](loc3: u64)
60LdU64(1)
61Add
62StLoc[6](loc3: u64)
63Branch(31)
B6:
64MoveLoc[8](loc5: u256)
65Ret
}
ss_swap_to(Arg0: u256, Arg1: u256, Arg2: u256, Arg3: u256): u256 {
L4: loc0: u256
L5: loc1: u256
B0:
0CopyLoc[0](Arg0: u256)
1CopyLoc[1](Arg1: u256)
2CopyLoc[2](Arg2: u256)
3CopyLoc[3](Arg3: u256)
4Call ss_swap_to_internal(u256, u256, u256, u256): u256 * u256
5StLoc[4](loc0: u256)
6StLoc[5](loc1: u256)
7MoveLoc[0](Arg0: u256)
8MoveLoc[1](Arg1: u256)
9Add
10MoveLoc[2](Arg2: u256)
11CopyLoc[5](loc1: u256)
12Add
13MoveLoc[3](Arg3: u256)
14Call ss_compute_d(u256, u256, u256): u256
15MoveLoc[4](loc0: u256)
16Ge
17BrFalse(19)
B1:
18Branch(21)
B2:
19LdConst[18](u64: 134006)
20Abort
B3:
21MoveLoc[5](loc1: u256)
22Ret
}
ss_swap_to_internal(Arg0: u256, Arg1: u256, Arg2: u256, Arg3: u256): u256 * u256 {
L4: loc0: u256
L5: loc1: u256
B0:
0CopyLoc[1](Arg1: u256)
1CopyLoc[2](Arg2: u256)
2CopyLoc[3](Arg3: u256)
3Call ss_compute_d(u256, u256, u256): u256
4StLoc[4](loc0: u256)
5MoveLoc[1](Arg1: u256)
6MoveLoc[0](Arg0: u256)
7Add
8CopyLoc[4](loc0: u256)
9MoveLoc[3](Arg3: u256)
10Call ss_compute_y(u256, u256, u256): u256
11StLoc[5](loc1: u256)
12MoveLoc[2](Arg2: u256)
13MoveLoc[5](loc1: u256)
14Sub
15LdU256(1)
16Sub
17MoveLoc[4](loc0: u256)
18Ret
}
ss_compute_mint_amount_for_deposit(Arg0: u256, Arg1: u256, Arg2: u256, Arg3: u256, Arg4: u256, Arg5: u256): u256 {
L6: loc0: u256
L7: loc1: u256
L8: loc2: u256
L9: loc3: u256
L10: loc4: u256
L11: loc5: u256
B0:
0CopyLoc[2](Arg2: u256)
1CopyLoc[3](Arg3: u256)
2CopyLoc[5](Arg5: u256)
3Call ss_compute_d(u256, u256, u256): u256
4StLoc[8](loc2: u256)
5MoveLoc[2](Arg2: u256)
6MoveLoc[0](Arg0: u256)
7Add
8StLoc[10](loc4: u256)
9MoveLoc[3](Arg3: u256)
10MoveLoc[1](Arg1: u256)
11Add
12StLoc[11](loc5: u256)
13MoveLoc[10](loc4: u256)
14MoveLoc[11](loc5: u256)
15MoveLoc[5](Arg5: u256)
16Call ss_compute_d(u256, u256, u256): u256
17StLoc[9](loc3: u256)
18CopyLoc[9](loc3: u256)
19CopyLoc[8](loc2: u256)
20Le
21BrFalse(25)
B1:
22LdU256(0)
23StLoc[6](loc0: u256)
24Branch(42)
B2:
25CopyLoc[4](Arg4: u256)
26CopyLoc[9](loc3: u256)
27CopyLoc[8](loc2: u256)
28Sub
29Mul
30CopyLoc[8](loc2: u256)
31Div
32StLoc[7](loc1: u256)
33MoveLoc[8](loc2: u256)
34MoveLoc[9](loc3: u256)
35CopyLoc[4](Arg4: u256)
36MoveLoc[4](Arg4: u256)
37CopyLoc[7](loc1: u256)
38Add
39Call ss_validate_lsp_value_increase(u256, u256, u256, u256)
40MoveLoc[7](loc1: u256)
41StLoc[6](loc0: u256)
B3:
42MoveLoc[6](loc0: u256)
43Ret
}
ss_compute_withdraw_one(Arg0: u256, Arg1: u256, Arg2: u256, Arg3: u256, Arg4: u256): u256 {
L5: loc0: u256
L6: loc1: u256
L7: loc2: u256
L8: loc3: u256
B0:
0CopyLoc[2](Arg2: u256)
1CopyLoc[3](Arg3: u256)
2CopyLoc[4](Arg4: u256)
3Call ss_compute_d(u256, u256, u256): u256
4StLoc[5](loc0: u256)
5CopyLoc[5](loc0: u256)
6CopyLoc[0](Arg0: u256)
7CopyLoc[5](loc0: u256)
8Mul
9CopyLoc[1](Arg1: u256)
10Div
11Sub
12StLoc[6](loc1: u256)
13MoveLoc[3](Arg3: u256)
14CopyLoc[6](loc1: u256)
15MoveLoc[4](Arg4: u256)
16Call ss_compute_y(u256, u256, u256): u256
17StLoc[8](loc3: u256)
18MoveLoc[2](Arg2: u256)
19MoveLoc[8](loc3: u256)
20LdU256(1)
21Add
22Sub
23StLoc[7](loc2: u256)
24MoveLoc[5](loc0: u256)
25MoveLoc[6](loc1: u256)
26CopyLoc[1](Arg1: u256)
27MoveLoc[1](Arg1: u256)
28MoveLoc[0](Arg0: u256)
29Sub
30Call ss_validate_lsp_value_increase(u256, u256, u256, u256)
31MoveLoc[7](loc2: u256)
32Ret
}
ss_compute_withdraw(Arg0: u256, Arg1: u256, Arg2: u256, Arg3: u256, Arg4: u256): u256 * u256 {
L5: loc0: u256
L6: loc1: u256
L7: loc2: u256
L8: loc3: u256
L9: loc4: u256
L10: loc5: u256
B0:
0CopyLoc[2](Arg2: u256)
1CopyLoc[3](Arg3: u256)
2CopyLoc[4](Arg4: u256)
3Call ss_compute_d(u256, u256, u256): u256
4StLoc[5](loc0: u256)
5CopyLoc[0](Arg0: u256)
6CopyLoc[2](Arg2: u256)
7Mul
8CopyLoc[1](Arg1: u256)
9Div
10StLoc[9](loc4: u256)
11CopyLoc[0](Arg0: u256)
12CopyLoc[3](Arg3: u256)
13Mul
14CopyLoc[1](Arg1: u256)
15Div
16StLoc[10](loc5: u256)
17MoveLoc[2](Arg2: u256)
18CopyLoc[9](loc4: u256)
19Sub
20StLoc[7](loc2: u256)
21MoveLoc[3](Arg3: u256)
22CopyLoc[10](loc5: u256)
23Sub
24StLoc[8](loc3: u256)
25MoveLoc[7](loc2: u256)
26MoveLoc[8](loc3: u256)
27MoveLoc[4](Arg4: u256)
28Call ss_compute_d(u256, u256, u256): u256
29StLoc[6](loc1: u256)
30MoveLoc[5](loc0: u256)
31MoveLoc[6](loc1: u256)
32CopyLoc[1](Arg1: u256)
33MoveLoc[1](Arg1: u256)
34MoveLoc[0](Arg0: u256)
35Sub
36Call ss_validate_lsp_value_increase(u256, u256, u256, u256)
37MoveLoc[9](loc4: u256)
38MoveLoc[10](loc5: u256)
39Ret
}
ss_check_lsp_value_increase(Arg0: u256, Arg1: u256, Arg2: u256, Arg3: u256): bool {
B0:
0MoveLoc[1](Arg1: u256)
1MoveLoc[3](Arg3: u256)
2Div
3MoveLoc[0](Arg0: u256)
4MoveLoc[2](Arg2: u256)
5Div
6Ge
7Ret
}
ss_validate_lsp_value_increase(Arg0: u256, Arg1: u256, Arg2: u256, Arg3: u256) {
B0:
0MoveLoc[0](Arg0: u256)
1MoveLoc[1](Arg1: u256)
2MoveLoc[2](Arg2: u256)
3MoveLoc[3](Arg3: u256)
4Call ss_check_lsp_value_increase(u256, u256, u256, u256): bool
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[18](u64: 134006)
8Abort
B3:
9Ret
}
abs_sub(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
B0:
0CopyLoc[0](Arg0: u256)
1CopyLoc[1](Arg1: u256)
2Lt
3BrFalse(9)
B1:
4MoveLoc[1](Arg1: u256)
5MoveLoc[0](Arg0: u256)
6Sub
7StLoc[2](loc0: u256)
8Branch(13)
B2:
9MoveLoc[0](Arg0: u256)
10MoveLoc[1](Arg1: u256)
11Sub
12StLoc[2](loc0: u256)
B3:
13MoveLoc[2](loc0: u256)
14Ret
}
init_impl(Arg0: &mut TxContext) {
B0:
0CopyLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2Call option::none<ID>(): Option<ID>
3Pack[6](SwapCap)
4MoveLoc[0](Arg0: &mut TxContext)
5FreezeRef
6Call tx_context::sender(&TxContext): address
7Call transfer::transfer<SwapCap>(SwapCap, address)
8Ret
}
public do_change_owner<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: address, Arg3: &mut TxContext) {
B0:
0MoveLoc[2](Arg2: address)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MutBorrowFieldGeneric[2](Pool.owner: address)
3WriteRef
4Ret
}
public do_create_registry(Arg0: &mut SwapCap, Arg1: u64, Arg2: vector<u64>, Arg3: &mut TxContext) {
L4: loc0: u64
L5: loc1: u64
L6: loc2: u64
L7: loc3: vector<PoolBoostMultiplierData>
L8: loc4: ID
L9: loc5: UID
B0:
0CopyLoc[1](Arg1: u64)
1LdU64(1)
2Ge
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[3](Arg3: &mut TxContext)
6Pop
7MoveLoc[0](Arg0: &mut SwapCap)
8Pop
9LdConst[12](u64: 13400)
10Abort
B3:
11CopyLoc[0](Arg0: &mut SwapCap)
12ImmBorrowField[75](SwapCap.registry_id: Option<ID>)
13Call option::is_none<ID>(&Option<ID>): bool
14BrFalse(16)
B4:
15Branch(22)
B5:
16MoveLoc[3](Arg3: &mut TxContext)
17Pop
18MoveLoc[0](Arg0: &mut SwapCap)
19Pop
20LdConst[33](u64: 134021)
21Abort
B6:
22VecPack(13, 0)
23StLoc[7](loc3: vector<PoolBoostMultiplierData>)
24LdU64(0)
25StLoc[6](loc2: u64)
B7:
26CopyLoc[6](loc2: u64)
27ImmBorrowLoc[2](Arg2: vector<u64>)
28VecLen(3)
29Lt
30BrFalse(54)
B8:
31Branch(32)
B9:
32ImmBorrowLoc[2](Arg2: vector<u64>)
33CopyLoc[6](loc2: u64)
34VecImmBorrow(3)
35ReadRef
36StLoc[5](loc1: u64)
37ImmBorrowLoc[2](Arg2: vector<u64>)
38CopyLoc[6](loc2: u64)
39LdU64(1)
40Add
41VecImmBorrow(3)
42ReadRef
43StLoc[4](loc0: u64)
44MutBorrowLoc[7](loc3: vector<PoolBoostMultiplierData>)
45MoveLoc[5](loc1: u64)
46MoveLoc[4](loc0: u64)
47Pack[11](PoolBoostMultiplierData)
48VecPushBack(13)
49MoveLoc[6](loc2: u64)
50LdU64(2)
51Add
52StLoc[6](loc2: u64)
53Branch(26)
B10:
54MoveLoc[3](Arg3: &mut TxContext)
55Call object::new(&mut TxContext): UID
56StLoc[9](loc5: UID)
57ImmBorrowLoc[9](loc5: UID)
58Call object::uid_to_inner(&UID): ID
59StLoc[8](loc4: ID)
60MoveLoc[0](Arg0: &mut SwapCap)
61MutBorrowField[75](SwapCap.registry_id: Option<ID>)
62MoveLoc[8](loc4: ID)
63Call option::fill<ID>(&mut Option<ID>, ID)
64MoveLoc[9](loc5: UID)
65LdConst[0](u64: 0)
66LdU64(0)
67LdTrue
68LdConst[7](u8: 201)
69LdU64(2)
70LdU64(25)
71LdU64(3)
72LdU64(10)
73Pack[10](PoolNoAdminSetupInfo)
74MoveLoc[1](Arg1: u64)
75MoveLoc[7](loc3: vector<PoolBoostMultiplierData>)
76Pack[12](PoolRegistry)
77Call transfer::share_object<PoolRegistry>(PoolRegistry)
78Ret
}
public do_create_pool<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut PoolRegistry, Arg2: &TokenFarm, Arg3: u8, Arg4: u8, Arg5: u8, Arg6: u64, Arg7: u64, Arg8: u64, Arg9: u64, Arg10: u64, Arg11: u8, Arg12: u8, Arg13: u64, Arg14: u64, Arg15: u8, Arg16: &Clock, Arg17: &mut TxContext) {
B0:
0CopyLoc[1](Arg1: &mut PoolRegistry)
1ImmBorrowField[76](PoolRegistry.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(17)
B2:
7MoveLoc[1](Arg1: &mut PoolRegistry)
8Pop
9MoveLoc[2](Arg2: &TokenFarm)
10Pop
11MoveLoc[17](Arg17: &mut TxContext)
12Pop
13MoveLoc[16](Arg16: &Clock)
14Pop
15LdConst[36](u64: 200000)
16Abort
B3:
17MoveLoc[1](Arg1: &mut PoolRegistry)
18MoveLoc[2](Arg2: &TokenFarm)
19MoveLoc[3](Arg3: u8)
20MoveLoc[4](Arg4: u8)
21MoveLoc[5](Arg5: u8)
22MoveLoc[6](Arg6: u64)
23MoveLoc[7](Arg7: u64)
24MoveLoc[8](Arg8: u64)
25MoveLoc[9](Arg9: u64)
26MoveLoc[10](Arg10: u64)
27MoveLoc[11](Arg11: u8)
28MoveLoc[12](Arg12: u8)
29MoveLoc[13](Arg13: u64)
30MoveLoc[14](Arg14: u64)
31MoveLoc[15](Arg15: u8)
32MoveLoc[16](Arg16: &Clock)
33MoveLoc[17](Arg17: &mut TxContext)
34Call create_pool_impl<Ty0, Ty1>(&mut PoolRegistry, &TokenFarm, u8, u8, u8, u64, u64, u64, u64, u64, u8, u8, u64, u64, u8, &Clock, &mut TxContext)
35Ret
}
public do_change_fee<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: &mut TxContext) {
L6: loc0: u64
L7: loc1: u64
L8: loc2: u64
L9: loc3: u64
L10: loc4: u64
L11: loc5: u64
B0:
0CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
8Pop
9LdConst[36](u64: 200000)
10Abort
B3:
11CopyLoc[2](Arg2: u64)
12LdConst[40](u64: 1844..)
13Eq
14BrFalse(21)
B4:
15CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
16ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
17ImmBorrowField[20](PoolFeeInfo.admin: u64)
18ReadRef
19StLoc[6](loc0: u64)
20Branch(23)
B5:
21MoveLoc[2](Arg2: u64)
22StLoc[6](loc0: u64)
B6:
23MoveLoc[6](loc0: u64)
24StLoc[9](loc3: u64)
25CopyLoc[3](Arg3: u64)
26LdConst[40](u64: 1844..)
27Eq
28BrFalse(35)
B7:
29CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
30ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
31ImmBorrowField[21](PoolFeeInfo.lp: u64)
32ReadRef
33StLoc[7](loc1: u64)
34Branch(37)
B8:
35MoveLoc[3](Arg3: u64)
36StLoc[7](loc1: u64)
B9:
37MoveLoc[7](loc1: u64)
38StLoc[10](loc4: u64)
39CopyLoc[4](Arg4: u64)
40LdConst[40](u64: 1844..)
41Eq
42BrFalse(49)
B10:
43CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
44ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
45ImmBorrowField[22](PoolFeeInfo.th: u64)
46ReadRef
47StLoc[8](loc2: u64)
48Branch(51)
B11:
49MoveLoc[4](Arg4: u64)
50StLoc[8](loc2: u64)
B12:
51MoveLoc[8](loc2: u64)
52StLoc[11](loc5: u64)
53CopyLoc[10](loc4: u64)
54CopyLoc[9](loc3: u64)
55Add
56CopyLoc[11](loc5: u64)
57Add
58LdConst[38](u64: 10000)
59Lt
60BrFalse(62)
B13:
61Branch(66)
B14:
62MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
63Pop
64LdConst[13](u64: 134001)
65Abort
B15:
66MoveLoc[10](loc4: u64)
67CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
68MutBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
69MutBorrowField[21](PoolFeeInfo.lp: u64)
70WriteRef
71MoveLoc[9](loc3: u64)
72CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
73MutBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
74MutBorrowField[20](PoolFeeInfo.admin: u64)
75WriteRef
76MoveLoc[11](loc5: u64)
77MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
78MutBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
79MutBorrowField[22](PoolFeeInfo.th: u64)
80WriteRef
81Ret
}
public do_change_basis<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: u64, Arg4: &mut TxContext) {
B0:
0CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
8Pop
9LdConst[36](u64: 200000)
10Abort
B3:
11MoveLoc[2](Arg2: u64)
12CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
13MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
14MutBorrowFieldGeneric[35](PoolBalanceInfo.bx: u64)
15WriteRef
16MoveLoc[3](Arg3: u64)
17MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
18MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
19MutBorrowFieldGeneric[36](PoolBalanceInfo.by: u64)
20WriteRef
21Ret
}
public do_set_pool_freeze<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u8) {
B0:
0CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
8Pop
9LdConst[36](u64: 200000)
10Abort
B3:
11MoveLoc[2](Arg2: u8)
12MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
13MutBorrowFieldGeneric[5](Pool.freeze: u8)
14WriteRef
15Ret
}
public do_redeem_admin_balance<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: u64, Arg4: &mut TxContext) {
L5: loc0: address
L6: loc1: u64
L7: loc2: u64
B0:
0CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
8Pop
9MoveLoc[4](Arg4: &mut TxContext)
10Pop
11LdConst[36](u64: 200000)
12Abort
B3:
13CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
14ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
15ImmBorrowFieldGeneric[13](PoolBalanceInfo.x_admin: Balance<Ty0>)
16Call balance::value<Ty0>(&Balance<Ty0>): u64
17MoveLoc[2](Arg2: u64)
18Call math::min(u64, u64): u64
19StLoc[6](loc1: u64)
20CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
21ImmBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
22ImmBorrowFieldGeneric[14](PoolBalanceInfo.y_admin: Balance<Ty1>)
23Call balance::value<Ty1>(&Balance<Ty1>): u64
24MoveLoc[3](Arg3: u64)
25Call math::min(u64, u64): u64
26StLoc[7](loc2: u64)
27CopyLoc[4](Arg4: &mut TxContext)
28FreezeRef
29Call tx_context::sender(&TxContext): address
30StLoc[5](loc0: address)
31CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
32MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
33MutBorrowFieldGeneric[13](PoolBalanceInfo.x_admin: Balance<Ty0>)
34MoveLoc[6](loc1: u64)
35Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
36CopyLoc[4](Arg4: &mut TxContext)
37Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
38CopyLoc[5](loc0: address)
39Call transfer::public_transfer<Coin<Ty0>>(Coin<Ty0>, address)
40MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
41MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
42MutBorrowFieldGeneric[14](PoolBalanceInfo.y_admin: Balance<Ty1>)
43MoveLoc[7](loc2: u64)
44Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
45MoveLoc[4](Arg4: &mut TxContext)
46Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
47MoveLoc[5](loc0: address)
48Call transfer::public_transfer<Coin<Ty1>>(Coin<Ty1>, address)
49Ret
}
public do_change_pool_mining_speed<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &TokenCap, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64) {
L4: loc0: Permission<TokenBank>
B0:
0CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[1](Arg1: &TokenCap)
8Pop
9MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
10Pop
11LdConst[36](u64: 200000)
12Abort
B3:
13MoveLoc[3](Arg3: u64)
14CastU256
15CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
16MutBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
17MutBorrowField[55](PoolLiquidityMiningInfo.speed: u256)
18WriteRef
19CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
20ImmBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
21ImmBorrowField[54](PoolLiquidityMiningInfo.permission: Option<Permission<TokenBank>>)
22Call option::is_none<Permission<TokenBank>>(&Option<Permission<TokenBank>>): bool
23BrFalse(33)
B4:
24MoveLoc[1](Arg1: &TokenCap)
25Call TOKEN::token_cap_cp_token_bank_permission(&TokenCap): Permission<TokenBank>
26StLoc[4](loc0: Permission<TokenBank>)
27MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
28MutBorrowFieldGeneric[29](Pool.mining: PoolLiquidityMiningInfo)
29MutBorrowField[54](PoolLiquidityMiningInfo.permission: Option<Permission<TokenBank>>)
30MoveLoc[4](loc0: Permission<TokenBank>)
31Call option::fill<Permission<TokenBank>>(&mut Option<Permission<TokenBank>>, Permission<TokenBank>)
32Branch(37)
B5:
33MoveLoc[1](Arg1: &TokenCap)
34Pop
35MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
36Pop
B6:
37Ret
}
public do_create_pool_no_admin<Ty0, Ty1>(Arg0: &mut PoolRegistry, Arg1: &TokenFarm, Arg2: &Clock, Arg3: &mut TxContext) {
L4: loc0: &PoolNoAdminSetupInfo
B0:
0CopyLoc[0](Arg0: &mut PoolRegistry)
1ImmBorrowField[76](PoolRegistry.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(17)
B2:
7MoveLoc[0](Arg0: &mut PoolRegistry)
8Pop
9MoveLoc[1](Arg1: &TokenFarm)
10Pop
11MoveLoc[3](Arg3: &mut TxContext)
12Pop
13MoveLoc[2](Arg2: &Clock)
14Pop
15LdConst[36](u64: 200000)
16Abort
B3:
17CopyLoc[0](Arg0: &mut PoolRegistry)
18ImmBorrowField[3](PoolRegistry.pool_no_admin: PoolNoAdminSetupInfo)
19StLoc[4](loc0: &PoolNoAdminSetupInfo)
20MoveLoc[0](Arg0: &mut PoolRegistry)
21MoveLoc[1](Arg1: &TokenFarm)
22LdConst[4](u8: 100)
23LdConst[10](u8: 210)
24CopyLoc[4](loc0: &PoolNoAdminSetupInfo)
25ImmBorrowField[5](PoolNoAdminSetupInfo.fee_direction: u8)
26ReadRef
27CopyLoc[4](loc0: &PoolNoAdminSetupInfo)
28ImmBorrowField[6](PoolNoAdminSetupInfo.admin_fee: u64)
29ReadRef
30CopyLoc[4](loc0: &PoolNoAdminSetupInfo)
31ImmBorrowField[7](PoolNoAdminSetupInfo.lp_fee: u64)
32ReadRef
33CopyLoc[4](loc0: &PoolNoAdminSetupInfo)
34ImmBorrowField[8](PoolNoAdminSetupInfo.th_fee: u64)
35ReadRef
36MoveLoc[4](loc0: &PoolNoAdminSetupInfo)
37ImmBorrowField[9](PoolNoAdminSetupInfo.withdraw_fee: u64)
38ReadRef
39LdU64(0)
40LdU8(0)
41LdU8(0)
42LdU64(0)
43LdU64(0)
44LdU8(0)
45MoveLoc[2](Arg2: &Clock)
46MoveLoc[3](Arg3: &mut TxContext)
47Call create_pool_impl<Ty0, Ty1>(&mut PoolRegistry, &TokenFarm, u8, u8, u8, u64, u64, u64, u64, u64, u8, u8, u64, u64, u8, &Clock, &mut TxContext)
48Ret
}
public do_swap_x_to_y<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: u64, Arg3: u64, Arg4: &Clock, Arg5: &mut TxContext) {
L6: loc0: Coin<Ty0>
L7: loc1: Coin<Ty1>
L8: loc2: address
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[4](Arg4: &Clock)
4CopyLoc[5](Arg5: &mut TxContext)
5Call do_swap_x_to_y_direct<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, u64, &Clock, &mut TxContext): Coin<Ty0> * Coin<Ty1>
6StLoc[7](loc1: Coin<Ty1>)
7StLoc[6](loc0: Coin<Ty0>)
8ImmBorrowLoc[7](loc1: Coin<Ty1>)
9Call coin::value<Ty1>(&Coin<Ty1>): u64
10MoveLoc[3](Arg3: u64)
11Ge
12BrFalse(14)
B1:
13Branch(18)
B2:
14MoveLoc[5](Arg5: &mut TxContext)
15Pop
16LdConst[23](u64: 134011)
17Abort
B3:
18MoveLoc[5](Arg5: &mut TxContext)
19FreezeRef
20Call tx_context::sender(&TxContext): address
21StLoc[8](loc2: address)
22MoveLoc[6](loc0: Coin<Ty0>)
23CopyLoc[8](loc2: address)
24Call utils::transfer_or_destroy_zero<Ty0>(Coin<Ty0>, address)
25MoveLoc[7](loc1: Coin<Ty1>)
26MoveLoc[8](loc2: address)
27Call utils::transfer_or_destroy_zero<Ty1>(Coin<Ty1>, address)
28Ret
}
public do_swap_x_to_y_direct<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: u64, Arg3: &Clock, Arg4: &mut TxContext): Coin<Ty0> * Coin<Ty1> {
L5: loc0: bool
L6: loc1: Balance<Ty0>
L7: loc2: Coin<Ty0>
L8: loc3: Coin<Ty1>
L9: loc4: Balance<Ty0>
L10: loc5: Balance<Ty0>
L11: loc6: u64
L12: loc7: Balance<Ty1>
L13: loc8: u64
L14: loc9: u64
L15: loc10: u64
L16: loc11: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(15)
B2:
7MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8Pop
9MoveLoc[4](Arg4: &mut TxContext)
10Pop
11MoveLoc[3](Arg3: &Clock)
12Pop
13LdConst[36](u64: 200000)
14Abort
B3:
15CopyLoc[2](Arg2: u64)
16LdU64(0)
17Gt
18BrFalse(22)
B4:
19LdTrue
20StLoc[5](loc0: bool)
21Branch(27)
B5:
22ImmBorrowLoc[1](Arg1: vector<Coin<Ty0>>)
23VecLen(92)
24LdU64(0)
25Eq
26StLoc[5](loc0: bool)
B6:
27MoveLoc[5](loc0: bool)
28BrFalse(30)
B7:
29Branch(38)
B8:
30MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
31Pop
32MoveLoc[4](Arg4: &mut TxContext)
33Pop
34MoveLoc[3](Arg3: &Clock)
35Pop
36LdConst[12](u64: 13400)
37Abort
B9:
38CopyLoc[4](Arg4: &mut TxContext)
39FreezeRef
40Call tx_context::sender(&TxContext): address
41CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
42ImmBorrowFieldGeneric[2](Pool.owner: address)
43ReadRef
44Neq
45BrFalse(63)
B10:
46CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
47ImmBorrowFieldGeneric[5](Pool.freeze: u8)
48ReadRef
49LdConst[3](u8: 1)
50BitAnd
51LdU8(0)
52Eq
53BrFalse(55)
B11:
54Branch(63)
B12:
55MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
56Pop
57MoveLoc[4](Arg4: &mut TxContext)
58Pop
59MoveLoc[3](Arg3: &Clock)
60Pop
61LdConst[22](u64: 134010)
62Abort
B13:
63MoveLoc[1](Arg1: vector<Coin<Ty0>>)
64CopyLoc[4](Arg4: &mut TxContext)
65Call utils::merge_coins<Ty0>(vector<Coin<Ty0>>, &mut TxContext): Coin<Ty0>
66Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
67StLoc[6](loc1: Balance<Ty0>)
68ImmBorrowLoc[6](loc1: Balance<Ty0>)
69Call balance::value<Ty0>(&Balance<Ty0>): u64
70CopyLoc[2](Arg2: u64)
71Ge
72BrFalse(74)
B14:
73Branch(82)
B15:
74MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
75Pop
76MoveLoc[4](Arg4: &mut TxContext)
77Pop
78MoveLoc[3](Arg3: &Clock)
79Pop
80LdConst[20](u64: 134008)
81Abort
B16:
82MutBorrowLoc[6](loc1: Balance<Ty0>)
83CopyLoc[2](Arg2: u64)
84Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
85StLoc[10](loc5: Balance<Ty0>)
86CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
87MutBorrowLoc[10](loc5: Balance<Ty0>)
88Call collect_admin_and_th_fee_x<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut Balance<Ty0>)
89MutBorrowLoc[10](loc5: Balance<Ty0>)
90CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
91ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
92ImmBorrowField[21](PoolFeeInfo.lp: u64)
93ReadRef
94Call collect_fee<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
95StLoc[9](loc4: Balance<Ty0>)
96CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
97MoveLoc[10](loc5: Balance<Ty0>)
98Call swap_x_to_y_direct_no_fee_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, Balance<Ty0>): Balance<Ty1>
99StLoc[12](loc7: Balance<Ty1>)
100ImmBorrowLoc[12](loc7: Balance<Ty1>)
101Call balance::value<Ty1>(&Balance<Ty1>): u64
102StLoc[11](loc6: u64)
103CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
104MutBorrowLoc[12](loc7: Balance<Ty1>)
105Call collect_admin_and_th_fee_y<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut Balance<Ty1>)
106CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
107MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
108MutBorrowFieldGeneric[11](PoolBalanceInfo.x: Balance<Ty0>)
109MoveLoc[9](loc4: Balance<Ty0>)
110Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
111Pop
112CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
113Call process_auto_buyback<Ty0, Ty1>(&mut Pool<Ty0, Ty1>)
114CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
115CopyLoc[3](Arg3: &Clock)
116Call update_pool_mining<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &Clock)
117MoveLoc[6](loc1: Balance<Ty0>)
118CopyLoc[4](Arg4: &mut TxContext)
119Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
120StLoc[7](loc2: Coin<Ty0>)
121MoveLoc[12](loc7: Balance<Ty1>)
122MoveLoc[4](Arg4: &mut TxContext)
123Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
124StLoc[8](loc3: Coin<Ty1>)
125CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
126ImmBorrowFieldGeneric[1](Pool.index: u64)
127ReadRef
128LdTrue
129CopyLoc[2](Arg2: u64)
130ImmBorrowLoc[8](loc3: Coin<Ty1>)
131Call coin::value<Ty1>(&Coin<Ty1>): u64
132PackGeneric[7](SwapTokenEvent<Ty0, Ty1>)
133Call event::emit<SwapTokenEvent<Ty0, Ty1>>(SwapTokenEvent<Ty0, Ty1>)
134MoveLoc[3](Arg3: &Clock)
135Call utils::get_epoch(&Clock): u64
136StLoc[16](loc11: u64)
137CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
138ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
139ImmBorrowField[36](PoolTotalTradeInfo.x: u128)
140ReadRef
141CopyLoc[2](Arg2: u64)
142CastU128
143Add
144CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
145MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
146MutBorrowField[36](PoolTotalTradeInfo.x: u128)
147WriteRef
148CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
149ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
150ImmBorrowField[37](PoolTotalTradeInfo.y: u128)
151ReadRef
152CopyLoc[11](loc6: u64)
153CastU128
154Add
155CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
156MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
157MutBorrowField[37](PoolTotalTradeInfo.y: u128)
158WriteRef
159CopyLoc[16](loc11: u64)
160CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
161ImmBorrowFieldGeneric[6](Pool.trade_epoch: u64)
162ReadRef
163Neq
164BrFalse(212)
B17:
165CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
166ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
167ImmBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
168ReadRef
169CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
170MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
171MutBorrowField[38](PoolTotalTradeInfo.x_last_epoch: u128)
172WriteRef
173CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
174ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
175ImmBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
176ReadRef
177CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
178MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
179MutBorrowField[39](PoolTotalTradeInfo.y_last_epoch: u128)
180WriteRef
181MoveLoc[2](Arg2: u64)
182CastU128
183CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
184MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
185MutBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
186WriteRef
187MoveLoc[11](loc6: u64)
188CastU128
189CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
190MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
191MutBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
192WriteRef
193MoveLoc[16](loc11: u64)
194CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
195MutBorrowFieldGeneric[6](Pool.trade_epoch: u64)
196WriteRef
197CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
198FreezeRef
199Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
200StLoc[13](loc8: u64)
201StLoc[15](loc10: u64)
202StLoc[14](loc9: u64)
203MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
204ImmBorrowFieldGeneric[1](Pool.index: u64)
205ReadRef
206MoveLoc[14](loc9: u64)
207MoveLoc[15](loc10: u64)
208MoveLoc[13](loc8: u64)
209PackGeneric[8](SnapshotEvent<Ty0, Ty1>)
210Call event::emit<SnapshotEvent<Ty0, Ty1>>(SnapshotEvent<Ty0, Ty1>)
211Branch(234)
B18:
212CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
213ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
214ImmBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
215ReadRef
216MoveLoc[2](Arg2: u64)
217CastU128
218Add
219CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
220MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
221MutBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
222WriteRef
223CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
224ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
225ImmBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
226ReadRef
227MoveLoc[11](loc6: u64)
228CastU128
229Add
230MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
231MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
232MutBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
233WriteRef
B19:
234MoveLoc[7](loc2: Coin<Ty0>)
235MoveLoc[8](loc3: Coin<Ty1>)
236Ret
}
public do_swap_y_to_x<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty1>>, Arg2: u64, Arg3: u64, Arg4: &Clock, Arg5: &mut TxContext) {
L6: loc0: Coin<Ty0>
L7: loc1: Coin<Ty1>
L8: loc2: address
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty1>>)
2MoveLoc[2](Arg2: u64)
3MoveLoc[4](Arg4: &Clock)
4CopyLoc[5](Arg5: &mut TxContext)
5Call do_swap_y_to_x_direct<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty1>>, u64, &Clock, &mut TxContext): Coin<Ty1> * Coin<Ty0>
6StLoc[6](loc0: Coin<Ty0>)
7StLoc[7](loc1: Coin<Ty1>)
8ImmBorrowLoc[6](loc0: Coin<Ty0>)
9Call coin::value<Ty0>(&Coin<Ty0>): u64
10MoveLoc[3](Arg3: u64)
11Ge
12BrFalse(14)
B1:
13Branch(18)
B2:
14MoveLoc[5](Arg5: &mut TxContext)
15Pop
16LdConst[23](u64: 134011)
17Abort
B3:
18MoveLoc[5](Arg5: &mut TxContext)
19FreezeRef
20Call tx_context::sender(&TxContext): address
21StLoc[8](loc2: address)
22MoveLoc[7](loc1: Coin<Ty1>)
23CopyLoc[8](loc2: address)
24Call utils::transfer_or_destroy_zero<Ty1>(Coin<Ty1>, address)
25MoveLoc[6](loc0: Coin<Ty0>)
26MoveLoc[8](loc2: address)
27Call utils::transfer_or_destroy_zero<Ty0>(Coin<Ty0>, address)
28Ret
}
public do_swap_y_to_x_direct<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty1>>, Arg2: u64, Arg3: &Clock, Arg4: &mut TxContext): Coin<Ty1> * Coin<Ty0> {
L5: loc0: bool
L6: loc1: Balance<Ty1>
L7: loc2: Coin<Ty0>
L8: loc3: Coin<Ty1>
L9: loc4: Balance<Ty1>
L10: loc5: Balance<Ty1>
L11: loc6: u64
L12: loc7: Balance<Ty0>
L13: loc8: u64
L14: loc9: u64
L15: loc10: u64
L16: loc11: u64
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1ImmBorrowFieldGeneric[37](Pool.version: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(7)
B1:
6Branch(15)
B2:
7MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8Pop
9MoveLoc[4](Arg4: &mut TxContext)
10Pop
11MoveLoc[3](Arg3: &Clock)
12Pop
13LdConst[36](u64: 200000)
14Abort
B3:
15CopyLoc[2](Arg2: u64)
16LdU64(0)
17Gt
18BrFalse(22)
B4:
19LdTrue
20StLoc[5](loc0: bool)
21Branch(27)
B5:
22ImmBorrowLoc[1](Arg1: vector<Coin<Ty1>>)
23VecLen(96)
24LdU64(0)
25Eq
26StLoc[5](loc0: bool)
B6:
27MoveLoc[5](loc0: bool)
28BrFalse(30)
B7:
29Branch(38)
B8:
30MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
31Pop
32MoveLoc[4](Arg4: &mut TxContext)
33Pop
34MoveLoc[3](Arg3: &Clock)
35Pop
36LdConst[12](u64: 13400)
37Abort
B9:
38CopyLoc[4](Arg4: &mut TxContext)
39FreezeRef
40Call tx_context::sender(&TxContext): address
41CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
42ImmBorrowFieldGeneric[2](Pool.owner: address)
43ReadRef
44Neq
45BrFalse(63)
B10:
46CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
47ImmBorrowFieldGeneric[5](Pool.freeze: u8)
48ReadRef
49LdConst[3](u8: 1)
50BitAnd
51LdU8(0)
52Eq
53BrFalse(55)
B11:
54Branch(63)
B12:
55MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
56Pop
57MoveLoc[4](Arg4: &mut TxContext)
58Pop
59MoveLoc[3](Arg3: &Clock)
60Pop
61LdConst[22](u64: 134010)
62Abort
B13:
63MoveLoc[1](Arg1: vector<Coin<Ty1>>)
64CopyLoc[4](Arg4: &mut TxContext)
65Call utils::merge_coins<Ty1>(vector<Coin<Ty1>>, &mut TxContext): Coin<Ty1>
66Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
67StLoc[6](loc1: Balance<Ty1>)
68ImmBorrowLoc[6](loc1: Balance<Ty1>)
69Call balance::value<Ty1>(&Balance<Ty1>): u64
70CopyLoc[2](Arg2: u64)
71Ge
72BrFalse(74)
B14:
73Branch(82)
B15:
74MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
75Pop
76MoveLoc[4](Arg4: &mut TxContext)
77Pop
78MoveLoc[3](Arg3: &Clock)
79Pop
80LdConst[20](u64: 134008)
81Abort
B16:
82MutBorrowLoc[6](loc1: Balance<Ty1>)
83CopyLoc[2](Arg2: u64)
84Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
85StLoc[10](loc5: Balance<Ty1>)
86CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
87MutBorrowLoc[10](loc5: Balance<Ty1>)
88Call collect_admin_and_th_fee_y<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut Balance<Ty1>)
89MutBorrowLoc[10](loc5: Balance<Ty1>)
90CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
91ImmBorrowFieldGeneric[8](Pool.fee: PoolFeeInfo)
92ImmBorrowField[21](PoolFeeInfo.lp: u64)
93ReadRef
94Call collect_fee<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
95StLoc[9](loc4: Balance<Ty1>)
96CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
97MoveLoc[10](loc5: Balance<Ty1>)
98Call swap_y_to_x_direct_no_fee_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, Balance<Ty1>): Balance<Ty0>
99StLoc[12](loc7: Balance<Ty0>)
100ImmBorrowLoc[12](loc7: Balance<Ty0>)
101Call balance::value<Ty0>(&Balance<Ty0>): u64
102StLoc[11](loc6: u64)
103CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
104MutBorrowLoc[12](loc7: Balance<Ty0>)
105Call collect_admin_and_th_fee_x<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut Balance<Ty0>)
106CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
107MutBorrowFieldGeneric[10](Pool.balance: PoolBalanceInfo<Ty0, Ty1>)
108MutBorrowFieldGeneric[12](PoolBalanceInfo.y: Balance<Ty1>)
109MoveLoc[9](loc4: Balance<Ty1>)
110Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
111Pop
112CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
113Call process_auto_buyback<Ty0, Ty1>(&mut Pool<Ty0, Ty1>)
114CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
115CopyLoc[3](Arg3: &Clock)
116Call update_pool_mining<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &Clock)
117MoveLoc[6](loc1: Balance<Ty1>)
118CopyLoc[4](Arg4: &mut TxContext)
119Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
120StLoc[8](loc3: Coin<Ty1>)
121MoveLoc[12](loc7: Balance<Ty0>)
122MoveLoc[4](Arg4: &mut TxContext)
123Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
124StLoc[7](loc2: Coin<Ty0>)
125CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
126ImmBorrowFieldGeneric[1](Pool.index: u64)
127ReadRef
128LdFalse
129CopyLoc[2](Arg2: u64)
130ImmBorrowLoc[7](loc2: Coin<Ty0>)
131Call coin::value<Ty0>(&Coin<Ty0>): u64
132PackGeneric[7](SwapTokenEvent<Ty0, Ty1>)
133Call event::emit<SwapTokenEvent<Ty0, Ty1>>(SwapTokenEvent<Ty0, Ty1>)
134MoveLoc[3](Arg3: &Clock)
135Call utils::get_epoch(&Clock): u64
136StLoc[16](loc11: u64)
137CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
138ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
139ImmBorrowField[37](PoolTotalTradeInfo.y: u128)
140ReadRef
141CopyLoc[2](Arg2: u64)
142CastU128
143Add
144CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
145MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
146MutBorrowField[37](PoolTotalTradeInfo.y: u128)
147WriteRef
148CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
149ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
150ImmBorrowField[36](PoolTotalTradeInfo.x: u128)
151ReadRef
152CopyLoc[11](loc6: u64)
153CastU128
154Add
155CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
156MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
157MutBorrowField[36](PoolTotalTradeInfo.x: u128)
158WriteRef
159CopyLoc[16](loc11: u64)
160CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
161ImmBorrowFieldGeneric[6](Pool.trade_epoch: u64)
162ReadRef
163Neq
164BrFalse(212)
B17:
165CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
166ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
167ImmBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
168ReadRef
169CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
170MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
171MutBorrowField[39](PoolTotalTradeInfo.y_last_epoch: u128)
172WriteRef
173CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
174ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
175ImmBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
176ReadRef
177CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
178MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
179MutBorrowField[38](PoolTotalTradeInfo.x_last_epoch: u128)
180WriteRef
181MoveLoc[2](Arg2: u64)
182CastU128
183CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
184MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
185MutBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
186WriteRef
187MoveLoc[11](loc6: u64)
188CastU128
189CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
190MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
191MutBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
192WriteRef
193MoveLoc[16](loc11: u64)
194CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
195MutBorrowFieldGeneric[6](Pool.trade_epoch: u64)
196WriteRef
197CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
198FreezeRef
199Call get_amounts<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
200StLoc[13](loc8: u64)
201StLoc[15](loc10: u64)
202StLoc[14](loc9: u64)
203MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
204ImmBorrowFieldGeneric[1](Pool.index: u64)
205ReadRef
206MoveLoc[14](loc9: u64)
207MoveLoc[15](loc10: u64)
208MoveLoc[13](loc8: u64)
209PackGeneric[8](SnapshotEvent<Ty0, Ty1>)
210Call event::emit<SnapshotEvent<Ty0, Ty1>>(SnapshotEvent<Ty0, Ty1>)
211Branch(234)
B18:
212CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
213ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
214ImmBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
215ReadRef
216MoveLoc[2](Arg2: u64)
217CastU128
218Add
219CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
220MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
221MutBorrowField[41](PoolTotalTradeInfo.y_current_epoch: u128)
222WriteRef
223CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
224ImmBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
225ImmBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
226ReadRef
227MoveLoc[11](loc6: u64)
228CastU128
229Add
230MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
231MutBorrowFieldGeneric[17](Pool.total_trade: PoolTotalTradeInfo)
232MutBorrowField[40](PoolTotalTradeInfo.x_current_epoch: u128)
233WriteRef
B19:
234MoveLoc[8](loc3: Coin<Ty1>)
235MoveLoc[7](loc2: Coin<Ty0>)
236Ret
}
public do_add_liquidity<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: vector<Coin<Ty1>>, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: &Clock, Arg7: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: vector<Coin<Ty1>>)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: u64)
5MoveLoc[5](Arg5: u64)
6MoveLoc[6](Arg6: &Clock)
7CopyLoc[7](Arg7: &mut TxContext)
8Call do_add_liquidity_direct<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, vector<Coin<Ty1>>, u64, u64, u64, &Clock, &mut TxContext): PoolLsp<Ty0, Ty1>
9MoveLoc[7](Arg7: &mut TxContext)
10FreezeRef
11Call tx_context::sender(&TxContext): address
12Call transfer::transfer<PoolLsp<Ty0, Ty1>>(PoolLsp<Ty0, Ty1>, address)
13Ret
}
public do_add_liquidity_direct<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<Coin<Ty0>>, Arg2: vector<Coin<Ty1>>, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: &Clock, Arg7: &mut TxContext): PoolLsp<Ty0, Ty1> {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: vector<Coin<Ty0>>)
2MoveLoc[2](Arg2: vector<Coin<Ty1>>)
3MoveLoc[3](Arg3: u64)
4MoveLoc[4](Arg4: u64)
5MoveLoc[5](Arg5: u64)
6LdFalse
7MoveLoc[6](Arg6: &Clock)
8MoveLoc[7](Arg7: &mut TxContext)
9Call add_liquidity_direct_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, vector<Coin<Ty1>>, u64, u64, u64, bool, &Clock, &mut TxContext): PoolLsp<Ty0, Ty1>
10Ret
}
public do_add_liquidity_direct_admin<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: vector<Coin<Ty0>>, Arg3: vector<Coin<Ty1>>, Arg4: u64, Arg5: u64, Arg6: u64, Arg7: &Clock, Arg8: &mut TxContext): PoolLsp<Ty0, Ty1> {
L9: loc0: PoolLsp<Ty0, Ty1>
L10: loc1: u256
B0:
0CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
1FreezeRef
2Call get_k2_per_lsp<Ty0, Ty1>(&Pool<Ty0, Ty1>): u256
3StLoc[10](loc1: u256)
4CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
5MoveLoc[2](Arg2: vector<Coin<Ty0>>)
6MoveLoc[3](Arg3: vector<Coin<Ty1>>)
7MoveLoc[4](Arg4: u64)
8MoveLoc[5](Arg5: u64)
9MoveLoc[6](Arg6: u64)
10LdTrue
11MoveLoc[7](Arg7: &Clock)
12MoveLoc[8](Arg8: &mut TxContext)
13Call add_liquidity_direct_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, vector<Coin<Ty1>>, u64, u64, u64, bool, &Clock, &mut TxContext): PoolLsp<Ty0, Ty1>
14StLoc[9](loc0: PoolLsp<Ty0, Ty1>)
15MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
16FreezeRef
17Call get_k2_per_lsp<Ty0, Ty1>(&Pool<Ty0, Ty1>): u256
18MoveLoc[10](loc1: u256)
19Ge
20BrFalse(22)
B1:
21Branch(24)
B2:
22LdConst[18](u64: 134006)
23Abort
B3:
24MoveLoc[9](loc0: PoolLsp<Ty0, Ty1>)
25Ret
}
public do_add_liquidity_admin<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: vector<Coin<Ty0>>, Arg3: vector<Coin<Ty1>>, Arg4: u64, Arg5: u64, Arg6: u64, Arg7: &Clock, Arg8: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &SwapCap)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MoveLoc[2](Arg2: vector<Coin<Ty0>>)
3MoveLoc[3](Arg3: vector<Coin<Ty1>>)
4MoveLoc[4](Arg4: u64)
5MoveLoc[5](Arg5: u64)
6MoveLoc[6](Arg6: u64)
7MoveLoc[7](Arg7: &Clock)
8CopyLoc[8](Arg8: &mut TxContext)
9Call do_add_liquidity_direct_admin<Ty0, Ty1>(&SwapCap, &mut Pool<Ty0, Ty1>, vector<Coin<Ty0>>, vector<Coin<Ty1>>, u64, u64, u64, &Clock, &mut TxContext): PoolLsp<Ty0, Ty1>
10MoveLoc[8](Arg8: &mut TxContext)
11FreezeRef
12Call tx_context::sender(&TxContext): address
13Call transfer::transfer<PoolLsp<Ty0, Ty1>>(PoolLsp<Ty0, Ty1>, address)
14Ret
}
public do_remove_liquidity_s<Ty0, Ty1>(Arg0: &SwapCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &mut TokenBank, Arg3: PoolLsp<Ty0, Ty1>, Arg4: u64, Arg5: u8, Arg6: &Clock, Arg7: &mut TxContext) {
L8: loc0: u256
B0:
0CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
1FreezeRef
2Call get_k2_per_lsp<Ty0, Ty1>(&Pool<Ty0, Ty1>): u256
3StLoc[8](loc0: u256)
4CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
5MoveLoc[2](Arg2: &mut TokenBank)
6MoveLoc[3](Arg3: PoolLsp<Ty0, Ty1>)
7MoveLoc[4](Arg4: u64)
8MoveLoc[5](Arg5: u8)
9LdTrue
10MoveLoc[6](Arg6: &Clock)
11MoveLoc[7](Arg7: &mut TxContext)
12Call remove_liquidity_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut TokenBank, PoolLsp<Ty0, Ty1>, u64, u8, bool, &Clock, &mut TxContext)
13MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
14FreezeRef
15Call get_k2_per_lsp<Ty0, Ty1>(&Pool<Ty0, Ty1>): u256
16MoveLoc[8](loc0: u256)
17Ge
18BrFalse(20)
B1:
19Branch(22)
B2:
20LdConst[18](u64: 134006)
21Abort
B3:
22Ret
}
public do_remove_liquidity<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut TokenBank, Arg2: PoolLsp<Ty0, Ty1>, Arg3: u64, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: &mut TokenBank)
2MoveLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
3MoveLoc[3](Arg3: u64)
4LdU8(2)
5LdFalse
6MoveLoc[4](Arg4: &Clock)
7MoveLoc[5](Arg5: &mut TxContext)
8Call remove_liquidity_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut TokenBank, PoolLsp<Ty0, Ty1>, u64, u8, bool, &Clock, &mut TxContext)
9Ret
}
public do_remove_liquidity_force<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut TokenBank, Arg2: PoolLsp<Ty0, Ty1>, Arg3: vector<u8>, Arg4: &Clock, Arg5: &mut TxContext) {
L6: loc0: ID
L7: loc1: &mut vector<u8>
L8: loc2: u64
L9: loc3: vector<u8>
L10: loc4: &vector<u8>
L11: loc5: Option<vector<u8>>
B0:
0CopyLoc[1](Arg1: &mut TokenBank)
1FreezeRef
2Call TOKEN::token_bank_get_public_key(&TokenBank): Option<vector<u8>>
3StLoc[11](loc5: Option<vector<u8>>)
4ImmBorrowLoc[11](loc5: Option<vector<u8>>)
5Call option::is_some<vector<u8>>(&Option<vector<u8>>): bool
6BrFalse(8)
B1:
7Branch(18)
B2:
8MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
9Pop
10MoveLoc[5](Arg5: &mut TxContext)
11Pop
12MoveLoc[4](Arg4: &Clock)
13Pop
14MoveLoc[1](Arg1: &mut TokenBank)
15Pop
16LdConst[19](u64: 134007)
17Abort
B3:
18ImmBorrowLoc[11](loc5: Option<vector<u8>>)
19Call option::borrow<vector<u8>>(&Option<vector<u8>>): &vector<u8>
20StLoc[10](loc4: &vector<u8>)
21LdConst[59](vector<u8>: "rem..)
22StLoc[9](loc3: vector<u8>)
23MutBorrowLoc[9](loc3: vector<u8>)
24StLoc[7](loc1: &mut vector<u8>)
25ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
26ImmBorrowFieldGeneric[30](PoolLsp.id: UID)
27Call object::uid_to_inner(&UID): ID
28StLoc[6](loc0: ID)
29MoveLoc[7](loc1: &mut vector<u8>)
30ImmBorrowLoc[6](loc0: ID)
31Call bcs::to_bytes<ID>(&ID): vector<u8>
32Call vector::append<u8>(&mut vector<u8>, vector<u8>)
33ImmBorrowLoc[3](Arg3: vector<u8>)
34MoveLoc[10](loc4: &vector<u8>)
35ImmBorrowLoc[9](loc3: vector<u8>)
36Call ed25519::ed25519_verify(&vector<u8>, &vector<u8>, &vector<u8>): bool
37BrFalse(39)
B4:
38Branch(49)
B5:
39MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
40Pop
41MoveLoc[5](Arg5: &mut TxContext)
42Pop
43MoveLoc[4](Arg4: &Clock)
44Pop
45MoveLoc[1](Arg1: &mut TokenBank)
46Pop
47LdConst[19](u64: 134007)
48Abort
B6:
49ImmBorrowLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
50ImmBorrowFieldGeneric[32](PoolLsp.value: u64)
51ReadRef
52StLoc[8](loc2: u64)
53MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
54MoveLoc[1](Arg1: &mut TokenBank)
55MoveLoc[2](Arg2: PoolLsp<Ty0, Ty1>)
56MoveLoc[8](loc2: u64)
57LdU8(2)
58LdTrue
59MoveLoc[4](Arg4: &Clock)
60MoveLoc[5](Arg5: &mut TxContext)
61Call remove_liquidity_impl<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut TokenBank, PoolLsp<Ty0, Ty1>, u64, u8, bool, &Clock, &mut TxContext)
62Ret
}
public do_claim_th_reward<Ty0, Ty1>(Arg0: &TokenFarm, Arg1: &mut StakedToken, Arg2: &mut Pool<Ty0, Ty1>, Arg3: &Clock, Arg4: &mut TxContext) {
L5: loc0: u64
B0:
0MoveLoc[0](Arg0: &TokenFarm)
1MoveLoc[1](Arg1: &mut StakedToken)
2MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
3MoveLoc[3](Arg3: &Clock)
4MoveLoc[4](Arg4: &mut TxContext)
5Call claim_th_reward_impl<Ty0, Ty1>(&TokenFarm, &mut StakedToken, &mut Pool<Ty0, Ty1>, &Clock, &mut TxContext): u64
6StLoc[5](loc0: u64)
7CopyLoc[5](loc0: u64)
8LdU64(0)
9Eq
10BrFalse(12)
B1:
11Branch(14)
B2:
12MoveLoc[5](loc0: u64)
13Abort
B3:
14Ret
}
public do_update_th_reward<Ty0, Ty1>(Arg0: &TokenFarm, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &Clock, Arg3: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &TokenFarm)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MoveLoc[2](Arg2: &Clock)
3Call utils::get_epoch(&Clock): u64
4Call update_th_reward_impl<Ty0, Ty1>(&TokenFarm, &mut Pool<Ty0, Ty1>, u64)
5Ret
}
Constants [
0 => u64: 0
1 => u128: 100000000
2 => u8: 0
3 => u8: 1
4 => u8: 100
5 => u8: 101
6 => u8: 200
7 => u8: 201
8 => u8: 2
9 => u8: 4
10 => u8: 210
11 => u8: 211
12 => u64: 13400
13 => u64: 134001
14 => u64: 134002
15 => u64: 134003
16 => u64: 134004
17 => u64: 134005
18 => u64: 134006
19 => u64: 134007
20 => u64: 134008
21 => u64: 134009
22 => u64: 134010
23 => u64: 134011
24 => u64: 134012
25 => u64: 134013
26 => u64: 134014
27 => u64: 134015
28 => u64: 134016
29 => u64: 134017
30 => u64: 134018
31 => u64: 134019
32 => u64: 134020
33 => u64: 134021
34 => u64: 134022
35 => u64: 134023
36 => u64: 200000
37 => u128: 10000
38 => u64: 10000
39 => u128: 18446744073709551615
40 => u64: 18446744073709551615
41 => u256: 18446744073709551615
42 => u8: 18
43 => u64: 2
44 => u64: 1
45 => u64: 1000000
46 => u64: 900
47 => u64: 86400
48 => u64: 21600
49 => u64: 10
50 => vector<u8>: "swap_x_to_y_tag" // interpreted as UTF8 string
51 => vector<u8>: "swap_y_to_x_tag" // interpreted as UTF8 string
52 => vector<u8>: "swap_x_to_y_all_tag" // interpreted as UTF8 string
53 => vector<u8>: "swap_y_to_x_all_tag" // interpreted as UTF8 string
54 => vector<u8>: "add_liquidity_tag" // interpreted as UTF8 string
55 => vector<u8>: "remove_liquidity_tag" // interpreted as UTF8 string
56 => vector<u8>: "add_liquidity_all_tag" // interpreted as UTF8 string
57 => vector<u8>: "remove_liquidity_all_tag" // interpreted as UTF8 string
58 => vector<u8>: "claim_th_reward_tag" // interpreted as UTF8 string
59 => vector<u8>: "remove-liquidity-force" // interpreted as UTF8 string
]
}