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 dataclasses import dataclass
from typing import overload 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.chain import current_chain
from dexorder.base.order import OrderKey, TrancheKey from dexorder.base.order import OrderKey, TrancheKey
from dexorder.base.orderlib import SwapOrderState, ElaboratedSwapOrderStatus, Fill from dexorder.base.orderlib import SwapOrderState, ElaboratedSwapOrderStatus, Fill
from dexorder.blockstate import BlockDict, BlockSet from dexorder.blockstate import BlockDict, BlockSet
from dexorder.database.model.orderindex import OrderIndex 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.routing import pool_address
from dexorder.util import json from dexorder.util import json
from dexorder.vault_blockdata import vault_owners from dexorder.vault_blockdata import vault_owners
@@ -200,6 +199,7 @@ class Order:
status = self.status.copy() status = self.status.copy()
status.state = final_state status.state = final_state
if self.is_open: if self.is_open:
self._disable_triggers() # implemented in triggers.py which includes this file
Order.open_orders.remove(self.key) Order.open_orders.remove(self.key)
Order.vault_open_orders.listremove(self.key.vault, self.key.order_index) Order.vault_open_orders.listremove(self.key.vault, self.key.order_index)
try: try:
@@ -226,6 +226,9 @@ class Order:
Order.order_statuses.unload(self.key) # but then unload from memory after root promotion Order.order_statuses.unload(self.key) # but then unload from memory after root promotion
order_log.debug(f'order completed {status}') order_log.debug(f'order completed {status}')
def _disable_triggers(self): ...
# implemented in triggers.py which includes this file
@staticmethod @staticmethod
def pub_order_status(_s, k, v): def pub_order_status(_s, k, v):
log.debug(f'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): 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: try:
triggers = OrderTriggers.instances[order.key] triggers = OrderTriggers.instances[order.key]
except KeyError: except KeyError:
pass pass
else: else:
triggers.disable() triggers.disable()
order.complete(final_state)
Order._disable_triggers = _disable_triggers
def order_error(order: Order, message:str=None): def order_error(order: Order, message:str=None):