Conversation
…iceManager (v0.13.0) - ITangleSlashing: align with the actual SlashingLib events. SlashProposed is 8 fields, SlashExecuted is 4. Add SlashDisputed, SlashCancelled, SlashConfigUpdated event sections. proposeSlash takes uint16 slashBps (was uint256 amount). disputeSlash is external payable. setSlashConfig is the 6-arg form. Add getSlashConfig view. - IMBSMRegistry.pinBlueprint: add a paragraph documenting the deprecation grace-window rejection (revisions in the grace window are refused so pinning cannot defeat the deprecation flow). - IBlueprintServiceManager: document forceRemoveAllowsBelowMin (default false; custom BSMs not inheriting BlueprintServiceManagerBase MUST implement) and getNonPaymentTerminationPolicy (added in v0.11.1, never documented). Mirrored to generated/ copies; tnt-core sync check still passes.
QuoteDetails and JobQuoteDetails now carry address requester as the FIRST field of the EIP-712 typed data. The contract enforces requester == msg.sender and rejects wildcard requester == address(0). - pricing-and-payments: reorder field lists (requester first), add a copyable Solidity struct literal and JSON typed-data example, and a Quote-binding key-property bullet covering both QuoteDetails and JobQuoteDetails (with the new typehash strings). - pricing-engine: add Security Notes bullet on requester binding and a Best Practices entry on always populating requester. - operators/pricing/overview: RFQ section gains a requester-binding callout for operator quote-server implementations. - execution-confidentiality: append a customer-request bullet noting that confidential quotes are bound to a specific consumer via requester so they cannot be lifted from the mempool.
… self-dispute (v0.13.0) - slashing: proposeSlash and disputeSlash now nonReentrant. proposeSlash rejects bytes32(0) evidence. executeSlash for a Disputed proposal uses disputeDeadline + TIMESTAMP_BUFFER (15s symmetric with the Pending branch). SLASH_ADMIN_ROLE that is also the proposer of a slash cannot self-dispute their own proposal. - service-lifecycle: new "Exit Gates (v0.13.0)" section covering the Active-status gate on every operator-exit entrypoint, nonReentrant on terminateService, approveService rejecting past-grace requests, and rejection of duplicate operators. force-remove paragraph now mentions the forceRemoveAllowsBelowMin opt-in. - auth-surface: append "(admin cannot self-dispute their own proposal)" to the disputeSlash row. Mark terminateService and forceRemoveOperator as nonReentrant. Note that pinBlueprint reverts inside the deprecation grace window. - network/metrics-and-scoring: list the full slashing event names (Proposed, Disputed, Executed, Cancelled, ConfigUpdated) so indexers know to subscribe to all five.
…slasher rotation infrastructure/protocol-deployment runbook now reminds operators that bootstrap setMessenger / setSlasher (current = address(0)) takes effect immediately on L2SlashingReceiver, but subsequent rotations are timelocked: queue the new address with setMessenger / setSlasher, then call activateMessenger() / activateSlasher() after SENDER_ACTIVATION_DELAY (2 days) elapses. Document the queue/activate pair as two transactions in the runbook so operators know to schedule the activation tx before the delay window closes. (The L2SlashingReceiver auth-surface table was already updated in the previous commit on this branch.)
New /release-notes/0.13.0 page documenting the v0.12.0/v0.13.0 BREAKING changes (EIP-712 quote requester binding, ITangleSlashing event reshape, Types.ServiceRequest.activated reorder, forceRemoveAllowsBelowMin BSM hook), the round-2 hardening fixes (slashing nonReentrant + admin self-dispute, service lifecycle gates, MBSM grace-window pinning, L2 slashing receiver timelock + CEI revert, beacon SSZ canonical endianness, TNTLockFactory beneficiary gate), and a migration checklist for operator quote servers, indexers, custom BSMs, MBSM operators, L2 receiver operators, beacon proof builders, and SLASH_ADMIN holders. Cites tnt-core PRs #124 and #125 and links the bindings CHANGELOG. Adds top-level "Release Notes" entry to pages/_meta.ts so the section is discoverable from the global navigation.
✅ Deploy Preview for tangle-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Lands the tnt-core v0.13.0 documentation drop covering both the v0.12.0 and v0.13.0 BREAKING change sets and the round-2 hardening fixes. Cites tnt-core PRs #124 and #125; full diff in
tnt-core-bindings/CHANGELOG.mdunder [0.12.0] and [0.13.0].Five commits, organized by topic:
docs(reference)— regenerateITangleSlashing,IMBSMRegistry,IBlueprintServiceManager(and theirgenerated/mirrors).docs(rfq)— document EIP-712 quoterequesterbinding across pricing pages.docs(slashing,lifecycle)—nonReentrantgates, exit-active gate, admin self-dispute.docs(infra)— note 2-day timelock + activate step on bridge messenger/slasher rotation.docs(release-notes)— new/release-notes/0.13.0page + nav entry.What landed (REQUIRED)
pages/developers/api/reference/ITangleSlashing.mdx(andgenerated/) — full regen.proposeSlash(uint16 slashBps, …),disputeSlash external payable, 6-argsetSlashConfig, newgetSlashConfigview, 8-fieldSlashProposed, 4-fieldSlashExecuted, plusSlashDisputed/SlashCancelled/SlashConfigUpdated.pages/developers/api/reference/IMBSMRegistry.mdx(andgenerated/) —pinBlueprintparagraph on grace-window rejection.pages/developers/api/reference/IBlueprintServiceManager.mdx(andgenerated/) — addedforceRemoveAllowsBelowMin(uint64) -> boolandgetNonPaymentTerminationPolicy(uint64) -> (bool, uint64)sections.pages/developers/blueprints/pricing-and-payments.mdx—requesterfirst in bothJobQuoteDetailsandQuoteDetailsfield lists, Quote-binding key-property bullet, copyable Solidity struct literal + JSON typed-data example, full new typehash strings.pages/developers/auth-surface.mdx—disputeSlash"(admin cannot self-dispute their own proposal)";terminateServiceandforceRemoveOperatormarkednonReentrant;pinBlueprintgrace-window note; full 7-rowL2SlashingReceivertable; "Two-step swap" callout (with example) and "Receiver enforcement (v0.13.0)" callout oncanSlashrevert.pages/developers/blueprints/service-lifecycle.mdx— new "Exit Gates (v0.13.0)" section after "What Expiry Means".pages/developers/slashing.mdx—nonReentrantonproposeSlashanddisputeSlash, evidence non-zero bullet, SLASH_ADMIN self-dispute restriction, symmetric 15s buffer on the Disputed branch.What landed (RECOMMENDED)
pages/developers/blueprints/pricing-engine.mdx— Security Notes + Best Practices bullets on populatingrequester.pages/operators/pricing/overview.mdx— RFQ section gains a quote-requester-binding callout for operator quote servers.pages/developers/blueprints/execution-confidentiality.mdx— customer-request bullet on requester-bound confidential quotes.pages/developers/blueprints/service-lifecycle.mdx— force-remove paragraph mentionsforceRemoveAllowsBelowMinopt-in.pages/network/metrics-and-scoring.mdx— slashing bullet now lists all five event names.pages/infrastructure/protocol-deployment.mdx— bridge messenger/slasher rotation runbook updated for the 2-day timelock + activate step.pages/release-notes/0.13.0.mdx(new) +pages/release-notes/_meta.ts+ top-level nav entry inpages/_meta.ts.Verification
yarn check:tnt-core-syncpasses (interface sync still green).yarn build(Next.js + sitemap + Pagefind) passes;/release-notes/0.13.0is in the static export.yarn formatclean (prettier ran during edits).generated/*.mdxmirrors are byte-identical to their non-generated counterparts (diffreturns empty).Test plan
Release Notes → v0.13.0is reachable from the top-level nav./developers/api/reference/ITangleSlashing— confirmproposeSlashtakesslashBps,disputeSlashispayable,setSlashConfigis the 6-arg form, all five events render./developers/blueprints/pricing-and-payments— confirm both theJobQuoteDetailsandQuoteDetailsfield lists putrequesterfirst and the new typehash strings are present./developers/auth-surface— confirm the L2SlashingReceiver table has 7 rows with the two-step swap callout below.