diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c9973223..e8267741e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,10 +11,13 @@ Releases prior to 7.0 has been removed from this file to declutter search result ### Added - cli: Rewritten interactive mode for `new` command. +- evm.blockvision: Added `evm.blockvision` datasource to fetch ABIs from Blockvision API. +- evm.sourcify: Added `evm.sourcify` datasource to fetch ABIs from Sourcify API. ### Fixed - coinbase: Fixed crash when using coinbase datasource. +- evm.node: Fixed crash when block range goes out of bounds. ## [8.2.0] - 2025-02-10 diff --git a/docs/1.getting-started/7.datasources.md b/docs/1.getting-started/7.datasources.md index 4b08b3c87..78425952c 100644 --- a/docs/1.getting-started/7.datasources.md +++ b/docs/1.getting-started/7.datasources.md @@ -14,16 +14,18 @@ Index datasources, ones that can be attached to a specific index, are prefixed w | [evm.subsquid](../3.datasources/1.evm_subsquid.md) | โŸ  EVM-compatible | Subsquid Network API | | [evm.node](../3.datasources/2.evm_node.md) | โŸ  EVM-compatible | Ethereum node | | [evm.etherscan](../3.datasources/3.evm_etherscan.md) | โŸ  EVM-compatible | Provides ABIs for EVM contracts | -| [starknet.subsquid](../3.datasources/4.starknet_subsquid.md) | ๐Ÿบ Starknet | Subsquid Network API | -| [starknet.node](../3.datasources/5.starknet_node.md) | ๐Ÿบ Starknet | Starknet node | -| [substrate.node](../3.datasources/6.substrate_node.md) | ๐Ÿ”ฎ Substrate | Substrate node | -| [substrate.subscan](../3.datasources/7.substrate_subscan.md) | ๐Ÿ”ฎ Substrate | Provides pallet metadata for Substrate networks | -| [substrate.subsquid](../3.datasources/8.substrate_subsquid.md) | ๐Ÿ”ฎ Substrate | Subsquid Network API | -| [tezos.tzkt](../3.datasources/9.tezos_tzkt.md) | ๊œฉ Tezos | TzKT API | -| [tzip_metadata](../3.datasources/10.tzip_metadata.md) | ๊œฉ Tezos | TZIP-16 metadata | -| [coinbase](../3.datasources/11.coinbase.md) | any | Coinbase price feed | -| [ipfs](../3.datasources/12.ipfs.md) | any | IPFS gateway | -| [http](../3.datasources/13.http.md) | any | Generic HTTP API | +| [evm.blockvision](../3.datasources/4.evm_blockvision.md) | โŸ  EVM-compatible | Provides ABIs for EVM contracts | +| [evm.sourcify](../3.datasources/5.evm_sourcify.md) | โŸ  EVM-compatible | Provides ABIs for EVM contracts | +| [starknet.subsquid](../3.datasources/6.starknet_subsquid.md) | ๐Ÿบ Starknet | Subsquid Network API | +| [starknet.node](../3.datasources/7.starknet_node.md) | ๐Ÿบ Starknet | Starknet node | +| [substrate.node](../3.datasources/8.substrate_node.md) | ๐Ÿ”ฎ Substrate | Substrate node | +| [substrate.subscan](../3.datasources/9.substrate_subscan.md) | ๐Ÿ”ฎ Substrate | Provides pallet metadata for Substrate networks | +| [substrate.subsquid](../3.datasources/10.substrate_subsquid.md) | ๐Ÿ”ฎ Substrate | Subsquid Network API | +| [tezos.tzkt](../3.datasources/11.tezos_tzkt.md) | ๊œฉ Tezos | TzKT API | +| [tzip_metadata](../3.datasources/12.tzip_metadata.md) | ๊œฉ Tezos | TZIP-16 metadata | +| [coinbase](../3.datasources/13.coinbase.md) | any | Coinbase price feed | +| [ipfs](../3.datasources/14.ipfs.md) | any | IPFS gateway | +| [http](../3.datasources/15.http.md) | any | Generic HTTP API | ## Connection settings diff --git a/docs/10.supported-networks/31.mode.md b/docs/10.supported-networks/31.mode.md index 90b4c0f64..c01f14b6b 100644 --- a/docs/10.supported-networks/31.mode.md +++ b/docs/10.supported-networks/31.mode.md @@ -11,8 +11,8 @@ description: "Mode network support" Explorer: [Blockscout](https://explorer.mode.network/) -| datasource | status | URLs | -| -----------------:|:------------- | ------------------------------ | -| **evm.subsquid** | ๐Ÿค” not tested | `https://v2.archive.subsquid.io/network/mode-mainnet` | -| **evm.etherscan** | ๐Ÿค” not tested | | -| **evm.node** | ๐Ÿค” not tested | `https://mode.drpc.org`
`wss://mode.drpc.org` | +| datasource | status | URLs | +| -----------------:|:------------- | ----------------------------------------------------- | +| **evm.subsquid** | ๐Ÿค” not tested | `https://v2.archive.subsquid.io/network/mode-mainnet` | +| **evm.etherscan** | ๐Ÿค” not tested | | +| **evm.node** | ๐Ÿค” not tested | `https://mode.drpc.org`
`wss://mode.drpc.org` | diff --git a/docs/10.supported-networks/32.monad.md b/docs/10.supported-networks/32.monad.md new file mode 100644 index 000000000..ee6ae0d17 --- /dev/null +++ b/docs/10.supported-networks/32.monad.md @@ -0,0 +1,23 @@ +--- +title: "Monad" +description: "Monad network support" +--- + + + +# Monad + +{{ #include 10.supported-networks/_intro.md }} + +## Monad Testnet + +Chain ID: `10143` + +Explorer: [Blockvision](https://testnet.monadexplorer.com/) + +| datasource | status | URLs | +| -------------------:|:--------- | ------------------------------------------------------------------------- | +| **evm.subsquid** | ๐Ÿ”ด no API | N/A | +| **evm.sourcify** | ๐Ÿ”ด 500 | `https://sourcify-api-monad.blockvision.org` | +| **evm.blockvision** | ๐ŸŸข works | `https://monad-api.blockvision.org/testnet/api` | +| **evm.node** | ๐ŸŸข works | `https://testnet-rpc2.monad.xyz/52227f026fa8fac9e2014c58fbf5643369b3bfc6` | diff --git a/docs/10.supported-networks/32.moonbeam.md b/docs/10.supported-networks/33.moonbeam.md similarity index 100% rename from docs/10.supported-networks/32.moonbeam.md rename to docs/10.supported-networks/33.moonbeam.md diff --git a/docs/10.supported-networks/33.neon.md b/docs/10.supported-networks/34.neon.md similarity index 100% rename from docs/10.supported-networks/33.neon.md rename to docs/10.supported-networks/34.neon.md diff --git a/docs/10.supported-networks/34.opbnb.md b/docs/10.supported-networks/35.opbnb.md similarity index 100% rename from docs/10.supported-networks/34.opbnb.md rename to docs/10.supported-networks/35.opbnb.md diff --git a/docs/10.supported-networks/35.optimism.md b/docs/10.supported-networks/36.optimism.md similarity index 100% rename from docs/10.supported-networks/35.optimism.md rename to docs/10.supported-networks/36.optimism.md diff --git a/docs/10.supported-networks/36.peaq.md b/docs/10.supported-networks/37.peaq.md similarity index 100% rename from docs/10.supported-networks/36.peaq.md rename to docs/10.supported-networks/37.peaq.md diff --git a/docs/10.supported-networks/37.polygon.md b/docs/10.supported-networks/38.polygon.md similarity index 100% rename from docs/10.supported-networks/37.polygon.md rename to docs/10.supported-networks/38.polygon.md diff --git a/docs/10.supported-networks/38.prom.md b/docs/10.supported-networks/39.prom.md similarity index 100% rename from docs/10.supported-networks/38.prom.md rename to docs/10.supported-networks/39.prom.md diff --git a/docs/10.supported-networks/39.scroll.md b/docs/10.supported-networks/40.scroll.md similarity index 100% rename from docs/10.supported-networks/39.scroll.md rename to docs/10.supported-networks/40.scroll.md diff --git a/docs/10.supported-networks/40.shibarium.md b/docs/10.supported-networks/41.shibarium.md similarity index 100% rename from docs/10.supported-networks/40.shibarium.md rename to docs/10.supported-networks/41.shibarium.md diff --git a/docs/10.supported-networks/41.shibuya.md b/docs/10.supported-networks/42.shibuya.md similarity index 100% rename from docs/10.supported-networks/41.shibuya.md rename to docs/10.supported-networks/42.shibuya.md diff --git a/docs/10.supported-networks/42.shiden.md b/docs/10.supported-networks/43.shiden.md similarity index 100% rename from docs/10.supported-networks/42.shiden.md rename to docs/10.supported-networks/43.shiden.md diff --git a/docs/10.supported-networks/43.scale.md b/docs/10.supported-networks/44.scale.md similarity index 100% rename from docs/10.supported-networks/43.scale.md rename to docs/10.supported-networks/44.scale.md diff --git a/docs/10.supported-networks/44.sonic.md b/docs/10.supported-networks/45.sonic.md similarity index 100% rename from docs/10.supported-networks/44.sonic.md rename to docs/10.supported-networks/45.sonic.md diff --git a/docs/10.supported-networks/45.taiko.md b/docs/10.supported-networks/46.taiko.md similarity index 100% rename from docs/10.supported-networks/45.taiko.md rename to docs/10.supported-networks/46.taiko.md diff --git a/docs/10.supported-networks/46.tanssi.md b/docs/10.supported-networks/47.tanssi.md similarity index 100% rename from docs/10.supported-networks/46.tanssi.md rename to docs/10.supported-networks/47.tanssi.md diff --git a/docs/10.supported-networks/47.x1.md b/docs/10.supported-networks/48.x1.md similarity index 100% rename from docs/10.supported-networks/47.x1.md rename to docs/10.supported-networks/48.x1.md diff --git a/docs/10.supported-networks/48.x-layer.md b/docs/10.supported-networks/49.x-layer.md similarity index 100% rename from docs/10.supported-networks/48.x-layer.md rename to docs/10.supported-networks/49.x-layer.md diff --git a/docs/10.supported-networks/49.zksync.md b/docs/10.supported-networks/50.zksync.md similarity index 100% rename from docs/10.supported-networks/49.zksync.md rename to docs/10.supported-networks/50.zksync.md diff --git a/docs/10.supported-networks/50.zora.md b/docs/10.supported-networks/51.zora.md similarity index 100% rename from docs/10.supported-networks/50.zora.md rename to docs/10.supported-networks/51.zora.md diff --git a/docs/2.indexes/_starknet.md b/docs/2.indexes/_starknet.md index f5f1a1f3c..98450bf68 100644 --- a/docs/2.indexes/_starknet.md +++ b/docs/2.indexes/_starknet.md @@ -1,4 +1,4 @@ ## Datasources -DipDup indexes for Starknet use [Subsquid Network](https://docs.subsquid.io/subsquid-network/overview/) as a main source of historical data. Starknet nodes are not required for DipDup to operate, but in future updates, it will be possible to use them to get the latest data (not yet in Subsquid Network) and realtime updates. See [starknet.subsquid](../3.datasources/4.starknet_subsquid.md) page for more info on how to configure the datasource. +DipDup indexes for Starknet use [Subsquid Network](https://docs.subsquid.io/subsquid-network/overview/) as a main source of historical data. Starknet nodes are not required for DipDup to operate, but in future updates, it will be possible to use them to get the latest data (not yet in Subsquid Network) and realtime updates. See [starknet.subsquid](../3.datasources/6.starknet_subsquid.md) page for more info on how to configure the datasource. diff --git a/docs/2.indexes/_substrate.md b/docs/2.indexes/_substrate.md index 3cc3f580d..ad4e2a8d1 100644 --- a/docs/2.indexes/_substrate.md +++ b/docs/2.indexes/_substrate.md @@ -1,6 +1,6 @@ ## Datasources -DipDup indexes for Substrate networks use [Subsquid Network](https://docs.subsquid.io/subsquid-network/overview/) as a main source of historical data. Substrate nodes are not required for DipDup to operate, but they can be used to get the latest data (not yet in Subsquid Network) and realtime updates. See [substrate.subsquid](../3.datasources/8.substrate_subsquid.md) and [substrate.node](../3.datasources/6.substrate_node.md) pages for more info on how to configure both datasources. +DipDup indexes for Substrate networks use [Subsquid Network](https://docs.subsquid.io/subsquid-network/overview/) as a main source of historical data. Substrate nodes are not required for DipDup to operate, but they can be used to get the latest data (not yet in Subsquid Network) and realtime updates. See [substrate.subsquid](../3.datasources/10.substrate_subsquid.md) and [substrate.node](../3.datasources/8.substrate_node.md) pages for more info on how to configure both datasources. For testing purposes, you can use EVM node as a single datasource, but indexing will be significantly slower. For production, it's recommended to use Subsquid Network as the main datasource and EVM node(s) as a secondary one. If there are multiple `substrate.node` datasources attached to index, DipDup will use random one for each request. diff --git a/docs/3.datasources/8.substrate_subsquid.md b/docs/3.datasources/10.substrate_subsquid.md similarity index 100% rename from docs/3.datasources/8.substrate_subsquid.md rename to docs/3.datasources/10.substrate_subsquid.md diff --git a/docs/3.datasources/9.tezos_tzkt.md b/docs/3.datasources/11.tezos_tzkt.md similarity index 100% rename from docs/3.datasources/9.tezos_tzkt.md rename to docs/3.datasources/11.tezos_tzkt.md diff --git a/docs/3.datasources/10.tzip_metadata.md b/docs/3.datasources/12.tzip_metadata.md similarity index 100% rename from docs/3.datasources/10.tzip_metadata.md rename to docs/3.datasources/12.tzip_metadata.md diff --git a/docs/3.datasources/11.coinbase.md b/docs/3.datasources/13.coinbase.md similarity index 100% rename from docs/3.datasources/11.coinbase.md rename to docs/3.datasources/13.coinbase.md diff --git a/docs/3.datasources/12.ipfs.md b/docs/3.datasources/14.ipfs.md similarity index 100% rename from docs/3.datasources/12.ipfs.md rename to docs/3.datasources/14.ipfs.md diff --git a/docs/3.datasources/13.http.md b/docs/3.datasources/15.http.md similarity index 100% rename from docs/3.datasources/13.http.md rename to docs/3.datasources/15.http.md diff --git a/docs/3.datasources/3.evm_etherscan.md b/docs/3.datasources/3.evm_etherscan.md index b23725564..baea4466b 100644 --- a/docs/3.datasources/3.evm_etherscan.md +++ b/docs/3.datasources/3.evm_etherscan.md @@ -22,7 +22,7 @@ datasources: api_key: ${ETHERSCAN_API_KEY:-''} ``` -During initialization, DipDup will use this datasource to fetch contract ABIs. If your config contains definitions for multiple networks, you can assign the datasource explicitly in `evm.subsquid` index definitions: +During initialization, DipDup will use this datasource to fetch contract ABIs. If your config contains definitions for multiple networks, you can assign the datasource explicitly in `evm` index definitions: ```yaml [dipdup.yaml] indexes: diff --git a/docs/3.datasources/4.evm_blockvision.md b/docs/3.datasources/4.evm_blockvision.md new file mode 100644 index 000000000..d567f58ca --- /dev/null +++ b/docs/3.datasources/4.evm_blockvision.md @@ -0,0 +1,31 @@ +--- +title: "Blockvision" +description: "Blockvision is multi-chain Node, Token, NFT, and DeFi API provider and data retrieval portal for developers. It provides a public API to fetch ABIs of verified contracts. DipDup can use its API to fetch ABIs for contracts being indexed." +network: "ethereum" +--- + +# Blockvision + +{{ #include 3.datasources/_evm_banner.md }} + +[Blockvision](https://docs.blockvision.org/reference/welcome-to-blockvision) is multi-chain Node, Token, NFT, and DeFi API provider and data retrieval portal for developers. It provides a public API to fetch ABIs of verified contracts. DipDup can use its API to fetch ABIs for contracts being indexed. + +To use this datasource, add the following section in config: + +```yaml [dipdup.yaml] +datasources: + blockvision: + kind: evm.blockvision + url: https://monad-api.blockvision.org/testnet/api +``` + +During initialization, DipDup will use this datasource to fetch contract ABIs. If your config contains definitions for multiple networks, you can assign the datasource explicitly in `evm` index definitions: + +```yaml [dipdup.yaml] +indexes: + evm_events: + kind: evm.events + datasources: + - blockvision + ... +``` diff --git a/docs/3.datasources/5.evm_sourcify.md b/docs/3.datasources/5.evm_sourcify.md new file mode 100644 index 000000000..db47a86cb --- /dev/null +++ b/docs/3.datasources/5.evm_sourcify.md @@ -0,0 +1,31 @@ +--- +title: "Sourcify" +description: "Sourcify is a source-code verification service for Ethereum smart contracts supporting Solidity and Vyper. It provides a public API to fetch ABIs of verified contracts. DipDup can use its API to fetch ABIs for contracts being indexed." +network: "ethereum" +--- + +# Sourcify + +{{ #include 3.datasources/_evm_banner.md }} + +[Sourcify](https://docs.sourcify.dev/docs/intro/index.html) is a source-code verification service for Ethereum smart contracts supporting Solidity and Vyper. It provides a public API to fetch ABIs of verified contracts. DipDup can use its API to fetch ABIs for contracts being indexed. + +To use this datasource, add the following section in config: + +```yaml [dipdup.yaml] +datasources: + sourcify: + kind: evm.sourcify + chain_id: 1 # Ethereum mainnet +``` + +During initialization, DipDup will use this datasource to fetch contract ABIs. If your config contains definitions for multiple networks, you can assign the datasource explicitly in `evm` index definitions: + +```yaml [dipdup.yaml] +indexes: + evm_events: + kind: evm.events + datasources: + - sourcify + ... +``` diff --git a/docs/3.datasources/4.starknet_subsquid.md b/docs/3.datasources/6.starknet_subsquid.md similarity index 100% rename from docs/3.datasources/4.starknet_subsquid.md rename to docs/3.datasources/6.starknet_subsquid.md diff --git a/docs/3.datasources/5.starknet_node.md b/docs/3.datasources/7.starknet_node.md similarity index 100% rename from docs/3.datasources/5.starknet_node.md rename to docs/3.datasources/7.starknet_node.md diff --git a/docs/3.datasources/6.substrate_node.md b/docs/3.datasources/8.substrate_node.md similarity index 100% rename from docs/3.datasources/6.substrate_node.md rename to docs/3.datasources/8.substrate_node.md diff --git a/docs/3.datasources/7.substrate_subscan.md b/docs/3.datasources/9.substrate_subscan.md similarity index 100% rename from docs/3.datasources/7.substrate_subscan.md rename to docs/3.datasources/9.substrate_subscan.md diff --git a/docs/7.references/2.config.md b/docs/7.references/2.config.md index e41959e14..a3c70946c 100644 --- a/docs/7.references/2.config.md +++ b/docs/7.references/2.config.md @@ -17,7 +17,7 @@ description: "Config file reference"