Skip to content

Commit cf824a9

Browse files
author
Paul
committed
some improvements
1 parent 1a28650 commit cf824a9

File tree

7 files changed

+118
-118
lines changed

7 files changed

+118
-118
lines changed

schema.graphql

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,6 @@ type MarketRegisterEvent {
128128
id: ID!
129129
base_asset: String! @index
130130
quote_asset: String! @index
131-
market: String! @index
132131
timestamp: String!
133132
tx_id: String! @index
134133
}

src/handlers/cancelOrderEventHandler.ts

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -38,40 +38,41 @@ Market.CancelOrderEvent.handlerWithLoader(
3838

3939
const order = loaderReturn.order;
4040

41-
if (!order) {
42-
context.log.error(`Cannot find an order ${event.params.order_id}`);
43-
return;
44-
}
41+
if (order) {
42+
const updatedOrder: Order = {
43+
...order,
44+
amount: 0n,
45+
status: "Canceled" as OrderStatus_t,
46+
timestamp: getISOTime(event.block.time),
47+
};
48+
context.Order.set(updatedOrder);
4549

46-
const updatedOrder: Order = {
47-
...order,
48-
amount: 0n,
49-
status: "Canceled" as OrderStatus_t,
50-
timestamp: getISOTime(event.block.time),
51-
};
52-
context.Order.set(updatedOrder);
50+
if (order.order_type === "Buy") {
51+
context.ActiveBuyOrder.deleteUnsafe(event.params.order_id);
5352

54-
if (order.order_type === "Buy") {
55-
context.ActiveBuyOrder.deleteUnsafe(event.params.order_id);
53+
} else if (order.order_type === "Sell") {
54+
context.ActiveSellOrder.deleteUnsafe(event.params.order_id)
55+
}
5656

57-
} else if (order.order_type === "Sell") {
58-
context.ActiveSellOrder.deleteUnsafe(event.params.order_id)
57+
} else {
58+
context.log.error(`Cannot find order in CANCEL: ${event.params.order_id}`);
5959
}
6060

6161
const balance = loaderReturn.balance;
62-
if (!balance) {
63-
context.log.error(`Cannot find an balance ${getHash(`${event.params.user.payload.bits}-${event.srcAddress}`)}`);
64-
return
65-
}
6662

67-
const updatedBalance = {
68-
...balance,
69-
base_amount: event.params.balance.liquid.base,
70-
quote_amount: event.params.balance.liquid.quote,
71-
timestamp: getISOTime(event.block.time),
72-
};
63+
if (balance) {
64+
const updatedBalance = {
65+
...balance,
66+
base_amount: event.params.balance.liquid.base,
67+
quote_amount: event.params.balance.liquid.quote,
68+
timestamp: getISOTime(event.block.time),
69+
};
70+
71+
context.Balance.set(updatedBalance);
72+
} else {
73+
context.log.error(`Cannot find balance in CANCEL: ${getHash(`${event.params.user.payload.bits}-${event.srcAddress}`)}`);
74+
}
7375

74-
context.Balance.set(updatedBalance);
7576
}
7677
}
7778
)

src/handlers/depositEventHandler.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,21 @@ Market.DepositEvent.handlerWithLoader(
3636
context.DepositEvent.set(depositEvent);
3737
const balance = loaderReturn.balance;
3838

39-
if (!balance) {
39+
if (balance) {
40+
const updatedBalance = {
41+
...balance,
42+
base_amount: event.params.account.liquid.base,
43+
quote_amount: event.params.account.liquid.quote,
44+
timestamp: getISOTime(event.block.time),
45+
};
46+
47+
context.Balance.set(updatedBalance);
48+
} else {
4049
context.Balance.set({
4150
...depositEvent,
4251
id: getHash(`${event.params.user.payload.bits}-${event.srcAddress}`),
4352
});
44-
return;
4553
}
46-
47-
const updatedBalance = {
48-
...balance,
49-
base_amount: event.params.account.liquid.base,
50-
quote_amount: event.params.account.liquid.quote,
51-
timestamp: getISOTime(event.block.time),
52-
};
53-
54-
context.Balance.set(updatedBalance);
5554
}
5655
}
5756
)

src/handlers/marketRegisterEventHandler.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
import { Registry } from "generated/src/Handlers.gen";
2-
import { nanoid } from "nanoid";
32
import { getISOTime } from "../utils/getISOTime";
43
import { MarketRegisterEvent } from "generated";
54

65
Registry.MarketRegisterEvent.handler(
76
async ({ event, context }) => {
87
const marketRegisterEvent: MarketRegisterEvent = {
9-
id: nanoid(),
8+
id: event.params.market.bits,
109
base_asset: event.params.base.bits,
1110
quote_asset: event.params.quote.bits,
12-
market: event.params.market.bits,
1311
timestamp: getISOTime(event.block.time),
1412
tx_id: event.transaction.id
1513
};

src/handlers/openOrderEventHandler.ts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,18 @@ Market.OpenOrderEvent.handlerWithLoader(
5555
}
5656

5757
const balance = loaderReturn.balance;
58-
if (!balance) {
59-
context.log.error(`Cannot find an balance ${getHash(`${event.params.user.payload.bits}-${event.srcAddress}`)}`);
60-
return
61-
}
62-
const updatedBalance = {
63-
...balance,
64-
base_amount: event.params.balance.liquid.base,
65-
quote_amount: event.params.balance.liquid.quote,
66-
timestamp: getISOTime(event.block.time),
67-
};
68-
69-
context.Balance.set(updatedBalance);
58+
if (balance) {
59+
const updatedBalance = {
60+
...balance,
61+
base_amount: event.params.balance.liquid.base,
62+
quote_amount: event.params.balance.liquid.quote,
63+
timestamp: getISOTime(event.block.time),
64+
};
7065

66+
context.Balance.set(updatedBalance);
67+
} else {
68+
context.log.error(`Cannot find balance in OPEN ORDER: ${getHash(`${event.params.user.payload.bits}-${event.srcAddress}`)}`);
69+
}
7170
}
7271
}
7372
)

src/handlers/tradeOrderEventHandler.ts

Lines changed: 59 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -48,71 +48,75 @@ Market.TradeOrderEvent.handlerWithLoader(
4848
const buy_order = loaderReturn.buy_order;
4949
const sell_order = loaderReturn.sell_order;
5050

51-
if (!buy_order || !sell_order) {
52-
context.log.error(`Cannot find orders: buy_order_id: ${event.params.base_buy_order_id}, sell_order_id: ${event.params.base_sell_order_id}`);
53-
return;
54-
}
55-
56-
const updatedBuyAmount = buy_order.amount - event.params.trade_size;
57-
const isBuyOrderClosed = updatedBuyAmount === 0n;
58-
59-
const updatedBuyOrder: Order = {
60-
...buy_order,
61-
amount: updatedBuyAmount,
62-
status: isBuyOrderClosed ? "Closed" : "Active",
63-
timestamp: getISOTime(event.block.time),
64-
};
65-
66-
const updatedSellAmount = sell_order.amount - event.params.trade_size;
67-
const isSellOrderClosed = updatedSellAmount === 0n;
68-
69-
const updatedSellOrder: Order = {
70-
...sell_order,
71-
amount: updatedSellAmount,
72-
status: isSellOrderClosed ? "Closed" : "Active",
73-
timestamp: getISOTime(event.block.time),
74-
};
75-
76-
context.Order.set(updatedBuyOrder);
77-
context.Order.set(updatedSellOrder);
78-
79-
if (isBuyOrderClosed) {
80-
context.ActiveBuyOrder.deleteUnsafe(buy_order.id);
51+
if (buy_order) {
52+
const updatedBuyAmount = buy_order.amount - event.params.trade_size;
53+
const isBuyOrderClosed = updatedBuyAmount === 0n;
54+
55+
const updatedBuyOrder: Order = {
56+
...buy_order,
57+
amount: updatedBuyAmount,
58+
status: isBuyOrderClosed ? "Closed" : "Active",
59+
timestamp: getISOTime(event.block.time),
60+
};
61+
context.Order.set(updatedBuyOrder);
62+
if (isBuyOrderClosed) {
63+
context.ActiveBuyOrder.deleteUnsafe(buy_order.id);
64+
} else {
65+
context.ActiveBuyOrder.set(updatedBuyOrder);
66+
}
8167
} else {
82-
context.ActiveBuyOrder.set(updatedBuyOrder);
68+
context.log.error(`Cannot find buy order in TRADE: buy_order_id: ${event.params.base_buy_order_id}`);
8369
}
8470

85-
if (isSellOrderClosed) {
86-
context.ActiveSellOrder.deleteUnsafe(sell_order.id);
71+
if (sell_order) {
72+
const updatedSellAmount = sell_order.amount - event.params.trade_size;
73+
const isSellOrderClosed = updatedSellAmount === 0n;
74+
75+
const updatedSellOrder: Order = {
76+
...sell_order,
77+
amount: updatedSellAmount,
78+
status: isSellOrderClosed ? "Closed" : "Active",
79+
timestamp: getISOTime(event.block.time),
80+
};
81+
82+
context.Order.set(updatedSellOrder);
83+
if (isSellOrderClosed) {
84+
context.ActiveSellOrder.deleteUnsafe(sell_order.id);
85+
} else {
86+
context.ActiveSellOrder.set(updatedSellOrder);
87+
}
8788
} else {
88-
context.ActiveSellOrder.set(updatedSellOrder);
89+
context.log.error(`Cannot find sell order in TRADE: sell_order_id: ${event.params.base_sell_order_id}`);
8990
}
90-
const seller_balance = loaderReturn.seller_balance;
91-
const buyer_balance = loaderReturn.buyer_balance;
9291

93-
if (!seller_balance || !buyer_balance) {
94-
context.log.error(`Cannot find balances: seller: ${getHash(`${event.params.order_seller.payload.bits}-${event.srcAddress}`)},
95-
buyer: ${getHash(`${event.params.order_buyer.payload.bits}-${event.srcAddress}`)}`);
96-
return;
97-
}
92+
const buyer_balance = loaderReturn.buyer_balance;
93+
const seller_balance = loaderReturn.seller_balance;
9894

99-
const updatedSellerBalance = {
100-
...seller_balance,
101-
base_amount: event.params.s_balance.liquid.base,
102-
quote_amount: event.params.s_balance.liquid.quote,
103-
timestamp: getISOTime(event.block.time),
104-
};
95+
if (buyer_balance) {
96+
const updatedBuyerBalance = {
97+
...buyer_balance,
98+
base_amount: event.params.b_balance.liquid.base,
99+
quote_amount: event.params.b_balance.liquid.quote,
100+
timestamp: getISOTime(event.block.time),
101+
};
105102

106-
context.Balance.set(updatedSellerBalance);
103+
context.Balance.set(updatedBuyerBalance);
104+
} else {
105+
context.log.error(`Cannot find buyer balance in TRADE: ${getHash(`${event.params.order_buyer.payload.bits}-${event.srcAddress}`)}`);
106+
}
107107

108-
const updatedBuyerBalance = {
109-
...buyer_balance,
110-
base_amount: event.params.b_balance.liquid.base,
111-
quote_amount: event.params.b_balance.liquid.quote,
112-
timestamp: getISOTime(event.block.time),
113-
};
108+
if (seller_balance) {
109+
const updatedSellerBalance = {
110+
...seller_balance,
111+
base_amount: event.params.s_balance.liquid.base,
112+
quote_amount: event.params.s_balance.liquid.quote,
113+
timestamp: getISOTime(event.block.time),
114+
};
114115

115-
context.Balance.set(updatedBuyerBalance);
116+
context.Balance.set(updatedSellerBalance);
117+
} else {
118+
context.log.error(`Cannot find seller balance in TRADE: ${getHash(`${event.params.order_seller.payload.bits}-${event.srcAddress}`)}`);
119+
}
116120
}
117121
}
118122
)

src/handlers/withdrawEventHandler.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,18 @@ Market.WithdrawEvent.handlerWithLoader(
3636
context.WithdrawEvent.set(withdrawEvent);
3737
const balance = loaderReturn.balance;
3838

39-
if (!balance) {
40-
context.log.error(`Cannot find an balance ${getHash(`${event.params.user.payload.bits}-${event.srcAddress}`)}`);
41-
return
39+
if (balance) {
40+
const updatedBalance = {
41+
...balance,
42+
base_amount: event.params.account.liquid.base,
43+
quote_amount: event.params.account.liquid.quote,
44+
timestamp: getISOTime(event.block.time),
45+
};
46+
context.Balance.set(updatedBalance);
47+
} else {
48+
context.log.error(`Cannot find balance in WITHDRAW: ${getHash(`${event.params.user.payload.bits}-${event.srcAddress}`)}`);
4249
}
4350

44-
const updatedBalance = {
45-
...balance,
46-
base_amount: event.params.account.liquid.base,
47-
quote_amount: event.params.account.liquid.quote,
48-
timestamp: getISOTime(event.block.time),
49-
};
50-
context.Balance.set(updatedBalance);
5151
}
5252
}
5353
)

0 commit comments

Comments
 (0)