orderstate fixes

This commit is contained in:
Tim Olson
2023-12-07 18:36:21 -04:00
parent 7d2653746a
commit 5e11c9b138
2 changed files with 11 additions and 9 deletions

View File

@@ -84,8 +84,9 @@ class Order:
if order.is_open: if order.is_open:
Order.open_orders.add(key) Order.open_orders.add(key)
Order.vault_open_orders.listappend(key.vault, key.order_index) Order.vault_open_orders.listappend(key.vault, key.order_index)
tranche_filled = [Filled(*f) for f in zip(status.trancheFilledIn, status.trancheFilledOut)] # Start with a filled value of 0 even if the chain says otherwise, because we will process the fill events later and add them in
Order.order_filled[key] = OrderFilled(Filled(status.filledIn, status.filledOut), tranche_filled) tranche_filled = [Filled(0,0) for _ in range(len(status.trancheFilledIn))]
Order.order_filled[key] = OrderFilled(Filled(0,0), tranche_filled)
return order return order
@overload @overload

View File

@@ -151,15 +151,16 @@ class TrancheTrigger:
if self.closed: if self.closed:
log.debug(f'price trigger ignored because trigger status is {self.status}') log.debug(f'price trigger ignored because trigger status is {self.status}')
return return
if self.pool_price_multiplier is None: if cur is not None:
pool = await Pools.get(pool_address(self.order.order)) if self.pool_price_multiplier is None:
pool_dec = await pool_decimals(pool) pool = await Pools.get(pool_address(self.order.order))
self.pool_price_multiplier = dec(10) ** dec(-pool_dec) pool_dec = await pool_decimals(pool)
cur *= self.pool_price_multiplier self.pool_price_multiplier = dec(10) ** dec(-pool_dec)
if not self.has_line_constraint or all(await asyncio.gather( cur *= self.pool_price_multiplier
if cur is None or not self.has_line_constraint or all(await asyncio.gather(
line_passes(self.min_line_constraint, True, cur), line_passes(self.min_line_constraint, True, cur),
line_passes(self.max_line_constraint, False, cur))): line_passes(self.max_line_constraint, False, cur))):
active_tranches[self.tk] = None # or PriceProof(...) active_tranches[self.tk] = PriceProof(0) # todo PriceProof
def fill(self, _amount_in, _amount_out ): def fill(self, _amount_in, _amount_out ):
remaining = self.order.tranche_remaining(self.tk.tranche_index) remaining = self.order.tranche_remaining(self.tk.tranche_index)