From db76ddccac272b8b65dc73277d4d3eaa42906f8c Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 18 Mar 2024 18:12:54 -0400 Subject: [PATCH] metadata handling fix --- src/dexorder/configuration/schema.py | 2 +- src/dexorder/metadata.py | 23 ++++++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/dexorder/configuration/schema.py b/src/dexorder/configuration/schema.py index 49bce35..a59bfc5 100644 --- a/src/dexorder/configuration/schema.py +++ b/src/dexorder/configuration/schema.py @@ -34,4 +34,4 @@ class Config: mirror_source_rpc_url: Optional[str] = None # source RPC for original pools mirror_env: Optional[str] = None mirror_pools: list[str] = field(default_factory=list) - metadata: Optional[str] = field(default='metadata.json') + metadata: Optional[str] = None diff --git a/src/dexorder/metadata.py b/src/dexorder/metadata.py index d89228d..3642981 100644 --- a/src/dexorder/metadata.py +++ b/src/dexorder/metadata.py @@ -135,13 +135,18 @@ def get_metadata(addr=None, *, chain_id=None): if config.metadata is None or generating_metadata: metadata = None else: - with open(config.metadata) as file: - metadata = json.load(file) - for chain_id, chain_info in metadata.items(): - chain_id = int(chain_id) - for t in chain_info['t']: - metadata_by_chainaddr[chain_id,t['a']] = t - for p in chain_info['p']: - metadata_by_chainaddr[chain_id,p['a']] = p - log.info(f'Loaded metadata from {config.metadata}') + try: + with open(config.metadata) as file: + metadata = json.load(file) + except FileNotFoundError: + log.warning(f'No metadata file at {config.metadata}') + metadata = None + else: + for chain_id, chain_info in metadata.items(): + chain_id = int(chain_id) + for t in chain_info['t']: + metadata_by_chainaddr[chain_id,t['a']] = t + for p in chain_info['p']: + metadata_by_chainaddr[chain_id,p['a']] = p + log.info(f'Loaded metadata from {config.metadata}') return metadata if addr is None else metadata_by_chainaddr.get((chain_id,addr))