From 6b5dc2852c40e1b7b316ed59b313e9327a4f4a98 Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 17 Sep 2024 16:25:39 +0300 Subject: [PATCH] Add models. --- .../moonstreamdbv3/models_indexes.py | 83 ++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/moonstreamdb-v3/moonstreamdbv3/models_indexes.py b/moonstreamdb-v3/moonstreamdbv3/models_indexes.py index 30681e4c..29284c96 100644 --- a/moonstreamdb-v3/moonstreamdbv3/models_indexes.py +++ b/moonstreamdb-v3/moonstreamdbv3/models_indexes.py @@ -15,7 +15,7 @@ from sqlalchemy import ( Text, UniqueConstraint, ) -from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.dialects.postgresql import UUID, JSONB from sqlalchemy.ext.compiler import compiles from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.sql import expression @@ -103,6 +103,24 @@ class EvmBasedReorgs(Base): block_hash = Column(VARCHAR(256), nullable=False, index=True) +class evmBasedContracts(Base): + __abstract__ = True + address = Column(LargeBinary(length=20), primary_key=True, nullable=False) + bytecode = Column(Text, nullable=False) + abi = Column(JSONB, nullable=True) + deployed_at_block_number = Column(BigInteger, nullable=False) + deployed_at_block_hash = Column(VARCHAR(256), nullable=False) + deployed_at_block_timestamp = Column(BigInteger, nullable=False) + name = Column(VARCHAR(256), nullable=True, index=True) + statistics = Column(JSONB, nullable=True) + created_at = Column( + DateTime(timezone=True), server_default=utcnow(), nullable=False + ) + updated_at = Column( + DateTime(timezone=True), server_default=utcnow(), nullable=False + ) + + ### Ethereum @@ -155,6 +173,10 @@ class EthereumReorgs(EvmBasedReorgs): __tablename__ = "ethereum_reorgs" +class EthereumContracts(evmBasedContracts): + __tablename__ = "ethereum_contracts" + + ### Sepolia @@ -211,6 +233,10 @@ class SepoliaReorgs(EvmBasedReorgs): __tablename__ = "sepolia_reorgs" +class SepoliaContracts(evmBasedContracts): + __tablename__ = "sepolia_contracts" + + ### Polygon @@ -256,6 +282,10 @@ class PolygonReorgs(EvmBasedReorgs): __tablename__ = "polygon_reorgs" +class PolygonContracts(evmBasedContracts): + __tablename__ = "polygon_contracts" + + ### Xai @@ -301,6 +331,10 @@ class XaiReorgs(EvmBasedReorgs): __tablename__ = "xai_reorgs" +class XaiContracts(evmBasedContracts): + __tablename__ = "xai_contracts" + + ### Xai Sepolia @@ -350,6 +384,10 @@ class XaiSepoliaReorgs(EvmBasedReorgs): __tablename__ = "xai_sepolia_reorgs" +class XaiSepoliaContracts(evmBasedContracts): + __tablename__ = "xai_sepolia_contracts" + + ### Arbitrum One @@ -402,6 +440,10 @@ class ArbitrumOneReorgs(EvmBasedReorgs): __tablename__ = "arbitrum_one_reorgs" +class ArbitrumOneContracts(evmBasedContracts): + __tablename__ = "arbitrum_one_contracts" + + ### Arbitrum Sepolia @@ -454,6 +496,10 @@ class ArbitrumSepoliaReorgs(EvmBasedReorgs): __tablename__ = "arbitrum_sepolia_reorgs" +class ArbitrumSepoliaContracts(evmBasedContracts): + __tablename__ = "arbitrum_sepolia_contracts" + + ### Game7 Orbit Arbitrum Sepolia @@ -512,6 +558,10 @@ class Game7OrbitArbitrumSepoliaReorgs(EvmBasedReorgs): __tablename__ = "game7_orbit_arbitrum_sepolia_reorgs" +class Game7OrbitArbitrumSepoliaContracts(evmBasedContracts): + __tablename__ = "game7_orbit_arbitrum_sepolia_contracts" + + ### Mantle @@ -562,6 +612,10 @@ class MantleReorgs(EvmBasedReorgs): __tablename__ = "mantle_reorgs" +class MantleContracts(evmBasedContracts): + __tablename__ = "mantle_contracts" + + ### Mantle Sepolia @@ -617,6 +671,10 @@ class MantleSepoliaReorgs(EvmBasedReorgs): __tablename__ = "mantle_sepolia_reorgs" +class MantleSepoliaContracts(evmBasedContracts): + __tablename__ = "mantle_sepolia_contracts" + + ### Immutable zkEvm @@ -672,6 +730,10 @@ class ImxZkevmReorgs(EvmBasedReorgs): __tablename__ = "imx_zkevm_reorgs" +class ImxZkevmContracts(evmBasedContracts): + __tablename__ = "imx_zkevm_contracts" + + ### Immutable zkEvm Sepolia @@ -727,6 +789,13 @@ class ImxZkevmSepoliaReorgs(EvmBasedReorgs): __tablename__ = "imx_zkevm_sepolia_reorgs" +class ImxZkevmSepoliaContracts(evmBasedContracts): + __tablename__ = "imx_zkevm_sepolia_contracts" + + +### Game7 Testnet + + class Game7TestnetBlockIndex(EvmBasedBlocks): __tablename__ = "game7_testnet_blocks" @@ -775,6 +844,10 @@ class Game7TestnetReorgs(EvmBasedReorgs): __tablename__ = "game7_testnet_reorgs" +class Game7TestnetContracts(evmBasedContracts): + __tablename__ = "game7_testnet_contracts" + + class B3BlockIndex(EvmBasedBlocks): __tablename__ = "b3_blocks" @@ -783,6 +856,10 @@ class B3Reorgs(EvmBasedReorgs): __tablename__ = "b3_reorgs" +class B3Contracts(evmBasedContracts): + __tablename__ = "b3_contracts" + + class B3SepoliaBlockIndex(EvmBasedBlocks): __tablename__ = "b3_sepolia_blocks" @@ -791,6 +868,10 @@ class B3SepoliaReorgs(EvmBasedReorgs): __tablename__ = "b3_sepolia_reorgs" +class B3SepoliaContracts(evmBasedContracts): + __tablename__ = "b3_sepolia_contracts" + + ### ABI Jobs