order_info
Module0xcaf6…ec3a
- Move path
- 0x2c8d…4809::order_info
- Functions
- 4422 public, 0 entry
- Structs
- 4
order_info
Bytecode1479 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809.order_info {
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::balances;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::constants;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::deep_price;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::fill;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::math;
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::order;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
struct OrderInfo has copy, drop, store {
pool_id: ID,
order_id: u128,
balance_manager_id: ID,
client_order_id: u64,
trader: address,
order_type: u8,
self_matching_option: u8,
price: u64,
is_bid: bool,
original_quantity: u64,
order_deep_price: OrderDeepPrice,
expire_timestamp: u64,
executed_quantity: u64,
cumulative_quote_quantity: u64,
fills: vector<Fill>,
fee_is_deep: bool,
paid_fees: u64,
maker_fees: u64,
epoch: u64,
status: u8,
market_order: bool,
fill_limit_reached: bool,
order_inserted: bool,
timestamp: u64
}
struct OrderFilled has copy, drop, store {
pool_id: ID,
maker_order_id: u128,
taker_order_id: u128,
maker_client_order_id: u64,
taker_client_order_id: u64,
price: u64,
taker_is_bid: bool,
taker_fee: u64,
taker_fee_is_deep: bool,
maker_fee: u64,
maker_fee_is_deep: bool,
base_quantity: u64,
quote_quantity: u64,
maker_balance_manager_id: ID,
taker_balance_manager_id: ID,
timestamp: u64
}
struct OrderPlaced has copy, drop, store {
balance_manager_id: ID,
pool_id: ID,
order_id: u128,
client_order_id: u64,
trader: address,
price: u64,
is_bid: bool,
placed_quantity: u64,
expire_timestamp: u64,
timestamp: u64
}
struct OrderExpired has copy, drop, store {
balance_manager_id: ID,
pool_id: ID,
order_id: u128,
client_order_id: u64,
trader: address,
price: u64,
is_bid: bool,
original_quantity: u64,
base_asset_quantity_canceled: u64,
timestamp: u64
}
struct OrderFullyFilled has copy, drop, store {
pool_id: ID,
order_id: u128,
client_order_id: u64,
balance_manager_id: ID,
original_quantity: u64,
is_bid: bool,
timestamp: u64
}
public pool_id(Arg0: &OrderInfo): ID {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[0](OrderInfo.pool_id: ID)
2ReadRef
3Ret
}
public order_id(Arg0: &OrderInfo): u128 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[1](OrderInfo.order_id: u128)
2ReadRef
3Ret
}
public balance_manager_id(Arg0: &OrderInfo): ID {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[2](OrderInfo.balance_manager_id: ID)
2ReadRef
3Ret
}
public client_order_id(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[3](OrderInfo.client_order_id: u64)
2ReadRef
3Ret
}
public trader(Arg0: &OrderInfo): address {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[4](OrderInfo.trader: address)
2ReadRef
3Ret
}
public order_type(Arg0: &OrderInfo): u8 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[5](OrderInfo.order_type: u8)
2ReadRef
3Ret
}
public self_matching_option(Arg0: &OrderInfo): u8 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[6](OrderInfo.self_matching_option: u8)
2ReadRef
3Ret
}
public price(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[7](OrderInfo.price: u64)
2ReadRef
3Ret
}
public is_bid(Arg0: &OrderInfo): bool {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[8](OrderInfo.is_bid: bool)
2ReadRef
3Ret
}
public original_quantity(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[9](OrderInfo.original_quantity: u64)
2ReadRef
3Ret
}
public order_deep_price(Arg0: &OrderInfo): OrderDeepPrice {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[10](OrderInfo.order_deep_price: OrderDeepPrice)
2ReadRef
3Ret
}
public expire_timestamp(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[11](OrderInfo.expire_timestamp: u64)
2ReadRef
3Ret
}
public executed_quantity(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[12](OrderInfo.executed_quantity: u64)
2ReadRef
3Ret
}
public cumulative_quote_quantity(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[13](OrderInfo.cumulative_quote_quantity: u64)
2ReadRef
3Ret
}
public fills(Arg0: &OrderInfo): vector<Fill> {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[14](OrderInfo.fills: vector<Fill>)
2ReadRef
3Ret
}
public fee_is_deep(Arg0: &OrderInfo): bool {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[15](OrderInfo.fee_is_deep: bool)
2ReadRef
3Ret
}
public paid_fees(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[16](OrderInfo.paid_fees: u64)
2ReadRef
3Ret
}
public maker_fees(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[17](OrderInfo.maker_fees: u64)
2ReadRef
3Ret
}
public epoch(Arg0: &OrderInfo): u64 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[18](OrderInfo.epoch: u64)
2ReadRef
3Ret
}
public status(Arg0: &OrderInfo): u8 {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[19](OrderInfo.status: u8)
2ReadRef
3Ret
}
public fill_limit_reached(Arg0: &OrderInfo): bool {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[20](OrderInfo.fill_limit_reached: bool)
2ReadRef
3Ret
}
public order_inserted(Arg0: &OrderInfo): bool {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[21](OrderInfo.order_inserted: bool)
2ReadRef
3Ret
}
public(friend) new(Arg0: ID, Arg1: ID, Arg2: u64, Arg3: address, Arg4: u8, Arg5: u8, Arg6: u64, Arg7: u64, Arg8: bool, Arg9: bool, Arg10: u64, Arg11: u64, Arg12: OrderDeepPrice, Arg13: bool, Arg14: u64): OrderInfo {
L15: loc0: ID
L16: loc1: u64
L17: loc2: OrderDeepPrice
L18: loc3: u64
L19: loc4: bool
L20: loc5: u64
L21: loc6: u8
L22: loc7: bool
L23: loc8: u64
L24: loc9: ID
L25: loc10: u64
L26: loc11: address
L27: loc12: u8
L28: loc13: u8
L29: loc14: u64
L30: loc15: bool
B0:
0MoveLoc[0](Arg0: ID)
1StLoc[15](loc0: ID)
2MoveLoc[1](Arg1: ID)
3StLoc[24](loc9: ID)
4MoveLoc[2](Arg2: u64)
5StLoc[25](loc10: u64)
6MoveLoc[3](Arg3: address)
7StLoc[26](loc11: address)
8MoveLoc[4](Arg4: u8)
9StLoc[27](loc12: u8)
10MoveLoc[5](Arg5: u8)
11StLoc[28](loc13: u8)
12MoveLoc[6](Arg6: u64)
13StLoc[29](loc14: u64)
14MoveLoc[8](Arg8: bool)
15StLoc[30](loc15: bool)
16MoveLoc[7](Arg7: u64)
17StLoc[16](loc1: u64)
18MoveLoc[12](Arg12: OrderDeepPrice)
19StLoc[17](loc2: OrderDeepPrice)
20MoveLoc[11](Arg11: u64)
21StLoc[18](loc3: u64)
22MoveLoc[9](Arg9: bool)
23StLoc[19](loc4: bool)
24MoveLoc[10](Arg10: u64)
25StLoc[20](loc5: u64)
26Call constants::live(): u8
27StLoc[21](loc6: u8)
28MoveLoc[13](Arg13: bool)
29StLoc[22](loc7: bool)
30MoveLoc[14](Arg14: u64)
31StLoc[23](loc8: u64)
32MoveLoc[15](loc0: ID)
33LdU128(0)
34MoveLoc[24](loc9: ID)
35MoveLoc[25](loc10: u64)
36MoveLoc[26](loc11: address)
37MoveLoc[27](loc12: u8)
38MoveLoc[28](loc13: u8)
39MoveLoc[29](loc14: u64)
40MoveLoc[30](loc15: bool)
41MoveLoc[16](loc1: u64)
42MoveLoc[17](loc2: OrderDeepPrice)
43MoveLoc[18](loc3: u64)
44LdU64(0)
45LdU64(0)
46VecPack(30, 0)
47MoveLoc[19](loc4: bool)
48LdU64(0)
49LdU64(0)
50MoveLoc[20](loc5: u64)
51MoveLoc[21](loc6: u8)
52MoveLoc[22](loc7: bool)
53LdFalse
54LdFalse
55MoveLoc[23](loc8: u64)
56Pack[0](OrderInfo)
57Ret
}
public(friend) market_order(Arg0: &OrderInfo): bool {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[22](OrderInfo.market_order: bool)
2ReadRef
3Ret
}
public(friend) set_order_id(Arg0: &mut OrderInfo, Arg1: u128) {
B0:
0MoveLoc[1](Arg1: u128)
1MoveLoc[0](Arg0: &mut OrderInfo)
2MutBorrowField[1](OrderInfo.order_id: u128)
3WriteRef
4Ret
}
public(friend) set_paid_fees(Arg0: &mut OrderInfo, Arg1: u64) {
B0:
0MoveLoc[1](Arg1: u64)
1MoveLoc[0](Arg0: &mut OrderInfo)
2MutBorrowField[16](OrderInfo.paid_fees: u64)
3WriteRef
4Ret
}
public(friend) add_fill(Arg0: &mut OrderInfo, Arg1: Fill) {
B0:
0MoveLoc[0](Arg0: &mut OrderInfo)
1MutBorrowField[14](OrderInfo.fills: vector<Fill>)
2MoveLoc[1](Arg1: Fill)
3VecPushBack(30)
4Ret
}
public(friend) fills_ref(Arg0: &mut OrderInfo): &mut vector<Fill> {
B0:
0MoveLoc[0](Arg0: &mut OrderInfo)
1MutBorrowField[14](OrderInfo.fills: vector<Fill>)
2Ret
}
public(friend) paid_fees_balances(Arg0: &OrderInfo): Balances {
L1: loc0: Balances
L2: loc1: Balances
B0:
0CopyLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[15](OrderInfo.fee_is_deep: bool)
2ReadRef
3BrFalse(12)
B1:
4LdU64(0)
5LdU64(0)
6MoveLoc[0](Arg0: &OrderInfo)
7ImmBorrowField[16](OrderInfo.paid_fees: u64)
8ReadRef
9Call balances::new(u64, u64, u64): Balances
10StLoc[2](loc1: Balances)
11Branch(33)
B2:
12CopyLoc[0](Arg0: &OrderInfo)
13ImmBorrowField[8](OrderInfo.is_bid: bool)
14ReadRef
15BrFalse(24)
B3:
16LdU64(0)
17MoveLoc[0](Arg0: &OrderInfo)
18ImmBorrowField[16](OrderInfo.paid_fees: u64)
19ReadRef
20LdU64(0)
21Call balances::new(u64, u64, u64): Balances
22StLoc[1](loc0: Balances)
23Branch(31)
B4:
24MoveLoc[0](Arg0: &OrderInfo)
25ImmBorrowField[16](OrderInfo.paid_fees: u64)
26ReadRef
27LdU64(0)
28LdU64(0)
29Call balances::new(u64, u64, u64): Balances
30StLoc[1](loc0: Balances)
B5:
31MoveLoc[1](loc0: Balances)
32StLoc[2](loc1: Balances)
B6:
33MoveLoc[2](loc1: Balances)
34Ret
}
public(friend) calculate_partial_fill_balances(Arg0: &mut OrderInfo, Arg1: u64, Arg2: u64): Balances * Balances {
L3: loc0: u64
L4: loc1: &mut Fill
L5: loc2: Balances
L6: loc3: &mut vector<Fill>
L7: loc4: u64
L8: loc5: Balances
L9: loc6: u64
L10: loc7: Balances
L11: loc8: u64
L12: loc9: u64
L13: loc10: Balances
L14: loc11: Balances
B0:
0CopyLoc[0](Arg0: &mut OrderInfo)
1ImmBorrowField[10](OrderInfo.order_deep_price: OrderDeepPrice)
2CopyLoc[0](Arg0: &mut OrderInfo)
3ImmBorrowField[12](OrderInfo.executed_quantity: u64)
4ReadRef
5CopyLoc[0](Arg0: &mut OrderInfo)
6ImmBorrowField[13](OrderInfo.cumulative_quote_quantity: u64)
7ReadRef
8CopyLoc[0](Arg0: &mut OrderInfo)
9ImmBorrowField[8](OrderInfo.is_bid: bool)
10ReadRef
11Call deep_price::fee_quantity(&OrderDeepPrice, u64, u64, bool): Balances
12StLoc[14](loc11: Balances)
13MutBorrowLoc[14](loc11: Balances)
14CopyLoc[1](Arg1: u64)
15Call balances::mul(&mut Balances, u64)
16ImmBorrowLoc[14](loc11: Balances)
17Call balances::non_zero_value(&Balances): u64
18CopyLoc[0](Arg0: &mut OrderInfo)
19MutBorrowField[16](OrderInfo.paid_fees: u64)
20WriteRef
21CopyLoc[0](Arg0: &mut OrderInfo)
22MutBorrowField[14](OrderInfo.fills: vector<Fill>)
23StLoc[6](loc3: &mut vector<Fill>)
24LdU64(0)
25StLoc[7](loc4: u64)
26CopyLoc[6](loc3: &mut vector<Fill>)
27FreezeRef
28VecLen(30)
29StLoc[9](loc6: u64)
B1:
30CopyLoc[7](loc4: u64)
31CopyLoc[9](loc6: u64)
32Lt
33BrFalse(75)
B2:
34Branch(35)
B3:
35CopyLoc[6](loc3: &mut vector<Fill>)
36CopyLoc[7](loc4: u64)
37VecMutBorrow(30)
38StLoc[4](loc1: &mut Fill)
39CopyLoc[4](loc1: &mut Fill)
40FreezeRef
41Call fill::expired(&Fill): bool
42Not
43BrFalse(68)
B4:
44CopyLoc[4](loc1: &mut Fill)
45FreezeRef
46Call fill::base_quantity(&Fill): u64
47StLoc[3](loc0: u64)
48CopyLoc[4](loc1: &mut Fill)
49FreezeRef
50Call fill::quote_quantity(&Fill): u64
51StLoc[11](loc8: u64)
52CopyLoc[0](Arg0: &mut OrderInfo)
53ImmBorrowField[10](OrderInfo.order_deep_price: OrderDeepPrice)
54MoveLoc[3](loc0: u64)
55MoveLoc[11](loc8: u64)
56CopyLoc[0](Arg0: &mut OrderInfo)
57ImmBorrowField[8](OrderInfo.is_bid: bool)
58ReadRef
59Call deep_price::fee_quantity(&OrderDeepPrice, u64, u64, bool): Balances
60StLoc[5](loc2: Balances)
61MutBorrowLoc[5](loc2: Balances)
62CopyLoc[1](Arg1: u64)
63Call balances::mul(&mut Balances, u64)
64MoveLoc[4](loc1: &mut Fill)
65ImmBorrowLoc[5](loc2: Balances)
66Call fill::set_fill_taker_fee(&mut Fill, &Balances)
67Branch(70)
B5:
68MoveLoc[4](loc1: &mut Fill)
69Pop
B6:
70MoveLoc[7](loc4: u64)
71LdU64(1)
72Add
73StLoc[7](loc4: u64)
74Branch(30)
B7:
75MoveLoc[6](loc3: &mut vector<Fill>)
76Pop
77LdU64(0)
78LdU64(0)
79LdU64(0)
80Call balances::new(u64, u64, u64): Balances
81StLoc[13](loc10: Balances)
82LdU64(0)
83LdU64(0)
84LdU64(0)
85Call balances::new(u64, u64, u64): Balances
86StLoc[10](loc7: Balances)
87MutBorrowLoc[10](loc7: Balances)
88MoveLoc[14](loc11: Balances)
89Call balances::add_balances(&mut Balances, Balances)
90CopyLoc[0](Arg0: &mut OrderInfo)
91ImmBorrowField[8](OrderInfo.is_bid: bool)
92ReadRef
93BrFalse(105)
B8:
94MutBorrowLoc[13](loc10: Balances)
95CopyLoc[0](Arg0: &mut OrderInfo)
96ImmBorrowField[12](OrderInfo.executed_quantity: u64)
97ReadRef
98Call balances::add_base(&mut Balances, u64)
99MutBorrowLoc[10](loc7: Balances)
100CopyLoc[0](Arg0: &mut OrderInfo)
101ImmBorrowField[13](OrderInfo.cumulative_quote_quantity: u64)
102ReadRef
103Call balances::add_quote(&mut Balances, u64)
104Branch(115)
B9:
105MutBorrowLoc[13](loc10: Balances)
106CopyLoc[0](Arg0: &mut OrderInfo)
107ImmBorrowField[13](OrderInfo.cumulative_quote_quantity: u64)
108ReadRef
109Call balances::add_quote(&mut Balances, u64)
110MutBorrowLoc[10](loc7: Balances)
111CopyLoc[0](Arg0: &mut OrderInfo)
112ImmBorrowField[12](OrderInfo.executed_quantity: u64)
113ReadRef
114Call balances::add_base(&mut Balances, u64)
B10:
115CopyLoc[0](Arg0: &mut OrderInfo)
116FreezeRef
117Call remaining_quantity(&OrderInfo): u64
118StLoc[12](loc9: u64)
119CopyLoc[0](Arg0: &mut OrderInfo)
120FreezeRef
121Call order_inserted(&OrderInfo): bool
122BrFalse(165)
B11:
123CopyLoc[0](Arg0: &mut OrderInfo)
124ImmBorrowField[10](OrderInfo.order_deep_price: OrderDeepPrice)
125CopyLoc[12](loc9: u64)
126CopyLoc[12](loc9: u64)
127CopyLoc[0](Arg0: &mut OrderInfo)
128FreezeRef
129Call price(&OrderInfo): u64
130Call math::mul(u64, u64): u64
131CopyLoc[0](Arg0: &mut OrderInfo)
132ImmBorrowField[8](OrderInfo.is_bid: bool)
133ReadRef
134Call deep_price::fee_quantity(&OrderDeepPrice, u64, u64, bool): Balances
135StLoc[8](loc5: Balances)
136MutBorrowLoc[8](loc5: Balances)
137MoveLoc[2](Arg2: u64)
138Call balances::mul(&mut Balances, u64)
139ImmBorrowLoc[8](loc5: Balances)
140Call balances::non_zero_value(&Balances): u64
141CopyLoc[0](Arg0: &mut OrderInfo)
142MutBorrowField[17](OrderInfo.maker_fees: u64)
143WriteRef
144MutBorrowLoc[10](loc7: Balances)
145MoveLoc[8](loc5: Balances)
146Call balances::add_balances(&mut Balances, Balances)
147CopyLoc[0](Arg0: &mut OrderInfo)
148ImmBorrowField[8](OrderInfo.is_bid: bool)
149ReadRef
150BrFalse(159)
B12:
151MutBorrowLoc[10](loc7: Balances)
152MoveLoc[12](loc9: u64)
153MoveLoc[0](Arg0: &mut OrderInfo)
154FreezeRef
155Call price(&OrderInfo): u64
156Call math::mul(u64, u64): u64
157Call balances::add_quote(&mut Balances, u64)
158Branch(167)
B13:
159MoveLoc[0](Arg0: &mut OrderInfo)
160Pop
161MutBorrowLoc[10](loc7: Balances)
162MoveLoc[12](loc9: u64)
163Call balances::add_base(&mut Balances, u64)
164Branch(167)
B14:
165MoveLoc[0](Arg0: &mut OrderInfo)
166Pop
B15:
167MoveLoc[13](loc10: Balances)
168MoveLoc[10](loc7: Balances)
169Ret
}
public(friend) to_order(Arg0: &OrderInfo): Order {
B0:
0CopyLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[1](OrderInfo.order_id: u128)
2ReadRef
3CopyLoc[0](Arg0: &OrderInfo)
4ImmBorrowField[2](OrderInfo.balance_manager_id: ID)
5ReadRef
6CopyLoc[0](Arg0: &OrderInfo)
7ImmBorrowField[3](OrderInfo.client_order_id: u64)
8ReadRef
9CopyLoc[0](Arg0: &OrderInfo)
10ImmBorrowField[9](OrderInfo.original_quantity: u64)
11ReadRef
12CopyLoc[0](Arg0: &OrderInfo)
13ImmBorrowField[12](OrderInfo.executed_quantity: u64)
14ReadRef
15CopyLoc[0](Arg0: &OrderInfo)
16ImmBorrowField[15](OrderInfo.fee_is_deep: bool)
17ReadRef
18CopyLoc[0](Arg0: &OrderInfo)
19ImmBorrowField[10](OrderInfo.order_deep_price: OrderDeepPrice)
20ReadRef
21CopyLoc[0](Arg0: &OrderInfo)
22ImmBorrowField[18](OrderInfo.epoch: u64)
23ReadRef
24CopyLoc[0](Arg0: &OrderInfo)
25ImmBorrowField[19](OrderInfo.status: u8)
26ReadRef
27MoveLoc[0](Arg0: &OrderInfo)
28ImmBorrowField[11](OrderInfo.expire_timestamp: u64)
29ReadRef
30Call order::new(u128, ID, u64, u64, u64, bool, OrderDeepPrice, u64, u8, u64): Order
31Ret
}
public(friend) validate_inputs(Arg0: &OrderInfo, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64) {
L5: loc0: bool
L6: loc1: bool
B0:
0CopyLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[9](OrderInfo.original_quantity: u64)
2ReadRef
3MoveLoc[2](Arg2: u64)
4Ge
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &OrderInfo)
8Pop
9LdConst[1](u64: 1)
10Abort
B3:
11CopyLoc[0](Arg0: &OrderInfo)
12ImmBorrowField[9](OrderInfo.original_quantity: u64)
13ReadRef
14MoveLoc[3](Arg3: u64)
15Mod
16LdU64(0)
17Eq
18BrFalse(20)
B4:
19Branch(24)
B5:
20MoveLoc[0](Arg0: &OrderInfo)
21Pop
22LdConst[2](u64: 2)
23Abort
B6:
24MoveLoc[4](Arg4: u64)
25CopyLoc[0](Arg0: &OrderInfo)
26ImmBorrowField[11](OrderInfo.expire_timestamp: u64)
27ReadRef
28Le
29BrFalse(31)
B7:
30Branch(35)
B8:
31MoveLoc[0](Arg0: &OrderInfo)
32Pop
33LdConst[3](u64: 3)
34Abort
B9:
35CopyLoc[0](Arg0: &OrderInfo)
36ImmBorrowField[5](OrderInfo.order_type: u8)
37ReadRef
38Call constants::no_restriction(): u8
39Ge
40BrFalse(48)
B10:
41CopyLoc[0](Arg0: &OrderInfo)
42ImmBorrowField[5](OrderInfo.order_type: u8)
43ReadRef
44Call constants::max_restriction(): u8
45Le
46StLoc[5](loc0: bool)
47Branch(50)
B11:
48LdFalse
49StLoc[5](loc0: bool)
B12:
50MoveLoc[5](loc0: bool)
51BrFalse(53)
B13:
52Branch(57)
B14:
53MoveLoc[0](Arg0: &OrderInfo)
54Pop
55LdConst[4](u64: 4)
56Abort
B15:
57CopyLoc[0](Arg0: &OrderInfo)
58ImmBorrowField[22](OrderInfo.market_order: bool)
59ReadRef
60BrFalse(71)
B16:
61MoveLoc[0](Arg0: &OrderInfo)
62ImmBorrowField[5](OrderInfo.order_type: u8)
63ReadRef
64Call constants::post_only(): u8
65Neq
66BrFalse(68)
B17:
67Branch(70)
B18:
68LdConst[7](u64: 7)
69Abort
B19:
70Ret
B20:
71CopyLoc[0](Arg0: &OrderInfo)
72ImmBorrowField[7](OrderInfo.price: u64)
73ReadRef
74Call constants::min_price(): u64
75Ge
76BrFalse(84)
B21:
77CopyLoc[0](Arg0: &OrderInfo)
78ImmBorrowField[7](OrderInfo.price: u64)
79ReadRef
80Call constants::max_price(): u64
81Le
82StLoc[6](loc1: bool)
83Branch(86)
B22:
84LdFalse
85StLoc[6](loc1: bool)
B23:
86MoveLoc[6](loc1: bool)
87BrFalse(89)
B24:
88Branch(93)
B25:
89MoveLoc[0](Arg0: &OrderInfo)
90Pop
91LdConst[0](u64: 0)
92Abort
B26:
93MoveLoc[0](Arg0: &OrderInfo)
94ImmBorrowField[7](OrderInfo.price: u64)
95ReadRef
96MoveLoc[1](Arg1: u64)
97Mod
98LdU64(0)
99Eq
100BrFalse(102)
B27:
101Branch(104)
B28:
102LdConst[0](u64: 0)
103Abort
B29:
104Ret
}
public(friend) assert_execution(Arg0: &mut OrderInfo): bool {
B0:
0CopyLoc[0](Arg0: &mut OrderInfo)
1ImmBorrowField[5](OrderInfo.order_type: u8)
2ReadRef
3Call constants::post_only(): u8
4Eq
5BrFalse(17)
B1:
6CopyLoc[0](Arg0: &mut OrderInfo)
7ImmBorrowField[12](OrderInfo.executed_quantity: u64)
8ReadRef
9LdU64(0)
10Eq
11BrFalse(13)
B2:
12Branch(17)
B3:
13MoveLoc[0](Arg0: &mut OrderInfo)
14Pop
15LdConst[5](u64: 5)
16Abort
B4:
17CopyLoc[0](Arg0: &mut OrderInfo)
18ImmBorrowField[5](OrderInfo.order_type: u8)
19ReadRef
20Call constants::fill_or_kill(): u8
21Eq
22BrFalse(36)
B5:
23CopyLoc[0](Arg0: &mut OrderInfo)
24ImmBorrowField[12](OrderInfo.executed_quantity: u64)
25ReadRef
26CopyLoc[0](Arg0: &mut OrderInfo)
27ImmBorrowField[9](OrderInfo.original_quantity: u64)
28ReadRef
29Eq
30BrFalse(32)
B6:
31Branch(36)
B7:
32MoveLoc[0](Arg0: &mut OrderInfo)
33Pop
34LdConst[6](u64: 6)
35Abort
B8:
36CopyLoc[0](Arg0: &mut OrderInfo)
37ImmBorrowField[5](OrderInfo.order_type: u8)
38ReadRef
39Call constants::immediate_or_cancel(): u8
40Eq
41BrFalse(59)
B9:
42CopyLoc[0](Arg0: &mut OrderInfo)
43FreezeRef
44Call remaining_quantity(&OrderInfo): u64
45LdU64(0)
46Gt
47BrFalse(53)
B10:
48Call constants::canceled(): u8
49MoveLoc[0](Arg0: &mut OrderInfo)
50MutBorrowField[19](OrderInfo.status: u8)
51WriteRef
52Branch(57)
B11:
53Call constants::filled(): u8
54MoveLoc[0](Arg0: &mut OrderInfo)
55MutBorrowField[19](OrderInfo.status: u8)
56WriteRef
B12:
57LdTrue
58Ret
B13:
59CopyLoc[0](Arg0: &mut OrderInfo)
60FreezeRef
61Call remaining_quantity(&OrderInfo): u64
62LdU64(0)
63Eq
64BrFalse(71)
B14:
65Call constants::filled(): u8
66MoveLoc[0](Arg0: &mut OrderInfo)
67MutBorrowField[19](OrderInfo.status: u8)
68WriteRef
69LdTrue
70Ret
B15:
71MoveLoc[0](Arg0: &mut OrderInfo)
72ImmBorrowField[20](OrderInfo.fill_limit_reached: bool)
73ReadRef
74BrFalse(77)
B16:
75LdTrue
76Ret
B17:
77LdFalse
78Ret
}
public(friend) remaining_quantity(Arg0: &OrderInfo): u64 {
B0:
0CopyLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[9](OrderInfo.original_quantity: u64)
2ReadRef
3MoveLoc[0](Arg0: &OrderInfo)
4ImmBorrowField[12](OrderInfo.executed_quantity: u64)
5ReadRef
6Sub
7Ret
}
public(friend) can_match(Arg0: &OrderInfo, Arg1: &Order): bool {
L2: loc0: bool
L3: loc1: bool
L4: loc2: bool
L5: loc3: bool
L6: loc4: u64
B0:
0MoveLoc[1](Arg1: &Order)
1Call order::price(&Order): u64
2StLoc[6](loc4: u64)
3CopyLoc[0](Arg0: &OrderInfo)
4ImmBorrowField[9](OrderInfo.original_quantity: u64)
5ReadRef
6CopyLoc[0](Arg0: &OrderInfo)
7ImmBorrowField[12](OrderInfo.executed_quantity: u64)
8ReadRef
9Sub
10LdU64(0)
11Gt
12BrFalse(54)
B1:
13CopyLoc[0](Arg0: &OrderInfo)
14ImmBorrowField[8](OrderInfo.is_bid: bool)
15ReadRef
16BrFalse(24)
B2:
17CopyLoc[0](Arg0: &OrderInfo)
18ImmBorrowField[7](OrderInfo.price: u64)
19ReadRef
20CopyLoc[6](loc4: u64)
21Ge
22StLoc[5](loc3: bool)
23Branch(26)
B3:
24LdFalse
25StLoc[5](loc3: bool)
B4:
26MoveLoc[5](loc3: bool)
27BrFalse(33)
B5:
28MoveLoc[0](Arg0: &OrderInfo)
29Pop
30LdTrue
31StLoc[3](loc1: bool)
32Branch(51)
B6:
33CopyLoc[0](Arg0: &OrderInfo)
34ImmBorrowField[8](OrderInfo.is_bid: bool)
35ReadRef
36Not
37BrFalse(45)
B7:
38MoveLoc[0](Arg0: &OrderInfo)
39ImmBorrowField[7](OrderInfo.price: u64)
40ReadRef
41MoveLoc[6](loc4: u64)
42Le
43StLoc[4](loc2: bool)
44Branch(49)
B8:
45MoveLoc[0](Arg0: &OrderInfo)
46Pop
47LdFalse
48StLoc[4](loc2: bool)
B9:
49MoveLoc[4](loc2: bool)
50StLoc[3](loc1: bool)
B10:
51MoveLoc[3](loc1: bool)
52StLoc[2](loc0: bool)
53Branch(58)
B11:
54MoveLoc[0](Arg0: &OrderInfo)
55Pop
56LdFalse
57StLoc[2](loc0: bool)
B12:
58MoveLoc[2](loc0: bool)
59Ret
}
public(friend) match_maker(Arg0: &mut OrderInfo, Arg1: &mut Order, Arg2: u64): bool {
L3: loc0: bool
L4: loc1: bool
L5: loc2: Fill
B0:
0CopyLoc[0](Arg0: &mut OrderInfo)
1FreezeRef
2CopyLoc[1](Arg1: &mut Order)
3FreezeRef
4Call can_match(&OrderInfo, &Order): bool
5Not
6BrFalse(13)
B1:
7MoveLoc[0](Arg0: &mut OrderInfo)
8Pop
9MoveLoc[1](Arg1: &mut Order)
10Pop
11LdFalse
12Ret
B2:
13CopyLoc[0](Arg0: &mut OrderInfo)
14FreezeRef
15Call self_matching_option(&OrderInfo): u8
16Call constants::cancel_taker(): u8
17Eq
18BrFalse(34)
B3:
19CopyLoc[1](Arg1: &mut Order)
20FreezeRef
21Call order::balance_manager_id(&Order): ID
22CopyLoc[0](Arg0: &mut OrderInfo)
23FreezeRef
24Call balance_manager_id(&OrderInfo): ID
25Neq
26BrFalse(28)
B4:
27Branch(34)
B5:
28MoveLoc[0](Arg0: &mut OrderInfo)
29Pop
30MoveLoc[1](Arg1: &mut Order)
31Pop
32LdConst[8](u64: 8)
33Abort
B6:
34CopyLoc[0](Arg0: &mut OrderInfo)
35FreezeRef
36Call self_matching_option(&OrderInfo): u8
37Call constants::cancel_maker(): u8
38Eq
39BrFalse(49)
B7:
40CopyLoc[1](Arg1: &mut Order)
41FreezeRef
42Call order::balance_manager_id(&Order): ID
43CopyLoc[0](Arg0: &mut OrderInfo)
44FreezeRef
45Call balance_manager_id(&OrderInfo): ID
46Eq
47StLoc[3](loc0: bool)
48Branch(51)
B8:
49LdFalse
50StLoc[3](loc0: bool)
B9:
51MoveLoc[3](loc0: bool)
52StLoc[4](loc1: bool)
53MoveLoc[1](Arg1: &mut Order)
54MoveLoc[2](Arg2: u64)
55CopyLoc[0](Arg0: &mut OrderInfo)
56FreezeRef
57Call remaining_quantity(&OrderInfo): u64
58CopyLoc[0](Arg0: &mut OrderInfo)
59ImmBorrowField[8](OrderInfo.is_bid: bool)
60ReadRef
61MoveLoc[4](loc1: bool)
62CopyLoc[0](Arg0: &mut OrderInfo)
63ImmBorrowField[15](OrderInfo.fee_is_deep: bool)
64ReadRef
65Call order::generate_fill(&mut Order, u64, u64, bool, bool, bool): Fill
66StLoc[5](loc2: Fill)
67CopyLoc[0](Arg0: &mut OrderInfo)
68MutBorrowField[14](OrderInfo.fills: vector<Fill>)
69CopyLoc[5](loc2: Fill)
70VecPushBack(30)
71ImmBorrowLoc[5](loc2: Fill)
72Call fill::expired(&Fill): bool
73BrFalse(78)
B10:
74MoveLoc[0](Arg0: &mut OrderInfo)
75Pop
76LdTrue
77Ret
B11:
78CopyLoc[0](Arg0: &mut OrderInfo)
79ImmBorrowField[12](OrderInfo.executed_quantity: u64)
80ReadRef
81ImmBorrowLoc[5](loc2: Fill)
82Call fill::base_quantity(&Fill): u64
83Add
84CopyLoc[0](Arg0: &mut OrderInfo)
85MutBorrowField[12](OrderInfo.executed_quantity: u64)
86WriteRef
87CopyLoc[0](Arg0: &mut OrderInfo)
88ImmBorrowField[13](OrderInfo.cumulative_quote_quantity: u64)
89ReadRef
90ImmBorrowLoc[5](loc2: Fill)
91Call fill::quote_quantity(&Fill): u64
92Add
93CopyLoc[0](Arg0: &mut OrderInfo)
94MutBorrowField[13](OrderInfo.cumulative_quote_quantity: u64)
95WriteRef
96Call constants::partially_filled(): u8
97CopyLoc[0](Arg0: &mut OrderInfo)
98MutBorrowField[19](OrderInfo.status: u8)
99WriteRef
100CopyLoc[0](Arg0: &mut OrderInfo)
101FreezeRef
102Call remaining_quantity(&OrderInfo): u64
103LdU64(0)
104Eq
105BrFalse(111)
B12:
106Call constants::filled(): u8
107MoveLoc[0](Arg0: &mut OrderInfo)
108MutBorrowField[19](OrderInfo.status: u8)
109WriteRef
110Branch(113)
B13:
111MoveLoc[0](Arg0: &mut OrderInfo)
112Pop
B14:
113LdTrue
114Ret
}
public(friend) emit_orders_filled(Arg0: &OrderInfo, Arg1: u64) {
L2: loc0: &Fill
L3: loc1: u64
L4: loc2: u64
B0:
0LdU64(0)
1StLoc[3](loc1: u64)
2CopyLoc[0](Arg0: &OrderInfo)
3ImmBorrowField[14](OrderInfo.fills: vector<Fill>)
4VecLen(30)
5StLoc[4](loc2: u64)
B1:
6CopyLoc[3](loc1: u64)
7CopyLoc[4](loc2: u64)
8Lt
9BrFalse(64)
B2:
10Branch(11)
B3:
11CopyLoc[0](Arg0: &OrderInfo)
12ImmBorrowField[14](OrderInfo.fills: vector<Fill>)
13CopyLoc[3](loc1: u64)
14VecImmBorrow(30)
15StLoc[2](loc0: &Fill)
16CopyLoc[2](loc0: &Fill)
17Call fill::completed(&Fill): bool
18BrFalse(33)
B4:
19CopyLoc[0](Arg0: &OrderInfo)
20CopyLoc[2](loc0: &Fill)
21Call fill::maker_order_id(&Fill): u128
22CopyLoc[2](loc0: &Fill)
23Call fill::maker_client_order_id(&Fill): u64
24CopyLoc[2](loc0: &Fill)
25Call fill::balance_manager_id(&Fill): ID
26CopyLoc[2](loc0: &Fill)
27Call fill::original_maker_quantity(&Fill): u64
28CopyLoc[2](loc0: &Fill)
29Call fill::taker_is_bid(&Fill): bool
30Not
31CopyLoc[1](Arg1: u64)
32Call emit_order_fully_filled(&OrderInfo, u128, u64, ID, u64, bool, u64)
B5:
33CopyLoc[2](loc0: &Fill)
34Call fill::expired(&Fill): bool
35Not
36BrFalse(43)
B6:
37CopyLoc[0](Arg0: &OrderInfo)
38MoveLoc[2](loc0: &Fill)
39CopyLoc[1](Arg1: u64)
40Call order_filled_from_fill(&OrderInfo, &Fill, u64): OrderFilled
41Call event::emit<OrderFilled>(OrderFilled)
42Branch(59)
B7:
43CopyLoc[0](Arg0: &OrderInfo)
44Call balance_manager_id(&OrderInfo): ID
45CopyLoc[2](loc0: &Fill)
46Call fill::balance_manager_id(&Fill): ID
47Eq
48BrFalse(54)
B8:
49CopyLoc[0](Arg0: &OrderInfo)
50MoveLoc[2](loc0: &Fill)
51CopyLoc[1](Arg1: u64)
52Call emit_order_canceled_maker_from_fill(&OrderInfo, &Fill, u64)
53Branch(59)
B9:
54CopyLoc[0](Arg0: &OrderInfo)
55MoveLoc[2](loc0: &Fill)
56CopyLoc[1](Arg1: u64)
57Call order_expired_from_fill(&OrderInfo, &Fill, u64): OrderExpired
58Call event::emit<OrderExpired>(OrderExpired)
B10:
59MoveLoc[3](loc1: u64)
60LdU64(1)
61Add
62StLoc[3](loc1: u64)
63Branch(6)
B11:
64MoveLoc[0](Arg0: &OrderInfo)
65Pop
66Ret
}
public(friend) emit_order_placed(Arg0: &OrderInfo) {
L1: loc0: ID
L2: loc1: u64
L3: loc2: ID
L4: loc3: u128
L5: loc4: u64
L6: loc5: bool
L7: loc6: address
L8: loc7: u64
L9: loc8: u64
L10: loc9: u64
B0:
0CopyLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[2](OrderInfo.balance_manager_id: ID)
2ReadRef
3StLoc[1](loc0: ID)
4CopyLoc[0](Arg0: &OrderInfo)
5ImmBorrowField[0](OrderInfo.pool_id: ID)
6ReadRef
7StLoc[3](loc2: ID)
8CopyLoc[0](Arg0: &OrderInfo)
9ImmBorrowField[1](OrderInfo.order_id: u128)
10ReadRef
11StLoc[4](loc3: u128)
12CopyLoc[0](Arg0: &OrderInfo)
13ImmBorrowField[3](OrderInfo.client_order_id: u64)
14ReadRef
15StLoc[5](loc4: u64)
16CopyLoc[0](Arg0: &OrderInfo)
17ImmBorrowField[8](OrderInfo.is_bid: bool)
18ReadRef
19StLoc[6](loc5: bool)
20CopyLoc[0](Arg0: &OrderInfo)
21ImmBorrowField[4](OrderInfo.trader: address)
22ReadRef
23StLoc[7](loc6: address)
24CopyLoc[0](Arg0: &OrderInfo)
25Call remaining_quantity(&OrderInfo): u64
26StLoc[8](loc7: u64)
27CopyLoc[0](Arg0: &OrderInfo)
28ImmBorrowField[7](OrderInfo.price: u64)
29ReadRef
30StLoc[9](loc8: u64)
31CopyLoc[0](Arg0: &OrderInfo)
32ImmBorrowField[11](OrderInfo.expire_timestamp: u64)
33ReadRef
34StLoc[10](loc9: u64)
35MoveLoc[0](Arg0: &OrderInfo)
36ImmBorrowField[23](OrderInfo.timestamp: u64)
37ReadRef
38StLoc[2](loc1: u64)
39MoveLoc[1](loc0: ID)
40MoveLoc[3](loc2: ID)
41MoveLoc[4](loc3: u128)
42MoveLoc[5](loc4: u64)
43MoveLoc[7](loc6: address)
44MoveLoc[9](loc8: u64)
45MoveLoc[6](loc5: bool)
46MoveLoc[8](loc7: u64)
47MoveLoc[10](loc9: u64)
48MoveLoc[2](loc1: u64)
49Pack[2](OrderPlaced)
50Call event::emit<OrderPlaced>(OrderPlaced)
51Ret
}
public(friend) emit_order_info(Arg0: &OrderInfo) {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ReadRef
2Call event::emit<OrderInfo>(OrderInfo)
3Ret
}
public(friend) emit_order_fully_filled_if_filled(Arg0: &OrderInfo, Arg1: u64) {
B0:
0CopyLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[19](OrderInfo.status: u8)
2ReadRef
3Call constants::filled(): u8
4Eq
5BrFalse(25)
B1:
6CopyLoc[0](Arg0: &OrderInfo)
7CopyLoc[0](Arg0: &OrderInfo)
8ImmBorrowField[1](OrderInfo.order_id: u128)
9ReadRef
10CopyLoc[0](Arg0: &OrderInfo)
11ImmBorrowField[3](OrderInfo.client_order_id: u64)
12ReadRef
13CopyLoc[0](Arg0: &OrderInfo)
14ImmBorrowField[2](OrderInfo.balance_manager_id: ID)
15ReadRef
16CopyLoc[0](Arg0: &OrderInfo)
17ImmBorrowField[9](OrderInfo.original_quantity: u64)
18ReadRef
19MoveLoc[0](Arg0: &OrderInfo)
20ImmBorrowField[8](OrderInfo.is_bid: bool)
21ReadRef
22MoveLoc[1](Arg1: u64)
23Call emit_order_fully_filled(&OrderInfo, u128, u64, ID, u64, bool, u64)
24Branch(27)
B2:
25MoveLoc[0](Arg0: &OrderInfo)
26Pop
B3:
27Ret
}
public(friend) emit_order_fully_filled(Arg0: &OrderInfo, Arg1: u128, Arg2: u64, Arg3: ID, Arg4: u64, Arg5: bool, Arg6: u64) {
B0:
0MoveLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[0](OrderInfo.pool_id: ID)
2ReadRef
3MoveLoc[1](Arg1: u128)
4MoveLoc[2](Arg2: u64)
5MoveLoc[3](Arg3: ID)
6MoveLoc[4](Arg4: u64)
7MoveLoc[5](Arg5: bool)
8MoveLoc[6](Arg6: u64)
9Pack[4](OrderFullyFilled)
10Call event::emit<OrderFullyFilled>(OrderFullyFilled)
11Ret
}
public(friend) set_fill_limit_reached(Arg0: &mut OrderInfo) {
B0:
0LdTrue
1MoveLoc[0](Arg0: &mut OrderInfo)
2MutBorrowField[20](OrderInfo.fill_limit_reached: bool)
3WriteRef
4Ret
}
public(friend) set_order_inserted(Arg0: &mut OrderInfo) {
B0:
0LdTrue
1MoveLoc[0](Arg0: &mut OrderInfo)
2MutBorrowField[21](OrderInfo.order_inserted: bool)
3WriteRef
4Ret
}
order_filled_from_fill(Arg0: &OrderInfo, Arg1: &Fill, Arg2: u64): OrderFilled {
B0:
0CopyLoc[0](Arg0: &OrderInfo)
1ImmBorrowField[0](OrderInfo.pool_id: ID)
2ReadRef
3CopyLoc[1](Arg1: &Fill)
4Call fill::maker_order_id(&Fill): u128
5CopyLoc[0](Arg0: &OrderInfo)
6ImmBorrowField[1](OrderInfo.order_id: u128)
7ReadRef
8CopyLoc[1](Arg1: &Fill)
9Call fill::maker_client_order_id(&Fill): u64
10CopyLoc[0](Arg0: &OrderInfo)
11ImmBorrowField[3](OrderInfo.client_order_id: u64)
12ReadRef
13CopyLoc[1](Arg1: &Fill)
14Call fill::execution_price(&Fill): u64
15CopyLoc[0](Arg0: &OrderInfo)
16ImmBorrowField[8](OrderInfo.is_bid: bool)
17ReadRef
18CopyLoc[1](Arg1: &Fill)
19Call fill::taker_fee(&Fill): u64
20CopyLoc[1](Arg1: &Fill)
21Call fill::taker_fee_is_deep(&Fill): bool
22CopyLoc[1](Arg1: &Fill)
23Call fill::maker_fee(&Fill): u64
24CopyLoc[1](Arg1: &Fill)
25Call fill::maker_fee_is_deep(&Fill): bool
26CopyLoc[1](Arg1: &Fill)
27Call fill::base_quantity(&Fill): u64
28CopyLoc[1](Arg1: &Fill)
29Call fill::quote_quantity(&Fill): u64
30MoveLoc[1](Arg1: &Fill)
31Call fill::balance_manager_id(&Fill): ID
32MoveLoc[0](Arg0: &OrderInfo)
33ImmBorrowField[2](OrderInfo.balance_manager_id: ID)
34ReadRef
35MoveLoc[2](Arg2: u64)
36Pack[1](OrderFilled)
37Ret
}
order_expired_from_fill(Arg0: &OrderInfo, Arg1: &Fill, Arg2: u64): OrderExpired {
B0:
0CopyLoc[1](Arg1: &Fill)
1Call fill::balance_manager_id(&Fill): ID
2CopyLoc[0](Arg0: &OrderInfo)
3ImmBorrowField[0](OrderInfo.pool_id: ID)
4ReadRef
5CopyLoc[1](Arg1: &Fill)
6Call fill::maker_order_id(&Fill): u128
7CopyLoc[1](Arg1: &Fill)
8Call fill::maker_client_order_id(&Fill): u64
9CopyLoc[0](Arg0: &OrderInfo)
10Call trader(&OrderInfo): address
11CopyLoc[1](Arg1: &Fill)
12Call fill::execution_price(&Fill): u64
13MoveLoc[0](Arg0: &OrderInfo)
14Call is_bid(&OrderInfo): bool
15Not
16CopyLoc[1](Arg1: &Fill)
17Call fill::original_maker_quantity(&Fill): u64
18MoveLoc[1](Arg1: &Fill)
19Call fill::base_quantity(&Fill): u64
20MoveLoc[2](Arg2: u64)
21Pack[3](OrderExpired)
22Ret
}
emit_order_canceled_maker_from_fill(Arg0: &OrderInfo, Arg1: &Fill, Arg2: u64) {
B0:
0CopyLoc[1](Arg1: &Fill)
1Call fill::balance_manager_id(&Fill): ID
2CopyLoc[0](Arg0: &OrderInfo)
3ImmBorrowField[0](OrderInfo.pool_id: ID)
4ReadRef
5CopyLoc[1](Arg1: &Fill)
6Call fill::maker_order_id(&Fill): u128
7CopyLoc[1](Arg1: &Fill)
8Call fill::maker_client_order_id(&Fill): u64
9CopyLoc[0](Arg0: &OrderInfo)
10Call trader(&OrderInfo): address
11CopyLoc[1](Arg1: &Fill)
12Call fill::execution_price(&Fill): u64
13MoveLoc[0](Arg0: &OrderInfo)
14Call is_bid(&OrderInfo): bool
15Not
16CopyLoc[1](Arg1: &Fill)
17Call fill::original_maker_quantity(&Fill): u64
18MoveLoc[1](Arg1: &Fill)
19Call fill::base_quantity(&Fill): u64
20MoveLoc[2](Arg2: u64)
21Call order::emit_cancel_maker(ID, ID, u128, u64, address, u64, bool, u64, u64, u64)
22Ret
}
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 3
4 => u64: 4
5 => u64: 5
6 => u64: 6
7 => u64: 7
8 => u64: 8
]
}