Skip to content

dash: route v36 COMBINED_DONATION_SCRIPT onto cross-coin core::donation SSOT (Bucket-2 dedup) - #533

Merged
frstrtr merged 1 commit into
masterfrom
dash/donation-combined-ssot-dedup
Jun 26, 2026
Merged

dash: route v36 COMBINED_DONATION_SCRIPT onto cross-coin core::donation SSOT (Bucket-2 dedup)#533
frstrtr merged 1 commit into
masterfrom
dash/donation-combined-ssot-dedup

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Pillar-4 of the v36-migration-std sweep — donation P2SH.

DASH kept a hand-copied local literal of the unified v36 P2SH in src/impl/dash/share_check.hpp instead of consuming the cross-coin single-source core::donation::COMBINED_DONATION_SCRIPT that btc already references. The bytes were identical, but a per-coin literal copy is exactly the v36 dialect-drift the operator 3-bucket rule flags as a Bucket-2 standardization target: the v36 donation script is a SHARED v36-native shape, not a DASH isolation primitive, so it must stay byte-identical to btc/bch/dgb/ltc and should derive from the SSOT (clean v37 migration).

Change (value-invariant)

  • COMBINED_DONATION_SCRIPT now initializes from core::donation::COMBINED_DONATION_SCRIPT instead of a literal byte array — proven byte-identical to the prior literal and to a914<8c627262..8e85>87.
  • Pre-v36 DASH-specific P2PKH DONATION_SCRIPT (Bucket-3, oracle-conformant per frstrtr/p2pool-dash data.py:66, kept for the soak) is untouched.
  • current_share_version stays 16 → no live share changes shape.

Conformance verdict (pillar-4)

  • pre-v36 P2PKH = byte-identical to oracle (76a91420cb5c22..88ac, XdgF55w…) — CONFORMANT (Bucket-3).
  • v36 P2SH = the cross-coin SSOT value — CONFORMANT standardization (Bucket-2, FLAG6).
  • No consensus slice owed — this is the dedup that removes the only remaining per-coin copy.

Tests

Adds DashConformanceCombinedDonation.MatchesCrossCoinSSOT (locks dash == core SSOT == expected 23-byte P2SH). Full dash conformance 47/47 green on Linux x86_64.

Scope: 2 files, DASH-isolated (dash impl + dash test); consumes the existing core SSOT, does not modify core/. No build.yml allowlist change (test_dash_conformance already targeted). Held for integrator verify → operator tap; no self-merge.

…on SSOT

Pillar-4 of the v36-migration-std sweep (donation P2SH). DASH kept a
hand-copied local literal of the unified v36 P2SH instead of consuming the
cross-coin single-source core::donation::COMBINED_DONATION_SCRIPT that btc
already references. The bytes were identical, but a per-coin literal copy is
exactly the v36 dialect-drift the 3-bucket rule flags as a Bucket-2
standardization target: the v36 donation script is a SHARED v36-native shape,
not a DASH isolation primitive, so it must stay byte-identical to
btc/bch/dgb/ltc and should derive from the SSOT.

Rewire is value-invariant: COMBINED_DONATION_SCRIPT now initializes from
core::donation::COMBINED_DONATION_SCRIPT (proven byte-identical to the prior
literal and to a914<8c627262..8e85>87 by the new lock KAT). The pre-v36
DASH-specific P2PKH DONATION_SCRIPT (Bucket-3, oracle-conformant, kept for the
soak) is untouched. current_share_version stays 16, so no live share changes
shape.

Adds DashConformanceCombinedDonation.MatchesCrossCoinSSOT. Full dash
conformance suite 47/47 green on Linux x86_64.
@frstrtr
frstrtr merged commit 3f95e0e into master Jun 26, 2026
21 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.

1 participant