line trigger fixes
This commit is contained in:
@@ -52,7 +52,7 @@ async def handle_order_placed(event: EventData):
|
|||||||
log.debug(f'raw order status {obj}')
|
log.debug(f'raw order status {obj}')
|
||||||
order = Order.create(addr, index, event['transactionHash'], obj)
|
order = Order.create(addr, index, event['transactionHash'], obj)
|
||||||
await activate_order(order)
|
await activate_order(order)
|
||||||
log.debug(f'new order {order} {order.order}')
|
log.debug(f'new order{order}')
|
||||||
|
|
||||||
|
|
||||||
def handle_swap_filled(event: EventData):
|
def handle_swap_filled(event: EventData):
|
||||||
|
|||||||
@@ -280,6 +280,8 @@ class Order:
|
|||||||
'of', db=True, redis=True, pub=pub_order_fills,
|
'of', db=True, redis=True, pub=pub_order_fills,
|
||||||
str2key=OrderKey.str2key, value2str=lambda v: json.dumps(v.dump()), str2value=lambda s:OrderFilled.load(json.loads(s)))
|
str2key=OrderKey.str2key, value2str=lambda v: json.dumps(v.dump()), str2value=lambda s:OrderFilled.load(json.loads(s)))
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.order)
|
||||||
|
|
||||||
# "active" means the order wants to be executed now. this is not BlockData because it's cleared every block
|
# "active" means the order wants to be executed now. this is not BlockData because it's cleared every block
|
||||||
active_orders: dict[OrderKey,Order] = {}
|
active_orders: dict[OrderKey,Order] = {}
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ class Trigger:
|
|||||||
self.position = position
|
self.position = position
|
||||||
self.tk = tk
|
self.tk = tk
|
||||||
self.value = value
|
self.value = value
|
||||||
|
_dirty.add(self.tk)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def value(self):
|
def value(self):
|
||||||
@@ -361,10 +362,11 @@ async def activate_orders():
|
|||||||
log.debug('activating orders')
|
log.debug('activating orders')
|
||||||
# this is a state init callback, called only once after the state has been loaded from the db or created fresh
|
# this is a state init callback, called only once after the state has been loaded from the db or created fresh
|
||||||
keys = list(Order.open_orders)
|
keys = list(Order.open_orders)
|
||||||
orders = [Order.of(key) for key in keys]
|
for key in keys:
|
||||||
for order in orders:
|
order = Order.of(key)
|
||||||
# setup triggers
|
# setup triggers
|
||||||
await activate_order(order) # too many to really parallelize, and it's startup anyway
|
await activate_order(order) # too many to really parallelize, and it's startup anyway
|
||||||
|
# log.debug(f'activated {order}')
|
||||||
log.debug(f'activated {len(keys)} orders')
|
log.debug(f'activated {len(keys)} orders')
|
||||||
|
|
||||||
|
|
||||||
@@ -402,9 +404,11 @@ class TrancheTrigger:
|
|||||||
if tranche.marketOrder:
|
if tranche.marketOrder:
|
||||||
min_trigger = max_trigger = None
|
min_trigger = max_trigger = None
|
||||||
else:
|
else:
|
||||||
|
pool = await get_pool(order.pool_address)
|
||||||
|
buy = pool['base'] == order.order.tokenOut
|
||||||
min_trigger, max_trigger = await asyncio.gather(
|
min_trigger, max_trigger = await asyncio.gather(
|
||||||
PriceLineTrigger.create(tk, tranche.minLine, True, tranche.minIsBarrier),
|
PriceLineTrigger.create(tk, tranche.minLine, True is buy, tranche.minIsBarrier),
|
||||||
PriceLineTrigger.create(tk, tranche.maxLine, True, tranche.maxIsBarrier))
|
PriceLineTrigger.create(tk, tranche.maxLine, False is buy, tranche.maxIsBarrier))
|
||||||
return TrancheTrigger(order, tk, balance_trigger, activation_trigger, expiration_trigger, min_trigger, max_trigger)
|
return TrancheTrigger(order, tk, balance_trigger, activation_trigger, expiration_trigger, min_trigger, max_trigger)
|
||||||
|
|
||||||
def __init__(self, order: Order, tk: TrancheKey,
|
def __init__(self, order: Order, tk: TrancheKey,
|
||||||
|
|||||||
Reference in New Issue
Block a user