From 7bae6342eb80d5d402d20e5e8de50fd24bc916ae Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 3 Jul 2024 16:11:19 -0400 Subject: [PATCH] autosign defaults to True; missing order lookup bugfix --- src/dexorder/bin/mirror.py | 6 +++--- src/dexorder/blockchain/connection.py | 4 ++-- src/dexorder/contract/contract_proxy.py | 2 ++ src/dexorder/order/orderstate.py | 5 +---- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/dexorder/bin/mirror.py b/src/dexorder/bin/mirror.py index 30a0eb9..c0b747f 100644 --- a/src/dexorder/bin/mirror.py +++ b/src/dexorder/bin/mirror.py @@ -121,7 +121,7 @@ async def main(): delay = max(0.010, config.polling) update_once = config.polling <= 0 global source_w3 - source_w3 = await create_w3(config.mirror_source_rpc_url, name='source') + source_w3 = await create_w3(config.mirror_source_rpc_url, name='source', autosign=False) pools = (config.mirror_pools or []) if not pools: log.error('must configure mirror_pools') @@ -129,7 +129,7 @@ async def main(): if config.account is None: # Dev Account #5 config.account = '0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba' - await blockchain.connect(autosign=True, name='target') # autosign on the target chain + await blockchain.connect(name='target') mirror_addr = config.mirror_env if mirror_addr is None: @@ -160,7 +160,7 @@ async def main(): if any(result['status'] != 1 for result in results): log.error('Mirroring a token reverted.') exit(1) - log.info(f'Tokens deployed {results}') + log.info(f'Tokens deployed') log.debug(f'Mirroring pools {", ".join(pools)}') txs = [] diff --git a/src/dexorder/blockchain/connection.py b/src/dexorder/blockchain/connection.py index a8b2ed9..0e4a597 100644 --- a/src/dexorder/blockchain/connection.py +++ b/src/dexorder/blockchain/connection.py @@ -18,7 +18,7 @@ from ..configuration.resolve import resolve_ws_url from ..contract import get_contract_data -async def connect(rpc_url=None, account=NARG, autosign=False, name='default'): +async def connect(rpc_url=None, account=NARG, autosign=True, name='default'): """ connects to the rpc_url and configures context vars """ @@ -28,7 +28,7 @@ async def connect(rpc_url=None, account=NARG, autosign=False, name='default'): return w3 -async def create_w3(rpc_url=None, account=NARG, autosign=False, name='default'): +async def create_w3(rpc_url=None, account=NARG, autosign=True, name='default'): # todo create a proxy w3 that rotates among rpc urls # self.w3s = tuple(await create_w3(url) for url in rpc_url_or_tag) # chain_id = self.w3s[0].eth.chain_id diff --git a/src/dexorder/contract/contract_proxy.py b/src/dexorder/contract/contract_proxy.py index 9ae6aab..acf817e 100644 --- a/src/dexorder/contract/contract_proxy.py +++ b/src/dexorder/contract/contract_proxy.py @@ -75,6 +75,8 @@ def build_wrapper(addr, name, func): try: account = current_account.get() except LookupError: + account = None + if account is None: raise RuntimeError(f'Cannot invoke transaction {addr}.{name}() without setting an Account.') tx = await func(*args).build_transaction(kwargs) tx['from'] = account.address diff --git a/src/dexorder/order/orderstate.py b/src/dexorder/order/orderstate.py index 44db7c0..5b53dcc 100644 --- a/src/dexorder/order/orderstate.py +++ b/src/dexorder/order/orderstate.py @@ -67,10 +67,7 @@ class Order: @staticmethod def of(a, b=None) -> 'Order': key = (OrderKey(a.vault, a.order_index) if type(a) is TrancheKey else a) if b is None else OrderKey(a, b) - try: - return Order.instances[key] - except KeyError: - return Order(key) + return Order.instances[key] @staticmethod