addrmeta can repair pools
This commit is contained in:
@@ -2,6 +2,7 @@ import logging
|
||||
from typing import TypedDict
|
||||
|
||||
from dexorder import db
|
||||
from dexorder.base.chain import current_chain
|
||||
from dexorder.blockstate import BlockDict
|
||||
from dexorder.database.model import Pool
|
||||
from dexorder.database.model.pool import OldPoolDict
|
||||
@@ -23,7 +24,17 @@ def save_addrmeta(address: str, meta: AddressMetadata):
|
||||
db.session.add(Token.load(meta))
|
||||
elif meta['type'] == 'Pool':
|
||||
meta: OldPoolDict
|
||||
db.session.add(Pool.load(meta))
|
||||
# Pools had to be updated for a repair, so we must first check if the pool existed already before inserting.
|
||||
updated = Pool.load(meta)
|
||||
pool = db.session.get(Pool, (current_chain.get().id, address))
|
||||
if pool is None:
|
||||
db.session.add(updated)
|
||||
else:
|
||||
pool.exchange = updated.exchange
|
||||
pool.base = updated.base
|
||||
pool.quote = updated.quote
|
||||
pool.fee = updated.fee
|
||||
pool.decimals = updated.decimals
|
||||
else:
|
||||
log.warning(f'Address {address} had unknown metadata type {meta["type"]}')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user