Skip to content

bch(config): route donation gate through core::version_gate::is_v36_active (SSOT) - #255

Merged
frstrtr merged 1 commit into
masterfrom
bch/donation-gate-ssot
Jun 20, 2026
Merged

bch(config): route donation gate through core::version_gate::is_v36_active (SSOT)#255
frstrtr merged 1 commit into
masterfrom
bch/donation-gate-ssot

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Residual #3 from the BCH version_gate SSOT sweep: get_donation_script (config_pool.hpp) used a bare share_version >= 36 literal -- the last un-delegated V36 gate site in the BCH tree.

Verified before routing (per integrator hold): is_v36_active is return version >= V36_ACTIVATION_VERSION with V36_ACTIVATION_VERSION = 36 -- byte-for-byte the raw comparison, NO confirmed-state / weighted-activation semantics. The call site (share_version always non-negative) is therefore exactly equivalent. This is a pure SSOT-consistency cleanup, not a consensus-gate change.

Scope: single-coin fenced to src/impl/bch/config_pool.hpp (+include core/version_gate.hpp). Brings donation-script activation in line with the other 27 delegating sites. Syntax-clean (-fsyntax-only, C++20). GPG-signed. Merge operator-gated.

…ctive

get_donation_script used a bare share_version >= 36 literal -- the last
un-delegated V36 gate site in the BCH tree. is_v36_active is the
version-gate SSOT and is byte-for-byte (version >= 36) with no confirmed-
state or weighted-activation semantics, so this is a pure SSOT-consistency
cleanup, single-coin fenced to src/impl/bch. Brings the donation-script
activation in line with the other 27 delegating sites.
@frstrtr
frstrtr merged commit b80b127 into master Jun 20, 2026
18 checks passed
@frstrtr
frstrtr deleted the bch/donation-gate-ssot branch June 20, 2026 03:37
frstrtr added a commit that referenced this pull request Jun 25, 2026
…ng coins (#496)

rest_version_signaling() gated on a hardcoded {LITECOIN,DOGECOIN} allowlist,
returning an empty object for every other coin. But BTC/DGB/BCH are also
v36-ratcheting (each wires core::version_gate / AutoRatchet: #440 BTC, #293 DGB,
#255 BCH). On those nodes the dashboard crossing banner was suppressed entirely,
so an operator could not see the V35->V36 cross — a charter #3 blind spot
(operators must see the ratchet truthfully, cross-coin).

Invert the guard to exclude only static-version coins (Dash = v16), which
genuinely have no pending transition. Coins whose sharechain stats carry no
vote data fall through to the existing empty-result path below, so the banner
stays hidden until there is real crossing state — no false banners. Web-only,
non-consensus.

Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
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