feat: BIP-39 master seed for unified key derivation
Replace fragmented random key generation with a single 24-word BIP-39 mnemonic that deterministically derives all node keys: Ed25519 (DID), secp256k1 (Nostr/Bitcoin), BIP-84 xprv (Bitcoin Core), and LND aezeed entropy. New onboarding flow: seed generate → word verification → identity naming. Restore path enabled via 24-word entry. Includes seed RPC handlers, mock backend support, LND/Bitcoin Core wallet-from-seed integration, and UI polish across settings and discover views. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -917,6 +917,31 @@ app.post('/rpc/v1', (req, res) => {
|
||||
return res.json({ result: { valid: true } })
|
||||
}
|
||||
|
||||
// BIP-39 seed management (mock for dev mode)
|
||||
case 'seed.generate': {
|
||||
const mockWords = [
|
||||
'abandon', 'ability', 'able', 'about', 'above', 'absent',
|
||||
'absorb', 'abstract', 'absurd', 'abuse', 'access', 'accident',
|
||||
'account', 'accuse', 'achieve', 'acid', 'acoustic', 'acquire',
|
||||
'across', 'act', 'action', 'actor', 'actress', 'actual'
|
||||
]
|
||||
return res.json({ result: { words: mockWords } })
|
||||
}
|
||||
case 'seed.verify': {
|
||||
const mockDid = 'did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH'
|
||||
return res.json({ result: { verified: true, did: mockDid, nostr_npub: 'npub1mock...' } })
|
||||
}
|
||||
case 'seed.restore': {
|
||||
const mockDid = 'did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH'
|
||||
return res.json({ result: { did: mockDid, nostr_npub: 'npub1mock...', restored: true } })
|
||||
}
|
||||
case 'seed.save-encrypted': {
|
||||
return res.json({ result: { saved: true } })
|
||||
}
|
||||
case 'seed.status': {
|
||||
return res.json({ result: { has_seed: true, is_legacy: false, identity_count: 1, next_index: 1 } })
|
||||
}
|
||||
|
||||
case 'node.createBackup': {
|
||||
const { passphrase } = params || {}
|
||||
if (!passphrase) {
|
||||
|
||||
Reference in New Issue
Block a user