@@ -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)
0 commit comments