Skip to content

feat(explorer): follow the rollups-node 2.0.0-alpha.13 JSON-RPC API - #210

Open
tuler wants to merge 2 commits into
prerelease/v2from
claude/peaceful-clarke-9tjjjj
Open

tuler wants to merge 2 commits into
prerelease/v2from
claude/peaceful-clarke-9tjjjj

Conversation

@tuler

@tuler tuler commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Summary

Updates the explorer to the rollups-node 2.0.0-alpha.13 JSON-RPC API and the matching client libraries and contracts.

Dependencies

  • @cartesi/client 2.0.0-alpha.34 → 2.0.0-alpha.38
  • @cartesi/react 2.0.0-alpha.38 → 2.0.0-alpha.42
  • @cartesi/codec 1.0.0-alpha.0 → 1.0.0-alpha.5 — the new contracts moved the portal addresses; the old codec would stop recognizing deposits

API changes handled

  • Node info: the header uses cartesi_getNodeInfo (chain, version, default block) instead of the deprecated getChainId / getNodeVersion; tx links and the decoder take the chain ID from it too
  • Applications: dataAvailability removed; badge colors for the new statuses (GUEST_EXCEPTION, MACHINE_HALTED, MCYCLE_OVERFLOW, UNEXPECTED_YIELD, INVALID_OUTPUTS_ROOT)
  • Epochs: outputs merkle root/proof replaced by the TX-buffer, iflags.Y and HTIF tohost data blocks and their proofs
  • Inputs: outputsHash → txBufferDataBlock; new exceptionData shown on the input page; resource-limit statuses replaced by OVERFLOW / UNEXPECTED_YIELD / INVALID_OUTPUTS_ROOT
  • Tournaments: winner / final state / finish block moved into the current-state snapshot; page also shows kind, initial hash, base cycle, clock allowance and creation tx
  • Matches: advances keyed by tx hash + log index (getMatchAdvanced → getMatchAdvance)

Additions using new API data

  • Tournament page: current-state snapshot (standing, candidate/winner, inner result, bond recovery), bond refund/recovery events, commitment claimer and clock, match phase column
  • Match page: phase, timeout outcome, bisection or sealed state, deadlines, leaf seal
  • Overview: executed and pending executable output counts
  • Outputs list: "Executed" filter

Mock server

Serves the new record shapes and methods (getNodeInfo, getEpochByVirtualIndex, getMatchAdvance, listBondEvents / getBondEvent, executed / pending output counts), list-valued filters, from/to index ranges and the new portal addresses.

Changeset

@deroll/decoder minor — it re-exports the Input record, which changed shape.

Testing

  • Not run against a real alpha.13 node.
  • Called every client action (real @cartesi/client@2.0.0-alpha.38 parsers) against the updated mock; all parsed.
  • tsc -b, bun run lint and vite build pass.
  • Rendered the changed pages in Chromium against the mock: no console errors, and portal deposits decode with the new addresses.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Uovoe2koh5SneMR2JLaKtY

Bump @cartesi/client to 2.0.0-alpha.38, @cartesi/react to 2.0.0-alpha.42
and @cartesi/codec to 1.0.0-alpha.5 (new contract/portal addresses), and
adapt the explorer and its mock server to the new API:

- node bar uses cartesi_getNodeInfo (chain, version, default block)
  instead of the deprecated getChainId/getNodeVersion
- applications: data availability removed; new terminal statuses
- epochs: outputs merkle root/proof replaced by the TX-buffer, iflags.Y
  and HTIF tohost data blocks and proofs
- inputs: outputsHash -> txBufferDataBlock, exception data, new statuses
- tournaments: kind, initial hash, base cycle, allowance, creation tx,
  current-state snapshot and bond events; commitment claimer/clock
- matches: phase, timeout outcome, bisection/sealed state, deadlines,
  leaf seal; advances keyed by tx hash + log index (getMatchAdvance)
- overview: executed / pending executable output counts; outputs list
  gains an Executed filter
- mock server serves the new shapes, filters and methods

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uovoe2koh5SneMR2JLaKtY
@changeset-bot

changeset-bot Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9cfba4f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@deroll/decoder Minor
@deroll/create-app Patch
@deroll/genext2fs Patch
@deroll/wallet Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
deroll Ready Ready Preview Oct 3, 2026 2:46am UTC
deroll-explorer Ready Ready Preview Oct 3, 2026 2:46am UTC

@deroll/explorer is private and not tracked by changesets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uovoe2koh5SneMR2JLaKtY
@tuler tuler changed the title Migrate to Cartesi Rollups v2 and restructure monorepo feat(explorer): follow the rollups-node 2.0.0-alpha.13 JSON-RPC API Oct 3, 2026
@tuler
tuler changed the base branch from main to prerelease/v2 October 3, 2026 02:46

This branch was successfully deployed

2 active deployments
Preview – deroll-explorer — 9cfba4f7 Deployed Oct 3, 2026 by vercel[bot]
Preview – deroll — 9cfba4f7 Deployed Oct 3, 2026 by vercel[bot]
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