kopia lustrzana https://github.com/bugout-dev/moonworm
Merge branch 'CU-watch' into main
commit
0c2b6b279a
|
|
@ -1,4 +1,5 @@
|
||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
import pprint as pp
|
import pprint as pp
|
||||||
import time
|
import time
|
||||||
from os import stat
|
from os import stat
|
||||||
|
|
@ -21,6 +22,9 @@ from .crawler.function_call_crawler import (
|
||||||
)
|
)
|
||||||
from .crawler.log_scanner import _fetch_events_chunk
|
from .crawler.log_scanner import _fetch_events_chunk
|
||||||
|
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def _get_last_crawled_block(
|
def _get_last_crawled_block(
|
||||||
session: Session, contract_address: ChecksumAddress
|
session: Session, contract_address: ChecksumAddress
|
||||||
|
|
@ -60,14 +64,13 @@ def _add_function_call_labels(
|
||||||
)
|
)
|
||||||
.all()
|
.all()
|
||||||
)
|
)
|
||||||
print(f"{len(existing_function_call_labels)} existing labels")
|
|
||||||
# deletin existing labels
|
# deletin existing labels
|
||||||
for label in existing_function_call_labels:
|
for label in existing_function_call_labels:
|
||||||
session.delete(label)
|
session.delete(label)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if existing_function_call_labels:
|
if existing_function_call_labels:
|
||||||
print(
|
logger.info(
|
||||||
f"Deleting {len(existing_function_call_labels)} existing event labels"
|
f"Deleting {len(existing_function_call_labels)} existing event labels"
|
||||||
)
|
)
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
@ -75,7 +78,7 @@ def _add_function_call_labels(
|
||||||
try:
|
try:
|
||||||
session.commit()
|
session.commit()
|
||||||
except:
|
except:
|
||||||
print(f"Failed!!!\n{e}")
|
logger.error(f"Failed!!!\n{e}")
|
||||||
session.rollback()
|
session.rollback()
|
||||||
|
|
||||||
for function_call in function_calls:
|
for function_call in function_calls:
|
||||||
|
|
@ -96,13 +99,12 @@ def _add_function_call_labels(
|
||||||
)
|
)
|
||||||
session.add(label)
|
session.add(label)
|
||||||
try:
|
try:
|
||||||
print("Committing tx_call labels to database...")
|
|
||||||
session.commit()
|
session.commit()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
try:
|
try:
|
||||||
session.commit()
|
session.commit()
|
||||||
except:
|
except:
|
||||||
print(f"Failed!!!\n{e}")
|
logger.error(f"Failed!!!\n{e}")
|
||||||
session.rollback()
|
session.rollback()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -128,13 +130,13 @@ def _add_event_labels(session: Session, events: List[Dict[str, Any]]) -> None:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if existing_event_labels:
|
if existing_event_labels:
|
||||||
print(f"Deleting {len(existing_event_labels)} existing event labels")
|
logger.error(f"Deleting {len(existing_event_labels)} existing event labels")
|
||||||
session.commit()
|
session.commit()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
try:
|
try:
|
||||||
session.commit()
|
session.commit()
|
||||||
except:
|
except:
|
||||||
print(f"Failed!!!\n{e}")
|
logger.error(f"Failed!!!\n{e}")
|
||||||
session.rollback()
|
session.rollback()
|
||||||
|
|
||||||
for event in events:
|
for event in events:
|
||||||
|
|
@ -158,7 +160,7 @@ def _add_event_labels(session: Session, events: List[Dict[str, Any]]) -> None:
|
||||||
try:
|
try:
|
||||||
session.commit()
|
session.commit()
|
||||||
except:
|
except:
|
||||||
print(f"Failed!!!\n{e}")
|
logger.error(f"Failed!!!\n{e}")
|
||||||
session.rollback()
|
session.rollback()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -209,20 +211,20 @@ def watch_cu_contract(
|
||||||
if start_block is None:
|
if start_block is None:
|
||||||
if last_crawled_block is not None:
|
if last_crawled_block is not None:
|
||||||
current_block = last_crawled_block
|
current_block = last_crawled_block
|
||||||
print(f"Starting from block {current_block}, last crawled block")
|
logger.info(f"Starting from block {current_block}, last crawled block")
|
||||||
else:
|
else:
|
||||||
current_block = web3.eth.blockNumber - num_confirmations * 2
|
current_block = web3.eth.blockNumber - num_confirmations * 2
|
||||||
print(f"Starting from block {current_block}, current block")
|
logger.info(f"Starting from block {current_block}, current block")
|
||||||
else:
|
else:
|
||||||
current_block = start_block
|
current_block = start_block
|
||||||
if last_crawled_block is not None:
|
if last_crawled_block is not None:
|
||||||
if start_block > last_crawled_block:
|
if start_block > last_crawled_block:
|
||||||
print(
|
logger.info(
|
||||||
f"Starting from block {start_block}, last crawled block {last_crawled_block}"
|
f"Starting from block {start_block}, last crawled block {last_crawled_block}"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
current_block = last_crawled_block
|
current_block = last_crawled_block
|
||||||
print(f"Starting from last crawled block {start_block}")
|
logger.info(f"Starting from last crawled block {start_block}")
|
||||||
|
|
||||||
event_abis = [item for item in contract_abi if item["type"] == "event"]
|
event_abis = [item for item in contract_abi if item["type"] == "event"]
|
||||||
|
|
||||||
|
|
@ -240,7 +242,7 @@ def watch_cu_contract(
|
||||||
crawler.crawl(current_block, end_block)
|
crawler.crawl(current_block, end_block)
|
||||||
if state.state:
|
if state.state:
|
||||||
_add_function_call_labels(session, state.state)
|
_add_function_call_labels(session, state.state)
|
||||||
print(f"Got {len(state.state)} transaction calls:")
|
logger.info(f"Got {len(state.state)} transaction calls:")
|
||||||
state.flush()
|
state.flush()
|
||||||
|
|
||||||
for event_abi in event_abis:
|
for event_abi in event_abis:
|
||||||
|
|
@ -272,5 +274,6 @@ def watch_cu_contract(
|
||||||
progress_bar.set_description(
|
progress_bar.set_description(
|
||||||
f"Current block {end_block + 1}, Already watching for"
|
f"Current block {end_block + 1}, Already watching for"
|
||||||
)
|
)
|
||||||
|
logger.info(f"Current block {end_block + 1}")
|
||||||
progress_bar.update(end_block - current_block + 1)
|
progress_bar.update(end_block - current_block + 1)
|
||||||
current_block = end_block + 1
|
current_block = end_block + 1
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue