DeepBook v2::clob_v2 bytecode | tide- Move path
- 0x0000…dee9::clob_v2
- Functions
- 5549 public, 0 entry
- Structs
- 13
clob_v2
The on-chain disassembly. Offsets are bytecode positions within each function.
1// Move bytecode v7
2module dee9.clob_v2 {
3use 000000000000000000000000000000000000000000000000000000000000dee9::critbit;
4use 000000000000000000000000000000000000000000000000000000000000dee9::custodian_v2;
5use 000000000000000000000000000000000000000000000000000000000000dee9::math;
6use 0000000000000000000000000000000000000000000000000000000000000001::option;
7use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
8use 0000000000000000000000000000000000000000000000000000000000000001::vector;
9use 0000000000000000000000000000000000000000000000000000000000000002::balance;
10use 0000000000000000000000000000000000000000000000000000000000000002::clock;
11use 0000000000000000000000000000000000000000000000000000000000000002::coin;
12use 0000000000000000000000000000000000000000000000000000000000000002::event;
13use 0000000000000000000000000000000000000000000000000000000000000002::linked_table;
14use 0000000000000000000000000000000000000000000000000000000000000002::object;
15use 0000000000000000000000000000000000000000000000000000000000000002::sui;
16use 0000000000000000000000000000000000000000000000000000000000000002::table;
17use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
19struct PoolCreated has copy, drop, store {
22 quote_asset: TypeName,
24 maker_rebate_rate: u64,
29struct OrderPlaced<phantom Ty0, phantom Ty1> has copy, drop, store {
35 original_quantity: u64,
36 base_asset_quantity_placed: u64,
41struct OrderCanceled<phantom Ty0, phantom Ty1> has copy, drop, store {
47 original_quantity: u64,
48 base_asset_quantity_canceled: u64,
52struct AllOrdersCanceledComponent<phantom Ty0, phantom Ty1> has copy, drop, store {
57 original_quantity: u64,
58 base_asset_quantity_canceled: u64,
62struct AllOrdersCanceled<phantom Ty0, phantom Ty1> has copy, drop, store {
64 orders_canceled: vector<AllOrdersCanceledComponent<Ty0, Ty1>>
67struct OrderFilled<phantom Ty0, phantom Ty1> has copy, drop, store {
70 taker_client_order_id: u64,
71 maker_client_order_id: u64,
73 taker_address: address,
74 maker_address: address,
75 original_quantity: u64,
76 base_asset_quantity_filled: u64,
77 base_asset_quantity_remaining: u64,
79 taker_commission: u64,
83struct DepositAsset<phantom Ty0> has copy, drop, store {
89struct WithdrawAsset<phantom Ty0> has copy, drop, store {
95struct MatchedOrderMetadata<phantom Ty0, phantom Ty1> has copy, drop, store {
99 taker_address: address,
100 maker_address: address,
101 base_asset_quantity_filled: u64,
103 taker_commission: u64,
107struct Order has drop, store {
109 client_order_id: u64,
111 original_quantity: u64,
115 expire_timestamp: u64,
116 self_matching_prevention: u8
119struct TickLevel has store {
121 open_orders: LinkedTable<u64, Order>
124struct Pool<phantom Ty0, phantom Ty1> has store, key {
126 bids: CritbitTree<TickLevel>,
127 asks: CritbitTree<TickLevel>,
128 next_bid_order_id: u64,
129 next_ask_order_id: u64,
130 usr_open_orders: Table<address, LinkedTable<u64, u64>>,
132 maker_rebate_rate: u64,
135 base_custodian: Custodian<Ty0>,
136 quote_custodian: Custodian<Ty1>,
137 creation_fee: Balance<SUI>,
138 base_asset_trading_fees: Balance<Ty0>,
139 quote_asset_trading_fees: Balance<Ty1>
142struct PoolOwnerCap has store, key {
147public usr_open_orders_exist<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: address): bool {
1490MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1501ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
1512MoveLoc[1](Arg1: address)
1523Call table::contains<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): bool
156public usr_open_orders_for_address<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: address): &LinkedTable<u64, u64> {
1580MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1591ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
1602MoveLoc[1](Arg1: address)
1613Call table::borrow<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): &LinkedTable<u64, u64>
165public usr_open_orders<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): &Table<address, LinkedTable<u64, u64>> {
1670MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
1681ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
172public withdraw_fees<Ty0, Ty1>(Arg0: &PoolOwnerCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: &mut TxContext): Coin<Ty1> {
1750MoveLoc[0](Arg0: &PoolOwnerCap)
1761ImmBorrowField[1](PoolOwnerCap.owner: address)
1783CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
1794ImmBorrowFieldGeneric[1](Pool.id: UID)
1805Call object::uid_to_address(&UID): address
1869MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
18811MoveLoc[2](Arg2: &mut TxContext)
19315CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
19517Call quote_asset_trading_fees_value<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64
19719MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
19820MutBorrowFieldGeneric[2](Pool.quote_asset_trading_fees: Balance<Ty1>)
19921MoveLoc[3](loc0: u64)
20022Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
20123MoveLoc[2](Arg2: &mut TxContext)
20224Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
206public delete_pool_owner_cap(Arg0: PoolOwnerCap) {
2080MoveLoc[0](Arg0: PoolOwnerCap)
2091Unpack[12](PoolOwnerCap)
2113Call object::delete(UID)
215destroy_empty_level(Arg0: TickLevel) {
216L1: loc0: LinkedTable<u64, Order>
2180MoveLoc[0](Arg0: TickLevel)
2191Unpack[10](TickLevel)
2202StLoc[1](loc0: LinkedTable<u64, Order>)
2224MoveLoc[1](loc0: LinkedTable<u64, Order>)
2235Call linked_table::destroy_empty<u64, Order>(LinkedTable<u64, Order>)
227public create_account(Arg0: &mut TxContext): AccountCap {
233public create_pool<Ty0, Ty1>(Arg0: u64, Arg1: u64, Arg2: Coin<SUI>, Arg3: &mut TxContext) {
239public create_customized_pool<Ty0, Ty1>(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: Coin<SUI>, Arg5: &mut TxContext) {
245public create_pool_with_return<Ty0, Ty1>(Arg0: u64, Arg1: u64, Arg2: Coin<SUI>, Arg3: &mut TxContext): Pool<Ty0, Ty1> {
251public create_customized_pool_with_return<Ty0, Ty1>(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: Coin<SUI>, Arg5: &mut TxContext): Pool<Ty0, Ty1> {
257public create_customized_pool_v2<Ty0, Ty1>(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: Coin<SUI>, Arg5: &mut TxContext): Pool<Ty0, Ty1> * PoolOwnerCap {
263public deposit_base<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: Coin<Ty0>, Arg2: &AccountCap) {
269public deposit_quote<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: Coin<Ty1>, Arg2: &AccountCap) {
275public withdraw_base<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &AccountCap, Arg3: &mut TxContext): Coin<Ty0> {
2770CopyLoc[1](Arg1: u64)
2845MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
2867MoveLoc[3](Arg3: &mut TxContext)
2889MoveLoc[2](Arg2: &AccountCap)
29313CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
29414ImmBorrowFieldGeneric[1](Pool.id: UID)
29515Call object::uid_as_inner(&UID): &ID
29717CopyLoc[1](Arg1: u64)
29818CopyLoc[2](Arg2: &AccountCap)
29919Call custodian_v2::account_owner(&AccountCap): address
30020PackGeneric[0](WithdrawAsset<Ty0>)
30121Call event::emit<WithdrawAsset<Ty0>>(WithdrawAsset<Ty0>)
30222MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
30323MutBorrowFieldGeneric[3](Pool.base_custodian: Custodian<Ty0>)
30424MoveLoc[1](Arg1: u64)
30525MoveLoc[2](Arg2: &AccountCap)
30626MoveLoc[3](Arg3: &mut TxContext)
30727Call custodian_v2::withdraw_asset<Ty0>(&mut Custodian<Ty0>, u64, &AccountCap, &mut TxContext): Coin<Ty0>
311public withdraw_quote<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &AccountCap, Arg3: &mut TxContext): Coin<Ty1> {
3130CopyLoc[1](Arg1: u64)
3205MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
3227MoveLoc[3](Arg3: &mut TxContext)
3249MoveLoc[2](Arg2: &AccountCap)
32913CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
33014ImmBorrowFieldGeneric[1](Pool.id: UID)
33115Call object::uid_as_inner(&UID): &ID
33317CopyLoc[1](Arg1: u64)
33418CopyLoc[2](Arg2: &AccountCap)
33519Call custodian_v2::account_owner(&AccountCap): address
33620PackGeneric[1](WithdrawAsset<Ty1>)
33721Call event::emit<WithdrawAsset<Ty1>>(WithdrawAsset<Ty1>)
33822MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
33923MutBorrowFieldGeneric[4](Pool.quote_custodian: Custodian<Ty1>)
34024MoveLoc[1](Arg1: u64)
34125MoveLoc[2](Arg2: &AccountCap)
34226MoveLoc[3](Arg3: &mut TxContext)
34327Call custodian_v2::withdraw_asset<Ty1>(&mut Custodian<Ty1>, u64, &AccountCap, &mut TxContext): Coin<Ty1>
347public swap_exact_base_for_quote<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &AccountCap, Arg3: u64, Arg4: Coin<Ty0>, Arg5: Coin<Ty1>, Arg6: &Clock, Arg7: &mut TxContext): Coin<Ty0> * Coin<Ty1> * u64 {
353public swap_exact_base_for_quote_with_metadata<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &AccountCap, Arg3: u64, Arg4: Coin<Ty0>, Arg5: Coin<Ty1>, Arg6: &Clock, Arg7: &mut TxContext): Coin<Ty0> * Coin<Ty1> * u64 * vector<MatchedOrderMetadata<Ty0, Ty1>> {
359public swap_exact_quote_for_base<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &AccountCap, Arg3: u64, Arg4: &Clock, Arg5: Coin<Ty1>, Arg6: &mut TxContext): Coin<Ty0> * Coin<Ty1> * u64 {
365public swap_exact_quote_for_base_with_metadata<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &AccountCap, Arg3: u64, Arg4: &Clock, Arg5: Coin<Ty1>, Arg6: &mut TxContext): Coin<Ty0> * Coin<Ty1> * u64 * vector<MatchedOrderMetadata<Ty0, Ty1>> {
371public place_market_order<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &AccountCap, Arg2: u64, Arg3: u64, Arg4: bool, Arg5: Coin<Ty0>, Arg6: Coin<Ty1>, Arg7: &Clock, Arg8: &mut TxContext): Coin<Ty0> * Coin<Ty1> {
377public place_market_order_with_metadata<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &AccountCap, Arg2: u64, Arg3: u64, Arg4: bool, Arg5: Coin<Ty0>, Arg6: Coin<Ty1>, Arg7: &Clock, Arg8: &mut TxContext): Coin<Ty0> * Coin<Ty1> * vector<MatchedOrderMetadata<Ty0, Ty1>> {
383public place_limit_order<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u8, Arg5: bool, Arg6: u64, Arg7: u8, Arg8: &Clock, Arg9: &AccountCap, Arg10: &mut TxContext): u64 * u64 * bool * u64 {
389public place_limit_order_with_metadata<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u8, Arg5: bool, Arg6: u64, Arg7: u8, Arg8: &Clock, Arg9: &AccountCap, Arg10: &mut TxContext): u64 * u64 * bool * u64 * vector<MatchedOrderMetadata<Ty0, Ty1>> {
395order_is_bid(Arg0: u64): bool {
3970MoveLoc[0](Arg0: u64)
3981LdConst[8](u64: 9223..)
403emit_order_canceled<Ty0, Ty1>(Arg0: ID, Arg1: &Order) {
4152CopyLoc[1](Arg1: &Order)
4163ImmBorrowField[6](Order.client_order_id: u64)
4196CopyLoc[1](Arg1: &Order)
4207ImmBorrowField[7](Order.order_id: u64)
42310CopyLoc[1](Arg1: &Order)
42411ImmBorrowField[8](Order.is_bid: bool)
42613StLoc[5](loc3: bool)
42714CopyLoc[1](Arg1: &Order)
42815ImmBorrowField[9](Order.owner: address)
43017StLoc[6](loc4: address)
43118CopyLoc[1](Arg1: &Order)
43219ImmBorrowField[10](Order.original_quantity: u64)
43522CopyLoc[1](Arg1: &Order)
43623ImmBorrowField[11](Order.quantity: u64)
43926MoveLoc[1](Arg1: &Order)
44027ImmBorrowField[12](Order.price: u64)
44330MoveLoc[2](loc0: ID)
44431MoveLoc[4](loc2: u64)
44532MoveLoc[3](loc1: u64)
44633MoveLoc[5](loc3: bool)
44734MoveLoc[6](loc4: address)
44835MoveLoc[7](loc5: u64)
44936MoveLoc[8](loc6: u64)
45037MoveLoc[9](loc7: u64)
45138PackGeneric[2](OrderCanceled<Ty0, Ty1>)
45239Call event::emit<OrderCanceled<Ty0, Ty1>>(OrderCanceled<Ty0, Ty1>)
456public cancel_order<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: u64, Arg2: &AccountCap) {
457L3: loc0: &CritbitTree<TickLevel>
458L4: loc1: &mut CritbitTree<TickLevel>
465L11: loc8: &mut LinkedTable<u64, u64>
4670MoveLoc[2](Arg2: &AccountCap)
4681Call custodian_v2::account_owner(&AccountCap): address
4692StLoc[8](loc5: address)
4703CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
4714ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
4725CopyLoc[8](loc5: address)
4736Call table::contains<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): bool
4789MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
48313CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
48414MutBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
48515CopyLoc[8](loc5: address)
48616Call table::borrow_mut<address, LinkedTable<u64, u64>>(&mut Table<address, LinkedTable<u64, u64>>, address): &mut LinkedTable<u64, u64>
48717StLoc[11](loc8: &mut LinkedTable<u64, u64>)
48818CopyLoc[11](loc8: &mut LinkedTable<u64, u64>)
49020CopyLoc[1](Arg1: u64)
49121Call linked_table::contains<u64, u64>(&LinkedTable<u64, u64>, u64): bool
49624MoveLoc[11](loc8: &mut LinkedTable<u64, u64>)
49826MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
50330CopyLoc[11](loc8: &mut LinkedTable<u64, u64>)
50532CopyLoc[1](Arg1: u64)
50633Call linked_table::borrow<u64, u64>(&LinkedTable<u64, u64>, u64): &u64
50835StLoc[10](loc7: u64)
50936CopyLoc[1](Arg1: u64)
51037Call order_is_bid(u64): bool
51138StLoc[6](loc3: bool)
51239CopyLoc[6](loc3: bool)
51541CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
51642ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
51743StLoc[3](loc0: &CritbitTree<TickLevel>)
52045CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
52146ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
52247StLoc[3](loc0: &CritbitTree<TickLevel>)
52448MoveLoc[3](loc0: &CritbitTree<TickLevel>)
52549MoveLoc[10](loc7: u64)
52650Call critbit::find_leaf<TickLevel>(&CritbitTree<TickLevel>, u64): bool * u64
53254MoveLoc[11](loc8: &mut LinkedTable<u64, u64>)
53456MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
53960CopyLoc[6](loc3: bool)
54262CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
54363MutBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
54464StLoc[4](loc1: &mut CritbitTree<TickLevel>)
54766CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
54867MutBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
54968StLoc[4](loc1: &mut CritbitTree<TickLevel>)
55169MoveLoc[4](loc1: &mut CritbitTree<TickLevel>)
55270MoveLoc[11](loc8: &mut LinkedTable<u64, u64>)
55371MoveLoc[9](loc6: u64)
55472MoveLoc[1](Arg1: u64)
55573CopyLoc[8](loc5: address)
55674Call remove_order(&mut CritbitTree<TickLevel>, &mut LinkedTable<u64, u64>, u64, u64, address): Order
55775StLoc[7](loc4: Order)
55876MoveLoc[6](loc3: bool)
56178ImmBorrowLoc[7](loc4: Order)
56279ImmBorrowField[11](Order.quantity: u64)
56481ImmBorrowLoc[7](loc4: Order)
56582ImmBorrowField[12](Order.price: u64)
56784Call math::unsafe_mul_round(u64, u64): bool * u64
57087CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
57188MutBorrowFieldGeneric[4](Pool.quote_custodian: Custodian<Ty1>)
57289MoveLoc[8](loc5: address)
57390MoveLoc[5](loc2: u64)
57491Call custodian_v2::unlock_balance<Ty1>(&mut Custodian<Ty1>, address, u64)
57793CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
57894MutBorrowFieldGeneric[3](Pool.base_custodian: Custodian<Ty0>)
57995MoveLoc[8](loc5: address)
58096ImmBorrowLoc[7](loc4: Order)
58197ImmBorrowField[11](Order.quantity: u64)
58399Call custodian_v2::unlock_balance<Ty0>(&mut Custodian<Ty0>, address, u64)
585100MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
586101ImmBorrowFieldGeneric[1](Pool.id: UID)
587102Call object::uid_as_inner(&UID): &ID
589104ImmBorrowLoc[7](loc4: Order)
590105Call emit_order_canceled<Ty0, Ty1>(ID, &Order)
594remove_order(Arg0: &mut CritbitTree<TickLevel>, Arg1: &mut LinkedTable<u64, u64>, Arg2: u64, Arg3: u64, Arg4: address): Order {
595L5: loc0: &mut TickLevel
5980MoveLoc[1](Arg1: &mut LinkedTable<u64, u64>)
5991CopyLoc[3](Arg3: u64)
6002Call linked_table::remove<u64, u64>(&mut LinkedTable<u64, u64>, u64): u64
6024CopyLoc[0](Arg0: &mut CritbitTree<TickLevel>)
6046CopyLoc[2](Arg2: u64)
6057Call critbit::borrow_leaf_by_index<TickLevel>(&CritbitTree<TickLevel>, u64): &TickLevel
6068ImmBorrowField[15](TickLevel.open_orders: LinkedTable<u64, Order>)
6079CopyLoc[3](Arg3: u64)
60810Call linked_table::contains<u64, Order>(&LinkedTable<u64, Order>, u64): bool
61313MoveLoc[0](Arg0: &mut CritbitTree<TickLevel>)
61817CopyLoc[0](Arg0: &mut CritbitTree<TickLevel>)
61918CopyLoc[2](Arg2: u64)
62019Call critbit::borrow_mut_leaf_by_index<TickLevel>(&mut CritbitTree<TickLevel>, u64): &mut TickLevel
62120StLoc[5](loc0: &mut TickLevel)
62221CopyLoc[5](loc0: &mut TickLevel)
62322MutBorrowField[15](TickLevel.open_orders: LinkedTable<u64, Order>)
62423MoveLoc[3](Arg3: u64)
62524Call linked_table::remove<u64, Order>(&mut LinkedTable<u64, Order>, u64): Order
62625StLoc[6](loc1: Order)
62726ImmBorrowLoc[6](loc1: Order)
62827ImmBorrowField[9](Order.owner: address)
63029MoveLoc[4](Arg4: address)
63633MoveLoc[0](Arg0: &mut CritbitTree<TickLevel>)
63835MoveLoc[5](loc0: &mut TickLevel)
64339MoveLoc[5](loc0: &mut TickLevel)
64440ImmBorrowField[15](TickLevel.open_orders: LinkedTable<u64, Order>)
64541Call linked_table::is_empty<u64, Order>(&LinkedTable<u64, Order>): bool
64843MoveLoc[0](Arg0: &mut CritbitTree<TickLevel>)
64944MoveLoc[2](Arg2: u64)
65045Call critbit::remove_leaf_by_index<TickLevel>(&mut CritbitTree<TickLevel>, u64): TickLevel
65146Call destroy_empty_level(TickLevel)
65448MoveLoc[0](Arg0: &mut CritbitTree<TickLevel>)
65750MoveLoc[6](loc1: Order)
661public cancel_all_orders<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &AccountCap) {
662L2: loc0: &mut CritbitTree<TickLevel>
671L11: loc9: AllOrdersCanceledComponent<Ty0, Ty1>
672L12: loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>
674L14: loc12: &mut CritbitTree<TickLevel>
681L21: loc19: &mut LinkedTable<u64, u64>
6830CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
6841ImmBorrowFieldGeneric[1](Pool.id: UID)
6852Call object::uid_as_inner(&UID): &ID
6885MoveLoc[1](Arg1: &AccountCap)
6896Call custodian_v2::account_owner(&AccountCap): address
6907StLoc[18](loc16: address)
6918CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
6929ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
69310CopyLoc[18](loc16: address)
69411Call table::contains<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): bool
69914MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
70418CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
70519MutBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
70620CopyLoc[18](loc16: address)
70721Call table::borrow_mut<address, LinkedTable<u64, u64>>(&mut Table<address, LinkedTable<u64, u64>>, address): &mut LinkedTable<u64, u64>
70822StLoc[21](loc19: &mut LinkedTable<u64, u64>)
71024StLoc[12](loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
71225CopyLoc[21](loc19: &mut LinkedTable<u64, u64>)
71427Call linked_table::is_empty<u64, u64>(&LinkedTable<u64, u64>): bool
71830CopyLoc[21](loc19: &mut LinkedTable<u64, u64>)
72032Call linked_table::back<u64, u64>(&LinkedTable<u64, u64>): &Option<u64>
72133Call option::borrow<u64>(&Option<u64>): &u64
72335StLoc[16](loc14: u64)
72436CopyLoc[21](loc19: &mut LinkedTable<u64, u64>)
72638CopyLoc[16](loc14: u64)
72739Call linked_table::borrow<u64, u64>(&LinkedTable<u64, u64>, u64): &u64
72941StLoc[17](loc15: u64)
73042CopyLoc[16](loc14: u64)
73143Call order_is_bid(u64): bool
73244StLoc[13](loc11: bool)
73345CopyLoc[13](loc11: bool)
73848CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
73949MutBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
74050StLoc[2](loc0: &mut CritbitTree<TickLevel>)
74352CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
74453MutBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
74554StLoc[2](loc0: &mut CritbitTree<TickLevel>)
74755MoveLoc[2](loc0: &mut CritbitTree<TickLevel>)
74856StLoc[14](loc12: &mut CritbitTree<TickLevel>)
74957CopyLoc[14](loc12: &mut CritbitTree<TickLevel>)
75159MoveLoc[17](loc15: u64)
75260Call critbit::find_leaf<TickLevel>(&CritbitTree<TickLevel>, u64): bool * u64
75361StLoc[20](loc18: u64)
75563MoveLoc[14](loc12: &mut CritbitTree<TickLevel>)
75664CopyLoc[21](loc19: &mut LinkedTable<u64, u64>)
75765MoveLoc[20](loc18: u64)
75866MoveLoc[16](loc14: u64)
75967CopyLoc[18](loc16: address)
76068Call remove_order(&mut CritbitTree<TickLevel>, &mut LinkedTable<u64, u64>, u64, u64, address): Order
76169StLoc[15](loc13: Order)
76270MoveLoc[13](loc11: bool)
76572ImmBorrowLoc[15](loc13: Order)
76673ImmBorrowField[11](Order.quantity: u64)
76875ImmBorrowLoc[15](loc13: Order)
76976ImmBorrowField[12](Order.price: u64)
77178Call math::unsafe_mul_round(u64, u64): bool * u64
77279StLoc[10](loc8: u64)
77481CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
77582MutBorrowFieldGeneric[4](Pool.quote_custodian: Custodian<Ty1>)
77683CopyLoc[18](loc16: address)
77784MoveLoc[10](loc8: u64)
77885Call custodian_v2::unlock_balance<Ty1>(&mut Custodian<Ty1>, address, u64)
78187CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
78288MutBorrowFieldGeneric[3](Pool.base_custodian: Custodian<Ty0>)
78389CopyLoc[18](loc16: address)
78490ImmBorrowLoc[15](loc13: Order)
78591ImmBorrowField[11](Order.quantity: u64)
78793Call custodian_v2::unlock_balance<Ty0>(&mut Custodian<Ty0>, address, u64)
78994ImmBorrowLoc[15](loc13: Order)
79095ImmBorrowField[6](Order.client_order_id: u64)
79398ImmBorrowLoc[15](loc13: Order)
79499ImmBorrowField[7](Order.order_id: u64)
796101StLoc[4](loc2: u64)
797102ImmBorrowLoc[15](loc13: Order)
798103ImmBorrowField[8](Order.is_bid: bool)
800105StLoc[5](loc3: bool)
801106ImmBorrowLoc[15](loc13: Order)
802107ImmBorrowField[9](Order.owner: address)
804109StLoc[6](loc4: address)
805110ImmBorrowLoc[15](loc13: Order)
806111ImmBorrowField[10](Order.original_quantity: u64)
808113StLoc[7](loc5: u64)
809114ImmBorrowLoc[15](loc13: Order)
810115ImmBorrowField[11](Order.quantity: u64)
812117StLoc[8](loc6: u64)
813118ImmBorrowLoc[15](loc13: Order)
814119ImmBorrowField[12](Order.price: u64)
816121StLoc[9](loc7: u64)
817122MoveLoc[4](loc2: u64)
818123MoveLoc[3](loc1: u64)
819124MoveLoc[5](loc3: bool)
820125MoveLoc[6](loc4: address)
821126MoveLoc[7](loc5: u64)
822127MoveLoc[8](loc6: u64)
823128MoveLoc[9](loc7: u64)
824129PackGeneric[3](AllOrdersCanceledComponent<Ty0, Ty1>)
825130StLoc[11](loc9: AllOrdersCanceledComponent<Ty0, Ty1>)
826131MutBorrowLoc[12](loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
827132MoveLoc[11](loc9: AllOrdersCanceledComponent<Ty0, Ty1>)
831135MoveLoc[21](loc19: &mut LinkedTable<u64, u64>)
833137MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
835139ImmBorrowLoc[12](loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
836140Call vector::is_empty<AllOrdersCanceledComponent<Ty0, Ty1>>(&vector<AllOrdersCanceledComponent<Ty0, Ty1>>): bool
840143MoveLoc[19](loc17: ID)
841144MoveLoc[12](loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
842145PackGeneric[4](AllOrdersCanceled<Ty0, Ty1>)
843146Call event::emit<AllOrdersCanceled<Ty0, Ty1>>(AllOrdersCanceled<Ty0, Ty1>)
848public batch_cancel_order<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: vector<u64>, Arg2: &AccountCap) {
849L3: loc0: &CritbitTree<TickLevel>
850L4: loc1: &mut CritbitTree<TickLevel>
859L13: loc10: AllOrdersCanceledComponent<Ty0, Ty1>
860L14: loc11: vector<AllOrdersCanceledComponent<Ty0, Ty1>>
872L26: loc23: &mut LinkedTable<u64, u64>
8740CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8751ImmBorrowFieldGeneric[1](Pool.id: UID)
8762Call object::uid_as_inner(&UID): &ID
8795MoveLoc[2](Arg2: &AccountCap)
8806Call custodian_v2::account_owner(&AccountCap): address
8817StLoc[22](loc19: address)
8828CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
8839ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
88410CopyLoc[22](loc19: address)
88511Call table::contains<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): bool
89014MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
89619StLoc[24](loc21: u64)
89821StLoc[25](loc22: u64)
89922ImmBorrowLoc[1](Arg1: vector<u64>)
90124StLoc[17](loc14: u64)
90326StLoc[15](loc12: u64)
90427CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
90528MutBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
90629CopyLoc[22](loc19: address)
90730Call table::borrow_mut<address, LinkedTable<u64, u64>>(&mut Table<address, LinkedTable<u64, u64>>, address): &mut LinkedTable<u64, u64>
90831StLoc[26](loc23: &mut LinkedTable<u64, u64>)
91033StLoc[14](loc11: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
91234CopyLoc[15](loc12: u64)
91335CopyLoc[17](loc14: u64)
91738ImmBorrowLoc[1](Arg1: vector<u64>)
91839CopyLoc[15](loc12: u64)
92142StLoc[21](loc18: u64)
92243CopyLoc[26](loc23: &mut LinkedTable<u64, u64>)
92445CopyLoc[21](loc18: u64)
92546Call linked_table::contains<u64, u64>(&LinkedTable<u64, u64>, u64): bool
93049MoveLoc[26](loc23: &mut LinkedTable<u64, u64>)
93251MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
93755CopyLoc[26](loc23: &mut LinkedTable<u64, u64>)
93957CopyLoc[21](loc18: u64)
94058Call linked_table::borrow<u64, u64>(&LinkedTable<u64, u64>, u64): &u64
94260StLoc[19](loc16: u64)
94361CopyLoc[21](loc18: u64)
94462Call order_is_bid(u64): bool
94563StLoc[16](loc13: bool)
94664CopyLoc[19](loc16: u64)
94765CopyLoc[25](loc22: u64)
95168MoveLoc[19](loc16: u64)
95269StLoc[25](loc22: u64)
95370CopyLoc[16](loc13: bool)
95672CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
95773ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
95874StLoc[3](loc0: &CritbitTree<TickLevel>)
96176CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
96277ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
96378StLoc[3](loc0: &CritbitTree<TickLevel>)
96579MoveLoc[3](loc0: &CritbitTree<TickLevel>)
96680CopyLoc[25](loc22: u64)
96781Call critbit::find_leaf<TickLevel>(&CritbitTree<TickLevel>, u64): bool * u64
96882StLoc[18](loc15: u64)
97385MoveLoc[26](loc23: &mut LinkedTable<u64, u64>)
97587MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
98091MoveLoc[18](loc15: u64)
98192StLoc[24](loc21: u64)
98393CopyLoc[16](loc13: bool)
98695CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
98796MutBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
98897StLoc[4](loc1: &mut CritbitTree<TickLevel>)
99199CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
992100MutBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
993101StLoc[4](loc1: &mut CritbitTree<TickLevel>)
995102MoveLoc[4](loc1: &mut CritbitTree<TickLevel>)
996103CopyLoc[26](loc23: &mut LinkedTable<u64, u64>)
997104CopyLoc[24](loc21: u64)
998105MoveLoc[21](loc18: u64)
999106CopyLoc[22](loc19: address)
1000107Call remove_order(&mut CritbitTree<TickLevel>, &mut LinkedTable<u64, u64>, u64, u64, address): Order
1001108StLoc[20](loc17: Order)
1002109MoveLoc[16](loc13: bool)
1005111ImmBorrowLoc[20](loc17: Order)
1006112ImmBorrowField[11](Order.quantity: u64)
1008114ImmBorrowLoc[20](loc17: Order)
1009115ImmBorrowField[12](Order.price: u64)
1011117Call math::unsafe_mul_round(u64, u64): bool * u64
1012118StLoc[12](loc9: u64)
1014120CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1015121MutBorrowFieldGeneric[4](Pool.quote_custodian: Custodian<Ty1>)
1016122CopyLoc[22](loc19: address)
1017123MoveLoc[12](loc9: u64)
1018124Call custodian_v2::unlock_balance<Ty1>(&mut Custodian<Ty1>, address, u64)
1021126CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1022127MutBorrowFieldGeneric[3](Pool.base_custodian: Custodian<Ty0>)
1023128CopyLoc[22](loc19: address)
1024129ImmBorrowLoc[20](loc17: Order)
1025130ImmBorrowField[11](Order.quantity: u64)
1027132Call custodian_v2::unlock_balance<Ty0>(&mut Custodian<Ty0>, address, u64)
1029133ImmBorrowLoc[20](loc17: Order)
1030134ImmBorrowField[6](Order.client_order_id: u64)
1032136StLoc[5](loc2: u64)
1033137ImmBorrowLoc[20](loc17: Order)
1034138ImmBorrowField[7](Order.order_id: u64)
1036140StLoc[6](loc3: u64)
1037141ImmBorrowLoc[20](loc17: Order)
1038142ImmBorrowField[8](Order.is_bid: bool)
1040144StLoc[7](loc4: bool)
1041145ImmBorrowLoc[20](loc17: Order)
1042146ImmBorrowField[9](Order.owner: address)
1044148StLoc[8](loc5: address)
1045149ImmBorrowLoc[20](loc17: Order)
1046150ImmBorrowField[10](Order.original_quantity: u64)
1048152StLoc[9](loc6: u64)
1049153ImmBorrowLoc[20](loc17: Order)
1050154ImmBorrowField[11](Order.quantity: u64)
1052156StLoc[10](loc7: u64)
1053157ImmBorrowLoc[20](loc17: Order)
1054158ImmBorrowField[12](Order.price: u64)
1056160StLoc[11](loc8: u64)
1057161MoveLoc[6](loc3: u64)
1058162MoveLoc[5](loc2: u64)
1059163MoveLoc[7](loc4: bool)
1060164MoveLoc[8](loc5: address)
1061165MoveLoc[9](loc6: u64)
1062166MoveLoc[10](loc7: u64)
1063167MoveLoc[11](loc8: u64)
1064168PackGeneric[3](AllOrdersCanceledComponent<Ty0, Ty1>)
1065169StLoc[13](loc10: AllOrdersCanceledComponent<Ty0, Ty1>)
1066170MutBorrowLoc[14](loc11: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
1067171MoveLoc[13](loc10: AllOrdersCanceledComponent<Ty0, Ty1>)
1069173MoveLoc[15](loc12: u64)
1072176StLoc[15](loc12: u64)
1075178MoveLoc[26](loc23: &mut LinkedTable<u64, u64>)
1077180MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1079182ImmBorrowLoc[14](loc11: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
1080183Call vector::is_empty<AllOrdersCanceledComponent<Ty0, Ty1>>(&vector<AllOrdersCanceledComponent<Ty0, Ty1>>): bool
1084186MoveLoc[23](loc20: ID)
1085187MoveLoc[14](loc11: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
1086188PackGeneric[4](AllOrdersCanceled<Ty0, Ty1>)
1087189Call event::emit<AllOrdersCanceled<Ty0, Ty1>>(AllOrdersCanceled<Ty0, Ty1>)
1092public clean_up_expired_orders<Ty0, Ty1>(Arg0: &mut Pool<Ty0, Ty1>, Arg1: &Clock, Arg2: vector<u64>, Arg3: vector<address>) {
1093L4: loc0: &mut CritbitTree<TickLevel>
1102L13: loc9: AllOrdersCanceledComponent<Ty0, Ty1>
1103L14: loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>
1110L21: loc17: &mut CritbitTree<TickLevel>
1117L28: loc24: &mut LinkedTable<u64, u64>
11190CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
11201ImmBorrowFieldGeneric[1](Pool.id: UID)
11212Call object::uid_as_inner(&UID): &ID
11234StLoc[25](loc21: ID)
11245MoveLoc[1](Arg1: &Clock)
11256Call clock::timestamp_ms(&Clock): u64
11267StLoc[20](loc16: u64)
11278ImmBorrowLoc[2](Arg2: vector<u64>)
112910StLoc[17](loc13: u64)
113011CopyLoc[17](loc13: u64)
113112ImmBorrowLoc[3](Arg3: vector<address>)
113817MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
114019LdConst[6](u64: 13)
114422StLoc[15](loc11: u64)
114624StLoc[26](loc22: u64)
114826StLoc[27](loc23: u64)
115028StLoc[14](loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
115229CopyLoc[15](loc11: u64)
115330CopyLoc[17](loc13: u64)
115733ImmBorrowLoc[2](Arg2: vector<u64>)
115834CopyLoc[15](loc11: u64)
116137StLoc[23](loc19: u64)
116238ImmBorrowLoc[3](Arg3: vector<address>)
116339CopyLoc[15](loc11: u64)
116642StLoc[24](loc20: address)
116743CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
116844ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
116945CopyLoc[24](loc20: address)
117046Call table::contains<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): bool
117650CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
117751MutBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
117852CopyLoc[24](loc20: address)
117953Call table::borrow_mut<address, LinkedTable<u64, u64>>(&mut Table<address, LinkedTable<u64, u64>>, address): &mut LinkedTable<u64, u64>
118054StLoc[28](loc24: &mut LinkedTable<u64, u64>)
118155CopyLoc[28](loc24: &mut LinkedTable<u64, u64>)
118357CopyLoc[23](loc19: u64)
118458Call linked_table::contains<u64, u64>(&LinkedTable<u64, u64>, u64): bool
118861MoveLoc[28](loc24: &mut LinkedTable<u64, u64>)
119264CopyLoc[28](loc24: &mut LinkedTable<u64, u64>)
119466CopyLoc[23](loc19: u64)
119567Call linked_table::borrow<u64, u64>(&LinkedTable<u64, u64>, u64): &u64
119769StLoc[19](loc15: u64)
119870CopyLoc[23](loc19: u64)
119971Call order_is_bid(u64): bool
120072StLoc[16](loc12: bool)
120173CopyLoc[16](loc12: bool)
120475CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
120576MutBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
120677StLoc[4](loc0: &mut CritbitTree<TickLevel>)
120979CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
121080MutBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
121181StLoc[4](loc0: &mut CritbitTree<TickLevel>)
121382MoveLoc[4](loc0: &mut CritbitTree<TickLevel>)
121483StLoc[21](loc17: &mut CritbitTree<TickLevel>)
121584CopyLoc[19](loc15: u64)
121685CopyLoc[27](loc23: u64)
122088MoveLoc[19](loc15: u64)
122189StLoc[27](loc23: u64)
122290CopyLoc[21](loc17: &mut CritbitTree<TickLevel>)
122492CopyLoc[27](loc23: u64)
122593Call critbit::find_leaf<TickLevel>(&CritbitTree<TickLevel>, u64): bool * u64
122694StLoc[18](loc14: u64)
123197MoveLoc[28](loc24: &mut LinkedTable<u64, u64>)
123399MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1235101MoveLoc[21](loc17: &mut CritbitTree<TickLevel>)
1237103LdConst[4](u64: 11)
1240105MoveLoc[18](loc14: u64)
1241106StLoc[26](loc22: u64)
1243107MoveLoc[21](loc17: &mut CritbitTree<TickLevel>)
1244108MoveLoc[28](loc24: &mut LinkedTable<u64, u64>)
1245109CopyLoc[26](loc22: u64)
1246110MoveLoc[23](loc19: u64)
1247111CopyLoc[24](loc20: address)
1248112Call remove_order(&mut CritbitTree<TickLevel>, &mut LinkedTable<u64, u64>, u64, u64, address): Order
1249113StLoc[22](loc18: Order)
1250114ImmBorrowLoc[22](loc18: Order)
1251115ImmBorrowField[16](Order.expire_timestamp: u64)
1253117CopyLoc[20](loc16: u64)
1259121MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1261123LdConst[7](u64: 19)
1264125MoveLoc[16](loc12: bool)
1267127ImmBorrowLoc[22](loc18: Order)
1268128ImmBorrowField[11](Order.quantity: u64)
1270130ImmBorrowLoc[22](loc18: Order)
1271131ImmBorrowField[12](Order.price: u64)
1273133Call math::unsafe_mul_round(u64, u64): bool * u64
1274134StLoc[12](loc8: u64)
1276136CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1277137MutBorrowFieldGeneric[4](Pool.quote_custodian: Custodian<Ty1>)
1278138MoveLoc[24](loc20: address)
1279139MoveLoc[12](loc8: u64)
1280140Call custodian_v2::unlock_balance<Ty1>(&mut Custodian<Ty1>, address, u64)
1283142CopyLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1284143MutBorrowFieldGeneric[3](Pool.base_custodian: Custodian<Ty0>)
1285144MoveLoc[24](loc20: address)
1286145ImmBorrowLoc[22](loc18: Order)
1287146ImmBorrowField[11](Order.quantity: u64)
1289148Call custodian_v2::unlock_balance<Ty0>(&mut Custodian<Ty0>, address, u64)
1291149ImmBorrowLoc[22](loc18: Order)
1292150ImmBorrowField[6](Order.client_order_id: u64)
1294152StLoc[5](loc1: u64)
1295153ImmBorrowLoc[22](loc18: Order)
1296154ImmBorrowField[7](Order.order_id: u64)
1298156StLoc[6](loc2: u64)
1299157ImmBorrowLoc[22](loc18: Order)
1300158ImmBorrowField[8](Order.is_bid: bool)
1302160StLoc[7](loc3: bool)
1303161ImmBorrowLoc[22](loc18: Order)
1304162ImmBorrowField[9](Order.owner: address)
1306164StLoc[8](loc4: address)
1307165ImmBorrowLoc[22](loc18: Order)
1308166ImmBorrowField[10](Order.original_quantity: u64)
1310168StLoc[9](loc5: u64)
1311169ImmBorrowLoc[22](loc18: Order)
1312170ImmBorrowField[11](Order.quantity: u64)
1314172StLoc[10](loc6: u64)
1315173ImmBorrowLoc[22](loc18: Order)
1316174ImmBorrowField[12](Order.price: u64)
1318176StLoc[11](loc7: u64)
1319177MoveLoc[6](loc2: u64)
1320178MoveLoc[5](loc1: u64)
1321179MoveLoc[7](loc3: bool)
1322180MoveLoc[8](loc4: address)
1323181MoveLoc[9](loc5: u64)
1324182MoveLoc[10](loc6: u64)
1325183MoveLoc[11](loc7: u64)
1326184PackGeneric[3](AllOrdersCanceledComponent<Ty0, Ty1>)
1327185StLoc[13](loc9: AllOrdersCanceledComponent<Ty0, Ty1>)
1328186MutBorrowLoc[14](loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
1329187MoveLoc[13](loc9: AllOrdersCanceledComponent<Ty0, Ty1>)
1331189MoveLoc[15](loc11: u64)
1334192StLoc[15](loc11: u64)
1337194MoveLoc[0](Arg0: &mut Pool<Ty0, Ty1>)
1339196ImmBorrowLoc[14](loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
1340197Call vector::is_empty<AllOrdersCanceledComponent<Ty0, Ty1>>(&vector<AllOrdersCanceledComponent<Ty0, Ty1>>): bool
1344200MoveLoc[25](loc21: ID)
1345201MoveLoc[14](loc10: vector<AllOrdersCanceledComponent<Ty0, Ty1>>)
1346202PackGeneric[4](AllOrdersCanceled<Ty0, Ty1>)
1347203Call event::emit<AllOrdersCanceled<Ty0, Ty1>>(AllOrdersCanceled<Ty0, Ty1>)
1352public list_open_orders<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: &AccountCap): vector<Order> {
1354L3: loc1: vector<Order>
1356L5: loc3: &Option<u64>
1359L8: loc6: &LinkedTable<u64, u64>
13610MoveLoc[1](Arg1: &AccountCap)
13621Call custodian_v2::account_owner(&AccountCap): address
13632StLoc[7](loc5: address)
13654StLoc[3](loc1: vector<Order>)
13665CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
13676CopyLoc[7](loc5: address)
13687Call usr_open_orders_exist<Ty0, Ty1>(&Pool<Ty0, Ty1>, address): bool
137210MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
137412MoveLoc[3](loc1: vector<Order>)
137714CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
137815ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
137916MoveLoc[7](loc5: address)
138017Call table::borrow<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): &LinkedTable<u64, u64>
138118StLoc[8](loc6: &LinkedTable<u64, u64>)
138219CopyLoc[8](loc6: &LinkedTable<u64, u64>)
138320Call linked_table::front<u64, u64>(&LinkedTable<u64, u64>): &Option<u64>
138421StLoc[5](loc3: &Option<u64>)
138622CopyLoc[5](loc3: &Option<u64>)
138723Call option::is_none<u64>(&Option<u64>): bool
139126CopyLoc[8](loc6: &LinkedTable<u64, u64>)
139227CopyLoc[5](loc3: &Option<u64>)
139328Call option::borrow<u64>(&Option<u64>): &u64
139530Call linked_table::borrow<u64, u64>(&LinkedTable<u64, u64>, u64): &u64
139732StLoc[6](loc4: u64)
139833CopyLoc[5](loc3: &Option<u64>)
139934Call option::borrow<u64>(&Option<u64>): &u64
140136Call order_is_bid(u64): bool
140639CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
140740ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
140841MoveLoc[6](loc4: u64)
140942Call critbit::borrow_leaf_by_key<TickLevel>(&CritbitTree<TickLevel>, u64): &TickLevel
141043StLoc[2](loc0: &TickLevel)
141345CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
141446ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
141547MoveLoc[6](loc4: u64)
141648Call critbit::borrow_leaf_by_key<TickLevel>(&CritbitTree<TickLevel>, u64): &TickLevel
141749StLoc[2](loc0: &TickLevel)
141950MoveLoc[2](loc0: &TickLevel)
142051ImmBorrowField[15](TickLevel.open_orders: LinkedTable<u64, Order>)
142152CopyLoc[5](loc3: &Option<u64>)
142253Call option::borrow<u64>(&Option<u64>): &u64
142455Call linked_table::borrow<u64, Order>(&LinkedTable<u64, Order>, u64): &Order
142556StLoc[4](loc2: &Order)
142657MutBorrowLoc[3](loc1: vector<Order>)
142758CopyLoc[4](loc2: &Order)
142859ImmBorrowField[7](Order.order_id: u64)
143061CopyLoc[4](loc2: &Order)
143162ImmBorrowField[6](Order.client_order_id: u64)
143364CopyLoc[4](loc2: &Order)
143465ImmBorrowField[12](Order.price: u64)
143667CopyLoc[4](loc2: &Order)
143768ImmBorrowField[10](Order.original_quantity: u64)
143970CopyLoc[4](loc2: &Order)
144071ImmBorrowField[11](Order.quantity: u64)
144273CopyLoc[4](loc2: &Order)
144374ImmBorrowField[8](Order.is_bid: bool)
144576CopyLoc[4](loc2: &Order)
144677ImmBorrowField[9](Order.owner: address)
144879CopyLoc[4](loc2: &Order)
144980ImmBorrowField[16](Order.expire_timestamp: u64)
145182MoveLoc[4](loc2: &Order)
145283ImmBorrowField[17](Order.self_matching_prevention: u8)
145687CopyLoc[8](loc6: &LinkedTable<u64, u64>)
145788MoveLoc[5](loc3: &Option<u64>)
145889Call option::borrow<u64>(&Option<u64>): &u64
146091Call linked_table::next<u64, u64>(&LinkedTable<u64, u64>, u64): &Option<u64>
146192StLoc[5](loc3: &Option<u64>)
146494MoveLoc[8](loc6: &LinkedTable<u64, u64>)
146696MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
146898MoveLoc[5](loc3: &Option<u64>)
1470100MoveLoc[3](loc1: vector<Order>)
1474public account_balance<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: &AccountCap): u64 * u64 * u64 * u64 {
14810MoveLoc[1](Arg1: &AccountCap)
14821Call custodian_v2::account_owner(&AccountCap): address
14832StLoc[4](loc2: address)
14843CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
14854ImmBorrowFieldGeneric[3](Pool.base_custodian: Custodian<Ty0>)
14865CopyLoc[4](loc2: address)
14876Call custodian_v2::account_balance<Ty0>(&Custodian<Ty0>, address): u64 * u64
14909MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
149110ImmBorrowFieldGeneric[4](Pool.quote_custodian: Custodian<Ty1>)
149211MoveLoc[4](loc2: address)
149312Call custodian_v2::account_balance<Ty1>(&Custodian<Ty1>, address): u64 * u64
149413StLoc[6](loc4: u64)
149514StLoc[5](loc3: u64)
149615MoveLoc[2](loc0: u64)
149716MoveLoc[3](loc1: u64)
149817MoveLoc[5](loc3: u64)
149918MoveLoc[6](loc4: u64)
1503public get_market_price<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): Option<u64> * Option<u64> {
1504L1: loc0: Option<u64>
1505L2: loc1: Option<u64>
1506L3: loc2: Option<u64>
1507L4: loc3: Option<u64>
15090CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
15101ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
15112Call critbit::is_empty<TickLevel>(&CritbitTree<TickLevel>): bool
15155CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
15166ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
15177Call critbit::max_leaf<TickLevel>(&CritbitTree<TickLevel>): u64 * u64
15199Call option::some<u64>(u64): Option<u64>
152010StLoc[1](loc0: Option<u64>)
152312Call option::none<u64>(): Option<u64>
152413StLoc[1](loc0: Option<u64>)
152614MoveLoc[1](loc0: Option<u64>)
152715StLoc[4](loc3: Option<u64>)
152816CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
152917ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
153018Call critbit::is_empty<TickLevel>(&CritbitTree<TickLevel>): bool
153421MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
153522ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
153623Call critbit::min_leaf<TickLevel>(&CritbitTree<TickLevel>): u64 * u64
153825Call option::some<u64>(u64): Option<u64>
153926StLoc[2](loc1: Option<u64>)
154228MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
154430Call option::none<u64>(): Option<u64>
154531StLoc[2](loc1: Option<u64>)
154732MoveLoc[2](loc1: Option<u64>)
154833StLoc[3](loc2: Option<u64>)
154934MoveLoc[4](loc3: Option<u64>)
155035MoveLoc[3](loc2: Option<u64>)
1554public get_level2_book_status_bid_side<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: &Clock): vector<u64> * vector<u64> {
1556L5: loc1: vector<u64>
1560L9: loc5: vector<u64>
15620LdConst[9](vector<u64>: 00)
15631StLoc[9](loc5: vector<u64>)
15642LdConst[9](vector<u64>: 00)
15653StLoc[5](loc1: vector<u64>)
15664CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
15675ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
15686Call critbit::is_empty<TickLevel>(&CritbitTree<TickLevel>): bool
15718MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
157310MoveLoc[3](Arg3: &Clock)
157512MoveLoc[9](loc5: vector<u64>)
157613MoveLoc[5](loc1: vector<u64>)
157915CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
158016ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
158117Call critbit::min_leaf<TickLevel>(&CritbitTree<TickLevel>): u64 * u64
158319StLoc[8](loc4: u64)
158420CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
158521ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
158622Call critbit::max_leaf<TickLevel>(&CritbitTree<TickLevel>): u64 * u64
158824StLoc[7](loc3: u64)
158925CopyLoc[1](Arg1: u64)
159026CopyLoc[7](loc3: u64)
159429MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
159631MoveLoc[3](Arg3: &Clock)
159833MoveLoc[9](loc5: vector<u64>)
159934MoveLoc[5](loc1: vector<u64>)
160236CopyLoc[1](Arg1: u64)
160337CopyLoc[8](loc4: u64)
160740MoveLoc[8](loc4: u64)
160841StLoc[1](Arg1: u64)
161042CopyLoc[2](Arg2: u64)
161143CopyLoc[7](loc3: u64)
161546MoveLoc[7](loc3: u64)
161647StLoc[2](Arg2: u64)
161848CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
161949ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
162050MoveLoc[1](Arg1: u64)
162151Call critbit::find_closest_key<TickLevel>(&CritbitTree<TickLevel>, u64): u64
162252StLoc[1](Arg1: u64)
162353CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
162454ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
162555MoveLoc[2](Arg2: u64)
162656Call critbit::find_closest_key<TickLevel>(&CritbitTree<TickLevel>, u64): u64
162757StLoc[2](Arg2: u64)
162958CopyLoc[1](Arg1: u64)
163059CopyLoc[2](Arg2: u64)
163462CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
163563ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
163664CopyLoc[1](Arg1: u64)
163765CopyLoc[3](Arg3: &Clock)
163866Call clock::timestamp_ms(&Clock): u64
163967Call get_level2_book_status(&CritbitTree<TickLevel>, u64, u64): u64
164068StLoc[4](loc0: u64)
164169CopyLoc[4](loc0: u64)
164673MutBorrowLoc[9](loc5: vector<u64>)
164774CopyLoc[1](Arg1: u64)
164976MutBorrowLoc[5](loc1: vector<u64>)
165077MoveLoc[4](loc0: u64)
165379CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
165480ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
165581MoveLoc[1](Arg1: u64)
165682Call critbit::next_leaf<TickLevel>(&CritbitTree<TickLevel>, u64): u64 * u64
165884StLoc[6](loc2: u64)
165985CopyLoc[6](loc2: u64)
166489MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
166691MoveLoc[3](Arg3: &Clock)
167094MoveLoc[6](loc2: u64)
167195StLoc[1](Arg1: u64)
167497MoveLoc[9](loc5: vector<u64>)
167598MoveLoc[5](loc1: vector<u64>)
1679public get_level2_book_status_ask_side<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: u64, Arg2: u64, Arg3: &Clock): vector<u64> * vector<u64> {
1681L5: loc1: vector<u64>
1685L9: loc5: vector<u64>
16870LdConst[9](vector<u64>: 00)
16881StLoc[9](loc5: vector<u64>)
16892LdConst[9](vector<u64>: 00)
16903StLoc[5](loc1: vector<u64>)
16914CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
16925ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
16936Call critbit::is_empty<TickLevel>(&CritbitTree<TickLevel>): bool
16968MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
169810MoveLoc[3](Arg3: &Clock)
170012MoveLoc[9](loc5: vector<u64>)
170113MoveLoc[5](loc1: vector<u64>)
170415CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
170516ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
170617Call critbit::min_leaf<TickLevel>(&CritbitTree<TickLevel>): u64 * u64
170819StLoc[8](loc4: u64)
170920CopyLoc[2](Arg2: u64)
171021CopyLoc[8](loc4: u64)
171424MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
171626MoveLoc[3](Arg3: &Clock)
171828MoveLoc[9](loc5: vector<u64>)
171929MoveLoc[5](loc1: vector<u64>)
172231CopyLoc[1](Arg1: u64)
172332CopyLoc[8](loc4: u64)
172735MoveLoc[8](loc4: u64)
172836StLoc[1](Arg1: u64)
173037CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
173138ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
173239Call critbit::max_leaf<TickLevel>(&CritbitTree<TickLevel>): u64 * u64
173441StLoc[7](loc3: u64)
173542CopyLoc[2](Arg2: u64)
173643CopyLoc[7](loc3: u64)
174046MoveLoc[7](loc3: u64)
174147StLoc[2](Arg2: u64)
174348CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
174449ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
174550MoveLoc[1](Arg1: u64)
174651Call critbit::find_closest_key<TickLevel>(&CritbitTree<TickLevel>, u64): u64
174752StLoc[1](Arg1: u64)
174853CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
174954ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
175055MoveLoc[2](Arg2: u64)
175156Call critbit::find_closest_key<TickLevel>(&CritbitTree<TickLevel>, u64): u64
175257StLoc[2](Arg2: u64)
175458CopyLoc[1](Arg1: u64)
175559CopyLoc[2](Arg2: u64)
175962CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
176063ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
176164CopyLoc[1](Arg1: u64)
176265CopyLoc[3](Arg3: &Clock)
176366Call clock::timestamp_ms(&Clock): u64
176467Call get_level2_book_status(&CritbitTree<TickLevel>, u64, u64): u64
176568StLoc[4](loc0: u64)
176669CopyLoc[4](loc0: u64)
177173MutBorrowLoc[9](loc5: vector<u64>)
177274CopyLoc[1](Arg1: u64)
177476MutBorrowLoc[5](loc1: vector<u64>)
177577MoveLoc[4](loc0: u64)
177879CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
177980ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
178081MoveLoc[1](Arg1: u64)
178182Call critbit::next_leaf<TickLevel>(&CritbitTree<TickLevel>, u64): u64 * u64
178384StLoc[6](loc2: u64)
178485CopyLoc[6](loc2: u64)
178989MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
179191MoveLoc[3](Arg3: &Clock)
179594MoveLoc[6](loc2: u64)
179695StLoc[1](Arg1: u64)
179997MoveLoc[9](loc5: vector<u64>)
180098MoveLoc[5](loc1: vector<u64>)
1804get_level2_book_status(Arg0: &CritbitTree<TickLevel>, Arg1: u64, Arg2: u64): u64 {
1807L5: loc2: &Option<u64>
1808L6: loc3: &LinkedTable<u64, Order>
18100MoveLoc[0](Arg0: &CritbitTree<TickLevel>)
18111MoveLoc[1](Arg1: u64)
18122Call critbit::borrow_leaf_by_key<TickLevel>(&CritbitTree<TickLevel>, u64): &TickLevel
18133ImmBorrowField[15](TickLevel.open_orders: LinkedTable<u64, Order>)
18144StLoc[6](loc3: &LinkedTable<u64, Order>)
18177CopyLoc[6](loc3: &LinkedTable<u64, Order>)
18188Call linked_table::front<u64, Order>(&LinkedTable<u64, Order>): &Option<u64>
18199StLoc[5](loc2: &Option<u64>)
182110CopyLoc[5](loc2: &Option<u64>)
182211Call option::is_none<u64>(&Option<u64>): bool
182815CopyLoc[6](loc3: &LinkedTable<u64, Order>)
182916CopyLoc[5](loc2: &Option<u64>)
183017Call option::borrow<u64>(&Option<u64>): &u64
183219Call linked_table::borrow<u64, Order>(&LinkedTable<u64, Order>, u64): &Order
183320StLoc[4](loc1: &Order)
183421CopyLoc[4](loc1: &Order)
183522ImmBorrowField[16](Order.expire_timestamp: u64)
183724CopyLoc[2](Arg2: u64)
184127MoveLoc[3](loc0: u64)
184228MoveLoc[4](loc1: &Order)
184329ImmBorrowField[11](Order.quantity: u64)
184632StLoc[3](loc0: u64)
184934MoveLoc[4](loc1: &Order)
185236CopyLoc[6](loc3: &LinkedTable<u64, Order>)
185337MoveLoc[5](loc2: &Option<u64>)
185438Call option::borrow<u64>(&Option<u64>): &u64
185640Call linked_table::next<u64, Order>(&LinkedTable<u64, Order>, u64): &Option<u64>
185741StLoc[5](loc2: &Option<u64>)
186043MoveLoc[6](loc3: &LinkedTable<u64, Order>)
186245MoveLoc[5](loc2: &Option<u64>)
186447MoveLoc[3](loc0: u64)
1868public get_order_status<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>, Arg1: u64, Arg2: &AccountCap): &Order {
1869L3: loc0: &CritbitTree<TickLevel>
1872L6: loc3: &LinkedTable<u64, u64>
18740MoveLoc[2](Arg2: &AccountCap)
18751Call custodian_v2::account_owner(&AccountCap): address
18762StLoc[5](loc2: address)
18773CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
18784ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
18795CopyLoc[5](loc2: address)
18806Call table::contains<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): bool
18859MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
188711LdConst[5](u64: 12)
189013CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
189114ImmBorrowFieldGeneric[0](Pool.usr_open_orders: Table<address, LinkedTable<u64, u64>>)
189215MoveLoc[5](loc2: address)
189316Call table::borrow<address, LinkedTable<u64, u64>>(&Table<address, LinkedTable<u64, u64>>, address): &LinkedTable<u64, u64>
189417StLoc[6](loc3: &LinkedTable<u64, u64>)
189518CopyLoc[6](loc3: &LinkedTable<u64, u64>)
189619CopyLoc[1](Arg1: u64)
189720Call linked_table::contains<u64, u64>(&LinkedTable<u64, u64>, u64): bool
190223MoveLoc[6](loc3: &LinkedTable<u64, u64>)
190425MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
190929MoveLoc[6](loc3: &LinkedTable<u64, u64>)
191030CopyLoc[1](Arg1: u64)
191131Call linked_table::borrow<u64, u64>(&LinkedTable<u64, u64>, u64): &u64
191333StLoc[4](loc1: u64)
191434CopyLoc[1](Arg1: u64)
191535LdConst[8](u64: 9223..)
191938MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
192039ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
192140StLoc[3](loc0: &CritbitTree<TickLevel>)
192442MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
192543ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
192644StLoc[3](loc0: &CritbitTree<TickLevel>)
192845MoveLoc[3](loc0: &CritbitTree<TickLevel>)
192946MoveLoc[4](loc1: u64)
193047Call critbit::borrow_leaf_by_key<TickLevel>(&CritbitTree<TickLevel>, u64): &TickLevel
193148ImmBorrowField[15](TickLevel.open_orders: LinkedTable<u64, Order>)
193249MoveLoc[1](Arg1: u64)
193350Call linked_table::borrow<u64, Order>(&LinkedTable<u64, Order>, u64): &Order
1937public matched_order_metadata_info<Ty0, Ty1>(Arg0: &MatchedOrderMetadata<Ty0, Ty1>): ID * u64 * bool * address * address * u64 * u64 * u64 * u64 {
1943public asks<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): &CritbitTree<TickLevel> {
19450MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
19461ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
1950public bids<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): &CritbitTree<TickLevel> {
19520MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
19531ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
1957public tick_size<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
19590MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
19601ImmBorrowFieldGeneric[7](Pool.tick_size: u64)
1965public maker_rebate_rate<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
19670MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
19681ImmBorrowFieldGeneric[8](Pool.maker_rebate_rate: u64)
1973public taker_fee_rate<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
19750MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
19761ImmBorrowFieldGeneric[9](Pool.taker_fee_rate: u64)
1981public pool_size<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
19830CopyLoc[0](Arg0: &Pool<Ty0, Ty1>)
19841ImmBorrowFieldGeneric[6](Pool.asks: CritbitTree<TickLevel>)
19852Call critbit::size<TickLevel>(&CritbitTree<TickLevel>): u64
19863MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
19874ImmBorrowFieldGeneric[5](Pool.bids: CritbitTree<TickLevel>)
19885Call critbit::size<TickLevel>(&CritbitTree<TickLevel>): u64
1993public open_orders(Arg0: &TickLevel): &LinkedTable<u64, Order> {
19950MoveLoc[0](Arg0: &TickLevel)
19961ImmBorrowField[15](TickLevel.open_orders: LinkedTable<u64, Order>)
2000public order_id(Arg0: &Order): u64 {
20020MoveLoc[0](Arg0: &Order)
20031ImmBorrowField[7](Order.order_id: u64)
2008public tick_level(Arg0: &Order): u64 {
20100MoveLoc[0](Arg0: &Order)
20111ImmBorrowField[12](Order.price: u64)
2016public original_quantity(Arg0: &Order): u64 {
20180MoveLoc[0](Arg0: &Order)
20191ImmBorrowField[10](Order.original_quantity: u64)
2024public quantity(Arg0: &Order): u64 {
20260MoveLoc[0](Arg0: &Order)
20271ImmBorrowField[11](Order.quantity: u64)
2032public is_bid(Arg0: &Order): bool {
20340MoveLoc[0](Arg0: &Order)
20351ImmBorrowField[8](Order.is_bid: bool)
2040public owner(Arg0: &Order): address {
20420MoveLoc[0](Arg0: &Order)
20431ImmBorrowField[9](Order.owner: address)
2048public expire_timestamp(Arg0: &Order): u64 {
20500MoveLoc[0](Arg0: &Order)
20511ImmBorrowField[16](Order.expire_timestamp: u64)
2056public quote_asset_trading_fees_value<Ty0, Ty1>(Arg0: &Pool<Ty0, Ty1>): u64 {
20580MoveLoc[0](Arg0: &Pool<Ty0, Ty1>)
20591ImmBorrowFieldGeneric[2](Pool.quote_asset_trading_fees: Balance<Ty1>)
20602Call balance::value<Ty1>(&Balance<Ty1>): u64
2064public(friend) clone_order(Arg0: &Order): Order {
20660CopyLoc[0](Arg0: &Order)
20671ImmBorrowField[7](Order.order_id: u64)
20693CopyLoc[0](Arg0: &Order)
20704ImmBorrowField[6](Order.client_order_id: u64)
20726CopyLoc[0](Arg0: &Order)
20737ImmBorrowField[12](Order.price: u64)
20759CopyLoc[0](Arg0: &Order)
207610ImmBorrowField[10](Order.original_quantity: u64)
207812CopyLoc[0](Arg0: &Order)
207913ImmBorrowField[11](Order.quantity: u64)
208115CopyLoc[0](Arg0: &Order)
208216ImmBorrowField[8](Order.is_bid: bool)
208418CopyLoc[0](Arg0: &Order)
208519ImmBorrowField[9](Order.owner: address)
208721CopyLoc[0](Arg0: &Order)
208822ImmBorrowField[16](Order.expire_timestamp: u64)
209024MoveLoc[0](Arg0: &Order)
209125ImmBorrowField[17](Order.self_matching_prevention: u8)
2106 8 => u64: 9223372036854775808
2107 9 => vector<u64>: 00