UNPKG

1.18 kBJavaScriptView Raw
1var fs = require('fs')
2 , path = require('path')
3 , base64url = require('./base64url')
4 , libPubkey = require('../lib/pubkey')
5 , loadPubkey = require('../utils/loadPubkey')
6
7function loadRecipients (walletDir, cb) {
8 var inFile = path.join(walletDir, 'imported_keys')
9 fs.readFile(inFile, {encoding: 'utf8'}, function (err, str) {
10 if (err && err.code !== 'ENOENT') return cb(err)
11 var lines = (str || '').trim().split('\n')
12 // add self
13 loadPubkey(walletDir, function (err, pubkey) {
14 if (err) return cb(err)
15 var recipients = Object.create(null)
16 if (pubkey) {
17 recipients['self'] = pubkey
18 lines.push(pubkey.toString())
19 }
20 lines.forEach(function (line) {
21 try {
22 var pubkey = libPubkey.parse(line.trim())
23 }
24 catch (e) {
25 return
26 }
27 // real base64
28 recipients[pubkey.toBuffer().toString('base64')] = pubkey
29 // base64-url
30 recipients[base64url.encode(pubkey.toBuffer())] = pubkey
31 // email
32 if (pubkey.email) recipients[pubkey.email] = pubkey
33 })
34 cb(null, recipients)
35 })
36 })
37}
38module.exports = loadRecipients
\No newline at end of file