72 lines
2.2 KiB
Python
72 lines
2.2 KiB
Python
"""Create sandwiches and sandwiched swaps tables
|
|
|
|
Revision ID: ead7eb8283b9
|
|
Revises: a5d80460f0e6
|
|
Create Date: 2021-12-03 16:37:28.077158
|
|
|
|
"""
|
|
import sqlalchemy as sa
|
|
|
|
from alembic import op
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "ead7eb8283b9"
|
|
down_revision = "52d75a7e0533"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
op.create_table(
|
|
"sandwiches",
|
|
sa.Column("id", sa.String(256), primary_key=True),
|
|
sa.Column("created_at", sa.TIMESTAMP, server_default=sa.func.now()),
|
|
sa.Column("block_number", sa.Numeric, nullable=False),
|
|
sa.Column("sandwicher_address", sa.String(256), nullable=False),
|
|
sa.Column("frontrun_swap_transaction_hash", sa.String(256), nullable=False),
|
|
sa.Column("frontrun_swap_trace_address", sa.ARRAY(sa.Integer), nullable=False),
|
|
sa.Column("backrun_swap_transaction_hash", sa.String(256), nullable=False),
|
|
sa.Column("backrun_swap_trace_address", sa.ARRAY(sa.Integer), nullable=False),
|
|
)
|
|
|
|
op.create_index(
|
|
"ik_sandwiches_frontrun",
|
|
"sandwiches",
|
|
[
|
|
"block_number",
|
|
"frontrun_swap_transaction_hash",
|
|
"frontrun_swap_trace_address",
|
|
],
|
|
)
|
|
|
|
op.create_index(
|
|
"ik_sandwiches_backrun",
|
|
"sandwiches",
|
|
["block_number", "backrun_swap_transaction_hash", "backrun_swap_trace_address"],
|
|
)
|
|
|
|
op.create_table(
|
|
"sandwiched_swaps",
|
|
sa.Column("created_at", sa.TIMESTAMP, server_default=sa.func.now()),
|
|
sa.Column("sandwich_id", sa.String(1024), primary_key=True),
|
|
sa.Column("block_number", sa.Numeric, primary_key=True),
|
|
sa.Column("transaction_hash", sa.String(66), primary_key=True),
|
|
sa.Column("trace_address", sa.ARRAY(sa.Integer), primary_key=True),
|
|
sa.ForeignKeyConstraint(["sandwich_id"], ["sandwiches.id"], ondelete="CASCADE"),
|
|
)
|
|
|
|
op.create_index(
|
|
"ik_sandwiched_swaps_secondary",
|
|
"sandwiched_swaps",
|
|
["block_number", "transaction_hash", "trace_address"],
|
|
)
|
|
|
|
|
|
def downgrade():
|
|
op.drop_index("ik_sandwiched_swaps_secondary")
|
|
op.drop_table("sandwiched_swaps")
|
|
op.drop_index("ik_sandwiches_frontrun")
|
|
op.drop_index("ik_sandwiches_backrun")
|
|
op.drop_table("sandwiches")
|