Repository navigation
v0.52.0
This release adds the rebate-staking history needed by Explorer, records the treasury fee divisor in force at each deposit reveal, and retires legacy economic operator-staking fields. It also guards remaining mapping contract calls so reverted enrichment reads do not halt indexing.
Changes
- #22: guard mapping contract calls and enforce guarded access in CI; preserve DKG event counts when enrichment calls revert.
- #23: record nullable
Deposit.treasuryFeeDivisorAtRevealfrom ordered initialization/governance events. Zero is known disabled fees; null is unknown history. - #24: add
RebateStaker,RebateStakingEvent, andRebateStakingStats. T balances use 18 decimals, rebates use satoshis, and pending unstaking remains included until finalization. - #25: index registration independently of legacy token stake; expose application operator identities and reported authorization weights. Remove retired operator stake balances/roles and obsolete aggregate stake counters; retain wallet/group public keys, rewards, and raw fault telemetry.
- #26: refresh patched brace-expansion releases and enforce a reviewed braces depth-guard backport in the Node build/deploy toolchain. The version-only OSV exception applies to one locally patched advisory and expires 2026-11-04.
Compatibility and rollout
The operator schema changes are breaking. Consult docs/operator-staking-retirement.md for removed fields and replacements. Preserve the previous published deployment for historical stake queries and rollback. This version requires a full re-sync; no graft is configured.
Deploy and sync, publish, validate the deployment-pinned gateway, update and verify the production API proxy, and only then release Explorer PR tlabs-xyz/threshold-dapp#453. Explorer cleanup #454 removes an unused query and preserves the active wallet fallback. A frontend/subgraph rollback must preserve schema compatibility.
Validation
The combined mapping changes passed code generation, mainnet and Sepolia builds, 17 mapping tests, and 97 Node regression/toolchain tests before the dependency follow-up. The follow-up adds seven security checks, passed the same build/mapping gates, and passed the full configured OSV scan. The unfiltered audit still identifies the source-patched braces package by version.
Production evidence
- Annotated tag
v0.52.0points to4c0a3858513c6973f6ee3aa969eda0db2b83e56a. - Release checks and Studio deployment succeeded; production approval was granted by
piotr-roslaniec. - Studio deployment completed at 2026-10-05 07:09:46 UTC with deployment ID
QmQQQ5hHWPfFC77zzMgWJSq7MbW8ctumDxnChGoi1yAdr5. - Studio fully synced and prepublication validation passed on October 6: seven same-block staker balance/pending comparisons, five rebate receipt comparisons, six earliest/recent deposit fee-divisor comparisons, and preserved wallet keys. Independent indexed-history replay reconciled all 50 stakers and 583 events.
- Published on Arbitrum One on October 6. The deployment-pinned gateway passed the full smoke check before cutover.
- Production now serves v0.52.0 through
https://api.threshold.network/subgraph/mainnet, with cache namespacesubgraph-v0.52.0-20261006. The exact pre-cutover ordinary query returned the new deployment on both MISS and HIT. Full production smoke passed at Ethereum block 26,134,128 with no indexing errors, canonical-block checks, seven staker balance/pending comparisons, five rebate receipts, six deposit fee-divisor comparisons, operator schema, and preserved wallet keys. - Published v0.51.0, deployment
QmY5pJqTSL4iTJMHu7cU5AFzzY3kHyXbjcqEr9db6wXeE7, and its protected pinned gateway are retained for rollback. Any rollback must use a fresh cache namespace and account for frontend schema compatibility. - The dependent frontend PR tlabs-xyz/threshold-dapp#453 is merged and deployed in v1.10.16. Its preview passed staking totals/pagination, deposit fee/details, redemption records and wallet fallback checks; the canonical production site serves the tagged build and displays the new staking data.
The backend is live in production. Contract comparisons are representative samples; replay of all indexed staking history is a consistency check, not an exhaustive independent reconstruction of chain logs.