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

API

cetus

Module0x89ea…47f6
Move path
0x89ea…47f6::cetus
Functions
88 public, 0 entry
Structs
0
Friend modules
None
cetus

Bytecode338 lines

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

// Move bytecode v7
module 89ea51fecbfebe48c0da3f1ade0189ca2065e39e1c16bc8fac83780a19a547f6.cetus {
use 1eabed72c53feb3805120a081dc15963c204dc8d091542592abaf7a35689b2fb::config;
use 1eabed72c53feb3805120a081dc15963c204dc8d091542592abaf7a35689b2fb::pool;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
 
public guard<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: u128, Arg2: bool) {
L3: loc0: u128
B0:
0CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
1Call pool::is_allow_swap<Ty0, Ty1>(&Pool<Ty0, Ty1>): bool
2BrFalse(4)
B1:
3Branch(8)
B2:
4MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
5Pop
6LdConst[1](u64: 7102)
7Abort
B3:
8MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
9Call pool::current_sqrt_price<Ty0, Ty1>(&Pool<Ty0, Ty1>): u128
10StLoc[3](loc0: u128)
11MoveLoc[2](Arg2: bool)
12BrFalse(20)
B4:
13MoveLoc[3](loc0: u128)
14MoveLoc[1](Arg1: u128)
15Ge
16BrFalse(18)
B5:
17Branch(27)
B6:
18LdConst[0](u64: 7101)
19Abort
B7:
20MoveLoc[3](loc0: u128)
21MoveLoc[1](Arg1: u128)
22Le
23BrFalse(25)
B8:
24Branch(27)
B9:
25LdConst[0](u64: 7101)
26Abort
B10:
27Ret
}
 
public swap_a2b<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: Balance<Ty0>, Arg3: &Clock): Balance<Ty1> {
L4: loc0: u64
L5: loc1: Balance<Ty1>
L6: loc2: FlashSwapReceipt<Ty0, Ty1>
B0:
0ImmBorrowLoc[2](Arg2: Balance<Ty0>)
1Call balance::value<Ty0>(&Balance<Ty0>): u64
2StLoc[4](loc0: u64)
3CopyLoc[4](loc0: u64)
4LdU64(0)
5Gt
6BrFalse(8)
B1:
7Branch(16)
B2:
8MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
9Pop
10MoveLoc[0](Arg0: &GlobalConfig)
11Pop
12MoveLoc[3](Arg3: &Clock)
13Pop
14LdConst[2](u64: 7103)
15Abort
B3:
16CopyLoc[0](Arg0: &GlobalConfig)
17CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
18LdTrue
19LdTrue
20CopyLoc[4](loc0: u64)
21LdConst[5](u128: 4295..)
22MoveLoc[3](Arg3: &Clock)
23Call pool::flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128, &Clock): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
24StLoc[6](loc2: FlashSwapReceipt<Ty0, Ty1>)
25StLoc[5](loc1: Balance<Ty1>)
26Call balance::destroy_zero<Ty0>(Balance<Ty0>)
27ImmBorrowLoc[6](loc2: FlashSwapReceipt<Ty0, Ty1>)
28Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
29MoveLoc[4](loc0: u64)
30Eq
31BrFalse(33)
B4:
32Branch(39)
B5:
33MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
34Pop
35MoveLoc[0](Arg0: &GlobalConfig)
36Pop
37LdConst[3](u64: 7104)
38Abort
B6:
39MoveLoc[0](Arg0: &GlobalConfig)
40MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
41MoveLoc[2](Arg2: Balance<Ty0>)
42Call balance::zero<Ty1>(): Balance<Ty1>
43MoveLoc[6](loc2: FlashSwapReceipt<Ty0, Ty1>)
44Call pool::repay_flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
45MoveLoc[5](loc1: Balance<Ty1>)
46Ret
}
 
public swap_b2a<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: Balance<Ty1>, Arg3: &Clock): Balance<Ty0> {
L4: loc0: u64
L5: loc1: Balance<Ty0>
L6: loc2: FlashSwapReceipt<Ty0, Ty1>
L7: loc3: Balance<Ty1>
B0:
0ImmBorrowLoc[2](Arg2: Balance<Ty1>)
1Call balance::value<Ty1>(&Balance<Ty1>): u64
2StLoc[4](loc0: u64)
3CopyLoc[4](loc0: u64)
4LdU64(0)
5Gt
6BrFalse(8)
B1:
7Branch(16)
B2:
8MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
9Pop
10MoveLoc[0](Arg0: &GlobalConfig)
11Pop
12MoveLoc[3](Arg3: &Clock)
13Pop
14LdConst[2](u64: 7103)
15Abort
B3:
16CopyLoc[0](Arg0: &GlobalConfig)
17CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
18LdFalse
19LdTrue
20CopyLoc[4](loc0: u64)
21LdConst[6](u128: 7922..)
22MoveLoc[3](Arg3: &Clock)
23Call pool::flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128, &Clock): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
24StLoc[6](loc2: FlashSwapReceipt<Ty0, Ty1>)
25StLoc[7](loc3: Balance<Ty1>)
26StLoc[5](loc1: Balance<Ty0>)
27MoveLoc[7](loc3: Balance<Ty1>)
28Call balance::destroy_zero<Ty1>(Balance<Ty1>)
29ImmBorrowLoc[6](loc2: FlashSwapReceipt<Ty0, Ty1>)
30Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
31MoveLoc[4](loc0: u64)
32Eq
33BrFalse(35)
B4:
34Branch(41)
B5:
35MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
36Pop
37MoveLoc[0](Arg0: &GlobalConfig)
38Pop
39LdConst[3](u64: 7104)
40Abort
B6:
41MoveLoc[0](Arg0: &GlobalConfig)
42MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
43Call balance::zero<Ty0>(): Balance<Ty0>
44MoveLoc[2](Arg2: Balance<Ty1>)
45MoveLoc[6](loc2: FlashSwapReceipt<Ty0, Ty1>)
46Call pool::repay_flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
47MoveLoc[5](loc1: Balance<Ty0>)
48Ret
}
 
public flash_out_a2b<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: &Clock): Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1> {
L4: loc0: Balance<Ty1>
L5: loc1: FlashSwapReceipt<Ty0, Ty1>
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Gt
3BrFalse(5)
B1:
4Branch(13)
B2:
5MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
6Pop
7MoveLoc[0](Arg0: &GlobalConfig)
8Pop
9MoveLoc[3](Arg3: &Clock)
10Pop
11LdConst[2](u64: 7103)
12Abort
B3:
13MoveLoc[0](Arg0: &GlobalConfig)
14MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
15LdTrue
16LdTrue
17MoveLoc[2](Arg2: u64)
18LdConst[5](u128: 4295..)
19MoveLoc[3](Arg3: &Clock)
20Call pool::flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128, &Clock): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
21StLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
22StLoc[4](loc0: Balance<Ty1>)
23Call balance::destroy_zero<Ty0>(Balance<Ty0>)
24MoveLoc[4](loc0: Balance<Ty1>)
25MoveLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
26Ret
}
 
public flash_out_b2a<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: &Clock): Balance<Ty0> * FlashSwapReceipt<Ty0, Ty1> {
L4: loc0: Balance<Ty0>
L5: loc1: FlashSwapReceipt<Ty0, Ty1>
L6: loc2: Balance<Ty1>
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Gt
3BrFalse(5)
B1:
4Branch(13)
B2:
5MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
6Pop
7MoveLoc[0](Arg0: &GlobalConfig)
8Pop
9MoveLoc[3](Arg3: &Clock)
10Pop
11LdConst[2](u64: 7103)
12Abort
B3:
13MoveLoc[0](Arg0: &GlobalConfig)
14MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
15LdFalse
16LdTrue
17MoveLoc[2](Arg2: u64)
18LdConst[6](u128: 7922..)
19MoveLoc[3](Arg3: &Clock)
20Call pool::flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, bool, bool, u64, u128, &Clock): Balance<Ty0> * Balance<Ty1> * FlashSwapReceipt<Ty0, Ty1>
21StLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
22StLoc[6](loc2: Balance<Ty1>)
23StLoc[4](loc0: Balance<Ty0>)
24MoveLoc[6](loc2: Balance<Ty1>)
25Call balance::destroy_zero<Ty1>(Balance<Ty1>)
26MoveLoc[4](loc0: Balance<Ty0>)
27MoveLoc[5](loc1: FlashSwapReceipt<Ty0, Ty1>)
28Ret
}
 
public repay_a2b<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: FlashSwapReceipt<Ty0, Ty1>, Arg3: Balance<Ty0>): Balance<Ty0> {
L4: loc0: u64
L5: loc1: Balance<Ty0>
B0:
0ImmBorrowLoc[2](Arg2: FlashSwapReceipt<Ty0, Ty1>)
1Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
2StLoc[4](loc0: u64)
3ImmBorrowLoc[3](Arg3: Balance<Ty0>)
4Call balance::value<Ty0>(&Balance<Ty0>): u64
5CopyLoc[4](loc0: u64)
6Ge
7BrFalse(9)
B1:
8Branch(15)
B2:
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10Pop
11MoveLoc[0](Arg0: &GlobalConfig)
12Pop
13LdConst[4](u64: 7105)
14Abort
B3:
15MutBorrowLoc[3](Arg3: Balance<Ty0>)
16MoveLoc[4](loc0: u64)
17Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
18StLoc[5](loc1: Balance<Ty0>)
19MoveLoc[0](Arg0: &GlobalConfig)
20MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
21MoveLoc[5](loc1: Balance<Ty0>)
22Call balance::zero<Ty1>(): Balance<Ty1>
23MoveLoc[2](Arg2: FlashSwapReceipt<Ty0, Ty1>)
24Call pool::repay_flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
25MoveLoc[3](Arg3: Balance<Ty0>)
26Ret
}
 
public repay_b2a<Ty0, Ty1>(Arg0: &GlobalConfig, Arg1: &mut Pool<Ty0, Ty1>, Arg2: FlashSwapReceipt<Ty0, Ty1>, Arg3: Balance<Ty1>): Balance<Ty1> {
L4: loc0: u64
L5: loc1: Balance<Ty1>
B0:
0ImmBorrowLoc[2](Arg2: FlashSwapReceipt<Ty0, Ty1>)
1Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
2StLoc[4](loc0: u64)
3ImmBorrowLoc[3](Arg3: Balance<Ty1>)
4Call balance::value<Ty1>(&Balance<Ty1>): u64
5CopyLoc[4](loc0: u64)
6Ge
7BrFalse(9)
B1:
8Branch(15)
B2:
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10Pop
11MoveLoc[0](Arg0: &GlobalConfig)
12Pop
13LdConst[4](u64: 7105)
14Abort
B3:
15MutBorrowLoc[3](Arg3: Balance<Ty1>)
16MoveLoc[4](loc0: u64)
17Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
18StLoc[5](loc1: Balance<Ty1>)
19MoveLoc[0](Arg0: &GlobalConfig)
20MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
21Call balance::zero<Ty0>(): Balance<Ty0>
22MoveLoc[5](loc1: Balance<Ty1>)
23MoveLoc[2](Arg2: FlashSwapReceipt<Ty0, Ty1>)
24Call pool::repay_flash_swap<Ty0, Ty1>(&GlobalConfig, &mut Pool<Ty0, Ty1>, Balance<Ty0>, Balance<Ty1>, FlashSwapReceipt<Ty0, Ty1>)
25MoveLoc[3](Arg3: Balance<Ty1>)
26Ret
}
 
public owed<Ty0, Ty1>(Arg0: &FlashSwapReceipt<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &FlashSwapReceipt<Ty0, Ty1>)
1Call pool::swap_pay_amount<Ty0, Ty1>(&FlashSwapReceipt<Ty0, Ty1>): u64
2Ret
}
 
Constants [
0 => u64: 7101
1 => u64: 7102
2 => u64: 7103
3 => u64: 7104
4 => u64: 7105
5 => u128: 4295048017
6 => u128: 79226673515401279992447579054
]
}