diff options
| author | Adam Soltys <[email protected]> | 2026-06-27 14:34:59 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-27 14:34:59 -0700 |
| commit | 6c817756c5cca849864119405be9fa3f9e968057 (patch) | |
| tree | 0ceec5f40a6090bba0b54e54dba9641aecb9eec9 /src/format.js | |
| parent | 342987a97dfa031e43e370b593bc9b57012dcc71 (diff) | |
| download | coinosv3-6c817756c5cca849864119405be9fa3f9e968057.tar.gz coinosv3-6c817756c5cca849864119405be9fa3f9e968057.zip | |
Add BIP-352 receiving crypto (scan, tweak, keys, address)
silentpay.js gains the receiving half of silent payments, validated against all
official BIP-352 vectors (29/29 receiving sub-cases):
- inputPubKey(): recover the eligible input pubkey from P2PKH/P2WPKH/P2SH-P2WPKH/
P2TR inputs (skips uncompressed keys, excludes NUMS script-path, hash160-matches
malleated P2PKH scriptSigs)
- silentPaymentTweak(): the oracle tweak input_hash*A (sum over eligible inputs,
input hash over all outpoints, point-at-infinity guarded) — used by the indexer
- silentPaymentScan(): ecdh = scan_priv*tweak, derive P_k = B_spend + t_k*G, match
the tx's taproot outputs, return per-output spend tweaks
- silentPaymentOutputPrivKey(), deriveSilentPaymentKeys() (m/352' paths),
encodeSilentPaymentAddress()
Labels not yet implemented (wallet uses a single no-label address).
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'src/format.js')
0 files changed, 0 insertions, 0 deletions
