mirror of
https://github.com/blockchain-etl/ethereum-etl.git
synced 2026-01-11 06:38:17 -05:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca54ef6c4b | ||
|
|
836f30e198 | ||
|
|
1c6508f15d | ||
|
|
a4d6f8fcb1 | ||
|
|
bc79d7d9bf | ||
|
|
7fdcf0f7b7 |
14
.readthedocs.yaml
Normal file
14
.readthedocs.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
# Read the Docs configuration file for MkDocs projects
|
||||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
||||
|
||||
# Required
|
||||
version: 2
|
||||
|
||||
# Set the version of Python and other tools you might need
|
||||
build:
|
||||
os: ubuntu-22.04
|
||||
tools:
|
||||
python: "3.12"
|
||||
|
||||
mkdocs:
|
||||
configuration: mkdocs.yml
|
||||
@@ -30,13 +30,18 @@
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
|
||||
class SimpleItemConverter:
|
||||
|
||||
def __init__(self, field_converters=None):
|
||||
self.field_converters = field_converters
|
||||
|
||||
def convert_item(self, item):
|
||||
return {
|
||||
key: self.convert_field(key, value) for key, value in item.items()
|
||||
}
|
||||
|
||||
def convert_field(self, key, value):
|
||||
return value
|
||||
if self.field_converters is not None and key in self.field_converters:
|
||||
return self.field_converters[key](value)
|
||||
else:
|
||||
return value
|
||||
|
||||
@@ -48,7 +48,7 @@ from ethereumetl.cli.stream import stream
|
||||
|
||||
|
||||
@click.group()
|
||||
@click.version_option(version='2.4.0')
|
||||
@click.version_option(version='2.4.2')
|
||||
@click.pass_context
|
||||
def cli(ctx):
|
||||
pass
|
||||
|
||||
@@ -62,8 +62,12 @@ def create_item_exporter(output):
|
||||
from blockchainetl.jobs.exporters.converters.unix_timestamp_item_converter import UnixTimestampItemConverter
|
||||
from blockchainetl.jobs.exporters.converters.int_to_decimal_item_converter import IntToDecimalItemConverter
|
||||
from blockchainetl.jobs.exporters.converters.list_field_item_converter import ListFieldItemConverter
|
||||
from blockchainetl.jobs.exporters.converters.simple_item_converter import SimpleItemConverter
|
||||
from ethereumetl.streaming.postgres_tables import BLOCKS, TRANSACTIONS, LOGS, TOKEN_TRANSFERS, TRACES, TOKENS, CONTRACTS
|
||||
|
||||
def array_to_str(val):
|
||||
return ','.join(val) if val is not None else None
|
||||
|
||||
item_exporter = PostgresItemExporter(
|
||||
output, item_type_to_insert_stmt_mapping={
|
||||
'block': create_insert_statement_for_table(BLOCKS),
|
||||
@@ -74,8 +78,12 @@ def create_item_exporter(output):
|
||||
'token': create_insert_statement_for_table(TOKENS),
|
||||
'contract': create_insert_statement_for_table(CONTRACTS),
|
||||
},
|
||||
converters=[UnixTimestampItemConverter(), IntToDecimalItemConverter(),
|
||||
ListFieldItemConverter('topics', 'topic', fill=4)])
|
||||
converters=[
|
||||
UnixTimestampItemConverter(),
|
||||
IntToDecimalItemConverter(),
|
||||
ListFieldItemConverter('topics', 'topic', fill=4),
|
||||
SimpleItemConverter(field_converters={'blob_versioned_hashes': array_to_str})
|
||||
])
|
||||
elif item_exporter_type == ItemExporterType.GCS:
|
||||
from blockchainetl.jobs.exporters.gcs_item_exporter import GcsItemExporter
|
||||
bucket, path = get_bucket_and_path_from_gcs_output(output)
|
||||
|
||||
@@ -49,6 +49,9 @@ BLOCKS = Table(
|
||||
Column('gas_used', BigInteger),
|
||||
Column('transaction_count', BigInteger),
|
||||
Column('base_fee_per_gas', BigInteger),
|
||||
Column('withdrawals_root', String),
|
||||
Column('blob_gas_used', BigInteger),
|
||||
Column('excess_blob_gas', BigInteger),
|
||||
)
|
||||
|
||||
TRANSACTIONS = Table(
|
||||
@@ -78,6 +81,10 @@ TRANSACTIONS = Table(
|
||||
Column('receipt_l1_gas_used', BigInteger),
|
||||
Column('receipt_l1_gas_price', BigInteger),
|
||||
Column('receipt_l1_fee_scalar', Float),
|
||||
Column('max_fee_per_blob_gas', BigInteger),
|
||||
Column('blob_versioned_hashes', String),
|
||||
Column('receipt_blob_gas_price', BigInteger),
|
||||
Column('receipt_blob_gas_used', BigInteger),
|
||||
)
|
||||
|
||||
LOGS = Table(
|
||||
|
||||
2
setup.py
2
setup.py
@@ -11,7 +11,7 @@ long_description = read('README.md') if os.path.isfile("README.md") else ""
|
||||
|
||||
setup(
|
||||
name='ethereum-etl',
|
||||
version='2.4.0',
|
||||
version='2.4.2',
|
||||
author='Evgeny Medvedev',
|
||||
author_email='evge.medvedev@gmail.com',
|
||||
description='Tools for exporting Ethereum blockchain data to CSV or JSON',
|
||||
|
||||
Reference in New Issue
Block a user