├── .dockerignore ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── improvement.md └── workflows │ ├── build.yml │ ├── docs.yml │ ├── installer.yml │ ├── release.yml │ └── test.yml ├── .gitignore ├── .vscode ├── launch.json ├── mcp.json └── settings.json ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── brandkit └── dipdup │ ├── png │ ├── dipdup logo 200 no background.png │ ├── dipdup logo 200.png │ ├── dipdup logo 400 no background.png │ ├── dipdup logo 400.png │ └── dipdup logo background.png │ └── svg │ └── dipdup logo svg.svg ├── docs ├── 0.quickstart-evm.md ├── 0.quickstart-starknet.md ├── 0.quickstart-substrate.md ├── 0.quickstart-tezos.md ├── 1.getting-started │ ├── 1.installation.md │ ├── 10.hooks.md │ ├── 2.core-concepts.md │ ├── 3.config.md │ ├── 4.package.md │ ├── 5.database.md │ ├── 6.models.md │ ├── 7.datasources.md │ ├── 8.indexes.md │ ├── 9.handlers.md │ └── _dir.yml ├── 10.supported-networks │ ├── 0.overview.md │ ├── 1.arbitrum.md │ ├── 10.canto.md │ ├── 11.core.md │ ├── 12.cyber.md │ ├── 13.cyberconnect.md │ ├── 14.dfk-chain.md │ ├── 15.dogechain.md │ ├── 16.ethereum.md │ ├── 17.etherlink.md │ ├── 18.exosama.md │ ├── 19.fantom.md │ ├── 2.astar.md │ ├── 20.flare.md │ ├── 21.gnosis.md │ ├── 22.immutable-zkevm.md │ ├── 23.hokum.md │ ├── 24.kakarot.md │ ├── 25.karak.md │ ├── 26.linea.md │ ├── 27.mantle.md │ ├── 28.merlin.md │ ├── 29.metis.md │ ├── 3.avalanche.md │ ├── 30.mineplex.md │ ├── 31.mode.md │ ├── 32.monad.md │ ├── 33.moonbeam.md │ ├── 34.neon.md │ ├── 35.opbnb.md │ ├── 36.optimism.md │ ├── 37.peaq.md │ ├── 38.polygon.md │ ├── 39.prom.md │ ├── 4.base.md │ ├── 40.scroll.md │ ├── 41.shibarium.md │ ├── 42.shibuya.md │ ├── 43.shiden.md │ ├── 44.somnia.md │ ├── 45.scale.md │ ├── 46.sonic.md │ ├── 47.taiko.md │ ├── 48.tanssi.md │ ├── 49.x1.md │ ├── 5.berachain.md │ ├── 50.x-layer.md │ ├── 51.zksync.md │ ├── 52.zora.md │ ├── 6.binance-smart-chain.md │ ├── 7.bitgert.md │ ├── 8.blast.md │ ├── 9.bob.md │ ├── _dir.yml │ └── _intro.md ├── 11.changelog.md ├── 12.faq.md ├── 13.troubleshooting.md ├── 14.contributing.md ├── 15.glossary.md ├── 16.thanks.md ├── 2.indexes │ ├── 1.evm_events.md │ ├── 10.tezos_token_balances.md │ ├── 11.tezos_token_transfers.md │ ├── 2.evm_transactions.md │ ├── 3.starknet_events.md │ ├── 4.substrate_events.md │ ├── 5.tezos_big_maps.md │ ├── 6.tezos_events.md │ ├── 7.tezos_head.md │ ├── 8.tezos_operations.md │ ├── 9.tezos_operations_unfiltered.md │ ├── _dir.yml │ ├── _evm.md │ ├── _starknet.md │ └── _substrate.md ├── 3.datasources │ ├── 1.evm_subsquid.md │ ├── 10.substrate_subsquid.md │ ├── 11.tezos_tzkt.md │ ├── 12.tzip_metadata.md │ ├── 13.coinbase.md │ ├── 14.ipfs.md │ ├── 15.http.md │ ├── 2.evm_node.md │ ├── 3.evm_etherscan.md │ ├── 4.evm_blockvision.md │ ├── 5.evm_sourcify.md │ ├── 6.starknet_subsquid.md │ ├── 7.starknet_node.md │ ├── 8.substrate_node.md │ ├── 9.substrate_subscan.md │ ├── _dir.yml │ ├── _evm_banner.md │ └── _subsquid_banner.md ├── 4.graphql │ ├── 1.overview.md │ ├── 2.hasura.md │ ├── 3.rest.md │ ├── 4.genql.md │ └── _dir.yml ├── 5.advanced │ ├── 1.docker.md │ ├── 12.metadata-interface.md │ ├── 2.environment-variables.md │ ├── 3.monitoring.md │ ├── 4.performance.md │ ├── 5.services.md │ ├── 6.backups.md │ ├── 7.sqd-cloud.md │ ├── 8.mcp.md │ ├── _dir.yml │ ├── _env_table.md │ └── _metrics_table.md ├── 7.references │ ├── 1.cli.md │ ├── 2.config.md │ ├── 3.context.md │ ├── 4.api.md │ ├── 4.models.md │ └── _dir.yml ├── 8.examples │ ├── 1.demos.md │ ├── 2.in-production.md │ ├── _demos_table.md │ └── _dir.yml ├── 9.release-notes │ ├── 1.v8.4.md │ ├── 10.v7.1.md │ ├── 11.v7.0.md │ ├── 2.v8.3.md │ ├── 3.v8.2.md │ ├── 4.v8.1.md │ ├── 5.v8.0.md │ ├── 6.v7.5.md │ ├── 7.v7.4.md │ ├── 8.v7.3.md │ ├── 9.v7.2.md │ ├── _7.0_changelog.md │ ├── _7.1_changelog.md │ ├── _7.2_changelog.md │ ├── _7.3_changelog.md │ ├── _7.4_changelog.md │ ├── _7.5_changelog.md │ ├── _8.0_changelog.md │ ├── _8.1_changelog.md │ ├── _8.2_changelog.md │ ├── _8.3_changelog.md │ ├── _8.4_changelog.md │ ├── _dir.yml │ └── _footer.md ├── _curl-spell.md ├── _quickstart_01_intro.md ├── _quickstart_02_installation.md ├── _quickstart_03_config.md ├── _quickstart_04_codegen.md ├── _quickstart_05_models.md ├── _quickstart_06_next_steps.md ├── _static │ └── .keep ├── cli.rst ├── conf.py ├── config.rst ├── context.rst ├── index.rst ├── models.rst └── public │ ├── dipdup-flow.png │ ├── dipdup-flow.svg │ ├── dipdup-new.png │ ├── dipdup.png │ ├── dipdup.svg │ ├── metadata_interface.svg │ ├── operation-bcd.png │ ├── operation-config.png │ ├── troubleshooting-bcd.png │ └── vscode-autocomplete.png ├── pyproject.toml ├── requirements.txt ├── schemas ├── dipdup-2.0.json └── dipdup-3.0.json ├── scripts ├── demos.py ├── docs.py └── test_migrations.sh ├── src ├── demo_blank │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ └── batch.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ └── .keep ├── demo_evm_events │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ ├── .keep │ │ └── eth_usdt │ │ │ └── abi.json │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ └── on_transfer.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ └── eth_usdt │ │ └── evm_events │ │ └── transfer.py ├── demo_evm_transactions │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ ├── .keep │ │ └── eth_usdt │ │ │ └── abi.json │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ └── on_transfer.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ └── eth_usdt │ │ └── evm_transactions │ │ └── transfer.py ├── demo_evm_uniswap │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ ├── .keep │ │ ├── erc20 │ │ │ ├── ERC20.json │ │ │ ├── ERC20NameBytes.json │ │ │ └── ERC20SymbolBytes.json │ │ ├── factory │ │ │ └── abi.json │ │ ├── pool │ │ │ └── abi.json │ │ └── position_manager │ │ │ └── abi.json │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── factory │ │ │ └── pool_created.py │ │ ├── pool │ │ │ ├── burn.py │ │ │ ├── flash.py │ │ │ ├── initialize.py │ │ │ ├── mint.py │ │ │ └── swap.py │ │ └── position_manager │ │ │ ├── collect.py │ │ │ ├── decrease_liquidity.py │ │ │ ├── increase_liquidity.py │ │ │ └── transfer.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ ├── __init__.py │ │ ├── abi.py │ │ ├── pool.py │ │ ├── position.py │ │ ├── repo.py │ │ ├── tick.py │ │ └── token.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ ├── .keep │ │ │ ├── 00_prepare_db.sql │ │ │ ├── 20_create_ca_quotes_1m.sql │ │ │ ├── 21_create_ca_quotes_1h.sql │ │ │ └── 22_create_ca_quotes_1d.sql │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ ├── factory │ │ └── evm_events │ │ │ └── pool_created.py │ │ ├── pool │ │ └── evm_events │ │ │ ├── burn.py │ │ │ ├── collect.py │ │ │ ├── flash.py │ │ │ ├── initialize.py │ │ │ ├── mint.py │ │ │ └── swap.py │ │ └── position_manager │ │ └── evm_events │ │ ├── collect.py │ │ ├── decrease_liquidity.py │ │ ├── increase_liquidity.py │ │ └── transfer.py ├── demo_starknet_events │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ ├── .keep │ │ └── stark_usdt │ │ │ └── cairo_abi.json │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ └── on_transfer.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ └── stark_usdt │ │ └── starknet_events │ │ └── transfer.py ├── demo_substrate_events │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ ├── .keep │ │ └── assethub │ │ │ └── v601.json │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ └── on_transfer.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ ├── on_synchronized │ │ │ └── .keep │ │ └── update_balance.sql │ └── types │ │ ├── .keep │ │ └── assethub │ │ └── substrate_events │ │ └── assets_transferred │ │ ├── __init__.py │ │ └── v601.py ├── demo_tezos_auction │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_bid.py │ │ ├── on_create_auction.py │ │ └── on_withdraw.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ └── tzcolors_auction │ │ ├── tezos_parameters │ │ ├── bid.py │ │ ├── create_auction.py │ │ └── withdraw.py │ │ └── tezos_storage.py ├── demo_tezos_dao │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_origination.py │ │ └── on_propose.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ └── registry │ │ ├── tezos_parameters │ │ └── propose.py │ │ └── tezos_storage.py ├── demo_tezos_dex │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_fa12_divest_liquidity.py │ │ ├── on_fa12_invest_liquidity.py │ │ ├── on_fa12_origination.py │ │ ├── on_fa12_tez_to_token.py │ │ ├── on_fa12_token_to_tez.py │ │ ├── on_fa12_transfer.py │ │ ├── on_fa12_withdraw_profit.py │ │ ├── on_fa2_divest_liquidity.py │ │ ├── on_fa2_invest_liquidity.py │ │ ├── on_fa2_origination.py │ │ ├── on_fa2_tez_to_token.py │ │ ├── on_fa2_token_to_tez.py │ │ ├── on_fa2_transfer.py │ │ └── on_fa2_withdraw_profit.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ ├── fa12_token │ │ ├── tezos_parameters │ │ │ └── transfer.py │ │ └── tezos_storage.py │ │ ├── fa2_token │ │ ├── tezos_parameters │ │ │ └── transfer.py │ │ └── tezos_storage.py │ │ ├── quipu_fa12 │ │ ├── tezos_parameters │ │ │ ├── divest_liquidity.py │ │ │ ├── invest_liquidity.py │ │ │ ├── tez_to_token_payment.py │ │ │ ├── token_to_tez_payment.py │ │ │ ├── transfer.py │ │ │ └── withdraw_profit.py │ │ └── tezos_storage.py │ │ └── quipu_fa2 │ │ ├── tezos_parameters │ │ ├── divest_liquidity.py │ │ ├── invest_liquidity.py │ │ ├── tez_to_token_payment.py │ │ ├── token_to_tez_payment.py │ │ ├── transfer.py │ │ └── withdraw_profit.py │ │ └── tezos_storage.py ├── demo_tezos_domains │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_update_expiry_map.py │ │ └── on_update_records.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── check_expiration.py │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ └── name_registry │ │ └── tezos_big_maps │ │ ├── store_expiry_map_key.py │ │ ├── store_expiry_map_value.py │ │ ├── store_records_key.py │ │ └── store_records_value.py ├── demo_tezos_etherlink │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .env.default │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ ├── compose.yaml │ │ ├── sqlite.env.default │ │ └── swarm.env.default │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_deposit.py │ │ └── on_withdraw.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ ├── rollup │ │ ├── tezos_parameters │ │ │ └── default.py │ │ └── tezos_storage.py │ │ ├── ticket_helper │ │ ├── tezos_parameters │ │ │ └── default.py │ │ └── tezos_storage.py │ │ └── ticketer │ │ ├── tezos_parameters │ │ ├── deposit.py │ │ └── withdraw.py │ │ └── tezos_storage.py ├── demo_tezos_events │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_move_event.py │ │ ├── on_other_event.py │ │ └── on_roll_event.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ └── events_contract │ │ └── tezos_events │ │ ├── move.py │ │ └── roll.py ├── demo_tezos_factories │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_factory_origination.py │ │ └── on_transfer.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ ├── factory │ │ └── tezos_storage.py │ │ └── token │ │ ├── tezos_parameters │ │ └── transfer.py │ │ └── tezos_storage.py ├── demo_tezos_head │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ └── on_mainnet_head.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ └── .keep ├── demo_tezos_nft_marketplace │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_cancel_swap.py │ │ ├── on_collect.py │ │ ├── on_mint.py │ │ └── on_swap.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ ├── hen_minter │ │ ├── tezos_parameters │ │ │ ├── cancel_swap.py │ │ │ ├── collect.py │ │ │ ├── mint_objkt.py │ │ │ └── swap.py │ │ └── tezos_storage.py │ │ └── hen_objkts │ │ ├── tezos_parameters │ │ └── mint.py │ │ └── tezos_storage.py ├── demo_tezos_raw │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ └── on_operation.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ └── .keep ├── demo_tezos_token │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_balance_update.py │ │ ├── on_mint.py │ │ └── on_transfer.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ ├── .keep │ │ └── tzbtc │ │ ├── tezos_parameters │ │ ├── mint.py │ │ └── transfer.py │ │ └── tezos_storage.py ├── demo_tezos_token_balances │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ └── on_balance_update.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ └── .keep ├── demo_tezos_token_transfers │ ├── .dockerignore │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── __init__.py │ ├── abi │ │ └── .keep │ ├── configs │ │ ├── .keep │ │ ├── dipdup.compose.yaml │ │ ├── dipdup.sqlite.yaml │ │ ├── dipdup.swarm.yaml │ │ └── replay.yaml │ ├── deploy │ │ ├── .keep │ │ ├── Dockerfile │ │ ├── compose.mcp.yaml │ │ ├── compose.sqlite.yaml │ │ ├── compose.swarm.yaml │ │ └── compose.yaml │ ├── dipdup.yaml │ ├── graphql │ │ └── .keep │ ├── handlers │ │ ├── .keep │ │ ├── batch.py │ │ ├── on_balance_update.py │ │ └── on_token_transfer.py │ ├── hasura │ │ └── .keep │ ├── hooks │ │ ├── .keep │ │ ├── on_index_rollback.py │ │ ├── on_reindex.py │ │ ├── on_restart.py │ │ └── on_synchronized.py │ ├── mcp │ │ └── .keep │ ├── models │ │ ├── .keep │ │ └── __init__.py │ ├── py.typed │ ├── pyproject.toml │ ├── sql │ │ ├── .keep │ │ ├── on_index_rollback │ │ │ └── .keep │ │ ├── on_reindex │ │ │ └── .keep │ │ ├── on_restart │ │ │ └── .keep │ │ └── on_synchronized │ │ │ └── .keep │ └── types │ │ └── .keep └── dipdup │ ├── __init__.py │ ├── __main__.py │ ├── _version.py │ ├── abi │ ├── __init__.py │ ├── cairo.py │ └── evm.py │ ├── aerich.py │ ├── api.py │ ├── cli.py │ ├── codegen │ ├── __init__.py │ ├── evm.py │ ├── starknet.py │ ├── substrate.py │ └── tezos.py │ ├── config │ ├── __init__.py │ ├── _mixin.py │ ├── abi_etherscan.py │ ├── coinbase.py │ ├── evm.py │ ├── evm_blockvision.py │ ├── evm_etherscan.py │ ├── evm_events.py │ ├── evm_node.py │ ├── evm_sourcify.py │ ├── evm_subsquid.py │ ├── evm_transactions.py │ ├── http.py │ ├── ipfs.py │ ├── starknet.py │ ├── starknet_events.py │ ├── starknet_node.py │ ├── starknet_subsquid.py │ ├── substrate.py │ ├── substrate_events.py │ ├── substrate_node.py │ ├── substrate_subscan.py │ ├── substrate_subsquid.py │ ├── tezos.py │ ├── tezos_big_maps.py │ ├── tezos_events.py │ ├── tezos_head.py │ ├── tezos_operations.py │ ├── tezos_token_balances.py │ ├── tezos_token_transfers.py │ ├── tezos_tzkt.py │ └── tzip_metadata.py │ ├── context.py │ ├── database.py │ ├── datasources │ ├── __init__.py │ ├── _aiosubstrate.py │ ├── _starknetpy.py │ ├── _subsquid.py │ ├── _web3.py │ ├── abi_etherscan.py │ ├── coinbase.py │ ├── evm_blockvision.py │ ├── evm_etherscan.py │ ├── evm_node.py │ ├── evm_sourcify.py │ ├── evm_subsquid.py │ ├── http.py │ ├── ipfs.py │ ├── starknet_node.py │ ├── starknet_subsquid.py │ ├── substrate_node.py │ ├── substrate_subscan.py │ ├── substrate_subsquid.py │ ├── tezos_tzkt.py │ └── tzip_metadata.py │ ├── dipdup.py │ ├── env.py │ ├── exceptions.py │ ├── fetcher.py │ ├── fields.py │ ├── hasura.py │ ├── http.py │ ├── index.py │ ├── indexes │ ├── _subsquid.py │ ├── evm.py │ ├── evm_events │ │ ├── fetcher.py │ │ ├── index.py │ │ └── matcher.py │ ├── evm_node.py │ ├── evm_subsquid.py │ ├── evm_transactions │ │ ├── fetcher.py │ │ ├── index.py │ │ └── matcher.py │ ├── starknet.py │ ├── starknet_events │ │ ├── fetcher.py │ │ ├── index.py │ │ └── matcher.py │ ├── starknet_node.py │ ├── starknet_subsquid.py │ ├── substrate.py │ ├── substrate_events │ │ ├── fetcher.py │ │ └── index.py │ ├── substrate_node.py │ ├── substrate_subsquid.py │ ├── tezos_big_maps │ │ ├── __init__.py │ │ ├── fetcher.py │ │ ├── index.py │ │ └── matcher.py │ ├── tezos_events │ │ ├── __init__.py │ │ ├── fetcher.py │ │ ├── index.py │ │ └── matcher.py │ ├── tezos_head │ │ ├── __init__.py │ │ └── index.py │ ├── tezos_operations │ │ ├── __init__.py │ │ ├── fetcher.py │ │ ├── index.py │ │ ├── matcher.py │ │ └── parser.py │ ├── tezos_token_balances │ │ ├── __init__.py │ │ ├── index.py │ │ └── matcher.py │ ├── tezos_token_transfers │ │ ├── __init__.py │ │ ├── fetcher.py │ │ ├── index.py │ │ └── matcher.py │ └── tezos_tzkt.py │ ├── install.py │ ├── mcp.py │ ├── migrations │ ├── __init__.py │ └── three_zero.py │ ├── models │ ├── __init__.py │ ├── _subsquid.py │ ├── coinbase.py │ ├── evm.py │ ├── evm_node.py │ ├── evm_subsquid.py │ ├── starknet.py │ ├── starknet_subsquid.py │ ├── substrate.py │ ├── substrate_subsquid.py │ └── tezos.py │ ├── package.py │ ├── performance.py │ ├── project.py │ ├── projects │ ├── base │ │ ├── .dockerignore.j2 │ │ ├── .gitignore.j2 │ │ ├── Makefile.j2 │ │ ├── README.md.j2 │ │ ├── configs │ │ │ ├── dipdup.compose.yaml.j2 │ │ │ ├── dipdup.sqlite.yaml.j2 │ │ │ └── dipdup.swarm.yaml.j2 │ │ ├── deploy │ │ │ ├── Dockerfile.j2 │ │ │ ├── compose.mcp.yaml.j2 │ │ │ ├── compose.sqlite.yaml.j2 │ │ │ ├── compose.swarm.yaml.j2 │ │ │ └── compose.yaml.j2 │ │ └── pyproject.toml.j2 │ ├── demo_blank │ │ ├── dipdup.yaml.j2 │ │ └── replay.yaml │ ├── demo_evm_events │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ └── on_transfer.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_evm_transactions │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ └── on_transfer.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_evm_uniswap │ │ ├── abi │ │ │ └── erc20 │ │ │ │ ├── ERC20.json.j2 │ │ │ │ ├── ERC20NameBytes.json.j2 │ │ │ │ └── ERC20SymbolBytes.json.j2 │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ ├── factory │ │ │ │ └── pool_created.py.j2 │ │ │ ├── pool │ │ │ │ ├── burn.py.j2 │ │ │ │ ├── flash.py.j2 │ │ │ │ ├── initialize.py.j2 │ │ │ │ ├── mint.py.j2 │ │ │ │ └── swap.py.j2 │ │ │ └── position_manager │ │ │ │ ├── collect.py.j2 │ │ │ │ ├── decrease_liquidity.py.j2 │ │ │ │ ├── increase_liquidity.py.j2 │ │ │ │ └── transfer.py.j2 │ │ ├── models │ │ │ ├── __init__.py.j2 │ │ │ ├── abi.py.j2 │ │ │ ├── pool.py.j2 │ │ │ ├── position.py.j2 │ │ │ ├── repo.py.j2 │ │ │ ├── tick.py.j2 │ │ │ └── token.py.j2 │ │ ├── replay.yaml │ │ └── sql │ │ │ └── on_reindex │ │ │ ├── 00_prepare_db.sql.j2 │ │ │ ├── 20_create_ca_quotes_1m.sql.j2 │ │ │ ├── 21_create_ca_quotes_1h.sql.j2 │ │ │ └── 22_create_ca_quotes_1d.sql.j2 │ ├── demo_starknet_events │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ └── on_transfer.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_substrate_events │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ └── on_transfer.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ ├── replay.yaml │ │ └── sql │ │ │ └── update_balance.sql │ ├── demo_tezos_auction │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ ├── on_bid.py.j2 │ │ │ ├── on_create_auction.py.j2 │ │ │ └── on_withdraw.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_tezos_dao │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ ├── on_origination.py.j2 │ │ │ └── on_propose.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_tezos_dex │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ ├── on_fa12_divest_liquidity.py.j2 │ │ │ ├── on_fa12_invest_liquidity.py.j2 │ │ │ ├── on_fa12_origination.py.j2 │ │ │ ├── on_fa12_tez_to_token.py.j2 │ │ │ ├── on_fa12_token_to_tez.py.j2 │ │ │ ├── on_fa12_transfer.py.j2 │ │ │ ├── on_fa12_withdraw_profit.py.j2 │ │ │ ├── on_fa2_divest_liquidity.py.j2 │ │ │ ├── on_fa2_invest_liquidity.py.j2 │ │ │ ├── on_fa2_origination.py.j2 │ │ │ ├── on_fa2_tez_to_token.py.j2 │ │ │ ├── on_fa2_token_to_tez.py.j2 │ │ │ ├── on_fa2_transfer.py.j2 │ │ │ └── on_fa2_withdraw_profit.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_tezos_domains │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ ├── on_update_expiry_map.py.j2 │ │ │ └── on_update_records.py.j2 │ │ ├── hooks │ │ │ └── check_expiration.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_tezos_etherlink │ │ ├── dipdup.yaml.j2 │ │ └── replay.yaml │ ├── demo_tezos_events │ │ ├── dipdup.yaml.j2 │ │ └── replay.yaml │ ├── demo_tezos_factories │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ ├── on_factory_origination.py.j2 │ │ │ └── on_transfer.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_tezos_head │ │ ├── dipdup.yaml.j2 │ │ └── replay.yaml │ ├── demo_tezos_nft_marketplace │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ ├── on_cancel_swap.py.j2 │ │ │ ├── on_collect.py.j2 │ │ │ ├── on_mint.py.j2 │ │ │ └── on_swap.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_tezos_raw │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ └── on_operation.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_tezos_token │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ ├── on_balance_update.py.j2 │ │ │ ├── on_mint.py.j2 │ │ │ └── on_transfer.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── demo_tezos_token_balances │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ │ └── on_balance_update.py.j2 │ │ ├── models │ │ │ └── __init__.py.j2 │ │ └── replay.yaml │ └── demo_tezos_token_transfers │ │ ├── dipdup.yaml.j2 │ │ ├── handlers │ │ ├── on_balance_update.py.j2 │ │ └── on_token_transfer.py.j2 │ │ ├── models │ │ └── __init__.py.j2 │ │ └── replay.yaml │ ├── prometheus.py │ ├── py.typed │ ├── pysignalr.py │ ├── report.py │ ├── runtimes.py │ ├── scheduler.py │ ├── sentry.py │ ├── sql │ ├── dipdup_approve.sql │ ├── dipdup_status.sql │ └── dipdup_wipe.sql │ ├── subscriptions │ ├── __init__.py │ ├── evm_node.py │ ├── starknet.py │ ├── substrate_node.py │ └── tezos_tzkt.py │ ├── sys.py │ ├── templates │ ├── callback.py.j2 │ ├── models.py │ └── replay.yaml.j2 │ ├── test.py │ ├── transactions.py │ ├── type_registries │ └── hydradx.json │ ├── utils.py │ ├── watchdog.py │ └── yaml.py ├── tests ├── __init__.py ├── configs │ ├── asdf.yaml │ ├── common_evm.yaml │ ├── common_postgres.yaml │ ├── common_postgres_immune.yaml │ ├── common_sqlite.yaml │ ├── common_sqlite_immune.yaml │ ├── common_starknet.yaml │ ├── common_substrate.yaml │ ├── common_tezos.yaml │ ├── demo_evm_events.yaml │ ├── demo_evm_events_node.yaml │ ├── demo_evm_transactions.yaml │ ├── demo_evm_transactions_node.yaml │ ├── demo_starknet_events.yaml │ ├── demo_substrate_events.yaml │ ├── demo_substrate_events_node.yaml │ ├── demo_tezos_auction.yaml │ ├── demo_tezos_dao.yaml │ ├── demo_tezos_dex.yaml │ ├── demo_tezos_domains.yaml │ ├── demo_tezos_etherlink.yaml │ ├── demo_tezos_events.yaml │ ├── demo_tezos_factories.yaml │ ├── demo_tezos_nft_marketplace.yaml │ ├── demo_tezos_raw.yaml │ ├── demo_tezos_token.yaml │ ├── demo_tezos_token_balances.yaml │ ├── demo_tezos_token_transfers.yaml │ ├── demo_tezos_token_transfers_2.yaml │ ├── demo_tezos_token_transfers_3.yaml │ ├── demo_tezos_token_transfers_4.yaml │ ├── dipdup.yaml │ ├── hen_subjkt.yaml │ ├── hjkl.yaml │ ├── kolibri_ovens.yaml │ ├── operation_filters.yaml │ ├── qwer.yaml │ ├── rewq.yaml │ ├── yupana.yaml │ └── zxcv.yaml ├── replays │ ├── 0535b2dcc93076e6026fa48cc501adaed47b7b060e6483d8312f40c184d7287d │ ├── 0b7d26b8f2813d12a80b9e96cc6f0bb186bf9ac5c5b0c0b3bb2cc8d750126843 │ ├── 0eaaba2830dbdd3a80286fbc367084bce6e55c678e21da178a7eb16beef6c997 │ ├── 1228b36594bb93d619170ad49373f1ceec52d10faafdd727b37f3cdeffd663db │ ├── 13afdf001ce3d6a0219c0f7f6d372d9b645770e5f4304576f7f7a37b45af96fc │ ├── 1430e37dce64ecb83499da8feaa3c0906e4fdf5d0a3c3570174645e97ba54bc4 │ ├── 185f6628ac43f6ca728c5b79b7b81a3c3671efce7f14030a06a27e90cf641dea │ ├── 1c717490846300e1639e96a0c1438b6dd2abd6de013c5edec49042fa364c06e6 │ ├── 27373c23411bf37b605c8d0ead9a0e6c6c1f1718ce7863b095b759811e44e155 │ ├── 2a45ec6372b45e46199a6af24272cb93586777a0522cd1203b3eeef213ce4583 │ ├── 383899084f79460e96fd311bb64e4925738c486b39d6281539456c5fcac41620 │ ├── 388fe9107380b6dd1e9ce3a87c23abd56ad39dfb6cb8a5a27b959e5b0434633b │ ├── 39b8664d1bca5d374ff905c8a3a396b53d19ee469dc37545a8ca6b080bd0e9e0 │ ├── 3a2bd8b6b72bf18152d2550c106789fa9b8abc98ea9d759a6597b7ebfbab0fc2 │ ├── 3f5927db41422038d8e2cc203ef56a769c66b25835cdee42b17bc61e600be550 │ ├── 43cb0ab415d8b8b3f7addc3e82ea27d93b2c66ff55c117e1e0c7c64a0fcfc3f2 │ ├── 4a57776d93475adfd9c49b6c3295a7cedfc23b73733a1fb5f0c985ee039dc5dc │ ├── 4aa7f9b0657be0c44baf2caed8c7cb08d02097a4095cf6417f78cba3a25e8423 │ ├── 4fbdb4667971fab446a5ac5937a7c8cc6ef5813ff00af24b6fd1b1a0427bedbb │ ├── 5483a0e11009e0f186bf70c214e2597d267a75a1e19152a9e7ed1ec257ce88ca │ ├── 587613799ebfae42b1884016d1a44a452d68e70e3ed80641d90b8e7657ba8ee5 │ ├── 5b004196490632859ec1b019d640f6bbb93fc86a433c8969e10f36f51ac2c78d │ ├── 5b99bc4beb6a9a33f7d2f118426458e4c788e0ab6d9e51949d3ccbf8b4003fc1 │ ├── 607ecfd3653eda82aac502ac370c6ad7144d30c1e3c525ed520d44f9edf5b7e9 │ ├── 60f48c13c47a1347786a6dcf6f741874e7b30b587d148faa67d15067bb3871de │ ├── 694f9dfac7db616fa52c4d35bca1036b6521d285ed1873028303b83822b5980b │ ├── 6d0c5443d41a15551acb41adc10d36d4895f5786d6922a878b5c5414610e0ebc │ ├── 6d76a3c3f427ff534c551de1793cb1d1dfbd22ccad97f5917a9f9b201a3f9804 │ ├── 6fa41b68da742cc7cf8a0d68baef77ce8b2e9abf765767318d7ff4cf453ded4c │ ├── 739d17c86095aac3da3508a16dc1c9ae9459ea86eeb09f62aaefc32de2997918 │ ├── 759b79ec12b1305d9fa8e1a5218e62bb3d3ad913580e19914d30d8aa09920ae4 │ ├── 7b6cf9b8c69712bf26ed09059352ec740606969bf20eab0dedda870273f4fde9 │ ├── 803e05a8d0bb9e7cfb49530271d43ea62111b6419e7cded2d221f7e0e0c92ece │ ├── 8060a1f95213d470ee947a12242ef76cb7fb0c05bbaecc385eb6ec4a20d694c4 │ ├── 8335acc6585656ec3a4301cd8b089401f2dc2c7d758b381c96c730e610b67f7b │ ├── 93516225810a23a6799f2f9a1dee055ca79a66ee2b8d0f32be820c9c385e936b │ ├── 9e6e907842da2cd494c558ea5ecc211fd12e56bfc547450978fb7dfe03853e58 │ ├── a3ce91a1b0d505cc221f0e201781466ba1e2d6dc7b624b9bc75a03ce3dbb0f92 │ ├── aa8fe6037996b296bf9a3011e45cd9ecb92fb728592a843f91b03b2848cb1fb1 │ ├── acaa57345850f3b76471a7b3a8fb76b7f83e824f1520a2e0ee8ec93cdd6cb1c3 │ ├── acc952ba1905717315212f952ed689d7b8f683165b31c0a7a25199aed9fda27f │ ├── af37212b31e932f269c42c7f34ad8f3849bd8aed244652c41b9327c508985ce5 │ ├── b3af887f7ad8172af75b94a09bedfb9ae1e14f8819a36d6ce9f709721068263b │ ├── b89b0ea704071e273d3c74a4dbb7b4f6c6fd9ea1848c69b452dce4f04872d3b5 │ ├── bec4433b4206f00c2310a7961cff7f539434b9161b45673793aa5a3b50234313 │ ├── bed2329e63d559db2fb81c69606e715d1f90aaacab6ae45b33516e7828841a3c │ ├── c1c3eef91f7149d7aa2da072f71598f3ad5e29250cfa441bb6d4411acd70d657 │ ├── cc5d3d4a58d5cb6bc7270d38c797b7740b79f913590ef0164abd50e58fba9405 │ ├── d0a594d14bcb3fbf916092ec6707dfd3c9f48f53f0a1ad40a32023e7a87f8ef5 │ ├── d62748a927a09395579b5790c8f871cc8653081cf4475abc93173989f950b92b │ ├── d94397f6ecec8ce25f87177fe410f6498d7d30a04360506c0cd300d291c167e7 │ ├── db797e6bf4c1b9c3237af5dec694fb1b6d21418a5a2f7947eb7f54d4e9201baf │ ├── dca9cf4f9f27623f10975d369444899458ab9ea85c22af2da6ce6ce8c09c2b58 │ ├── dd5d267c6e8e943a637ede23d708587123b9184560358d294be7fbed0d4b587a │ ├── e10e6552f0dce5124e0d72b74c508541a8098c407c9a3b0d2e10a7408b4d7cfe │ ├── e4a563a0b19379a44e9d2dc398131e9fd30d6039ff4ffacf1252db0bf8b433aa │ ├── e82ba90c8570b92c0b1fc360b853aca3f1d7de457aacb9f6f19fa3e43879a8b3 │ ├── e9fa56a94eb559c550dfbca4b27ef350a0b4a787afbe60205482a38223dcea04 │ ├── eb8b6b33cb2e165d1a3a73c09938d3083671a82ad73d4c0cff1fb2a5e5715f76 │ ├── eb8e2c3ce2fe7792d2c8e81c61d37821275b64021343103b0c955042ae802189 │ ├── f3d608f99e6b92e28a064bb9c10c3c605c9c817383c1eebcc68f663d1d23d650 │ ├── f7d244938de3e3d153e4ef8172cab0f1e896b801904a54ac034d3d14352ee64a │ ├── f9fa1571c3d850f4a19c286205291893d184a9d124390d0358034a8b8366556d │ ├── fe80425d17f2467fccc527a99b5a11da144f63f9a3cab83989be0f8fed737264 │ └── ff51b3535acc2972090ecd5db3af8f827464c9d92f1aa661630976e5b4ed4cbe ├── responses │ ├── asdf.json │ ├── ftzfun.json │ ├── hen_subjkt.json │ ├── hjkl.json │ ├── kolibri_ovens.json │ ├── node_transaction.json │ ├── ooQuCAKBHkmWy2VciDAV9c6CFTywuMLupLzVoKDwS1xvR4EdRng.json │ ├── origination_amount.json │ ├── qwer.json │ ├── rewq.json │ ├── subsquid_transaction.json │ ├── yupana.json │ └── zxcv.json ├── schemas │ ├── asdf │ │ └── storage.json │ ├── hen_subjkt │ │ └── storage.json │ ├── hjkl │ │ └── storage.json │ ├── kolibri_ovens │ │ └── storage.json │ ├── qwer │ │ └── storage.json │ ├── rewq │ │ └── storage.json │ ├── yupana │ │ └── storage.json │ └── zxcv │ │ └── storage.json ├── test_config │ ├── test_callbacks.py │ ├── test_config.py │ └── test_custom_config.py ├── test_datasources │ ├── __init__.py │ ├── test_ipfs.py │ ├── test_substrate.py │ ├── test_substrate_node.py │ ├── test_tzkt.py │ ├── test_tzkt_blocks.py │ ├── test_tzkt_buffer.py │ └── test_tzkt_quotes.py ├── test_demos.py ├── test_dipdup.py ├── test_hasura.py ├── test_http.py ├── test_index │ ├── __init__.py │ └── test_tzkt_operations.py ├── test_introspection.py ├── test_models.py ├── test_prometheus.py ├── test_rollback.py ├── test_schema.py ├── test_utils.py └── types │ ├── __init__.py │ ├── asdf │ ├── __init__.py │ └── storage.py │ ├── bazaar │ ├── __init__.py │ └── storage.py │ ├── ftzfun │ ├── __init__.py │ └── storage.py │ ├── hen_subjkt │ ├── __init__.py │ └── storage.py │ ├── hjkl │ ├── __init__.py │ └── storage.py │ ├── kolibri_ovens │ ├── __init__.py │ ├── set_delegate.py │ └── storage.py │ ├── listofmaps │ ├── __init__.py │ └── storage.py │ ├── qwer │ ├── __init__.py │ └── storage.py │ ├── rewq │ ├── __init__.py │ └── storage.py │ ├── tezotop │ ├── __init__.py │ └── storage.py │ ├── yupana │ ├── __init__.py │ └── storage.py │ └── zxcv │ ├── __init__.py │ └── storage.py └── uv.lock /.dockerignore: -------------------------------------------------------------------------------- 1 | # Ignore all 2 | * 3 | 4 | # Add metadata and build files 5 | !pyproject.toml 6 | !*.lock 7 | !README.md 8 | !requirements** 9 | 10 | # Add Python packages 11 | !src/ 12 | 13 | # Ignore caches 14 | **/.*_cache 15 | **/__pycache__ 16 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: dipdup-io -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🙏 Feature Request 3 | about: Ideas to make DipDup 20% cooler 4 | 5 | --- 6 | 7 | **What feature would you like to see in DipDup?** 8 | 9 | **Why do you need this feature, what's the use case?** 10 | 11 | **Is there a workaround currently?** 12 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/improvement.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 💡 Improvement 3 | about: Suggestions not directly related to the codebase 4 | 5 | --- 6 | 7 | No template here, just tell us what's on your mind 👀 -------------------------------------------------------------------------------- /.vscode/mcp.json: -------------------------------------------------------------------------------- 1 | { 2 | "inputs": [], 3 | "servers": { 4 | "dipdup-sse": { 5 | "type": "sse", 6 | "url": "http://127.0.0.1:9999/sse" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "yaml.schemas": { 3 | "schemas/dipdup-3.0.json": [ 4 | "**/dipdup*.y[a]ml", 5 | "tests/configs/*.y[a]ml" 6 | ], 7 | }, 8 | } -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | This page was moved to the [Contributing](https://dipdup.io/docs/contributing) page in docs. 2 | -------------------------------------------------------------------------------- /brandkit/dipdup/png/dipdup logo 200 no background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/brandkit/dipdup/png/dipdup logo 200 no background.png -------------------------------------------------------------------------------- /brandkit/dipdup/png/dipdup logo 200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/brandkit/dipdup/png/dipdup logo 200.png -------------------------------------------------------------------------------- /brandkit/dipdup/png/dipdup logo 400 no background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/brandkit/dipdup/png/dipdup logo 400 no background.png -------------------------------------------------------------------------------- /brandkit/dipdup/png/dipdup logo 400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/brandkit/dipdup/png/dipdup logo 400.png -------------------------------------------------------------------------------- /brandkit/dipdup/png/dipdup logo background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/brandkit/dipdup/png/dipdup logo background.png -------------------------------------------------------------------------------- /docs/1.getting-started/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.icon: "arrow-circle-right" -------------------------------------------------------------------------------- /docs/10.supported-networks/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.title: "Supported Networks" 2 | navigation.icon: "link" 3 | navigation.subdir: true 4 | navigation.pin: true 5 | navigation.network: "ethereum" 6 | -------------------------------------------------------------------------------- /docs/11.changelog.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Changelog" 3 | description: "DipDup changelog" 4 | nested: Resources 5 | --- 6 | 7 | 8 | {{ #include ../CHANGELOG.md }} 9 | -------------------------------------------------------------------------------- /docs/2.indexes/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.icon: "database" 2 | -------------------------------------------------------------------------------- /docs/3.datasources/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.icon: "layers" -------------------------------------------------------------------------------- /docs/3.datasources/_evm_banner.md: -------------------------------------------------------------------------------- 1 | 2 | ::banner{type="note"} 3 | Examples below are for Ethereum mainnet. For other supported networks, see [EVM Networks](../10.supported-networks/0.overview.md). 4 | :: 5 | -------------------------------------------------------------------------------- /docs/3.datasources/_subsquid_banner.md: -------------------------------------------------------------------------------- 1 | 2 | ::banner{type="note"} 3 | Subsquid Network [has been rebranded](https://blog.sqd.dev/subsquid-becomes-sqd-meet-our-new-self/) to SQD Network. We keep using old name in documentation and config specification for compatibility reasons. 4 | :: 5 | -------------------------------------------------------------------------------- /docs/4.graphql/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.icon: "graphql" 2 | -------------------------------------------------------------------------------- /docs/5.advanced/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.icon: "zap-square" 2 | -------------------------------------------------------------------------------- /docs/7.references/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.icon: "info" 2 | -------------------------------------------------------------------------------- /docs/8.examples/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.icon: "package" 2 | -------------------------------------------------------------------------------- /docs/9.release-notes/_dir.yml: -------------------------------------------------------------------------------- 1 | navigation.icon: "idea" 2 | -------------------------------------------------------------------------------- /docs/_curl-spell.md: -------------------------------------------------------------------------------- 1 | 2 | ```shell [Terminal] 3 | curl -Lsf https://dipdup.io/install.py | python3 4 | ``` 5 | -------------------------------------------------------------------------------- /docs/_static/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/docs/_static/.keep -------------------------------------------------------------------------------- /docs/cli.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. click:: dipdup.cli:cli 4 | :prog: dipdup 5 | :nested: full 6 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: -------------------------------------------------------------------------------- /docs/public/dipdup-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/docs/public/dipdup-flow.png -------------------------------------------------------------------------------- /docs/public/dipdup-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/docs/public/dipdup-new.png -------------------------------------------------------------------------------- /docs/public/dipdup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/docs/public/dipdup.png -------------------------------------------------------------------------------- /docs/public/operation-bcd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/docs/public/operation-bcd.png -------------------------------------------------------------------------------- /docs/public/operation-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/docs/public/operation-config.png -------------------------------------------------------------------------------- /docs/public/troubleshooting-bcd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/docs/public/troubleshooting-bcd.png -------------------------------------------------------------------------------- /docs/public/vscode-autocomplete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/docs/public/vscode-autocomplete.png -------------------------------------------------------------------------------- /src/demo_blank/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/__init__.py -------------------------------------------------------------------------------- /src/demo_blank/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/abi/.keep -------------------------------------------------------------------------------- /src/demo_blank/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/configs/.keep -------------------------------------------------------------------------------- /src/demo_blank/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_blank.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_blank/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/deploy/.keep -------------------------------------------------------------------------------- /src/demo_blank/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_blank 11 | WORKDIR /home/dipdup/demo_blank -------------------------------------------------------------------------------- /src/demo_blank/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_blank 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_blank.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_blank/dipdup.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | package: demo_blank -------------------------------------------------------------------------------- /src/demo_blank/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/graphql/.keep -------------------------------------------------------------------------------- /src/demo_blank/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/handlers/.keep -------------------------------------------------------------------------------- /src/demo_blank/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_blank/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/hasura/.keep -------------------------------------------------------------------------------- /src/demo_blank/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/hooks/.keep -------------------------------------------------------------------------------- /src/demo_blank/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_blank/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_blank/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_blank/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/mcp/.keep -------------------------------------------------------------------------------- /src/demo_blank/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/models/.keep -------------------------------------------------------------------------------- /src/demo_blank/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/py.typed -------------------------------------------------------------------------------- /src/demo_blank/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/sql/.keep -------------------------------------------------------------------------------- /src/demo_blank/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_blank/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_blank/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_blank/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_blank/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_blank/types/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/__init__.py -------------------------------------------------------------------------------- /src/demo_evm_events/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/abi/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/configs/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_evm_events.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_evm_events/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/deploy/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_evm_events 11 | WORKDIR /home/dipdup/demo_evm_events -------------------------------------------------------------------------------- /src/demo_evm_events/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_evm_events 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_evm_events.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_evm_events/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/graphql/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/handlers/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_evm_events/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/hasura/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/hooks/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_evm_events/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_evm_events/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_evm_events/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/mcp/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/models/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/py.typed -------------------------------------------------------------------------------- /src/demo_evm_events/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/sql/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_events/types/.keep -------------------------------------------------------------------------------- /src/demo_evm_events/types/eth_usdt/evm_events/transfer.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import Field 7 | 8 | 9 | class TransferPayload(BaseModel): 10 | from_: str = Field(..., alias='from') 11 | to: str 12 | value: int 13 | -------------------------------------------------------------------------------- /src/demo_evm_transactions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/__init__.py -------------------------------------------------------------------------------- /src/demo_evm_transactions/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/abi/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/configs/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_evm_transactions.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_evm_transactions/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/deploy/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_evm_transactions 11 | WORKDIR /home/dipdup/demo_evm_transactions -------------------------------------------------------------------------------- /src/demo_evm_transactions/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/graphql/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/handlers/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_evm_transactions/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/hasura/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/hooks/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_evm_transactions/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_evm_transactions/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_evm_transactions/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/mcp/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/models/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/py.typed -------------------------------------------------------------------------------- /src/demo_evm_transactions/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/sql/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_transactions/types/.keep -------------------------------------------------------------------------------- /src/demo_evm_transactions/types/eth_usdt/evm_transactions/transfer.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class TransferInput(BaseModel): 9 | to: str 10 | value: int 11 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/__init__.py -------------------------------------------------------------------------------- /src/demo_evm_uniswap/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/abi/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/abi/erc20/ERC20NameBytes.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "name", 6 | "outputs": [ 7 | { 8 | "internalType": "bytes32", 9 | "name": "", 10 | "type": "bytes32" 11 | } 12 | ], 13 | "payable": false, 14 | "stateMutability": "view", 15 | "type": "function" 16 | } 17 | ] -------------------------------------------------------------------------------- /src/demo_evm_uniswap/abi/erc20/ERC20SymbolBytes.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "symbol", 6 | "outputs": [ 7 | { 8 | "internalType": "bytes32", 9 | "name": "", 10 | "type": "bytes32" 11 | } 12 | ], 13 | "payable": false, 14 | "stateMutability": "view", 15 | "type": "function" 16 | } 17 | ] -------------------------------------------------------------------------------- /src/demo_evm_uniswap/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/configs/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_evm_uniswap.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_evm_uniswap/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/deploy/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_evm_uniswap 11 | WORKDIR /home/dipdup/demo_evm_uniswap -------------------------------------------------------------------------------- /src/demo_evm_uniswap/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_evm_uniswap 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_evm_uniswap.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_evm_uniswap/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/graphql/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/handlers/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/handlers/pool/flash.py: -------------------------------------------------------------------------------- 1 | from demo_evm_uniswap import models as models 2 | from demo_evm_uniswap.types.pool.evm_events.flash import FlashPayload 3 | from dipdup.context import HandlerContext 4 | from dipdup.models.evm import EvmEvent 5 | 6 | 7 | async def flash( 8 | ctx: HandlerContext, 9 | event: EvmEvent[FlashPayload], 10 | ) -> None: ... 11 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/hasura/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/hooks/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/mcp/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/models/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/models/abi.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from typing import Any 3 | from typing import cast 4 | 5 | import orjson 6 | 7 | 8 | def get_abi(path: str) -> dict[str, Any]: 9 | """Get ABI without context to cache in the module""" 10 | package_dir = Path(__file__).parent.parent 11 | abi_path = package_dir / 'abi' / f'{path.replace(".", "/")}.json' 12 | return cast('dict[str, Any]', orjson.loads(abi_path.read_bytes())) 13 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/py.typed -------------------------------------------------------------------------------- /src/demo_evm_uniswap/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/sql/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/sql/on_reindex/00_prepare_db.sql: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE; 2 | 3 | ALTER TABLE swap DROP CONSTRAINT swap_pkey; 4 | ALTER TABLE swap ADD PRIMARY KEY (id, timestamp); 5 | SELECT create_hypertable('swap', 'timestamp', chunk_time_interval => 7776000); -------------------------------------------------------------------------------- /src/demo_evm_uniswap/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_evm_uniswap/types/.keep -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/factory/evm_events/pool_created.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class PoolCreatedPayload(BaseModel): 9 | token0: str 10 | token1: str 11 | fee: int 12 | tickSpacing: int 13 | pool: str 14 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/pool/evm_events/burn.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class BurnPayload(BaseModel): 9 | owner: str 10 | tickLower: int 11 | tickUpper: int 12 | amount: int 13 | amount0: int 14 | amount1: int 15 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/pool/evm_events/collect.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class CollectPayload(BaseModel): 9 | owner: str 10 | recipient: str 11 | tickLower: int 12 | tickUpper: int 13 | amount0: int 14 | amount1: int 15 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/pool/evm_events/flash.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class FlashPayload(BaseModel): 9 | sender: str 10 | recipient: str 11 | amount0: int 12 | amount1: int 13 | paid0: int 14 | paid1: int 15 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/pool/evm_events/initialize.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class InitializePayload(BaseModel): 9 | sqrtPriceX96: int 10 | tick: int 11 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/pool/evm_events/mint.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class MintPayload(BaseModel): 9 | sender: str 10 | owner: str 11 | tickLower: int 12 | tickUpper: int 13 | amount: int 14 | amount0: int 15 | amount1: int 16 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/pool/evm_events/swap.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class SwapPayload(BaseModel): 9 | sender: str 10 | recipient: str 11 | amount0: int 12 | amount1: int 13 | sqrtPriceX96: int 14 | liquidity: int 15 | tick: int 16 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/position_manager/evm_events/collect.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class CollectPayload(BaseModel): 9 | tokenId: int 10 | recipient: str 11 | amount0: int 12 | amount1: int 13 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/position_manager/evm_events/decrease_liquidity.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class DecreaseLiquidityPayload(BaseModel): 9 | tokenId: int 10 | liquidity: int 11 | amount0: int 12 | amount1: int 13 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/position_manager/evm_events/increase_liquidity.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | 7 | 8 | class IncreaseLiquidityPayload(BaseModel): 9 | tokenId: int 10 | liquidity: int 11 | amount0: int 12 | amount1: int 13 | -------------------------------------------------------------------------------- /src/demo_evm_uniswap/types/position_manager/evm_events/transfer.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import Field 7 | 8 | 9 | class TransferPayload(BaseModel): 10 | from_: str = Field(..., alias='from') 11 | to: str 12 | tokenId: int 13 | -------------------------------------------------------------------------------- /src/demo_starknet_events/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/__init__.py -------------------------------------------------------------------------------- /src/demo_starknet_events/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/abi/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/configs/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_starknet_events.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_starknet_events/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/deploy/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_starknet_events 11 | WORKDIR /home/dipdup/demo_starknet_events -------------------------------------------------------------------------------- /src/demo_starknet_events/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/graphql/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/handlers/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_starknet_events/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/hasura/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/hooks/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_starknet_events/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_starknet_events/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_starknet_events/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/mcp/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/models/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/py.typed -------------------------------------------------------------------------------- /src/demo_starknet_events/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/sql/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_starknet_events/types/.keep -------------------------------------------------------------------------------- /src/demo_starknet_events/types/stark_usdt/starknet_events/transfer.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | from pydantic import Field 8 | 9 | 10 | class TransferPayload(BaseModel): 11 | model_config = ConfigDict( 12 | extra='forbid', 13 | ) 14 | from_: int = Field(..., alias='from') 15 | to: int 16 | value: int 17 | -------------------------------------------------------------------------------- /src/demo_substrate_events/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/__init__.py -------------------------------------------------------------------------------- /src/demo_substrate_events/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/abi/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/configs/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_substrate_events.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_substrate_events/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/deploy/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_substrate_events 11 | WORKDIR /home/dipdup/demo_substrate_events -------------------------------------------------------------------------------- /src/demo_substrate_events/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/graphql/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/handlers/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_substrate_events/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/hasura/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/hooks/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_substrate_events/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_substrate_events/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_substrate_events/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/mcp/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/models/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/py.typed -------------------------------------------------------------------------------- /src/demo_substrate_events/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/sql/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/sql/update_balance.sql: -------------------------------------------------------------------------------- 1 | insert into holder ( 2 | address 3 | ,balance 4 | ,turnover 5 | ,tx_count 6 | ,last_seen 7 | ) 8 | values ( 9 | :address 10 | ,:amount 11 | ,abs(:amount) 12 | ,1 13 | ,:level 14 | ) 15 | on conflict (address) do 16 | update 17 | set 18 | balance = balance + :amount 19 | ,turnover = turnover + abs(:amount) 20 | ,tx_count = tx_count + 1 21 | ,last_seen = :level 22 | ; -------------------------------------------------------------------------------- /src/demo_substrate_events/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_substrate_events/types/.keep -------------------------------------------------------------------------------- /src/demo_substrate_events/types/assethub/substrate_events/assets_transferred/__init__.py: -------------------------------------------------------------------------------- 1 | from .v601 import V601 2 | 3 | type AssetsTransferredPayload = V601 4 | -------------------------------------------------------------------------------- /src/demo_substrate_events/types/assethub/substrate_events/assets_transferred/v601.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from typing import TypedDict 6 | 7 | """ 8 | Some assets were transferred. [asset_id, from, to, amount] 9 | """ 10 | V601 = TypedDict( 11 | 'V601', 12 | { 13 | 'asset_id': int, 14 | 'from': str, 15 | 'to': str, 16 | 'amount': int, 17 | }, 18 | ) 19 | -------------------------------------------------------------------------------- /src/demo_tezos_auction/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_auction/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_auction.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_auction/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_auction 11 | WORKDIR /home/dipdup/demo_tezos_auction -------------------------------------------------------------------------------- /src/demo_tezos_auction/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_tezos_auction 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_auction.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_auction/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_auction/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_auction/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_auction/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_auction/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_auction/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_auction/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_auction/types/tzcolors_auction/tezos_parameters/bid.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class BidParameter(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_auction/types/tzcolors_auction/tezos_parameters/withdraw.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class WithdrawParameter(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_dao/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_dao/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_dao.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_dao/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_dao 11 | WORKDIR /home/dipdup/demo_tezos_dao -------------------------------------------------------------------------------- /src/demo_tezos_dao/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_tezos_dao 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_dao.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_dao/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_dao/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_dao/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_dao/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_dao/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_dao/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dao/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dao/types/registry/tezos_parameters/propose.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | from pydantic import Field 8 | 9 | 10 | class ProposeParameter(BaseModel): 11 | model_config = ConfigDict( 12 | extra='forbid', 13 | ) 14 | from_: str = Field(..., alias='from') 15 | frozen_token: str 16 | proposal_metadata: str 17 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_dex/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_dex.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_dex/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_dex 11 | WORKDIR /home/dipdup/demo_tezos_dex -------------------------------------------------------------------------------- /src/demo_tezos_dex/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_tezos_dex 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_dex.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_dex/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_dex/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_dex/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/fa12_token/tezos_parameters/transfer.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | from pydantic import Field 8 | 9 | 10 | class TransferParameter(BaseModel): 11 | model_config = ConfigDict( 12 | extra='forbid', 13 | ) 14 | from_: str = Field(..., alias='from') 15 | to: str 16 | value: str 17 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa12/tezos_parameters/divest_liquidity.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class DivestLiquidityParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | min_tez: str 14 | min_tokens: str 15 | shares: str 16 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa12/tezos_parameters/invest_liquidity.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class InvestLiquidityParameter(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa12/tezos_parameters/tez_to_token_payment.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class TezToTokenPaymentParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | min_out: str 14 | receiver: str 15 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa12/tezos_parameters/token_to_tez_payment.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class TokenToTezPaymentParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | amount: str 14 | min_out: str 15 | receiver: str 16 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa12/tezos_parameters/transfer.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | from pydantic import Field 8 | 9 | 10 | class TransferParameter(BaseModel): 11 | model_config = ConfigDict( 12 | extra='forbid', 13 | ) 14 | from_: str = Field(..., alias='from') 15 | to: str 16 | value: str 17 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa12/tezos_parameters/withdraw_profit.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class WithdrawProfitParameter(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa2/tezos_parameters/divest_liquidity.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class DivestLiquidityParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | min_tez: str 14 | min_tokens: str 15 | shares: str 16 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa2/tezos_parameters/invest_liquidity.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class InvestLiquidityParameter(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa2/tezos_parameters/tez_to_token_payment.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class TezToTokenPaymentParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | min_out: str 14 | receiver: str 15 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa2/tezos_parameters/token_to_tez_payment.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class TokenToTezPaymentParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | amount: str 14 | min_out: str 15 | receiver: str 16 | -------------------------------------------------------------------------------- /src/demo_tezos_dex/types/quipu_fa2/tezos_parameters/withdraw_profit.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class WithdrawProfitParameter(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_domains/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_domains/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_domains.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_domains/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_domains 11 | WORKDIR /home/dipdup/demo_tezos_domains -------------------------------------------------------------------------------- /src/demo_tezos_domains/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_tezos_domains 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_domains.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_domains/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_domains/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_domains/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_domains/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_domains/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_domains/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_domains/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_domains/types/name_registry/tezos_big_maps/store_expiry_map_key.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class StoreExpiryMapKey(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_domains/types/name_registry/tezos_big_maps/store_expiry_map_value.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class StoreExpiryMapValue(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_domains/types/name_registry/tezos_big_maps/store_records_key.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class StoreRecordsKey(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/.dockerignore: -------------------------------------------------------------------------------- 1 | # Ignore all 2 | * 3 | 4 | # Add metadata and build files 5 | !demo_tezos_etherlink 6 | !pyproject.toml 7 | !*.lock 8 | !README.md 9 | 10 | # Add Python code 11 | !**/*.py 12 | **/.*_cache 13 | **/__pycache__ 14 | 15 | # Add configs and scripts (but not env!) 16 | !**/*.graphql 17 | !**/*.json 18 | !**/*.sql 19 | !**/*.yaml 20 | !**/*.yml 21 | !**/*.j2 22 | !**/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | database: 2 | kind: sqlite 3 | path: ${SQLITE_PATH:-/tmp/demo_tezos_etherlink.sqlite} 4 | 5 | sentry: 6 | dsn: ${SENTRY_DSN:-''} 7 | environment: ${SENTRY_ENVIRONMENT:-''} 8 | 9 | prometheus: 10 | host: 0.0.0.0 11 | 12 | api: 13 | host: 0.0.0.0 -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM dipdup/dipdup:8 2 | # FROM ghcr.io/dipdup-io/dipdup:8 3 | # FROM ghcr.io/dipdup-io/dipdup:next 4 | 5 | # COPY --chown=dipdup pyproject.toml README.md . 6 | # RUN pip install . 7 | 8 | COPY --chown=dipdup . demo_tezos_etherlink 9 | WORKDIR demo_tezos_etherlink -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | name: demo_tezos_etherlink 2 | 3 | services: 4 | dipdup: 5 | build: 6 | context: .. 7 | dockerfile: deploy/Dockerfile 8 | command: ["-C", "sqlite", "run"] 9 | restart: always 10 | env_file: .env 11 | ports: 12 | - 46339 13 | - 9000 14 | volumes: 15 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_etherlink.sqlite} 16 | 17 | volumes: 18 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/deploy/sqlite.env.default: -------------------------------------------------------------------------------- 1 | # This env file was generated automatically by DipDup. Do not edit it! 2 | # Create a copy with .env extension, fill it with your values and run DipDup with `--env-file` option. 3 | # 4 | SENTRY_DSN='' 5 | SENTRY_ENVIRONMENT='' 6 | SQLITE_PATH=/tmp/demo_tezos_etherlink.sqlite 7 | TZKT_URL=https://api.parisnet.tzkt.io 8 | -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/models/__init__.py: -------------------------------------------------------------------------------- 1 | from dipdup import fields 2 | from dipdup.models import Model 3 | 4 | 5 | class Deposit(Model): 6 | id = fields.IntField(primary_key=True) 7 | level = fields.IntField() 8 | token = fields.CharField(max_length=36) 9 | amount = fields.IntField() 10 | -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_etherlink/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/types/rollup/tezos_storage.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.2.0 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class RollupStorage(RootModel[None]): 9 | root: None 10 | -------------------------------------------------------------------------------- /src/demo_tezos_etherlink/types/ticketer/tezos_parameters/deposit.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.2.0 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class DepositParameter(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_events/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_events/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_events.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_events/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_events 11 | WORKDIR /home/dipdup/demo_tezos_events -------------------------------------------------------------------------------- /src/demo_tezos_events/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_tezos_events 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_events.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_events/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_events/handlers/on_move_event.py: -------------------------------------------------------------------------------- 1 | from demo_tezos_events import models as models 2 | from demo_tezos_events.types.events_contract.tezos_events.move import MovePayload 3 | from dipdup.context import HandlerContext 4 | from dipdup.models.tezos import TezosEvent 5 | 6 | 7 | async def on_move_event( 8 | ctx: HandlerContext, 9 | event: TezosEvent[MovePayload], 10 | ) -> None: ... 11 | -------------------------------------------------------------------------------- /src/demo_tezos_events/handlers/on_other_event.py: -------------------------------------------------------------------------------- 1 | from demo_tezos_events import models as models 2 | from dipdup.context import HandlerContext 3 | from dipdup.models.tezos import TezosUnknownEvent 4 | 5 | 6 | async def on_other_event( 7 | ctx: HandlerContext, 8 | event: TezosUnknownEvent, 9 | ) -> None: ... 10 | -------------------------------------------------------------------------------- /src/demo_tezos_events/handlers/on_roll_event.py: -------------------------------------------------------------------------------- 1 | from demo_tezos_events import models as models 2 | from demo_tezos_events.types.events_contract.tezos_events.roll import RollPayload 3 | from dipdup.context import HandlerContext 4 | from dipdup.models.tezos import TezosEvent 5 | 6 | 7 | async def on_roll_event( 8 | ctx: HandlerContext, 9 | event: TezosEvent[RollPayload], 10 | ) -> None: ... 11 | -------------------------------------------------------------------------------- /src/demo_tezos_events/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_events/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_events/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_events/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_events/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_events/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_events/types/events_contract/tezos_events/move.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class MovePayload(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | address: str 14 | a: str 15 | b: str 16 | roll: str 17 | epoch: str 18 | rolls: str 19 | -------------------------------------------------------------------------------- /src/demo_tezos_events/types/events_contract/tezos_events/roll.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class RollPayload(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | address: str 14 | bool: bool 15 | -------------------------------------------------------------------------------- /src/demo_tezos_factories/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_factories/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_factories.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_factories/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_factories 11 | WORKDIR /home/dipdup/demo_tezos_factories -------------------------------------------------------------------------------- /src/demo_tezos_factories/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_factories/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_factories/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_factories/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_factories/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/models/__init__.py: -------------------------------------------------------------------------------- 1 | from dipdup import fields 2 | from dipdup.models import Model 3 | 4 | 5 | class Transfer(Model): 6 | id = fields.IntField(primary_key=True) 7 | from_ = fields.TextField() 8 | to = fields.TextField() 9 | amount = fields.TextField() 10 | -------------------------------------------------------------------------------- /src/demo_tezos_factories/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_factories/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_factories/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_factories/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_head/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_head.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_head/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_head 11 | WORKDIR /home/dipdup/demo_tezos_head -------------------------------------------------------------------------------- /src/demo_tezos_head/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_tezos_head 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_head.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_head/dipdup.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | package: demo_tezos_head 3 | 4 | datasources: 5 | tzkt_mainnet: 6 | kind: tezos.tzkt 7 | url: ${TZKT_URL:-https://api.tzkt.io} 8 | 9 | indexes: 10 | mainnet_head: 11 | kind: tezos.head 12 | datasources: 13 | - tzkt_mainnet 14 | callback: on_mainnet_head -------------------------------------------------------------------------------- /src/demo_tezos_head/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_head/handlers/on_mainnet_head.py: -------------------------------------------------------------------------------- 1 | from demo_tezos_head import models as models 2 | from dipdup.context import HandlerContext 3 | from dipdup.models.tezos import TezosHeadBlockData 4 | 5 | 6 | async def on_mainnet_head( 7 | ctx: HandlerContext, 8 | head: TezosHeadBlockData, 9 | ) -> None: ... 10 | -------------------------------------------------------------------------------- /src/demo_tezos_head/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_head/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_head/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_head/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_head/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_head/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_head/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_nft_marketplace 11 | WORKDIR /home/dipdup/demo_tezos_nft_marketplace -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_nft_marketplace/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/types/hen_minter/tezos_parameters/cancel_swap.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import RootModel 6 | 7 | 8 | class CancelSwapParameter(RootModel[str]): 9 | root: str 10 | -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/types/hen_minter/tezos_parameters/collect.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class CollectParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | objkt_amount: str 14 | swap_id: str 15 | -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/types/hen_minter/tezos_parameters/mint_objkt.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class MintOBJKTParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | address: str 14 | amount: str 15 | metadata: str 16 | royalties: str 17 | -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/types/hen_minter/tezos_parameters/swap.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class SwapParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | objkt_amount: str 14 | objkt_id: str 15 | xtz_per_objkt: str 16 | -------------------------------------------------------------------------------- /src/demo_tezos_nft_marketplace/types/hen_objkts/tezos_parameters/mint.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class MintParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | address: str 14 | amount: str 15 | token_id: str 16 | token_info: dict[str, str] 17 | -------------------------------------------------------------------------------- /src/demo_tezos_raw/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_raw/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_raw.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_raw/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_raw 11 | WORKDIR /home/dipdup/demo_tezos_raw -------------------------------------------------------------------------------- /src/demo_tezos_raw/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_tezos_raw 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_raw.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_raw/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_raw/handlers/on_operation.py: -------------------------------------------------------------------------------- 1 | from demo_tezos_raw import models 2 | from dipdup.context import HandlerContext 3 | from dipdup.models.tezos import TezosOperationData 4 | 5 | 6 | async def on_operation( 7 | ctx: HandlerContext, 8 | operation: TezosOperationData, 9 | ) -> None: 10 | await models.Operation.create( 11 | hash=operation.hash, 12 | level=operation.level, 13 | type=operation.type, 14 | ) 15 | -------------------------------------------------------------------------------- /src/demo_tezos_raw/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_raw/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_raw/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_raw/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/models/__init__.py: -------------------------------------------------------------------------------- 1 | from dipdup import fields 2 | from dipdup.models import Model 3 | from dipdup.models.tezos import TezosOperationType 4 | 5 | 6 | class Operation(Model): 7 | hash = fields.TextField() 8 | level = fields.IntField() 9 | type = fields.EnumField(TezosOperationType) 10 | -------------------------------------------------------------------------------- /src/demo_tezos_raw/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_raw/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_raw/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_raw/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_token/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/configs/dipdup.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/demo_tezos_token.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 -------------------------------------------------------------------------------- /src/demo_tezos_token/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_token 11 | WORKDIR /home/dipdup/demo_tezos_token -------------------------------------------------------------------------------- /src/demo_tezos_token/deploy/compose.sqlite.yaml: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | name: demo_tezos_token 4 | 5 | services: 6 | dipdup: 7 | build: 8 | context: .. 9 | dockerfile: deploy/Dockerfile 10 | command: ["-C", "sqlite", "run"] 11 | restart: always 12 | env_file: .env 13 | ports: 14 | - 46339 15 | - 9000 16 | volumes: 17 | - sqlite:${SQLITE_PATH:-/tmp/demo_tezos_token.sqlite} 18 | 19 | volumes: 20 | sqlite: -------------------------------------------------------------------------------- /src/demo_tezos_token/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_token/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/models/__init__.py: -------------------------------------------------------------------------------- 1 | from dipdup import fields 2 | from dipdup.models import Model 3 | 4 | 5 | class Holder(Model): 6 | address = fields.TextField(primary_key=True) 7 | balance = fields.DecimalField(decimal_places=8, max_digits=20, default=0) 8 | turnover = fields.DecimalField(decimal_places=8, max_digits=20, default=0) 9 | tx_count = fields.BigIntField(default=0) 10 | last_seen = fields.DatetimeField(null=True) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_token/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_token/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token/types/tzbtc/tezos_parameters/mint.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | 8 | 9 | class MintParameter(BaseModel): 10 | model_config = ConfigDict( 11 | extra='forbid', 12 | ) 13 | to: str 14 | value: str 15 | -------------------------------------------------------------------------------- /src/demo_tezos_token/types/tzbtc/tezos_parameters/transfer.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | from pydantic import Field 8 | 9 | 10 | class TransferParameter(BaseModel): 11 | model_config = ConfigDict( 12 | extra='forbid', 13 | ) 14 | from_: str = Field(..., alias='from') 15 | to: str 16 | value: str 17 | -------------------------------------------------------------------------------- /src/demo_tezos_token/types/tzbtc/tezos_storage.py: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | from __future__ import annotations 4 | 5 | from pydantic import BaseModel 6 | from pydantic import ConfigDict 7 | from pydantic import Field 8 | 9 | 10 | class TzbtcStorage(BaseModel): 11 | model_config = ConfigDict( 12 | extra='forbid', 13 | ) 14 | big_map: dict[str, str] 15 | lambda_: str = Field(..., alias='lambda') 16 | nat: str 17 | bool: bool 18 | -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_token_balances 11 | WORKDIR /home/dipdup/demo_tezos_token_balances -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/models/__init__.py: -------------------------------------------------------------------------------- 1 | from dipdup import fields 2 | from dipdup.models import Model 3 | 4 | 5 | class Holder(Model): 6 | address = fields.TextField(primary_key=True) 7 | balance = fields.DecimalField(decimal_places=8, max_digits=20, default=0) 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_balances/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_balances/types/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/__init__.py -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/abi/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/abi/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/configs/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/configs/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/deploy/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/deploy/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/deploy/Dockerfile: -------------------------------------------------------------------------------- 1 | # generated by DipDup 8.4.1 2 | 3 | FROM dipdup/dipdup:8 4 | # FROM ghcr.io/dipdup-io/dipdup:8 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . demo_tezos_token_transfers 11 | WORKDIR /home/dipdup/demo_tezos_token_transfers -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/graphql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/graphql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/handlers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/handlers/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/handlers/batch.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HandlerContext 2 | from dipdup.index import MatchedHandler 3 | 4 | 5 | async def batch( 6 | ctx: HandlerContext, 7 | handlers: tuple[MatchedHandler, ...], 8 | ) -> None: 9 | for handler in handlers: 10 | await ctx.fire_matched_handler(handler) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/hasura/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/hasura/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/hooks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/hooks/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/hooks/on_reindex.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_reindex( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_reindex') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/hooks/on_restart.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_restart( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_restart') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/hooks/on_synchronized.py: -------------------------------------------------------------------------------- 1 | from dipdup.context import HookContext 2 | 3 | 4 | async def on_synchronized( 5 | ctx: HookContext, 6 | ) -> None: 7 | await ctx.execute_sql_script('on_synchronized') 8 | -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/mcp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/mcp/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/models/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/models/__init__.py: -------------------------------------------------------------------------------- 1 | from dipdup import fields 2 | from dipdup.models import Model 3 | 4 | 5 | class Holder(Model): 6 | address = fields.TextField(primary_key=True) 7 | balance = fields.DecimalField(decimal_places=8, max_digits=20, default=0) 8 | turnover = fields.DecimalField(decimal_places=8, max_digits=20, default=0) 9 | tx_count = fields.BigIntField(default=0) 10 | last_seen = fields.DatetimeField(null=True) 11 | -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/py.typed -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/sql/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/sql/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/sql/on_index_rollback/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/sql/on_index_rollback/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/sql/on_reindex/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/sql/on_reindex/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/sql/on_restart/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/sql/on_restart/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/sql/on_synchronized/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/sql/on_synchronized/.keep -------------------------------------------------------------------------------- /src/demo_tezos_token_transfers/types/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/demo_tezos_token_transfers/types/.keep -------------------------------------------------------------------------------- /src/dipdup/__init__.py: -------------------------------------------------------------------------------- 1 | """Root DipDup package. 2 | 3 | Contains software versions and other metadata. 4 | """ 5 | 6 | import importlib.metadata as _pkg 7 | 8 | __version__ = _pkg.version('dipdup') 9 | __editable__ = _pkg.PackagePath('dipdup.pth') in (_pkg.files('dipdup') or ()) 10 | __spec_version__ = '3.0' 11 | -------------------------------------------------------------------------------- /src/dipdup/__main__.py: -------------------------------------------------------------------------------- 1 | from dipdup.cli import cli 2 | 3 | if __name__ == '__main__': 4 | cli(prog_name='dipdup', standalone_mode=True) 5 | -------------------------------------------------------------------------------- /src/dipdup/abi/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import annotations 2 | 3 | from abc import ABC 4 | from abc import abstractmethod 5 | from typing import TYPE_CHECKING 6 | 7 | if TYPE_CHECKING: 8 | from dipdup.package import DipDupPackage 9 | 10 | 11 | class AbiManager(ABC): 12 | def __init__(self, package: DipDupPackage) -> None: 13 | self._package = package 14 | 15 | @abstractmethod 16 | def load(self) -> None: ... 17 | -------------------------------------------------------------------------------- /src/dipdup/aerich.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/aerich.py -------------------------------------------------------------------------------- /src/dipdup/config/abi_etherscan.py: -------------------------------------------------------------------------------- 1 | # NOTE: Alias, remove in 9.0 2 | from dipdup.config.evm_etherscan import EvmEtherscanDatasourceConfig as AbiEtherscanDatasourceConfig 3 | 4 | __all__ = ('AbiEtherscanDatasourceConfig',) 5 | -------------------------------------------------------------------------------- /src/dipdup/datasources/abi_etherscan.py: -------------------------------------------------------------------------------- 1 | # NOTE: Alias, remove in 9.0 2 | from dipdup.datasources.evm_etherscan import EvmEtherscanDatasource as AbiEtherscanDatasource # noqa: F401 3 | -------------------------------------------------------------------------------- /src/dipdup/indexes/tezos_big_maps/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/indexes/tezos_big_maps/__init__.py -------------------------------------------------------------------------------- /src/dipdup/indexes/tezos_events/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/indexes/tezos_events/__init__.py -------------------------------------------------------------------------------- /src/dipdup/indexes/tezos_head/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/indexes/tezos_head/__init__.py -------------------------------------------------------------------------------- /src/dipdup/indexes/tezos_operations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/indexes/tezos_operations/__init__.py -------------------------------------------------------------------------------- /src/dipdup/indexes/tezos_token_balances/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/indexes/tezos_token_balances/__init__.py -------------------------------------------------------------------------------- /src/dipdup/indexes/tezos_token_transfers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/indexes/tezos_token_transfers/__init__.py -------------------------------------------------------------------------------- /src/dipdup/models/substrate_subsquid.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/models/substrate_subsquid.py -------------------------------------------------------------------------------- /src/dipdup/projects/base/configs/dipdup.sqlite.yaml.j2: -------------------------------------------------------------------------------- 1 | {{ header }} 2 | database: 3 | kind: sqlite 4 | path: ${SQLITE_PATH:-/tmp/{{ project.package }}.sqlite} 5 | 6 | sentry: 7 | dsn: ${SENTRY_DSN:-''} 8 | environment: ${SENTRY_ENVIRONMENT:-''} 9 | 10 | prometheus: 11 | host: 0.0.0.0 12 | port: 8000 13 | 14 | api: 15 | host: 0.0.0.0 16 | port: 46339 17 | 18 | mcp: 19 | host: 0.0.0.0 20 | port: 9999 21 | api_url: http://0.0.0.0:46339 22 | -------------------------------------------------------------------------------- /src/dipdup/projects/base/deploy/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | {{ header }} 2 | 3 | FROM dipdup/dipdup:{{ project.dipdup_version }} 4 | # FROM ghcr.io/dipdup-io/dipdup:{{ project.dipdup_version }} 5 | # FROM ghcr.io/dipdup-io/dipdup:next 6 | 7 | # COPY --chown=dipdup pyproject.toml README.md . 8 | # RUN pip install . 9 | 10 | COPY --chown=dipdup . {{ project.package }} 11 | WORKDIR /home/dipdup/{{ project.package }} 12 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_blank/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Empty config for a fresh start 4 | package: demo_blank 5 | template: demo_blank -------------------------------------------------------------------------------- /src/dipdup/projects/demo_evm_events/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: ERC-20 token transfers (from event logs) 4 | package: demo_evm_events 5 | template: demo_evm_events -------------------------------------------------------------------------------- /src/dipdup/projects/demo_evm_transactions/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: ERC-20 token transfers (from transactions) 4 | package: demo_evm_transactions 5 | template: demo_evm_transactions -------------------------------------------------------------------------------- /src/dipdup/projects/demo_evm_uniswap/abi/erc20/ERC20NameBytes.json.j2: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "name", 6 | "outputs": [ 7 | { 8 | "internalType": "bytes32", 9 | "name": "", 10 | "type": "bytes32" 11 | } 12 | ], 13 | "payable": false, 14 | "stateMutability": "view", 15 | "type": "function" 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_evm_uniswap/abi/erc20/ERC20SymbolBytes.json.j2: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "symbol", 6 | "outputs": [ 7 | { 8 | "internalType": "bytes32", 9 | "name": "", 10 | "type": "bytes32" 11 | } 12 | ], 13 | "payable": false, 14 | "stateMutability": "view", 15 | "type": "function" 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_evm_uniswap/handlers/pool/flash.py.j2: -------------------------------------------------------------------------------- 1 | from {{ project.package }} import models as models 2 | from {{ project.package }}.types.pool.evm_events.flash import FlashPayload 3 | from dipdup.context import HandlerContext 4 | from dipdup.models.evm import EvmEvent 5 | 6 | 7 | async def flash( 8 | ctx: HandlerContext, 9 | event: EvmEvent[FlashPayload], 10 | ) -> None: 11 | ... -------------------------------------------------------------------------------- /src/dipdup/projects/demo_evm_uniswap/models/abi.py.j2: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from typing import Any 3 | from typing import cast 4 | 5 | import orjson 6 | 7 | 8 | def get_abi(path: str) -> dict[str, Any]: 9 | """Get ABI without context to cache in the module""" 10 | package_dir = Path(__file__).parent.parent 11 | abi_path = package_dir / 'abi' / f"{path.replace('.', '/')}.json" 12 | return cast(dict[str, Any], orjson.loads(abi_path.read_bytes())) -------------------------------------------------------------------------------- /src/dipdup/projects/demo_evm_uniswap/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Uniswap V3 pools, positions, etc. (advanced, uses TimescaleDB) 4 | package: demo_evm_uniswap 5 | template: demo_evm_uniswap 6 | postgres_image: timescale/timescaledb-ha:pg15 7 | postgres_data_path: /home/postgres/pgdata/data 8 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_evm_uniswap/sql/on_reindex/00_prepare_db.sql.j2: -------------------------------------------------------------------------------- 1 | CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE; 2 | 3 | ALTER TABLE swap DROP CONSTRAINT swap_pkey; 4 | ALTER TABLE swap ADD PRIMARY KEY (id, timestamp); 5 | SELECT create_hypertable('swap', 'timestamp', chunk_time_interval => 7776000); 6 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_starknet_events/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: ERC-20 token transfers (from events) 4 | package: demo_starknet_events 5 | template: demo_starknet_events -------------------------------------------------------------------------------- /src/dipdup/projects/demo_substrate_events/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Substrate balance transfers 4 | package: demo_substrate_events 5 | template: demo_substrate_events -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_auction/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: NFT marketplace (TzColors) 4 | package: demo_tezos_auction 5 | template: demo_tezos_auction -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_dao/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: DAO registry (Homebase DAO) 4 | package: demo_tezos_dao 5 | template: demo_tezos_dao -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_dex/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: DEX balances and liquidity (Quipuswap) 4 | package: demo_tezos_dex 5 | template: demo_tezos_dex -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_domains/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Domain name service (Tezos Domains) 4 | package: demo_tezos_domains 5 | template: demo_tezos_domains -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_etherlink/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Etherlink smart rollup transactions 4 | package: demo_tezos_etherlink 5 | template: demo_tezos_etherlink -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_events/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Processing contract events 4 | package: demo_tezos_events 5 | template: demo_tezos_events -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_factories/models/__init__.py.j2: -------------------------------------------------------------------------------- 1 | 2 | from dipdup import fields 3 | 4 | from dipdup.models import Model 5 | 6 | 7 | class Transfer(Model): 8 | id = fields.IntField(primary_key=True) 9 | from_ = fields.TextField() 10 | to = fields.TextField() 11 | amount = fields.TextField() 12 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_factories/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Example of spawning indexes in runtime 4 | package: demo_tezos_factories 5 | template: demo_tezos_factories -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_head/dipdup.yaml.j2: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | package: {{ project.package }} 3 | 4 | datasources: 5 | tzkt_mainnet: 6 | kind: tezos.tzkt 7 | url: ${TZKT_URL:-https://api.tzkt.io} 8 | 9 | indexes: 10 | mainnet_head: 11 | kind: tezos.head 12 | datasources: 13 | - tzkt_mainnet 14 | callback: on_mainnet_head 15 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_head/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Processing head block metadata (realtime only) 4 | package: demo_tezos_head 5 | template: demo_tezos_head -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_nft_marketplace/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: NFT marketplace (hic at nunc) 4 | package: demo_tezos_nft_marketplace 5 | template: demo_tezos_nft_marketplace -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_raw/models/__init__.py.j2: -------------------------------------------------------------------------------- 1 | from dipdup import fields 2 | 3 | from dipdup.models.tezos import TezosOperationType 4 | from dipdup.models import Model 5 | 6 | 7 | class Operation(Model): 8 | hash = fields.TextField() 9 | level = fields.IntField() 10 | type = fields.EnumField(TezosOperationType) 11 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_raw/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: Process raw operations without filtering and typed payloads 4 | package: demo_tezos_raw 5 | template: demo_tezos_raw -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_token/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: FA1.2 token contract operations 4 | package: demo_tezos_token 5 | template: demo_tezos_token -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_token_balances/models/__init__.py.j2: -------------------------------------------------------------------------------- 1 | from dipdup import fields 2 | 3 | from dipdup.models import Model 4 | 5 | 6 | class Holder(Model): 7 | address = fields.TextField(primary_key=True) 8 | balance = fields.DecimalField(decimal_places=8, max_digits=20, default=0) 9 | -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_token_balances/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: FA1.2 token balances 4 | package: demo_tezos_token_balances 5 | template: demo_tezos_token_balances -------------------------------------------------------------------------------- /src/dipdup/projects/demo_tezos_token_transfers/replay.yaml: -------------------------------------------------------------------------------- 1 | spec_version: 3.0 2 | replay: 3 | description: FA1.2 token transfers 4 | package: demo_tezos_token_transfers 5 | template: demo_tezos_token_transfers -------------------------------------------------------------------------------- /src/dipdup/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/src/dipdup/py.typed -------------------------------------------------------------------------------- /src/dipdup/sql/dipdup_approve.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE FUNCTION dipdup_approve(schema_name VARCHAR) RETURNS void AS $$ 2 | BEGIN 3 | UPDATE dipdup_index SET config_hash = null; 4 | UPDATE dipdup_schema SET reindex = null, hash = null; 5 | UPDATE dipdup_head SET hash = null; 6 | RETURN; 7 | END; 8 | $$ LANGUAGE plpgsql; 9 | -------------------------------------------------------------------------------- /src/dipdup/subscriptions/starknet.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from typing import Any 3 | from typing import Literal 4 | 5 | from dipdup.subscriptions import Subscription 6 | 7 | 8 | @dataclass(frozen=True) 9 | class StarknetSubscription(Subscription): 10 | name: Literal['starknet'] = 'starknet' 11 | 12 | def get_params(self) -> list[Any]: 13 | return [self.name] 14 | -------------------------------------------------------------------------------- /src/dipdup/templates/callback.py.j2: -------------------------------------------------------------------------------- 1 | {% for imp in imports %}{{ imp }} 2 | {% endfor %} 3 | 4 | async def {{ callback }}( 5 | {%- for arg in arguments %} 6 | {{ arg }}{{',' if '#' not in arg else ''}} 7 | {%- endfor %} 8 | ) -> None: 9 | {%- for line in code %} 10 | {{ line }} 11 | {%- endfor %} 12 | -------------------------------------------------------------------------------- /src/dipdup/templates/replay.yaml.j2: -------------------------------------------------------------------------------- 1 | # To refresh existing project run `dipdup init --base --force` after modifying this file. 2 | # To generate a new project from this replay run `dipdup new --replay `. 3 | # 4 | spec_version: 3.0 5 | replay: 6 | {% for k, v in project.items() if not k.startswith('_') %}{{ ' ' + k + ': ' + v }} 7 | {% endfor %} -------------------------------------------------------------------------------- /tests/configs/common_postgres.yaml: -------------------------------------------------------------------------------- 1 | database: 2 | kind: postgres 3 | host: ${POSTGRES_HOST} 4 | user: test 5 | password: test 6 | database: test -------------------------------------------------------------------------------- /tests/configs/common_postgres_immune.yaml: -------------------------------------------------------------------------------- 1 | database: 2 | kind: postgres 3 | host: ${POSTGRES_HOST} 4 | user: test 5 | password: test 6 | database: test 7 | 8 | immune_tables: 9 | - tld 10 | - domain 11 | - test 12 | -------------------------------------------------------------------------------- /tests/configs/common_sqlite.yaml: -------------------------------------------------------------------------------- 1 | database: 2 | kind: sqlite 3 | path: db.sqlite3 4 | -------------------------------------------------------------------------------- /tests/configs/common_sqlite_immune.yaml: -------------------------------------------------------------------------------- 1 | database: 2 | kind: sqlite 3 | path: db.sqlite3 4 | 5 | immune_tables: 6 | - tld 7 | - domain 8 | - test 9 | 10 | advanced: 11 | unsafe_sqlite: true -------------------------------------------------------------------------------- /tests/configs/common_starknet.yaml: -------------------------------------------------------------------------------- 1 | datasources: 2 | subsquid: 3 | kind: starknet.subsquid 4 | url: ${SUBSQUID_URL:-https://v2.archive.subsquid.io/network/starknet-mainnet} 5 | node: 6 | kind: starknet.node 7 | url: ${NODE_URL:-https://starknet-mainnet.g.alchemy.com/v2}/${ALCHEMY_API_KEY:-''} 8 | -------------------------------------------------------------------------------- /tests/configs/common_tezos.yaml: -------------------------------------------------------------------------------- 1 | # NOTE: Do not refactor test Tezos configs! This file is a placeholder. 2 | {} 3 | -------------------------------------------------------------------------------- /tests/replays/185f6628ac43f6ca728c5b79b7b81a3c3671efce7f14030a06a27e90cf641dea: -------------------------------------------------------------------------------- 1 | { 2 | "vetos": 1455, 3 | "votes": 1457, 4 | "ledger": 1449, 5 | "voters": 1456, 6 | "counter": "14", 7 | "metadata": 1450, 8 | "token_list": 1452, 9 | "dex_lambdas": 1448, 10 | "user_rewards": 1454, 11 | "token_lambdas": 1451, 12 | "baker_validator": "KT1LcPGQzWWaqBdJKH32fn6RQXVeZPgutDqw", 13 | "token_to_exchange": 1453 14 | } -------------------------------------------------------------------------------- /tests/replays/1c717490846300e1639e96a0c1438b6dd2abd6de013c5edec49042fa364c06e6: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/replays/4fbdb4667971fab446a5ac5937a7c8cc6ef5813ff00af24b6fd1b1a0427bedbb: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 1314568, 4 | "KT1K4EwTpbvYN9agJdjpyJm4ZZdhpUNKB3F6" 5 | ] 6 | ] -------------------------------------------------------------------------------- /tests/replays/5b004196490632859ec1b019d640f6bbb93fc86a433c8969e10f36f51ac2c78d: -------------------------------------------------------------------------------- 1 | Hello from IPFS Gateway Checker 2 | -------------------------------------------------------------------------------- /tests/replays/60f48c13c47a1347786a6dcf6f741874e7b30b587d148faa67d15067bb3871de: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 1314564, 4 | "KT1W3VGRUjvS869r4ror8kdaxqJAZUbPyjMT" 5 | ] 6 | ] -------------------------------------------------------------------------------- /tests/replays/694f9dfac7db616fa52c4d35bca1036b6521d285ed1873028303b83822b5980b: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/replays/6d0c5443d41a15551acb41adc10d36d4895f5786d6922a878b5c5414610e0ebc: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 1314564, 4 | "KT1W3VGRUjvS869r4ror8kdaxqJAZUbPyjMT" 5 | ], 6 | [ 7 | 1314568, 8 | "KT1K4EwTpbvYN9agJdjpyJm4ZZdhpUNKB3F6" 9 | ] 10 | ] -------------------------------------------------------------------------------- /tests/replays/759b79ec12b1305d9fa8e1a5218e62bb3d3ad913580e19914d30d8aa09920ae4: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/replays/af37212b31e932f269c42c7f34ad8f3849bd8aed244652c41b9327c508985ce5: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 1314564, 4 | "KT1W3VGRUjvS869r4ror8kdaxqJAZUbPyjMT" 5 | ] 6 | ] -------------------------------------------------------------------------------- /tests/replays/db797e6bf4c1b9c3237af5dec694fb1b6d21418a5a2f7947eb7f54d4e9201baf: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 1314564, 4 | "KT1W3VGRUjvS869r4ror8kdaxqJAZUbPyjMT" 5 | ], 6 | [ 7 | 1314568, 8 | "KT1K4EwTpbvYN9agJdjpyJm4ZZdhpUNKB3F6" 9 | ] 10 | ] -------------------------------------------------------------------------------- /tests/replays/e82ba90c8570b92c0b1fc360b853aca3f1d7de457aacb9f6f19fa3e43879a8b3: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 1314568, 4 | "KT1K4EwTpbvYN9agJdjpyJm4ZZdhpUNKB3F6" 5 | ] 6 | ] -------------------------------------------------------------------------------- /tests/replays/e9fa56a94eb559c550dfbca4b27ef350a0b4a787afbe60205482a38223dcea04: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | 1314564, 4 | "KT1W3VGRUjvS869r4ror8kdaxqJAZUbPyjMT" 5 | ], 6 | [ 7 | 1314568, 8 | "KT1K4EwTpbvYN9agJdjpyJm4ZZdhpUNKB3F6" 9 | ] 10 | ] -------------------------------------------------------------------------------- /tests/test_datasources/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/test_datasources/__init__.py -------------------------------------------------------------------------------- /tests/test_index/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/test_index/__init__.py -------------------------------------------------------------------------------- /tests/types/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/__init__.py -------------------------------------------------------------------------------- /tests/types/asdf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/asdf/__init__.py -------------------------------------------------------------------------------- /tests/types/bazaar/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/bazaar/__init__.py -------------------------------------------------------------------------------- /tests/types/ftzfun/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/ftzfun/__init__.py -------------------------------------------------------------------------------- /tests/types/hen_subjkt/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/hen_subjkt/__init__.py -------------------------------------------------------------------------------- /tests/types/hjkl/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/hjkl/__init__.py -------------------------------------------------------------------------------- /tests/types/kolibri_ovens/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/kolibri_ovens/__init__.py -------------------------------------------------------------------------------- /tests/types/kolibri_ovens/set_delegate.py: -------------------------------------------------------------------------------- 1 | # generated by datamodel-codegen: 2 | # filename: setDelegate.json 3 | from __future__ import annotations 4 | 5 | from typing import Any 6 | 7 | from pydantic import RootModel 8 | 9 | 10 | class SetDelegateParameter(RootModel[Any]): 11 | root: str | None = None 12 | -------------------------------------------------------------------------------- /tests/types/listofmaps/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/listofmaps/__init__.py -------------------------------------------------------------------------------- /tests/types/listofmaps/storage.py: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | 3 | from pydantic import RootModel 4 | 5 | 6 | class ListOfMapsStorage(RootModel[Any]): 7 | root: list[dict[str, str]] 8 | -------------------------------------------------------------------------------- /tests/types/qwer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/qwer/__init__.py -------------------------------------------------------------------------------- /tests/types/rewq/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/rewq/__init__.py -------------------------------------------------------------------------------- /tests/types/tezotop/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/tezotop/__init__.py -------------------------------------------------------------------------------- /tests/types/yupana/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/yupana/__init__.py -------------------------------------------------------------------------------- /tests/types/zxcv/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dipdup-io/dipdup/6697a5f3ade02592ab915464c97dd3a847d3b578/tests/types/zxcv/__init__.py --------------------------------------------------------------------------------