From 4b909ad88ecd0850410768ea49f90be0e8528657 Mon Sep 17 00:00:00 2001 From: Luke Van Seters Date: Mon, 13 Dec 2021 20:05:35 -0500 Subject: [PATCH] Add tables for sandwiches --- ...create_sandwiches_and_sandwiched_swaps_.py | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 alembic/versions/ead7eb8283b9_create_sandwiches_and_sandwiched_swaps_.py diff --git a/alembic/versions/ead7eb8283b9_create_sandwiches_and_sandwiched_swaps_.py b/alembic/versions/ead7eb8283b9_create_sandwiches_and_sandwiched_swaps_.py new file mode 100644 index 0000000..783eb49 --- /dev/null +++ b/alembic/versions/ead7eb8283b9_create_sandwiches_and_sandwiched_swaps_.py @@ -0,0 +1,71 @@ +"""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")