From 27e9a2242fd60c31b212d2b40135244632fe03ff Mon Sep 17 00:00:00 2001 From: kompotkot Date: Fri, 10 May 2024 10:40:20 +0000 Subject: [PATCH] Arbitrum One for moonstreamdb v3 models --- moonstreamdb-v3/moonstreamdbv3/alembic/env.py | 1 + .../e9f640a2b45b_arbitrum_one_blockchain.py | 67 +++++++++++++++++++ moonstreamdb-v3/moonstreamdbv3/models.py | 19 ++++++ moonstreamdb-v3/moonstreamdbv3/version.txt | 2 +- 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 moonstreamdb-v3/moonstreamdbv3/alembic/versions/e9f640a2b45b_arbitrum_one_blockchain.py diff --git a/moonstreamdb-v3/moonstreamdbv3/alembic/env.py b/moonstreamdb-v3/moonstreamdbv3/alembic/env.py index 37b29b4e..ee714d88 100644 --- a/moonstreamdb-v3/moonstreamdbv3/alembic/env.py +++ b/moonstreamdb-v3/moonstreamdbv3/alembic/env.py @@ -37,6 +37,7 @@ from moonstreamdbv3.models import ( ZkSyncEraSepoliaLabel, BaseLabel, ArbitrumNovaLabel, + ArbitrumOneLabel, ArbitrumSepoliaLabel, XaiLabel, XaiSepoliaLabel, diff --git a/moonstreamdb-v3/moonstreamdbv3/alembic/versions/e9f640a2b45b_arbitrum_one_blockchain.py b/moonstreamdb-v3/moonstreamdbv3/alembic/versions/e9f640a2b45b_arbitrum_one_blockchain.py new file mode 100644 index 00000000..a72c12db --- /dev/null +++ b/moonstreamdb-v3/moonstreamdbv3/alembic/versions/e9f640a2b45b_arbitrum_one_blockchain.py @@ -0,0 +1,67 @@ +"""Arbitrum One blockchain + +Revision ID: e9f640a2b45b +Revises: e9e1b43f49e1 +Create Date: 2024-05-10 10:39:21.257483 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision: str = 'e9f640a2b45b' +down_revision: Union[str, None] = 'e9e1b43f49e1' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('arbitrum_one_labels', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('label', sa.VARCHAR(length=256), nullable=False), + sa.Column('transaction_hash', sa.VARCHAR(length=128), nullable=False), + sa.Column('log_index', sa.Integer(), nullable=True), + sa.Column('block_number', sa.BigInteger(), nullable=False), + sa.Column('block_hash', sa.VARCHAR(length=256), nullable=False), + sa.Column('block_timestamp', sa.BigInteger(), nullable=False), + sa.Column('caller_address', sa.VARCHAR(length=64), nullable=True), + sa.Column('origin_address', sa.VARCHAR(length=64), nullable=True), + sa.Column('address', sa.VARCHAR(length=64), nullable=True), + sa.Column('label_name', sa.Text(), nullable=True), + sa.Column('label_type', sa.VARCHAR(length=64), nullable=True), + sa.Column('label_data', postgresql.JSONB(astext_type=sa.Text()), nullable=True), + sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text("TIMEZONE('utc', statement_timestamp())"), nullable=False), + sa.PrimaryKeyConstraint('id', name=op.f('pk_arbitrum_one_labels')), + sa.UniqueConstraint('id', name=op.f('uq_arbitrum_one_labels_id')) + ) + op.create_index('ix_arbitrum_one_labels_addr_block_num', 'arbitrum_one_labels', ['address', 'block_number'], unique=False) + op.create_index('ix_arbitrum_one_labels_addr_block_ts', 'arbitrum_one_labels', ['address', 'block_timestamp'], unique=False) + op.create_index(op.f('ix_arbitrum_one_labels_address'), 'arbitrum_one_labels', ['address'], unique=False) + op.create_index(op.f('ix_arbitrum_one_labels_block_number'), 'arbitrum_one_labels', ['block_number'], unique=False) + op.create_index(op.f('ix_arbitrum_one_labels_caller_address'), 'arbitrum_one_labels', ['caller_address'], unique=False) + op.create_index(op.f('ix_arbitrum_one_labels_label'), 'arbitrum_one_labels', ['label'], unique=False) + op.create_index(op.f('ix_arbitrum_one_labels_label_name'), 'arbitrum_one_labels', ['label_name'], unique=False) + op.create_index(op.f('ix_arbitrum_one_labels_label_type'), 'arbitrum_one_labels', ['label_type'], unique=False) + op.create_index(op.f('ix_arbitrum_one_labels_origin_address'), 'arbitrum_one_labels', ['origin_address'], unique=False) + op.create_index(op.f('ix_arbitrum_one_labels_transaction_hash'), 'arbitrum_one_labels', ['transaction_hash'], unique=False) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index(op.f('ix_arbitrum_one_labels_transaction_hash'), table_name='arbitrum_one_labels') + op.drop_index(op.f('ix_arbitrum_one_labels_origin_address'), table_name='arbitrum_one_labels') + op.drop_index(op.f('ix_arbitrum_one_labels_label_type'), table_name='arbitrum_one_labels') + op.drop_index(op.f('ix_arbitrum_one_labels_label_name'), table_name='arbitrum_one_labels') + op.drop_index(op.f('ix_arbitrum_one_labels_label'), table_name='arbitrum_one_labels') + op.drop_index(op.f('ix_arbitrum_one_labels_caller_address'), table_name='arbitrum_one_labels') + op.drop_index(op.f('ix_arbitrum_one_labels_block_number'), table_name='arbitrum_one_labels') + op.drop_index(op.f('ix_arbitrum_one_labels_address'), table_name='arbitrum_one_labels') + op.drop_index('ix_arbitrum_one_labels_addr_block_ts', table_name='arbitrum_one_labels') + op.drop_index('ix_arbitrum_one_labels_addr_block_num', table_name='arbitrum_one_labels') + op.drop_table('arbitrum_one_labels') + # ### end Alembic commands ### diff --git a/moonstreamdb-v3/moonstreamdbv3/models.py b/moonstreamdb-v3/moonstreamdbv3/models.py index 0613ca2b..b8b9e7be 100644 --- a/moonstreamdb-v3/moonstreamdbv3/models.py +++ b/moonstreamdb-v3/moonstreamdbv3/models.py @@ -307,6 +307,25 @@ class ArbitrumNovaLabel(EvmBasedLabel): # type: ignore ) +class ArbitrumOneLabel(EvmBasedLabel): # type: ignore + __tablename__ = "arbitrum_one_labels" + + __table_args__ = ( + Index( + "ix_arbitrum_one_labels_addr_block_num", + "address", + "block_number", + unique=False, + ), + Index( + "ix_arbitrum_one_labels_addr_block_ts", + "address", + "block_timestamp", + unique=False, + ), + ) + + class ArbitrumSepoliaLabel(EvmBasedLabel): # type: ignore __tablename__ = "arbitrum_sepolia_labels" diff --git a/moonstreamdb-v3/moonstreamdbv3/version.txt b/moonstreamdb-v3/moonstreamdbv3/version.txt index 6812f812..05b19b1f 100644 --- a/moonstreamdb-v3/moonstreamdbv3/version.txt +++ b/moonstreamdb-v3/moonstreamdbv3/version.txt @@ -1 +1 @@ -0.0.3 \ No newline at end of file +0.0.4 \ No newline at end of file