Obric package::v2 bytecode | tide- Functions
- 2012 public, 7 entry
- Structs
- 4
- Friend modules
- None
v2
The on-chain disassembly. Offsets are bytecode positions within each function.
1// Move bytecode v6
2module b84e63d22ea4822a0a333c250e790f69bf5c2ef0c63f4e120e05a6415991368f.v2 {
3use 8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e::i64;
4use 8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e::price;
5use 8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e::price_info;
6use 8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e::pyth;
7use 8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e::state;
8use 0000000000000000000000000000000000000000000000000000000000000001::option;
9use 0000000000000000000000000000000000000000000000000000000000000002::balance;
10use 0000000000000000000000000000000000000000000000000000000000000002::clock;
11use 0000000000000000000000000000000000000000000000000000000000000002::coin;
12
use 0000000000000000000000000000000000000000000000000000000000000002::event;
13use 0000000000000000000000000000000000000000000000000000000000000002::object;
14use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
15use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
17struct XLP<phantom Ty0, phantom Ty1> has drop {
21struct YLP<phantom Ty0, phantom Ty1> has drop {
25struct PairRegistry has key {
27 pair_ids: vector<address>
30struct TradingPair<phantom Ty0, phantom Ty1> has key {
32 reserve_x: Balance<Ty0>,
33 reserve_y: Balance<Ty1>,
42 x_retain_decimals: u64,
43 y_retain_decimals: u64,
44 cumulative_volume: u64,
47 target_y_based_lock: bool,
48 target_y_reference: u64,
54struct TraderList has key {
56 traders: vector<address>
59struct Borrow<phantom Ty0, phantom Ty1> {
64struct FlashSwap has copy, drop {
71struct FlashSwapV2 has copy, drop {
79init(Arg0: &mut TxContext) {
810MoveLoc[0](Arg0: &mut TxContext)
821Call object::new(&mut TxContext): UID
832LdConst[11](vector<address>: 00)
854Call transfer::share_object<PairRegistry>(PairRegistry)
89entry public create_pair<Ty0, Ty1>(Arg0: &mut PairRegistry, Arg1: &CoinMetadata<Ty0>, Arg2: &CoinMetadata<Ty1>, Arg3: &PriceInfoObject, Arg4: &PriceInfoObject, Arg5: u64, Arg6: u64, Arg7: u64, Arg8: u64, Arg9: bool, Arg10: &mut TxContext) {
90L11: loc0: TradingPair<Ty0, Ty1>
940CopyLoc[10](Arg10: &mut TxContext)
962Call tx_context::sender(&TxContext): address
973LdConst[9](address: 0x52..)
1037MoveLoc[4](Arg4: &PriceInfoObject)
1059MoveLoc[2](Arg2: &CoinMetadata<Ty1>)
10711MoveLoc[3](Arg3: &PriceInfoObject)
10913MoveLoc[1](Arg1: &CoinMetadata<Ty0>)
11115MoveLoc[0](Arg0: &mut PairRegistry)
11317MoveLoc[10](Arg10: &mut TxContext)
11821MoveLoc[1](Arg1: &CoinMetadata<Ty0>)
11922Call coin::get_decimals<Ty0>(&CoinMetadata<Ty0>): u8
12124CopyLoc[5](Arg5: u64)
12326StLoc[12](loc1: u64)
12427MoveLoc[2](Arg2: &CoinMetadata<Ty1>)
12528Call coin::get_decimals<Ty1>(&CoinMetadata<Ty1>): u8
12730CopyLoc[6](Arg6: u64)
12932StLoc[13](loc2: u64)
13033MoveLoc[12](loc1: u64)
13134MoveLoc[13](loc2: u64)
13738MoveLoc[4](Arg4: &PriceInfoObject)
13940MoveLoc[3](Arg3: &PriceInfoObject)
14142MoveLoc[0](Arg0: &mut PairRegistry)
14344MoveLoc[10](Arg10: &mut TxContext)
14848MoveLoc[10](Arg10: &mut TxContext)
14949Call object::new(&mut TxContext): UID
15050Call balance::zero<Ty0>(): Balance<Ty0>
15151Call balance::zero<Ty1>(): Balance<Ty1>
15252MoveLoc[7](Arg7: u64)
15757MoveLoc[8](Arg8: u64)
15858MoveLoc[3](Arg3: &PriceInfoObject)
15959Call object::id_address<PriceInfoObject>(&PriceInfoObject): address
16060MoveLoc[4](Arg4: &PriceInfoObject)
16161Call object::id_address<PriceInfoObject>(&PriceInfoObject): address
16262MoveLoc[5](Arg5: u64)
16363MoveLoc[6](Arg6: u64)
16565LdConst[12](vector<u64>: 0800..)
16666LdConst[12](vector<u64>: 0800..)
16969MoveLoc[9](Arg9: bool)
17272PackGeneric[0](TradingPair<Ty0, Ty1>)
17373StLoc[11](loc0: TradingPair<Ty0, Ty1>)
17474MoveLoc[0](Arg0: &mut PairRegistry)
17575MutBorrowField[0](PairRegistry.pair_ids: vector<address>)
17676ImmBorrowLoc[11](loc0: TradingPair<Ty0, Ty1>)
17777Call object::id_address<TradingPair<Ty0, Ty1>>(&TradingPair<Ty0, Ty1>): address
17979MoveLoc[11](loc0: TradingPair<Ty0, Ty1>)
18080Call transfer::share_object<TradingPair<Ty0, Ty1>>(TradingPair<Ty0, Ty1>)
184entry public update_mults<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: &TxContext) {
1870CopyLoc[3](Arg3: &TxContext)
1881Call tx_context::sender(&TxContext): address
1892LdConst[9](address: 0x52..)
1935MoveLoc[3](Arg3: &TxContext)
19910MoveLoc[3](Arg3: &TxContext)
20011Call tx_context::sender(&TxContext): address
20112LdConst[10](address: 0x68..)
20314StLoc[4](loc0: bool)
20515MoveLoc[4](loc0: bool)
21018MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
21522MoveLoc[1](Arg1: u64)
21623CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
21724MutBorrowFieldGeneric[0](TradingPair.mult_x: u64)
21926MoveLoc[2](Arg2: u64)
22027MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
22128MutBorrowFieldGeneric[1](TradingPair.mult_y: u64)
226entry public update_price<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: &Clock, Arg2: &State, Arg3: &PriceInfoObject, Arg4: &PriceInfoObject) {
2340CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
2351ImmBorrowFieldGeneric[2](TradingPair.pyth_mode: bool)
2405MoveLoc[4](Arg4: &PriceInfoObject)
2427MoveLoc[3](Arg3: &PriceInfoObject)
2449MoveLoc[2](Arg2: &State)
24611MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
24813MoveLoc[1](Arg1: &Clock)
25216CopyLoc[3](Arg3: &PriceInfoObject)
25317Call object::id_address<PriceInfoObject>(&PriceInfoObject): address
25418CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
25519ImmBorrowFieldGeneric[3](TradingPair.x_price_id: address)
26224MoveLoc[4](Arg4: &PriceInfoObject)
26426MoveLoc[3](Arg3: &PriceInfoObject)
26628MoveLoc[2](Arg2: &State)
26830MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
27032MoveLoc[1](Arg1: &Clock)
27536CopyLoc[4](Arg4: &PriceInfoObject)
27637Call object::id_address<PriceInfoObject>(&PriceInfoObject): address
27738CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
27839ImmBorrowFieldGeneric[4](TradingPair.y_price_id: address)
28544MoveLoc[4](Arg4: &PriceInfoObject)
28746MoveLoc[3](Arg3: &PriceInfoObject)
28948MoveLoc[2](Arg2: &State)
29150MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
29352MoveLoc[1](Arg1: &Clock)
29856CopyLoc[2](Arg2: &State)
29957MoveLoc[3](Arg3: &PriceInfoObject)
30058CopyLoc[1](Arg1: &Clock)
30159Call pyth::get_price(&State, &PriceInfoObject, &Clock): Price
30260StLoc[7](loc2: Price)
30361MoveLoc[2](Arg2: &State)
30462MoveLoc[4](Arg4: &PriceInfoObject)
30563MoveLoc[1](Arg1: &Clock)
30664Call pyth::get_price(&State, &PriceInfoObject, &Clock): Price
30765StLoc[10](loc5: Price)
30866ImmBorrowLoc[7](loc2: Price)
30967Call price::get_price(&Price): I64
31169ImmBorrowLoc[7](loc2: Price)
31270Call price::get_expo(&Price): I64
31472ImmBorrowLoc[10](loc5: Price)
31573Call price::get_price(&Price): I64
31775ImmBorrowLoc[10](loc5: Price)
31876Call price::get_expo(&Price): I64
32078MoveLoc[5](loc0: I64)
32179MoveLoc[6](loc1: I64)
32280CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
32381ImmBorrowFieldGeneric[5](TradingPair.x_retain_decimals: u64)
32583Call normalize_price(I64, I64, u64): u64
32684CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
32785MutBorrowFieldGeneric[0](TradingPair.mult_x: u64)
32987MoveLoc[8](loc3: I64)
33088MoveLoc[9](loc4: I64)
33189CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
33290ImmBorrowFieldGeneric[6](TradingPair.y_retain_decimals: u64)
33492Call normalize_price(I64, I64, u64): u64
33593CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
33694ImmBorrowFieldGeneric[7](TradingPair.pyth_y_add: u64)
33997CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
34098ImmBorrowFieldGeneric[8](TradingPair.pyth_y_sub: u64)
343101MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
344102MutBorrowFieldGeneric[1](TradingPair.mult_y: u64)
349normalize_price(Arg0: I64, Arg1: I64, Arg2: u64): u64 {
3530ImmBorrowLoc[0](Arg0: I64)
3541Call i64::get_magnitude_if_positive(&I64): u64
3563ImmBorrowLoc[1](Arg1: I64)
3574Call i64::get_magnitude_if_negative(&I64): u64
3596CopyLoc[3](loc0: u64)
3607CopyLoc[2](Arg2: u64)
36913CopyLoc[3](loc0: u64)
37014CopyLoc[2](Arg2: u64)
37417MoveLoc[4](loc1: u64)
37821MoveLoc[3](loc0: u64)
38426MoveLoc[4](loc1: u64)
388entry public update_concentration<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: u64, Arg2: &mut TxContext) {
3900MoveLoc[2](Arg2: &mut TxContext)
3922Call tx_context::sender(&TxContext): address
3933LdConst[9](address: 0x52..)
3997MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
40411CopyLoc[1](Arg1: u64)
41116MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
41620CopyLoc[1](Arg1: u64)
42325MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
42829MoveLoc[1](Arg1: u64)
42930MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
43031MutBorrowFieldGeneric[9](TradingPair.concentration: u64)
435entry public update_fee_millionth<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: u64, Arg2: &mut TxContext) {
4370MoveLoc[2](Arg2: &mut TxContext)
4392Call tx_context::sender(&TxContext): address
4403LdConst[9](address: 0x52..)
4467MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
45111MoveLoc[1](Arg1: u64)
45212MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
45313MutBorrowFieldGeneric[10](TradingPair.fee_millionth: u64)
458entry public update_pyth_mode<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: bool, Arg2: u64, Arg3: u64, Arg4: &mut TxContext) {
4600MoveLoc[4](Arg4: &mut TxContext)
4622Call tx_context::sender(&TxContext): address
4633LdConst[9](address: 0x52..)
4697MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
47411MoveLoc[1](Arg1: bool)
47512CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
47613MutBorrowFieldGeneric[2](TradingPair.pyth_mode: bool)
47815MoveLoc[2](Arg2: u64)
47916CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
48017MutBorrowFieldGeneric[7](TradingPair.pyth_y_add: u64)
48219MoveLoc[3](Arg3: u64)
48320MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
48421MutBorrowFieldGeneric[8](TradingPair.pyth_y_sub: u64)
489public deposit<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: Coin<Ty0>, Arg2: Coin<Ty1>, Arg3: &mut TxContext) {
491L5: loc1: Balance<Ty0>
492L6: loc2: Balance<Ty1>
4940MoveLoc[3](Arg3: &mut TxContext)
4962Call tx_context::sender(&TxContext): address
4973LdConst[9](address: 0x52..)
5037MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
50811ImmBorrowLoc[1](Arg1: Coin<Ty0>)
50912Call coin::value<Ty0>(&Coin<Ty0>): u64
51114MoveLoc[1](Arg1: Coin<Ty0>)
51215Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
51316StLoc[5](loc1: Balance<Ty0>)
51417MoveLoc[2](Arg2: Coin<Ty1>)
51518Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
51619StLoc[6](loc2: Balance<Ty1>)
51720CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
51821MutBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
51922MoveLoc[5](loc1: Balance<Ty0>)
52023Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
52225CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
52326MutBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
52427MoveLoc[6](loc2: Balance<Ty1>)
52528Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
52730CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
52831ImmBorrowFieldGeneric[13](TradingPair.target_x: u64)
53033MoveLoc[4](loc0: u64)
53235MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
53336MutBorrowFieldGeneric[13](TradingPair.target_x: u64)
538public withdraw<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: &mut TxContext): Coin<Ty0> * Coin<Ty1> {
5420CopyLoc[3](Arg3: &mut TxContext)
5442Call tx_context::sender(&TxContext): address
5453LdConst[9](address: 0x52..)
5517MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
5539MoveLoc[3](Arg3: &mut TxContext)
55813CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
55914MutBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
56015CopyLoc[1](Arg1: u64)
56116Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
56217CopyLoc[3](Arg3: &mut TxContext)
56318Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
56419StLoc[4](loc0: Coin<Ty0>)
56520CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
56621MutBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
56722MoveLoc[2](Arg2: u64)
56823Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
56924MoveLoc[3](Arg3: &mut TxContext)
57025Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
57126StLoc[5](loc1: Coin<Ty1>)
57227CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
57328ImmBorrowFieldGeneric[13](TradingPair.target_x: u64)
57530MoveLoc[1](Arg1: u64)
57732CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
57833MutBorrowFieldGeneric[13](TradingPair.target_x: u64)
58136MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
58237MutBorrowFieldGeneric[14](TradingPair.target_y_reference: u64)
58439MoveLoc[4](loc0: Coin<Ty0>)
58540MoveLoc[5](loc1: Coin<Ty1>)
589public swap_x_to_y<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: &Clock, Arg2: &State, Arg3: &PriceInfoObject, Arg4: &PriceInfoObject, Arg5: Coin<Ty0>, Arg6: &mut TxContext): Coin<Ty1> {
591L8: loc1: Balance<Ty1>
5950CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
5961CopyLoc[1](Arg1: &Clock)
5972MoveLoc[2](Arg2: &State)
5983MoveLoc[3](Arg3: &PriceInfoObject)
5994MoveLoc[4](Arg4: &PriceInfoObject)
6005Call update_price<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, &Clock, &State, &PriceInfoObject, &PriceInfoObject)
6016ImmBorrowLoc[5](Arg5: Coin<Ty0>)
6027Call coin::value<Ty0>(&Coin<Ty0>): u64
6049CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
60510MoveLoc[10](loc3: u64)
60611Call quote_x_to_y<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, u64): u64 * u64
60914CopyLoc[9](loc2: u64)
61619MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
61821MoveLoc[6](Arg6: &mut TxContext)
62023MoveLoc[1](Arg1: &Clock)
62527CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
62628MutBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
62729MoveLoc[5](Arg5: Coin<Ty0>)
62830Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
62931Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
63133CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
63234MutBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
63335CopyLoc[9](loc2: u64)
63436Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
63537StLoc[8](loc1: Balance<Ty1>)
63638MoveLoc[9](loc2: u64)
63739CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
63840ImmBorrowFieldGeneric[1](TradingPair.mult_y: u64)
64143LdConst[8](u64: 1000..)
64446MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
64547MoveLoc[1](Arg1: &Clock)
64648MoveLoc[7](loc0: u64)
64749Call update_volume_record<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, &Clock, u64)
64850MoveLoc[8](loc1: Balance<Ty1>)
64951MoveLoc[6](Arg6: &mut TxContext)
65052Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
654public swap_y_to_x<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: &Clock, Arg2: &State, Arg3: &PriceInfoObject, Arg4: &PriceInfoObject, Arg5: Coin<Ty1>, Arg6: &mut TxContext): Coin<Ty0> {
656L8: loc1: Balance<Ty0>
6600CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
6611CopyLoc[1](Arg1: &Clock)
6622MoveLoc[2](Arg2: &State)
6633MoveLoc[3](Arg3: &PriceInfoObject)
6644MoveLoc[4](Arg4: &PriceInfoObject)
6655Call update_price<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, &Clock, &State, &PriceInfoObject, &PriceInfoObject)
6666ImmBorrowLoc[5](Arg5: Coin<Ty1>)
6677Call coin::value<Ty1>(&Coin<Ty1>): u64
6699CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
67010MoveLoc[10](loc3: u64)
67111Call quote_y_to_x<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, u64): u64 * u64
67414CopyLoc[9](loc2: u64)
68119MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
68321MoveLoc[6](Arg6: &mut TxContext)
68523MoveLoc[1](Arg1: &Clock)
69027CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
69128MutBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
69229MoveLoc[5](Arg5: Coin<Ty1>)
69330Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
69431Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
69633CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
69734MutBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
69835CopyLoc[9](loc2: u64)
69936Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
70037StLoc[8](loc1: Balance<Ty0>)
70138MoveLoc[9](loc2: u64)
70239CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
70340ImmBorrowFieldGeneric[0](TradingPair.mult_x: u64)
70643LdConst[8](u64: 1000..)
70946MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
71047MoveLoc[1](Arg1: &Clock)
71148MoveLoc[7](loc0: u64)
71249Call update_volume_record<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, &Clock, u64)
71350MoveLoc[8](loc1: Balance<Ty0>)
71451MoveLoc[6](Arg6: &mut TxContext)
71552Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
719is_target_y_locked<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>): bool {
7230CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
7252Call get_target_y<Ty0, Ty1>(&TradingPair<Ty0, Ty1>): u64
7274CopyLoc[2](loc1: u64)
7285CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
7296ImmBorrowFieldGeneric[14](TradingPair.target_y_reference: u64)
73410CopyLoc[2](loc1: u64)
73813CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
73914ImmBorrowFieldGeneric[14](TradingPair.target_y_reference: u64)
74317MoveLoc[1](loc0: u64)
74418CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
74519MutBorrowFieldGeneric[14](TradingPair.target_y_reference: u64)
74721CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
74822ImmBorrowFieldGeneric[14](TradingPair.target_y_reference: u64)
75024MoveLoc[2](loc1: u64)
75428CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
75529ImmBorrowFieldGeneric[14](TradingPair.target_y_reference: u64)
76336CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
76437MutBorrowFieldGeneric[15](TradingPair.target_y_based_lock: bool)
76739MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
76840ImmBorrowFieldGeneric[15](TradingPair.target_y_based_lock: bool)
773public quote_x_to_y<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: u64): u64 * u64 {
7770CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
7781Call is_target_y_locked<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>): bool
7813MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
78910MoveLoc[1](Arg1: u64)
79112CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
79213ImmBorrowFieldGeneric[13](TradingPair.target_x: u64)
79516CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
79617ImmBorrowFieldGeneric[9](TradingPair.concentration: u64)
79920CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
80021ImmBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
80122Call balance::value<Ty0>(&Balance<Ty0>): u64
80324CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
80425ImmBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
80526Call balance::value<Ty1>(&Balance<Ty1>): u64
80728CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
80829ImmBorrowFieldGeneric[10](TradingPair.fee_millionth: u64)
81031CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
81132ImmBorrowFieldGeneric[0](TradingPair.mult_x: u64)
81435MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
81536ImmBorrowFieldGeneric[1](TradingPair.mult_y: u64)
81839Call quote_x_to_y_(u128, u128, u128, u128, u128, u64, u128, u128): u64 * u64
82242MoveLoc[2](loc0: u64)
82343MoveLoc[3](loc1: u64)
827quote_x_to_y_(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: u128, Arg4: u128, Arg5: u64, Arg6: u128, Arg7: u128): u64 * u64 {
8370CopyLoc[1](Arg1: u128)
8381MoveLoc[2](Arg2: u128)
8403StLoc[15](loc7: u128)
8414CopyLoc[15](loc7: u128)
8425CopyLoc[15](loc7: u128)
8447MoveLoc[6](Arg6: u128)
8469MoveLoc[7](Arg7: u128)
84811StLoc[8](loc0: u128)
84912MoveLoc[15](loc7: u128)
85013MoveLoc[3](Arg3: u128)
85215MoveLoc[1](Arg1: u128)
85417StLoc[9](loc1: u128)
85518CopyLoc[8](loc0: u128)
85619CopyLoc[9](loc1: u128)
85821StLoc[10](loc2: u128)
85922MoveLoc[9](loc1: u128)
86023MoveLoc[0](Arg0: u128)
86225StLoc[12](loc4: u128)
86326MoveLoc[8](loc0: u128)
86427MoveLoc[12](loc4: u128)
86629StLoc[13](loc5: u128)
86730MoveLoc[10](loc2: u128)
86831MoveLoc[13](loc5: u128)
87134StLoc[14](loc6: u64)
87235CopyLoc[14](loc6: u64)
87437MoveLoc[4](Arg4: u128)
88343CopyLoc[14](loc6: u64)
88444MoveLoc[5](Arg5: u64)
88646LdConst[8](u64: 1000..)
88848StLoc[11](loc3: u64)
88949MoveLoc[14](loc6: u64)
89050CopyLoc[11](loc3: u64)
89252MoveLoc[11](loc3: u64)
896public quote_y_to_x<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: u64): u64 * u64 {
9000CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
9011Call is_target_y_locked<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>): bool
9043MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
91210MoveLoc[1](Arg1: u64)
91412CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
91513ImmBorrowFieldGeneric[13](TradingPair.target_x: u64)
91816CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
91917ImmBorrowFieldGeneric[9](TradingPair.concentration: u64)
92220CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
92321ImmBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
92422Call balance::value<Ty0>(&Balance<Ty0>): u64
92624CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
92725ImmBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
92826Call balance::value<Ty1>(&Balance<Ty1>): u64
93028CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
93129ImmBorrowFieldGeneric[10](TradingPair.fee_millionth: u64)
93331CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
93432ImmBorrowFieldGeneric[0](TradingPair.mult_x: u64)
93735MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
93836ImmBorrowFieldGeneric[1](TradingPair.mult_y: u64)
94139Call quote_y_to_x_(u128, u128, u128, u128, u128, u64, u128, u128): u64 * u64
94542MoveLoc[2](loc0: u64)
94643MoveLoc[3](loc1: u64)
950quote_y_to_x_(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: u128, Arg4: u128, Arg5: u64, Arg6: u128, Arg7: u128): u64 * u64 {
9590CopyLoc[1](Arg1: u128)
9601MoveLoc[2](Arg2: u128)
9623StLoc[14](loc6: u128)
9634CopyLoc[14](loc6: u128)
9645CopyLoc[14](loc6: u128)
9667MoveLoc[6](Arg6: u128)
9689MoveLoc[7](Arg7: u128)
97011StLoc[8](loc0: u128)
97112MoveLoc[14](loc6: u128)
97213CopyLoc[3](Arg3: u128)
97415MoveLoc[1](Arg1: u128)
97617StLoc[9](loc1: u128)
97718CopyLoc[8](loc0: u128)
97819CopyLoc[9](loc1: u128)
98021MoveLoc[0](Arg0: u128)
98223StLoc[12](loc4: u128)
98324MoveLoc[8](loc0: u128)
98425MoveLoc[12](loc4: u128)
98627StLoc[11](loc3: u128)
98728MoveLoc[9](loc1: u128)
98829MoveLoc[11](loc3: u128)
99132StLoc[13](loc5: u64)
99233CopyLoc[13](loc5: u64)
99435MoveLoc[3](Arg3: u128)
100341CopyLoc[13](loc5: u64)
100442MoveLoc[5](Arg5: u64)
100644LdConst[8](u64: 1000..)
100846StLoc[10](loc2: u64)
100947MoveLoc[13](loc5: u64)
101048CopyLoc[10](loc2: u64)
101250MoveLoc[10](loc2: u64)
1016update_volume_record<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: &Clock, Arg2: u64) {
10200CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
10211ImmBorrowFieldGeneric[16](TradingPair.cumulative_volume: u64)
10233MoveLoc[2](Arg2: u64)
10255CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
10266MutBorrowFieldGeneric[16](TradingPair.cumulative_volume: u64)
10288MoveLoc[1](Arg1: &Clock)
10299Call clock::timestamp_ms(&Clock): u64
103414StLoc[4](loc1: u64)
103515CopyLoc[4](loc1: u64)
103818StLoc[3](loc0: u64)
103919CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
104020ImmBorrowFieldGeneric[16](TradingPair.cumulative_volume: u64)
104222CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
104323MutBorrowFieldGeneric[17](TradingPair.volumes: vector<u64>)
104424CopyLoc[3](loc0: u64)
104727MoveLoc[4](loc1: u64)
105030MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
105131MutBorrowFieldGeneric[18](TradingPair.times: vector<u64>)
105232MoveLoc[3](loc0: u64)
1058get_target_y<Ty0, Ty1>(Arg0: &TradingPair<Ty0, Ty1>): u64 {
10640CopyLoc[0](Arg0: &TradingPair<Ty0, Ty1>)
10651ImmBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
10662Call balance::value<Ty0>(&Balance<Ty0>): u64
10684CopyLoc[0](Arg0: &TradingPair<Ty0, Ty1>)
10695ImmBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
10706Call balance::value<Ty1>(&Balance<Ty1>): u64
10728MoveLoc[1](loc0: u64)
10739CopyLoc[0](Arg0: &TradingPair<Ty0, Ty1>)
107410ImmBorrowFieldGeneric[0](TradingPair.mult_x: u64)
107713MoveLoc[2](loc1: u64)
107814CopyLoc[0](Arg0: &TradingPair<Ty0, Ty1>)
107915ImmBorrowFieldGeneric[1](TradingPair.mult_y: u64)
108319StLoc[4](loc3: u64)
108420CopyLoc[0](Arg0: &TradingPair<Ty0, Ty1>)
108521ImmBorrowFieldGeneric[13](TradingPair.target_x: u64)
108723CopyLoc[0](Arg0: &TradingPair<Ty0, Ty1>)
108824ImmBorrowFieldGeneric[0](TradingPair.mult_x: u64)
109127StLoc[3](loc2: u64)
109228MoveLoc[4](loc3: u64)
109329MoveLoc[3](loc2: u64)
109531MoveLoc[0](Arg0: &TradingPair<Ty0, Ty1>)
109632ImmBorrowFieldGeneric[1](TradingPair.mult_y: u64)
1102entry init_trader_list(Arg0: &mut TxContext) {
11040CopyLoc[0](Arg0: &mut TxContext)
11062Call tx_context::sender(&TxContext): address
11073LdConst[9](address: 0x52..)
11137MoveLoc[0](Arg0: &mut TxContext)
111811MoveLoc[0](Arg0: &mut TxContext)
111912Call object::new(&mut TxContext): UID
112114Pack[4](TraderList)
112215Call transfer::share_object<TraderList>(TraderList)
1126entry update_trader_list(Arg0: &mut TraderList, Arg1: vector<address>, Arg2: &TxContext) {
11280MoveLoc[2](Arg2: &TxContext)
11291Call tx_context::sender(&TxContext): address
11302LdConst[9](address: 0x52..)
11366MoveLoc[0](Arg0: &mut TraderList)
114110MoveLoc[1](Arg1: vector<address>)
114211MoveLoc[0](Arg0: &mut TraderList)
114312MutBorrowField[20](TraderList.traders: vector<address>)
1148assert_trader(Arg0: &TraderList, Arg1: u64, Arg2: &TxContext) {
11510MoveLoc[2](Arg2: &TxContext)
11521Call tx_context::sender(&TxContext): address
11532StLoc[3](loc0: address)
11543ImmBorrowLoc[3](loc0: address)
11554MoveLoc[0](Arg0: &TraderList)
11565ImmBorrowField[20](TraderList.traders: vector<address>)
11576MoveLoc[1](Arg1: u64)
116411LdConst[7](u64: 10)
1170public trader_borrow<Ty0, Ty1>(Arg0: &TraderList, Arg1: u64, Arg2: &mut TradingPair<Ty0, Ty1>, Arg3: bool, Arg4: u64, Arg5: &mut TxContext): Option<Coin<Ty0>> * Option<Coin<Ty1>> * Borrow<Ty0, Ty1> {
1171L6: loc0: Option<Coin<Ty0>>
1172L7: loc1: Option<Coin<Ty1>>
1173L8: loc2: Borrow<Ty0, Ty1>
1174L9: loc3: Balance<Ty1>
11760MoveLoc[0](Arg0: &TraderList)
11771MoveLoc[1](Arg1: u64)
11782CopyLoc[5](Arg5: &mut TxContext)
11804Call assert_trader(&TraderList, u64, &TxContext)
11815MoveLoc[3](Arg3: bool)
11847MoveLoc[2](Arg2: &mut TradingPair<Ty0, Ty1>)
11858MutBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
11869CopyLoc[4](Arg4: u64)
118710Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
118811MoveLoc[5](Arg5: &mut TxContext)
118912Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
119013Call option::some<Coin<Ty0>>(Coin<Ty0>): Option<Coin<Ty0>>
119114Call option::none<Coin<Ty1>>(): Option<Coin<Ty1>>
119316MoveLoc[4](Arg4: u64)
119417PackGeneric[1](Borrow<Ty0, Ty1>)
119518StLoc[8](loc2: Borrow<Ty0, Ty1>)
119619StLoc[7](loc1: Option<Coin<Ty1>>)
119720StLoc[6](loc0: Option<Coin<Ty0>>)
120022MoveLoc[2](Arg2: &mut TradingPair<Ty0, Ty1>)
120123MutBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
120224CopyLoc[4](Arg4: u64)
120325Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
120426StLoc[9](loc3: Balance<Ty1>)
120527Call option::none<Coin<Ty0>>(): Option<Coin<Ty0>>
120628MoveLoc[9](loc3: Balance<Ty1>)
120729MoveLoc[5](Arg5: &mut TxContext)
120830Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
120931Call option::some<Coin<Ty1>>(Coin<Ty1>): Option<Coin<Ty1>>
121133MoveLoc[4](Arg4: u64)
121234PackGeneric[1](Borrow<Ty0, Ty1>)
121335StLoc[8](loc2: Borrow<Ty0, Ty1>)
121436StLoc[7](loc1: Option<Coin<Ty1>>)
121537StLoc[6](loc0: Option<Coin<Ty0>>)
121738MoveLoc[6](loc0: Option<Coin<Ty0>>)
121839MoveLoc[7](loc1: Option<Coin<Ty1>>)
121940MoveLoc[8](loc2: Borrow<Ty0, Ty1>)
1223public trader_swap_and_repay<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: Borrow<Ty0, Ty1>, Arg4: Option<Coin<Ty0>>, Arg5: Option<Coin<Ty1>>, Arg6: &Clock) {
12370MoveLoc[1](Arg1: u64)
12381CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
12392MutBorrowFieldGeneric[0](TradingPair.mult_x: u64)
12414MoveLoc[2](Arg2: u64)
12425CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
12436MutBorrowFieldGeneric[1](TradingPair.mult_y: u64)
12458MoveLoc[3](Arg3: Borrow<Ty0, Ty1>)
12469UnpackGeneric[1](Borrow<Ty0, Ty1>)
124710StLoc[7](loc0: u64)
124811StLoc[12](loc5: bool)
124912CopyLoc[12](loc5: bool)
125315MoveLoc[5](Arg5: Option<Coin<Ty1>>)
125416Call option::destroy_none<Coin<Ty1>>(Option<Coin<Ty1>>)
125517MoveLoc[4](Arg4: Option<Coin<Ty0>>)
125618Call option::destroy_some<Coin<Ty0>>(Option<Coin<Ty0>>): Coin<Ty0>
125719StLoc[8](loc1: Coin<Ty0>)
125820CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
125921ImmBorrowLoc[8](loc1: Coin<Ty0>)
126022Call coin::value<Ty0>(&Coin<Ty0>): u64
126123Call quote_x_to_y<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, u64): u64 * u64
126224StLoc[11](loc4: u64)
126325StLoc[18](loc11: u64)
126426CopyLoc[18](loc11: u64)
126527MoveLoc[11](loc4: u64)
126729StLoc[14](loc7: u64)
126830CopyLoc[7](loc0: u64)
126931CopyLoc[14](loc7: u64)
127535MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
127737MoveLoc[6](Arg6: &Clock)
127939MoveLoc[14](loc7: u64)
128241CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
128342MutBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
128443MoveLoc[8](loc1: Coin<Ty0>)
128544Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
128645Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
128847MoveLoc[18](loc11: u64)
128948CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
129049ImmBorrowFieldGeneric[1](TradingPair.mult_y: u64)
129352LdConst[8](u64: 1000..)
129554StLoc[15](loc8: u64)
129655MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
129756MoveLoc[6](Arg6: &Clock)
129857MoveLoc[15](loc8: u64)
129958Call update_volume_record<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, &Clock, u64)
130059MoveLoc[12](loc5: bool)
130160MoveLoc[7](loc0: u64)
130261MoveLoc[14](loc7: u64)
130564Call event::emit<FlashSwap>(FlashSwap)
130866MoveLoc[4](Arg4: Option<Coin<Ty0>>)
130967Call option::destroy_none<Coin<Ty0>>(Option<Coin<Ty0>>)
131068MoveLoc[5](Arg5: Option<Coin<Ty1>>)
131169Call option::destroy_some<Coin<Ty1>>(Option<Coin<Ty1>>): Coin<Ty1>
131270StLoc[9](loc2: Coin<Ty1>)
131371CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
131472ImmBorrowLoc[9](loc2: Coin<Ty1>)
131573Call coin::value<Ty1>(&Coin<Ty1>): u64
131674Call quote_y_to_x<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, u64): u64 * u64
131775StLoc[10](loc3: u64)
131876StLoc[17](loc10: u64)
131977CopyLoc[17](loc10: u64)
132078MoveLoc[10](loc3: u64)
132280StLoc[13](loc6: u64)
132381MoveLoc[7](loc0: u64)
132482CopyLoc[13](loc6: u64)
133086MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
133288MoveLoc[6](Arg6: &Clock)
133490MoveLoc[13](loc6: u64)
133792CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
133893MutBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
133994MoveLoc[9](loc2: Coin<Ty1>)
134095Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
134196Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
134398MoveLoc[17](loc10: u64)
134499CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
1345100ImmBorrowFieldGeneric[0](TradingPair.mult_x: u64)
1348103LdConst[8](u64: 1000..)
1350105StLoc[16](loc9: u64)
1351106MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
1352107MoveLoc[6](Arg6: &Clock)
1353108MoveLoc[16](loc9: u64)
1354109Call update_volume_record<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, &Clock, u64)
1359public trader_swap_and_repay2<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: Borrow<Ty0, Ty1>, Arg4: u64, Arg5: Option<Coin<Ty0>>, Arg6: Option<Coin<Ty1>>, Arg7: &Clock) {
13770MoveLoc[1](Arg1: u64)
13781CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
13792MutBorrowFieldGeneric[0](TradingPair.mult_x: u64)
13814MoveLoc[2](Arg2: u64)
13825CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
13836MutBorrowFieldGeneric[1](TradingPair.mult_y: u64)
13858MoveLoc[3](Arg3: Borrow<Ty0, Ty1>)
13869UnpackGeneric[1](Borrow<Ty0, Ty1>)
138710StLoc[8](loc0: u64)
138811StLoc[16](loc8: bool)
138912CopyLoc[16](loc8: bool)
139114StLoc[17](loc9: bool)
139215CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
139316ImmBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
139417Call balance::value<Ty0>(&Balance<Ty0>): u64
139619StLoc[11](loc3: u64)
139720MoveLoc[17](loc9: bool)
140022MoveLoc[6](Arg6: Option<Coin<Ty1>>)
140123Call option::destroy_none<Coin<Ty1>>(Option<Coin<Ty1>>)
140224MoveLoc[5](Arg5: Option<Coin<Ty0>>)
140325Call option::destroy_some<Coin<Ty0>>(Option<Coin<Ty0>>): Coin<Ty0>
140426StLoc[9](loc1: Coin<Ty0>)
140527ImmBorrowLoc[9](loc1: Coin<Ty0>)
140628Call coin::value<Ty0>(&Coin<Ty0>): u64
140729StLoc[14](loc6: u64)
140830CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
140931CopyLoc[14](loc6: u64)
141032Call quote_x_to_y<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, u64): u64 * u64
141133StLoc[13](loc5: u64)
141234StLoc[23](loc15: u64)
141335CopyLoc[23](loc15: u64)
141436MoveLoc[13](loc5: u64)
141638StLoc[19](loc11: u64)
141739MoveLoc[16](loc8: bool)
141840MoveLoc[8](loc0: u64)
141941CopyLoc[19](loc11: u64)
142042MoveLoc[11](loc3: u64)
142143MoveLoc[14](loc6: u64)
142244Pack[7](FlashSwapV2)
142345Call event::emit<FlashSwapV2>(FlashSwapV2)
142446CopyLoc[19](loc11: u64)
142547MoveLoc[4](Arg4: u64)
143151MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
143353MoveLoc[7](Arg7: &Clock)
143555MoveLoc[19](loc11: u64)
143857CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
143958MutBorrowFieldGeneric[11](TradingPair.reserve_x: Balance<Ty0>)
144059MoveLoc[9](loc1: Coin<Ty0>)
144160Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
144261Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
144463MoveLoc[23](loc15: u64)
144564CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
144665ImmBorrowFieldGeneric[1](TradingPair.mult_y: u64)
144968LdConst[8](u64: 1000..)
145170StLoc[20](loc12: u64)
145271MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
145372MoveLoc[7](Arg7: &Clock)
145473MoveLoc[20](loc12: u64)
145574Call update_volume_record<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, &Clock, u64)
145876MoveLoc[5](Arg5: Option<Coin<Ty0>>)
145977Call option::destroy_none<Coin<Ty0>>(Option<Coin<Ty0>>)
146078MoveLoc[6](Arg6: Option<Coin<Ty1>>)
146179Call option::destroy_some<Coin<Ty1>>(Option<Coin<Ty1>>): Coin<Ty1>
146280StLoc[10](loc2: Coin<Ty1>)
146381ImmBorrowLoc[10](loc2: Coin<Ty1>)
146482Call coin::value<Ty1>(&Coin<Ty1>): u64
146583StLoc[15](loc7: u64)
146684CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
146785CopyLoc[15](loc7: u64)
146886Call quote_y_to_x<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, u64): u64 * u64
146987StLoc[12](loc4: u64)
147088StLoc[22](loc14: u64)
147189CopyLoc[22](loc14: u64)
147290MoveLoc[12](loc4: u64)
147492StLoc[18](loc10: u64)
147593MoveLoc[16](loc8: bool)
147694MoveLoc[8](loc0: u64)
147795CopyLoc[18](loc10: u64)
147896MoveLoc[11](loc3: u64)
147997MoveLoc[15](loc7: u64)
148098Pack[7](FlashSwapV2)
148199Call event::emit<FlashSwapV2>(FlashSwapV2)
1482100CopyLoc[18](loc10: u64)
1483101MoveLoc[4](Arg4: u64)
1489105MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
1491107MoveLoc[7](Arg7: &Clock)
1493109MoveLoc[18](loc10: u64)
1496111CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
1497112MutBorrowFieldGeneric[12](TradingPair.reserve_y: Balance<Ty1>)
1498113MoveLoc[10](loc2: Coin<Ty1>)
1499114Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
1500115Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
1502117MoveLoc[22](loc14: u64)
1503118CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
1504119ImmBorrowFieldGeneric[0](TradingPair.mult_x: u64)
1507122LdConst[8](u64: 1000..)
1509124StLoc[21](loc13: u64)
1510125MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
1511126MoveLoc[7](Arg7: &Clock)
1512127MoveLoc[21](loc13: u64)
1513128Call update_volume_record<Ty0, Ty1>(&mut TradingPair<Ty0, Ty1>, &Clock, u64)
1518entry unlock<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: &TxContext) {
15200MoveLoc[1](Arg1: &TxContext)
15211Call tx_context::sender(&TxContext): address
15222LdConst[9](address: 0x52..)
15286MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
153411CopyLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
153512MutBorrowFieldGeneric[15](TradingPair.target_y_based_lock: bool)
153815MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
153916MutBorrowFieldGeneric[14](TradingPair.target_y_reference: u64)
1544entry lock<Ty0, Ty1>(Arg0: &mut TradingPair<Ty0, Ty1>, Arg1: &TxContext) {
15460MoveLoc[1](Arg1: &TxContext)
15471Call tx_context::sender(&TxContext): address
15482LdConst[9](address: 0x52..)
15546MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
156011MoveLoc[0](Arg0: &mut TradingPair<Ty0, Ty1>)
156112MutBorrowFieldGeneric[15](TradingPair.target_y_based_lock: bool)
1576 9 => address: 0x5267e890b08fefb7d4f39cfb147963132fb2e35236951541c93c4e7ffb7302dd
1577 10 => address: 0x686e4a8131df355a638fc5e69ae884433e4e76c800ba6ce0e3f1c21eca7f186d
1578 11 => vector<address>: 00
1579 12 => vector<u64>: 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000