Compare commits

...

6 Commits

Author SHA1 Message Date
evgeny
ca54ef6c4b Bump version 2024-04-11 19:42:39 +07:00
Evgeny Medvedev
836f30e198 Merge pull request #488 from blockchain-etl/add_dencun_fields_to_postgres_tables
Add Dencun fields to postgres_tables.py
2024-04-11 20:41:49 +08:00
evgeny
1c6508f15d Add Dencun fields to postgres_tables.py 2024-04-11 19:38:27 +07:00
Evgeny Medvedev
a4d6f8fcb1 Merge pull request #487 from blockchain-etl/add_readthedocs_yaml
Add .readthedocs.yaml
2024-04-11 10:58:07 +08:00
evgeny
bc79d7d9bf Add .readthedocs.yaml 2024-04-11 09:56:49 +07:00
medvedev1088
7fdcf0f7b7 Bump version 2024-04-03 12:42:38 +08:00
6 changed files with 40 additions and 6 deletions

14
.readthedocs.yaml Normal file
View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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(

View File

@@ -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',