From 05e8d7f2258a7444696ba70b76d0c1c909046315 Mon Sep 17 00:00:00 2001 From: atvanguard <3612498+atvanguard@users.noreply.github.com> Date: Thu, 18 Jan 2024 15:55:09 +0000 Subject: [PATCH] handle new trader --- plugin/evm/orderbook/memory_database.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plugin/evm/orderbook/memory_database.go b/plugin/evm/orderbook/memory_database.go index 7eeab0b4b1..bf1aa647b4 100644 --- a/plugin/evm/orderbook/memory_database.go +++ b/plugin/evm/orderbook/memory_database.go @@ -1289,10 +1289,21 @@ func (db *InMemoryDatabase) GetOrderValidationFields(orderId common.Hash, order bidsHead = db.LongOrders[marketId][0].Price } + availableMargin := big.NewInt(0) + if db.TraderMap[trader] != nil { + // backwards compatibility + if db.TraderMap[trader].Margin.Available == nil { + db.TraderMap[trader].Margin.Available = big.NewInt(0) + } + if db.TraderMap[trader].Margin.VirtualReserved == nil { + db.TraderMap[trader].Margin.Available = big.NewInt(0) + } + availableMargin = hu.Sub(db.TraderMap[trader].Margin.Available /* as fresh as the last matching engine run */, db.TraderMap[trader].Margin.VirtualReserved) + } return OrderValidationFields{ Exists: false, PosSize: posSize, - AvailableMargin: hu.Sub(db.TraderMap[trader].Margin.Available /* as fresh as the last matching engine run */, db.TraderMap[trader].Margin.VirtualReserved), + AvailableMargin: availableMargin, AsksHead: asksHead, BidsHead: bidsHead, }