From a96428b9e37c9caf2aba03b71125f50ff0b17822 Mon Sep 17 00:00:00 2001 From: 7400 <> Date: Thu, 30 Nov 2023 11:43:37 -0800 Subject: [PATCH 1/3] handle_order_cancel_all --- src/dexorder/event_handler.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/dexorder/event_handler.py b/src/dexorder/event_handler.py index 51cd260..1888536 100644 --- a/src/dexorder/event_handler.py +++ b/src/dexorder/event_handler.py @@ -62,6 +62,7 @@ def setup_logevent_triggers(runner): 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_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_dexorderexecutions, executions) 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}') +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): async def _adjust(vaddr, taddr, amt, old_balances): result = dict(old_balances) # copy From 534b5c667b5851263f3ac0c20c05210d3eb45d52 Mon Sep 17 00:00:00 2001 From: 7400 <> Date: Sat, 2 Dec 2023 11:10:07 -0800 Subject: [PATCH 2/3] Dragonfly excessive CPU --- bin/df.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/df.sh b/bin/df.sh index 528f701..180132b 100755 --- a/bin/df.sh +++ b/bin/df.sh @@ -1,2 +1,2 @@ #!/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 '' "$@" From 9a68310d2e5fa82cd5afde1317462bdaeb55742f Mon Sep 17 00:00:00 2001 From: 7400 <> Date: Wed, 6 Dec 2023 07:47:22 -0800 Subject: [PATCH 3/3] Proxy functionality: substitute IVault --- src/dexorder/contract/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/dexorder/contract/__init__.py b/src/dexorder/contract/__init__.py index 0924b33..09baff3 100644 --- a/src/dexorder/contract/__init__.py +++ b/src/dexorder/contract/__init__.py @@ -1,4 +1,4 @@ -import json +import json, os, logging from .. import current_w3 as _current_w3 from .abi import abis @@ -6,6 +6,9 @@ from .contract_proxy import ContractProxy def get_contract_data(name): + if name == "Vault" and os.path.exists(f'../contract/out/I{name}.sol/I{name}.json') : + 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: return json.load(file)