Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions docs/HyperIndex/Troubleshoot/common-issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,22 @@ pnpm codegen

> **Important:** Always run `pnpm codegen` immediately after cloning an indexer repository using Envio.

### Using Envio inside a monorepo
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Update the manual TOC for this new section.

This subsection is new, but the Table of Contents still jumps from PNPM version compatibility to Runtime Issues. Please add a nested entry for “Using Envio inside a monorepo” so the in-page navigation stays accurate.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/HyperIndex/Troubleshoot/common-issues.md` at line 46, The manual Table
of Contents is missing a nested entry for the new subsection "Using Envio inside
a monorepo"; update the in-page TOC (the markdown/HTML TOC block that lists
"PNPM version compatibility" and "Runtime Issues") to insert a nested entry
labeled "Using Envio inside a monorepo" under the appropriate parent (likely
between "PNPM version compatibility" and "Runtime Issues") so the TOC links to
the "Using Envio inside a monorepo" heading.


**Problem:** Your indexer lives inside a larger monorepo and you see `Cannot find module` or missing-generated-code errors even after running `pnpm codegen`.

**Cause:** `pnpm-workspace.yaml` doesn't include both your indexer root and its generated output directory.

**Solution:** Add both `<envio-indexer>` and `<envio-indexer>/generated` to the `packages` list in `pnpm-workspace.yaml`, for example:

```yaml
packages:
- "apps/*"
- "packages/*"
- "envio-indexer"
- "envio-indexer/generated"
```
Comment on lines +50 to +60
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

Does pnpm only treat directories matched by pnpm-workspace.yaml packagesglobs as workspace packages when they contain apackage.json? How should generated directories without a package.json be handled in pnpm workspaces?

💡 Result:

Yes—pnpm only treats directories that both (a) match pnpm-workspace.yaml packages globs and (b) contain a package.json as workspace packages. Directories that match the glob but don’t have a package.json are not valid workspace packages and should be avoided because they commonly cause confusion (some tooling even flags it as an error condition). [1]

How to handle generated directories without a package.json:

  • Exclude them from the workspace globs using negated patterns in pnpm-workspace.yaml (recommended), e.g. !**/dist/**, !**/.generated/**. pnpm explicitly supports include/exclude globbing in packages. [2]
  • Or move generated output outside the directories matched by your packages globs. [1]

If the generated directory is intended to be a workspace package (i.e., you want pnpm to link it / run recursive commands in it), then it needs its own package.json. [1]

Sources:
[1] Vercel conformance rule explaining that workspace-glob-matched directories must contain package.json and recommending exclude/move/convert-to-package fixes. (vercel.com)
[2] pnpm docs showing pnpm-workspace.yaml packages supports include/exclude (negated) globs. (dimava.github.io)

Citations:


The documented pnpm-workspace.yaml solution is incorrect and will not resolve the issue.

pnpm only recognizes directories as workspace packages if they both match packages globs AND contain a package.json. Adding envio-indexer/generated to the packages list without a package.json in that directory will have no effect.

For generated directories, use one of these approaches instead:

  • Exclude the generated directory from workspace globs using negated patterns:
    packages:
      - "apps/*"
      - "packages/*"
      - "envio-indexer"
      - "!envio-indexer/generated"
  • Move generated output outside the workspace directories.
  • If generated/ should be a workspace package, ensure it contains its own package.json.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/HyperIndex/Troubleshoot/common-issues.md` around lines 50 - 60, The
documented fix for pnpm-workspace.yaml is wrong because pnpm only treats matched
directories as workspace packages if they also contain a package.json; update
the instructions in the pnpm-workspace.yaml section to state that adding
"envio-indexer/generated" to the packages list alone won't work unless
envio-indexer/generated contains a package.json, and instead recommend one of
three correct approaches: use a negated glob to exclude the generated dir (e.g.,
add "!envio-indexer/generated" to the packages list), move the generated output
outside workspace globs, or make envio-indexer/generated a real workspace
package by adding its own package.json; reference pnpm-workspace.yaml, the
packages list, and envio-indexer/generated so readers can locate the lines to
change.


### Smart contract updated after the initial codegen

**Problem:** Changes to smart contracts aren't reflected in your blockchain indexer.
Expand Down
2 changes: 0 additions & 2 deletions docs/HyperRPC/hyperrpc-supported-networks.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ Here is a table of the currently supported networks on HyperRPC and their respec
| Holesky | 17000 | https://holesky.rpc.hypersync.xyz or https://17000.rpc.hypersync.xyz |
| Hoodi | 560048 | https://hoodi.rpc.hypersync.xyz or https://560048.rpc.hypersync.xyz |
| Hyperliquid | 999 | https://hyperliquid.rpc.hypersync.xyz or https://999.rpc.hypersync.xyz |
| Injective* | 1776 | https://injective.rpc.hypersync.xyz or https://1776.rpc.hypersync.xyz |
| Ink | 57073 | https://ink.rpc.hypersync.xyz or https://57073.rpc.hypersync.xyz |
| Kroma | 255 | https://kroma.rpc.hypersync.xyz or https://255.rpc.hypersync.xyz |
| Linea | 59144 | https://linea.rpc.hypersync.xyz or https://59144.rpc.hypersync.xyz |
Expand Down Expand Up @@ -120,7 +119,6 @@ Here is a table of the currently supported networks on HyperRPC and their respec
**Notes:**

- **Base Traces***: Start block: 39000000 (earlier blocks available on request)
- **Injective***: Start block: 129846180 (non-evm before that)
- **Sei***: Start block: 79123881 (non-evm before that)
- **Sei Testnet***: Start block: 186100000 (non-evm before that)

Expand Down
3 changes: 1 addition & 2 deletions docs/HyperSync/hypersync-supported-networks.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ If you are a network operator or user and would like improved service support or
| Cyber | 7560 | https://cyber.hypersync.xyz or https://7560.hypersync.xyz | https://cyber.rpc.hypersync.xyz or https://7560.rpc.hypersync.xyz | 🪨 |
| Eth Traces | 1 | https://eth-traces.hypersync.xyz or https://1-traces.hypersync.xyz | https://eth-traces.rpc.hypersync.xyz or https://1-traces.rpc.hypersync.xyz | 🏅 |
| Ethereum Mainnet | 1 | https://eth.hypersync.xyz or https://1.hypersync.xyz | https://eth.rpc.hypersync.xyz or https://1.rpc.hypersync.xyz | 🏅 |
| Fantom | 250 | https://fantom.hypersync.xyz or https://250.hypersync.xyz | https://fantom.rpc.hypersync.xyz or https://250.rpc.hypersync.xyz | 🪨 |
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add the matching Fantom Testnet row.

Line 58 adds Fantom mainnet, but the canonical supported-networks.json already includes supported-networks/fantom-testnet too. Leaving it out here makes this “Supported Networks” page incomplete relative to the source-of-truth manifest.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/HyperSync/hypersync-supported-networks.md` at line 58, Add a Fantom
Testnet row to the Supported Networks table to mirror the canonical manifest
entry (supported-networks.json → fantom-testnet); create a row labeled "Fantom
Testnet" with chain ID 4002 and the same URL pattern as the Fantom mainnet row
(e.g., https://fantom-testnet.hypersync.xyz or https://4002.hypersync.xyz for
the explorer-style column and https://fantom-testnet.rpc.hypersync.xyz or
https://4002.rpc.hypersync.xyz for the RPC column), and use an appropriate
testnet indicator emoji so the table matches the manifest entry for
fantom-testnet.

| Flare | 14 | https://flare.hypersync.xyz or https://14.hypersync.xyz | https://flare.rpc.hypersync.xyz or https://14.rpc.hypersync.xyz | 🪨 |
| Fraxtal | 252 | https://fraxtal.hypersync.xyz or https://252.hypersync.xyz | https://fraxtal.rpc.hypersync.xyz or https://252.rpc.hypersync.xyz | 🪨 |
| Fuji | 43113 | https://fuji.hypersync.xyz or https://43113.hypersync.xyz | https://fuji.rpc.hypersync.xyz or https://43113.rpc.hypersync.xyz | 🎒 |
Expand All @@ -64,7 +65,6 @@ If you are a network operator or user and would like improved service support or
| Holesky | 17000 | https://holesky.hypersync.xyz or https://17000.hypersync.xyz | https://holesky.rpc.hypersync.xyz or https://17000.rpc.hypersync.xyz | 🎒 |
| Hoodi | 560048 | https://hoodi.hypersync.xyz or https://560048.hypersync.xyz | https://hoodi.rpc.hypersync.xyz or https://560048.rpc.hypersync.xyz | 🎒 |
| Hyperliquid | 999 | https://hyperliquid.hypersync.xyz or https://999.hypersync.xyz | https://hyperliquid.rpc.hypersync.xyz or https://999.rpc.hypersync.xyz | 🪨 |
| Injective* | 1776 | https://injective.hypersync.xyz or https://1776.hypersync.xyz | https://injective.rpc.hypersync.xyz or https://1776.rpc.hypersync.xyz | 🥉 |
| Ink | 57073 | https://ink.hypersync.xyz or https://57073.hypersync.xyz | https://ink.rpc.hypersync.xyz or https://57073.rpc.hypersync.xyz | 🪨 |
| Kroma | 255 | https://kroma.hypersync.xyz or https://255.hypersync.xyz | https://kroma.rpc.hypersync.xyz or https://255.rpc.hypersync.xyz | 🪨 |
| Linea | 59144 | https://linea.hypersync.xyz or https://59144.hypersync.xyz | https://linea.rpc.hypersync.xyz or https://59144.rpc.hypersync.xyz | 🥉 |
Expand Down Expand Up @@ -122,7 +122,6 @@ If you are a network operator or user and would like improved service support or
**Notes:**

- **Base Traces***: Start block: 39000000 (earlier blocks available on request)
- **Injective***: Start block: 129846180 (non-evm before that)
- **Sei***: Start block: 79123881 (non-evm before that)
- **Sei Testnet***: Start block: 186100000 (non-evm before that)

Expand Down
1 change: 0 additions & 1 deletion supported-networks.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@
"supported-networks/hyperliquid",
"supported-networks/immutable-zkevm",
"supported-networks/immutable-zkevm-testnet",
"supported-networks/injective",
"supported-networks/ink",
"supported-networks/iotex-network",
"supported-networks/japan-open-chain",
Expand Down