kopia lustrzana https://github.com/bugout-dev/moonstream
Fix Etherscan crawler so that we don't manually specify autogenerated id
rodzic
c12d4f9a36
commit
741383b503
|
|
@ -66,21 +66,16 @@ def get_address_id(db_session: Session, contract_address: str) -> int:
|
|||
if id is not None:
|
||||
return id[0]
|
||||
|
||||
latest_address_id = (
|
||||
db_session.query(EthereumAddress.id).order_by(text("id desc")).limit(1).one()
|
||||
)[0]
|
||||
|
||||
id = latest_address_id + 1
|
||||
smart_contract = EthereumAddress(
|
||||
id=id,
|
||||
address=contract_address,
|
||||
)
|
||||
try:
|
||||
db_session.add(smart_contract)
|
||||
db_session.commit()
|
||||
except:
|
||||
return smart_contract.id
|
||||
except Exception as e:
|
||||
db_session.rollback()
|
||||
return id
|
||||
raise e
|
||||
|
||||
|
||||
def crawl_step(db_session: Session, contract: VerifiedSmartContract, crawl_url: str):
|
||||
|
|
@ -112,8 +107,8 @@ def crawl_step(db_session: Session, contract: VerifiedSmartContract, crawl_url:
|
|||
object_key = f"/etherscan/v1/{contract.address}.json"
|
||||
push_to_bucket(contract_info, object_key)
|
||||
|
||||
try:
|
||||
eth_address_id = get_address_id(db_session, contract.address)
|
||||
|
||||
eth_label = EthereumLabel(
|
||||
label=ETHERSCAN_SMARTCONTRACTS_LABEL_NAME,
|
||||
address_id=eth_address_id,
|
||||
|
|
@ -126,8 +121,13 @@ def crawl_step(db_session: Session, contract: VerifiedSmartContract, crawl_url:
|
|||
try:
|
||||
db_session.add(eth_label)
|
||||
db_session.commit()
|
||||
except:
|
||||
except Exception as e:
|
||||
db_session.rollback()
|
||||
raise e
|
||||
except Exception as e:
|
||||
logger.error(
|
||||
f"Failed to add addresss label ${contract.address} to database\n{str(e)}"
|
||||
)
|
||||
|
||||
|
||||
def crawl(
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue