Skip to content

fix(examples): euler-multichain — anchor base/arbitrum demo windows at first vault creation#172

Open
abernatskiy wants to merge 1 commit into
mainfrom
fix/euler-multichain-demo-windows
Open

fix(examples): euler-multichain — anchor base/arbitrum demo windows at first vault creation#172
abernatskiy wants to merge 1 commit into
mainfrom
fix/euler-multichain-demo-windows

Conversation

@abernatskiy

Copy link
Copy Markdown

Summary

  • The euler-multichain example's base and arbitrum demo windows were anchored at the factory-deploy block (base 18_000_000, arbitrum 255_000_000), which is far earlier than the first vault. The ~DEMO_SPAN window landed in an empty pre-vault range, so both chains indexed 0 blocks / 0 vaults — and any run through scripts/examples-e2e.mjs failed its per-chain inserted.blocks > 0 gate (only mainnet had data).
  • Arbitrum was doubly off: its GenericFactory emits non-ProxyCreated events well before the first vault, so even its first factory activity (block 300,690,953) wasn't a child creation.
  • Fix: anchor each chain's demo window at its first EVault ProxyCreated, verified against the Portal dataset (base 36_016_090, arbitrum 317_852_641). PONDER_FULL=1 still backfills from the factory-deploy block. Mirrors the existing DEMO/FULL-start split already used for mainnet.

Test plan

  • biome check clean on the changed config.
  • Ran the example end-to-end (built @subsquid/ponder@0.16.9-sqd.1, dedicated Portal, PONDER_DEMO_SPAN=200000): all three chains now discover vaults and clear the per-chain inserted.blocks > 0 gate —
    • mainnet: 39 vaults (648 blocks) — unchanged
    • base: 3 vaults (3 blocks) — was 0
    • arbitrum: 5 vaults (1 block) — was 0
  • Note: on a fresh clone the example still uses the free public Portal (unchanged); the fix is purely the window constants.

🤖 Generated with Claude Code

…t first vault creation

The base and arbitrum EVaultFactory contracts are deployed far earlier than
their first vault, so the demo's ~DEMO_SPAN window (anchored at the
factory-deploy block: base 18_000_000, arbitrum 255_000_000) landed in an
empty pre-vault range — both chains indexed 0 blocks / 0 vaults, and any
run through scripts/examples-e2e.mjs failed its per-chain `inserted.blocks>0`
gate (only mainnet had data). Arbitrum was doubly off: its factory emits
non-ProxyCreated events well before the first vault, so even its first
factory activity wasn't a child creation.

Anchor each chain's demo window at its FIRST EVault `ProxyCreated`, verified
against the Portal dataset (base 36_016_090, arbitrum 317_852_641); FULL
still backfills from the factory-deploy block. All three chains now discover
vaults in the default demo (mainnet 39, base 3, arbitrum 5) and clear the
per-chain gate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011h8zdhxsC8A2bcFqZRcjeB
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.

1 participant