metadata-arb1.json

This commit is contained in:
tim
2024-10-07 14:17:32 -04:00
parent 8d5209a72a
commit 6ca2b4247b
5 changed files with 15 additions and 64 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,28 +0,0 @@
{
"42161": {
"t": [
{
"a": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
"n": "Wrapped Ether",
"s": "WETH",
"d": 18
},
{
"a": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"n": "USD Coin (Arbitrum Native)",
"s": "USDC",
"d": 6
}
],
"p": [
{
"a": "0xC6962004f452bE9203591991D15f6b388e09E8D0",
"b": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
"q": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"f": 500,
"e": 1,
"d": 12
}
]
}
}

View File

@@ -7,7 +7,7 @@ import sys
from sqlalchemy import select from sqlalchemy import select
from dexorder import db from dexorder import db, ADDRESS_0
from dexorder.configuration import parse_args from dexorder.configuration import parse_args
from dexorder.database.model import Pool, Token from dexorder.database.model import Pool, Token
from dexorder.metadata import generate_metadata from dexorder.metadata import generate_metadata
@@ -21,7 +21,7 @@ def main():
parse_args() parse_args()
db.connect(migrate=False) db.connect(migrate=False)
tokens = db.session.scalars(select(Token)) tokens = db.session.scalars(select(Token))
pools = db.session.scalars(select(Pool)) pools = db.session.scalars(select(Pool).where(Pool.base!=ADDRESS_0 and Pool.quote!=ADDRESS_0))
generate_metadata(tokens, pools) generate_metadata(tokens, pools)

View File

@@ -56,10 +56,10 @@ def dump_tokens(out, tokens):
dump(out, ',') dump(out, ',')
if isinstance(token, Token): if isinstance(token, Token):
token: Token token: Token
a = token.address, a = token.address
n = token.name, n = token.name
s = token.symbol, s = token.symbol
d = token.decimals, d = token.decimals
x = None x = None
elif 'a' in token: elif 'a' in token:
token: TokenDict token: TokenDict

View File

@@ -23,9 +23,13 @@ log = logging.getLogger(__name__)
async def get_pool(address: str) -> OldPoolDict: async def get_pool(address: str) -> OldPoolDict:
try: try:
return address_metadata[address] result: OldPoolDict = address_metadata[address]
except KeyError: except KeyError:
result = address_metadata[address] = await load_pool(address) result = address_metadata[address] = await load_pool(address)
else:
if result['base'] == ADDRESS_0 or result['quote'] == ADDRESS_0:
log.warning(f'Repairing bad pool {address}')
result = address_metadata[address] = await load_pool(address)
return result return result
@@ -41,6 +45,8 @@ async def load_pool(address: str) -> OldPoolDict:
try: try:
v3 = UniswapV3Pool(address) v3 = UniswapV3Pool(address)
t0, t1 = await asyncio.gather(v3.token0(), v3.token1()) t0, t1 = await asyncio.gather(v3.token0(), v3.token1())
if t0 == ADDRESS_0 or t1 == ADDRESS_0:
raise ValueError(f'Pool tokens had a zero address. pool: {address} tokens: {t0} {t1}', address, t0, t1)
token0, token1 = await asyncio.gather(get_token(t0), get_token(t1)) token0, token1 = await asyncio.gather(get_token(t0), get_token(t1))
# This is an old conditional that checks for token approval before handling the data. The backend currently # This is an old conditional that checks for token approval before handling the data. The backend currently
# handles all pools and token regardless of approval. # handles all pools and token regardless of approval.