Skip to content

docs: clarify that shared registration consent is per share, not per funding input - #7771

Merged
PastaPastaPasta merged 1 commit into
dashpay:developfrom
PastaPastaPasta:docs/shared-register-funder-check
Sep 30, 2026
Merged

PastaPastaPasta merged 1 commit into
dashpay:developfrom
PastaPastaPasta:docs/shared-register-funder-check

Conversation

@PastaPastaPasta

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

Addresses #7761.

In a shared ProRegTx, consensus requires a consent signature from every share in the table. Funding inputs are not tied to any share. A wallet can sign its inputs into a registration whose table has no share for it, and the transaction is valid. #7761 shows this on v24.0.0-rc.1: the coordinator lists its own addresses on the share that participant A funded, and A's signrawtransactionwithwallet signs without complaint.

Working as designed: the table decides who owns what, and it is fully visible in decoderawtransaction (proRegTx.shares) and in the terms returned by protx shared_sign. But the docs suggested a stronger guarantee:

  • The release notes said "Every participant consents by signing a digest…". Only share owners consent. A funder with no share never signs a consent.
  • The protx shared_register_prepare help went straight from shared_combine to signrawtransactionwithwallet and never said to check the table first.

The Qt wizard from #7701 already checks each participant's terms and funding before signing. This PR covers only the direct RPC workflow.

What was done?

Documentation only:

  • doc/release-notes-7437.md: "every participant consents" becomes "every share owner consents", and a new sentence says consent is tied to the table's shares, not to funding inputs. The shared_register_prepare entry now says to confirm your own share in proRegTx.shares before signing your funding inputs.
  • protx shared_register_prepare help: a new paragraph says consent is per share, not per input. Before signing its inputs, each participant should find its own share, with its own amount and addresses, in the decoded table.

No behavior changes. An RPC that checks a funder's agreed terms and signs its inputs in one step (the #7761 proposal) could be a follow-up if third-party tooling wants it. It adds nothing that decoderawtransaction plus signrawtransactionwithwallet can't already do, so it is left out here.

How Has This Been Tested?

Only string-literal and Markdown changes. git diff --check and test/lint/lint-whitespace.py pass. I did not rebuild dashd to view the new help text.

Breaking Changes

None.

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • I have assigned this pull request to a milestone (for repository code-owners and collaborators only)

🤖 Generated with Claude Code

…funding input

Consensus requires a consent signature from every share in a shared
ProRegTx's table, but funding inputs are not tied to any share. A wallet
can therefore sign its inputs into a registration whose table has no share
for it, and the transaction is valid. The release notes said "every
participant consents", which suggested otherwise, and the
shared_register_prepare help went straight from shared_combine to
signrawtransactionwithwallet without a step to check the table.

Say "share owner" where consent is meant, state that inputs are not tied
to shares, and tell each participant to find its own share in the decoded
table before signing its funding inputs.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@thepastaclaw

thepastaclaw commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Final review complete — Phase 1 only — no blockers (commit 055ccd7) · triage: trivial

@coderabbitai

coderabbitai Bot commented Sep 30, 2026

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Advanced

Run ID: 573d1215-c51c-4691-80a5-c55ccec0defb

📥 Commits

Reviewing files that changed from the base of the PR and between 7c15a39 and 055ccd7.

📒 Files selected for processing (2)
  • doc/release-notes-7437.md
  • src/rpc/evo.cpp

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.


Walkthrough

The protx shared_register_prepare help text and v24 release notes clarify that consent applies to each share, not each funding input. They state that signing a funding input does not create a share for its signer. The guidance recommends checking the decoded share table for the participant’s share amount and addresses before signing.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~3 minutes

Merge Risk: ⚪ Minimal · up to 055cc

The updated guidance matches how share consent and decoded registration details work. No behavior changes or remaining merge risks were identified.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main documentation change: consent applies per share, not per funding input.
Description check ✅ Passed The description directly explains the issue, the documentation updates, the affected RPC workflow, and the absence of behavior changes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

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.

@thepastaclaw thepastaclaw left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Final review — Phase 1 only (trivial change)

Verified the documentation-only diff at head 055ccd7 against registration validation, consent hashing, and RPC JSON output. The clarification correctly distinguishes share-owner consent from funding-input signatures and directs funders to inspect the actual share table before signing. No defects were found; diff checking and whitespace lint passed.

Review provenance

Source: reviewer 1: glm-5.3-flash (agent: phase1-reviewer, role: general); reviewer 2: glm-5.3-flash (agent: phase1-reviewer, role: dash-core-commit-history); final verifier: gpt-6.1-sol (agent: sol-gate-verifier, role: final-verifier)

  • Triage: trivial by gpt-6.1-sol (effort low) — The diff only clarifies release notes and RPC help text about per-share consent and checking ownership before signing, with no changes to transaction validation, signatures, or wallet behavior.
  • Phase 1 reviewers: glm-5.3-flash — general (completed, effort high); agent phase1-reviewer, glm-5.3-flash — dash-core-commit-history (completed, effort high); agent phase1-reviewer
  • Phase 1 model: glm-5.3-flash — zai quota: 5h 99% left, weekly 80% left; passed over gemini-3.8-flash-high (antigravity below 15% reserve: weekly 13% left, 5h 100% left)
  • Fresh verifier: gpt-6.1-sol — final-verifier; agent sol-gate-verifier
  • Phase 2 reviewers: not run (triage rated this change trivial); this review comments and never approves

@thepastaclaw thepastaclaw added the pastaclaw:commented thepastaclaw's latest review was comment-only label Sep 30, 2026
@PastaPastaPasta
PastaPastaPasta merged commit 9186f74 into dashpay:develop Sep 30, 2026
45 checks passed
@thepastaclaw thepastaclaw removed the pastaclaw:commented thepastaclaw's latest review was comment-only label Sep 30, 2026
@PastaPastaPasta PastaPastaPasta added this to the 24 milestone Sep 30, 2026
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