kopia lustrzana https://github.com/bugout-dev/moonstream
1565 wiersze
45 KiB
Python
1565 wiersze
45 KiB
Python
"""
|
|
Moonstream database V3
|
|
|
|
Example of label_data column record:
|
|
{
|
|
"label": "ERC20",
|
|
"label_data": {
|
|
"name": "Uniswap",
|
|
"symbol": "UNI"
|
|
}
|
|
},
|
|
{
|
|
"label": "Exchange"
|
|
"label_data": {...}
|
|
}
|
|
"""
|
|
|
|
import os
|
|
import uuid
|
|
|
|
from sqlalchemy import (
|
|
VARCHAR,
|
|
BigInteger,
|
|
Column,
|
|
DateTime,
|
|
Index,
|
|
Integer,
|
|
LargeBinary,
|
|
MetaData,
|
|
Text,
|
|
)
|
|
from sqlalchemy.dialects.postgresql import JSONB, UUID
|
|
from sqlalchemy.ext.compiler import compiles
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
from sqlalchemy.sql import expression, text
|
|
|
|
"""
|
|
Naming conventions doc
|
|
https://docs.sqlalchemy.org/en/20/core/constraints.html#configuring-constraint-naming-conventions
|
|
"""
|
|
convention = {
|
|
"ix": "ix_%(column_0_label)s",
|
|
"uq": "uq_%(table_name)s_%(column_0_name)s",
|
|
"ck": "ck_%(table_name)s_%(constraint_name)s",
|
|
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
|
|
"pk": "pk_%(table_name)s",
|
|
}
|
|
metadata = MetaData(naming_convention=convention)
|
|
Base = declarative_base(metadata=metadata)
|
|
|
|
"""
|
|
Creating a utcnow function which runs on the Posgres database server when created_at and updated_at
|
|
fields are populated.
|
|
Following:
|
|
1. https://docs.sqlalchemy.org/en/13/core/compiler.html#utc-timestamp-function
|
|
2. https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
|
|
3. https://stackoverflow.com/a/33532154/13659585
|
|
"""
|
|
|
|
MOONSTREAM_DB_V3_SCHEMA_NAME = os.environ.get(
|
|
"MOONSTREAM_DB_V3_SCHEMA_NAME", "blockchain"
|
|
)
|
|
|
|
|
|
class utcnow(expression.FunctionElement):
|
|
type = DateTime # type: ignore
|
|
|
|
|
|
@compiles(utcnow, "postgresql")
|
|
def pg_utcnow(element, compiler, **kwargs):
|
|
return "TIMEZONE('utc', statement_timestamp())"
|
|
|
|
|
|
class EvmBasedLabel(Base): # type: ignore
|
|
__abstract__ = True
|
|
|
|
id = Column(
|
|
UUID(as_uuid=True),
|
|
primary_key=True,
|
|
default=uuid.uuid4,
|
|
unique=True,
|
|
nullable=False,
|
|
)
|
|
label = Column(VARCHAR(256), nullable=False, index=True)
|
|
|
|
transaction_hash = Column(
|
|
VARCHAR(128),
|
|
nullable=True,
|
|
index=True,
|
|
)
|
|
log_index = Column(Integer, nullable=True)
|
|
|
|
block_number = Column(
|
|
BigInteger,
|
|
nullable=False,
|
|
index=True,
|
|
)
|
|
block_hash = Column(VARCHAR(256), nullable=True)
|
|
block_timestamp = Column(BigInteger, nullable=True)
|
|
|
|
caller_address = Column(
|
|
LargeBinary,
|
|
nullable=True,
|
|
index=True,
|
|
)
|
|
origin_address = Column(
|
|
LargeBinary,
|
|
nullable=True,
|
|
index=True,
|
|
)
|
|
|
|
address = Column(
|
|
LargeBinary,
|
|
nullable=False,
|
|
index=True,
|
|
)
|
|
|
|
label_name = Column(Text, nullable=True, index=True)
|
|
label_type = Column(VARCHAR(64), nullable=True, index=True)
|
|
label_data = Column(JSONB, nullable=True)
|
|
|
|
created_at = Column(
|
|
DateTime(timezone=True), server_default=utcnow(), nullable=False
|
|
)
|
|
|
|
|
|
class EthereumLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "ethereum_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_ethereum_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_ethereum_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_ethereum_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_ethereum_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_ethereum_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_ethereum_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class SepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class PolygonLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "polygon_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_polygon_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_polygon_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_polygon_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_polygon_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_polygon_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_polygon_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class MumbaiLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "mumbai_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_mumbai_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_mumbai_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_mumbai_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_mumbai_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_mumbai_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_mumbai_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class AmoyLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "amoy_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_amoy_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_amoy_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_amoy_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_amoy_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_amoy_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_amoy_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class XDaiLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "xdai_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_xdai_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_xdai_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_xdai_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_xdai_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_xdai_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_xdai_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class ZkSyncEraLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "zksync_era_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_zksync_era_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_zksync_era_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_zksync_era_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_zksync_era_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_zksync_era_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_zksync_era_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class ZkSyncEraSepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "zksync_era_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_zksync_era_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_zksync_era_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_zksync_era_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_zksync_era_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_zksync_era_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_zksync_era_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class BaseLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "base_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_base_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_base_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_base_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_base_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_base_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_base_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class ArbitrumNovaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "arbitrum_nova_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_arbitrum_nova_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_arbitrum_nova_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_arbitrum_nova_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_nova_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_nova_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_nova_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
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,
|
|
),
|
|
Index(
|
|
"uk_arbitrum_one_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_one_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_one_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_one_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class ArbitrumSepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "arbitrum_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_arbitrum_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_arbitrum_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_arbitrum_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_arbitrum_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class Game7OrbitArbitrumSepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "game7_orbit_arbitrum_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_g7o_arbitrum_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_g7o_arbitrum_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_g7o_arbitrum_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_g7o_arbitrum_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_g7o_arbitrum_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_g7o_arbitrum_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class XaiLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "xai_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_xai_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_xai_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_xai_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_xai_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_xai_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_xai_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class XaiSepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "xai_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_xai_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_xai_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_xai_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_xai_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_xai_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_xai_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class AvalancheLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "avalanche_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_avalanche_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_avalanche_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_avalanche_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_avalanche_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_avalanche_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_avalanche_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class AvalancheFujiLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "avalanche_fuji_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_avalanche_fuji_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_avalanche_fuji_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_avalanche_fuji_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_avalanche_fuji_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_avalanche_fuji_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_avalanche_fuji_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class BlastLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "blast_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_blast_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_blast_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_blast_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_blast_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_blast_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_blast_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class BlastSepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "blast_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_blast_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_blast_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_blast_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_blast_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_blast_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_blast_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class ProofOfPlayApexLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "proofofplay_apex_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_proofofplay_apex_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_proofofplay_apex_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_proofofplay_apex_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_proofofplay_apex_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_proofofplay_apex_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_proofofplay_apex_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class StarknetLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "starknet_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_starknet_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_starknet_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_starknet_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_starknet_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_starknet_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_starknet_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class StarknetSepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "starknet_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_starknet_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_starknet_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_starknet_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_starknet_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_starknet_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_starknet_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class MantleLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "mantle_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_mantle_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_mantle_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_mantle_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_mantle_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_mantle_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_mantle_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class MantleSepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "mantle_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_mantle_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_mantle_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_mantle_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_mantle_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_mantle_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_mantle_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class ImxZkevmLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "imx_zkevm_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_imx_zkevm_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_imx_zkevm_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_imx_zkevm_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_imx_zkevm_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_imx_zkevm_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_imx_zkevm_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class ImxZkevmSepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "imx_zkevm_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_imx_zkevm_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_imx_zkevm_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_imx_zkevm_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_imx_zkevm_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_imx_zkevm_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_imx_zkevm_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class Game7Label(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "game7_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_game7_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_game7_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_game7_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_game7_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_game7_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_game7_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class Game7TestnetLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "game7_testnet_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_game7_testnet_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_game7_testnet_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_game7_testnet_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_game7_testnet_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_game7_testnet_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_game7_testnet_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class B3Label(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "b3_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_b3_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_b3_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_b3_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_b3_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_b3_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_b3_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class B3SepoliaLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "b3_sepolia_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_b3_sepolia_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_b3_sepolia_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_b3_sepolia_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_b3_sepolia_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_b3_sepolia_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_b3_sepolia_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class RoninLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "ronin_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_ronin_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_ronin_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_ronin_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_ronin_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_ronin_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_ronin_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|
|
|
|
|
|
class RoninSaigonLabel(EvmBasedLabel): # type: ignore
|
|
__tablename__ = "ronin_saigon_labels"
|
|
|
|
__table_args__ = (
|
|
Index(
|
|
"ix_ronin_saigon_labels_addr_block_num",
|
|
"address",
|
|
"block_number",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"ix_ronin_saigon_labels_addr_block_ts",
|
|
"address",
|
|
"block_timestamp",
|
|
unique=False,
|
|
),
|
|
Index(
|
|
"uk_ronin_saigon_labels_tx_hash_tx_call",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_ronin_saigon_labels_tx_hash_log_idx_evt",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer' and label_type='event'"),
|
|
),
|
|
Index(
|
|
"uk_ronin_saigon_labels_tx_hash_tx_call_raw",
|
|
"transaction_hash",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='tx_call'"),
|
|
),
|
|
Index(
|
|
"uk_ronin_saigon_labels_tx_hash_log_idx_evt_raw",
|
|
"transaction_hash",
|
|
"log_index",
|
|
unique=True,
|
|
postgresql_where=text("label='seer-raw' and label_type='event'"),
|
|
),
|
|
)
|