ZO package::pool bytecode | tide- Move path
- 0x7fd8…1fec::pool
- Functions
- 6427 public, 0 entry
- Structs
- 16
pool
The on-chain disassembly. Offsets are bytecode positions within each function.
1// Move bytecode v7
2module 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec.pool {
3use 0000000000000000000000000000000000000000000000000000000000000001::option;
4use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
5use 0000000000000000000000000000000000000000000000000000000000000002::balance;
6use 0000000000000000000000000000000000000000000000000000000000000002::event;
7use 0000000000000000000000000000000000000000000000000000000000000002::object;
8use 0000000000000000000000000000000000000000000000000000000000000002::vec_set;
9use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::admin;
10use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::agg_price;
11use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::decimal;
12use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::fee;
13use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::model;
14use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::position;
15use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::rate;
16use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::sdecimal;
17use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::srate;
19struct Vault<phantom Ty0> has store {
22 reserving_fee_model: ID,
23 price_config: AggPriceConfig,
25 liquidity: Balance<Ty0>,
27 unrealised_reserving_fee_amount: Decimal,
28 acc_reserving_rate: Rate
31struct Symbol has store {
33 decrease_enabled: bool,
34 liquidate_enabled: bool,
35 supported_collaterals: VecSet<TypeName>,
36 funding_fee_model: ID,
37 price_config: AggPriceConfig,
40 opening_size: Decimal,
41 realised_pnl: SDecimal,
42 unrealised_funding_fee_value: SDecimal,
43 acc_funding_rate: SRate
46struct LossProtectionVault<phantom Ty0> has store {
50struct VaultAmountConfig has copy, drop, store {
55struct OpenPositionResult<phantom Ty0> {
56 position: Position<Ty0>,
57 referral_rebate: Balance<Ty0>,
58 fee_rebate: Balance<Ty0>,
59 scard_rebate: Option<Balance<Ty0>>,
60 event: OpenPositionSuccessEvent
63struct DecreasePositionResult<phantom Ty0> {
64 to_trader: Balance<Ty0>,
65 referral_rebate: Balance<Ty0>,
66 fee_rebate: Balance<Ty0>,
67 scard_rebate: Option<Balance<Ty0>>,
68 event: DecreasePositionSuccessEvent
71struct DecreasePositionResultV1<phantom Ty0> {
72 to_trader: Balance<Ty0>,
73 referral_rebate: Balance<Ty0>,
74 fee_rebate: Balance<Ty0>,
75 scard_rebate: Option<Balance<Ty0>>,
76 event: DecreasePositionSuccessEventV1
79struct OpenPositionSuccessEvent has copy, drop {
80 position_config: PositionConfig,
81 collateral_price: Decimal,
86 collateral_amount: u64,
87 referral_rebate_amount: u64,
88 fee_rebate_amount: u64,
89 scard_rebate_amount: Option<u64>,
93struct DecreasePositionSuccessEvent has copy, drop {
94 collateral_price: Decimal,
97 decrease_fee_value: Decimal,
98 reserving_fee_value: Decimal,
99 funding_fee_value: SDecimal,
100 delta_realised_pnl: SDecimal,
104 referral_rebate_amount: u64,
105 fee_rebate_amount: u64,
106 scard_rebate_amount: Option<u64>,
110struct DecreasePositionSuccessEventV1 has copy, drop {
111 collateral_price: Decimal,
112 index_price: Decimal,
113 decrease_amount: u64,
114 decrease_fee_value: Decimal,
115 reserving_fee_value: Decimal,
116 funding_fee_value: SDecimal,
117 instant_exit_fee_value: Decimal,
118 instant_exit_fee_tier: u8,
119 delta_realised_pnl: SDecimal,
123 referral_rebate_amount: u64,
124 fee_rebate_amount: u64,
125 scard_rebate_amount: Option<u64>,
129struct DecreaseReservedFromPositionEvent has copy, drop {
133struct PledgeInPositionEvent has copy, drop {
137struct RedeemFromPositionEvent has copy, drop {
138 collateral_price: Decimal,
139 index_price: Decimal,
143struct LiquidatePositionEvent has copy, drop {
145 collateral_price: Decimal,
146 index_price: Decimal,
147 position_size: Decimal,
148 reserving_fee_value: Decimal,
149 funding_fee_value: SDecimal,
150 delta_realised_pnl: SDecimal,
152 liquidator_bonus_amount: u64,
153 liquidation_amount: u64
156struct LiquidationFeeEvent has copy, drop {
157 liquidation_fee_amount: u64,
158 liquidation_fee_value: Decimal,
159 fee_collector: address
162struct LossProtectionVaultChangeEvent<phantom Ty0> has copy, drop {
163 to_loss_protection_vault_amount: u64,
164 from_loss_protection_vault_amount: u64
167refresh_vault<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &ReservingFeeModel, Arg2: u64) {
1700CopyLoc[0](Arg0: &mut Vault<Ty0>)
1722MoveLoc[1](Arg1: &ReservingFeeModel)
1733CopyLoc[2](Arg2: u64)
1744Call vault_delta_reserving_rate<Ty0>(&Vault<Ty0>, &ReservingFeeModel, u64): Rate
1766CopyLoc[0](Arg0: &mut Vault<Ty0>)
1788CopyLoc[3](loc0: Rate)
1799Call vault_acc_reserving_rate<Ty0>(&Vault<Ty0>, Rate): Rate
18010CopyLoc[0](Arg0: &mut Vault<Ty0>)
18111MutBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
18313CopyLoc[0](Arg0: &mut Vault<Ty0>)
18515MoveLoc[3](loc0: Rate)
18616Call vault_unrealised_reserving_fee_amount<Ty0>(&Vault<Ty0>, Rate): Decimal
18717CopyLoc[0](Arg0: &mut Vault<Ty0>)
18818MutBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
19020MoveLoc[2](Arg2: u64)
19121MoveLoc[0](Arg0: &mut Vault<Ty0>)
19222MutBorrowFieldGeneric[2](Vault.last_update: u64)
197refresh_symbol(Arg0: &mut Symbol, Arg1: &FundingFeeModel, Arg2: SDecimal, Arg3: Decimal, Arg4: u64) {
2000CopyLoc[0](Arg0: &mut Symbol)
2022MoveLoc[1](Arg1: &FundingFeeModel)
2033MoveLoc[2](Arg2: SDecimal)
2044MoveLoc[3](Arg3: Decimal)
2055CopyLoc[4](Arg4: u64)
2066Call symbol_delta_funding_rate(&Symbol, &FundingFeeModel, SDecimal, Decimal, u64): SRate
2077StLoc[5](loc0: SRate)
2088CopyLoc[0](Arg0: &mut Symbol)
21010CopyLoc[5](loc0: SRate)
21111Call symbol_acc_funding_rate(&Symbol, SRate): SRate
21212CopyLoc[0](Arg0: &mut Symbol)
21313MutBorrowField[3](Symbol.acc_funding_rate: SRate)
21515CopyLoc[0](Arg0: &mut Symbol)
21717MoveLoc[5](loc0: SRate)
21818Call symbol_unrealised_funding_fee_value(&Symbol, SRate): SDecimal
21919CopyLoc[0](Arg0: &mut Symbol)
22020MutBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
22222MoveLoc[4](Arg4: u64)
22323MoveLoc[0](Arg0: &mut Symbol)
22424MutBorrowField[5](Symbol.last_update: u64)
229public vault_enabled<Ty0>(Arg0: &Vault<Ty0>): bool {
2310MoveLoc[0](Arg0: &Vault<Ty0>)
2321ImmBorrowFieldGeneric[3](Vault.enabled: bool)
237public vault_weight<Ty0>(Arg0: &Vault<Ty0>): Decimal {
2390MoveLoc[0](Arg0: &Vault<Ty0>)
2401ImmBorrowFieldGeneric[4](Vault.weight: Decimal)
245public vault_reserving_fee_model<Ty0>(Arg0: &Vault<Ty0>): &ID {
2470MoveLoc[0](Arg0: &Vault<Ty0>)
2481ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
252public vault_price_config<Ty0>(Arg0: &Vault<Ty0>): &AggPriceConfig {
2540MoveLoc[0](Arg0: &Vault<Ty0>)
2551ImmBorrowFieldGeneric[6](Vault.price_config: AggPriceConfig)
259public vault_liquidity_amount<Ty0>(Arg0: &Vault<Ty0>): u64 {
2610MoveLoc[0](Arg0: &Vault<Ty0>)
2621ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2632Call balance::value<Ty0>(&Balance<Ty0>): u64
267public vault_reserved_amount<Ty0>(Arg0: &Vault<Ty0>): u64 {
2690MoveLoc[0](Arg0: &Vault<Ty0>)
2701ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
275public vault_utilization<Ty0>(Arg0: &Vault<Ty0>): Rate {
2790CopyLoc[0](Arg0: &Vault<Ty0>)
2801Call vault_supply_amount<Ty0>(&Vault<Ty0>): Decimal
2812StLoc[2](loc1: Decimal)
2823ImmBorrowLoc[2](loc1: Decimal)
2834Call decimal::is_zero(&Decimal): bool
2866MoveLoc[0](Arg0: &Vault<Ty0>)
2888Call rate::zero(): Rate
29211MoveLoc[0](Arg0: &Vault<Ty0>)
29312ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
29514Call decimal::from_u64(u64): Decimal
29615MoveLoc[2](loc1: Decimal)
29716Call decimal::div(Decimal, Decimal): Decimal
29817Call decimal::to_rate(Decimal): Rate
29918StLoc[1](loc0: Rate)
30119MoveLoc[1](loc0: Rate)
305public vault_supply_amount<Ty0>(Arg0: &Vault<Ty0>): Decimal {
3070CopyLoc[0](Arg0: &Vault<Ty0>)
3081ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
3092Call balance::value<Ty0>(&Balance<Ty0>): u64
3103CopyLoc[0](Arg0: &Vault<Ty0>)
3114ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
3147Call decimal::from_u64(u64): Decimal
3158MoveLoc[0](Arg0: &Vault<Ty0>)
3169ImmBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
31811Call decimal::add(Decimal, Decimal): Decimal
322public vault_delta_reserving_rate<Ty0>(Arg0: &Vault<Ty0>, Arg1: &ReservingFeeModel, Arg2: u64): Rate {
3250CopyLoc[0](Arg0: &Vault<Ty0>)
3261ImmBorrowFieldGeneric[2](Vault.last_update: u64)
3326MoveLoc[2](Arg2: u64)
3337CopyLoc[0](Arg0: &Vault<Ty0>)
3348ImmBorrowFieldGeneric[2](Vault.last_update: u64)
33812CopyLoc[3](loc0: u64)
34316MoveLoc[1](Arg1: &ReservingFeeModel)
34417MoveLoc[0](Arg0: &Vault<Ty0>)
34518Call vault_utilization<Ty0>(&Vault<Ty0>): Rate
34619MoveLoc[3](loc0: u64)
34720Call model::compute_reserving_fee_rate(&ReservingFeeModel, Rate, u64): Rate
35022MoveLoc[0](Arg0: &Vault<Ty0>)
35224MoveLoc[1](Arg1: &ReservingFeeModel)
35627MoveLoc[0](Arg0: &Vault<Ty0>)
35829MoveLoc[1](Arg1: &ReservingFeeModel)
36131Call rate::zero(): Rate
365public vault_acc_reserving_rate<Ty0>(Arg0: &Vault<Ty0>, Arg1: Rate): Rate {
3670MoveLoc[0](Arg0: &Vault<Ty0>)
3681ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
3703MoveLoc[1](Arg1: Rate)
3714Call rate::add(Rate, Rate): Rate
375public vault_unrealised_reserving_fee_amount<Ty0>(Arg0: &Vault<Ty0>, Arg1: Rate): Decimal {
3770CopyLoc[0](Arg0: &Vault<Ty0>)
3781ImmBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
3803MoveLoc[0](Arg0: &Vault<Ty0>)
3814ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
3836Call decimal::from_u64(u64): Decimal
3847MoveLoc[1](Arg1: Rate)
3858Call decimal::mul_with_rate(Decimal, Rate): Decimal
3869Call decimal::add(Decimal, Decimal): Decimal
390public symbol_last_update(Arg0: &Symbol): u64 {
3920MoveLoc[0](Arg0: &Symbol)
3931ImmBorrowField[5](Symbol.last_update: u64)
398public symbol_open_enabled(Arg0: &Symbol): bool {
4000MoveLoc[0](Arg0: &Symbol)
4011ImmBorrowField[12](Symbol.open_enabled: bool)
406public symbol_decrease_enabled(Arg0: &Symbol): bool {
4080MoveLoc[0](Arg0: &Symbol)
4091ImmBorrowField[13](Symbol.decrease_enabled: bool)
414public symbol_liquidate_enabled(Arg0: &Symbol): bool {
4160MoveLoc[0](Arg0: &Symbol)
4171ImmBorrowField[14](Symbol.liquidate_enabled: bool)
422public symbol_supported_collaterals(Arg0: &Symbol): &VecSet<TypeName> {
4240MoveLoc[0](Arg0: &Symbol)
4251ImmBorrowField[15](Symbol.supported_collaterals: VecSet<TypeName>)
429public symbol_funding_fee_model(Arg0: &Symbol): &ID {
4310MoveLoc[0](Arg0: &Symbol)
4321ImmBorrowField[16](Symbol.funding_fee_model: ID)
436public symbol_price_config(Arg0: &Symbol): &AggPriceConfig {
4380MoveLoc[0](Arg0: &Symbol)
4391ImmBorrowField[17](Symbol.price_config: AggPriceConfig)
443public symbol_opening_amount(Arg0: &Symbol): u64 {
4450MoveLoc[0](Arg0: &Symbol)
4461ImmBorrowField[18](Symbol.opening_amount: u64)
451public symbol_opening_size(Arg0: &Symbol): Decimal {
4530MoveLoc[0](Arg0: &Symbol)
4541ImmBorrowField[19](Symbol.opening_size: Decimal)
459public symbol_pnl_per_lp(Arg0: &Symbol, Arg1: SDecimal, Arg2: Decimal): SDecimal {
4610CopyLoc[0](Arg0: &Symbol)
4621ImmBorrowField[20](Symbol.realised_pnl: SDecimal)
4643MoveLoc[0](Arg0: &Symbol)
4654ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
4676Call sdecimal::add(SDecimal, SDecimal): SDecimal
4687MoveLoc[1](Arg1: SDecimal)
4698Call sdecimal::add(SDecimal, SDecimal): SDecimal
4709MoveLoc[2](Arg2: Decimal)
47110Call sdecimal::div_by_decimal(SDecimal, Decimal): SDecimal
475public symbol_delta_funding_rate(Arg0: &Symbol, Arg1: &FundingFeeModel, Arg2: SDecimal, Arg3: Decimal, Arg4: u64): SRate {
4780CopyLoc[0](Arg0: &Symbol)
4791ImmBorrowField[5](Symbol.last_update: u64)
4856MoveLoc[4](Arg4: u64)
4867CopyLoc[0](Arg0: &Symbol)
4878ImmBorrowField[5](Symbol.last_update: u64)
49112CopyLoc[5](loc0: u64)
49616MoveLoc[1](Arg1: &FundingFeeModel)
49717MoveLoc[0](Arg0: &Symbol)
49818MoveLoc[2](Arg2: SDecimal)
49919MoveLoc[3](Arg3: Decimal)
50020Call symbol_pnl_per_lp(&Symbol, SDecimal, Decimal): SDecimal
50121MoveLoc[5](loc0: u64)
50222Call model::compute_funding_fee_rate(&FundingFeeModel, SDecimal, u64): SRate
50524MoveLoc[0](Arg0: &Symbol)
50726MoveLoc[1](Arg1: &FundingFeeModel)
51129MoveLoc[0](Arg0: &Symbol)
51331MoveLoc[1](Arg1: &FundingFeeModel)
51633Call srate::zero(): SRate
520public symbol_acc_funding_rate(Arg0: &Symbol, Arg1: SRate): SRate {
5220MoveLoc[0](Arg0: &Symbol)
5231ImmBorrowField[3](Symbol.acc_funding_rate: SRate)
5253MoveLoc[1](Arg1: SRate)
5264Call srate::add(SRate, SRate): SRate
530public symbol_unrealised_funding_fee_value(Arg0: &Symbol, Arg1: SRate): SDecimal {
5320CopyLoc[0](Arg0: &Symbol)
5331ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
5353ImmBorrowLoc[1](Arg1: SRate)
5364Call srate::is_positive(&SRate): bool
5375MoveLoc[0](Arg0: &Symbol)
5386ImmBorrowField[19](Symbol.opening_size: Decimal)
5408ImmBorrowLoc[1](Arg1: SRate)
5419Call srate::value(&SRate): Rate
54210Call decimal::mul_with_rate(Decimal, Rate): Decimal
54311Call sdecimal::from_decimal(bool, Decimal): SDecimal
54412Call sdecimal::add(SDecimal, SDecimal): SDecimal
548public symbol_delta_size(Arg0: &Symbol, Arg1: &AggPrice, Arg2: bool): SDecimal {
5530MoveLoc[1](Arg1: &AggPrice)
5541CopyLoc[0](Arg0: &Symbol)
5552ImmBorrowField[18](Symbol.opening_amount: u64)
5574Call agg_price::coins_to_value(&AggPrice, u64): Decimal
5585StLoc[5](loc2: Decimal)
5596ImmBorrowLoc[5](loc2: Decimal)
5607CopyLoc[0](Arg0: &Symbol)
5618ImmBorrowField[19](Symbol.opening_size: Decimal)
5629Call decimal::gt(&Decimal, &Decimal): bool
56511MoveLoc[2](Arg2: bool)
56713MoveLoc[5](loc2: Decimal)
56814MoveLoc[0](Arg0: &Symbol)
56915ImmBorrowField[19](Symbol.opening_size: Decimal)
57117Call decimal::sub(Decimal, Decimal): Decimal
57218StLoc[4](loc1: Decimal)
57319StLoc[3](loc0: bool)
57621MoveLoc[2](Arg2: bool)
57722MoveLoc[0](Arg0: &Symbol)
57823ImmBorrowField[19](Symbol.opening_size: Decimal)
58025MoveLoc[5](loc2: Decimal)
58126Call decimal::sub(Decimal, Decimal): Decimal
58227StLoc[4](loc1: Decimal)
58328StLoc[3](loc0: bool)
58529MoveLoc[3](loc0: bool)
58630MoveLoc[4](loc1: Decimal)
58731Call sdecimal::from_decimal(bool, Decimal): SDecimal
591public compute_rebase_fee_rate(Arg0: &RebaseFeeModel, Arg1: bool, Arg2: Decimal, Arg3: Decimal, Arg4: Decimal, Arg5: Decimal): Rate {
5960ImmBorrowLoc[2](Arg2: Decimal)
5971ImmBorrowLoc[3](Arg3: Decimal)
5982Call decimal::eq(&Decimal, &Decimal): bool
6014MoveLoc[0](Arg0: &RebaseFeeModel)
6036Call rate::zero(): Rate
6079MoveLoc[2](Arg2: Decimal)
60810MoveLoc[3](Arg3: Decimal)
60911Call decimal::div(Decimal, Decimal): Decimal
61012Call decimal::to_rate(Decimal): Rate
61113StLoc[7](loc1: Rate)
61214MoveLoc[4](Arg4: Decimal)
61315MoveLoc[5](Arg5: Decimal)
61416Call decimal::div(Decimal, Decimal): Decimal
61517Call decimal::to_rate(Decimal): Rate
61618StLoc[8](loc2: Rate)
61719MoveLoc[0](Arg0: &RebaseFeeModel)
61820MoveLoc[1](Arg1: bool)
61921MoveLoc[7](loc1: Rate)
62022MoveLoc[8](loc2: Rate)
62123Call model::compute_rebase_fee_rate(&RebaseFeeModel, bool, Rate, Rate): Rate
62224StLoc[6](loc0: Rate)
62425MoveLoc[6](loc0: Rate)
628public(friend) new_vault<Ty0>(Arg0: u256, Arg1: ID, Arg2: AggPriceConfig): Vault<Ty0> {
6311MoveLoc[0](Arg0: u256)
6322Call decimal::from_raw(u256): Decimal
6344MoveLoc[2](Arg2: AggPriceConfig)
6366Call balance::zero<Ty0>(): Balance<Ty0>
6388Call decimal::zero(): Decimal
6399Call rate::zero(): Rate
64010PackGeneric[0](Vault<Ty0>)
644public(friend) mut_vault_price_config<Ty0>(Arg0: &mut Vault<Ty0>): &mut AggPriceConfig {
6460MoveLoc[0](Arg0: &mut Vault<Ty0>)
6471MutBorrowFieldGeneric[6](Vault.price_config: AggPriceConfig)
651public(friend) new_symbol(Arg0: ID, Arg1: AggPriceConfig): Symbol {
6563Call vec_set::empty<TypeName>(): VecSet<TypeName>
6585MoveLoc[1](Arg1: AggPriceConfig)
6618Call decimal::zero(): Decimal
6629Call sdecimal::zero(): SDecimal
66310Call sdecimal::zero(): SDecimal
66411Call srate::zero(): SRate
669public(friend) mut_symbol_price_config(Arg0: &mut Symbol): &mut AggPriceConfig {
6710MoveLoc[0](Arg0: &mut Symbol)
6721MutBorrowField[17](Symbol.price_config: AggPriceConfig)
676public(friend) add_collateral_to_symbol<Ty0>(Arg0: &mut Symbol) {
6780MoveLoc[0](Arg0: &mut Symbol)
6791MutBorrowField[15](Symbol.supported_collaterals: VecSet<TypeName>)
6802Call type_name::get<Ty0>(): TypeName
6813Call vec_set::insert<TypeName>(&mut VecSet<TypeName>, TypeName)
685public(friend) remove_collateral_from_symbol<Ty0>(Arg0: &mut Symbol) {
687L2: loc1: &mut VecSet<TypeName>
6890MoveLoc[0](Arg0: &mut Symbol)
6901MutBorrowField[15](Symbol.supported_collaterals: VecSet<TypeName>)
6912StLoc[2](loc1: &mut VecSet<TypeName>)
6923Call type_name::get<Ty0>(): TypeName
6934StLoc[1](loc0: TypeName)
6945MoveLoc[2](loc1: &mut VecSet<TypeName>)
6956ImmBorrowLoc[1](loc0: TypeName)
6967Call vec_set::remove<TypeName>(&mut VecSet<TypeName>, &TypeName)
700public(friend) set_symbol_status(Arg0: &mut Symbol, Arg1: bool, Arg2: bool, Arg3: bool) {
7020MoveLoc[1](Arg1: bool)
7031CopyLoc[0](Arg0: &mut Symbol)
7042MutBorrowField[12](Symbol.open_enabled: bool)
7064MoveLoc[2](Arg2: bool)
7075CopyLoc[0](Arg0: &mut Symbol)
7086MutBorrowField[13](Symbol.decrease_enabled: bool)
7108MoveLoc[3](Arg3: bool)
7119MoveLoc[0](Arg0: &mut Symbol)
71210MutBorrowField[14](Symbol.liquidate_enabled: bool)
717public(friend) set_symbol_by_funding_state(Arg0: &mut Symbol, Arg1: SRate, Arg2: SDecimal, Arg3: u64) {
7190MoveLoc[1](Arg1: SRate)
7201CopyLoc[0](Arg0: &mut Symbol)
7212MutBorrowField[3](Symbol.acc_funding_rate: SRate)
7234MoveLoc[2](Arg2: SDecimal)
7245CopyLoc[0](Arg0: &mut Symbol)
7256MutBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
7278MoveLoc[3](Arg3: u64)
7289MoveLoc[0](Arg0: &mut Symbol)
72910MutBorrowField[5](Symbol.last_update: u64)
734public(friend) destroy_symbol(Arg0: Symbol): AggPriceConfig {
735L1: loc0: AggPriceConfig
7370MoveLoc[0](Arg0: Symbol)
7458StLoc[1](loc0: AggPriceConfig)
75114MoveLoc[1](loc0: AggPriceConfig)
755public(friend) set_vault_status<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: bool) {
7570MoveLoc[1](Arg1: bool)
7581MoveLoc[0](Arg0: &mut Vault<Ty0>)
7592MutBorrowFieldGeneric[3](Vault.enabled: bool)
764public(friend) set_vault_weight<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: u256) {
7660MoveLoc[1](Arg1: u256)
7671Call decimal::from_raw(u256): Decimal
7682MoveLoc[0](Arg0: &mut Vault<Ty0>)
7693MutBorrowFieldGeneric[4](Vault.weight: Decimal)
774public new_vault_amount_config(Arg0: u64, Arg1: u64): VaultAmountConfig {
7760MoveLoc[0](Arg0: u64)
7771MoveLoc[1](Arg1: u64)
7782Pack[3](VaultAmountConfig)
782public(friend) new_loss_protection_vault<Ty0>(): LossProtectionVault<Ty0> {
7840Call balance::zero<Ty0>(): Balance<Ty0>
7851PackGeneric[1](LossProtectionVault<Ty0>)
789public(friend) loss_protection_vault_balance<Ty0>(Arg0: &mut LossProtectionVault<Ty0>): &mut Balance<Ty0> {
7910MoveLoc[0](Arg0: &mut LossProtectionVault<Ty0>)
7921MutBorrowFieldGeneric[9](LossProtectionVault.balance: Balance<Ty0>)
796public(friend) deposit_to_loss_protection_vault<Ty0>(Arg0: &mut LossProtectionVault<Ty0>, Arg1: Balance<Ty0>) {
7980MoveLoc[0](Arg0: &mut LossProtectionVault<Ty0>)
7991MutBorrowFieldGeneric[9](LossProtectionVault.balance: Balance<Ty0>)
8002MoveLoc[1](Arg1: Balance<Ty0>)
8013Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
806public(friend) withdraw_from_loss_protection_vault<Ty0>(Arg0: &mut LossProtectionVault<Ty0>, Arg1: u64): Balance<Ty0> {
8080MoveLoc[0](Arg0: &mut LossProtectionVault<Ty0>)
8091MutBorrowFieldGeneric[9](LossProtectionVault.balance: Balance<Ty0>)
8102MoveLoc[1](Arg1: u64)
8113Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
815public(friend) loss_protection_vault_value<Ty0>(Arg0: &LossProtectionVault<Ty0>): u64 {
8170MoveLoc[0](Arg0: &LossProtectionVault<Ty0>)
8181ImmBorrowFieldGeneric[9](LossProtectionVault.balance: Balance<Ty0>)
8192Call balance::value<Ty0>(&Balance<Ty0>): u64
823public(friend) deposit<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &RebaseFeeModel, Arg2: &AggPrice, Arg3: Balance<Ty0>, Arg4: u64, Arg5: u64, Arg6: Decimal, Arg7: Decimal, Arg8: Decimal, Arg9: Decimal, Arg10: Option<VaultAmountConfig>): u64 * Decimal {
825L12: loc1: VaultAmountConfig
8320CopyLoc[0](Arg0: &mut Vault<Ty0>)
8331ImmBorrowFieldGeneric[3](Vault.enabled: bool)
8395MoveLoc[0](Arg0: &mut Vault<Ty0>)
8417MoveLoc[2](Arg2: &AggPrice)
8439MoveLoc[1](Arg1: &RebaseFeeModel)
84511LdConst[0](u64: 100)
84813ImmBorrowLoc[3](Arg3: Balance<Ty0>)
84914Call balance::value<Ty0>(&Balance<Ty0>): u64
85015StLoc[13](loc2: u64)
85116CopyLoc[13](loc2: u64)
85821MoveLoc[0](Arg0: &mut Vault<Ty0>)
86023MoveLoc[2](Arg2: &AggPrice)
86225MoveLoc[1](Arg1: &RebaseFeeModel)
86427LdConst[8](u64: 108)
86729ImmBorrowLoc[10](Arg10: Option<VaultAmountConfig>)
86830Call option::is_some<VaultAmountConfig>(&Option<VaultAmountConfig>): bool
87132ImmBorrowLoc[10](Arg10: Option<VaultAmountConfig>)
87233Call option::borrow<VaultAmountConfig>(&Option<VaultAmountConfig>): &VaultAmountConfig
87435StLoc[12](loc1: VaultAmountConfig)
87536ImmBorrowLoc[12](loc1: VaultAmountConfig)
87637ImmBorrowField[22](VaultAmountConfig.max_amount: u64)
88242CopyLoc[0](Arg0: &mut Vault<Ty0>)
88343ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
88444Call balance::value<Ty0>(&Balance<Ty0>): u64
88545CopyLoc[13](loc2: u64)
88747ImmBorrowLoc[12](loc1: VaultAmountConfig)
88848ImmBorrowField[22](VaultAmountConfig.max_amount: u64)
89553MoveLoc[0](Arg0: &mut Vault<Ty0>)
89755MoveLoc[2](Arg2: &AggPrice)
89957MoveLoc[1](Arg1: &RebaseFeeModel)
90159LdConst[14](u64: 117)
90461MoveLoc[2](Arg2: &AggPrice)
90562MoveLoc[13](loc2: u64)
90663Call agg_price::coins_to_value(&AggPrice, u64): Decimal
90764StLoc[14](loc3: Decimal)
90865MoveLoc[1](Arg1: &RebaseFeeModel)
91067MoveLoc[7](Arg7: Decimal)
91168CopyLoc[14](loc3: Decimal)
91269Call decimal::add(Decimal, Decimal): Decimal
91370MoveLoc[8](Arg8: Decimal)
91471CopyLoc[14](loc3: Decimal)
91572Call decimal::add(Decimal, Decimal): Decimal
91673CopyLoc[0](Arg0: &mut Vault<Ty0>)
91774ImmBorrowFieldGeneric[4](Vault.weight: Decimal)
91976MoveLoc[9](Arg9: Decimal)
92077Call compute_rebase_fee_rate(&RebaseFeeModel, bool, Decimal, Decimal, Decimal, Decimal): Rate
92178StLoc[15](loc4: Rate)
92279CopyLoc[14](loc3: Decimal)
92380MoveLoc[15](loc4: Rate)
92481Call decimal::mul_with_rate(Decimal, Rate): Decimal
92582StLoc[16](loc5: Decimal)
92683MoveLoc[14](loc3: Decimal)
92784CopyLoc[16](loc5: Decimal)
92885Call decimal::sub(Decimal, Decimal): Decimal
92986StLoc[14](loc3: Decimal)
93087MoveLoc[0](Arg0: &mut Vault<Ty0>)
93188MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
93289MoveLoc[3](Arg3: Balance<Ty0>)
93390Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
93592CopyLoc[5](Arg5: u64)
94096ImmBorrowLoc[6](Arg6: Decimal)
94197Call decimal::is_zero(&Decimal): bool
946100LdConst[10](u64: 110)
949102MoveLoc[14](loc3: Decimal)
950103Call decimal::truncate_decimal(Decimal): u64
951104StLoc[11](loc0: u64)
954106ImmBorrowLoc[6](Arg6: Decimal)
955107Call decimal::is_zero(&Decimal): bool
961111LdConst[10](u64: 110)
964113MoveLoc[14](loc3: Decimal)
965114MoveLoc[5](Arg5: u64)
966115Call decimal::from_u64(u64): Decimal
967116MoveLoc[6](Arg6: Decimal)
968117Call decimal::mul_div(Decimal, Decimal, Decimal): Decimal
969118Call decimal::floor_u64(Decimal): u64
970119StLoc[11](loc0: u64)
972120MoveLoc[11](loc0: u64)
973121StLoc[17](loc6: u64)
974122CopyLoc[17](loc6: u64)
975123MoveLoc[4](Arg4: u64)
981127LdConst[11](u64: 111)
984129MoveLoc[17](loc6: u64)
985130MoveLoc[16](loc5: Decimal)
989public(friend) admin_add_liquidity_to_vault<Ty0>(Arg0: &AdminCap, Arg1: &mut Vault<Ty0>, Arg2: Balance<Ty0>): u64 * u64 {
9920CopyLoc[1](Arg1: &mut Vault<Ty0>)
9931ImmBorrowFieldGeneric[3](Vault.enabled: bool)
9995MoveLoc[1](Arg1: &mut Vault<Ty0>)
10017LdConst[0](u64: 100)
10049ImmBorrowLoc[2](Arg2: Balance<Ty0>)
100510Call balance::value<Ty0>(&Balance<Ty0>): u64
100611StLoc[3](loc0: u64)
100712CopyLoc[3](loc0: u64)
101417MoveLoc[1](Arg1: &mut Vault<Ty0>)
101619LdConst[8](u64: 108)
101921CopyLoc[1](Arg1: &mut Vault<Ty0>)
102022MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
102123MoveLoc[2](Arg2: Balance<Ty0>)
102224Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
102426MoveLoc[3](loc0: u64)
102527MoveLoc[1](Arg1: &mut Vault<Ty0>)
102628ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
102729Call balance::value<Ty0>(&Balance<Ty0>): u64
1031public(friend) withdraw<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &RebaseFeeModel, Arg2: &AggPrice, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: Decimal, Arg7: Decimal, Arg8: Decimal, Arg9: Decimal, Arg10: Option<VaultAmountConfig>): Balance<Ty0> * Decimal {
1032L11: loc0: VaultAmountConfig
1035L14: loc3: Balance<Ty0>
10390CopyLoc[0](Arg0: &mut Vault<Ty0>)
10401ImmBorrowFieldGeneric[3](Vault.enabled: bool)
10465MoveLoc[0](Arg0: &mut Vault<Ty0>)
10487MoveLoc[2](Arg2: &AggPrice)
10509MoveLoc[1](Arg1: &RebaseFeeModel)
105211LdConst[0](u64: 100)
105513CopyLoc[3](Arg3: u64)
106218MoveLoc[0](Arg0: &mut Vault<Ty0>)
106420MoveLoc[2](Arg2: &AggPrice)
106622MoveLoc[1](Arg1: &RebaseFeeModel)
106824LdConst[9](u64: 109)
107126MoveLoc[6](Arg6: Decimal)
107227MoveLoc[3](Arg3: u64)
107328Call decimal::from_u64(u64): Decimal
107429MoveLoc[5](Arg5: u64)
107530Call decimal::from_u64(u64): Decimal
107631Call decimal::mul_div(Decimal, Decimal, Decimal): Decimal
107732StLoc[16](loc5: Decimal)
107833ImmBorrowLoc[16](loc5: Decimal)
107934ImmBorrowLoc[7](Arg7: Decimal)
108035Call decimal::le(&Decimal, &Decimal): bool
108538MoveLoc[0](Arg0: &mut Vault<Ty0>)
108740MoveLoc[2](Arg2: &AggPrice)
108942MoveLoc[1](Arg1: &RebaseFeeModel)
109144LdConst[1](u64: 101)
109446MoveLoc[1](Arg1: &RebaseFeeModel)
109648MoveLoc[7](Arg7: Decimal)
109749CopyLoc[16](loc5: Decimal)
109850Call decimal::sub(Decimal, Decimal): Decimal
109951MoveLoc[8](Arg8: Decimal)
110052CopyLoc[16](loc5: Decimal)
110153Call decimal::sub(Decimal, Decimal): Decimal
110254CopyLoc[0](Arg0: &mut Vault<Ty0>)
110355ImmBorrowFieldGeneric[4](Vault.weight: Decimal)
110557MoveLoc[9](Arg9: Decimal)
110658Call compute_rebase_fee_rate(&RebaseFeeModel, bool, Decimal, Decimal, Decimal, Decimal): Rate
110759StLoc[12](loc1: Rate)
110860CopyLoc[16](loc5: Decimal)
110961MoveLoc[12](loc1: Rate)
111062Call decimal::mul_with_rate(Decimal, Rate): Decimal
111163StLoc[13](loc2: Decimal)
111264MoveLoc[16](loc5: Decimal)
111365CopyLoc[13](loc2: Decimal)
111466Call decimal::sub(Decimal, Decimal): Decimal
111567StLoc[16](loc5: Decimal)
111668MoveLoc[2](Arg2: &AggPrice)
111769MoveLoc[16](loc5: Decimal)
111870Call agg_price::value_to_coins(&AggPrice, Decimal): Decimal
111971Call decimal::floor_u64(Decimal): u64
112072StLoc[15](loc4: u64)
112173CopyLoc[15](loc4: u64)
112274CopyLoc[0](Arg0: &mut Vault<Ty0>)
112375ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
112476Call balance::value<Ty0>(&Balance<Ty0>): u64
113080MoveLoc[0](Arg0: &mut Vault<Ty0>)
113282LdConst[2](u64: 102)
113584ImmBorrowLoc[10](Arg10: Option<VaultAmountConfig>)
113685Call option::is_some<VaultAmountConfig>(&Option<VaultAmountConfig>): bool
113987ImmBorrowLoc[10](Arg10: Option<VaultAmountConfig>)
114088Call option::borrow<VaultAmountConfig>(&Option<VaultAmountConfig>): &VaultAmountConfig
114290StLoc[11](loc0: VaultAmountConfig)
114391ImmBorrowLoc[11](loc0: VaultAmountConfig)
114492ImmBorrowField[23](VaultAmountConfig.min_amount: u64)
115097CopyLoc[0](Arg0: &mut Vault<Ty0>)
115198ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
115299Call balance::value<Ty0>(&Balance<Ty0>): u64
1153100CopyLoc[15](loc4: u64)
1155102ImmBorrowLoc[11](loc0: VaultAmountConfig)
1156103ImmBorrowField[23](VaultAmountConfig.min_amount: u64)
1163108MoveLoc[0](Arg0: &mut Vault<Ty0>)
1165110LdConst[15](u64: 118)
1168112MoveLoc[0](Arg0: &mut Vault<Ty0>)
1169113MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
1170114MoveLoc[15](loc4: u64)
1171115Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
1172116StLoc[14](loc3: Balance<Ty0>)
1173117ImmBorrowLoc[14](loc3: Balance<Ty0>)
1174118Call balance::value<Ty0>(&Balance<Ty0>): u64
1175119MoveLoc[4](Arg4: u64)
1181123LdConst[11](u64: 111)
1184125MoveLoc[14](loc3: Balance<Ty0>)
1185126MoveLoc[13](loc2: Decimal)
1189public(friend) swap_in<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &RebaseFeeModel, Arg2: &AggPrice, Arg3: Balance<Ty0>, Arg4: Decimal, Arg5: Decimal, Arg6: Decimal, Arg7: Option<VaultAmountConfig>): Decimal * Decimal {
1190L8: loc0: VaultAmountConfig
11960CopyLoc[0](Arg0: &mut Vault<Ty0>)
11971ImmBorrowFieldGeneric[3](Vault.enabled: bool)
12035MoveLoc[0](Arg0: &mut Vault<Ty0>)
12057MoveLoc[2](Arg2: &AggPrice)
12079MoveLoc[1](Arg1: &RebaseFeeModel)
120911LdConst[0](u64: 100)
121213ImmBorrowLoc[3](Arg3: Balance<Ty0>)
121314Call balance::value<Ty0>(&Balance<Ty0>): u64
121415StLoc[9](loc1: u64)
121516CopyLoc[9](loc1: u64)
122221MoveLoc[0](Arg0: &mut Vault<Ty0>)
122423MoveLoc[2](Arg2: &AggPrice)
122625MoveLoc[1](Arg1: &RebaseFeeModel)
122827LdConst[7](u64: 107)
123129ImmBorrowLoc[7](Arg7: Option<VaultAmountConfig>)
123230Call option::is_some<VaultAmountConfig>(&Option<VaultAmountConfig>): bool
123532ImmBorrowLoc[7](Arg7: Option<VaultAmountConfig>)
123633Call option::borrow<VaultAmountConfig>(&Option<VaultAmountConfig>): &VaultAmountConfig
123835StLoc[8](loc0: VaultAmountConfig)
123936ImmBorrowLoc[8](loc0: VaultAmountConfig)
124037ImmBorrowField[22](VaultAmountConfig.max_amount: u64)
124642CopyLoc[0](Arg0: &mut Vault<Ty0>)
124743ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
124844Call balance::value<Ty0>(&Balance<Ty0>): u64
124945CopyLoc[9](loc1: u64)
125147ImmBorrowLoc[8](loc0: VaultAmountConfig)
125248ImmBorrowField[22](VaultAmountConfig.max_amount: u64)
125953MoveLoc[0](Arg0: &mut Vault<Ty0>)
126155MoveLoc[2](Arg2: &AggPrice)
126357MoveLoc[1](Arg1: &RebaseFeeModel)
126559LdConst[14](u64: 117)
126861CopyLoc[0](Arg0: &mut Vault<Ty0>)
126962MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
127063MoveLoc[3](Arg3: Balance<Ty0>)
127164Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
127366MoveLoc[2](Arg2: &AggPrice)
127467MoveLoc[9](loc1: u64)
127568Call agg_price::coins_to_value(&AggPrice, u64): Decimal
127669StLoc[12](loc4: Decimal)
127770MoveLoc[1](Arg1: &RebaseFeeModel)
127972MoveLoc[4](Arg4: Decimal)
128073CopyLoc[12](loc4: Decimal)
128174Call decimal::add(Decimal, Decimal): Decimal
128275MoveLoc[5](Arg5: Decimal)
128376CopyLoc[12](loc4: Decimal)
128477Call decimal::add(Decimal, Decimal): Decimal
128578MoveLoc[0](Arg0: &mut Vault<Ty0>)
128679ImmBorrowFieldGeneric[4](Vault.weight: Decimal)
128881MoveLoc[6](Arg6: Decimal)
128982Call compute_rebase_fee_rate(&RebaseFeeModel, bool, Decimal, Decimal, Decimal, Decimal): Rate
129083StLoc[10](loc2: Rate)
129184CopyLoc[12](loc4: Decimal)
129285MoveLoc[10](loc2: Rate)
129386Call decimal::mul_with_rate(Decimal, Rate): Decimal
129487StLoc[11](loc3: Decimal)
129588MoveLoc[12](loc4: Decimal)
129689CopyLoc[11](loc3: Decimal)
129790Call decimal::sub(Decimal, Decimal): Decimal
129891MoveLoc[11](loc3: Decimal)
1302public(friend) swap_out<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &RebaseFeeModel, Arg2: &AggPrice, Arg3: u64, Arg4: Decimal, Arg5: Decimal, Arg6: Decimal, Arg7: Decimal, Arg8: Option<VaultAmountConfig>): Balance<Ty0> * Decimal {
1303L9: loc0: VaultAmountConfig
13080CopyLoc[0](Arg0: &mut Vault<Ty0>)
13091ImmBorrowFieldGeneric[3](Vault.enabled: bool)
13155MoveLoc[1](Arg1: &RebaseFeeModel)
13177MoveLoc[0](Arg0: &mut Vault<Ty0>)
13199MoveLoc[2](Arg2: &AggPrice)
132111LdConst[0](u64: 100)
132413ImmBorrowLoc[4](Arg4: Decimal)
132514ImmBorrowLoc[5](Arg5: Decimal)
132615Call decimal::lt(&Decimal, &Decimal): bool
133118MoveLoc[1](Arg1: &RebaseFeeModel)
133320MoveLoc[0](Arg0: &mut Vault<Ty0>)
133522MoveLoc[2](Arg2: &AggPrice)
133724LdConst[1](u64: 101)
134026MoveLoc[1](Arg1: &RebaseFeeModel)
134228MoveLoc[5](Arg5: Decimal)
134329CopyLoc[4](Arg4: Decimal)
134430Call decimal::sub(Decimal, Decimal): Decimal
134531MoveLoc[6](Arg6: Decimal)
134632CopyLoc[0](Arg0: &mut Vault<Ty0>)
134733ImmBorrowFieldGeneric[4](Vault.weight: Decimal)
134935MoveLoc[7](Arg7: Decimal)
135036Call compute_rebase_fee_rate(&RebaseFeeModel, bool, Decimal, Decimal, Decimal, Decimal): Rate
135137StLoc[11](loc2: Rate)
135238CopyLoc[4](Arg4: Decimal)
135339MoveLoc[11](loc2: Rate)
135440Call decimal::mul_with_rate(Decimal, Rate): Decimal
135541StLoc[12](loc3: Decimal)
135642MoveLoc[4](Arg4: Decimal)
135743CopyLoc[12](loc3: Decimal)
135844Call decimal::sub(Decimal, Decimal): Decimal
135945StLoc[4](Arg4: Decimal)
136046MoveLoc[2](Arg2: &AggPrice)
136147MoveLoc[4](Arg4: Decimal)
136248Call agg_price::value_to_coins(&AggPrice, Decimal): Decimal
136349Call decimal::floor_u64(Decimal): u64
136450StLoc[10](loc1: u64)
136551CopyLoc[10](loc1: u64)
136652MoveLoc[3](Arg3: u64)
137256MoveLoc[0](Arg0: &mut Vault<Ty0>)
137458LdConst[11](u64: 111)
137760CopyLoc[10](loc1: u64)
137861CopyLoc[0](Arg0: &mut Vault<Ty0>)
137962ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
138063Call balance::value<Ty0>(&Balance<Ty0>): u64
138667MoveLoc[0](Arg0: &mut Vault<Ty0>)
138869LdConst[2](u64: 102)
139171ImmBorrowLoc[8](Arg8: Option<VaultAmountConfig>)
139272Call option::is_some<VaultAmountConfig>(&Option<VaultAmountConfig>): bool
139574ImmBorrowLoc[8](Arg8: Option<VaultAmountConfig>)
139675Call option::borrow<VaultAmountConfig>(&Option<VaultAmountConfig>): &VaultAmountConfig
139877StLoc[9](loc0: VaultAmountConfig)
139978ImmBorrowLoc[9](loc0: VaultAmountConfig)
140079ImmBorrowField[23](VaultAmountConfig.min_amount: u64)
140684CopyLoc[0](Arg0: &mut Vault<Ty0>)
140785ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
140886Call balance::value<Ty0>(&Balance<Ty0>): u64
140987CopyLoc[10](loc1: u64)
141189ImmBorrowLoc[9](loc0: VaultAmountConfig)
141290ImmBorrowField[23](VaultAmountConfig.min_amount: u64)
141995MoveLoc[0](Arg0: &mut Vault<Ty0>)
142197LdConst[15](u64: 118)
142499MoveLoc[0](Arg0: &mut Vault<Ty0>)
1425100MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
1426101MoveLoc[10](loc1: u64)
1427102Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
1428103MoveLoc[12](loc3: Decimal)
1432public(friend) open_position_v1<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &mut Symbol, Arg2: &FeeConfig, Arg3: &ReservingFeeModel, Arg4: &FundingFeeModel, Arg5: &PositionConfig, Arg6: &AggPrice, Arg7: &AggPrice, Arg8: &mut Balance<Ty0>, Arg9: Decimal, Arg10: Rate, Arg11: Option<Rate>, Arg12: bool, Arg13: u64, Arg14: u64, Arg15: Decimal, Arg16: u64, Arg17: address, Arg18: bool): OpenPositionResult<Ty0> {
1438L24: loc5: PositionConfig
1439L25: loc6: Option<Balance<Ty0>>
1440L26: loc7: Balance<Ty0>
1441L27: loc8: Balance<Ty0>
1442L28: loc9: Position<Ty0>
1443L29: loc10: &VecSet<TypeName>
1445L31: loc12: Option<Balance<Ty0>>
1446L32: loc13: Option<u64>
1453L39: loc20: Balance<Ty0>
1456L42: loc23: Balance<Ty0>
1459L45: loc26: Position<Ty0>
1461L47: loc28: Balance<Ty0>
1463L49: loc30: Option<Balance<Ty0>>
14660CopyLoc[0](Arg0: &mut Vault<Ty0>)
14671ImmBorrowFieldGeneric[3](Vault.enabled: bool)
14735MoveLoc[0](Arg0: &mut Vault<Ty0>)
14757MoveLoc[1](Arg1: &mut Symbol)
14779MoveLoc[3](Arg3: &ReservingFeeModel)
147911MoveLoc[5](Arg5: &PositionConfig)
148113MoveLoc[7](Arg7: &AggPrice)
148315MoveLoc[4](Arg4: &FundingFeeModel)
148517MoveLoc[2](Arg2: &FeeConfig)
148719MoveLoc[6](Arg6: &AggPrice)
148921MoveLoc[8](Arg8: &mut Balance<Ty0>)
149123LdConst[0](u64: 100)
149425CopyLoc[1](Arg1: &mut Symbol)
149526ImmBorrowField[12](Symbol.open_enabled: bool)
150130MoveLoc[0](Arg0: &mut Vault<Ty0>)
150332MoveLoc[1](Arg1: &mut Symbol)
150534MoveLoc[3](Arg3: &ReservingFeeModel)
150736MoveLoc[5](Arg5: &PositionConfig)
150938MoveLoc[7](Arg7: &AggPrice)
151140MoveLoc[4](Arg4: &FundingFeeModel)
151342MoveLoc[2](Arg2: &FeeConfig)
151544MoveLoc[6](Arg6: &AggPrice)
151746MoveLoc[8](Arg8: &mut Balance<Ty0>)
151948LdConst[4](u64: 104)
152250CopyLoc[3](Arg3: &ReservingFeeModel)
152351Call object::id<ReservingFeeModel>(&ReservingFeeModel): ID
152452CopyLoc[0](Arg0: &mut Vault<Ty0>)
152553ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
153258MoveLoc[0](Arg0: &mut Vault<Ty0>)
153460MoveLoc[1](Arg1: &mut Symbol)
153662MoveLoc[3](Arg3: &ReservingFeeModel)
153864MoveLoc[5](Arg5: &PositionConfig)
154066MoveLoc[7](Arg7: &AggPrice)
154268MoveLoc[4](Arg4: &FundingFeeModel)
154470MoveLoc[2](Arg2: &FeeConfig)
154672MoveLoc[6](Arg6: &AggPrice)
154874MoveLoc[8](Arg8: &mut Balance<Ty0>)
155076LdConst[12](u64: 112)
155378CopyLoc[4](Arg4: &FundingFeeModel)
155479Call object::id<FundingFeeModel>(&FundingFeeModel): ID
155580CopyLoc[1](Arg1: &mut Symbol)
155681ImmBorrowField[16](Symbol.funding_fee_model: ID)
156386MoveLoc[0](Arg0: &mut Vault<Ty0>)
156588MoveLoc[1](Arg1: &mut Symbol)
156790MoveLoc[3](Arg3: &ReservingFeeModel)
156992MoveLoc[5](Arg5: &PositionConfig)
157194MoveLoc[7](Arg7: &AggPrice)
157396MoveLoc[4](Arg4: &FundingFeeModel)
157598MoveLoc[2](Arg2: &FeeConfig)
1577100MoveLoc[6](Arg6: &AggPrice)
1579102MoveLoc[8](Arg8: &mut Balance<Ty0>)
1581104LdConst[13](u64: 113)
1584106CopyLoc[1](Arg1: &mut Symbol)
1585107ImmBorrowField[15](Symbol.supported_collaterals: VecSet<TypeName>)
1586108StLoc[29](loc10: &VecSet<TypeName>)
1587109Call type_name::get<Ty0>(): TypeName
1588110StLoc[19](loc0: TypeName)
1589111MoveLoc[29](loc10: &VecSet<TypeName>)
1590112ImmBorrowLoc[19](loc0: TypeName)
1591113Call vec_set::contains<TypeName>(&VecSet<TypeName>, &TypeName): bool
1596116MoveLoc[0](Arg0: &mut Vault<Ty0>)
1598118MoveLoc[1](Arg1: &mut Symbol)
1600120MoveLoc[3](Arg3: &ReservingFeeModel)
1602122MoveLoc[5](Arg5: &PositionConfig)
1604124MoveLoc[7](Arg7: &AggPrice)
1606126MoveLoc[4](Arg4: &FundingFeeModel)
1608128MoveLoc[2](Arg2: &FeeConfig)
1610130MoveLoc[6](Arg6: &AggPrice)
1612132MoveLoc[8](Arg8: &mut Balance<Ty0>)
1614134LdConst[3](u64: 103)
1617136CopyLoc[0](Arg0: &mut Vault<Ty0>)
1618137ImmBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
1619138Call balance::value<Ty0>(&Balance<Ty0>): u64
1620139CopyLoc[14](Arg14: u64)
1626143MoveLoc[0](Arg0: &mut Vault<Ty0>)
1628145MoveLoc[1](Arg1: &mut Symbol)
1630147MoveLoc[3](Arg3: &ReservingFeeModel)
1632149MoveLoc[5](Arg5: &PositionConfig)
1634151MoveLoc[7](Arg7: &AggPrice)
1636153MoveLoc[4](Arg4: &FundingFeeModel)
1638155MoveLoc[2](Arg2: &FeeConfig)
1640157MoveLoc[6](Arg6: &AggPrice)
1642159MoveLoc[8](Arg8: &mut Balance<Ty0>)
1644161LdConst[2](u64: 102)
1647163CopyLoc[0](Arg0: &mut Vault<Ty0>)
1648164MoveLoc[3](Arg3: &ReservingFeeModel)
1649165CopyLoc[16](Arg16: u64)
1650166Call refresh_vault<Ty0>(&mut Vault<Ty0>, &ReservingFeeModel, u64)
1651167MoveLoc[18](Arg18: bool)
1655170CopyLoc[1](Arg1: &mut Symbol)
1657172CopyLoc[7](Arg7: &AggPrice)
1658173MoveLoc[12](Arg12: bool)
1659174Call symbol_delta_size(&Symbol, &AggPrice, bool): SDecimal
1660175StLoc[38](loc19: SDecimal)
1661176CopyLoc[1](Arg1: &mut Symbol)
1662177MoveLoc[4](Arg4: &FundingFeeModel)
1663178MoveLoc[38](loc19: SDecimal)
1664179MoveLoc[15](Arg15: Decimal)
1665180CopyLoc[16](Arg16: u64)
1666181Call refresh_symbol(&mut Symbol, &FundingFeeModel, SDecimal, Decimal, u64)
1669183MoveLoc[4](Arg4: &FundingFeeModel)
1672185CopyLoc[5](Arg5: &PositionConfig)
1673186CopyLoc[6](Arg6: &AggPrice)
1674187CopyLoc[7](Arg7: &AggPrice)
1675188CopyLoc[0](Arg0: &mut Vault<Ty0>)
1676189MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
1677190MoveLoc[8](Arg8: &mut Balance<Ty0>)
1678191MoveLoc[9](Arg9: Decimal)
1679192CopyLoc[13](Arg13: u64)
1680193CopyLoc[14](Arg14: u64)
1681194CopyLoc[0](Arg0: &mut Vault<Ty0>)
1682195ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
1684197CopyLoc[1](Arg1: &mut Symbol)
1685198ImmBorrowField[3](Symbol.acc_funding_rate: SRate)
1687200MoveLoc[16](Arg16: u64)
1688201Call position::open_position<Ty0>(&PositionConfig, &AggPrice, &AggPrice, &mut Balance<Ty0>, &mut Balance<Ty0>, Decimal, u64, u64, Rate, SRate, u64): OpenPositionResult<Ty0>
1689202Call position::unwrap_open_position_result<Ty0>(OpenPositionResult<Ty0>): Position<Ty0> * Balance<Ty0> * Decimal
1690203StLoc[44](loc25: Decimal)
1691204StLoc[42](loc23: Balance<Ty0>)
1692205StLoc[45](loc26: Position<Ty0>)
1693206ImmBorrowLoc[42](loc23: Balance<Ty0>)
1694207Call balance::value<Ty0>(&Balance<Ty0>): u64
1695208StLoc[43](loc24: u64)
1696209CopyLoc[44](loc25: Decimal)
1697210MoveLoc[10](Arg10: Rate)
1698211Call decimal::mul_with_rate(Decimal, Rate): Decimal
1699212Call decimal::floor_u64(Decimal): u64
1700213StLoc[48](loc29: u64)
1701214CopyLoc[44](loc25: Decimal)
1702215MoveLoc[2](Arg2: &FeeConfig)
1703216Call fee::get_fee_rate(&FeeConfig): Rate
1704217Call decimal::mul_with_rate(Decimal, Rate): Decimal
1705218Call decimal::floor_u64(Decimal): u64
1706219StLoc[40](loc21: u64)
1707220ImmBorrowLoc[11](Arg11: Option<Rate>)
1708221Call option::is_some<Rate>(&Option<Rate>): bool
1711223MoveLoc[44](loc25: Decimal)
1712224ImmBorrowLoc[11](Arg11: Option<Rate>)
1713225Call option::borrow<Rate>(&Option<Rate>): &Rate
1715227Call decimal::mul_with_rate(Decimal, Rate): Decimal
1716228Call decimal::floor_u64(Decimal): u64
1717229StLoc[30](loc11: u64)
1721232StLoc[30](loc11: u64)
1723233MoveLoc[30](loc11: u64)
1724234StLoc[50](loc31: u64)
1725235CopyLoc[0](Arg0: &mut Vault<Ty0>)
1726236ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
1728238CopyLoc[14](Arg14: u64)
1730240CopyLoc[0](Arg0: &mut Vault<Ty0>)
1731241MutBorrowFieldGeneric[8](Vault.reserved_amount: u64)
1733243CopyLoc[0](Arg0: &mut Vault<Ty0>)
1734244MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
1735245MoveLoc[42](loc23: Balance<Ty0>)
1736246Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
1737247StLoc[41](loc22: u64)
1738248CopyLoc[48](loc29: u64)
1739249CopyLoc[40](loc21: u64)
1741251CopyLoc[50](loc31: u64)
1743253StLoc[46](loc27: u64)
1744254MoveLoc[41](loc22: u64)
1745255MoveLoc[46](loc27: u64)
1751259MoveLoc[0](Arg0: &mut Vault<Ty0>)
1753261MoveLoc[1](Arg1: &mut Symbol)
1755263MoveLoc[5](Arg5: &PositionConfig)
1757265MoveLoc[7](Arg7: &AggPrice)
1759267MoveLoc[6](Arg6: &AggPrice)
1761269LdConst[2](u64: 102)
1764271CopyLoc[0](Arg0: &mut Vault<Ty0>)
1765272MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
1766273CopyLoc[48](loc29: u64)
1767274Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
1768275StLoc[47](loc28: Balance<Ty0>)
1769276CopyLoc[0](Arg0: &mut Vault<Ty0>)
1770277MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
1771278CopyLoc[40](loc21: u64)
1772279Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
1773280StLoc[39](loc20: Balance<Ty0>)
1774281CopyLoc[50](loc31: u64)
1779285MoveLoc[0](Arg0: &mut Vault<Ty0>)
1780286MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
1781287CopyLoc[50](loc31: u64)
1782288Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
1783289Call option::some<Balance<Ty0>>(Balance<Ty0>): Option<Balance<Ty0>>
1784290StLoc[31](loc12: Option<Balance<Ty0>>)
1787292MoveLoc[0](Arg0: &mut Vault<Ty0>)
1789294Call option::none<Balance<Ty0>>(): Option<Balance<Ty0>>
1790295StLoc[31](loc12: Option<Balance<Ty0>>)
1792296MoveLoc[31](loc12: Option<Balance<Ty0>>)
1793297StLoc[49](loc30: Option<Balance<Ty0>>)
1794298CopyLoc[1](Arg1: &mut Symbol)
1795299ImmBorrowField[19](Symbol.opening_size: Decimal)
1797301ImmBorrowLoc[45](loc26: Position<Ty0>)
1798302Call position::position_size<Ty0>(&Position<Ty0>): Decimal
1799303Call decimal::add(Decimal, Decimal): Decimal
1800304CopyLoc[1](Arg1: &mut Symbol)
1801305MutBorrowField[19](Symbol.opening_size: Decimal)
1803307CopyLoc[1](Arg1: &mut Symbol)
1804308ImmBorrowField[18](Symbol.opening_amount: u64)
1806310CopyLoc[13](Arg13: u64)
1808312MoveLoc[1](Arg1: &mut Symbol)
1809313MutBorrowField[18](Symbol.opening_amount: u64)
1811315ImmBorrowLoc[45](loc26: Position<Ty0>)
1812316Call position::collateral_amount<Ty0>(&Position<Ty0>): u64
1813317StLoc[37](loc18: u64)
1814318MoveLoc[45](loc26: Position<Ty0>)
1815319StLoc[28](loc9: Position<Ty0>)
1816320MoveLoc[47](loc28: Balance<Ty0>)
1817321StLoc[27](loc8: Balance<Ty0>)
1818322MoveLoc[39](loc20: Balance<Ty0>)
1819323StLoc[26](loc7: Balance<Ty0>)
1820324MoveLoc[49](loc30: Option<Balance<Ty0>>)
1821325StLoc[25](loc6: Option<Balance<Ty0>>)
1822326MoveLoc[5](Arg5: &PositionConfig)
1824328StLoc[24](loc5: PositionConfig)
1825329MoveLoc[6](Arg6: &AggPrice)
1826330Call agg_price::price_of(&AggPrice): Decimal
1827331StLoc[23](loc4: Decimal)
1828332MoveLoc[7](Arg7: &AggPrice)
1829333Call agg_price::price_of(&AggPrice): Decimal
1830334StLoc[22](loc3: Decimal)
1831335MoveLoc[13](Arg13: u64)
1832336StLoc[21](loc2: u64)
1833337MoveLoc[43](loc24: u64)
1834338StLoc[20](loc1: u64)
1835339MoveLoc[14](Arg14: u64)
1836340StLoc[36](loc17: u64)
1837341MoveLoc[37](loc18: u64)
1838342StLoc[35](loc16: u64)
1839343MoveLoc[48](loc29: u64)
1840344StLoc[34](loc15: u64)
1841345MoveLoc[40](loc21: u64)
1842346StLoc[33](loc14: u64)
1843347CopyLoc[50](loc31: u64)
1848351MoveLoc[50](loc31: u64)
1849352Call option::some<u64>(u64): Option<u64>
1850353StLoc[32](loc13: Option<u64>)
1853355Call option::none<u64>(): Option<u64>
1854356StLoc[32](loc13: Option<u64>)
1856357MoveLoc[28](loc9: Position<Ty0>)
1857358MoveLoc[27](loc8: Balance<Ty0>)
1858359MoveLoc[26](loc7: Balance<Ty0>)
1859360MoveLoc[25](loc6: Option<Balance<Ty0>>)
1860361MoveLoc[24](loc5: PositionConfig)
1861362MoveLoc[23](loc4: Decimal)
1862363MoveLoc[22](loc3: Decimal)
1863364MoveLoc[21](loc2: u64)
1864365MoveLoc[20](loc1: u64)
1865366MoveLoc[36](loc17: u64)
1866367MoveLoc[35](loc16: u64)
1867368MoveLoc[34](loc15: u64)
1868369MoveLoc[33](loc14: u64)
1869370MoveLoc[32](loc13: Option<u64>)
1870371MoveLoc[17](Arg17: address)
1871372Pack[7](OpenPositionSuccessEvent)
1872373PackGeneric[2](OpenPositionResult<Ty0>)
1876public(friend) unwrap_open_position_result<Ty0>(Arg0: OpenPositionResult<Ty0>): Position<Ty0> * Balance<Ty0> * Balance<Ty0> * Option<Balance<Ty0>> * OpenPositionSuccessEvent {
18780MoveLoc[0](Arg0: OpenPositionResult<Ty0>)
18791UnpackGeneric[2](OpenPositionResult<Ty0>)
1883public(friend) decrease_position_v1_1<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &mut Symbol, Arg2: &FeeConfig, Arg3: &mut Position<Ty0>, Arg4: &ReservingFeeModel, Arg5: &FundingFeeModel, Arg6: &AggPrice, Arg7: &AggPrice, Arg8: Decimal, Arg9: Rate, Arg10: Option<Rate>, Arg11: bool, Arg12: u64, Arg13: Decimal, Arg14: &PositionInstantExitFeeConfig, Arg15: u64, Arg16: address, Arg17: bool): DecreasePositionResultV1<Ty0> {
1893L27: loc9: Option<Balance<Ty0>>
1894L28: loc10: Balance<Ty0>
1895L29: loc11: Option<Balance<Ty0>>
1896L30: loc12: Balance<Ty0>
1897L31: loc13: Balance<Ty0>
1898L32: loc14: Option<u64>
1912L46: loc28: Balance<Ty0>
1921L55: loc37: Balance<Ty0>
1926L60: loc42: Option<Balance<Ty0>>
1930L64: loc46: Balance<Ty0>
1931L65: loc47: Balance<Ty0>
19330CopyLoc[0](Arg0: &mut Vault<Ty0>)
19341ImmBorrowFieldGeneric[3](Vault.enabled: bool)
19405MoveLoc[0](Arg0: &mut Vault<Ty0>)
19427MoveLoc[1](Arg1: &mut Symbol)
19449MoveLoc[4](Arg4: &ReservingFeeModel)
194611MoveLoc[3](Arg3: &mut Position<Ty0>)
194813MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
195015MoveLoc[7](Arg7: &AggPrice)
195217MoveLoc[5](Arg5: &FundingFeeModel)
195419MoveLoc[2](Arg2: &FeeConfig)
195621MoveLoc[6](Arg6: &AggPrice)
195823LdConst[0](u64: 100)
196125CopyLoc[1](Arg1: &mut Symbol)
196226ImmBorrowField[13](Symbol.decrease_enabled: bool)
196830MoveLoc[0](Arg0: &mut Vault<Ty0>)
197032MoveLoc[1](Arg1: &mut Symbol)
197234MoveLoc[4](Arg4: &ReservingFeeModel)
197436MoveLoc[3](Arg3: &mut Position<Ty0>)
197638MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
197840MoveLoc[7](Arg7: &AggPrice)
198042MoveLoc[5](Arg5: &FundingFeeModel)
198244MoveLoc[2](Arg2: &FeeConfig)
198446MoveLoc[6](Arg6: &AggPrice)
198648LdConst[5](u64: 105)
198950CopyLoc[4](Arg4: &ReservingFeeModel)
199051Call object::id<ReservingFeeModel>(&ReservingFeeModel): ID
199152CopyLoc[0](Arg0: &mut Vault<Ty0>)
199253ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
199958MoveLoc[0](Arg0: &mut Vault<Ty0>)
200160MoveLoc[1](Arg1: &mut Symbol)
200362MoveLoc[4](Arg4: &ReservingFeeModel)
200564MoveLoc[3](Arg3: &mut Position<Ty0>)
200766MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
200968MoveLoc[7](Arg7: &AggPrice)
201170MoveLoc[5](Arg5: &FundingFeeModel)
201372MoveLoc[2](Arg2: &FeeConfig)
201574MoveLoc[6](Arg6: &AggPrice)
201776LdConst[12](u64: 112)
202078CopyLoc[5](Arg5: &FundingFeeModel)
202179Call object::id<FundingFeeModel>(&FundingFeeModel): ID
202280CopyLoc[1](Arg1: &mut Symbol)
202381ImmBorrowField[16](Symbol.funding_fee_model: ID)
203086MoveLoc[0](Arg0: &mut Vault<Ty0>)
203288MoveLoc[1](Arg1: &mut Symbol)
203490MoveLoc[4](Arg4: &ReservingFeeModel)
203692MoveLoc[3](Arg3: &mut Position<Ty0>)
203894MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
204096MoveLoc[7](Arg7: &AggPrice)
204298MoveLoc[5](Arg5: &FundingFeeModel)
2044100MoveLoc[2](Arg2: &FeeConfig)
2046102MoveLoc[6](Arg6: &AggPrice)
2048104LdConst[13](u64: 113)
2051106CopyLoc[0](Arg0: &mut Vault<Ty0>)
2052107MoveLoc[4](Arg4: &ReservingFeeModel)
2053108CopyLoc[15](Arg15: u64)
2054109Call refresh_vault<Ty0>(&mut Vault<Ty0>, &ReservingFeeModel, u64)
2055110MoveLoc[17](Arg17: bool)
2059113CopyLoc[1](Arg1: &mut Symbol)
2061115CopyLoc[7](Arg7: &AggPrice)
2062116CopyLoc[11](Arg11: bool)
2063117Call symbol_delta_size(&Symbol, &AggPrice, bool): SDecimal
2064118StLoc[44](loc26: SDecimal)
2065119CopyLoc[1](Arg1: &mut Symbol)
2066120MoveLoc[5](Arg5: &FundingFeeModel)
2067121MoveLoc[44](loc26: SDecimal)
2068122MoveLoc[13](Arg13: Decimal)
2069123CopyLoc[15](Arg15: u64)
2070124Call refresh_symbol(&mut Symbol, &FundingFeeModel, SDecimal, Decimal, u64)
2073126MoveLoc[5](Arg5: &FundingFeeModel)
2076128MoveLoc[3](Arg3: &mut Position<Ty0>)
2077129CopyLoc[6](Arg6: &AggPrice)
2078130CopyLoc[7](Arg7: &AggPrice)
2079131MoveLoc[8](Arg8: Decimal)
2080132MoveLoc[11](Arg11: bool)
2081133CopyLoc[12](Arg12: u64)
2082134CopyLoc[0](Arg0: &mut Vault<Ty0>)
2083135ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
2085137CopyLoc[1](Arg1: &mut Symbol)
2086138ImmBorrowField[3](Symbol.acc_funding_rate: SRate)
2088140MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
2089141MoveLoc[15](Arg15: u64)
2090142Call position::decrease_position_v1<Ty0>(&mut Position<Ty0>, &AggPrice, &AggPrice, Decimal, bool, u64, Rate, SRate, &PositionInstantExitFeeConfig, u64): DecreasePositionResultV1<Ty0>
2091143Call position::unwrap_decrease_position_result_v1<Ty0>(DecreasePositionResultV1<Ty0>): bool * bool * u64 * u64 * Decimal * Decimal * Decimal * Decimal * SDecimal * Decimal * u8 * Balance<Ty0> * Balance<Ty0>
2092144StLoc[64](loc46: Balance<Ty0>)
2093145StLoc[65](loc47: Balance<Ty0>)
2094146StLoc[51](loc33: u8)
2095147StLoc[52](loc34: Decimal)
2096148StLoc[49](loc31: SDecimal)
2097149StLoc[59](loc41: Decimal)
2098150StLoc[40](loc22: Decimal)
2099151StLoc[58](loc40: Decimal)
2100152StLoc[41](loc23: Decimal)
2101153StLoc[42](loc24: u64)
2102154StLoc[63](loc45: u64)
2103155StLoc[50](loc32: bool)
2104156StLoc[39](loc21: bool)
2105157CopyLoc[40](loc22: Decimal)
2106158MoveLoc[9](Arg9: Rate)
2107159Call decimal::mul_with_rate(Decimal, Rate): Decimal
2108160StLoc[57](loc39: Decimal)
2109161CopyLoc[6](Arg6: &AggPrice)
2110162CopyLoc[57](loc39: Decimal)
2111163Call agg_price::value_to_coins(&AggPrice, Decimal): Decimal
2112164Call decimal::floor_u64(Decimal): u64
2113165StLoc[56](loc38: u64)
2114166ImmBorrowLoc[10](Arg10: Option<Rate>)
2115167Call option::is_some<Rate>(&Option<Rate>): bool
2118169CopyLoc[40](loc22: Decimal)
2119170ImmBorrowLoc[10](Arg10: Option<Rate>)
2120171Call option::borrow<Rate>(&Option<Rate>): &Rate
2122173Call decimal::mul_with_rate(Decimal, Rate): Decimal
2123174StLoc[18](loc0: Decimal)
2126176Call decimal::zero(): Decimal
2127177StLoc[18](loc0: Decimal)
2129178MoveLoc[18](loc0: Decimal)
2130179StLoc[62](loc44: Decimal)
2131180CopyLoc[6](Arg6: &AggPrice)
2132181CopyLoc[62](loc44: Decimal)
2133182Call agg_price::value_to_coins(&AggPrice, Decimal): Decimal
2134183Call decimal::floor_u64(Decimal): u64
2135184StLoc[61](loc43: u64)
2136185MoveLoc[2](Arg2: &FeeConfig)
2137186Call fee::get_fee_rate(&FeeConfig): Rate
2138187StLoc[45](loc27: Rate)
2139188CopyLoc[40](loc22: Decimal)
2140189CopyLoc[52](loc34: Decimal)
2141190Call decimal::add(Decimal, Decimal): Decimal
2142191MoveLoc[45](loc27: Rate)
2143192Call decimal::mul_with_rate(Decimal, Rate): Decimal
2144193StLoc[48](loc30: Decimal)
2145194CopyLoc[6](Arg6: &AggPrice)
2146195CopyLoc[48](loc30: Decimal)
2147196Call agg_price::value_to_coins(&AggPrice, Decimal): Decimal
2148197Call decimal::floor_u64(Decimal): u64
2149198StLoc[47](loc29: u64)
2150199MoveLoc[57](loc39: Decimal)
2151200MoveLoc[48](loc30: Decimal)
2152201MoveLoc[62](loc44: Decimal)
2153202Call decimal::add(Decimal, Decimal): Decimal
2154203Call decimal::add(Decimal, Decimal): Decimal
2155204StLoc[54](loc36: Decimal)
2156205CopyLoc[47](loc29: u64)
2157206CopyLoc[56](loc38: u64)
2159208CopyLoc[61](loc43: u64)
2161210StLoc[53](loc35: u64)
2162211CopyLoc[0](Arg0: &mut Vault<Ty0>)
2163212ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
2165214MoveLoc[42](loc24: u64)
2167216CopyLoc[0](Arg0: &mut Vault<Ty0>)
2168217MutBorrowFieldGeneric[8](Vault.reserved_amount: u64)
2170219CopyLoc[0](Arg0: &mut Vault<Ty0>)
2171220ImmBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
2173222MoveLoc[58](loc40: Decimal)
2174223Call decimal::sub(Decimal, Decimal): Decimal
2175224CopyLoc[0](Arg0: &mut Vault<Ty0>)
2176225MutBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
2178227CopyLoc[0](Arg0: &mut Vault<Ty0>)
2179228MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2180229MoveLoc[65](loc47: Balance<Ty0>)
2181230Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
2182231MoveLoc[53](loc35: u64)
2188235MoveLoc[0](Arg0: &mut Vault<Ty0>)
2190237MoveLoc[1](Arg1: &mut Symbol)
2192239MoveLoc[7](Arg7: &AggPrice)
2194241MoveLoc[6](Arg6: &AggPrice)
2196243LdConst[2](u64: 102)
2199245CopyLoc[0](Arg0: &mut Vault<Ty0>)
2200246MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2201247CopyLoc[56](loc38: u64)
2202248Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
2203249StLoc[55](loc37: Balance<Ty0>)
2204250CopyLoc[0](Arg0: &mut Vault<Ty0>)
2205251MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2206252CopyLoc[47](loc29: u64)
2207253Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
2208254StLoc[46](loc28: Balance<Ty0>)
2209255CopyLoc[61](loc43: u64)
2214259MoveLoc[0](Arg0: &mut Vault<Ty0>)
2215260MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2216261CopyLoc[61](loc43: u64)
2217262Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
2218263Call option::some<Balance<Ty0>>(Balance<Ty0>): Option<Balance<Ty0>>
2219264StLoc[29](loc11: Option<Balance<Ty0>>)
2222266MoveLoc[0](Arg0: &mut Vault<Ty0>)
2224268Call option::none<Balance<Ty0>>(): Option<Balance<Ty0>>
2225269StLoc[29](loc11: Option<Balance<Ty0>>)
2227270MoveLoc[29](loc11: Option<Balance<Ty0>>)
2228271StLoc[60](loc42: Option<Balance<Ty0>>)
2229272CopyLoc[1](Arg1: &mut Symbol)
2230273ImmBorrowField[19](Symbol.opening_size: Decimal)
2232275MoveLoc[41](loc23: Decimal)
2233276Call decimal::sub(Decimal, Decimal): Decimal
2234277CopyLoc[1](Arg1: &mut Symbol)
2235278MutBorrowField[19](Symbol.opening_size: Decimal)
2237280CopyLoc[1](Arg1: &mut Symbol)
2238281ImmBorrowField[18](Symbol.opening_amount: u64)
2240283CopyLoc[12](Arg12: u64)
2242285CopyLoc[1](Arg1: &mut Symbol)
2243286MutBorrowField[18](Symbol.opening_amount: u64)
2245288CopyLoc[1](Arg1: &mut Symbol)
2246289ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
2248291CopyLoc[49](loc31: SDecimal)
2249292Call sdecimal::sub(SDecimal, SDecimal): SDecimal
2250293CopyLoc[1](Arg1: &mut Symbol)
2251294MutBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
2253296CopyLoc[50](loc32: bool)
2255298CopyLoc[6](Arg6: &AggPrice)
2256299CopyLoc[63](loc45: u64)
2257300Call agg_price::coins_to_value(&AggPrice, u64): Decimal
2258301Call sdecimal::from_decimal(bool, Decimal): SDecimal
2259302CopyLoc[40](loc22: Decimal)
2260303MoveLoc[54](loc36: Decimal)
2261304Call decimal::sub(Decimal, Decimal): Decimal
2262305CopyLoc[59](loc41: Decimal)
2263306Call decimal::add(Decimal, Decimal): Decimal
2264307CopyLoc[52](loc34: Decimal)
2265308Call decimal::add(Decimal, Decimal): Decimal
2266309Call sdecimal::sub_with_decimal(SDecimal, Decimal): SDecimal
2267310StLoc[43](loc25: SDecimal)
2268311CopyLoc[1](Arg1: &mut Symbol)
2269312ImmBorrowField[20](Symbol.realised_pnl: SDecimal)
2271314CopyLoc[43](loc25: SDecimal)
2272315Call sdecimal::add(SDecimal, SDecimal): SDecimal
2273316MoveLoc[1](Arg1: &mut Symbol)
2274317MutBorrowField[20](Symbol.realised_pnl: SDecimal)
2276319MoveLoc[64](loc46: Balance<Ty0>)
2277320StLoc[31](loc13: Balance<Ty0>)
2278321MoveLoc[55](loc37: Balance<Ty0>)
2279322StLoc[30](loc12: Balance<Ty0>)
2280323MoveLoc[46](loc28: Balance<Ty0>)
2281324StLoc[28](loc10: Balance<Ty0>)
2282325MoveLoc[60](loc42: Option<Balance<Ty0>>)
2283326StLoc[27](loc9: Option<Balance<Ty0>>)
2284327MoveLoc[6](Arg6: &AggPrice)
2285328Call agg_price::price_of(&AggPrice): Decimal
2286329StLoc[26](loc8: Decimal)
2287330MoveLoc[7](Arg7: &AggPrice)
2288331Call agg_price::price_of(&AggPrice): Decimal
2289332StLoc[25](loc7: Decimal)
2290333MoveLoc[12](Arg12: u64)
2291334StLoc[24](loc6: u64)
2292335MoveLoc[40](loc22: Decimal)
2293336StLoc[23](loc5: Decimal)
2294337MoveLoc[59](loc41: Decimal)
2295338StLoc[22](loc4: Decimal)
2296339MoveLoc[49](loc31: SDecimal)
2297340StLoc[21](loc3: SDecimal)
2298341MoveLoc[52](loc34: Decimal)
2299342StLoc[20](loc2: Decimal)
2300343MoveLoc[51](loc33: u8)
2301344StLoc[19](loc1: u8)
2302345MoveLoc[43](loc25: SDecimal)
2303346StLoc[38](loc20: SDecimal)
2304347MoveLoc[39](loc21: bool)
2305348StLoc[37](loc19: bool)
2306349MoveLoc[50](loc32: bool)
2307350StLoc[36](loc18: bool)
2308351MoveLoc[63](loc45: u64)
2309352StLoc[35](loc17: u64)
2310353MoveLoc[56](loc38: u64)
2311354StLoc[34](loc16: u64)
2312355MoveLoc[47](loc29: u64)
2313356StLoc[33](loc15: u64)
2314357CopyLoc[61](loc43: u64)
2319361MoveLoc[61](loc43: u64)
2320362Call option::some<u64>(u64): Option<u64>
2321363StLoc[32](loc14: Option<u64>)
2324365Call option::none<u64>(): Option<u64>
2325366StLoc[32](loc14: Option<u64>)
2327367MoveLoc[31](loc13: Balance<Ty0>)
2328368MoveLoc[30](loc12: Balance<Ty0>)
2329369MoveLoc[28](loc10: Balance<Ty0>)
2330370MoveLoc[27](loc9: Option<Balance<Ty0>>)
2331371MoveLoc[26](loc8: Decimal)
2332372MoveLoc[25](loc7: Decimal)
2333373MoveLoc[24](loc6: u64)
2334374MoveLoc[23](loc5: Decimal)
2335375MoveLoc[22](loc4: Decimal)
2336376MoveLoc[21](loc3: SDecimal)
2337377MoveLoc[20](loc2: Decimal)
2338378MoveLoc[19](loc1: u8)
2339379MoveLoc[38](loc20: SDecimal)
2340380MoveLoc[37](loc19: bool)
2341381MoveLoc[36](loc18: bool)
2342382MoveLoc[35](loc17: u64)
2343383MoveLoc[34](loc16: u64)
2344384MoveLoc[33](loc15: u64)
2345385MoveLoc[32](loc14: Option<u64>)
2346386MoveLoc[16](Arg16: address)
2347387Pack[9](DecreasePositionSuccessEventV1)
2348388PackGeneric[3](DecreasePositionResultV1<Ty0>)
2352public(friend) unwrap_decrease_position_result_v1<Ty0>(Arg0: DecreasePositionResultV1<Ty0>): Balance<Ty0> * Balance<Ty0> * Balance<Ty0> * Option<Balance<Ty0>> * DecreasePositionSuccessEventV1 {
23540MoveLoc[0](Arg0: DecreasePositionResultV1<Ty0>)
23551UnpackGeneric[3](DecreasePositionResultV1<Ty0>)
2359public(friend) decrease_position_v1_1_with_loss_protection<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &mut Symbol, Arg2: Rate, Arg3: &mut Position<Ty0>, Arg4: &ReservingFeeModel, Arg5: &FundingFeeModel, Arg6: &AggPrice, Arg7: &AggPrice, Arg8: Decimal, Arg9: Rate, Arg10: Option<Rate>, Arg11: bool, Arg12: u64, Arg13: Decimal, Arg14: &PositionInstantExitFeeConfig, Arg15: u64, Arg16: address, Arg17: bool, Arg18: &mut LossProtectionVault<Ty0>, Arg19: Rate): DecreasePositionResultV1<Ty0> {
2376L36: loc16: Option<Balance<Ty0>>
2377L37: loc17: Balance<Ty0>
2378L38: loc18: Balance<Ty0>
2379L39: loc19: Balance<Ty0>
2385L45: loc25: Option<Balance<Ty0>>
2386L46: loc26: Option<u64>
2391L51: loc31: Balance<Ty0>
2397L57: loc37: Balance<Ty0>
2407L67: loc47: Balance<Ty0>
2408L68: loc48: Balance<Ty0>
2411L71: loc51: Balance<Ty0>
2416L76: loc56: Option<Balance<Ty0>>
2420L80: loc60: Balance<Ty0>
2422L82: loc62: Balance<Ty0>
24250CopyLoc[0](Arg0: &mut Vault<Ty0>)
24261ImmBorrowFieldGeneric[3](Vault.enabled: bool)
24325MoveLoc[0](Arg0: &mut Vault<Ty0>)
24347MoveLoc[1](Arg1: &mut Symbol)
24369MoveLoc[4](Arg4: &ReservingFeeModel)
243811MoveLoc[3](Arg3: &mut Position<Ty0>)
244013MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
244215MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
244417MoveLoc[7](Arg7: &AggPrice)
244619MoveLoc[5](Arg5: &FundingFeeModel)
244821MoveLoc[6](Arg6: &AggPrice)
245023LdConst[0](u64: 100)
245325CopyLoc[1](Arg1: &mut Symbol)
245426ImmBorrowField[13](Symbol.decrease_enabled: bool)
246030MoveLoc[0](Arg0: &mut Vault<Ty0>)
246232MoveLoc[1](Arg1: &mut Symbol)
246434MoveLoc[4](Arg4: &ReservingFeeModel)
246636MoveLoc[3](Arg3: &mut Position<Ty0>)
246838MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
247040MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
247242MoveLoc[7](Arg7: &AggPrice)
247444MoveLoc[5](Arg5: &FundingFeeModel)
247646MoveLoc[6](Arg6: &AggPrice)
247848LdConst[5](u64: 105)
248150CopyLoc[4](Arg4: &ReservingFeeModel)
248251Call object::id<ReservingFeeModel>(&ReservingFeeModel): ID
248352CopyLoc[0](Arg0: &mut Vault<Ty0>)
248453ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
249158MoveLoc[0](Arg0: &mut Vault<Ty0>)
249360MoveLoc[1](Arg1: &mut Symbol)
249562MoveLoc[4](Arg4: &ReservingFeeModel)
249764MoveLoc[3](Arg3: &mut Position<Ty0>)
249966MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
250168MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
250370MoveLoc[7](Arg7: &AggPrice)
250572MoveLoc[5](Arg5: &FundingFeeModel)
250774MoveLoc[6](Arg6: &AggPrice)
250976LdConst[12](u64: 112)
251278CopyLoc[5](Arg5: &FundingFeeModel)
251379Call object::id<FundingFeeModel>(&FundingFeeModel): ID
251480CopyLoc[1](Arg1: &mut Symbol)
251581ImmBorrowField[16](Symbol.funding_fee_model: ID)
252286MoveLoc[0](Arg0: &mut Vault<Ty0>)
252488MoveLoc[1](Arg1: &mut Symbol)
252690MoveLoc[4](Arg4: &ReservingFeeModel)
252892MoveLoc[3](Arg3: &mut Position<Ty0>)
253094MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
253296MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
253498MoveLoc[7](Arg7: &AggPrice)
2536100MoveLoc[5](Arg5: &FundingFeeModel)
2538102MoveLoc[6](Arg6: &AggPrice)
2540104LdConst[13](u64: 113)
2543106CopyLoc[0](Arg0: &mut Vault<Ty0>)
2544107MoveLoc[4](Arg4: &ReservingFeeModel)
2545108CopyLoc[15](Arg15: u64)
2546109Call refresh_vault<Ty0>(&mut Vault<Ty0>, &ReservingFeeModel, u64)
2547110MoveLoc[17](Arg17: bool)
2551113CopyLoc[1](Arg1: &mut Symbol)
2553115CopyLoc[7](Arg7: &AggPrice)
2554116CopyLoc[11](Arg11: bool)
2555117Call symbol_delta_size(&Symbol, &AggPrice, bool): SDecimal
2556118StLoc[56](loc36: SDecimal)
2557119CopyLoc[1](Arg1: &mut Symbol)
2558120MoveLoc[5](Arg5: &FundingFeeModel)
2559121MoveLoc[56](loc36: SDecimal)
2560122MoveLoc[13](Arg13: Decimal)
2561123CopyLoc[15](Arg15: u64)
2562124Call refresh_symbol(&mut Symbol, &FundingFeeModel, SDecimal, Decimal, u64)
2565126MoveLoc[5](Arg5: &FundingFeeModel)
2568128MoveLoc[3](Arg3: &mut Position<Ty0>)
2569129CopyLoc[6](Arg6: &AggPrice)
2570130CopyLoc[7](Arg7: &AggPrice)
2571131MoveLoc[8](Arg8: Decimal)
2572132MoveLoc[11](Arg11: bool)
2573133CopyLoc[12](Arg12: u64)
2574134CopyLoc[0](Arg0: &mut Vault<Ty0>)
2575135ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
2577137CopyLoc[1](Arg1: &mut Symbol)
2578138ImmBorrowField[3](Symbol.acc_funding_rate: SRate)
2580140MoveLoc[14](Arg14: &PositionInstantExitFeeConfig)
2581141MoveLoc[15](Arg15: u64)
2582142Call position::decrease_position_v1<Ty0>(&mut Position<Ty0>, &AggPrice, &AggPrice, Decimal, bool, u64, Rate, SRate, &PositionInstantExitFeeConfig, u64): DecreasePositionResultV1<Ty0>
2583143Call position::unwrap_decrease_position_result_v1<Ty0>(DecreasePositionResultV1<Ty0>): bool * bool * u64 * u64 * Decimal * Decimal * Decimal * Decimal * SDecimal * Decimal * u8 * Balance<Ty0> * Balance<Ty0>
2584144StLoc[80](loc60: Balance<Ty0>)
2585145StLoc[82](loc62: Balance<Ty0>)
2586146StLoc[63](loc43: u8)
2587147StLoc[64](loc44: Decimal)
2588148StLoc[61](loc41: SDecimal)
2589149StLoc[75](loc55: Decimal)
2590150StLoc[52](loc32: Decimal)
2591151StLoc[74](loc54: Decimal)
2592152StLoc[53](loc33: Decimal)
2593153StLoc[54](loc34: u64)
2594154StLoc[79](loc59: u64)
2595155StLoc[62](loc42: bool)
2596156StLoc[50](loc30: bool)
2597157CopyLoc[52](loc32: Decimal)
2598158MoveLoc[9](Arg9: Rate)
2599159Call decimal::mul_with_rate(Decimal, Rate): Decimal
2600160StLoc[73](loc53: Decimal)
2601161CopyLoc[6](Arg6: &AggPrice)
2602162CopyLoc[73](loc53: Decimal)
2603163Call agg_price::value_to_coins(&AggPrice, Decimal): Decimal
2604164Call decimal::floor_u64(Decimal): u64
2605165StLoc[72](loc52: u64)
2606166ImmBorrowLoc[10](Arg10: Option<Rate>)
2607167Call option::is_some<Rate>(&Option<Rate>): bool
2610169CopyLoc[52](loc32: Decimal)
2611170ImmBorrowLoc[10](Arg10: Option<Rate>)
2612171Call option::borrow<Rate>(&Option<Rate>): &Rate
2614173Call decimal::mul_with_rate(Decimal, Rate): Decimal
2615174StLoc[20](loc0: Decimal)
2618176Call decimal::zero(): Decimal
2619177StLoc[20](loc0: Decimal)
2621178MoveLoc[20](loc0: Decimal)
2622179StLoc[78](loc58: Decimal)
2623180CopyLoc[6](Arg6: &AggPrice)
2624181CopyLoc[78](loc58: Decimal)
2625182Call agg_price::value_to_coins(&AggPrice, Decimal): Decimal
2626183Call decimal::floor_u64(Decimal): u64
2627184StLoc[77](loc57: u64)
2628185CopyLoc[52](loc32: Decimal)
2629186MoveLoc[2](Arg2: Rate)
2630187Call decimal::mul_with_rate(Decimal, Rate): Decimal
2631188StLoc[59](loc39: Decimal)
2632189CopyLoc[6](Arg6: &AggPrice)
2633190CopyLoc[59](loc39: Decimal)
2634191Call agg_price::value_to_coins(&AggPrice, Decimal): Decimal
2635192Call decimal::floor_u64(Decimal): u64
2636193StLoc[58](loc38: u64)
2637194MoveLoc[73](loc53: Decimal)
2638195MoveLoc[59](loc39: Decimal)
2639196MoveLoc[78](loc58: Decimal)
2640197Call decimal::add(Decimal, Decimal): Decimal
2641198Call decimal::add(Decimal, Decimal): Decimal
2642199StLoc[70](loc50: Decimal)
2643200CopyLoc[58](loc38: u64)
2644201CopyLoc[72](loc52: u64)
2646203CopyLoc[77](loc57: u64)
2648205StLoc[69](loc49: u64)
2649206CopyLoc[62](loc42: bool)
2652208CopyLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
2654210Call loss_protection_vault_value<Ty0>(&LossProtectionVault<Ty0>): u64
2655211StLoc[66](loc46: u64)
2656212CopyLoc[66](loc46: u64)
2661216CopyLoc[79](loc59: u64)
2664219StLoc[31](loc11: bool)
2668222StLoc[31](loc11: bool)
2670223MoveLoc[31](loc11: bool)
2673225CopyLoc[66](loc46: u64)
2674226CopyLoc[79](loc59: u64)
2678229CopyLoc[79](loc59: u64)
2679230StLoc[40](loc20: u64)
2682232MoveLoc[66](loc46: u64)
2683233StLoc[40](loc20: u64)
2685234MoveLoc[40](loc20: u64)
2686235StLoc[49](loc29: u64)
2687236ImmBorrowLoc[80](loc60: Balance<Ty0>)
2688237Call balance::value<Ty0>(&Balance<Ty0>): u64
2689238StLoc[81](loc61: u64)
2690239CopyLoc[49](loc29: u64)
2691240CopyLoc[81](loc61: u64)
2695243MoveLoc[81](loc61: u64)
2696244StLoc[41](loc21: u64)
2699246MoveLoc[49](loc29: u64)
2700247StLoc[41](loc21: u64)
2702248MoveLoc[41](loc21: u64)
2703249StLoc[47](loc27: u64)
2704250CopyLoc[47](loc27: u64)
2709254MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
2710255CopyLoc[47](loc27: u64)
2711256Call withdraw_from_loss_protection_vault<Ty0>(&mut LossProtectionVault<Ty0>, u64): Balance<Ty0>
2712257StLoc[68](loc48: Balance<Ty0>)
2713258MutBorrowLoc[80](loc60: Balance<Ty0>)
2714259CopyLoc[47](loc27: u64)
2715260Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
2716261StLoc[51](loc31: Balance<Ty0>)
2717262MutBorrowLoc[82](loc62: Balance<Ty0>)
2718263MoveLoc[51](loc31: Balance<Ty0>)
2719264Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
2721266MutBorrowLoc[80](loc60: Balance<Ty0>)
2722267MoveLoc[68](loc48: Balance<Ty0>)
2723268Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
2725270MoveLoc[47](loc27: u64)
2726271StLoc[42](loc22: u64)
2729273MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
2732276StLoc[42](loc22: u64)
2734277MoveLoc[42](loc22: u64)
2735278StLoc[43](loc23: u64)
2738280MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
2741283StLoc[43](loc23: u64)
2743284MoveLoc[43](loc23: u64)
2744285StLoc[60](loc40: u64)
2745286CopyLoc[60](loc40: u64)
2751291MoveLoc[60](loc40: u64)
2752292PackGeneric[4](LossProtectionVaultChangeEvent<Ty0>)
2753293Call event::emit<LossProtectionVaultChangeEvent<Ty0>>(LossProtectionVaultChangeEvent<Ty0>)
2756295ImmBorrowLoc[82](loc62: Balance<Ty0>)
2757296Call balance::value<Ty0>(&Balance<Ty0>): u64
2758297StLoc[83](loc63: u64)
2759298CopyLoc[79](loc59: u64)
2760299Call decimal::from_u64(u64): Decimal
2761300MoveLoc[19](Arg19: Rate)
2762301Call decimal::mul_with_rate(Decimal, Rate): Decimal
2763302Call decimal::floor_u64(Decimal): u64
2764303StLoc[65](loc45: u64)
2765304CopyLoc[65](loc45: u64)
2766305CopyLoc[83](loc63: u64)
2770308MoveLoc[83](loc63: u64)
2771309StLoc[44](loc24: u64)
2774311MoveLoc[65](loc45: u64)
2775312StLoc[44](loc24: u64)
2777313MoveLoc[44](loc24: u64)
2778314StLoc[48](loc28: u64)
2779315CopyLoc[48](loc28: u64)
2784319MutBorrowLoc[82](loc62: Balance<Ty0>)
2785320CopyLoc[48](loc28: u64)
2786321Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
2787322StLoc[67](loc47: Balance<Ty0>)
2788323MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
2789324MoveLoc[67](loc47: Balance<Ty0>)
2790325Call deposit_to_loss_protection_vault<Ty0>(&mut LossProtectionVault<Ty0>, Balance<Ty0>)
2791326MoveLoc[48](loc28: u64)
2793328PackGeneric[4](LossProtectionVaultChangeEvent<Ty0>)
2794329Call event::emit<LossProtectionVaultChangeEvent<Ty0>>(LossProtectionVaultChangeEvent<Ty0>)
2797331MoveLoc[18](Arg18: &mut LossProtectionVault<Ty0>)
2800333CopyLoc[0](Arg0: &mut Vault<Ty0>)
2801334ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
2803336MoveLoc[54](loc34: u64)
2805338CopyLoc[0](Arg0: &mut Vault<Ty0>)
2806339MutBorrowFieldGeneric[8](Vault.reserved_amount: u64)
2808341CopyLoc[0](Arg0: &mut Vault<Ty0>)
2809342ImmBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
2811344MoveLoc[74](loc54: Decimal)
2812345Call decimal::sub(Decimal, Decimal): Decimal
2813346CopyLoc[0](Arg0: &mut Vault<Ty0>)
2814347MutBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
2816349CopyLoc[0](Arg0: &mut Vault<Ty0>)
2817350MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2818351MoveLoc[82](loc62: Balance<Ty0>)
2819352Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
2820353MoveLoc[69](loc49: u64)
2826357MoveLoc[0](Arg0: &mut Vault<Ty0>)
2828359MoveLoc[1](Arg1: &mut Symbol)
2830361MoveLoc[7](Arg7: &AggPrice)
2832363MoveLoc[6](Arg6: &AggPrice)
2834365LdConst[2](u64: 102)
2837367CopyLoc[0](Arg0: &mut Vault<Ty0>)
2838368MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2839369CopyLoc[72](loc52: u64)
2840370Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
2841371StLoc[71](loc51: Balance<Ty0>)
2842372CopyLoc[0](Arg0: &mut Vault<Ty0>)
2843373MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2844374CopyLoc[58](loc38: u64)
2845375Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
2846376StLoc[57](loc37: Balance<Ty0>)
2847377CopyLoc[77](loc57: u64)
2852381MoveLoc[0](Arg0: &mut Vault<Ty0>)
2853382MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
2854383CopyLoc[77](loc57: u64)
2855384Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
2856385Call option::some<Balance<Ty0>>(Balance<Ty0>): Option<Balance<Ty0>>
2857386StLoc[45](loc25: Option<Balance<Ty0>>)
2860388MoveLoc[0](Arg0: &mut Vault<Ty0>)
2862390Call option::none<Balance<Ty0>>(): Option<Balance<Ty0>>
2863391StLoc[45](loc25: Option<Balance<Ty0>>)
2865392MoveLoc[45](loc25: Option<Balance<Ty0>>)
2866393StLoc[76](loc56: Option<Balance<Ty0>>)
2867394CopyLoc[1](Arg1: &mut Symbol)
2868395ImmBorrowField[19](Symbol.opening_size: Decimal)
2870397MoveLoc[53](loc33: Decimal)
2871398Call decimal::sub(Decimal, Decimal): Decimal
2872399CopyLoc[1](Arg1: &mut Symbol)
2873400MutBorrowField[19](Symbol.opening_size: Decimal)
2875402CopyLoc[1](Arg1: &mut Symbol)
2876403ImmBorrowField[18](Symbol.opening_amount: u64)
2878405CopyLoc[12](Arg12: u64)
2880407CopyLoc[1](Arg1: &mut Symbol)
2881408MutBorrowField[18](Symbol.opening_amount: u64)
2883410CopyLoc[1](Arg1: &mut Symbol)
2884411ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
2886413CopyLoc[61](loc41: SDecimal)
2887414Call sdecimal::sub(SDecimal, SDecimal): SDecimal
2888415CopyLoc[1](Arg1: &mut Symbol)
2889416MutBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
2891418CopyLoc[62](loc42: bool)
2893420CopyLoc[6](Arg6: &AggPrice)
2894421CopyLoc[79](loc59: u64)
2895422Call agg_price::coins_to_value(&AggPrice, u64): Decimal
2896423Call sdecimal::from_decimal(bool, Decimal): SDecimal
2897424CopyLoc[52](loc32: Decimal)
2898425MoveLoc[70](loc50: Decimal)
2899426Call decimal::sub(Decimal, Decimal): Decimal
2900427CopyLoc[75](loc55: Decimal)
2901428Call decimal::add(Decimal, Decimal): Decimal
2902429CopyLoc[64](loc44: Decimal)
2903430Call decimal::add(Decimal, Decimal): Decimal
2904431Call sdecimal::sub_with_decimal(SDecimal, Decimal): SDecimal
2905432StLoc[55](loc35: SDecimal)
2906433CopyLoc[1](Arg1: &mut Symbol)
2907434ImmBorrowField[20](Symbol.realised_pnl: SDecimal)
2909436CopyLoc[55](loc35: SDecimal)
2910437Call sdecimal::add(SDecimal, SDecimal): SDecimal
2911438MoveLoc[1](Arg1: &mut Symbol)
2912439MutBorrowField[20](Symbol.realised_pnl: SDecimal)
2914441MoveLoc[80](loc60: Balance<Ty0>)
2915442StLoc[39](loc19: Balance<Ty0>)
2916443MoveLoc[71](loc51: Balance<Ty0>)
2917444StLoc[38](loc18: Balance<Ty0>)
2918445MoveLoc[57](loc37: Balance<Ty0>)
2919446StLoc[37](loc17: Balance<Ty0>)
2920447MoveLoc[76](loc56: Option<Balance<Ty0>>)
2921448StLoc[36](loc16: Option<Balance<Ty0>>)
2922449MoveLoc[6](Arg6: &AggPrice)
2923450Call agg_price::price_of(&AggPrice): Decimal
2924451StLoc[35](loc15: Decimal)
2925452MoveLoc[7](Arg7: &AggPrice)
2926453Call agg_price::price_of(&AggPrice): Decimal
2927454StLoc[34](loc14: Decimal)
2928455MoveLoc[12](Arg12: u64)
2929456StLoc[33](loc13: u64)
2930457MoveLoc[52](loc32: Decimal)
2931458StLoc[32](loc12: Decimal)
2932459MoveLoc[75](loc55: Decimal)
2933460StLoc[30](loc10: Decimal)
2934461MoveLoc[61](loc41: SDecimal)
2935462StLoc[29](loc9: SDecimal)
2936463MoveLoc[64](loc44: Decimal)
2937464StLoc[28](loc8: Decimal)
2938465MoveLoc[63](loc43: u8)
2939466StLoc[27](loc7: u8)
2940467MoveLoc[55](loc35: SDecimal)
2941468StLoc[26](loc6: SDecimal)
2942469MoveLoc[50](loc30: bool)
2943470StLoc[25](loc5: bool)
2944471MoveLoc[62](loc42: bool)
2945472StLoc[24](loc4: bool)
2946473MoveLoc[79](loc59: u64)
2947474StLoc[23](loc3: u64)
2948475MoveLoc[72](loc52: u64)
2949476StLoc[22](loc2: u64)
2950477MoveLoc[58](loc38: u64)
2951478StLoc[21](loc1: u64)
2952479CopyLoc[77](loc57: u64)
2957483MoveLoc[77](loc57: u64)
2958484Call option::some<u64>(u64): Option<u64>
2959485StLoc[46](loc26: Option<u64>)
2962487Call option::none<u64>(): Option<u64>
2963488StLoc[46](loc26: Option<u64>)
2965489MoveLoc[39](loc19: Balance<Ty0>)
2966490MoveLoc[38](loc18: Balance<Ty0>)
2967491MoveLoc[37](loc17: Balance<Ty0>)
2968492MoveLoc[36](loc16: Option<Balance<Ty0>>)
2969493MoveLoc[35](loc15: Decimal)
2970494MoveLoc[34](loc14: Decimal)
2971495MoveLoc[33](loc13: u64)
2972496MoveLoc[32](loc12: Decimal)
2973497MoveLoc[30](loc10: Decimal)
2974498MoveLoc[29](loc9: SDecimal)
2975499MoveLoc[28](loc8: Decimal)
2976500MoveLoc[27](loc7: u8)
2977501MoveLoc[26](loc6: SDecimal)
2978502MoveLoc[25](loc5: bool)
2979503MoveLoc[24](loc4: bool)
2980504MoveLoc[23](loc3: u64)
2981505MoveLoc[22](loc2: u64)
2982506MoveLoc[21](loc1: u64)
2983507MoveLoc[46](loc26: Option<u64>)
2984508MoveLoc[16](Arg16: address)
2985509Pack[9](DecreasePositionSuccessEventV1)
2986510PackGeneric[3](DecreasePositionResultV1<Ty0>)
2990public(friend) decrease_reserved_from_position<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &mut Position<Ty0>, Arg2: &ReservingFeeModel, Arg3: u64, Arg4: u64): DecreaseReservedFromPositionEvent {
2991L5: loc0: Balance<Ty0>
29930CopyLoc[2](Arg2: &ReservingFeeModel)
29941Call object::id<ReservingFeeModel>(&ReservingFeeModel): ID
29952CopyLoc[0](Arg0: &mut Vault<Ty0>)
29963ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
30038MoveLoc[0](Arg0: &mut Vault<Ty0>)
300510MoveLoc[2](Arg2: &ReservingFeeModel)
300712MoveLoc[1](Arg1: &mut Position<Ty0>)
300914LdConst[12](u64: 112)
301216CopyLoc[0](Arg0: &mut Vault<Ty0>)
301317MoveLoc[2](Arg2: &ReservingFeeModel)
301418MoveLoc[4](Arg4: u64)
301519Call refresh_vault<Ty0>(&mut Vault<Ty0>, &ReservingFeeModel, u64)
301620MoveLoc[1](Arg1: &mut Position<Ty0>)
301721CopyLoc[3](Arg3: u64)
301822CopyLoc[0](Arg0: &mut Vault<Ty0>)
301923ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
302125Call position::decrease_reserved_from_position<Ty0>(&mut Position<Ty0>, u64, Rate): Balance<Ty0>
302226StLoc[5](loc0: Balance<Ty0>)
302327CopyLoc[0](Arg0: &mut Vault<Ty0>)
302428ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
302630CopyLoc[3](Arg3: u64)
302832CopyLoc[0](Arg0: &mut Vault<Ty0>)
302933MutBorrowFieldGeneric[8](Vault.reserved_amount: u64)
303135MoveLoc[0](Arg0: &mut Vault<Ty0>)
303236MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
303337MoveLoc[5](loc0: Balance<Ty0>)
303438Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
303640MoveLoc[3](Arg3: u64)
303741Pack[10](DecreaseReservedFromPositionEvent)
3041public(friend) pledge_in_position<Ty0>(Arg0: &mut Position<Ty0>, Arg1: Balance<Ty0>): PledgeInPositionEvent {
30440ImmBorrowLoc[1](Arg1: Balance<Ty0>)
30451Call balance::value<Ty0>(&Balance<Ty0>): u64
30473MoveLoc[0](Arg0: &mut Position<Ty0>)
30484MoveLoc[1](Arg1: Balance<Ty0>)
30495Call position::pledge_in_position<Ty0>(&mut Position<Ty0>, Balance<Ty0>)
30506MoveLoc[2](loc0: u64)
30517Pack[11](PledgeInPositionEvent)
3055public(friend) redeem_from_position_v1<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &mut Symbol, Arg2: &mut Position<Ty0>, Arg3: &ReservingFeeModel, Arg4: &FundingFeeModel, Arg5: &AggPrice, Arg6: &AggPrice, Arg7: bool, Arg8: u64, Arg9: Decimal, Arg10: u64, Arg11: bool): Balance<Ty0> * RedeemFromPositionEvent {
3057L13: loc1: RedeemFromPositionEvent
3058L14: loc2: Balance<Ty0>
30600CopyLoc[3](Arg3: &ReservingFeeModel)
30611Call object::id<ReservingFeeModel>(&ReservingFeeModel): ID
30622CopyLoc[0](Arg0: &mut Vault<Ty0>)
30633ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
30708MoveLoc[0](Arg0: &mut Vault<Ty0>)
307210MoveLoc[1](Arg1: &mut Symbol)
307412MoveLoc[3](Arg3: &ReservingFeeModel)
307614MoveLoc[2](Arg2: &mut Position<Ty0>)
307816MoveLoc[6](Arg6: &AggPrice)
308018MoveLoc[4](Arg4: &FundingFeeModel)
308220MoveLoc[5](Arg5: &AggPrice)
308422LdConst[12](u64: 112)
308724CopyLoc[4](Arg4: &FundingFeeModel)
308825Call object::id<FundingFeeModel>(&FundingFeeModel): ID
308926CopyLoc[1](Arg1: &mut Symbol)
309027ImmBorrowField[16](Symbol.funding_fee_model: ID)
309732MoveLoc[0](Arg0: &mut Vault<Ty0>)
309934MoveLoc[1](Arg1: &mut Symbol)
310136MoveLoc[3](Arg3: &ReservingFeeModel)
310338MoveLoc[2](Arg2: &mut Position<Ty0>)
310540MoveLoc[6](Arg6: &AggPrice)
310742MoveLoc[4](Arg4: &FundingFeeModel)
310944MoveLoc[5](Arg5: &AggPrice)
311146LdConst[13](u64: 113)
311448CopyLoc[0](Arg0: &mut Vault<Ty0>)
311549MoveLoc[3](Arg3: &ReservingFeeModel)
311650CopyLoc[10](Arg10: u64)
311751Call refresh_vault<Ty0>(&mut Vault<Ty0>, &ReservingFeeModel, u64)
311852MoveLoc[11](Arg11: bool)
312255CopyLoc[1](Arg1: &mut Symbol)
312457CopyLoc[6](Arg6: &AggPrice)
312558CopyLoc[7](Arg7: bool)
312659Call symbol_delta_size(&Symbol, &AggPrice, bool): SDecimal
312760StLoc[12](loc0: SDecimal)
312861CopyLoc[1](Arg1: &mut Symbol)
312962MoveLoc[4](Arg4: &FundingFeeModel)
313063MoveLoc[12](loc0: SDecimal)
313164MoveLoc[9](Arg9: Decimal)
313265CopyLoc[10](Arg10: u64)
313366Call refresh_symbol(&mut Symbol, &FundingFeeModel, SDecimal, Decimal, u64)
313668MoveLoc[4](Arg4: &FundingFeeModel)
313970MoveLoc[2](Arg2: &mut Position<Ty0>)
314071CopyLoc[5](Arg5: &AggPrice)
314172CopyLoc[6](Arg6: &AggPrice)
314273MoveLoc[7](Arg7: bool)
314374CopyLoc[8](Arg8: u64)
314475MoveLoc[0](Arg0: &mut Vault<Ty0>)
314576ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
314778MoveLoc[1](Arg1: &mut Symbol)
314879ImmBorrowField[3](Symbol.acc_funding_rate: SRate)
315081MoveLoc[10](Arg10: u64)
315182Call position::redeem_from_position<Ty0>(&mut Position<Ty0>, &AggPrice, &AggPrice, bool, u64, Rate, SRate, u64): Balance<Ty0>
315283StLoc[14](loc2: Balance<Ty0>)
315384MoveLoc[5](Arg5: &AggPrice)
315485Call agg_price::price_of(&AggPrice): Decimal
315586MoveLoc[6](Arg6: &AggPrice)
315687Call agg_price::price_of(&AggPrice): Decimal
315788MoveLoc[8](Arg8: u64)
315889Pack[12](RedeemFromPositionEvent)
315990StLoc[13](loc1: RedeemFromPositionEvent)
316091MoveLoc[14](loc2: Balance<Ty0>)
316192MoveLoc[13](loc1: RedeemFromPositionEvent)
3165public(friend) liquidate_position_v1<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &mut Symbol, Arg2: &mut Position<Ty0>, Arg3: &ReservingFeeModel, Arg4: &FundingFeeModel, Arg5: &AggPrice, Arg6: &AggPrice, Arg7: bool, Arg8: Decimal, Arg9: u64, Arg10: address, Arg11: bool, Arg12: Rate, Arg13: address): Balance<Ty0> * Balance<Ty0> * LiquidatePositionEvent {
3168L16: loc2: LiquidatePositionEvent
3178L26: loc12: Balance<Ty0>
3179L27: loc13: Balance<Ty0>
3180L28: loc14: Balance<Ty0>
31830CopyLoc[0](Arg0: &mut Vault<Ty0>)
31841ImmBorrowFieldGeneric[3](Vault.enabled: bool)
31905MoveLoc[0](Arg0: &mut Vault<Ty0>)
31927MoveLoc[1](Arg1: &mut Symbol)
31949MoveLoc[3](Arg3: &ReservingFeeModel)
319611MoveLoc[2](Arg2: &mut Position<Ty0>)
319813MoveLoc[6](Arg6: &AggPrice)
320015MoveLoc[4](Arg4: &FundingFeeModel)
320217MoveLoc[5](Arg5: &AggPrice)
320419LdConst[0](u64: 100)
320721CopyLoc[1](Arg1: &mut Symbol)
320822ImmBorrowField[14](Symbol.liquidate_enabled: bool)
321426MoveLoc[0](Arg0: &mut Vault<Ty0>)
321628MoveLoc[1](Arg1: &mut Symbol)
321830MoveLoc[3](Arg3: &ReservingFeeModel)
322032MoveLoc[2](Arg2: &mut Position<Ty0>)
322234MoveLoc[6](Arg6: &AggPrice)
322436MoveLoc[4](Arg4: &FundingFeeModel)
322638MoveLoc[5](Arg5: &AggPrice)
322840LdConst[6](u64: 106)
323142CopyLoc[3](Arg3: &ReservingFeeModel)
323243Call object::id<ReservingFeeModel>(&ReservingFeeModel): ID
323344CopyLoc[0](Arg0: &mut Vault<Ty0>)
323445ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
324150MoveLoc[0](Arg0: &mut Vault<Ty0>)
324352MoveLoc[1](Arg1: &mut Symbol)
324554MoveLoc[3](Arg3: &ReservingFeeModel)
324756MoveLoc[2](Arg2: &mut Position<Ty0>)
324958MoveLoc[6](Arg6: &AggPrice)
325160MoveLoc[4](Arg4: &FundingFeeModel)
325362MoveLoc[5](Arg5: &AggPrice)
325564LdConst[12](u64: 112)
325866CopyLoc[4](Arg4: &FundingFeeModel)
325967Call object::id<FundingFeeModel>(&FundingFeeModel): ID
326068CopyLoc[1](Arg1: &mut Symbol)
326169ImmBorrowField[16](Symbol.funding_fee_model: ID)
326874MoveLoc[0](Arg0: &mut Vault<Ty0>)
327076MoveLoc[1](Arg1: &mut Symbol)
327278MoveLoc[3](Arg3: &ReservingFeeModel)
327480MoveLoc[2](Arg2: &mut Position<Ty0>)
327682MoveLoc[6](Arg6: &AggPrice)
327884MoveLoc[4](Arg4: &FundingFeeModel)
328086MoveLoc[5](Arg5: &AggPrice)
328288LdConst[13](u64: 113)
328590CopyLoc[0](Arg0: &mut Vault<Ty0>)
328691MoveLoc[3](Arg3: &ReservingFeeModel)
328792CopyLoc[9](Arg9: u64)
328893Call refresh_vault<Ty0>(&mut Vault<Ty0>, &ReservingFeeModel, u64)
328994MoveLoc[11](Arg11: bool)
329397CopyLoc[1](Arg1: &mut Symbol)
329599CopyLoc[6](Arg6: &AggPrice)
3296100CopyLoc[7](Arg7: bool)
3297101Call symbol_delta_size(&Symbol, &AggPrice, bool): SDecimal
3298102StLoc[15](loc1: SDecimal)
3299103CopyLoc[1](Arg1: &mut Symbol)
3300104MoveLoc[4](Arg4: &FundingFeeModel)
3301105MoveLoc[15](loc1: SDecimal)
3302106MoveLoc[8](Arg8: Decimal)
3303107MoveLoc[9](Arg9: u64)
3304108Call refresh_symbol(&mut Symbol, &FundingFeeModel, SDecimal, Decimal, u64)
3307110MoveLoc[4](Arg4: &FundingFeeModel)
3310112MoveLoc[2](Arg2: &mut Position<Ty0>)
3311113CopyLoc[5](Arg5: &AggPrice)
3312114CopyLoc[6](Arg6: &AggPrice)
3313115MoveLoc[7](Arg7: bool)
3314116CopyLoc[0](Arg0: &mut Vault<Ty0>)
3315117ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
3317119CopyLoc[1](Arg1: &mut Symbol)
3318120ImmBorrowField[3](Symbol.acc_funding_rate: SRate)
3320122MoveLoc[12](Arg12: Rate)
3321123Call position::liquidate_position<Ty0>(&mut Position<Ty0>, &AggPrice, &AggPrice, bool, Rate, SRate, Rate): u64 * u64 * u64 * u64 * Decimal * Decimal * Decimal * SDecimal * u64 * Decimal * Balance<Ty0> * Balance<Ty0> * Balance<Ty0>
3322124StLoc[27](loc13: Balance<Ty0>)
3323125StLoc[26](loc12: Balance<Ty0>)
3324126StLoc[28](loc14: Balance<Ty0>)
3325127StLoc[19](loc5: Decimal)
3326128StLoc[18](loc4: u64)
3327129StLoc[17](loc3: SDecimal)
3328130StLoc[25](loc11: Decimal)
3329131StLoc[24](loc10: Decimal)
3330132StLoc[22](loc8: Decimal)
3331133StLoc[23](loc9: u64)
3332134StLoc[21](loc7: u64)
3333135StLoc[29](loc15: u64)
3334136StLoc[20](loc6: u64)
3335137CopyLoc[0](Arg0: &mut Vault<Ty0>)
3336138ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
3338140MoveLoc[23](loc9: u64)
3340142CopyLoc[0](Arg0: &mut Vault<Ty0>)
3341143MutBorrowFieldGeneric[8](Vault.reserved_amount: u64)
3343145CopyLoc[0](Arg0: &mut Vault<Ty0>)
3344146ImmBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
3346148MoveLoc[24](loc10: Decimal)
3347149Call decimal::sub(Decimal, Decimal): Decimal
3348150CopyLoc[0](Arg0: &mut Vault<Ty0>)
3349151MutBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
3351153MoveLoc[0](Arg0: &mut Vault<Ty0>)
3352154MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
3353155MoveLoc[28](loc14: Balance<Ty0>)
3354156Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
3356158CopyLoc[1](Arg1: &mut Symbol)
3357159ImmBorrowField[19](Symbol.opening_size: Decimal)
3359161CopyLoc[22](loc8: Decimal)
3360162Call decimal::sub(Decimal, Decimal): Decimal
3361163CopyLoc[1](Arg1: &mut Symbol)
3362164MutBorrowField[19](Symbol.opening_size: Decimal)
3364166CopyLoc[1](Arg1: &mut Symbol)
3365167ImmBorrowField[18](Symbol.opening_amount: u64)
3367169CopyLoc[21](loc7: u64)
3369171CopyLoc[1](Arg1: &mut Symbol)
3370172MutBorrowField[18](Symbol.opening_amount: u64)
3372174CopyLoc[1](Arg1: &mut Symbol)
3373175ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
3375177CopyLoc[17](loc3: SDecimal)
3376178Call sdecimal::sub(SDecimal, SDecimal): SDecimal
3377179CopyLoc[1](Arg1: &mut Symbol)
3378180MutBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
3381183CopyLoc[5](Arg5: &AggPrice)
3382184CopyLoc[29](loc15: u64)
3383185Call agg_price::coins_to_value(&AggPrice, u64): Decimal
3384186Call sdecimal::from_decimal(bool, Decimal): SDecimal
3385187CopyLoc[25](loc11: Decimal)
3386188Call sdecimal::sub_with_decimal(SDecimal, Decimal): SDecimal
3387189StLoc[14](loc0: SDecimal)
3388190CopyLoc[1](Arg1: &mut Symbol)
3389191ImmBorrowField[20](Symbol.realised_pnl: SDecimal)
3391193CopyLoc[14](loc0: SDecimal)
3392194Call sdecimal::add(SDecimal, SDecimal): SDecimal
3393195MoveLoc[1](Arg1: &mut Symbol)
3394196MutBorrowField[20](Symbol.realised_pnl: SDecimal)
3396198CopyLoc[18](loc4: u64)
3401202MoveLoc[18](loc4: u64)
3402203MoveLoc[19](loc5: Decimal)
3403204MoveLoc[13](Arg13: address)
3404205Pack[14](LiquidationFeeEvent)
3405206Call event::emit<LiquidationFeeEvent>(LiquidationFeeEvent)
3407207MoveLoc[10](Arg10: address)
3408208MoveLoc[5](Arg5: &AggPrice)
3409209Call agg_price::price_of(&AggPrice): Decimal
3410210MoveLoc[6](Arg6: &AggPrice)
3411211Call agg_price::price_of(&AggPrice): Decimal
3412212MoveLoc[22](loc8: Decimal)
3413213MoveLoc[25](loc11: Decimal)
3414214MoveLoc[17](loc3: SDecimal)
3415215MoveLoc[14](loc0: SDecimal)
3416216MoveLoc[29](loc15: u64)
3417217MoveLoc[20](loc6: u64)
3418218MoveLoc[21](loc7: u64)
3419219Pack[13](LiquidatePositionEvent)
3420220StLoc[16](loc2: LiquidatePositionEvent)
3421221MoveLoc[26](loc12: Balance<Ty0>)
3422222MoveLoc[27](loc13: Balance<Ty0>)
3423223MoveLoc[16](loc2: LiquidatePositionEvent)
3427public(friend) liquidate_position_v1_with_loss_protection<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &mut Symbol, Arg2: &mut Position<Ty0>, Arg3: &ReservingFeeModel, Arg4: &FundingFeeModel, Arg5: &AggPrice, Arg6: &AggPrice, Arg7: bool, Arg8: Decimal, Arg9: u64, Arg10: address, Arg11: bool, Arg12: &mut LossProtectionVault<Ty0>, Arg13: Rate, Arg14: Rate, Arg15: address): Balance<Ty0> * Balance<Ty0> * LiquidatePositionEvent {
3432L20: loc4: LiquidatePositionEvent
3438L26: loc10: Balance<Ty0>
3444L32: loc16: Balance<Ty0>
3445L33: loc17: Balance<Ty0>
3446L34: loc18: Balance<Ty0>
34500CopyLoc[0](Arg0: &mut Vault<Ty0>)
34511ImmBorrowFieldGeneric[3](Vault.enabled: bool)
34575MoveLoc[0](Arg0: &mut Vault<Ty0>)
34597MoveLoc[1](Arg1: &mut Symbol)
34619MoveLoc[3](Arg3: &ReservingFeeModel)
346311MoveLoc[2](Arg2: &mut Position<Ty0>)
346513MoveLoc[12](Arg12: &mut LossProtectionVault<Ty0>)
346715MoveLoc[6](Arg6: &AggPrice)
346917MoveLoc[4](Arg4: &FundingFeeModel)
347119MoveLoc[5](Arg5: &AggPrice)
347321LdConst[0](u64: 100)
347623CopyLoc[1](Arg1: &mut Symbol)
347724ImmBorrowField[14](Symbol.liquidate_enabled: bool)
348328MoveLoc[0](Arg0: &mut Vault<Ty0>)
348530MoveLoc[1](Arg1: &mut Symbol)
348732MoveLoc[3](Arg3: &ReservingFeeModel)
348934MoveLoc[2](Arg2: &mut Position<Ty0>)
349136MoveLoc[12](Arg12: &mut LossProtectionVault<Ty0>)
349338MoveLoc[6](Arg6: &AggPrice)
349540MoveLoc[4](Arg4: &FundingFeeModel)
349742MoveLoc[5](Arg5: &AggPrice)
349944LdConst[6](u64: 106)
350246CopyLoc[3](Arg3: &ReservingFeeModel)
350347Call object::id<ReservingFeeModel>(&ReservingFeeModel): ID
350448CopyLoc[0](Arg0: &mut Vault<Ty0>)
350549ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
351254MoveLoc[0](Arg0: &mut Vault<Ty0>)
351456MoveLoc[1](Arg1: &mut Symbol)
351658MoveLoc[3](Arg3: &ReservingFeeModel)
351860MoveLoc[2](Arg2: &mut Position<Ty0>)
352062MoveLoc[12](Arg12: &mut LossProtectionVault<Ty0>)
352264MoveLoc[6](Arg6: &AggPrice)
352466MoveLoc[4](Arg4: &FundingFeeModel)
352668MoveLoc[5](Arg5: &AggPrice)
352870LdConst[12](u64: 112)
353172CopyLoc[4](Arg4: &FundingFeeModel)
353273Call object::id<FundingFeeModel>(&FundingFeeModel): ID
353374CopyLoc[1](Arg1: &mut Symbol)
353475ImmBorrowField[16](Symbol.funding_fee_model: ID)
354180MoveLoc[0](Arg0: &mut Vault<Ty0>)
354382MoveLoc[1](Arg1: &mut Symbol)
354584MoveLoc[3](Arg3: &ReservingFeeModel)
354786MoveLoc[2](Arg2: &mut Position<Ty0>)
354988MoveLoc[12](Arg12: &mut LossProtectionVault<Ty0>)
355190MoveLoc[6](Arg6: &AggPrice)
355392MoveLoc[4](Arg4: &FundingFeeModel)
355594MoveLoc[5](Arg5: &AggPrice)
355796LdConst[13](u64: 113)
356098CopyLoc[0](Arg0: &mut Vault<Ty0>)
356199MoveLoc[3](Arg3: &ReservingFeeModel)
3562100CopyLoc[9](Arg9: u64)
3563101Call refresh_vault<Ty0>(&mut Vault<Ty0>, &ReservingFeeModel, u64)
3564102MoveLoc[11](Arg11: bool)
3568105CopyLoc[1](Arg1: &mut Symbol)
3570107CopyLoc[6](Arg6: &AggPrice)
3571108CopyLoc[7](Arg7: bool)
3572109Call symbol_delta_size(&Symbol, &AggPrice, bool): SDecimal
3573110StLoc[19](loc3: SDecimal)
3574111CopyLoc[1](Arg1: &mut Symbol)
3575112MoveLoc[4](Arg4: &FundingFeeModel)
3576113MoveLoc[19](loc3: SDecimal)
3577114MoveLoc[8](Arg8: Decimal)
3578115MoveLoc[9](Arg9: u64)
3579116Call refresh_symbol(&mut Symbol, &FundingFeeModel, SDecimal, Decimal, u64)
3582118MoveLoc[4](Arg4: &FundingFeeModel)
3585120MoveLoc[2](Arg2: &mut Position<Ty0>)
3586121CopyLoc[5](Arg5: &AggPrice)
3587122CopyLoc[6](Arg6: &AggPrice)
3588123MoveLoc[7](Arg7: bool)
3589124CopyLoc[0](Arg0: &mut Vault<Ty0>)
3590125ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
3592127CopyLoc[1](Arg1: &mut Symbol)
3593128ImmBorrowField[3](Symbol.acc_funding_rate: SRate)
3595130MoveLoc[14](Arg14: Rate)
3596131Call position::liquidate_position<Ty0>(&mut Position<Ty0>, &AggPrice, &AggPrice, bool, Rate, SRate, Rate): u64 * u64 * u64 * u64 * Decimal * Decimal * Decimal * SDecimal * u64 * Decimal * Balance<Ty0> * Balance<Ty0> * Balance<Ty0>
3597132StLoc[33](loc17: Balance<Ty0>)
3598133StLoc[32](loc16: Balance<Ty0>)
3599134StLoc[34](loc18: Balance<Ty0>)
3600135StLoc[23](loc7: Decimal)
3601136StLoc[22](loc6: u64)
3602137StLoc[21](loc5: SDecimal)
3603138StLoc[31](loc15: Decimal)
3604139StLoc[30](loc14: Decimal)
3605140StLoc[28](loc12: Decimal)
3606141StLoc[29](loc13: u64)
3607142StLoc[27](loc11: u64)
3608143StLoc[36](loc20: u64)
3609144StLoc[24](loc8: u64)
3610145CopyLoc[0](Arg0: &mut Vault<Ty0>)
3611146ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
3613148MoveLoc[29](loc13: u64)
3615150CopyLoc[0](Arg0: &mut Vault<Ty0>)
3616151MutBorrowFieldGeneric[8](Vault.reserved_amount: u64)
3618153CopyLoc[0](Arg0: &mut Vault<Ty0>)
3619154ImmBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
3621156MoveLoc[30](loc14: Decimal)
3622157Call decimal::sub(Decimal, Decimal): Decimal
3623158CopyLoc[0](Arg0: &mut Vault<Ty0>)
3624159MutBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
3626161CopyLoc[36](loc20: u64)
3627162Call decimal::from_u64(u64): Decimal
3628163MoveLoc[13](Arg13: Rate)
3629164Call decimal::mul_with_rate(Decimal, Rate): Decimal
3630165Call decimal::floor_u64(Decimal): u64
3631166StLoc[25](loc9: u64)
3632167ImmBorrowLoc[34](loc18: Balance<Ty0>)
3633168Call balance::value<Ty0>(&Balance<Ty0>): u64
3634169StLoc[35](loc19: u64)
3635170CopyLoc[25](loc9: u64)
3636171CopyLoc[35](loc19: u64)
3640174MoveLoc[35](loc19: u64)
3641175StLoc[16](loc0: u64)
3644177MoveLoc[25](loc9: u64)
3645178StLoc[16](loc0: u64)
3647179MoveLoc[16](loc0: u64)
3648180StLoc[17](loc1: u64)
3649181CopyLoc[17](loc1: u64)
3654185MutBorrowLoc[34](loc18: Balance<Ty0>)
3655186CopyLoc[17](loc1: u64)
3656187Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
3657188StLoc[26](loc10: Balance<Ty0>)
3658189MoveLoc[12](Arg12: &mut LossProtectionVault<Ty0>)
3659190MoveLoc[26](loc10: Balance<Ty0>)
3660191Call deposit_to_loss_protection_vault<Ty0>(&mut LossProtectionVault<Ty0>, Balance<Ty0>)
3661192MoveLoc[17](loc1: u64)
3663194PackGeneric[4](LossProtectionVaultChangeEvent<Ty0>)
3664195Call event::emit<LossProtectionVaultChangeEvent<Ty0>>(LossProtectionVaultChangeEvent<Ty0>)
3667197MoveLoc[12](Arg12: &mut LossProtectionVault<Ty0>)
3670199MoveLoc[0](Arg0: &mut Vault<Ty0>)
3671200MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
3672201MoveLoc[34](loc18: Balance<Ty0>)
3673202Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
3675204CopyLoc[1](Arg1: &mut Symbol)
3676205ImmBorrowField[19](Symbol.opening_size: Decimal)
3678207CopyLoc[28](loc12: Decimal)
3679208Call decimal::sub(Decimal, Decimal): Decimal
3680209CopyLoc[1](Arg1: &mut Symbol)
3681210MutBorrowField[19](Symbol.opening_size: Decimal)
3683212CopyLoc[1](Arg1: &mut Symbol)
3684213ImmBorrowField[18](Symbol.opening_amount: u64)
3686215CopyLoc[27](loc11: u64)
3688217CopyLoc[1](Arg1: &mut Symbol)
3689218MutBorrowField[18](Symbol.opening_amount: u64)
3691220CopyLoc[1](Arg1: &mut Symbol)
3692221ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
3694223CopyLoc[21](loc5: SDecimal)
3695224Call sdecimal::sub(SDecimal, SDecimal): SDecimal
3696225CopyLoc[1](Arg1: &mut Symbol)
3697226MutBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
3700229CopyLoc[5](Arg5: &AggPrice)
3701230CopyLoc[36](loc20: u64)
3702231Call agg_price::coins_to_value(&AggPrice, u64): Decimal
3703232Call sdecimal::from_decimal(bool, Decimal): SDecimal
3704233CopyLoc[31](loc15: Decimal)
3705234Call sdecimal::sub_with_decimal(SDecimal, Decimal): SDecimal
3706235StLoc[18](loc2: SDecimal)
3707236CopyLoc[1](Arg1: &mut Symbol)
3708237ImmBorrowField[20](Symbol.realised_pnl: SDecimal)
3710239CopyLoc[18](loc2: SDecimal)
3711240Call sdecimal::add(SDecimal, SDecimal): SDecimal
3712241MoveLoc[1](Arg1: &mut Symbol)
3713242MutBorrowField[20](Symbol.realised_pnl: SDecimal)
3715244CopyLoc[22](loc6: u64)
3720248MoveLoc[22](loc6: u64)
3721249MoveLoc[23](loc7: Decimal)
3722250MoveLoc[15](Arg15: address)
3723251Pack[14](LiquidationFeeEvent)
3724252Call event::emit<LiquidationFeeEvent>(LiquidationFeeEvent)
3726253MoveLoc[10](Arg10: address)
3727254MoveLoc[5](Arg5: &AggPrice)
3728255Call agg_price::price_of(&AggPrice): Decimal
3729256MoveLoc[6](Arg6: &AggPrice)
3730257Call agg_price::price_of(&AggPrice): Decimal
3731258MoveLoc[28](loc12: Decimal)
3732259MoveLoc[31](loc15: Decimal)
3733260MoveLoc[21](loc5: SDecimal)
3734261MoveLoc[18](loc2: SDecimal)
3735262MoveLoc[36](loc20: u64)
3736263MoveLoc[24](loc8: u64)
3737264MoveLoc[27](loc11: u64)
3738265Pack[13](LiquidatePositionEvent)
3739266StLoc[20](loc4: LiquidatePositionEvent)
3740267MoveLoc[32](loc16: Balance<Ty0>)
3741268MoveLoc[33](loc17: Balance<Ty0>)
3742269MoveLoc[20](loc4: LiquidatePositionEvent)
3746public(friend) force_settle_position<Ty0>(Arg0: &AdminCap, Arg1: &mut Vault<Ty0>, Arg2: &mut Symbol, Arg3: &mut Position<Ty0>): Balance<Ty0> {
3747L4: loc0: Balance<Ty0>
3751L8: loc4: Balance<Ty0>
37550MoveLoc[0](Arg0: &AdminCap)
37561MoveLoc[3](Arg3: &mut Position<Ty0>)
37572CopyLoc[1](Arg1: &mut Vault<Ty0>)
37583ImmBorrowFieldGeneric[0](Vault.acc_reserving_rate: Rate)
37605CopyLoc[2](Arg2: &mut Symbol)
37616ImmBorrowField[3](Symbol.acc_funding_rate: SRate)
37638Call position::force_settle<Ty0>(&AdminCap, &mut Position<Ty0>, Rate, SRate): Balance<Ty0> * u64 * Decimal * SDecimal * Balance<Ty0> * u64 * Decimal
37649StLoc[7](loc3: Decimal)
376510StLoc[6](loc2: u64)
376611StLoc[4](loc0: Balance<Ty0>)
376712StLoc[5](loc1: SDecimal)
376813StLoc[10](loc6: Decimal)
376914StLoc[9](loc5: u64)
377015StLoc[8](loc4: Balance<Ty0>)
377116CopyLoc[2](Arg2: &mut Symbol)
377217ImmBorrowField[19](Symbol.opening_size: Decimal)
377419MoveLoc[7](loc3: Decimal)
377520Call decimal::sub(Decimal, Decimal): Decimal
377621CopyLoc[2](Arg2: &mut Symbol)
377722MutBorrowField[19](Symbol.opening_size: Decimal)
377924CopyLoc[2](Arg2: &mut Symbol)
378025ImmBorrowField[18](Symbol.opening_amount: u64)
378227MoveLoc[6](loc2: u64)
378429CopyLoc[2](Arg2: &mut Symbol)
378530MutBorrowField[18](Symbol.opening_amount: u64)
378732CopyLoc[2](Arg2: &mut Symbol)
378833ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
379035MoveLoc[5](loc1: SDecimal)
379136Call sdecimal::sub(SDecimal, SDecimal): SDecimal
379237MoveLoc[2](Arg2: &mut Symbol)
379338MutBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
379540CopyLoc[1](Arg1: &mut Vault<Ty0>)
379641ImmBorrowFieldGeneric[8](Vault.reserved_amount: u64)
379843MoveLoc[9](loc5: u64)
380045CopyLoc[1](Arg1: &mut Vault<Ty0>)
380146MutBorrowFieldGeneric[8](Vault.reserved_amount: u64)
380348CopyLoc[1](Arg1: &mut Vault<Ty0>)
380449ImmBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
380651MoveLoc[10](loc6: Decimal)
380752Call decimal::sub(Decimal, Decimal): Decimal
380853CopyLoc[1](Arg1: &mut Vault<Ty0>)
380954MutBorrowFieldGeneric[1](Vault.unrealised_reserving_fee_amount: Decimal)
381156MoveLoc[1](Arg1: &mut Vault<Ty0>)
381257MutBorrowFieldGeneric[7](Vault.liquidity: Balance<Ty0>)
381358MoveLoc[8](loc4: Balance<Ty0>)
381459Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
381661MoveLoc[4](loc0: Balance<Ty0>)
3820public(friend) valuate_vault<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &ReservingFeeModel, Arg2: &AggPrice, Arg3: u64): Decimal {
38220CopyLoc[0](Arg0: &mut Vault<Ty0>)
38231ImmBorrowFieldGeneric[3](Vault.enabled: bool)
38295MoveLoc[0](Arg0: &mut Vault<Ty0>)
38317MoveLoc[1](Arg1: &ReservingFeeModel)
38339MoveLoc[2](Arg2: &AggPrice)
383511LdConst[0](u64: 100)
383813CopyLoc[1](Arg1: &ReservingFeeModel)
383914Call object::id<ReservingFeeModel>(&ReservingFeeModel): ID
384015CopyLoc[0](Arg0: &mut Vault<Ty0>)
384116ImmBorrowFieldGeneric[5](Vault.reserving_fee_model: ID)
384821MoveLoc[0](Arg0: &mut Vault<Ty0>)
385023MoveLoc[1](Arg1: &ReservingFeeModel)
385225MoveLoc[2](Arg2: &AggPrice)
385427LdConst[12](u64: 112)
385729CopyLoc[0](Arg0: &mut Vault<Ty0>)
385830MoveLoc[1](Arg1: &ReservingFeeModel)
385931MoveLoc[3](Arg3: u64)
386032Call refresh_vault<Ty0>(&mut Vault<Ty0>, &ReservingFeeModel, u64)
386133MoveLoc[2](Arg2: &AggPrice)
386234MoveLoc[0](Arg0: &mut Vault<Ty0>)
386436Call vault_supply_amount<Ty0>(&Vault<Ty0>): Decimal
386537Call decimal::floor_u64(Decimal): u64
386638Call agg_price::coins_to_value(&AggPrice, u64): Decimal
3870public(friend) valuate_symbol(Arg0: &mut Symbol, Arg1: &FundingFeeModel, Arg2: &AggPrice, Arg3: bool, Arg4: Decimal, Arg5: u64): SDecimal {
38730CopyLoc[1](Arg1: &FundingFeeModel)
38741Call object::id<FundingFeeModel>(&FundingFeeModel): ID
38752CopyLoc[0](Arg0: &mut Symbol)
38763ImmBorrowField[16](Symbol.funding_fee_model: ID)
38838MoveLoc[0](Arg0: &mut Symbol)
388510MoveLoc[2](Arg2: &AggPrice)
388712MoveLoc[1](Arg1: &FundingFeeModel)
388914LdConst[13](u64: 113)
389216CopyLoc[0](Arg0: &mut Symbol)
389418MoveLoc[2](Arg2: &AggPrice)
389519MoveLoc[3](Arg3: bool)
389620Call symbol_delta_size(&Symbol, &AggPrice, bool): SDecimal
389721StLoc[6](loc0: SDecimal)
389822CopyLoc[0](Arg0: &mut Symbol)
389923MoveLoc[1](Arg1: &FundingFeeModel)
390024MoveLoc[6](loc0: SDecimal)
390125MoveLoc[4](Arg4: Decimal)
390226MoveLoc[5](Arg5: u64)
390327Call refresh_symbol(&mut Symbol, &FundingFeeModel, SDecimal, Decimal, u64)
390428MoveLoc[0](Arg0: &mut Symbol)
390529ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)
3910public(friend) valuate_symbol_after_oi_funding_update(Arg0: &Symbol): SDecimal {
39120MoveLoc[0](Arg0: &Symbol)
39131ImmBorrowField[4](Symbol.unrealised_funding_fee_value: SDecimal)