You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reject s9_..._... deposit-format wrapper in Thunder address validation
Empirical finding on the live forknet deployment: the LayerTwo-Labs
enforcer accepts the wrapper string in CreateDepositTransaction's
address field, and Thunder's OP_RETURN parser logs 'Ignoring invalid
deposit address' for deposits made to it. Thunder's own transfer RPC
also refuses to send to the wrapper form. Net effect: a miner who
authorizes with the wrapper accrues PPS balance in pps_credits that
can never be paid out — the reserve is intact but the address is
unspendable.
Change: thunder_address_decode strictly rejects any address containing
'_'. Only bare base58 (raw base58 of the 20-byte hash) is accepted.
Miners still see an actionable error at mining.authorize time with a
message pointing at 'thunder-cli get-new-address' as the correct form.
- src/thunder.c: reject on '_' with a friendly message before b58_decode
- src/thunder.h: docstring rewritten to describe the reject; explains
why the wrapper is invalid at the byte level despite looking like a
Thunder address
- tests/test_thunder.c: test_deposit_format renamed to
test_rejects_wrapper_form and inverted — the wrapper must now be
rejected, and the error message must contain a wrapper-related
keyword so the miner knows what to fix
- OPERATOR_GUIDE.md: deposit runbook rewritten to use POOL_ADDR
directly (bare base58) instead of the wrapper from
format-deposit-address; adds a note explaining why
- scripts/regtest/thunder-init.sh: same fix; the printed grpcurl
example now passes the bare address to CreateDepositTransaction
- PPS_THUNDER.md: user-facing description now says 'bare Thunder
addresses' — wrapper explicitly noted as rejected
Verified: 7/7 test suites green including the inverted wrapper test.
0 commit comments