diff --git a/crawlers/mooncrawl/mooncrawl/ethereum.py b/crawlers/mooncrawl/mooncrawl/ethereum.py index e33350ad..c02a9eb5 100644 --- a/crawlers/mooncrawl/mooncrawl/ethereum.py +++ b/crawlers/mooncrawl/mooncrawl/ethereum.py @@ -61,6 +61,7 @@ def add_block(db_session, block: Any) -> None: extra_data=block.extraData.hex(), gas_limit=block.gasLimit, gas_used=block.gasUsed, + base_fee_per_gas=block.get("baseFeePerGas", None), hash=block.hash.hex(), logs_bloom=block.logsBloom.hex(), miner=block.miner, @@ -91,9 +92,12 @@ def add_block_transactions(db_session, block: Any) -> None: to_address=tx.to, gas=tx.gas, gas_price=tx.gasPrice, + max_fee_per_gas=tx.get("maxFeePerGas", None), + max_priority_fee_per_gas=tx.get("maxPriorityFeePerGas", None), input=tx.input, nonce=tx.nonce, transaction_index=tx.transactionIndex, + transaction_type=int(tx["type"], 0) if tx["type"] is not None else None, value=tx.value, ) db_session.add(tx_obj) diff --git a/crawlers/mooncrawl/requirements.txt b/crawlers/mooncrawl/requirements.txt index 1d81a7a3..529b1e94 100644 --- a/crawlers/mooncrawl/requirements.txt +++ b/crawlers/mooncrawl/requirements.txt @@ -12,7 +12,7 @@ chardet==4.0.0 charset-normalizer==2.0.4 click==8.0.1 cytoolz==0.11.0 --e git+https://git@github.com/bugout-dev/moonstream.git@6b5b6049b58b1edf0e5de261614c616e8e034b6e#egg=moonstreamdb&subdirectory=db +-e git+https://git@github.com/bugout-dev/moonstream.git@0a771ddfbca1254be331149ccf2d162aa09b7bc0#egg=moonstreamdb&subdirectory=db eth-abi==2.1.1 eth-account==0.5.5 eth-hash==0.3.2 diff --git a/crawlers/mooncrawl/setup.py b/crawlers/mooncrawl/setup.py index 5ab37727..bc387784 100644 --- a/crawlers/mooncrawl/setup.py +++ b/crawlers/mooncrawl/setup.py @@ -34,7 +34,7 @@ setup( install_requires=[ "boto3", "bugout >= 0.1.17", - "moonstreamdb @ git+https://git@github.com/bugout-dev/moonstream.git@6b5b6049b58b1edf0e5de261614c616e8e034b6e#egg=moonstreamdb&subdirectory=db", + "moonstreamdb @ git+https://git@github.com/bugout-dev/moonstream.git@0a771ddfbca1254be331149ccf2d162aa09b7bc0#egg=moonstreamdb&subdirectory=db", "humbug", "python-dateutil", "requests", diff --git a/db/alembic/versions/0b46c8e17bf2_fields_for_eip_1559.py b/db/alembic/versions/0b46c8e17bf2_fields_for_eip_1559.py new file mode 100644 index 00000000..93863217 --- /dev/null +++ b/db/alembic/versions/0b46c8e17bf2_fields_for_eip_1559.py @@ -0,0 +1,34 @@ +"""fields-for-eip-1559 + +Revision ID: 0b46c8e17bf2 +Revises: 240476c67b9f +Create Date: 2021-10-26 09:52:17.367528 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = '0b46c8e17bf2' +down_revision = '240476c67b9f' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('ethereum_blocks', sa.Column('base_fee_per_gas', sa.Numeric(precision=78, scale=0), nullable=True)) + op.add_column('ethereum_transactions', sa.Column('max_fee_per_gas', sa.Numeric(precision=78, scale=0), nullable=True)) + op.add_column('ethereum_transactions', sa.Column('max_priority_fee_per_gas', sa.Numeric(precision=78, scale=0), nullable=True)) + op.add_column('ethereum_transactions', sa.Column('transaction_type', sa.Integer(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('ethereum_transactions', 'transaction_type') + op.drop_column('ethereum_transactions', 'max_priority_fee_per_gas') + op.drop_column('ethereum_transactions', 'max_fee_per_gas') + op.drop_column('ethereum_blocks', 'base_fee_per_gas') + # ### end Alembic commands ### diff --git a/db/moonstreamdb/models.py b/db/moonstreamdb/models.py index 40c0ef93..f88c8bea 100644 --- a/db/moonstreamdb/models.py +++ b/db/moonstreamdb/models.py @@ -59,6 +59,7 @@ class EthereumBlock(Base): # type: ignore extra_data = Column(VARCHAR(128)) gas_limit = Column(BigInteger) gas_used = Column(BigInteger) + base_fee_per_gas = Column(Numeric(precision=78, scale=0), nullable=True) hash = Column(VARCHAR(256), index=True) logs_bloom = Column(VARCHAR(1024)) miner = Column(VARCHAR(256)) @@ -92,9 +93,12 @@ class EthereumTransaction(Base): # type: ignore to_address = Column(VARCHAR(256), index=True) gas = Column(Numeric(precision=78, scale=0), index=True) gas_price = Column(Numeric(precision=78, scale=0), index=True) + max_fee_per_gas = Column(Numeric(precision=78, scale=0), nullable=True) + max_priority_fee_per_gas = Column(Numeric(precision=78, scale=0), nullable=True) input = Column(Text) nonce = Column(VARCHAR(256)) transaction_index = Column(BigInteger) + transaction_type = Column(Integer, nullable=True) value = Column(Numeric(precision=78, scale=0), index=True) indexed_at = Column(