Merge remote-tracking branch 'origin/master' into orderspec
# Conflicts: # src/dexorder/contract/__init__.py
This commit is contained in:
@@ -1,2 +1,2 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
docker run --network=host --ulimit memlock=-1 docker.dragonflydb.io/dragonflydb/dragonfly:latest --maxmemory 1G --dbfilename '' "$@"
|
docker run --network=host --ulimit memlock=-1 docker.dragonflydb.io/dragonflydb/dragonfly:latest --maxmemory 1G --hz=1 --dbfilename '' "$@"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import json
|
import json, os, logging
|
||||||
|
|
||||||
from .. import current_w3 as _current_w3
|
from .. import current_w3 as _current_w3
|
||||||
from .abi import abis
|
from .abi import abis
|
||||||
@@ -6,8 +6,9 @@ from .contract_proxy import ContractProxy
|
|||||||
|
|
||||||
|
|
||||||
def get_contract_data(name):
|
def get_contract_data(name):
|
||||||
# if name == 'Vault':
|
if name == "Vault" and os.path.exists(f'../contract/out/I{name}.sol/I{name}.json') :
|
||||||
# name = 'IVault'
|
logging.warning("getting abi from IVault.json instead of Vault.json")
|
||||||
|
name = "IVault" # Special case for proxy Vault
|
||||||
with open(f'../contract/out/{name}.sol/{name}.json', 'rt') as file:
|
with open(f'../contract/out/{name}.sol/{name}.json', 'rt') as file:
|
||||||
return json.load(file)
|
return json.load(file)
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ def setup_logevent_triggers(runner):
|
|||||||
runner.add_event_trigger(handle_uniswap_swap, get_contract_event('IUniswapV3PoolEvents', 'Swap'))
|
runner.add_event_trigger(handle_uniswap_swap, get_contract_event('IUniswapV3PoolEvents', 'Swap'))
|
||||||
runner.add_event_trigger(handle_swap_filled, get_contract_event('OrderLib', 'DexorderSwapFilled'))
|
runner.add_event_trigger(handle_swap_filled, get_contract_event('OrderLib', 'DexorderSwapFilled'))
|
||||||
runner.add_event_trigger(handle_order_canceled, get_contract_event('OrderLib', 'DexorderSwapCanceled'))
|
runner.add_event_trigger(handle_order_canceled, get_contract_event('OrderLib', 'DexorderSwapCanceled'))
|
||||||
|
runner.add_event_trigger(handle_order_cancel_all, get_contract_event('OrderLib', 'DexorderCancelAll'))
|
||||||
runner.add_event_trigger(handle_transaction_receipts)
|
runner.add_event_trigger(handle_transaction_receipts)
|
||||||
runner.add_event_trigger(handle_dexorderexecutions, executions)
|
runner.add_event_trigger(handle_dexorderexecutions, executions)
|
||||||
runner.add_event_trigger(activate_time_triggers)
|
runner.add_event_trigger(activate_time_triggers)
|
||||||
@@ -148,6 +149,21 @@ async def handle_order_canceled(event: EventData):
|
|||||||
log.warning(f'DexorderCanceled IGNORED due to missing order {vault} {order_index}')
|
log.warning(f'DexorderCanceled IGNORED due to missing order {vault} {order_index}')
|
||||||
|
|
||||||
|
|
||||||
|
async def handle_order_cancel_all(event: EventData):
|
||||||
|
# event DexorderCancelAll (uint64 numSwapOrders);
|
||||||
|
log.debug(f'DexorderCancelAll {event}')
|
||||||
|
vault = event['address']
|
||||||
|
cancelAllIndex = event['args']['cancelAllIndex']
|
||||||
|
for orderIndex in Order.vault_open_orders[vault]:
|
||||||
|
if orderIndex < cancelAllIndex:
|
||||||
|
try:
|
||||||
|
order: Order = Order.of(vault, orderIndex)
|
||||||
|
order.complete(SwapOrderState.Canceled)
|
||||||
|
log.debug(f'Canceled order {OrderKey(vault,orderIndex)}')
|
||||||
|
except KeyError:
|
||||||
|
log.warning(f'DexorderCanceled IGNORED due to missing order {vault} {orderIndex}')
|
||||||
|
|
||||||
|
|
||||||
def balance_adjuster(vault, token_address, amount):
|
def balance_adjuster(vault, token_address, amount):
|
||||||
async def _adjust(vaddr, taddr, amt, old_balances):
|
async def _adjust(vaddr, taddr, amt, old_balances):
|
||||||
result = dict(old_balances) # copy
|
result = dict(old_balances) # copy
|
||||||
|
|||||||
Reference in New Issue
Block a user