legs
Module0x4cc9…c08f
- Move path
- 0x49e7…0b41::legs
- Functions
- 2929 public, 0 entry
- Structs
- 1
- Friend modules
- None
legs
Bytecode948 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module 49e7a06354a6de08cb6a349d92187626d3615a53f8384a5a4d98e3966c990b41.legs {
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::config;
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::pool;
use c8724de692400a2a08585f6f7c8617acfb783abe2c66ae6a4680a21b36a504c5::pool as 0pool;
use c8724de692400a2a08585f6f7c8617acfb783abe2c66ae6a4680a21b36a504c5::price_oracle;
use 1eabed72c53feb3805120a081dc15963c204dc8d091542592abaf7a35689b2fb::config as 0config;
use 1eabed72c53feb3805120a081dc15963c204dc8d091542592abaf7a35689b2fb::pool as 1pool;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::balance_manager;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::order_info;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::pool as 2pool;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::vault;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1::pool as 3pool;
struct Profit<phantom Ty0> has copy, drop {
amount: u64,
tag: u64
}
public cetus_flash_a2b<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &Clock, Arg3: u64): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1> {
L4: loc0: Balance<Ty1>
L5: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2LdTrue
3LdTrue
4MoveLoc[3](Arg3: u64)
5LdConst[0](u128: 4295..)
6MoveLoc[2](Arg2: &Clock)
7Call 1pool::flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128, &Clock): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
8StLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
9StLoc[4](loc0: Balance<Ty1>)
10Call balance::destroy_zero<Ty0>(Balance<Ty0>)
11MoveLoc[4](loc0: Balance<Ty1>)
12MoveLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
13Ret
}
public cetus_flash_b2a<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &Clock, Arg3: u64): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1> {
L4: loc0: Balance<Ty0>
L5: loc1: FlashSwapReceipt<Ty0, Ty1>
L6: loc2: Balance<Ty1>
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2LdFalse
3LdTrue
4MoveLoc[3](Arg3: u64)
5LdConst[1](u128: 7922..)
6MoveLoc[2](Arg2: &Clock)
7Call 1pool::flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128, &Clock): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
8StLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
9StLoc[6](loc2: Balance<Ty1>)
10StLoc[4](loc0: Balance<Ty0>)
11MoveLoc[6](loc2: Balance<Ty1>)
12Call balance::destroy_zero<Ty1>(Balance<Ty1>)
13MoveLoc[4](loc0: Balance<Ty0>)
14MoveLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
15Ret
}
public cetus_repay_a2b<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &mut Balance<Ty0>, Arg3: FlashSwapReceipt<Ty0, Ty1>) {
L4: loc0: Balance<Ty0>
B0:
0MoveLoc[2](Arg2: &mut Balance<Ty0>)
1ImmBorrowLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
2Call 1pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
3Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
4StLoc[4](loc0: Balance<Ty0>)
5MoveLoc[0](Arg0: &GlobalConfig)
6MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
7MoveLoc[4](loc0: Balance<Ty0>)
8Call balance::zero<Ty1>(): Balance<Ty1>
9MoveLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
10Call 1pool::repay_flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
11Ret
}
public cetus_repay_b2a<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &mut Balance<Ty1>, Arg3: FlashSwapReceipt<Ty0, Ty1>) {
L4: loc0: Balance<Ty1>
B0:
0MoveLoc[2](Arg2: &mut Balance<Ty1>)
1ImmBorrowLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
2Call 1pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
3Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
4StLoc[4](loc0: Balance<Ty1>)
5MoveLoc[0](Arg0: &GlobalConfig)
6MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
7Call balance::zero<Ty0>(): Balance<Ty0>
8MoveLoc[4](loc0: Balance<Ty1>)
9MoveLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
10Call 1pool::repay_flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
11Ret
}
public cetus_swap_a2b<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &Clock, Arg3: Balance<Ty0>): Balance<Ty1> {
L4: loc0: Balance<Ty1>
L5: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0CopyLoc[0](Arg0: &GlobalConfig)
1CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MoveLoc[2](Arg2: &Clock)
3ImmBorrowLoc[3](Arg3: Balance<Ty0>)
4Call balance::value<Ty0>(&Balance<Ty0>): u64
5Call cetus_flash_a2b<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, &Clock, u64): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
6StLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
7StLoc[4](loc0: Balance<Ty1>)
8MoveLoc[0](Arg0: &GlobalConfig)
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10MutBorrowLoc[3](Arg3: Balance<Ty0>)
11MoveLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
12Call cetus_repay_a2b<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, &mut Balance<Ty0>, FlashSwapReceipt<Ty0, Ty1>)
13MoveLoc[3](Arg3: Balance<Ty0>)
14Call balance::destroy_zero<Ty0>(Balance<Ty0>)
15MoveLoc[4](loc0: Balance<Ty1>)
16Ret
}
public cetus_swap_b2a<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &Clock, Arg3: Balance<Ty1>): Balance<Ty0> {
L4: loc0: Balance<Ty0>
L5: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0CopyLoc[0](Arg0: &GlobalConfig)
1CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MoveLoc[2](Arg2: &Clock)
3ImmBorrowLoc[3](Arg3: Balance<Ty1>)
4Call balance::value<Ty1>(&Balance<Ty1>): u64
5Call cetus_flash_b2a<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, &Clock, u64): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1>
6StLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
7StLoc[4](loc0: Balance<Ty0>)
8MoveLoc[0](Arg0: &GlobalConfig)
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10MutBorrowLoc[3](Arg3: Balance<Ty1>)
11MoveLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
12Call cetus_repay_b2a<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, &mut Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
13MoveLoc[3](Arg3: Balance<Ty1>)
14Call balance::destroy_zero<Ty1>(Balance<Ty1>)
15MoveLoc[4](loc0: Balance<Ty0>)
16Ret
}
public bluefin_flash_a2b<Ty0, Ty1>(Arg0: &Clock, Arg1: &GlobalConfig, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1> {
L4: loc0: Balance<Ty1>
L5: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0MoveLoc[0](Arg0: &Clock)
1MoveLoc[1](Arg1: &GlobalConfig)
2MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
3LdTrue
4LdTrue
5MoveLoc[3](Arg3: u64)
6LdConst[0](u128: 4295..)
7Call pool::flash_swap<Ty0, Ty1>(&Clock, &GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
8StLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
9StLoc[4](loc0: Balance<Ty1>)
10Call balance::destroy_zero<Ty0>(Balance<Ty0>)
11MoveLoc[4](loc0: Balance<Ty1>)
12MoveLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
13Ret
}
public bluefin_flash_b2a<Ty0, Ty1>(Arg0: &Clock, Arg1: &GlobalConfig, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1> {
L4: loc0: Balance<Ty0>
L5: loc1: FlashSwapReceipt<Ty0, Ty1>
L6: loc2: Balance<Ty1>
B0:
0MoveLoc[0](Arg0: &Clock)
1MoveLoc[1](Arg1: &GlobalConfig)
2MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
3LdFalse
4LdTrue
5MoveLoc[3](Arg3: u64)
6LdConst[1](u128: 7922..)
7Call pool::flash_swap<Ty0, Ty1>(&Clock, &GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
8StLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
9StLoc[6](loc2: Balance<Ty1>)
10StLoc[4](loc0: Balance<Ty0>)
11MoveLoc[6](loc2: Balance<Ty1>)
12Call balance::destroy_zero<Ty1>(Balance<Ty1>)
13MoveLoc[4](loc0: Balance<Ty0>)
14MoveLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
15Ret
}
public bluefin_repay_a2b<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &mut Balance<Ty0>, Arg3: FlashSwapReceipt<Ty0, Ty1>) {
L4: loc0: Balance<Ty0>
B0:
0MoveLoc[2](Arg2: &mut Balance<Ty0>)
1ImmBorrowLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
2Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
3Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
4StLoc[4](loc0: Balance<Ty0>)
5MoveLoc[0](Arg0: &GlobalConfig)
6MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
7MoveLoc[4](loc0: Balance<Ty0>)
8Call balance::zero<Ty1>(): Balance<Ty1>
9MoveLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
10Call pool::repay_flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
11Ret
}
public bluefin_repay_b2a<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &mut Balance<Ty1>, Arg3: FlashSwapReceipt<Ty0, Ty1>) {
L4: loc0: Balance<Ty1>
B0:
0MoveLoc[2](Arg2: &mut Balance<Ty1>)
1ImmBorrowLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
2Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
3Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
4StLoc[4](loc0: Balance<Ty1>)
5MoveLoc[0](Arg0: &GlobalConfig)
6MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
7Call balance::zero<Ty0>(): Balance<Ty0>
8MoveLoc[4](loc0: Balance<Ty1>)
9MoveLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
10Call pool::repay_flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
11Ret
}
public bluefin_swap_a2b<Ty0, Ty1>(Arg0: &Clock, Arg1: &GlobalConfig, Arg2: &mut Pool<Ty0, Ty1>, Arg3: Balance<Ty0>): Balance<Ty1> {
L4: loc0: u64
L5: loc1: Balance<Ty1>
B0:
0ImmBorrowLoc[3](Arg3: Balance<Ty0>)
1Call balance::value<Ty0>(&Balance<Ty0>): u64
2StLoc[4](loc0: u64)
3MoveLoc[0](Arg0: &Clock)
4MoveLoc[1](Arg1: &GlobalConfig)
5MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
6MoveLoc[3](Arg3: Balance<Ty0>)
7Call balance::zero<Ty1>(): Balance<Ty1>
8LdTrue
9LdTrue
10MoveLoc[4](loc0: u64)
11LdU64(0)
12LdConst[0](u128: 4295..)
13Call pool::swap<Ty0, Ty1>(&Clock, &GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, bool, bool, u64, u64, u128): Balance<Ty0> * Balance<Ty1>
14StLoc[5](loc1: Balance<Ty1>)
15Call balance::destroy_zero<Ty0>(Balance<Ty0>)
16MoveLoc[5](loc1: Balance<Ty1>)
17Ret
}
public bluefin_swap_b2a<Ty0, Ty1>(Arg0: &Clock, Arg1: &GlobalConfig, Arg2: &mut Pool<Ty0, Ty1>, Arg3: Balance<Ty1>): Balance<Ty0> {
L4: loc0: u64
L5: loc1: Balance<Ty1>
L6: loc2: Balance<Ty0>
B0:
0ImmBorrowLoc[3](Arg3: Balance<Ty1>)
1Call balance::value<Ty1>(&Balance<Ty1>): u64
2StLoc[4](loc0: u64)
3MoveLoc[0](Arg0: &Clock)
4MoveLoc[1](Arg1: &GlobalConfig)
5MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
6Call balance::zero<Ty0>(): Balance<Ty0>
7MoveLoc[3](Arg3: Balance<Ty1>)
8LdFalse
9LdTrue
10MoveLoc[4](loc0: u64)
11LdU64(0)
12LdConst[1](u128: 7922..)
13Call pool::swap<Ty0, Ty1>(&Clock, &GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, bool, bool, u64, u64, u128): Balance<Ty0> * Balance<Ty1>
14StLoc[5](loc1: Balance<Ty1>)
15StLoc[6](loc2: Balance<Ty0>)
16MoveLoc[5](loc1: Balance<Ty1>)
17Call balance::destroy_zero<Ty1>(Balance<Ty1>)
18MoveLoc[6](loc2: Balance<Ty0>)
19Ret
}
public turbos_flash_a2b<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Clock, Arg2: &Versioned, Arg3: u64, Arg4: &mut TxContext): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1> {
L5: loc0: Coin<Ty1>
L6: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
1CopyLoc[4](Arg4: &mut TxContext)
2FreezeRef
3Call tx_context::sender(&TxContext): address
4LdTrue
5MoveLoc[3](Arg3: u64)
6CastU128
7LdTrue
8LdConst[0](u128: 4295..)
9MoveLoc[1](Arg1: &Clock)
10MoveLoc[2](Arg2: &Versioned)
11MoveLoc[4](Arg4: &mut TxContext)
12Call 3pool::flash_swap<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, address, bool, u128, bool, u128, &Clock, &Versioned, &mut TxContext): Coin<Ty0> * Coin<Ty1> * FlashSwapReceipt<Ty0, Ty1>
13StLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
14StLoc[5](loc0: Coin<Ty1>)
15Call coin::destroy_zero<Ty0>(Coin<Ty0>)
16MoveLoc[5](loc0: Coin<Ty1>)
17Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
18MoveLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
19Ret
}
public turbos_flash_b2a<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Clock, Arg2: &Versioned, Arg3: u64, Arg4: &mut TxContext): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1> {
L5: loc0: Coin<Ty0>
L6: loc1: FlashSwapReceipt<Ty0, Ty1>
L7: loc2: Coin<Ty1>
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
1CopyLoc[4](Arg4: &mut TxContext)
2FreezeRef
3Call tx_context::sender(&TxContext): address
4LdFalse
5MoveLoc[3](Arg3: u64)
6CastU128
7LdTrue
8LdConst[1](u128: 7922..)
9MoveLoc[1](Arg1: &Clock)
10MoveLoc[2](Arg2: &Versioned)
11MoveLoc[4](Arg4: &mut TxContext)
12Call 3pool::flash_swap<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, address, bool, u128, bool, u128, &Clock, &Versioned, &mut TxContext): Coin<Ty0> * Coin<Ty1> * FlashSwapReceipt<Ty0, Ty1>
13StLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
14StLoc[7](loc2: Coin<Ty1>)
15StLoc[5](loc0: Coin<Ty0>)
16MoveLoc[7](loc2: Coin<Ty1>)
17Call coin::destroy_zero<Ty1>(Coin<Ty1>)
18MoveLoc[5](loc0: Coin<Ty0>)
19Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
20MoveLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
21Ret
}
public turbos_repay_a2b<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Versioned, Arg2: &mut Balance<Ty0>, Arg3: FlashSwapReceipt<Ty0, Ty1>, Arg4: &mut TxContext) {
L5: loc0: u64
L6: loc1: Coin<Ty0>
B0:
0ImmBorrowLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
1Call 3pool::get_flash_swap_receipt_info<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): ID * bool * u64
2StLoc[5](loc0: u64)
3Pop
4Pop
5MoveLoc[2](Arg2: &mut Balance<Ty0>)
6MoveLoc[5](loc0: u64)
7Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
8CopyLoc[4](Arg4: &mut TxContext)
9Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
10StLoc[6](loc1: Coin<Ty0>)
11MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
12MoveLoc[6](loc1: Coin<Ty0>)
13MoveLoc[4](Arg4: &mut TxContext)
14Call coin::zero<Ty1>(&mut TxContext): Coin<Ty1>
15MoveLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
16MoveLoc[1](Arg1: &Versioned)
17Call 3pool::repay_flash_swap<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, Coin<Ty0>, Coin<Ty1>, FlashSwapReceipt<Ty0, Ty1>, &Versioned)
18Ret
}
public turbos_repay_b2a<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Versioned, Arg2: &mut Balance<Ty1>, Arg3: FlashSwapReceipt<Ty0, Ty1>, Arg4: &mut TxContext) {
L5: loc0: u64
L6: loc1: Coin<Ty1>
B0:
0ImmBorrowLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
1Call 3pool::get_flash_swap_receipt_info<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): ID * bool * u64
2StLoc[5](loc0: u64)
3Pop
4Pop
5MoveLoc[2](Arg2: &mut Balance<Ty1>)
6MoveLoc[5](loc0: u64)
7Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
8CopyLoc[4](Arg4: &mut TxContext)
9Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
10StLoc[6](loc1: Coin<Ty1>)
11MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
12MoveLoc[4](Arg4: &mut TxContext)
13Call coin::zero<Ty0>(&mut TxContext): Coin<Ty0>
14MoveLoc[6](loc1: Coin<Ty1>)
15MoveLoc[3](Arg3: FlashSwapReceipt<Ty0, Ty1>)
16MoveLoc[1](Arg1: &Versioned)
17Call 3pool::repay_flash_swap<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, Coin<Ty0>, Coin<Ty1>, FlashSwapReceipt<Ty0, Ty1>, &Versioned)
18Ret
}
public turbos_swap_a2b<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Clock, Arg2: &Versioned, Arg3: Balance<Ty0>, Arg4: &mut TxContext): Balance<Ty1> {
L5: loc0: Balance<Ty1>
L6: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
1MoveLoc[1](Arg1: &Clock)
2CopyLoc[2](Arg2: &Versioned)
3ImmBorrowLoc[3](Arg3: Balance<Ty0>)
4Call balance::value<Ty0>(&Balance<Ty0>): u64
5CopyLoc[4](Arg4: &mut TxContext)
6Call turbos_flash_a2b<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, &Clock, &Versioned, u64, &mut TxContext): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
7StLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
8StLoc[5](loc0: Balance<Ty1>)
9MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
10MoveLoc[2](Arg2: &Versioned)
11MutBorrowLoc[3](Arg3: Balance<Ty0>)
12MoveLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
13MoveLoc[4](Arg4: &mut TxContext)
14Call turbos_repay_a2b<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, &Versioned, &mut Balance<Ty0>, FlashSwapReceipt<Ty0, Ty1>, &mut TxContext)
15MoveLoc[3](Arg3: Balance<Ty0>)
16Call balance::destroy_zero<Ty0>(Balance<Ty0>)
17MoveLoc[5](loc0: Balance<Ty1>)
18Ret
}
public turbos_swap_b2a<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Clock, Arg2: &Versioned, Arg3: Balance<Ty1>, Arg4: &mut TxContext): Balance<Ty0> {
L5: loc0: Balance<Ty0>
L6: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
1MoveLoc[1](Arg1: &Clock)
2CopyLoc[2](Arg2: &Versioned)
3ImmBorrowLoc[3](Arg3: Balance<Ty1>)
4Call balance::value<Ty1>(&Balance<Ty1>): u64
5CopyLoc[4](Arg4: &mut TxContext)
6Call turbos_flash_b2a<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, &Clock, &Versioned, u64, &mut TxContext): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1>
7StLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
8StLoc[5](loc0: Balance<Ty0>)
9MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
10MoveLoc[2](Arg2: &Versioned)
11MutBorrowLoc[3](Arg3: Balance<Ty1>)
12MoveLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
13MoveLoc[4](Arg4: &mut TxContext)
14Call turbos_repay_b2a<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, &Versioned, &mut Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>, &mut TxContext)
15MoveLoc[3](Arg3: Balance<Ty1>)
16Call balance::destroy_zero<Ty1>(Balance<Ty1>)
17MoveLoc[5](loc0: Balance<Ty0>)
18Ret
}
public bluefin_flash_a2b_lim<Ty0, Ty1>(Arg0: &Clock, Arg1: &GlobalConfig, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64, Arg4: u128): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1> {
L5: loc0: Balance<Ty1>
L6: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0MoveLoc[0](Arg0: &Clock)
1MoveLoc[1](Arg1: &GlobalConfig)
2MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
3LdTrue
4LdTrue
5CopyLoc[3](Arg3: u64)
6MoveLoc[4](Arg4: u128)
7Call pool::flash_swap<Ty0, Ty1>(&Clock, &GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
8StLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
9StLoc[5](loc0: Balance<Ty1>)
10Call balance::destroy_zero<Ty0>(Balance<Ty0>)
11ImmBorrowLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
12Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
13MoveLoc[3](Arg3: u64)
14Eq
15BrFalse(17)
B1:
16Branch(19)
B2:
17LdConst[5](u64: 200)
18Abort
B3:
19MoveLoc[5](loc0: Balance<Ty1>)
20MoveLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
21Ret
}
public bluefin_flash_b2a_lim<Ty0, Ty1>(Arg0: &Clock, Arg1: &GlobalConfig, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64, Arg4: u128): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1> {
L5: loc0: Balance<Ty0>
L6: loc1: FlashSwapReceipt<Ty0, Ty1>
L7: loc2: Balance<Ty1>
B0:
0MoveLoc[0](Arg0: &Clock)
1MoveLoc[1](Arg1: &GlobalConfig)
2MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
3LdFalse
4LdTrue
5CopyLoc[3](Arg3: u64)
6MoveLoc[4](Arg4: u128)
7Call pool::flash_swap<Ty0, Ty1>(&Clock, &GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
8StLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
9StLoc[7](loc2: Balance<Ty1>)
10StLoc[5](loc0: Balance<Ty0>)
11MoveLoc[7](loc2: Balance<Ty1>)
12Call balance::destroy_zero<Ty1>(Balance<Ty1>)
13ImmBorrowLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
14Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
15MoveLoc[3](Arg3: u64)
16Eq
17BrFalse(19)
B1:
18Branch(21)
B2:
19LdConst[5](u64: 200)
20Abort
B3:
21MoveLoc[5](loc0: Balance<Ty0>)
22MoveLoc[6](loc1: FlashSwapReceipt<Ty0, Ty1>)
23Ret
}
public bluefin_swap_a2b_lim<Ty0, Ty1>(Arg0: &Clock, Arg1: &GlobalConfig, Arg2: &mut Pool<Ty0, Ty1>, Arg3: Balance<Ty0>, Arg4: u128): Balance<Ty1> {
L5: loc0: u64
L6: loc1: Balance<Ty0>
L7: loc2: Balance<Ty1>
B0:
0ImmBorrowLoc[3](Arg3: Balance<Ty0>)
1Call balance::value<Ty0>(&Balance<Ty0>): u64
2StLoc[5](loc0: u64)
3MoveLoc[0](Arg0: &Clock)
4MoveLoc[1](Arg1: &GlobalConfig)
5MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
6MoveLoc[3](Arg3: Balance<Ty0>)
7Call balance::zero<Ty1>(): Balance<Ty1>
8LdTrue
9LdTrue
10MoveLoc[5](loc0: u64)
11LdU64(0)
12MoveLoc[4](Arg4: u128)
13Call pool::swap<Ty0, Ty1>(&Clock, &GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, bool, bool, u64, u64, u128): Balance<Ty0> * Balance<Ty1>
14StLoc[7](loc2: Balance<Ty1>)
15StLoc[6](loc1: Balance<Ty0>)
16ImmBorrowLoc[6](loc1: Balance<Ty0>)
17Call balance::value<Ty0>(&Balance<Ty0>): u64
18LdU64(0)
19Eq
20BrFalse(22)
B1:
21Branch(24)
B2:
22LdConst[5](u64: 200)
23Abort
B3:
24MoveLoc[6](loc1: Balance<Ty0>)
25Call balance::destroy_zero<Ty0>(Balance<Ty0>)
26MoveLoc[7](loc2: Balance<Ty1>)
27Ret
}
public bluefin_swap_b2a_lim<Ty0, Ty1>(Arg0: &Clock, Arg1: &GlobalConfig, Arg2: &mut Pool<Ty0, Ty1>, Arg3: Balance<Ty1>, Arg4: u128): Balance<Ty0> {
L5: loc0: u64
L6: loc1: Balance<Ty1>
L7: loc2: Balance<Ty0>
B0:
0ImmBorrowLoc[3](Arg3: Balance<Ty1>)
1Call balance::value<Ty1>(&Balance<Ty1>): u64
2StLoc[5](loc0: u64)
3MoveLoc[0](Arg0: &Clock)
4MoveLoc[1](Arg1: &GlobalConfig)
5MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
6Call balance::zero<Ty0>(): Balance<Ty0>
7MoveLoc[3](Arg3: Balance<Ty1>)
8LdFalse
9LdTrue
10MoveLoc[5](loc0: u64)
11LdU64(0)
12MoveLoc[4](Arg4: u128)
13Call pool::swap<Ty0, Ty1>(&Clock, &GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, bool, bool, u64, u64, u128): Balance<Ty0> * Balance<Ty1>
14StLoc[6](loc1: Balance<Ty1>)
15StLoc[7](loc2: Balance<Ty0>)
16ImmBorrowLoc[6](loc1: Balance<Ty1>)
17Call balance::value<Ty1>(&Balance<Ty1>): u64
18LdU64(0)
19Eq
20BrFalse(22)
B1:
21Branch(24)
B2:
22LdConst[5](u64: 200)
23Abort
B3:
24MoveLoc[6](loc1: Balance<Ty1>)
25Call balance::destroy_zero<Ty1>(Balance<Ty1>)
26MoveLoc[7](loc2: Balance<Ty0>)
27Ret
}
public turbos_flash_a2b_lim<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Clock, Arg2: &Versioned, Arg3: u64, Arg4: u128, Arg5: &mut TxContext): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1> {
L6: loc0: Coin<Ty1>
L7: loc1: u64
L8: loc2: FlashSwapReceipt<Ty0, Ty1>
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
1CopyLoc[5](Arg5: &mut TxContext)
2FreezeRef
3Call tx_context::sender(&TxContext): address
4LdTrue
5CopyLoc[3](Arg3: u64)
6CastU128
7LdTrue
8MoveLoc[4](Arg4: u128)
9MoveLoc[1](Arg1: &Clock)
10MoveLoc[2](Arg2: &Versioned)
11MoveLoc[5](Arg5: &mut TxContext)
12Call 3pool::flash_swap<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, address, bool, u128, bool, u128, &Clock, &Versioned, &mut TxContext): Coin<Ty0> * Coin<Ty1> * FlashSwapReceipt<Ty0, Ty1>
13StLoc[8](loc2: FlashSwapReceipt<Ty0, Ty1>)
14StLoc[6](loc0: Coin<Ty1>)
15Call coin::destroy_zero<Ty0>(Coin<Ty0>)
16ImmBorrowLoc[8](loc2: FlashSwapReceipt<Ty0, Ty1>)
17Call 3pool::get_flash_swap_receipt_info<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): ID * bool * u64
18StLoc[7](loc1: u64)
19Pop
20Pop
21MoveLoc[7](loc1: u64)
22MoveLoc[3](Arg3: u64)
23Eq
24BrFalse(26)
B1:
25Branch(28)
B2:
26LdConst[5](u64: 200)
27Abort
B3:
28MoveLoc[6](loc0: Coin<Ty1>)
29Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
30MoveLoc[8](loc2: FlashSwapReceipt<Ty0, Ty1>)
31Ret
}
public turbos_flash_b2a_lim<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Clock, Arg2: &Versioned, Arg3: u64, Arg4: u128, Arg5: &mut TxContext): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1> {
L6: loc0: Coin<Ty0>
L7: loc1: u64
L8: loc2: FlashSwapReceipt<Ty0, Ty1>
L9: loc3: Coin<Ty1>
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
1CopyLoc[5](Arg5: &mut TxContext)
2FreezeRef
3Call tx_context::sender(&TxContext): address
4LdFalse
5CopyLoc[3](Arg3: u64)
6CastU128
7LdTrue
8MoveLoc[4](Arg4: u128)
9MoveLoc[1](Arg1: &Clock)
10MoveLoc[2](Arg2: &Versioned)
11MoveLoc[5](Arg5: &mut TxContext)
12Call 3pool::flash_swap<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, address, bool, u128, bool, u128, &Clock, &Versioned, &mut TxContext): Coin<Ty0> * Coin<Ty1> * FlashSwapReceipt<Ty0, Ty1>
13StLoc[8](loc2: FlashSwapReceipt<Ty0, Ty1>)
14StLoc[9](loc3: Coin<Ty1>)
15StLoc[6](loc0: Coin<Ty0>)
16MoveLoc[9](loc3: Coin<Ty1>)
17Call coin::destroy_zero<Ty1>(Coin<Ty1>)
18ImmBorrowLoc[8](loc2: FlashSwapReceipt<Ty0, Ty1>)
19Call 3pool::get_flash_swap_receipt_info<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): ID * bool * u64
20StLoc[7](loc1: u64)
21Pop
22Pop
23MoveLoc[7](loc1: u64)
24MoveLoc[3](Arg3: u64)
25Eq
26BrFalse(28)
B1:
27Branch(30)
B2:
28LdConst[5](u64: 200)
29Abort
B3:
30MoveLoc[6](loc0: Coin<Ty0>)
31Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
32MoveLoc[8](loc2: FlashSwapReceipt<Ty0, Ty1>)
33Ret
}
public turbos_swap_a2b_lim<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Clock, Arg2: &Versioned, Arg3: Balance<Ty0>, Arg4: u128, Arg5: &mut TxContext): Balance<Ty1> {
L6: loc0: Balance<Ty1>
L7: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
1MoveLoc[1](Arg1: &Clock)
2CopyLoc[2](Arg2: &Versioned)
3ImmBorrowLoc[3](Arg3: Balance<Ty0>)
4Call balance::value<Ty0>(&Balance<Ty0>): u64
5MoveLoc[4](Arg4: u128)
6CopyLoc[5](Arg5: &mut TxContext)
7Call turbos_flash_a2b_lim<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, &Clock, &Versioned, u64, u128, &mut TxContext): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
8StLoc[7](loc1: FlashSwapReceipt<Ty0, Ty1>)
9StLoc[6](loc0: Balance<Ty1>)
10MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
11MoveLoc[2](Arg2: &Versioned)
12MutBorrowLoc[3](Arg3: Balance<Ty0>)
13MoveLoc[7](loc1: FlashSwapReceipt<Ty0, Ty1>)
14MoveLoc[5](Arg5: &mut TxContext)
15Call turbos_repay_a2b<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, &Versioned, &mut Balance<Ty0>, FlashSwapReceipt<Ty0, Ty1>, &mut TxContext)
16MoveLoc[3](Arg3: Balance<Ty0>)
17Call balance::destroy_zero<Ty0>(Balance<Ty0>)
18MoveLoc[6](loc0: Balance<Ty1>)
19Ret
}
public turbos_swap_b2a_lim<Ty0, Ty1, Ty2>(Arg0: &mut Pool<Ty0, Ty1, Ty2>, Arg1: &Clock, Arg2: &Versioned, Arg3: Balance<Ty1>, Arg4: u128, Arg5: &mut TxContext): Balance<Ty0> {
L6: loc0: Balance<Ty0>
L7: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
1MoveLoc[1](Arg1: &Clock)
2CopyLoc[2](Arg2: &Versioned)
3ImmBorrowLoc[3](Arg3: Balance<Ty1>)
4Call balance::value<Ty1>(&Balance<Ty1>): u64
5MoveLoc[4](Arg4: u128)
6CopyLoc[5](Arg5: &mut TxContext)
7Call turbos_flash_b2a_lim<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, &Clock, &Versioned, u64, u128, &mut TxContext): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1>
8StLoc[7](loc1: FlashSwapReceipt<Ty0, Ty1>)
9StLoc[6](loc0: Balance<Ty0>)
10MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1, Ty2>)
11MoveLoc[2](Arg2: &Versioned)
12MutBorrowLoc[3](Arg3: Balance<Ty1>)
13MoveLoc[7](loc1: FlashSwapReceipt<Ty0, Ty1>)
14MoveLoc[5](Arg5: &mut TxContext)
15Call turbos_repay_b2a<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1, Ty2>, &Versioned, &mut Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>, &mut TxContext)
16MoveLoc[3](Arg3: Balance<Ty1>)
17Call balance::destroy_zero<Ty1>(Balance<Ty1>)
18MoveLoc[6](loc0: Balance<Ty0>)
19Ret
}
public db_borrow_base<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &mut TxContext): Balance<Ty0> * FlashLoan {
L3: loc0: FlashLoan
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: u64)
2MoveLoc[2](Arg2: &mut TxContext)
3Call 2pool::borrow_flashloan_base<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64, &mut TxContext): Coin<Ty0> * FlashLoan
4StLoc[3](loc0: FlashLoan)
5Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
6MoveLoc[3](loc0: FlashLoan)
7Ret
}
public db_borrow_quote<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &mut TxContext): Balance<Ty1> * FlashLoan {
L3: loc0: FlashLoan
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: u64)
2MoveLoc[2](Arg2: &mut TxContext)
3Call 2pool::borrow_flashloan_quote<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64, &mut TxContext): Coin<Ty1> * FlashLoan
4StLoc[3](loc0: FlashLoan)
5Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
6MoveLoc[3](loc0: FlashLoan)
7Ret
}
public db_return_base<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut Balance<Ty0>, Arg2: u64, Arg3: FlashLoan, Arg4: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: &mut Balance<Ty0>)
2MoveLoc[2](Arg2: u64)
3Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
4MoveLoc[4](Arg4: &mut TxContext)
5Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
6MoveLoc[3](Arg3: FlashLoan)
7Call 2pool::return_flashloan_base<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, Coin<Ty0>, FlashLoan)
8Ret
}
public db_return_quote<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut Balance<Ty1>, Arg2: u64, Arg3: FlashLoan, Arg4: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1MoveLoc[1](Arg1: &mut Balance<Ty1>)
2MoveLoc[2](Arg2: u64)
3Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
4MoveLoc[4](Arg4: &mut TxContext)
5Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
6MoveLoc[3](Arg3: FlashLoan)
7Call 2pool::return_flashloan_quote<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, Coin<Ty1>, FlashLoan)
8Ret
}
public db_sell<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut BalanceManager, Arg2: u64, Arg3: bool, Arg4: &Clock, Arg5: Balance<Ty0>, Arg6: &mut TxContext): Balance<Ty1> {
L7: loc0: OrderInfo
L8: loc1: TradeProof
B0:
0CopyLoc[1](Arg1: &mut BalanceManager)
1MoveLoc[5](Arg5: Balance<Ty0>)
2CopyLoc[6](Arg6: &mut TxContext)
3Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
4CopyLoc[6](Arg6: &mut TxContext)
5Call balance_manager::deposit<Ty0>(&mut BalanceManager, Coin<Ty0>, &mut TxContext)
6CopyLoc[1](Arg1: &mut BalanceManager)
7CopyLoc[6](Arg6: &mut TxContext)
8FreezeRef
9Call balance_manager::generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
10StLoc[8](loc1: TradeProof)
11MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
12CopyLoc[1](Arg1: &mut BalanceManager)
13ImmBorrowLoc[8](loc1: TradeProof)
14LdU64(0)
15LdU8(0)
16MoveLoc[2](Arg2: u64)
17LdFalse
18MoveLoc[3](Arg3: bool)
19MoveLoc[4](Arg4: &Clock)
20CopyLoc[6](Arg6: &mut TxContext)
21FreezeRef
22Call 2pool::place_market_order<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, u64, u8, u64, bool, bool, &Clock, &TxContext): OrderInfo
23StLoc[7](loc0: OrderInfo)
24MoveLoc[1](Arg1: &mut BalanceManager)
25ImmBorrowLoc[7](loc0: OrderInfo)
26Call order_info::cumulative_quote_quantity(&OrderInfo): u64
27MoveLoc[6](Arg6: &mut TxContext)
28Call balance_manager::withdraw<Ty1>(&mut BalanceManager, u64, &mut TxContext): Coin<Ty1>
29Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
30Ret
}
public db_buy<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &mut BalanceManager, Arg2: u64, Arg3: bool, Arg4: &Clock, Arg5: Balance<Ty1>, Arg6: &mut TxContext): Balance<Ty0> {
L7: loc0: OrderInfo
L8: loc1: TradeProof
B0:
0CopyLoc[1](Arg1: &mut BalanceManager)
1MoveLoc[5](Arg5: Balance<Ty1>)
2CopyLoc[6](Arg6: &mut TxContext)
3Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
4CopyLoc[6](Arg6: &mut TxContext)
5Call balance_manager::deposit<Ty1>(&mut BalanceManager, Coin<Ty1>, &mut TxContext)
6CopyLoc[1](Arg1: &mut BalanceManager)
7CopyLoc[6](Arg6: &mut TxContext)
8FreezeRef
9Call balance_manager::generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
10StLoc[8](loc1: TradeProof)
11MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
12CopyLoc[1](Arg1: &mut BalanceManager)
13ImmBorrowLoc[8](loc1: TradeProof)
14LdU64(0)
15LdU8(0)
16MoveLoc[2](Arg2: u64)
17LdTrue
18MoveLoc[3](Arg3: bool)
19MoveLoc[4](Arg4: &Clock)
20CopyLoc[6](Arg6: &mut TxContext)
21FreezeRef
22Call 2pool::place_market_order<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, u64, u8, u64, bool, bool, &Clock, &TxContext): OrderInfo
23StLoc[7](loc0: OrderInfo)
24MoveLoc[1](Arg1: &mut BalanceManager)
25ImmBorrowLoc[7](loc0: OrderInfo)
26Call order_info::executed_quantity(&OrderInfo): u64
27MoveLoc[6](Arg6: &mut TxContext)
28Call balance_manager::withdraw<Ty0>(&mut BalanceManager, u64, &mut TxContext): Coin<Ty0>
29Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
30Ret
}
public bolt_sell<Ty0, Ty1>(Arg0: &mut LiquidityPool<Ty0>, Arg1: &Oracle, Arg2: &Clock, Arg3: Balance<Ty0>, Arg4: &mut TxContext): Balance<Ty1> {
L5: loc0: Balance<Ty1>
B0:
0MoveLoc[0](Arg0: &mut LiquidityPool<Ty0>)
1MoveLoc[1](Arg1: &Oracle)
2MoveLoc[2](Arg2: &Clock)
3MoveLoc[3](Arg3: Balance<Ty0>)
4Call option::none<u64>(): Option<u64>
5MoveLoc[4](Arg4: &mut TxContext)
6Call 0pool::swap_sell<Ty0, Ty1>(&mut LiquidityPool<Ty0>, &Oracle, &Clock, Balance<Ty0>, Option<u64>, &mut TxContext): Balance<Ty0> * Balance<Ty1>
7StLoc[5](loc0: Balance<Ty1>)
8Call balance::destroy_zero<Ty0>(Balance<Ty0>)
9MoveLoc[5](loc0: Balance<Ty1>)
10Ret
}
public bolt_buy<Ty0, Ty1>(Arg0: &mut LiquidityPool<Ty0>, Arg1: &Oracle, Arg2: &Clock, Arg3: Balance<Ty1>, Arg4: &mut TxContext): Balance<Ty0> {
L5: loc0: Balance<Ty1>
L6: loc1: Balance<Ty0>
B0:
0MoveLoc[0](Arg0: &mut LiquidityPool<Ty0>)
1MoveLoc[1](Arg1: &Oracle)
2MoveLoc[2](Arg2: &Clock)
3MoveLoc[3](Arg3: Balance<Ty1>)
4Call option::none<u64>(): Option<u64>
5MoveLoc[4](Arg4: &mut TxContext)
6Call 0pool::swap_buy<Ty0, Ty1>(&mut LiquidityPool<Ty0>, &Oracle, &Clock, Balance<Ty1>, Option<u64>, &mut TxContext): Balance<Ty0> * Balance<Ty1>
7StLoc[5](loc0: Balance<Ty1>)
8StLoc[6](loc1: Balance<Ty0>)
9MoveLoc[5](loc0: Balance<Ty1>)
10Call balance::destroy_zero<Ty1>(Balance<Ty1>)
11MoveLoc[6](loc1: Balance<Ty0>)
12Ret
}
public leg_out<Ty0>(Arg0: &Balance<Ty0>, Arg1: u64, Arg2: u64) {
B0:
0MoveLoc[0](Arg0: &Balance<Ty0>)
1Call balance::value<Ty0>(&Balance<Ty0>): u64
2MoveLoc[1](Arg1: u64)
3Ge
4BrFalse(6)
B1:
5Branch(10)
B2:
6LdConst[4](u64: 100)
7MoveLoc[2](Arg2: u64)
8Add
9Abort
B3:
10Ret
}
public repay_floor<Ty0>(Arg0: &Balance<Ty0>, Arg1: u64, Arg2: u64) {
B0:
0MoveLoc[0](Arg0: &Balance<Ty0>)
1Call balance::value<Ty0>(&Balance<Ty0>): u64
2MoveLoc[1](Arg1: u64)
3Ge
4BrFalse(6)
B1:
5Branch(10)
B2:
6LdConst[3](u64: 10)
7MoveLoc[2](Arg2: u64)
8Add
9Abort
B3:
10Ret
}
public settle<Ty0>(Arg0: Balance<Ty0>, Arg1: u64, Arg2: u64, Arg3: &TxContext) {
L4: loc0: u64
B0:
0ImmBorrowLoc[0](Arg0: Balance<Ty0>)
1Call balance::value<Ty0>(&Balance<Ty0>): u64
2StLoc[4](loc0: u64)
3CopyLoc[4](loc0: u64)
4MoveLoc[1](Arg1: u64)
5Ge
6BrFalse(8)
B1:
7Branch(12)
B2:
8MoveLoc[3](Arg3: &TxContext)
9Pop
10LdConst[2](u64: 0)
11Abort
B3:
12MoveLoc[4](loc0: u64)
13MoveLoc[2](Arg2: u64)
14PackGeneric[0](Profit<Ty0>)
15Call event::emit<Profit<Ty0>>(Profit<Ty0>)
16MoveLoc[0](Arg0: Balance<Ty0>)
17MoveLoc[3](Arg3: &TxContext)
18Call tx_context::sender(&TxContext): address
19Call balance::send_funds<Ty0>(Balance<Ty0>, address)
20Ret
}
Constants [
0 => u128: 4295048017
1 => u128: 79226673515401279992447579054
2 => u64: 0
3 => u64: 10
4 => u64: 100
5 => u64: 200
]
}