Fetch timestamp when creating blocks

This commit is contained in:
Luke Van Seters 2021-11-17 13:28:48 -05:00
parent dec628b7a9
commit caf645e923
2 changed files with 20 additions and 0 deletions

View File

@ -71,6 +71,7 @@ async def _fetch_block(w3, base_provider, block_number: int, retries: int = 0) -
return Block(
block_number=block_number,
block_timestamp=block_json["timestamp"],
miner=block_json["miner"],
base_fee_per_gas=base_fee_per_gas,
traces=traces,
@ -82,6 +83,7 @@ def _find_block(
trace_db_session: orm.Session,
block_number: int,
) -> Optional[Block]:
block_timestamp = _find_block_timestamp(trace_db_session, block_number)
traces = _find_traces(trace_db_session, block_number)
receipts = _find_receipts(trace_db_session, block_number)
base_fee_per_gas = _find_base_fee(trace_db_session, block_number)
@ -96,6 +98,7 @@ def _find_block(
return Block(
block_number=block_number,
block_timestamp=block_timestamp,
miner=miner_address,
base_fee_per_gas=base_fee_per_gas,
traces=traces,
@ -103,6 +106,22 @@ def _find_block(
)
def _find_block_timestamp(
trace_db_session: orm.Session,
block_number: int,
) -> Optional[int]:
result = trace_db_session.execute(
"SELECT block_timestamp FROM block_timestamps WHERE block_number = :block_number",
params={"block_number": block_number},
).one_or_none()
if result is None:
return None
else:
(block_timestamp,) = result
return block_timestamp
def _find_traces(
trace_db_session: orm.Session,
block_number: int,

View File

@ -38,6 +38,7 @@ class CallAction(Web3Model):
class Block(Web3Model):
block_number: int
block_timestamp: int
miner: str
base_fee_per_gas: int
traces: List[Trace]