Skip to content

Conversation

@gavriliumircea
Copy link
Contributor

@gavriliumircea gavriliumircea commented Nov 13, 2025

This pr adds graph support for Core Dao and Monad

@coderabbitai
Copy link

coderabbitai bot commented Nov 13, 2025

Walkthrough

Adds Core DAO and Monad network support across deployment and indexing: updates Graph deployment scripts, adds IPFS and auth constants, extends Envio and The Graph configs with new network entries and contracts, and adds type/handler support for Sablier v3.0 lockup handlers. Replaces many imports from `sablier` to `sablier/evm`, bumps package version to 1.3.0-beta.3, updates dependencies (including sablier to 1.6.1), and adds a new COREDAO_AUTH_TOKEN environment variable and CHANGELOG entry.

Suggested reviewers

  • PaulRBerg
  • razgraf

Pre-merge checks and finishing touches

✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: adding support for Core DAO and Monad chains throughout the codebase, which is reflected in the extensive modifications across configuration files, imports, and mappings.
Description check ✅ Passed The description is directly related to the changeset, mentioning graph support for Core Dao and Monad, which aligns with the configuration updates and chain additions visible in the raw summary.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/add-core-dao-support

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3e6123b and a034ef3.

📒 Files selected for processing (1)
  • CHANGELOG.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • CHANGELOG.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: ci

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
graph/graph.just (1)

106-122: Reduce code duplication in subgraph_name assignment.

The subgraph_name assignment on lines 110 and 116 is identical. Consider extracting it outside the case statement to follow the DRY principle.

Apply this refactor:

 @deploy-custom chain_slug version_label: codegen
     extra_args=""
+    subgraph_name={{ chain_slug }}/sablier-{{ INDEXER_NAME }}-{{ chain_slug }}
     case {{ chain_slug }} in
         lightlink)
             node_url="https://graph.phoenix.lightlink.io/rpc"
             ipfs_url="{{ IPFS_URL }}"
-            subgraph_name={{ chain_slug }}/sablier-{{ INDEXER_NAME }}-{{ chain_slug }}
             ;;
         core)
             node_url="https://thegraph.coredao.org/deploy/"
             ipfs_url="{{ IPFS_CORE_URL }}"
             extra_args="--deploy-key {{ COREDAO_AUTH_TOKEN }}"
-            subgraph_name={{ chain_slug }}/sablier-{{ INDEXER_NAME }}-{{ chain_slug }}
             ;;
         *)
             echo "Error: Unsupported chain '{{ chain_slug }}'. Supported chains: lightlink, core-dao"
             exit 1
             ;;
     esac
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 903c241 and 2577ab2.

📒 Files selected for processing (3)
  • CHANGELOG.md (1 hunks)
  • graph/graph.just (2 hunks)
  • src/indexers/graph.ts (2 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{js,jsx,ts,tsx,json,css,graphql,gql}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{js,jsx,ts,tsx,json,css,graphql,gql}: Use just biome-write to auto-fix formatting for JS/TS/JSON/CSS/GraphQL files when those files change
Use just biome-check to verify formatting for JS/TS/JSON/CSS/GraphQL files

Files:

  • src/indexers/graph.ts
**/*.{md,yaml,yml}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{md,yaml,yml}: Use just prettier-write to auto-fix formatting for Markdown and YAML files when those files change
Use just prettier-check to verify formatting for Markdown and YAML files

Files:

  • CHANGELOG.md
🧠 Learnings (4)
📚 Learning: 2025-10-20T14:28:42.861Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: graph/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:28:42.861Z
Learning: Applies to graph/**/{airdrops,flow,lockup}/schema.graphql : Do not edit generated {indexer}/schema.graphql files directly

Applied to files:

  • src/indexers/graph.ts
📚 Learning: 2025-10-20T14:28:42.861Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: graph/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:28:42.861Z
Learning: Applies to graph/schema/{airdrops,common}/** : Airdrops indexer schema sources come from schema/airdrops/ plus shared schema/common

Applied to files:

  • src/indexers/graph.ts
📚 Learning: 2025-10-20T14:29:12.051Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: schema/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:29:12.051Z
Learning: Applies to schema/graph/*/schema.graphql : NEVER edit generated files: graph/{indexer}/schema.graphql

Applied to files:

  • src/indexers/graph.ts
📚 Learning: 2025-10-20T14:27:27.706Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: envio/analytics/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:27:27.706Z
Learning: Applies to envio/analytics/**/analytics.graphql : Edit the GraphQL schema directly in analytics.graphql within this indexer

Applied to files:

  • src/indexers/graph.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: ci
🔇 Additional comments (5)
CHANGELOG.md (1)

8-18: LGTM!

The changelog entry follows the established format and correctly documents the addition of Core DAO support.

graph/graph.just (2)

104-104: LGTM!

Correctly updated to remove the explicit ipfs_url parameter since it's now dynamically assigned within the case statement.


125-125: LGTM!

Correctly updated to use shell variable syntax $ipfs_url instead of the Just template syntax since ipfs_url is now assigned as a shell variable within the case statement.

src/indexers/graph.ts (2)

133-133: Core DAO endpoint URL is correct.

The URL matches the documented mainnet query endpoint format for Core DAO. No changes needed.


26-26: The original review concern about missing manifest files is based on an incorrect understanding of the manifest generation system.

The chain slug override at line 26 ([chains.coreDao.id]: "core") is correct and necessary. Manifest files are not meant to be static, pre-existing files. They are dynamically generated during the build process via the codegen-manifest recipe, which runs as a dependency before deployment. The deployment workflow in graph.just (line 81) explicitly depends on codegen-manifest running first, and the chain slug "core" is properly supported in the deployment pipeline with Core DAO-specific configuration (https://thegraph.coredao.org/deploy/).

Likely an incorrect or invalid review comment.

@gavriliumircea gavriliumircea force-pushed the feat/add-core-dao-support branch from e3bec89 to 7b0e0ff Compare November 24, 2025 13:51
@gavriliumircea gavriliumircea changed the title feat/add-core-dao-support feat/add-core-dao-and-monad-support Nov 24, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
contracts/lockup.ts (1)

2-2: Runtime contracts/Version import moved to sablier/evm; consider aligning type import

Pulling contracts and Version from sablier/evm matches the rest of the migration and keeps lockupContracts behavior the same. You still import type { Sablier } from the root "sablier", which is fine if that type namespace is stable in the bumped version; if sablier/evm also re‑exports the Sablier type, you might optionally import it from there for consistency.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e3bec89 and 7b0e0ff.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (34)
  • .env.example (1 hunks)
  • CHANGELOG.md (1 hunks)
  • cli/commands/codegen/gql-config/base-config.ts (1 hunks)
  • cli/commands/codegen/graph-manifest/sources/airdrops.ts (1 hunks)
  • contracts/airdrops.ts (1 hunks)
  • contracts/flow.ts (1 hunks)
  • contracts/lockup.ts (1 hunks)
  • envio/airdrops/config.yaml (1 hunks)
  • envio/airdrops/helpers/fees.ts (1 hunks)
  • envio/analytics/config.yaml (2 hunks)
  • envio/analytics/effects/coingecko.ts (1 hunks)
  • envio/analytics/presets/lightlink/lightlink.ts (1 hunks)
  • envio/analytics/store/entity-fees.ts (1 hunks)
  • envio/analytics/tests/effects/coingecko.test.ts (1 hunks)
  • envio/common/deprecated.ts (1 hunks)
  • envio/flow/config.yaml (2 hunks)
  • envio/lockup/config.yaml (1 hunks)
  • envio/lockup/effects/proxender.ts (1 hunks)
  • envio/lockup/store/entity-stream.ts (1 hunks)
  • events/airdrops.ts (1 hunks)
  • events/flow.ts (1 hunks)
  • events/lockup.ts (1 hunks)
  • graph/graph.just (2 hunks)
  • package.json (4 hunks)
  • schema/enums.ts (1 hunks)
  • src/experimental.ts (1 hunks)
  • src/indexers/envio-deployments.ts (1 hunks)
  • src/indexers/envio.ts (2 hunks)
  • src/indexers/graph.ts (4 hunks)
  • tests/vendors/chains.test.ts (1 hunks)
  • tests/vendors/equivalence/airdrops.test.ts (1 hunks)
  • tests/vendors/equivalence/create-test.ts (1 hunks)
  • tests/vendors/equivalence/flow.test.ts (1 hunks)
  • tests/vendors/equivalence/lockup.test.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (21)
  • contracts/airdrops.ts
  • tests/vendors/equivalence/create-test.ts
  • CHANGELOG.md
  • envio/analytics/effects/coingecko.ts
  • src/experimental.ts
  • envio/analytics/tests/effects/coingecko.test.ts
  • envio/lockup/config.yaml
  • schema/enums.ts
  • envio/lockup/store/entity-stream.ts
  • events/flow.ts
  • envio/airdrops/config.yaml
  • cli/commands/codegen/gql-config/base-config.ts
  • package.json
  • events/lockup.ts
  • src/indexers/graph.ts
  • src/indexers/envio.ts
  • cli/commands/codegen/graph-manifest/sources/airdrops.ts
  • tests/vendors/equivalence/airdrops.test.ts
  • envio/airdrops/helpers/fees.ts
  • tests/vendors/equivalence/flow.test.ts
  • graph/graph.just
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{js,jsx,ts,tsx,json,css,graphql,gql}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{js,jsx,ts,tsx,json,css,graphql,gql}: Use just biome-write to auto-fix formatting for JS/TS/JSON/CSS/GraphQL files when those files change
Use just biome-check to verify formatting for JS/TS/JSON/CSS/GraphQL files

Files:

  • events/airdrops.ts
  • envio/lockup/effects/proxender.ts
  • envio/analytics/presets/lightlink/lightlink.ts
  • tests/vendors/equivalence/lockup.test.ts
  • envio/common/deprecated.ts
  • src/indexers/envio-deployments.ts
  • contracts/lockup.ts
  • envio/analytics/store/entity-fees.ts
  • contracts/flow.ts
  • tests/vendors/chains.test.ts
**/*.{md,yaml,yml}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{md,yaml,yml}: Use just prettier-write to auto-fix formatting for Markdown and YAML files when those files change
Use just prettier-check to verify formatting for Markdown and YAML files

Files:

  • envio/flow/config.yaml
  • envio/analytics/config.yaml
tests/vendors/**/*.test.ts

📄 CodeRabbit inference engine (tests/CLAUDE.md)

Place vendor tests under tests/vendors/ as *.test.ts files (e.g., chains, equivalence)

Files:

  • tests/vendors/equivalence/lockup.test.ts
  • tests/vendors/chains.test.ts
tests/**/*.test.ts

📄 CodeRabbit inference engine (tests/CLAUDE.md)

Use Vitest as the testing framework for all test files

Files:

  • tests/vendors/equivalence/lockup.test.ts
  • tests/vendors/chains.test.ts
🧠 Learnings (15)
📚 Learning: 2025-10-20T14:28:18.242Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: events/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:28:18.242Z
Learning: Applies to events/**/events/!(index).ts : Define event definitions per protocol in a dedicated {protocol}.ts file (e.g., airdrops.ts, flow.ts, lockup.ts)

Applied to files:

  • events/airdrops.ts
  • src/indexers/envio-deployments.ts
📚 Learning: 2025-10-20T14:28:18.242Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: events/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:28:18.242Z
Learning: Applies to events/**/events/common/**/*.ts : Place shared event definitions (e.g., ERC721, ERC20) under the common/ directory

Applied to files:

  • events/airdrops.ts
📚 Learning: 2025-10-20T14:28:18.242Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: events/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:28:18.242Z
Learning: Applies to events/**/events/!(index).ts : Each protocol file must export a Types.EventMap shaped as { [contractName]: { [version]: Types.Event[] } }

Applied to files:

  • events/airdrops.ts
  • src/indexers/envio-deployments.ts
  • contracts/lockup.ts
  • contracts/flow.ts
  • tests/vendors/chains.test.ts
📚 Learning: 2025-10-20T14:28:18.242Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: events/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:28:18.242Z
Learning: Applies to events/**/events/!(index).ts : Use protocol values of flow, lockup, or airdrops in Types.Event.protocol

Applied to files:

  • events/airdrops.ts
  • src/indexers/envio-deployments.ts
  • contracts/flow.ts
📚 Learning: 2025-10-20T14:27:05.970Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: envio/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:27:05.970Z
Learning: Applies to envio/**/bindings.ts : After GraphQL schema changes, update bindings.ts to add or remove imports so types match the new schema

Applied to files:

  • events/airdrops.ts
  • envio/lockup/effects/proxender.ts
  • envio/common/deprecated.ts
  • src/indexers/envio-deployments.ts
  • envio/analytics/store/entity-fees.ts
  • tests/vendors/chains.test.ts
📚 Learning: 2025-10-20T14:29:12.051Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: schema/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:29:12.051Z
Learning: Applies to schema/airdrops/** : Airdrops indexer schema sources live in schema/airdrops/ (plus shared from schema/common/)

Applied to files:

  • events/airdrops.ts
📚 Learning: 2025-10-20T14:27:18.351Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: envio/airdrops/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:27:18.351Z
Learning: Applies to envio/airdrops/**/airdrops.graphql : Do not edit the airdrops.graphql file directly

Applied to files:

  • events/airdrops.ts
  • .env.example
📚 Learning: 2025-10-20T14:26:47.083Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: contracts/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:26:47.083Z
Learning: Protocol contract sources should be organized as one file per protocol named {protocol}.ts, each defining the contracts for that protocol (e.g., airdrops, flow, lockup)

Applied to files:

  • events/airdrops.ts
  • src/indexers/envio-deployments.ts
  • contracts/lockup.ts
  • contracts/flow.ts
  • tests/vendors/chains.test.ts
📚 Learning: 2025-10-20T14:26:47.083Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: contracts/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:26:47.083Z
Learning: Use convertToIndexed to transform contracts from the sablier package format to the indexer format used by the Envio runtime

Applied to files:

  • events/airdrops.ts
  • tests/vendors/equivalence/lockup.test.ts
  • src/indexers/envio-deployments.ts
  • contracts/lockup.ts
  • contracts/flow.ts
📚 Learning: 2025-10-20T14:26:47.083Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: contracts/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:26:47.083Z
Learning: The index.ts in this module must export indexedContracts and the convertToIndexed helper

Applied to files:

  • events/airdrops.ts
  • contracts/lockup.ts
  • contracts/flow.ts
📚 Learning: 2025-10-20T14:28:18.242Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: events/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:28:18.242Z
Learning: Applies to events/**/events/!(index).ts : Each Types.Event entry must include contractName, eventName, protocol, version, and indexers

Applied to files:

  • events/airdrops.ts
  • contracts/lockup.ts
📚 Learning: 2025-10-20T14:27:46.074Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: envio/flow/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:27:46.074Z
Learning: Applies to envio/flow/**/flow.graphql : Do not edit flow.graphql directly

Applied to files:

  • envio/flow/config.yaml
📚 Learning: 2025-10-20T14:29:33.472Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: tests/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:29:33.472Z
Learning: Applies to tests/vendors/**/*.test.ts : Place vendor tests under tests/vendors/ as *.test.ts files (e.g., chains, equivalence)

Applied to files:

  • tests/vendors/equivalence/lockup.test.ts
  • tests/vendors/chains.test.ts
📚 Learning: 2025-10-20T14:29:33.472Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: tests/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:29:33.472Z
Learning: Applies to tests/*.test.ts : Place core tests in tests/*.test.ts (e.g., codegen, event resolution)

Applied to files:

  • tests/vendors/equivalence/lockup.test.ts
  • tests/vendors/chains.test.ts
📚 Learning: 2025-10-20T14:29:33.472Z
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: tests/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:29:33.472Z
Learning: Applies to tests/**/*.test.ts : Use Vitest as the testing framework for all test files

Applied to files:

  • tests/vendors/chains.test.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: ci
🔇 Additional comments (13)
envio/common/deprecated.ts (1)

2-3: Based on my web search attempts, I was unable to find definitive information about whether the sablier package version 1.6.1 supports the "sablier/evm" subpath export. The search results primarily returned information about Sablier smart contract packages (Solidity) rather than the JavaScript/TypeScript package being imported.

To verify this import path, I would need to inspect the codebase's package.json or lock file to confirm the exact package name and version being used.


Verify that the "sablier" package version being used supports the "sablier/evm" subpath export.

The import has been restructured to import Version from "sablier/evm" instead of the previous location. Please confirm that this subpath export exists in the sablier package version specified in your package.json, and that the build/bundler can resolve this path correctly. You may also want to test the imports locally to ensure no runtime errors occur.

envio/lockup/effects/proxender.ts (1)

3-3: LGTM!

Import path update is consistent with the repository-wide refactor to use sablier/evm.

contracts/flow.ts (1)

2-2: LGTM!

Import path update is consistent with the repository-wide refactor to use sablier/evm.

envio/analytics/store/entity-fees.ts (1)

5-5: LGTM!

Import path update from sablier/dist/chains to sablier/evm/chains is consistent with the repository-wide package restructuring.

envio/analytics/presets/lightlink/lightlink.ts (1)

5-5: LGTM!

Import path update from sablier/dist/chains to sablier/evm/chains is consistent with the repository-wide package restructuring.

.env.example (1)

17-19: Environment variable usage verified—no issues found.

The verification search confirms that COREDAO_AUTH_TOKEN is properly referenced in the deployment scripts. In graph/graph.just, the variable is correctly:

  • Retrieved from the environment at line 25 using env("COREDAO_AUTH_TOKEN")
  • Passed as a deploy key argument at line 115: --deploy-key {{ COREDAO_AUTH_TOKEN }}

The environment variable is appropriately documented in .env.example and correctly integrated into the deployment workflow.

envio/flow/config.yaml (2)

238-238: Block number change is intentional and verified as part of Sablier version update.

The start_block reduction from 168340950 to 24174155 for SablierFlow_v2_0 on network 59144 (Linea) was made in commit 2faed2e ("chore: bump sablier to the latest version") on Nov 14, 2025, as part of a coordinated update to the latest Sablier contracts. The same block number appears consistently across both envio/flow/config.yaml and envio/analytics/config.yaml, and the change includes corresponding ABI path updates (from dist/abi/ to dist/evm/abi/), confirming this reflects the official Sablier package release with updated deployment information for Linea.


279-289: Configuration verified and correct.

The network 143 configuration has been confirmed:

  • Monad mainnet uses chain ID 143
  • Alchemy supports Monad mainnet with the RPC endpoint https://monad-mainnet.g.alchemy.com/v2/<API_KEY>
  • SablierFlow v2.0 is deployed on Monad mainnet at address 0x0340a829b6dc3adf7710a5baf1970914af4977f5

The start_block 34582553 is consistently referenced across both envio/flow/config.yaml and envio/analytics/config.yaml, confirming intentional configuration reuse. All values are accurate.

envio/analytics/config.yaml (1)

703-728: Configuration is structurally correct and consistent across all network files.

Verification confirms:

  • Lines 703-728 in envio/analytics/config.yaml match the stated configuration
  • Network 143 contracts and addresses are consistent across analytics/config.yaml, flow/config.yaml, lockup/config.yaml, and airdrops/config.yaml
  • YAML formatting passes Prettier validation
  • No syntax or structural issues

The addresses and start blocks cannot be validated without access to Monad mainnet blockchain data. Manual verification of deployment records is required to confirm:

  • Contract addresses are correctly deployed on Monad
  • Start block numbers accurately reflect deployment blocks
events/airdrops.ts (1)

5-5: Invalid import path for [email protected] — fix required.

The import sablier/evm is not supported in sablier v1.6.1. Use the documented top-level import (import { ... } from "sablier") or the separate @sablier/evm-utils package for EVM-specific utilities instead.

⛔ Skipped due to learnings
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: contracts/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:26:47.083Z
Learning: Use convertToIndexed to transform contracts from the sablier package format to the indexer format used by the Envio runtime
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: contracts/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:26:47.083Z
Learning: Protocol contract sources should be organized as one file per protocol named {protocol}.ts, each defining the contracts for that protocol (e.g., airdrops, flow, lockup)
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: events/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:28:18.242Z
Learning: Applies to events/**/events/!(index).ts : Each protocol file must export a Types.EventMap shaped as { [contractName]: { [version]: Types.Event[] } }
Learnt from: CR
Repo: sablier-labs/indexers PR: 0
File: contracts/CLAUDE.md:0-0
Timestamp: 2025-10-20T14:26:47.083Z
Learning: The index.ts in this module must export indexedContracts and the convertToIndexed helper
tests/vendors/equivalence/lockup.test.ts (1)

1-1: Import path migration to sablier/evm/chains looks correct

Switching sepolia to come from sablier/evm/chains is consistent with the sablier/evm migration and keeps the equivalence test behavior unchanged. File location under tests/vendors/equivalence also matches the vendor-test layout guidelines. Based on learnings, this looks good.

src/indexers/envio-deployments.ts (1)

1-1: Updated Protocol import to sablier/evm is consistent with the migration

Using Protocol from sablier/evm keeps these deployment descriptors aligned with the rest of the sablier/evm-based code in this PR; the envioDeployments structure and keys remain unchanged.

tests/vendors/chains.test.ts (1)

4-4: Protocol import from sablier/evm fits the new sablier API usage

Updating Protocol to come from sablier/evm keeps this vendor chains test aligned with the rest of the migration while leaving the Graph/Envio checks unchanged. The file location and Vitest usage match the testing guidelines. Based on learnings, this is in good shape.

- address: "0x977fdf70abed6b60eeccee85322bea4575b0b6ed"
name: "SablierFlow_v2_0"
start_block: 168340950
start_block: 24174155
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Critical: Verify the start_block reduction for network 59144 (Linea).

The start_block for SablierFlow_v2_0 on network 59144 changed from 168340950 to 24174155—matching the same reduction seen in envio/flow/config.yaml. This is a decrease of approximately 144 million blocks that will trigger reindexing of historical data.

Please confirm this change is intentional and consistent across all affected config files. If correcting a deployment error, ensure this is documented.

🤖 Prompt for AI Agents
In envio/analytics/config.yaml around line 1343, the start_block for
SablierFlow_v2_0 on network 59144 was reduced from 168340950 to 24174155 (a
~144M block decrease) which will force a full reindex; verify whether this
reduction is intentional and, if not, restore the previous value (168340950)
across all affected config files (e.g., envio/flow/config.yaml) to keep them
consistent; if the change is intentional, add an inline comment in each changed
config and an entry in the deployment/change log documenting the reason, date,
and author so the reindexing impact is recorded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants