Skip to content

security(wallet): refuse signed transfers to unregistered bcn_ destinations (follow-up to #8357) - #8358

Merged
Scottcjn merged 1 commit into
mainfrom
fix/signed-transfer-unregistered-bcn-destination
Sep 6, 2026
Merged

security(wallet): refuse signed transfers to unregistered bcn_ destinations (follow-up to #8357)#8358
Scottcjn merged 1 commit into
mainfrom
fix/signed-transfer-unregistered-bcn-destination

Conversation

@Scottcjn

@Scottcjn Scottcjn commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Second half of the fix for @prins1bap-ui's #398 Step 3 finding. #8357 stopped a squatter from claiming a pre-funded noncanonical bcn_ id at /beacon/join; this stops the orphan balances from being created in the first place.

/wallet/transfer/signed now returns 400 unregistered_bcn_destination when to_address is a bcn_ id that resolve_bcn_wallet() cannot find. Placed right after the sender review gate, before any state mutation. Operator migrations continue to use the admin /wallet/transfer path.

test_wallet_transfer_signed_no_pubkey_disclosure.py + test_beacon_api_join.py: 12 pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_014RDgENXHE8sjiekfdvw3jn

…ations

Follow-up to #8357 (Blake Prins, rustchain-bounties#398 Step 3). #8357 stops
a squatter from claiming a pre-funded noncanonical bcn_ id at /beacon/join;
this closes the other side so such orphan balances stop being created:
/wallet/transfer/signed now returns 400 unregistered_bcn_destination when
to_address is a bcn_ id with no Beacon Atlas row. Operator migrations keep
using the admin /wallet/transfer path.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014RDgENXHE8sjiekfdvw3jn
Signed-off-by: Scott <scottbphone12@gmail.com>
@github-actions github-actions Bot added BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) BCOS-L2 Beacon Certified Open Source tier BCOS-L2 (required for non-doc PRs) node Node server related size/S PR: 11-50 lines labels Sep 6, 2026
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

⚠️ BCOS v2 Scan Results

Metric Value
Trust Score 43/100
Certificate ID BCOS-3d1f942e
Tier L1 (not met)

BCOS Badge

What does this mean?

The BCOS (Beacon Certified Open Source) engine scans for:

  • SPDX license header compliance
  • Known CVE vulnerabilities (OSV database)
  • Static analysis findings (Semgrep)
  • SBOM completeness
  • Dependency freshness
  • Test infrastructure evidence
  • Review attestation tier

Full report | What is BCOS?


BCOS v2 Engine - Free & Open Source (MIT) - Elyan Labs

@Scottcjn
Scottcjn merged commit be90c9a into main Sep 6, 2026
15 checks passed
@Scottcjn
Scottcjn deleted the fix/signed-transfer-unregistered-bcn-destination branch September 6, 2026 02:06
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

RTC Reward

This merged PR earned 5 RTC — sent to Scottcjn.

RustChain Bounty Program

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) BCOS-L2 Beacon Certified Open Source tier BCOS-L2 (required for non-doc PRs) node Node server related size/S PR: 11-50 lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants