math_swap
Module0x8925…bce5
- Move path
- 0x91bf…9ca1::math_swap
- Functions
- 33 public, 0 entry
- Structs
- 0
- Friend modules
- None
math_swap
- fee4
- fee10000bps1
- fee100bps1
- fee3000bps1
- fee500bps1
- full_math_u1286
- full_math_u326
- full_math_u646
- i12831
- i3230
- i6428
- math_bit2
- math_liquidity7
- math_sqrt_price8
- math_swap3
- math_tick7
- math_u12817
- math_u2565
- math_u647
- pool87
- pool_factory21
- pool_fetcher1
- position_manager37
- position_nft5
- reward_manager8
- string_tools5
- swap_router13
Bytecode240 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1.math_swap {
use 91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1::full_math_u128;
use 91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1::math_sqrt_price;
public compute_swap(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: u128, Arg4: bool, Arg5: u32): u128 * u128 * u128 * u128 {
L6: loc0: u128
L7: loc1: u128
L8: loc2: u128
L9: loc3: bool
L10: loc4: bool
L11: loc5: bool
L12: loc6: u128
L13: loc7: u128
L14: loc8: u128
L15: loc9: u128
L16: loc10: u128
L17: loc11: u128
L18: loc12: bool
L19: loc13: u128
B0:
0CopyLoc[2](Arg2: u128)
1LdU128(0)
2Eq
3BrFalse(9)
B1:
4MoveLoc[1](Arg1: u128)
5LdU128(0)
6LdU128(0)
7LdU128(0)
8Ret
B2:
9CopyLoc[0](Arg0: u128)
10CopyLoc[1](Arg1: u128)
11Ge
12StLoc[11](loc5: bool)
13CopyLoc[0](Arg0: u128)
14CopyLoc[1](Arg1: u128)
15CopyLoc[2](Arg2: u128)
16CopyLoc[4](Arg4: bool)
17CopyLoc[11](loc5: bool)
18Call get_amount_fixed_delta(u128, u128, u128, bool, bool): u128
19StLoc[13](loc7: u128)
20CopyLoc[3](Arg3: u128)
21StLoc[12](loc6: u128)
22CopyLoc[4](Arg4: bool)
23BrFalse(32)
B3:
24CopyLoc[3](Arg3: u128)
25LdU32(1000000)
26CopyLoc[5](Arg5: u32)
27Sub
28CastU128
29LdU128(1000000)
30Call full_math_u128::mul_div_floor(u128, u128, u128): u128
31StLoc[12](loc6: u128)
B4:
32CopyLoc[12](loc6: u128)
33CopyLoc[13](loc7: u128)
34Ge
35BrFalse(39)
B5:
36CopyLoc[1](Arg1: u128)
37StLoc[6](loc0: u128)
38Branch(46)
B6:
39CopyLoc[0](Arg0: u128)
40CopyLoc[2](Arg2: u128)
41MoveLoc[12](loc6: u128)
42CopyLoc[4](Arg4: bool)
43CopyLoc[11](loc5: bool)
44Call math_sqrt_price::get_next_sqrt_price(u128, u128, u128, bool, bool): u128
45StLoc[6](loc0: u128)
B7:
46MoveLoc[6](loc0: u128)
47StLoc[19](loc13: u128)
48CopyLoc[19](loc13: u128)
49MoveLoc[1](Arg1: u128)
50Eq
51StLoc[18](loc12: bool)
52CopyLoc[0](Arg0: u128)
53CopyLoc[19](loc13: u128)
54CopyLoc[2](Arg2: u128)
55CopyLoc[4](Arg4: bool)
56CopyLoc[11](loc5: bool)
57Call get_amount_unfixed_delta(u128, u128, u128, bool, bool): u128
58StLoc[16](loc10: u128)
59CopyLoc[18](loc12: bool)
60Not
61BrFalse(69)
B8:
62MoveLoc[0](Arg0: u128)
63CopyLoc[19](loc13: u128)
64MoveLoc[2](Arg2: u128)
65CopyLoc[4](Arg4: bool)
66MoveLoc[11](loc5: bool)
67Call get_amount_fixed_delta(u128, u128, u128, bool, bool): u128
68StLoc[13](loc7: u128)
B9:
69CopyLoc[4](Arg4: bool)
70BrFalse(76)
B10:
71MoveLoc[13](loc7: u128)
72MoveLoc[16](loc10: u128)
73StLoc[8](loc2: u128)
74StLoc[7](loc1: u128)
75Branch(80)
B11:
76MoveLoc[16](loc10: u128)
77MoveLoc[13](loc7: u128)
78StLoc[8](loc2: u128)
79StLoc[7](loc1: u128)
B12:
80MoveLoc[7](loc1: u128)
81MoveLoc[8](loc2: u128)
82StLoc[15](loc9: u128)
83StLoc[14](loc8: u128)
84CopyLoc[4](Arg4: bool)
85Not
86BrFalse(92)
B13:
87CopyLoc[15](loc9: u128)
88CopyLoc[3](Arg3: u128)
89Gt
90StLoc[9](loc3: bool)
91Branch(94)
B14:
92LdFalse
93StLoc[9](loc3: bool)
B15:
94MoveLoc[9](loc3: bool)
95BrFalse(98)
B16:
96CopyLoc[3](Arg3: u128)
97StLoc[15](loc9: u128)
B17:
98MoveLoc[4](Arg4: bool)
99BrFalse(104)
B18:
100MoveLoc[18](loc12: bool)
101Not
102StLoc[10](loc4: bool)
103Branch(106)
B19:
104LdFalse
105StLoc[10](loc4: bool)
B20:
106MoveLoc[10](loc4: bool)
107BrFalse(113)
B21:
108MoveLoc[3](Arg3: u128)
109CopyLoc[14](loc8: u128)
110Sub
111StLoc[17](loc11: u128)
112Branch(122)
B22:
113CopyLoc[14](loc8: u128)
114CopyLoc[5](Arg5: u32)
115CastU128
116LdU32(1000000)
117MoveLoc[5](Arg5: u32)
118Sub
119CastU128
120Call full_math_u128::mul_div_round(u128, u128, u128): u128
121StLoc[17](loc11: u128)
B23:
122MoveLoc[19](loc13: u128)
123MoveLoc[14](loc8: u128)
124MoveLoc[15](loc9: u128)
125MoveLoc[17](loc11: u128)
126Ret
}
public get_amount_fixed_delta(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: bool, Arg4: bool): u128 {
L5: loc0: u128
B0:
0MoveLoc[4](Arg4: bool)
1CopyLoc[3](Arg3: bool)
2Eq
3BrFalse(11)
B1:
4MoveLoc[0](Arg0: u128)
5MoveLoc[1](Arg1: u128)
6MoveLoc[2](Arg2: u128)
7MoveLoc[3](Arg3: bool)
8Call math_sqrt_price::get_amount_a_delta_(u128, u128, u128, bool): u128
9StLoc[5](loc0: u128)
10Branch(17)
B2:
11MoveLoc[0](Arg0: u128)
12MoveLoc[1](Arg1: u128)
13MoveLoc[2](Arg2: u128)
14MoveLoc[3](Arg3: bool)
15Call math_sqrt_price::get_amount_b_delta_(u128, u128, u128, bool): u128
16StLoc[5](loc0: u128)
B3:
17MoveLoc[5](loc0: u128)
18Ret
}
public get_amount_unfixed_delta(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: bool, Arg4: bool): u128 {
L5: loc0: u128
B0:
0MoveLoc[4](Arg4: bool)
1CopyLoc[3](Arg3: bool)
2Eq
3BrFalse(12)
B1:
4MoveLoc[0](Arg0: u128)
5MoveLoc[1](Arg1: u128)
6MoveLoc[2](Arg2: u128)
7MoveLoc[3](Arg3: bool)
8Not
9Call math_sqrt_price::get_amount_b_delta_(u128, u128, u128, bool): u128
10StLoc[5](loc0: u128)
11Branch(19)
B2:
12MoveLoc[0](Arg0: u128)
13MoveLoc[1](Arg1: u128)
14MoveLoc[2](Arg2: u128)
15MoveLoc[3](Arg3: bool)
16Not
17Call math_sqrt_price::get_amount_a_delta_(u128, u128, u128, bool): u128
18StLoc[5](loc0: u128)
B3:
19MoveLoc[5](loc0: u128)
20Ret
}
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u8: 64
4 => u128: 18446744073709551616
5 => u128: 18446744073709551615
6 => u128: 10000
]
}