trigger disable fix

This commit is contained in:
tim
2024-10-11 19:23:12 -04:00
parent 849bc8bd09
commit 1cbc4212a1
2 changed files with 11 additions and 3 deletions

View File

@@ -3,13 +3,12 @@ import logging
from dataclasses import dataclass
from typing import overload
from dexorder import DELETE, db, order_log, dec
from dexorder import DELETE, db, order_log
from dexorder.base.chain import current_chain
from dexorder.base.order import OrderKey, TrancheKey
from dexorder.base.orderlib import SwapOrderState, ElaboratedSwapOrderStatus, Fill
from dexorder.blockstate import BlockDict, BlockSet
from dexorder.database.model.orderindex import OrderIndex
from dexorder.pools import get_pool, ensure_pool_price, pool_prices
from dexorder.routing import pool_address
from dexorder.util import json
from dexorder.vault_blockdata import vault_owners
@@ -200,6 +199,7 @@ class Order:
status = self.status.copy()
status.state = final_state
if self.is_open:
self._disable_triggers() # implemented in triggers.py which includes this file
Order.open_orders.remove(self.key)
Order.vault_open_orders.listremove(self.key.vault, self.key.order_index)
try:
@@ -226,6 +226,9 @@ class Order:
Order.order_statuses.unload(self.key) # but then unload from memory after root promotion
order_log.debug(f'order completed {status}')
def _disable_triggers(self): ...
# implemented in triggers.py which includes this file
@staticmethod
def pub_order_status(_s, k, v):
log.debug(f'pub order status {_s} {k} {v}')

View File

@@ -143,13 +143,18 @@ async def end_trigger_updates():
def close_order_and_disable_triggers(order: Order, final_state: SwapOrderState):
order.complete(final_state) # this will call _disable_triggers(order)
def _disable_triggers(order):
try:
triggers = OrderTriggers.instances[order.key]
except KeyError:
pass
else:
triggers.disable()
order.complete(final_state)
Order._disable_triggers = _disable_triggers
def order_error(order: Order, message:str=None):