Skip to content

fix(consumers): align staking and lifecycle reads with the v0.6 producer - #220

Merged
ci-core-e2e-runner[bot] merged 3 commits into
v2-devfrom
con-471-rename-live-hasunclaimedrewards
Sep 23, 2026
Merged

ci-core-e2e-runner[bot] merged 3 commits into
v2-devfrom
con-471-rename-live-hasunclaimedrewards

Conversation

@cgmello

@cgmello cgmello commented Sep 8, 2026 •

Copy link
Copy Markdown

Problem and outcome

The combined v0.6 producer changes staking reward-field names, claim/commit widths, several staking ABI selectors/events, and the lifecycle return tuple. This updates the existing consumer PR for Consensus #1634 at c4749a42095bcfb9de69bef4f4fd5e9a6a2f86f2 (above #1628), preserving the original live → hasUnclaimedRewards implementation.

  • Keep reward state independent of bans/selectable eligibility; test both boolean values and omit the old alias.
  • Decode Claim quantity/offset and Commit outstanding as uint256; producer-derived fixtures exercise values above uint120.
  • Reconcile the existing staking ABI subset, including changed administrative signatures and removed obsolete entries. Existing error signatures match the producer.
  • Include lifecycle executionGeneration, exposed as an exact decimal string when supplied; older Studio APIs leave it absent.
  • Discover canonical child IDs through parent-filtered Messages events, including deferred delivery beyond 10,000 blocks; paginate requested history, deduplicate IDs, and propagate RPC errors. Optional fromBlock bounds historical scanning. This is creation history from the registered Messages contract, not current-generation membership or completion.
  • Document public migration, exact-commit package selection, and remaining runtime work in docs/consumer-migration-v06.md.

Delivery context

Depends-On: genlayerlabs/genlayer-py#116
Depends-On: genlayerlabs/genlayer-e2e#781
Depends-On: genlayerlabs/genlayer-dev-env#145

Studio draft #1771 pins this SDK head in both applications and carries the initial polling adaptation.

Darien's #145 is the single dev-env source: it includes #147 and merged #148. This replaces the previous #147 edge. The implemented Node cut must select Consensus #1634 and this consumer closure; no reverse Node/Consensus edge is added here. SDK #201, #215 and #221 remain separate work; their changes are not duplicated.

The September 11 frozen consumer cut and its green E2E result are historical. This explicitly supersedes that source selection with the updated head and #145 dependency. No new landing cut is frozen and no E2E/merge is requested. Node #1955/#1956 need synchronization with their current lower heads before final qualification.

Validation

At 2bc5e60052d4a5ef2fef4d9f6931014ca15f20b1:

  • npx vitest run --typecheck: 14 files, 200 tests passed, no type errors.
  • npm run build: ESM/CJS/declarations passed.
  • Focused ESLint on changed transaction source/tests: passed; full lint passed on the preceding commit.
  • Producer ABI subset comparison and git diff --check: passed.

The checked-in producer fixture records its exact source revision. No final artifacts/presets or deployed-runtime compatibility are claimed. Tagged npm publication remains a separate release action; downstream consumers can pin this exact commit with regenerated lockfiles.

Remaining qualification / rollback

Keep this draft. Integrated deferred-child journeys, delivery-completion APIs, generation-aware UI receipt invalidation, final source/preset provenance, and cross-repository deploy/read/write/appeal/recompute journeys remain tracked in the migration guide. Parent finalization and child creation events do not prove all terminal obligations complete. No new full E2E was run.

Rollback the new commit together with downstream package pins; do not pair the old lifecycle decoder with a producer requiring the new return layout.

Node changes are explicitly excluded from this follow-up; no Node code, branches, PRs, or dependency pins were modified.

…ewards rename

genlayer-consensus renames `ValidatorStake.live` to `hasUnclaimedRewards`
(the flag marks unclaimed inflation rewards, not node liveness). Update
the staking ABI tuple, the `ValidatorView` types and the view mapper, and
the fixtures/smoke assertion that read the old key.

Depends-On: genlayerlabs/genlayer-consensus#1403

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KVkzRWuHBntyhom3xqHEAG
@cgmello cgmello self-assigned this Sep 8, 2026
@coderabbitai

coderabbitai Bot commented Sep 8, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: af3baac8-125a-47ba-8dac-be4dd1d2d024

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@cgmello cgmello removed their assignment Sep 8, 2026
@cgmello

cgmello commented Sep 11, 2026

Copy link
Copy Markdown
Author

Selected consumer full-E2E cut: genlayer-js #220. Frozen direct closure:

All four PRs are mergeable. JS/Python/harness native CI is green; dev-env build/vet/tests pass and it has no native CI workflow. No existing E2E run exists for this consumer cut; its checks are unrequested placeholders. Full scope will use the v0.6 matrix for core components and all configured stacks. This is test qualification only; consensus #1595 and final delivery remain separate.

@cgmello

cgmello commented Sep 11, 2026

Copy link
Copy Markdown
Author

/run-e2e all

1 similar comment
@cgmello

cgmello commented Sep 11, 2026

Copy link
Copy Markdown
Author

/run-e2e all

@ci-core-e2e-runner

Copy link
Copy Markdown
Contributor

Test only — nothing will merge.
genlayerlabs/genlayer-dev-env#147 into genlayerlabs/genlayer-dev-env@main (v0.6).
genlayerlabs/genlayer-e2e#781 into genlayerlabs/genlayer-e2e@main (v0.6).
#220 into genlayerlabs/genlayer-js@v2-dev (v0.6).
genlayerlabs/genlayer-py#116 into genlayerlabs/genlayer-py@v0.19-dev (v0.6).
Descendants and sibling branches are not included.

…producer

Reconcile the staking ABI subset against consensus c4749a420, retain both reward-flag states independently of bans, and preserve uint256 claim amounts and execution generation. Add producer-derived fixtures and document pre-release package delivery and remaining integration requirements.
@kirilaa kirilaa changed the title [handoff] fix(staking): follow the CON-471 ValidatorStake.live -> hasUnclaimedRewards rename fix(consumers): align staking and lifecycle reads with the v0.6 producer Sep 16, 2026
@kirilaa
kirilaa marked this pull request as ready for review September 23, 2026 14:04
@kirilaa
kirilaa self-requested a review September 23, 2026 14:05
@ci-core-e2e-runner
ci-core-e2e-runner Bot merged commit 6ee12f8 into v2-dev Sep 23, 2026
13 of 14 checks passed
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