trigger disable fix
This commit is contained in:
@@ -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}')
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user