From 5efc1fa82e8def716542c4a4662338fecabf5d38 Mon Sep 17 00:00:00 2001 From: tim Date: Sat, 19 Oct 2024 15:57:46 -0400 Subject: [PATCH] token upsert --- src/dexorder/addrmeta.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dexorder/addrmeta.py b/src/dexorder/addrmeta.py index 913f974..4cdf066 100644 --- a/src/dexorder/addrmeta.py +++ b/src/dexorder/addrmeta.py @@ -21,7 +21,15 @@ class AddressMetadata (TypedDict): def save_addrmeta(address: str, meta: AddressMetadata): if meta['type'] == 'Token': meta: OldTokenDict - db.session.add(Token.load(meta)) + updated = Token.load(meta) + token = db.session.get(Token, (current_chain.get().id, address)) + if token is None: + db.session.add(updated) + else: + token.name = updated.name + token.symbol = updated.symbol + token.decimals = updated.decimals + token.approved = updated.approved elif meta['type'] == 'Pool': meta: OldPoolDict # Pools had to be updated for a repair, so we must first check if the pool existed already before inserting.