btc(donation): forrestv P2PK on v36 gentx, not LTC P2SH (FLAG6) [cut-only, do-not-merge] - #127
Closed
frstrtr wants to merge 1 commit into
Closed
btc(donation): forrestv P2PK on v36 gentx, not LTC P2SH (FLAG6) [cut-only, do-not-merge]#127frstrtr wants to merge 1 commit into
frstrtr wants to merge 1 commit into
Conversation
BTC get_donation_script() returned the LTC COMBINED P2SH for share_version >= 36, so the BTC v36 gentx leg (share_check.hpp:2940) paid the LTC dev-fund P2SH instead of forrestv canonical BTC-mainnet P2PK. Return the 67-byte P2PK (0x41 .. 04ffd03de4 .. 0xac) on all versions; COMBINED P2SH stays inert (LTC-only). BTC-only; static-analysis verified (canary a1 predates v36). FLAG6 conformance vs BTC own jtoomim/forrestv baseline.
Owner
Author
|
FLAG6 resolved (operator decision): BTC v36 donations INTENTIONALLY use the unified cross-coin combined P2SH (1-of-2), not per-coin P2PK. The live path (share_check.hpp:2940 get_donation_script(36)) is correct as-is. Superseded by a comment-only PR that documents the intent in config_pool.hpp. Branch kept for history. |
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.
FLAG6 — BTC v36 donation redeem-script conformance (BTC-only)
Problem
btc/config_pool.hpp::get_donation_script(int64_t share_version)returned theLTC
COMBINED_DONATION_SCRIPT(a 23-byte P2SHOP_HASH160 <hash160> OP_EQUAL,LTC mainnet dev-fund address
MLhSmVQxMusLE3pjGFvp4unFckgjeD8LUA) for anyshare_version >= 36. The BTC v36 gentx leg atshare_check.hpp:2940(
get_donation_script(int64_t(36))) therefore emitted the LTC P2SH donationoutput on BTC v36 shares — contradicting the in-code comment, which states the
BTC donation leg intentionally stays forrestv's canonical BTC-mainnet P2PK.
This is latent: it fires only once BTC v36 is confirmed active. The
deployed canary build (
2f2e8282, a1) predates the v36 layer, so vote-state isunobserved — this determination is static-analysis-backed (code-derived), not
node-confirmed.
Fix (BTC-only)
get_donation_script()now returns the 67-byte forrestv P2PK(
0x41OP_PUSHBYTES_65 ·04ffd03de4…664b·0xacOP_CHECKSIG) on allshare versions, including v36+. The LTC
COMBINED_DONATION_SCRIPTconstant isretained as inert byte data (LTC-only; never selected for BTC). The version arg
is kept for signature parity with the LTC config but is ignored.
Touches only
src/impl/btc/config_pool.hpp. No other coin's config is affected.gentx verification (static)
DONATION_SCRIPT= 67 bytes, leading0x41(OP_PUSHBYTES_65), pubkey04ffd03de4…, trailing0xac(OP_CHECKSIG) — forrestv canonical BTC P2PK.share_check.hpp:2940) writes this 67-byte P2PKtxout, matching the v35 leg (
share_check.hpp:2387).Scope
Per operator approval (decisions@ ✅) and integrator GO: cut only — this PR is
NOT for merge. The consensus merge into a release path requires a separate
explicit operator approval on its own card.