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

API

leva_deep_mm

Module0xc835…c888
Move path
0xc835…c888::leva_deep_mm
Functions
66 public, 0 entry
Structs
0
Friend modules
None
leva_deep_mm

Bytecode1689 lines

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

// Move bytecode v6
module c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888.leva_deep_mm {
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::balance_manager;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::constants;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::order_info;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::pool;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::config;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::deep_manager;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::events;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::inv_sizing;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::mm_registry;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::mm_state;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::multi_layer;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::orderbook_analyzer;
use c83532926df6ad2eee752607e3c4bc099e839110f9454b8f4ff4bd21f301c888::orders;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
public execute<Ty0, Ty1, Ty2, Ty3>(Arg0: &mut MMState, Arg1: &MMRegistry, Arg2: &mut BalanceManager, Arg3: &mut Pool<Ty0, Ty1>, Arg4: &mut Pool<Ty2, Ty3>, Arg5: &Clock, Arg6: u64, Arg7: u64, Arg8: u64, Arg9: u64, Arg10: u64, Arg11: u64, Arg12: u64, Arg13: u64, Arg14: u64, Arg15: u64, Arg16: u64, Arg17: u64, Arg18: bool, Arg19: bool, Arg20: bool, Arg21: u64, Arg22: u64, Arg23: u64, Arg24: vector<u64>, Arg25: vector<u64>, Arg26: vector<u64>, Arg27: vector<u64>, Arg28: vector<u64>, Arg29: u64, Arg30: bool, Arg31: u64, Arg32: u64, Arg33: u64, Arg34: u64, Arg35: u64, Arg36: u64, Arg37: &mut TxContext) {
L38: loc0: u64
L39: loc1: u64
L40: loc2: u64
L41: loc3: u64
L42: loc4: u64
L43: loc5: bool
L44: loc6: u64
L45: loc7: bool
L46: loc8: u64
L47: loc9: bool
L48: loc10: u64
L49: loc11: u64
L50: loc12: u64
L51: loc13: u64
L52: loc14: u64
L53: loc15: bool
L54: loc16: u64
L55: loc17: bool
L56: loc18: u64
L57: loc19: u64
L58: loc20: bool
L59: loc21: bool
L60: loc22: Option<OrderbookSnapshot>
L61: loc23: bool
L62: loc24: bool
L63: loc25: bool
L64: loc26: bool
L65: loc27: bool
L66: loc28: bool
L67: loc29: bool
L68: loc30: bool
L69: loc31: bool
L70: loc32: bool
L71: loc33: u64
L72: loc34: u64
L73: loc35: u64
L74: loc36: u64
L75: loc37: u64
L76: loc38: u64
L77: loc39: u64
L78: loc40: bool
L79: loc41: u64
L80: loc42: bool
L81: loc43: u64
L82: loc44: u64
L83: loc45: u64
L84: loc46: u64
L85: loc47: u64
L86: loc48: u64
L87: loc49: u64
L88: loc50: u64
L89: loc51: u64
L90: loc52: u64
L91: loc53: bool
L92: loc54: u64
L93: loc55: u64
L94: loc56: u64
L95: loc57: u64
L96: loc58: vector<u64>
L97: loc59: vector<u64>
L98: loc60: bool
L99: loc61: bool
L100: loc62: &MMConfig
L101: loc63: u64
L102: loc64: &ExistingOrderInfo
L103: loc65: &ExistingOrderInfo
L104: loc66: Option<ExistingOrderInfo>
L105: loc67: u64
L106: loc68: Option<ExistingOrderInfo>
L107: loc69: u64
L108: loc70: u64
L109: loc71: u64
L110: loc72: u64
L111: loc73: u64
L112: loc74: u64
L113: loc75: u64
L114: loc76: bool
L115: loc77: u64
L116: loc78: u64
L117: loc79: u64
L118: loc80: u64
L119: loc81: u64
L120: loc82: u64
L121: loc83: u64
L122: loc84: u64
L123: loc85: bool
L124: loc86: bool
L125: loc87: vector<u64>
L126: loc88: vector<u64>
L127: loc89: u64
L128: loc90: u64
L129: loc91: u64
L130: loc92: u64
L131: loc93: Option<OrderbookSnapshot>
L132: loc94: bool
L133: loc95: ID
L134: loc96: bool
L135: loc97: bool
L136: loc98: bool
L137: loc99: u64
L138: loc100: u64
L139: loc101: u64
L140: loc102: u64
L141: loc103: u64
L142: loc104: u64
L143: loc105: u64
L144: loc106: u64
L145: loc107: u64
L146: loc108: bool
L147: loc109: bool
L148: loc110: &OrderbookSnapshot
L149: loc111: &OrderbookSnapshot
L150: loc112: OrderInfo
L151: loc113: u64
L152: loc114: OrderInfo
L153: loc115: u64
L154: loc116: u64
L155: loc117: u64
L156: loc118: u64
L157: loc119: u64
L158: loc120: u64
L159: loc121: TradeProof
L160: loc122: TradeProof
L161: loc123: bool
L162: loc124: bool
B0:
0CopyLoc[5](Arg5: &Clock)
1Call clock::timestamp_ms(&Clock): u64
2StLoc[127](loc89: u64)
3CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
4FreezeRef
5Call object::id<Pool<Ty0, Ty1>>(&Pool<Ty0, Ty1>): ID
6StLoc[133](loc95: ID)
7MoveLoc[19](Arg19: bool)
8BrFalse(35)
B1:
9MoveLoc[1](Arg1: &MMRegistry)
10Pop
11MoveLoc[4](Arg4: &mut Pool<Ty2, Ty3>)
12Pop
13CopyLoc[0](Arg0: &mut MMState)
14MoveLoc[11](Arg11: u64)
15Call mm_state::advance_sequence(&mut MMState, u64)
16CopyLoc[2](Arg2: &mut BalanceManager)
17CopyLoc[37](Arg37: &mut TxContext)
18FreezeRef
19Call balance_manager::generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
20StLoc[159](loc121: TradeProof)
21MoveLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
22MoveLoc[2](Arg2: &mut BalanceManager)
23ImmBorrowLoc[159](loc121: TradeProof)
24MoveLoc[5](Arg5: &Clock)
25MoveLoc[37](Arg37: &mut TxContext)
26FreezeRef
27Call pool::cancel_all_orders<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, &Clock, &TxContext)
28MoveLoc[0](Arg0: &mut MMState)
29FreezeRef
30Call mm_state::state_id(&MMState): ID
31MoveLoc[133](loc95: ID)
32MoveLoc[127](loc89: u64)
33Call events::emit_orders_cancelled(ID, ID, u64)
34Ret
B2:
35CopyLoc[0](Arg0: &mut MMState)
36FreezeRef
37CopyLoc[127](loc89: u64)
38Call mm_state::is_trading_blocked(&MMState, u64): bool
39BrFalse(55)
B3:
40MoveLoc[0](Arg0: &mut MMState)
41Pop
42MoveLoc[1](Arg1: &MMRegistry)
43Pop
44MoveLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
45Pop
46MoveLoc[4](Arg4: &mut Pool<Ty2, Ty3>)
47Pop
48MoveLoc[37](Arg37: &mut TxContext)
49Pop
50MoveLoc[5](Arg5: &Clock)
51Pop
52MoveLoc[2](Arg2: &mut BalanceManager)
53Pop
54Ret
B4:
55CopyLoc[1](Arg1: &MMRegistry)
56CopyLoc[133](loc95: ID)
57Call mm_registry::get_pool_config(&MMRegistry, ID): &MMConfig
58StLoc[100](loc62: &MMConfig)
59CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
60FreezeRef
61CopyLoc[5](Arg5: &Clock)
62Call pool::mid_price<Ty0, Ty1>(&Pool<Ty0, Ty1>, &Clock): u64
63StLoc[143](loc105: u64)
64CopyLoc[143](loc105: u64)
65LdU64(0)
66Eq
67StLoc[134](loc96: bool)
68CopyLoc[134](loc96: bool)
69BrFalse(73)
B5:
70CopyLoc[6](Arg6: u64)
71StLoc[38](loc0: u64)
72Branch(75)
B6:
73MoveLoc[143](loc105: u64)
74StLoc[38](loc0: u64)
B7:
75MoveLoc[38](loc0: u64)
76StLoc[101](loc63: u64)
77MoveLoc[134](loc96: bool)
78Not
79BrFalse(124)
B8:
80CopyLoc[101](loc63: u64)
81CopyLoc[6](Arg6: u64)
82Ge
83BrFalse(93)
B9:
84CopyLoc[101](loc63: u64)
85CopyLoc[6](Arg6: u64)
86Sub
87LdU64(100000)
88Mul
89CopyLoc[6](Arg6: u64)
90Div
91StLoc[49](loc11: u64)
92Branch(101)
B10:
93CopyLoc[6](Arg6: u64)
94CopyLoc[101](loc63: u64)
95Sub
96LdU64(100000)
97Mul
98CopyLoc[6](Arg6: u64)
99Div
100StLoc[49](loc11: u64)
B11:
101MoveLoc[49](loc11: u64)
102MoveLoc[16](Arg16: u64)
103Le
104BrFalse(106)
B12:
105Branch(124)
B13:
106MoveLoc[0](Arg0: &mut MMState)
107Pop
108MoveLoc[1](Arg1: &MMRegistry)
109Pop
110MoveLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
111Pop
112MoveLoc[4](Arg4: &mut Pool<Ty2, Ty3>)
113Pop
114MoveLoc[37](Arg37: &mut TxContext)
115Pop
116MoveLoc[5](Arg5: &Clock)
117Pop
118MoveLoc[100](loc62: &MMConfig)
119Pop
120MoveLoc[2](Arg2: &mut BalanceManager)
121Pop
122LdConst[1](u64: 2)
123Abort
B14:
124CopyLoc[7](Arg7: u64)
125CopyLoc[8](Arg8: u64)
126Add
127LdU64(2)
128Div
129StLoc[86](loc48: u64)
130CopyLoc[0](Arg0: &mut MMState)
131CopyLoc[101](loc63: u64)
132MoveLoc[86](loc48: u64)
133CopyLoc[11](Arg11: u64)
134CopyLoc[127](loc89: u64)
135Call mm_state::update_price(&mut MMState, u64, u64, u64, u64): bool
136BrFalse(138)
B15:
137Branch(156)
B16:
138MoveLoc[0](Arg0: &mut MMState)
139Pop
140MoveLoc[1](Arg1: &MMRegistry)
141Pop
142MoveLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
143Pop
144MoveLoc[4](Arg4: &mut Pool<Ty2, Ty3>)
145Pop
146MoveLoc[37](Arg37: &mut TxContext)
147Pop
148MoveLoc[5](Arg5: &Clock)
149Pop
150MoveLoc[100](loc62: &MMConfig)
151Pop
152MoveLoc[2](Arg2: &mut BalanceManager)
153Pop
154LdConst[2](u64: 3)
155Abort
B17:
156CopyLoc[0](Arg0: &mut MMState)
157Call mm_state::record_execution(&mut MMState)
158CopyLoc[2](Arg2: &mut BalanceManager)
159CopyLoc[37](Arg37: &mut TxContext)
160FreezeRef
161Call balance_manager::generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
162StLoc[160](loc122: TradeProof)
163CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
164FreezeRef
165CopyLoc[2](Arg2: &mut BalanceManager)
166FreezeRef
167CopyLoc[5](Arg5: &Clock)
168Call orderbook_analyzer::get_existing_orders<Ty0, Ty1>(&Pool<Ty0, Ty1>, &BalanceManager, &Clock): Option<ExistingOrderInfo> * Option<ExistingOrderInfo>
169StLoc[104](loc66: Option<ExistingOrderInfo>)
170StLoc[106](loc68: Option<ExistingOrderInfo>)
171CopyLoc[2](Arg2: &mut BalanceManager)
172FreezeRef
173Call balance_manager::balance<Ty0>(&BalanceManager): u64
174StLoc[87](loc49: u64)
175CopyLoc[2](Arg2: &mut BalanceManager)
176FreezeRef
177Call balance_manager::balance<Ty1>(&BalanceManager): u64
178StLoc[137](loc99: u64)
179CopyLoc[100](loc62: &MMConfig)
180Call config::is_dry_run(&MMConfig): bool
181StLoc[114](loc76: bool)
182CopyLoc[100](loc62: &MMConfig)
183Call config::is_orderbook_analysis_enabled(&MMConfig): bool
184BrFalse(198)
B18:
185CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
186FreezeRef
187CopyLoc[2](Arg2: &mut BalanceManager)
188FreezeRef
189CopyLoc[100](loc62: &MMConfig)
190Call config::min_significant_qty(&MMConfig): u64
191CopyLoc[100](loc62: &MMConfig)
192Call config::l2_tick_count(&MMConfig): u64
193CopyLoc[5](Arg5: &Clock)
194Call orderbook_analyzer::analyze_orderbook<Ty0, Ty1>(&Pool<Ty0, Ty1>, &BalanceManager, u64, u64, &Clock): OrderbookSnapshot
195Call option::some<OrderbookSnapshot>(OrderbookSnapshot): Option<OrderbookSnapshot>
196StLoc[60](loc22: Option<OrderbookSnapshot>)
197Branch(200)
B19:
198Call option::none<OrderbookSnapshot>(): Option<OrderbookSnapshot>
199StLoc[60](loc22: Option<OrderbookSnapshot>)
B20:
200MoveLoc[60](loc22: Option<OrderbookSnapshot>)
201StLoc[131](loc93: Option<OrderbookSnapshot>)
202MoveLoc[18](Arg18: bool)
203BrFalse(207)
B21:
204CopyLoc[6](Arg6: u64)
205StLoc[71](loc33: u64)
206Branch(209)
B22:
207CopyLoc[101](loc63: u64)
208StLoc[71](loc33: u64)
B23:
209MoveLoc[71](loc33: u64)
210StLoc[79](loc41: u64)
211MoveLoc[30](Arg30: bool)
212BrFalse(226)
B24:
213CopyLoc[87](loc49: u64)
214CopyLoc[137](loc99: u64)
215CopyLoc[79](loc41: u64)
216MoveLoc[36](Arg36: u64)
217MoveLoc[31](Arg31: u64)
218MoveLoc[32](Arg32: u64)
219MoveLoc[33](Arg33: u64)
220MoveLoc[34](Arg34: u64)
221MoveLoc[35](Arg35: u64)
222Call inv_sizing::compute_multipliers(u64, u64, u64, u64, u64, u64, u64, u64, u64): u64 * u64
223StLoc[75](loc37: u64)
224StLoc[74](loc36: u64)
225Branch(230)
B25:
226Call inv_sizing::scale(): u64
227Call inv_sizing::scale(): u64
228StLoc[75](loc37: u64)
229StLoc[74](loc36: u64)
B26:
230MoveLoc[74](loc36: u64)
231MoveLoc[75](loc37: u64)
232StLoc[81](loc43: u64)
233StLoc[92](loc54: u64)
234CopyLoc[79](loc41: u64)
235LdU64(100000)
236CopyLoc[7](Arg7: u64)
237Sub
238Mul
239LdU64(100000)
240Div
241StLoc[141](loc103: u64)
242CopyLoc[79](loc41: u64)
243LdU64(100000)
244CopyLoc[8](Arg8: u64)
245Add
246Mul
247LdU64(100000)
248Div
249StLoc[139](loc101: u64)
250CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
251FreezeRef
252Call pool::pool_book_params<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64 * u64 * u64
253StLoc[122](loc84: u64)
254StLoc[121](loc83: u64)
255StLoc[157](loc119: u64)
256CopyLoc[100](loc62: &MMConfig)
257Call config::enable_deep_payment(&MMConfig): bool
258StLoc[132](loc94: bool)
259CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
260FreezeRef
261LdU64(1)
262CopyLoc[5](Arg5: &Clock)
263Call pool::get_level2_ticks_from_mid<Ty0, Ty1>(&Pool<Ty0, Ty1>, u64, &Clock): vector<u64> * vector<u64> * vector<u64> * vector<u64>
264Pop
265StLoc[96](loc58: vector<u64>)
266Pop
267StLoc[97](loc59: vector<u64>)
268ImmBorrowLoc[97](loc59: vector<u64>)
269VecLen(9)
270LdU64(0)
271Gt
272BrFalse(279)
B27:
273ImmBorrowLoc[97](loc59: vector<u64>)
274LdU64(0)
275VecImmBorrow(9)
276ReadRef
277StLoc[76](loc38: u64)
278Branch(281)
B28:
279LdU64(0)
280StLoc[76](loc38: u64)
B29:
281MoveLoc[76](loc38: u64)
282StLoc[90](loc52: u64)
283ImmBorrowLoc[96](loc58: vector<u64>)
284VecLen(9)
285LdU64(0)
286Gt
287BrFalse(294)
B30:
288ImmBorrowLoc[96](loc58: vector<u64>)
289LdU64(0)
290VecImmBorrow(9)
291ReadRef
292StLoc[77](loc39: u64)
293Branch(296)
B31:
294LdU64(0)
295StLoc[77](loc39: u64)
B32:
296MoveLoc[77](loc39: u64)
297StLoc[89](loc51: u64)
298MoveLoc[20](Arg20: bool)
299BrFalse(311)
B33:
300CopyLoc[114](loc76: bool)
301Not
302BrFalse(308)
B34:
303CopyLoc[23](Arg23: u64)
304CopyLoc[122](loc84: u64)
305Ge
306StLoc[78](loc40: bool)
307Branch(313)
B35:
308LdFalse
309StLoc[78](loc40: bool)
310Branch(313)
B36:
311LdFalse
312StLoc[78](loc40: bool)
B37:
313MoveLoc[78](loc40: bool)
314BrFalse(436)
B38:
315MoveLoc[23](Arg23: u64)
316CopyLoc[121](loc83: u64)
317Div
318CopyLoc[121](loc83: u64)
319Mul
320StLoc[154](loc116: u64)
321CopyLoc[154](loc116: u64)
322CopyLoc[122](loc84: u64)
323Ge
324BrFalse(397)
B39:
325CopyLoc[79](loc41: u64)
326LdU64(100000)
327MoveLoc[21](Arg21: u64)
328Sub
329Mul
330LdU64(100000)
331Div
332CopyLoc[157](loc119: u64)
333Call orders::round_bid_price(u64, u64): u64
334StLoc[153](loc115: u64)
335CopyLoc[153](loc115: u64)
336CopyLoc[157](loc119: u64)
337Ge
338BrFalse(363)
B40:
339CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
340CopyLoc[2](Arg2: &mut BalanceManager)
341ImmBorrowLoc[160](loc122: TradeProof)
342CopyLoc[13](Arg13: u64)
343LdU64(3000000)
344Add
345Call constants::immediate_or_cancel(): u8
346Call constants::cancel_maker(): u8
347MoveLoc[153](loc115: u64)
348CopyLoc[154](loc116: u64)
349LdTrue
350CopyLoc[132](loc94: bool)
351CopyLoc[12](Arg12: u64)
352CopyLoc[5](Arg5: &Clock)
353CopyLoc[37](Arg37: &mut TxContext)
354FreezeRef
355Call pool::place_limit_order<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, u64, u8, u8, u64, u64, bool, bool, u64, &Clock, &TxContext): OrderInfo
356StLoc[152](loc114: OrderInfo)
357ImmBorrowLoc[152](loc114: OrderInfo)
358Call order_info::executed_quantity(&OrderInfo): u64
359Pop
360ImmBorrowLoc[152](loc114: OrderInfo)
361Call order_info::paid_fees(&OrderInfo): u64
362Pop
B41:
363CopyLoc[79](loc41: u64)
364LdU64(100000)
365MoveLoc[22](Arg22: u64)
366Add
367Mul
368LdU64(100000)
369Div
370CopyLoc[157](loc119: u64)
371Call orders::round_ask_price(u64, u64): u64
372StLoc[151](loc113: u64)
373CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
374CopyLoc[2](Arg2: &mut BalanceManager)
375ImmBorrowLoc[160](loc122: TradeProof)
376CopyLoc[13](Arg13: u64)
377LdU64(4000000)
378Add
379Call constants::immediate_or_cancel(): u8
380Call constants::cancel_maker(): u8
381MoveLoc[151](loc113: u64)
382MoveLoc[154](loc116: u64)
383LdFalse
384CopyLoc[132](loc94: bool)
385CopyLoc[12](Arg12: u64)
386CopyLoc[5](Arg5: &Clock)
387CopyLoc[37](Arg37: &mut TxContext)
388FreezeRef
389Call pool::place_limit_order<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, u64, u8, u8, u64, u64, bool, bool, u64, &Clock, &TxContext): OrderInfo
390StLoc[150](loc112: OrderInfo)
391ImmBorrowLoc[150](loc112: OrderInfo)
392Call order_info::executed_quantity(&OrderInfo): u64
393Pop
394ImmBorrowLoc[150](loc112: OrderInfo)
395Call order_info::paid_fees(&OrderInfo): u64
396Pop
B42:
397CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
398FreezeRef
399LdU64(1)
400CopyLoc[5](Arg5: &Clock)
401Call pool::get_level2_ticks_from_mid<Ty0, Ty1>(&Pool<Ty0, Ty1>, u64, &Clock): vector<u64> * vector<u64> * vector<u64> * vector<u64>
402Pop
403StLoc[125](loc87: vector<u64>)
404Pop
405StLoc[126](loc88: vector<u64>)
406ImmBorrowLoc[126](loc88: vector<u64>)
407VecLen(9)
408LdU64(0)
409Gt
410BrFalse(417)
B43:
411ImmBorrowLoc[126](loc88: vector<u64>)
412LdU64(0)
413VecImmBorrow(9)
414ReadRef
415StLoc[39](loc1: u64)
416Branch(419)
B44:
417LdU64(0)
418StLoc[39](loc1: u64)
B45:
419MoveLoc[39](loc1: u64)
420StLoc[90](loc52: u64)
421ImmBorrowLoc[125](loc87: vector<u64>)
422VecLen(9)
423LdU64(0)
424Gt
425BrFalse(432)
B46:
426ImmBorrowLoc[125](loc87: vector<u64>)
427LdU64(0)
428VecImmBorrow(9)
429ReadRef
430StLoc[40](loc2: u64)
431Branch(434)
B47:
432LdU64(0)
433StLoc[40](loc2: u64)
B48:
434MoveLoc[40](loc2: u64)
435StLoc[89](loc51: u64)
B49:
436ImmBorrowLoc[24](Arg24: vector<u64>)
437VecLen(9)
438LdU64(0)
439Gt
440BrFalse(589)
B50:
441CopyLoc[2](Arg2: &mut BalanceManager)
442FreezeRef
443Call balance_manager::balance<Ty0>(&BalanceManager): u64
444StLoc[88](loc50: u64)
445CopyLoc[2](Arg2: &mut BalanceManager)
446FreezeRef
447Call balance_manager::balance<Ty1>(&BalanceManager): u64
448StLoc[138](loc100: u64)
449CopyLoc[100](loc62: &MMConfig)
450Call config::target_base_position(&MMConfig): u64
451StLoc[155](loc117: u64)
452CopyLoc[155](loc117: u64)
453LdU64(0)
454Gt
455BrFalse(480)
B51:
456CopyLoc[88](loc50: u64)
457CopyLoc[155](loc117: u64)
458Ge
459BrFalse(469)
B52:
460CopyLoc[88](loc50: u64)
461CopyLoc[155](loc117: u64)
462Sub
463LdU64(10000)
464Mul
465CopyLoc[155](loc117: u64)
466Div
467StLoc[41](loc3: u64)
468Branch(477)
B53:
469CopyLoc[155](loc117: u64)
470CopyLoc[88](loc50: u64)
471Sub
472LdU64(10000)
473Mul
474CopyLoc[155](loc117: u64)
475Div
476StLoc[41](loc3: u64)
B54:
477MoveLoc[41](loc3: u64)
478StLoc[42](loc4: u64)
479Branch(482)
B55:
480LdU64(0)
481StLoc[42](loc4: u64)
B56:
482MoveLoc[42](loc4: u64)
483StLoc[112](loc74: u64)
484ImmBorrowLoc[24](Arg24: vector<u64>)
485LdU64(0)
486VecImmBorrow(9)
487ReadRef
488StLoc[120](loc82: u64)
489ImmBorrowLoc[25](Arg25: vector<u64>)
490LdU64(0)
491VecImmBorrow(9)
492ReadRef
493StLoc[119](loc81: u64)
494ImmBorrowLoc[26](Arg26: vector<u64>)
495LdU64(0)
496VecImmBorrow(9)
497ReadRef
498CopyLoc[92](loc54: u64)
499CopyLoc[121](loc83: u64)
500CopyLoc[122](loc84: u64)
501Call inv_sizing::apply_multiplier(u64, u64, u64, u64): u64
502StLoc[118](loc80: u64)
503ImmBorrowLoc[27](Arg27: vector<u64>)
504LdU64(0)
505VecImmBorrow(9)
506ReadRef
507CopyLoc[81](loc43: u64)
508MoveLoc[121](loc83: u64)
509CopyLoc[122](loc84: u64)
510Call inv_sizing::apply_multiplier(u64, u64, u64, u64): u64
511StLoc[116](loc78: u64)
512CopyLoc[79](loc41: u64)
513LdU64(100000)
514CopyLoc[120](loc82: u64)
515Sub
516Mul
517LdU64(100000)
518Div
519CopyLoc[157](loc119: u64)
520Call orders::round_bid_price(u64, u64): u64
521StLoc[117](loc79: u64)
522CopyLoc[79](loc41: u64)
523LdU64(100000)
524CopyLoc[119](loc81: u64)
525Add
526Mul
527LdU64(100000)
528Div
529CopyLoc[157](loc119: u64)
530Call orders::round_ask_price(u64, u64): u64
531StLoc[115](loc77: u64)
532CopyLoc[0](Arg0: &mut MMState)
533FreezeRef
534Call mm_state::state_id(&MMState): ID
535MoveLoc[133](loc95: ID)
536MoveLoc[11](Arg11: u64)
537CopyLoc[0](Arg0: &mut MMState)
538FreezeRef
539Call mm_state::execution_count(&MMState): u64
540MoveLoc[127](loc89: u64)
541MoveLoc[6](Arg6: u64)
542MoveLoc[101](loc63: u64)
543MoveLoc[117](loc79: u64)
544MoveLoc[115](loc77: u64)
545CopyLoc[88](loc50: u64)
546MoveLoc[138](loc100: u64)
547CopyLoc[155](loc117: u64)
548MoveLoc[112](loc74: u64)
549MoveLoc[88](loc50: u64)
550MoveLoc[155](loc117: u64)
551Gt
552MoveLoc[120](loc82: u64)
553MoveLoc[119](loc81: u64)
554MoveLoc[118](loc80: u64)
555MoveLoc[116](loc78: u64)
556CopyLoc[13](Arg13: u64)
557LdTrue
558LdTrue
559CopyLoc[79](loc41: u64)
560Call events::emit_execution_detail(ID, ID, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64, bool, u64, u64, u64, u64, u64, bool, bool, u64)
561MoveLoc[0](Arg0: &mut MMState)
562MoveLoc[1](Arg1: &MMRegistry)
563MoveLoc[2](Arg2: &mut BalanceManager)
564MoveLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
565MoveLoc[4](Arg4: &mut Pool<Ty2, Ty3>)
566MoveLoc[5](Arg5: &Clock)
567MoveLoc[79](loc41: u64)
568MoveLoc[9](Arg9: u64)
569MoveLoc[10](Arg10: u64)
570MoveLoc[13](Arg13: u64)
571MoveLoc[12](Arg12: u64)
572ImmBorrowLoc[24](Arg24: vector<u64>)
573ImmBorrowLoc[25](Arg25: vector<u64>)
574ImmBorrowLoc[26](Arg26: vector<u64>)
575ImmBorrowLoc[27](Arg27: vector<u64>)
576ImmBorrowLoc[28](Arg28: vector<u64>)
577MoveLoc[29](Arg29: u64)
578MoveLoc[92](loc54: u64)
579MoveLoc[81](loc43: u64)
580ImmBorrowLoc[160](loc122: TradeProof)
581MoveLoc[100](loc62: &MMConfig)
582MoveLoc[157](loc119: u64)
583MoveLoc[122](loc84: u64)
584MoveLoc[90](loc52: u64)
585MoveLoc[89](loc51: u64)
586MoveLoc[37](Arg37: &mut TxContext)
587Call multi_layer::process_layers<Ty0, Ty1, Ty2, Ty3>(&mut MMState, &MMRegistry, &mut BalanceManager, &mut Pool<Ty0, Ty1>, &mut Pool<Ty2, Ty3>, &Clock, u64, u64, u64, u64, u64, &vector<u64>, &vector<u64>, &vector<u64>, &vector<u64>, &vector<u64>, u64, u64, u64, &TradeProof, &MMConfig, u64, u64, u64, u64, &mut TxContext)
588Ret
B57:
589MoveLoc[1](Arg1: &MMRegistry)
590Pop
591CopyLoc[89](loc51: u64)
592LdU64(0)
593Gt
594BrFalse(600)
B58:
595CopyLoc[141](loc103: u64)
596CopyLoc[89](loc51: u64)
597Ge
598StLoc[43](loc5: bool)
599Branch(602)
B59:
600LdFalse
601StLoc[43](loc5: bool)
B60:
602MoveLoc[43](loc5: bool)
603BrFalse(613)
B61:
604MoveLoc[89](loc51: u64)
605LdU64(100000)
606MoveLoc[9](Arg9: u64)
607Sub
608Mul
609LdU64(100000)
610Div
611StLoc[44](loc6: u64)
612Branch(615)
B62:
613MoveLoc[141](loc103: u64)
614StLoc[44](loc6: u64)
B63:
615MoveLoc[44](loc6: u64)
616StLoc[142](loc104: u64)
617CopyLoc[90](loc52: u64)
618LdU64(0)
619Gt
620BrFalse(626)
B64:
621CopyLoc[139](loc101: u64)
622CopyLoc[90](loc52: u64)
623Le
624StLoc[45](loc7: bool)
625Branch(628)
B65:
626LdFalse
627StLoc[45](loc7: bool)
B66:
628MoveLoc[45](loc7: bool)
629BrFalse(639)
B67:
630MoveLoc[90](loc52: u64)
631LdU64(100000)
632MoveLoc[10](Arg10: u64)
633Add
634Mul
635LdU64(100000)
636Div
637StLoc[46](loc8: u64)
638Branch(641)
B68:
639MoveLoc[139](loc101: u64)
640StLoc[46](loc8: u64)
B69:
641MoveLoc[46](loc8: u64)
642StLoc[140](loc102: u64)
643ImmBorrowLoc[131](loc93: Option<OrderbookSnapshot>)
644Call option::is_some<OrderbookSnapshot>(&Option<OrderbookSnapshot>): bool
645BrFalse(651)
B70:
646CopyLoc[17](Arg17: u64)
647LdU64(0)
648Gt
649StLoc[47](loc9: bool)
650Branch(653)
B71:
651LdFalse
652StLoc[47](loc9: bool)
B72:
653MoveLoc[47](loc9: bool)
654BrFalse(701)
B73:
655ImmBorrowLoc[131](loc93: Option<OrderbookSnapshot>)
656Call option::borrow<OrderbookSnapshot>(&Option<OrderbookSnapshot>): &OrderbookSnapshot
657StLoc[148](loc110: &OrderbookSnapshot)
658CopyLoc[148](loc110: &OrderbookSnapshot)
659MoveLoc[142](loc104: u64)
660LdTrue
661CopyLoc[157](loc119: u64)
662CopyLoc[17](Arg17: u64)
663Call orderbook_analyzer::find_queue_snipe_price(&OrderbookSnapshot, u64, bool, u64, u64): u64 * bool
664StLoc[91](loc53: bool)
665StLoc[129](loc91: u64)
666MoveLoc[91](loc53: bool)
667BrFalse(671)
B74:
668MoveLoc[129](loc91: u64)
669StLoc[48](loc10: u64)
670Branch(675)
B75:
671MoveLoc[129](loc91: u64)
672CopyLoc[157](loc119: u64)
673Call orders::round_bid_price(u64, u64): u64
674StLoc[48](loc10: u64)
B76:
675MoveLoc[48](loc10: u64)
676StLoc[145](loc107: u64)
677MoveLoc[148](loc110: &OrderbookSnapshot)
678MoveLoc[140](loc102: u64)
679LdFalse
680CopyLoc[157](loc119: u64)
681MoveLoc[17](Arg17: u64)
682Call orderbook_analyzer::find_queue_snipe_price(&OrderbookSnapshot, u64, bool, u64, u64): u64 * bool
683StLoc[80](loc42: bool)
684StLoc[128](loc90: u64)
685MoveLoc[80](loc42: bool)
686BrFalse(690)
B77:
687MoveLoc[128](loc90: u64)
688StLoc[50](loc12: u64)
689Branch(694)
B78:
690MoveLoc[128](loc90: u64)
691CopyLoc[157](loc119: u64)
692Call orders::round_ask_price(u64, u64): u64
693StLoc[50](loc12: u64)
B79:
694MoveLoc[50](loc12: u64)
695StLoc[144](loc106: u64)
696MoveLoc[145](loc107: u64)
697MoveLoc[144](loc106: u64)
698StLoc[52](loc14: u64)
699StLoc[51](loc13: u64)
700Branch(709)
B80:
701MoveLoc[142](loc104: u64)
702CopyLoc[157](loc119: u64)
703Call orders::round_bid_price(u64, u64): u64
704MoveLoc[140](loc102: u64)
705CopyLoc[157](loc119: u64)
706Call orders::round_ask_price(u64, u64): u64
707StLoc[52](loc14: u64)
708StLoc[51](loc13: u64)
B81:
709MoveLoc[51](loc13: u64)
710MoveLoc[52](loc14: u64)
711StLoc[82](loc44: u64)
712StLoc[93](loc55: u64)
713ImmBorrowLoc[131](loc93: Option<OrderbookSnapshot>)
714Call option::is_some<OrderbookSnapshot>(&Option<OrderbookSnapshot>): bool
715BrFalse(777)
B82:
716ImmBorrowLoc[131](loc93: Option<OrderbookSnapshot>)
717Call option::borrow<OrderbookSnapshot>(&Option<OrderbookSnapshot>): &OrderbookSnapshot
718StLoc[149](loc111: &OrderbookSnapshot)
719CopyLoc[149](loc111: &OrderbookSnapshot)
720Call orderbook_analyzer::best_bid(&OrderbookSnapshot): u64
721StLoc[109](loc71: u64)
722MoveLoc[149](loc111: &OrderbookSnapshot)
723Call orderbook_analyzer::best_ask(&OrderbookSnapshot): u64
724StLoc[108](loc70: u64)
725CopyLoc[93](loc55: u64)
726StLoc[111](loc73: u64)
727CopyLoc[82](loc44: u64)
728StLoc[110](loc72: u64)
729CopyLoc[108](loc70: u64)
730LdU64(0)
731Gt
732BrFalse(738)
B83:
733MoveLoc[93](loc55: u64)
734CopyLoc[108](loc70: u64)
735Ge
736StLoc[53](loc15: bool)
737Branch(740)
B84:
738LdFalse
739StLoc[53](loc15: bool)
B85:
740MoveLoc[53](loc15: bool)
741BrFalse(755)
B86:
742CopyLoc[108](loc70: u64)
743CopyLoc[157](loc119: u64)
744Gt
745BrFalse(751)
B87:
746MoveLoc[108](loc70: u64)
747CopyLoc[157](loc119: u64)
748Sub
749StLoc[54](loc16: u64)
750Branch(753)
B88:
751CopyLoc[157](loc119: u64)
752StLoc[54](loc16: u64)
B89:
753MoveLoc[54](loc16: u64)
754StLoc[111](loc73: u64)
B90:
755CopyLoc[109](loc71: u64)
756LdU64(0)
757Gt
758BrFalse(764)
B91:
759MoveLoc[82](loc44: u64)
760CopyLoc[109](loc71: u64)
761Le
762StLoc[55](loc17: bool)
763Branch(766)
B92:
764LdFalse
765StLoc[55](loc17: bool)
B93:
766MoveLoc[55](loc17: bool)
767BrFalse(772)
B94:
768MoveLoc[109](loc71: u64)
769MoveLoc[157](loc119: u64)
770Add
771StLoc[110](loc72: u64)
B95:
772MoveLoc[111](loc73: u64)
773MoveLoc[110](loc72: u64)
774StLoc[57](loc19: u64)
775StLoc[56](loc18: u64)
776Branch(781)
B96:
777MoveLoc[93](loc55: u64)
778MoveLoc[82](loc44: u64)
779StLoc[57](loc19: u64)
780StLoc[56](loc18: u64)
B97:
781MoveLoc[56](loc18: u64)
782MoveLoc[57](loc19: u64)
783StLoc[83](loc45: u64)
784StLoc[94](loc56: u64)
785MoveLoc[14](Arg14: u64)
786MoveLoc[92](loc54: u64)
787CopyLoc[121](loc83: u64)
788CopyLoc[122](loc84: u64)
789Call inv_sizing::apply_multiplier(u64, u64, u64, u64): u64
790StLoc[95](loc57: u64)
791MoveLoc[15](Arg15: u64)
792MoveLoc[81](loc43: u64)
793MoveLoc[121](loc83: u64)
794CopyLoc[122](loc84: u64)
795Call inv_sizing::apply_multiplier(u64, u64, u64, u64): u64
796StLoc[84](loc46: u64)
797MoveLoc[12](Arg12: u64)
798StLoc[130](loc92: u64)
799CopyLoc[95](loc57: u64)
800CopyLoc[100](loc62: &MMConfig)
801Call config::min_order_size(&MMConfig): u64
802Ge
803BrFalse(817)
B98:
804CopyLoc[95](loc57: u64)
805CopyLoc[122](loc84: u64)
806Ge
807BrFalse(814)
B99:
808CopyLoc[94](loc56: u64)
809CopyLoc[100](loc62: &MMConfig)
810Call config::min_price(&MMConfig): u64
811Ge
812StLoc[58](loc20: bool)
813Branch(819)
B100:
814LdFalse
815StLoc[58](loc20: bool)
816Branch(819)
B101:
817LdFalse
818StLoc[58](loc20: bool)
B102:
819MoveLoc[58](loc20: bool)
820StLoc[147](loc109: bool)
821CopyLoc[84](loc46: u64)
822CopyLoc[100](loc62: &MMConfig)
823Call config::min_order_size(&MMConfig): u64
824Ge
825BrFalse(839)
B103:
826CopyLoc[84](loc46: u64)
827MoveLoc[122](loc84: u64)
828Ge
829BrFalse(836)
B104:
830CopyLoc[83](loc45: u64)
831CopyLoc[100](loc62: &MMConfig)
832Call config::max_price(&MMConfig): u64
833Le
834StLoc[59](loc21: bool)
835Branch(841)
B105:
836LdFalse
837StLoc[59](loc21: bool)
838Branch(841)
B106:
839LdFalse
840StLoc[59](loc21: bool)
B107:
841MoveLoc[59](loc21: bool)
842StLoc[146](loc108: bool)
843MoveLoc[114](loc76: bool)
844Not
845BrFalse(1088)
B108:
846CopyLoc[100](loc62: &MMConfig)
847Call config::enable_deep_refill(&MMConfig): bool
848BrFalse(874)
B109:
849CopyLoc[95](loc57: u64)
850CopyLoc[84](loc46: u64)
851Add
852StLoc[158](loc120: u64)
853CopyLoc[94](loc56: u64)
854CopyLoc[83](loc45: u64)
855Add
856LdU64(2)
857Div
858StLoc[85](loc47: u64)
859CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
860FreezeRef
861MoveLoc[4](Arg4: &mut Pool<Ty2, Ty3>)
862CopyLoc[2](Arg2: &mut BalanceManager)
863ImmBorrowLoc[160](loc122: TradeProof)
864MoveLoc[158](loc120: u64)
865MoveLoc[85](loc47: u64)
866CopyLoc[100](loc62: &MMConfig)
867CopyLoc[5](Arg5: &Clock)
868CopyLoc[37](Arg37: &mut TxContext)
869FreezeRef
870Call deep_manager::ensure_deep_balance<Ty0, Ty1, Ty2, Ty3>(&Pool<Ty0, Ty1>, &mut Pool<Ty2, Ty3>, &mut BalanceManager, &TradeProof, u64, u64, &MMConfig, &Clock, &TxContext): u64 * bool
871Pop
872Pop
873Branch(876)
B110:
874MoveLoc[4](Arg4: &mut Pool<Ty2, Ty3>)
875Pop
B111:
876LdFalse
877StLoc[99](loc61: bool)
878LdFalse
879StLoc[98](loc60: bool)
880ImmBorrowLoc[106](loc68: Option<ExistingOrderInfo>)
881Call option::is_some<ExistingOrderInfo>(&Option<ExistingOrderInfo>): bool
882BrFalse(945)
B112:
883ImmBorrowLoc[106](loc68: Option<ExistingOrderInfo>)
884Call option::borrow<ExistingOrderInfo>(&Option<ExistingOrderInfo>): &ExistingOrderInfo
885StLoc[102](loc64: &ExistingOrderInfo)
886CopyLoc[102](loc64: &ExistingOrderInfo)
887Call orderbook_analyzer::price(&ExistingOrderInfo): u64
888StLoc[107](loc69: u64)
889CopyLoc[107](loc69: u64)
890CopyLoc[94](loc56: u64)
891Neq
892StLoc[135](loc97: bool)
893CopyLoc[135](loc97: bool)
894Not
895BrFalse(902)
B113:
896CopyLoc[102](loc64: &ExistingOrderInfo)
897CopyLoc[127](loc89: u64)
898LdConst[3](u64: 30000)
899Call orderbook_analyzer::should_refresh_order(&ExistingOrderInfo, u64, u64): bool
900StLoc[61](loc23: bool)
901Branch(904)
B114:
902LdFalse
903StLoc[61](loc23: bool)
B115:
904MoveLoc[61](loc23: bool)
905StLoc[123](loc85: bool)
906CopyLoc[146](loc108: bool)
907BrFalse(913)
B116:
908CopyLoc[83](loc45: u64)
909MoveLoc[107](loc69: u64)
910Le
911StLoc[62](loc24: bool)
912Branch(915)
B117:
913LdFalse
914StLoc[62](loc24: bool)
B118:
915MoveLoc[62](loc24: bool)
916StLoc[161](loc123: bool)
917MoveLoc[135](loc97: bool)
918BrFalse(922)
B119:
919LdTrue
920StLoc[63](loc25: bool)
921Branch(929)
B120:
922MoveLoc[123](loc85: bool)
923BrFalse(927)
B121:
924LdTrue
925StLoc[63](loc25: bool)
926Branch(929)
B122:
927MoveLoc[161](loc123: bool)
928StLoc[63](loc25: bool)
B123:
929MoveLoc[63](loc25: bool)
930BrFalse(943)
B124:
931CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
932CopyLoc[2](Arg2: &mut BalanceManager)
933ImmBorrowLoc[160](loc122: TradeProof)
934MoveLoc[102](loc64: &ExistingOrderInfo)
935Call orderbook_analyzer::order_id(&ExistingOrderInfo): u128
936CopyLoc[5](Arg5: &Clock)
937CopyLoc[37](Arg37: &mut TxContext)
938FreezeRef
939Call pool::cancel_order<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, u128, &Clock, &TxContext)
940LdTrue
941StLoc[99](loc61: bool)
942Branch(945)
B125:
943MoveLoc[102](loc64: &ExistingOrderInfo)
944Pop
B126:
945ImmBorrowLoc[104](loc66: Option<ExistingOrderInfo>)
946Call option::is_some<ExistingOrderInfo>(&Option<ExistingOrderInfo>): bool
947BrFalse(1010)
B127:
948ImmBorrowLoc[104](loc66: Option<ExistingOrderInfo>)
949Call option::borrow<ExistingOrderInfo>(&Option<ExistingOrderInfo>): &ExistingOrderInfo
950StLoc[103](loc65: &ExistingOrderInfo)
951CopyLoc[103](loc65: &ExistingOrderInfo)
952Call orderbook_analyzer::price(&ExistingOrderInfo): u64
953StLoc[105](loc67: u64)
954CopyLoc[105](loc67: u64)
955CopyLoc[83](loc45: u64)
956Neq
957StLoc[136](loc98: bool)
958CopyLoc[136](loc98: bool)
959Not
960BrFalse(967)
B128:
961CopyLoc[103](loc65: &ExistingOrderInfo)
962CopyLoc[127](loc89: u64)
963LdConst[3](u64: 30000)
964Call orderbook_analyzer::should_refresh_order(&ExistingOrderInfo, u64, u64): bool
965StLoc[64](loc26: bool)
966Branch(969)
B129:
967LdFalse
968StLoc[64](loc26: bool)
B130:
969MoveLoc[64](loc26: bool)
970StLoc[124](loc86: bool)
971CopyLoc[147](loc109: bool)
972BrFalse(978)
B131:
973CopyLoc[94](loc56: u64)
974MoveLoc[105](loc67: u64)
975Ge
976StLoc[65](loc27: bool)
977Branch(980)
B132:
978LdFalse
979StLoc[65](loc27: bool)
B133:
980MoveLoc[65](loc27: bool)
981StLoc[162](loc124: bool)
982MoveLoc[136](loc98: bool)
983BrFalse(987)
B134:
984LdTrue
985StLoc[66](loc28: bool)
986Branch(994)
B135:
987MoveLoc[124](loc86: bool)
988BrFalse(992)
B136:
989LdTrue
990StLoc[66](loc28: bool)
991Branch(994)
B137:
992MoveLoc[162](loc124: bool)
993StLoc[66](loc28: bool)
B138:
994MoveLoc[66](loc28: bool)
995BrFalse(1008)
B139:
996CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
997CopyLoc[2](Arg2: &mut BalanceManager)
998ImmBorrowLoc[160](loc122: TradeProof)
999MoveLoc[103](loc65: &ExistingOrderInfo)
1000Call orderbook_analyzer::order_id(&ExistingOrderInfo): u128
1001CopyLoc[5](Arg5: &Clock)
1002CopyLoc[37](Arg37: &mut TxContext)
1003FreezeRef
1004Call pool::cancel_order<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, u128, &Clock, &TxContext)
1005LdTrue
1006StLoc[98](loc60: bool)
1007Branch(1010)
B140:
1008MoveLoc[103](loc65: &ExistingOrderInfo)
1009Pop
B141:
1010CopyLoc[147](loc109: bool)
1011BrFalse(1024)
B142:
1012ImmBorrowLoc[106](loc68: Option<ExistingOrderInfo>)
1013Call option::is_some<ExistingOrderInfo>(&Option<ExistingOrderInfo>): bool
1014Not
1015BrFalse(1019)
B143:
1016LdTrue
1017StLoc[68](loc30: bool)
1018Branch(1021)
B144:
1019MoveLoc[99](loc61: bool)
1020StLoc[68](loc30: bool)
B145:
1021MoveLoc[68](loc30: bool)
1022StLoc[67](loc29: bool)
1023Branch(1026)
B146:
1024LdFalse
1025StLoc[67](loc29: bool)
B147:
1026MoveLoc[67](loc29: bool)
1027BrFalse(1044)
B148:
1028CopyLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
1029CopyLoc[2](Arg2: &mut BalanceManager)
1030ImmBorrowLoc[160](loc122: TradeProof)
1031CopyLoc[13](Arg13: u64)
1032Call constants::post_only(): u8
1033Call constants::cancel_maker(): u8
1034CopyLoc[94](loc56: u64)
1035CopyLoc[95](loc57: u64)
1036LdTrue
1037CopyLoc[132](loc94: bool)
1038CopyLoc[130](loc92: u64)
1039CopyLoc[5](Arg5: &Clock)
1040CopyLoc[37](Arg37: &mut TxContext)
1041FreezeRef
1042Call pool::place_limit_order<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, u64, u8, u8, u64, u64, bool, bool, u64, &Clock, &TxContext): OrderInfo
1043Pop
B149:
1044CopyLoc[146](loc108: bool)
1045BrFalse(1058)
B150:
1046ImmBorrowLoc[104](loc66: Option<ExistingOrderInfo>)
1047Call option::is_some<ExistingOrderInfo>(&Option<ExistingOrderInfo>): bool
1048Not
1049BrFalse(1053)
B151:
1050LdTrue
1051StLoc[70](loc32: bool)
1052Branch(1055)
B152:
1053MoveLoc[98](loc60: bool)
1054StLoc[70](loc32: bool)
B153:
1055MoveLoc[70](loc32: bool)
1056StLoc[69](loc31: bool)
1057Branch(1060)
B154:
1058LdFalse
1059StLoc[69](loc31: bool)
B155:
1060MoveLoc[69](loc31: bool)
1061BrFalse(1079)
B156:
1062MoveLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
1063MoveLoc[2](Arg2: &mut BalanceManager)
1064ImmBorrowLoc[160](loc122: TradeProof)
1065CopyLoc[13](Arg13: u64)
1066Call constants::post_only(): u8
1067Call constants::cancel_maker(): u8
1068CopyLoc[83](loc45: u64)
1069CopyLoc[84](loc46: u64)
1070LdFalse
1071MoveLoc[132](loc94: bool)
1072MoveLoc[130](loc92: u64)
1073MoveLoc[5](Arg5: &Clock)
1074MoveLoc[37](Arg37: &mut TxContext)
1075FreezeRef
1076Call pool::place_limit_order<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, u64, u8, u8, u64, u64, bool, bool, u64, &Clock, &TxContext): OrderInfo
1077Pop
1078Branch(1098)
B157:
1079MoveLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
1080Pop
1081MoveLoc[37](Arg37: &mut TxContext)
1082Pop
1083MoveLoc[5](Arg5: &Clock)
1084Pop
1085MoveLoc[2](Arg2: &mut BalanceManager)
1086Pop
1087Branch(1098)
B158:
1088MoveLoc[3](Arg3: &mut Pool<Ty0, Ty1>)
1089Pop
1090MoveLoc[4](Arg4: &mut Pool<Ty2, Ty3>)
1091Pop
1092MoveLoc[37](Arg37: &mut TxContext)
1093Pop
1094MoveLoc[5](Arg5: &Clock)
1095Pop
1096MoveLoc[2](Arg2: &mut BalanceManager)
1097Pop
B159:
1098MoveLoc[100](loc62: &MMConfig)
1099Call config::target_base_position(&MMConfig): u64
1100StLoc[156](loc118: u64)
1101CopyLoc[156](loc118: u64)
1102LdU64(0)
1103Gt
1104BrFalse(1129)
B160:
1105CopyLoc[87](loc49: u64)
1106CopyLoc[156](loc118: u64)
1107Ge
1108BrFalse(1118)
B161:
1109CopyLoc[87](loc49: u64)
1110CopyLoc[156](loc118: u64)
1111Sub
1112LdU64(10000)
1113Mul
1114CopyLoc[156](loc118: u64)
1115Div
1116StLoc[72](loc34: u64)
1117Branch(1126)
B162:
1118CopyLoc[156](loc118: u64)
1119CopyLoc[87](loc49: u64)
1120Sub
1121LdU64(10000)
1122Mul
1123CopyLoc[156](loc118: u64)
1124Div
1125StLoc[72](loc34: u64)
B163:
1126MoveLoc[72](loc34: u64)
1127StLoc[73](loc35: u64)
1128Branch(1131)
B164:
1129LdU64(0)
1130StLoc[73](loc35: u64)
B165:
1131MoveLoc[73](loc35: u64)
1132StLoc[113](loc75: u64)
1133CopyLoc[0](Arg0: &mut MMState)
1134FreezeRef
1135Call mm_state::state_id(&MMState): ID
1136MoveLoc[133](loc95: ID)
1137MoveLoc[11](Arg11: u64)
1138CopyLoc[0](Arg0: &mut MMState)
1139FreezeRef
1140Call mm_state::execution_count(&MMState): u64
1141CopyLoc[127](loc89: u64)
1142MoveLoc[6](Arg6: u64)
1143MoveLoc[101](loc63: u64)
1144MoveLoc[94](loc56: u64)
1145MoveLoc[83](loc45: u64)
1146CopyLoc[87](loc49: u64)
1147MoveLoc[137](loc99: u64)
1148CopyLoc[156](loc118: u64)
1149MoveLoc[113](loc75: u64)
1150MoveLoc[87](loc49: u64)
1151MoveLoc[156](loc118: u64)
1152Gt
1153MoveLoc[7](Arg7: u64)
1154MoveLoc[8](Arg8: u64)
1155MoveLoc[95](loc57: u64)
1156MoveLoc[84](loc46: u64)
1157MoveLoc[13](Arg13: u64)
1158MoveLoc[147](loc109: bool)
1159MoveLoc[146](loc108: bool)
1160MoveLoc[79](loc41: u64)
1161Call events::emit_execution_detail(ID, ID, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64, bool, u64, u64, u64, u64, u64, bool, bool, u64)
1162MoveLoc[0](Arg0: &mut MMState)
1163MoveLoc[127](loc89: u64)
1164Call mm_state::record_order_time(&mut MMState, u64)
1165Ret
}
 
public cancel_all_orders<Ty0, Ty1>(Arg0: &mut MMState, Arg1: &mut BalanceManager, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64, Arg4: &Clock, Arg5: &TxContext) {
L6: loc0: TradeProof
B0:
0CopyLoc[0](Arg0: &mut MMState)
1FreezeRef
2Call mm_state::owner(&MMState): address
3CopyLoc[5](Arg5: &TxContext)
4Call tx_context::sender(&TxContext): address
5Eq
6BrFalse(8)
B1:
7Branch(20)
B2:
8MoveLoc[0](Arg0: &mut MMState)
9Pop
10MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
11Pop
12MoveLoc[5](Arg5: &TxContext)
13Pop
14MoveLoc[4](Arg4: &Clock)
15Pop
16MoveLoc[1](Arg1: &mut BalanceManager)
17Pop
18LdConst[0](u64: 1)
19Abort
B3:
20CopyLoc[0](Arg0: &mut MMState)
21MoveLoc[3](Arg3: u64)
22Call mm_state::advance_sequence(&mut MMState, u64)
23CopyLoc[1](Arg1: &mut BalanceManager)
24CopyLoc[5](Arg5: &TxContext)
25Call balance_manager::generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
26StLoc[6](loc0: TradeProof)
27CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
28MoveLoc[1](Arg1: &mut BalanceManager)
29ImmBorrowLoc[6](loc0: TradeProof)
30CopyLoc[4](Arg4: &Clock)
31MoveLoc[5](Arg5: &TxContext)
32Call pool::cancel_all_orders<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, &Clock, &TxContext)
33MoveLoc[0](Arg0: &mut MMState)
34FreezeRef
35Call mm_state::state_id(&MMState): ID
36MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
37FreezeRef
38Call object::id<Pool<Ty0, Ty1>>(&Pool<Ty0, Ty1>): ID
39MoveLoc[4](Arg4: &Clock)
40Call clock::timestamp_ms(&Clock): u64
41Call events::emit_orders_cancelled(ID, ID, u64)
42Ret
}
 
public cancel_and_settle<Ty0, Ty1>(Arg0: &mut MMState, Arg1: &mut BalanceManager, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64, Arg4: &Clock, Arg5: &TxContext) {
L6: loc0: TradeProof
B0:
0CopyLoc[0](Arg0: &mut MMState)
1FreezeRef
2Call mm_state::owner(&MMState): address
3CopyLoc[5](Arg5: &TxContext)
4Call tx_context::sender(&TxContext): address
5Eq
6BrFalse(8)
B1:
7Branch(20)
B2:
8MoveLoc[0](Arg0: &mut MMState)
9Pop
10MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
11Pop
12MoveLoc[5](Arg5: &TxContext)
13Pop
14MoveLoc[4](Arg4: &Clock)
15Pop
16MoveLoc[1](Arg1: &mut BalanceManager)
17Pop
18LdConst[0](u64: 1)
19Abort
B3:
20CopyLoc[0](Arg0: &mut MMState)
21MoveLoc[3](Arg3: u64)
22Call mm_state::advance_sequence(&mut MMState, u64)
23CopyLoc[1](Arg1: &mut BalanceManager)
24CopyLoc[5](Arg5: &TxContext)
25Call balance_manager::generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
26StLoc[6](loc0: TradeProof)
27CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
28CopyLoc[1](Arg1: &mut BalanceManager)
29ImmBorrowLoc[6](loc0: TradeProof)
30CopyLoc[4](Arg4: &Clock)
31MoveLoc[5](Arg5: &TxContext)
32Call pool::cancel_all_orders<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, &Clock, &TxContext)
33CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
34MoveLoc[1](Arg1: &mut BalanceManager)
35ImmBorrowLoc[6](loc0: TradeProof)
36Call pool::withdraw_settled_amounts<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof)
37MoveLoc[0](Arg0: &mut MMState)
38FreezeRef
39Call mm_state::state_id(&MMState): ID
40MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
41FreezeRef
42Call object::id<Pool<Ty0, Ty1>>(&Pool<Ty0, Ty1>): ID
43MoveLoc[4](Arg4: &Clock)
44Call clock::timestamp_ms(&Clock): u64
45Call events::emit_orders_cancelled(ID, ID, u64)
46Ret
}
 
public pause_trading<Ty0, Ty1>(Arg0: &mut MMState, Arg1: &mut BalanceManager, Arg2: &mut Pool<Ty0, Ty1>, Arg3: u64, Arg4: u64, Arg5: &Clock, Arg6: &TxContext) {
L7: loc0: u64
L8: loc1: TradeProof
B0:
0CopyLoc[0](Arg0: &mut MMState)
1FreezeRef
2Call mm_state::owner(&MMState): address
3CopyLoc[6](Arg6: &TxContext)
4Call tx_context::sender(&TxContext): address
5Eq
6BrFalse(8)
B1:
7Branch(20)
B2:
8MoveLoc[0](Arg0: &mut MMState)
9Pop
10MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
11Pop
12MoveLoc[6](Arg6: &TxContext)
13Pop
14MoveLoc[5](Arg5: &Clock)
15Pop
16MoveLoc[1](Arg1: &mut BalanceManager)
17Pop
18LdConst[0](u64: 1)
19Abort
B3:
20CopyLoc[0](Arg0: &mut MMState)
21MoveLoc[4](Arg4: u64)
22Call mm_state::advance_sequence(&mut MMState, u64)
23CopyLoc[5](Arg5: &Clock)
24Call clock::timestamp_ms(&Clock): u64
25StLoc[7](loc0: u64)
26CopyLoc[1](Arg1: &mut BalanceManager)
27CopyLoc[6](Arg6: &TxContext)
28Call balance_manager::generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
29StLoc[8](loc1: TradeProof)
30CopyLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
31MoveLoc[1](Arg1: &mut BalanceManager)
32ImmBorrowLoc[8](loc1: TradeProof)
33MoveLoc[5](Arg5: &Clock)
34MoveLoc[6](Arg6: &TxContext)
35Call pool::cancel_all_orders<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, &mut BalanceManager, &TradeProof, &Clock, &TxContext)
36CopyLoc[0](Arg0: &mut MMState)
37FreezeRef
38Call mm_state::state_id(&MMState): ID
39MoveLoc[2](Arg2: &mut Pool<Ty0, Ty1>)
40FreezeRef
41Call object::id<Pool<Ty0, Ty1>>(&Pool<Ty0, Ty1>): ID
42CopyLoc[7](loc0: u64)
43Call events::emit_orders_cancelled(ID, ID, u64)
44MoveLoc[0](Arg0: &mut MMState)
45CopyLoc[7](loc0: u64)
46MoveLoc[3](Arg3: u64)
47Add
48MoveLoc[7](loc0: u64)
49Call mm_state::pause(&mut MMState, u64, u64)
50Ret
}
 
public resume_trading(Arg0: &mut MMState, Arg1: &TxContext) {
B0:
0CopyLoc[0](Arg0: &mut MMState)
1FreezeRef
2Call mm_state::owner(&MMState): address
3MoveLoc[1](Arg1: &TxContext)
4Call tx_context::sender(&TxContext): address
5Eq
6BrFalse(8)
B1:
7Branch(12)
B2:
8MoveLoc[0](Arg0: &mut MMState)
9Pop
10LdConst[0](u64: 1)
11Abort
B3:
12MoveLoc[0](Arg0: &mut MMState)
13Call mm_state::unpause(&mut MMState)
14Ret
}
 
public get_state_info(Arg0: &MMState): u64 * u64 * u64 * bool {
B0:
0CopyLoc[0](Arg0: &MMState)
1Call mm_state::current_price(&MMState): u64
2CopyLoc[0](Arg0: &MMState)
3Call mm_state::current_spread(&MMState): u64
4CopyLoc[0](Arg0: &MMState)
5Call mm_state::execution_count(&MMState): u64
6MoveLoc[0](Arg0: &MMState)
7Call mm_state::is_paused(&MMState): bool
8Ret
}
 
Constants [
0 => u64: 1
1 => u64: 2
2 => u64: 3
3 => u64: 30000
]
}