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

API

clmm_math

Module0x67b3…928a
Move path
0x3492…c267::clmm_math
Functions
1414 public, 0 entry
Structs
0
Friend modules
None
clmm_math

Bytecode972 lines

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

// Move bytecode v6
module 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267.clmm_math {
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::i32H;
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::tick_math;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::full_math_u128;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::full_math_u64;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::math_u128;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::math_u256;
use 714a63a0dba6da4f017b42d5d0fb78867f18bcde904868e51d951a5a6f5b7f57::i32;
 
public fee_rate_denominator(): u64 {
B0:
0LdConst[5](u64: 1000..)
1Ret
}
 
public get_liquidity_from_a(Arg0: u128, Arg1: u128, Arg2: u64, Arg3: bool): u128 {
L4: loc0: u128
L5: loc1: u128
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2Gt
3BrFalse(9)
B1:
4CopyLoc[0](Arg0: u128)
5CopyLoc[1](Arg1: u128)
6Sub
7StLoc[4](loc0: u128)
8Branch(13)
B2:
9CopyLoc[1](Arg1: u128)
10CopyLoc[0](Arg0: u128)
11Sub
12StLoc[4](loc0: u128)
B3:
13MoveLoc[4](loc0: u128)
14StLoc[5](loc1: u128)
15MoveLoc[0](Arg0: u128)
16MoveLoc[1](Arg1: u128)
17Call full_math_u128::full_mul(u128, u128): u256
18LdU8(64)
19Shr
20MoveLoc[2](Arg2: u64)
21CastU256
22Mul
23MoveLoc[5](loc1: u128)
24CastU256
25MoveLoc[3](Arg3: bool)
26Call math_u256::div_round(u256, u256, bool): u256
27CastU128
28Ret
}
 
public get_liquidity_from_b(Arg0: u128, Arg1: u128, Arg2: u64, Arg3: bool): u128 {
L4: loc0: u128
L5: loc1: u128
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2Gt
3BrFalse(9)
B1:
4MoveLoc[0](Arg0: u128)
5MoveLoc[1](Arg1: u128)
6Sub
7StLoc[4](loc0: u128)
8Branch(13)
B2:
9MoveLoc[1](Arg1: u128)
10MoveLoc[0](Arg0: u128)
11Sub
12StLoc[4](loc0: u128)
B3:
13MoveLoc[4](loc0: u128)
14StLoc[5](loc1: u128)
15MoveLoc[2](Arg2: u64)
16CastU256
17LdU8(64)
18Shl
19MoveLoc[5](loc1: u128)
20CastU256
21MoveLoc[3](Arg3: bool)
22Call math_u256::div_round(u256, u256, bool): u256
23CastU128
24Ret
}
 
public get_delta_a(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: bool): u64 {
L4: loc0: u128
L5: loc1: bool
L6: loc2: u256
L7: loc3: u256
L8: loc4: bool
L9: loc5: u128
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2Gt
3BrFalse(9)
B1:
4CopyLoc[0](Arg0: u128)
5CopyLoc[1](Arg1: u128)
6Sub
7StLoc[4](loc0: u128)
8Branch(13)
B2:
9CopyLoc[1](Arg1: u128)
10CopyLoc[0](Arg0: u128)
11Sub
12StLoc[4](loc0: u128)
B3:
13MoveLoc[4](loc0: u128)
14StLoc[9](loc5: u128)
15CopyLoc[9](loc5: u128)
16LdU128(0)
17Eq
18BrFalse(22)
B4:
19LdTrue
20StLoc[5](loc1: bool)
21Branch(26)
B5:
22CopyLoc[2](Arg2: u128)
23LdU128(0)
24Eq
25StLoc[5](loc1: bool)
B6:
26MoveLoc[5](loc1: bool)
27BrFalse(30)
B7:
28LdU64(0)
29Ret
B8:
30MoveLoc[2](Arg2: u128)
31MoveLoc[9](loc5: u128)
32Call full_math_u128::full_mul(u128, u128): u256
33Call math_u256::checked_shlw(u256): u256 * bool
34StLoc[8](loc4: bool)
35StLoc[7](loc3: u256)
36MoveLoc[8](loc4: bool)
37BrFalse(40)
B9:
38LdConst[2](u64: 2)
39Abort
B10:
40MoveLoc[0](Arg0: u128)
41MoveLoc[1](Arg1: u128)
42Call full_math_u128::full_mul(u128, u128): u256
43StLoc[6](loc2: u256)
44MoveLoc[7](loc3: u256)
45MoveLoc[6](loc2: u256)
46MoveLoc[3](Arg3: bool)
47Call math_u256::div_round(u256, u256, bool): u256
48CastU64
49Ret
}
 
public get_delta_b(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: bool): u64 {
L4: loc0: u128
L5: loc1: bool
L6: loc2: bool
L7: loc3: u256
L8: loc4: u128
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2Gt
3BrFalse(9)
B1:
4MoveLoc[0](Arg0: u128)
5MoveLoc[1](Arg1: u128)
6Sub
7StLoc[4](loc0: u128)
8Branch(13)
B2:
9MoveLoc[1](Arg1: u128)
10MoveLoc[0](Arg0: u128)
11Sub
12StLoc[4](loc0: u128)
B3:
13MoveLoc[4](loc0: u128)
14StLoc[8](loc4: u128)
15CopyLoc[8](loc4: u128)
16LdU128(0)
17Eq
18BrFalse(22)
B4:
19LdTrue
20StLoc[5](loc1: bool)
21Branch(26)
B5:
22CopyLoc[2](Arg2: u128)
23LdU128(0)
24Eq
25StLoc[5](loc1: bool)
B6:
26MoveLoc[5](loc1: bool)
27BrFalse(30)
B7:
28LdU64(0)
29Ret
B8:
30MoveLoc[2](Arg2: u128)
31MoveLoc[8](loc4: u128)
32Call full_math_u128::full_mul(u128, u128): u256
33StLoc[7](loc3: u256)
34MoveLoc[3](Arg3: bool)
35BrFalse(43)
B9:
36CopyLoc[7](loc3: u256)
37LdU256(18446744073709551615)
38BitAnd
39LdU256(0)
40Gt
41StLoc[6](loc2: bool)
42Branch(45)
B10:
43LdFalse
44StLoc[6](loc2: bool)
B11:
45MoveLoc[6](loc2: bool)
46BrFalse(54)
B12:
47MoveLoc[7](loc3: u256)
48LdU8(64)
49Shr
50LdU256(1)
51Add
52CastU64
53Ret
B13:
54MoveLoc[7](loc3: u256)
55LdU8(64)
56Shr
57CastU64
58Ret
}
 
public get_next_sqrt_price_a_up(Arg0: u128, Arg1: u128, Arg2: u64, Arg3: bool): u128 {
L4: loc0: u128
L5: loc1: u256
L6: loc2: u128
L7: loc3: u256
L8: loc4: bool
L9: loc5: u256
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Eq
3BrFalse(6)
B1:
4MoveLoc[0](Arg0: u128)
5Ret
B2:
6CopyLoc[0](Arg0: u128)
7CopyLoc[1](Arg1: u128)
8Call full_math_u128::full_mul(u128, u128): u256
9Call math_u256::checked_shlw(u256): u256 * bool
10StLoc[8](loc4: bool)
11StLoc[7](loc3: u256)
12MoveLoc[8](loc4: bool)
13BrFalse(16)
B3:
14LdConst[2](u64: 2)
15Abort
B4:
16MoveLoc[1](Arg1: u128)
17CastU256
18LdU8(64)
19Shl
20StLoc[5](loc1: u256)
21MoveLoc[0](Arg0: u128)
22MoveLoc[2](Arg2: u64)
23CastU128
24Call full_math_u128::full_mul(u128, u128): u256
25StLoc[9](loc5: u256)
26MoveLoc[3](Arg3: bool)
27BrFalse(37)
B5:
28MoveLoc[7](loc3: u256)
29MoveLoc[5](loc1: u256)
30MoveLoc[9](loc5: u256)
31Add
32LdTrue
33Call math_u256::div_round(u256, u256, bool): u256
34CastU128
35StLoc[4](loc0: u128)
36Branch(45)
B6:
37MoveLoc[7](loc3: u256)
38MoveLoc[5](loc1: u256)
39MoveLoc[9](loc5: u256)
40Sub
41LdTrue
42Call math_u256::div_round(u256, u256, bool): u256
43CastU128
44StLoc[4](loc0: u128)
B7:
45MoveLoc[4](loc0: u128)
46StLoc[6](loc2: u128)
47CopyLoc[6](loc2: u128)
48Call tick_math::max_sqrt_price(): u128
49Gt
50BrFalse(53)
B8:
51LdConst[0](u64: 0)
52Abort
B9:
53CopyLoc[6](loc2: u128)
54Call tick_math::min_sqrt_price(): u128
55Lt
56BrFalse(59)
B10:
57LdConst[1](u64: 1)
58Abort
B11:
59MoveLoc[6](loc2: u128)
60Ret
}
 
public get_next_sqrt_price_b_down(Arg0: u128, Arg1: u128, Arg2: u64, Arg3: bool): u128 {
L4: loc0: u128
L5: loc1: u128
L6: loc2: u128
B0:
0MoveLoc[2](Arg2: u64)
1CastU128
2LdU8(64)
3Shl
4MoveLoc[1](Arg1: u128)
5CopyLoc[3](Arg3: bool)
6Not
7Call math_u128::checked_div_round(u128, u128, bool): u128
8StLoc[5](loc1: u128)
9MoveLoc[3](Arg3: bool)
10BrFalse(16)
B1:
11MoveLoc[0](Arg0: u128)
12MoveLoc[5](loc1: u128)
13Add
14StLoc[4](loc0: u128)
15Branch(20)
B2:
16MoveLoc[0](Arg0: u128)
17MoveLoc[5](loc1: u128)
18Sub
19StLoc[4](loc0: u128)
B3:
20MoveLoc[4](loc0: u128)
21StLoc[6](loc2: u128)
22CopyLoc[6](loc2: u128)
23Call tick_math::max_sqrt_price(): u128
24Gt
25BrFalse(28)
B4:
26LdConst[0](u64: 0)
27Abort
B5:
28CopyLoc[6](loc2: u128)
29Call tick_math::min_sqrt_price(): u128
30Lt
31BrFalse(34)
B6:
32LdConst[1](u64: 1)
33Abort
B7:
34MoveLoc[6](loc2: u128)
35Ret
}
 
public get_next_sqrt_price_from_input(Arg0: u128, Arg1: u128, Arg2: u64, Arg3: bool): u128 {
L4: loc0: u128
B0:
0MoveLoc[3](Arg3: bool)
1BrFalse(9)
B1:
2MoveLoc[0](Arg0: u128)
3MoveLoc[1](Arg1: u128)
4MoveLoc[2](Arg2: u64)
5LdTrue
6Call get_next_sqrt_price_a_up(u128, u128, u64, bool): u128
7StLoc[4](loc0: u128)
8Branch(15)
B2:
9MoveLoc[0](Arg0: u128)
10MoveLoc[1](Arg1: u128)
11MoveLoc[2](Arg2: u64)
12LdTrue
13Call get_next_sqrt_price_b_down(u128, u128, u64, bool): u128
14StLoc[4](loc0: u128)
B3:
15MoveLoc[4](loc0: u128)
16Ret
}
 
public get_next_sqrt_price_from_output(Arg0: u128, Arg1: u128, Arg2: u64, Arg3: bool): u128 {
L4: loc0: u128
B0:
0MoveLoc[3](Arg3: bool)
1BrFalse(9)
B1:
2MoveLoc[0](Arg0: u128)
3MoveLoc[1](Arg1: u128)
4MoveLoc[2](Arg2: u64)
5LdFalse
6Call get_next_sqrt_price_b_down(u128, u128, u64, bool): u128
7StLoc[4](loc0: u128)
8Branch(15)
B2:
9MoveLoc[0](Arg0: u128)
10MoveLoc[1](Arg1: u128)
11MoveLoc[2](Arg2: u64)
12LdFalse
13Call get_next_sqrt_price_a_up(u128, u128, u64, bool): u128
14StLoc[4](loc0: u128)
B3:
15MoveLoc[4](loc0: u128)
16Ret
}
 
public get_delta_up_from_input(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: bool): u256 {
L4: loc0: u128
L5: loc1: bool
L6: loc2: u256
L7: loc3: u256
L8: loc4: u256
L9: loc5: bool
L10: loc6: u256
L11: loc7: u128
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2Gt
3BrFalse(9)
B1:
4CopyLoc[0](Arg0: u128)
5CopyLoc[1](Arg1: u128)
6Sub
7StLoc[4](loc0: u128)
8Branch(13)
B2:
9CopyLoc[1](Arg1: u128)
10CopyLoc[0](Arg0: u128)
11Sub
12StLoc[4](loc0: u128)
B3:
13MoveLoc[4](loc0: u128)
14StLoc[11](loc7: u128)
15CopyLoc[11](loc7: u128)
16LdU128(0)
17Eq
18BrFalse(22)
B4:
19LdTrue
20StLoc[5](loc1: bool)
21Branch(26)
B5:
22CopyLoc[2](Arg2: u128)
23LdU128(0)
24Eq
25StLoc[5](loc1: bool)
B6:
26MoveLoc[5](loc1: bool)
27BrFalse(30)
B7:
28LdU256(0)
29Ret
B8:
30MoveLoc[3](Arg3: bool)
31BrFalse(52)
B9:
32MoveLoc[2](Arg2: u128)
33MoveLoc[11](loc7: u128)
34Call full_math_u128::full_mul(u128, u128): u256
35Call math_u256::checked_shlw(u256): u256 * bool
36StLoc[9](loc5: bool)
37StLoc[8](loc4: u256)
38MoveLoc[9](loc5: bool)
39BrFalse(42)
B10:
40LdConst[2](u64: 2)
41Abort
B11:
42MoveLoc[0](Arg0: u128)
43MoveLoc[1](Arg1: u128)
44Call full_math_u128::full_mul(u128, u128): u256
45StLoc[7](loc3: u256)
46MoveLoc[8](loc4: u256)
47MoveLoc[7](loc3: u256)
48LdTrue
49Call math_u256::div_round(u256, u256, bool): u256
50StLoc[6](loc2: u256)
51Branch(72)
B12:
52MoveLoc[2](Arg2: u128)
53MoveLoc[11](loc7: u128)
54Call full_math_u128::full_mul(u128, u128): u256
55StLoc[10](loc6: u256)
56CopyLoc[10](loc6: u256)
57LdU256(18446744073709551615)
58BitAnd
59LdU256(0)
60Gt
61BrFalse(68)
B13:
62MoveLoc[10](loc6: u256)
63LdU8(64)
64Shr
65LdU256(1)
66Add
67Ret
B14:
68MoveLoc[10](loc6: u256)
69LdU8(64)
70Shr
71StLoc[6](loc2: u256)
B15:
72MoveLoc[6](loc2: u256)
73Ret
}
 
public get_delta_down_from_output(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: bool): u256 {
L4: loc0: u128
L5: loc1: bool
L6: loc2: u256
L7: loc3: u256
L8: loc4: u256
L9: loc5: bool
L10: loc6: u128
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2Gt
3BrFalse(9)
B1:
4CopyLoc[0](Arg0: u128)
5CopyLoc[1](Arg1: u128)
6Sub
7StLoc[4](loc0: u128)
8Branch(13)
B2:
9CopyLoc[1](Arg1: u128)
10CopyLoc[0](Arg0: u128)
11Sub
12StLoc[4](loc0: u128)
B3:
13MoveLoc[4](loc0: u128)
14StLoc[10](loc6: u128)
15CopyLoc[10](loc6: u128)
16LdU128(0)
17Eq
18BrFalse(22)
B4:
19LdTrue
20StLoc[5](loc1: bool)
21Branch(26)
B5:
22CopyLoc[2](Arg2: u128)
23LdU128(0)
24Eq
25StLoc[5](loc1: bool)
B6:
26MoveLoc[5](loc1: bool)
27BrFalse(30)
B7:
28LdU256(0)
29Ret
B8:
30MoveLoc[3](Arg3: bool)
31BrFalse(39)
B9:
32MoveLoc[2](Arg2: u128)
33MoveLoc[10](loc6: u128)
34Call full_math_u128::full_mul(u128, u128): u256
35LdU8(64)
36Shr
37StLoc[6](loc2: u256)
38Branch(58)
B10:
39MoveLoc[2](Arg2: u128)
40MoveLoc[10](loc6: u128)
41Call full_math_u128::full_mul(u128, u128): u256
42Call math_u256::checked_shlw(u256): u256 * bool
43StLoc[9](loc5: bool)
44StLoc[8](loc4: u256)
45MoveLoc[9](loc5: bool)
46BrFalse(49)
B11:
47LdConst[2](u64: 2)
48Abort
B12:
49MoveLoc[0](Arg0: u128)
50MoveLoc[1](Arg1: u128)
51Call full_math_u128::full_mul(u128, u128): u256
52StLoc[7](loc3: u256)
53MoveLoc[8](loc4: u256)
54MoveLoc[7](loc3: u256)
55LdFalse
56Call math_u256::div_round(u256, u256, bool): u256
57StLoc[6](loc2: u256)
B13:
58MoveLoc[6](loc2: u256)
59Ret
}
 
public compute_swap_step(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: u64, Arg4: u64, Arg5: bool, Arg6: bool): u64 * u64 * u128 * u64 {
L7: loc0: bool
L8: loc1: u64
L9: loc2: u64
L10: loc3: u64
L11: loc4: u64
L12: loc5: u256
L13: loc6: u256
L14: loc7: u128
B0:
0CopyLoc[1](Arg1: u128)
1StLoc[14](loc7: u128)
2LdU64(0)
3StLoc[8](loc1: u64)
4LdU64(0)
5StLoc[9](loc2: u64)
6LdU64(0)
7StLoc[11](loc4: u64)
8CopyLoc[2](Arg2: u128)
9LdU128(0)
10Eq
11BrFalse(15)
B1:
12LdTrue
13StLoc[7](loc0: bool)
14Branch(19)
B2:
15CopyLoc[0](Arg0: u128)
16CopyLoc[1](Arg1: u128)
17Eq
18StLoc[7](loc0: bool)
B3:
19MoveLoc[7](loc0: bool)
20BrFalse(26)
B4:
21MoveLoc[8](loc1: u64)
22MoveLoc[9](loc2: u64)
23MoveLoc[14](loc7: u128)
24MoveLoc[11](loc4: u64)
25Ret
B5:
26CopyLoc[5](Arg5: bool)
27BrFalse(36)
B6:
28CopyLoc[0](Arg0: u128)
29CopyLoc[1](Arg1: u128)
30Ge
31BrFalse(33)
B7:
32Branch(35)
B8:
33LdConst[3](u64: 4)
34Abort
B9:
35Branch(43)
B10:
36CopyLoc[0](Arg0: u128)
37CopyLoc[1](Arg1: u128)
38Lt
39BrFalse(41)
B11:
40Branch(43)
B12:
41LdConst[3](u64: 4)
42Abort
B13:
43MoveLoc[6](Arg6: bool)
44BrFalse(96)
B14:
45CopyLoc[3](Arg3: u64)
46LdConst[5](u64: 1000..)
47CopyLoc[4](Arg4: u64)
48Sub
49LdConst[5](u64: 1000..)
50Call full_math_u64::mul_div_floor(u64, u64, u64): u64
51StLoc[10](loc3: u64)
52CopyLoc[0](Arg0: u128)
53CopyLoc[1](Arg1: u128)
54CopyLoc[2](Arg2: u128)
55CopyLoc[5](Arg5: bool)
56Call get_delta_up_from_input(u128, u128, u128, bool): u256
57StLoc[12](loc5: u256)
58CopyLoc[12](loc5: u256)
59CopyLoc[10](loc3: u64)
60CastU256
61Gt
62BrFalse(76)
B15:
63CopyLoc[10](loc3: u64)
64StLoc[8](loc1: u64)
65MoveLoc[3](Arg3: u64)
66CopyLoc[10](loc3: u64)
67Sub
68StLoc[11](loc4: u64)
69CopyLoc[0](Arg0: u128)
70CopyLoc[2](Arg2: u128)
71MoveLoc[10](loc3: u64)
72CopyLoc[5](Arg5: bool)
73Call get_next_sqrt_price_from_input(u128, u128, u64, bool): u128
74StLoc[14](loc7: u128)
75Branch(88)
B16:
76MoveLoc[12](loc5: u256)
77CastU64
78StLoc[8](loc1: u64)
79CopyLoc[8](loc1: u64)
80CopyLoc[4](Arg4: u64)
81LdConst[5](u64: 1000..)
82MoveLoc[4](Arg4: u64)
83Sub
84Call full_math_u64::mul_div_ceil(u64, u64, u64): u64
85StLoc[11](loc4: u64)
86MoveLoc[1](Arg1: u128)
87StLoc[14](loc7: u128)
B17:
88MoveLoc[0](Arg0: u128)
89CopyLoc[14](loc7: u128)
90MoveLoc[2](Arg2: u128)
91MoveLoc[5](Arg5: bool)
92Call get_delta_down_from_output(u128, u128, u128, bool): u256
93CastU64
94StLoc[9](loc2: u64)
95Branch(135)
B18:
96CopyLoc[0](Arg0: u128)
97CopyLoc[1](Arg1: u128)
98CopyLoc[2](Arg2: u128)
99CopyLoc[5](Arg5: bool)
100Call get_delta_down_from_output(u128, u128, u128, bool): u256
101StLoc[13](loc6: u256)
102CopyLoc[13](loc6: u256)
103CopyLoc[3](Arg3: u64)
104CastU256
105Gt
106BrFalse(116)
B19:
107CopyLoc[3](Arg3: u64)
108StLoc[9](loc2: u64)
109CopyLoc[0](Arg0: u128)
110CopyLoc[2](Arg2: u128)
111MoveLoc[3](Arg3: u64)
112CopyLoc[5](Arg5: bool)
113Call get_next_sqrt_price_from_output(u128, u128, u64, bool): u128
114StLoc[14](loc7: u128)
115Branch(121)
B20:
116MoveLoc[13](loc6: u256)
117CastU64
118StLoc[9](loc2: u64)
119MoveLoc[1](Arg1: u128)
120StLoc[14](loc7: u128)
B21:
121MoveLoc[0](Arg0: u128)
122CopyLoc[14](loc7: u128)
123MoveLoc[2](Arg2: u128)
124MoveLoc[5](Arg5: bool)
125Call get_delta_up_from_input(u128, u128, u128, bool): u256
126CastU64
127StLoc[8](loc1: u64)
128CopyLoc[8](loc1: u64)
129CopyLoc[4](Arg4: u64)
130LdConst[5](u64: 1000..)
131MoveLoc[4](Arg4: u64)
132Sub
133Call full_math_u64::mul_div_ceil(u64, u64, u64): u64
134StLoc[11](loc4: u64)
B22:
135MoveLoc[8](loc1: u64)
136MoveLoc[9](loc2: u64)
137MoveLoc[14](loc7: u128)
138MoveLoc[11](loc4: u64)
139Ret
}
 
public get_amount_by_liquidity(Arg0: I32, Arg1: I32, Arg2: I32, Arg3: u128, Arg4: u128, Arg5: bool): u64 * u64 {
L6: loc0: u64
L7: loc1: u64
L8: loc2: u64
L9: loc3: u64
L10: loc4: u128
L11: loc5: u128
B0:
0CopyLoc[4](Arg4: u128)
1LdU128(0)
2Eq
3BrFalse(7)
B1:
4LdU64(0)
5LdU64(0)
6Ret
B2:
7CopyLoc[0](Arg0: I32)
8Call tick_math::get_sqrt_price_at_tick(I32): u128
9StLoc[10](loc4: u128)
10CopyLoc[1](Arg1: I32)
11Call tick_math::get_sqrt_price_at_tick(I32): u128
12StLoc[11](loc5: u128)
13CopyLoc[2](Arg2: I32)
14MoveLoc[0](Arg0: I32)
15Call i32H::lt(I32, I32): bool
16BrFalse(26)
B3:
17MoveLoc[10](loc4: u128)
18MoveLoc[11](loc5: u128)
19MoveLoc[4](Arg4: u128)
20MoveLoc[5](Arg5: bool)
21Call get_delta_a(u128, u128, u128, bool): u64
22LdU64(0)
23StLoc[9](loc3: u64)
24StLoc[8](loc2: u64)
25Branch(55)
B4:
26MoveLoc[2](Arg2: I32)
27MoveLoc[1](Arg1: I32)
28Call i32H::lt(I32, I32): bool
29BrFalse(43)
B5:
30CopyLoc[3](Arg3: u128)
31MoveLoc[11](loc5: u128)
32CopyLoc[4](Arg4: u128)
33CopyLoc[5](Arg5: bool)
34Call get_delta_a(u128, u128, u128, bool): u64
35MoveLoc[10](loc4: u128)
36MoveLoc[3](Arg3: u128)
37MoveLoc[4](Arg4: u128)
38MoveLoc[5](Arg5: bool)
39Call get_delta_b(u128, u128, u128, bool): u64
40StLoc[7](loc1: u64)
41StLoc[6](loc0: u64)
42Branch(51)
B6:
43LdU64(0)
44MoveLoc[10](loc4: u128)
45MoveLoc[11](loc5: u128)
46MoveLoc[4](Arg4: u128)
47MoveLoc[5](Arg5: bool)
48Call get_delta_b(u128, u128, u128, bool): u64
49StLoc[7](loc1: u64)
50StLoc[6](loc0: u64)
B7:
51MoveLoc[6](loc0: u64)
52MoveLoc[7](loc1: u64)
53StLoc[9](loc3: u64)
54StLoc[8](loc2: u64)
B8:
55MoveLoc[8](loc2: u64)
56MoveLoc[9](loc3: u64)
57Ret
}
 
public get_liquidity_by_amount(Arg0: I32, Arg1: I32, Arg2: I32, Arg3: u128, Arg4: u64, Arg5: bool): u128 * u64 * u64 {
L6: loc0: u128
L7: loc1: u64
L8: loc2: u64
L9: loc3: u128
L10: loc4: u128
B0:
0CopyLoc[0](Arg0: I32)
1Call tick_math::get_sqrt_price_at_tick(I32): u128
2StLoc[9](loc3: u128)
3CopyLoc[1](Arg1: I32)
4Call tick_math::get_sqrt_price_at_tick(I32): u128
5StLoc[10](loc4: u128)
6LdU64(0)
7StLoc[7](loc1: u64)
8LdU64(0)
9StLoc[8](loc2: u64)
10LdU128(0)
11Pop
12MoveLoc[5](Arg5: bool)
13BrFalse(47)
B1:
14CopyLoc[4](Arg4: u64)
15StLoc[7](loc1: u64)
16CopyLoc[2](Arg2: I32)
17MoveLoc[0](Arg0: I32)
18Call i32H::lt(I32, I32): bool
19BrFalse(27)
B2:
20MoveLoc[9](loc3: u128)
21MoveLoc[10](loc4: u128)
22MoveLoc[4](Arg4: u64)
23LdFalse
24Call get_liquidity_from_a(u128, u128, u64, bool): u128
25StLoc[6](loc0: u128)
26Branch(46)
B3:
27MoveLoc[2](Arg2: I32)
28MoveLoc[1](Arg1: I32)
29Call i32H::lt(I32, I32): bool
30BrFalse(32)
B4:
31Branch(34)
B5:
32LdConst[4](u64: 3018)
33Abort
B6:
34CopyLoc[3](Arg3: u128)
35MoveLoc[10](loc4: u128)
36MoveLoc[4](Arg4: u64)
37LdFalse
38Call get_liquidity_from_a(u128, u128, u64, bool): u128
39StLoc[6](loc0: u128)
40MoveLoc[3](Arg3: u128)
41MoveLoc[9](loc3: u128)
42CopyLoc[6](loc0: u128)
43LdTrue
44Call get_delta_b(u128, u128, u128, bool): u64
45StLoc[8](loc2: u64)
B7:
46Branch(79)
B8:
47CopyLoc[4](Arg4: u64)
48StLoc[8](loc2: u64)
49CopyLoc[2](Arg2: I32)
50MoveLoc[1](Arg1: I32)
51Call i32H::gte(I32, I32): bool
52BrFalse(60)
B9:
53MoveLoc[9](loc3: u128)
54MoveLoc[10](loc4: u128)
55MoveLoc[4](Arg4: u64)
56LdFalse
57Call get_liquidity_from_b(u128, u128, u64, bool): u128
58StLoc[6](loc0: u128)
59Branch(79)
B10:
60MoveLoc[2](Arg2: I32)
61MoveLoc[0](Arg0: I32)
62Call i32H::gte(I32, I32): bool
63BrFalse(65)
B11:
64Branch(67)
B12:
65LdConst[4](u64: 3018)
66Abort
B13:
67MoveLoc[9](loc3: u128)
68CopyLoc[3](Arg3: u128)
69MoveLoc[4](Arg4: u64)
70LdFalse
71Call get_liquidity_from_b(u128, u128, u64, bool): u128
72StLoc[6](loc0: u128)
73MoveLoc[3](Arg3: u128)
74MoveLoc[10](loc4: u128)
75CopyLoc[6](loc0: u128)
76LdTrue
77Call get_delta_a(u128, u128, u128, bool): u64
78StLoc[7](loc1: u64)
B14:
79MoveLoc[6](loc0: u128)
80MoveLoc[7](loc1: u64)
81MoveLoc[8](loc2: u64)
82Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 4
4 => u64: 3018
5 => u64: 1000000
]
}