rpc: importwallet.
This commit is contained in:
parent
d6e4978baf
commit
0873f7abe8
@ -3110,7 +3110,9 @@ RPC.prototype.importprivkey = function importprivkey(args, callback) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
RPC.prototype.importwallet = function importwallet(args, callback) {
|
RPC.prototype.importwallet = function importwallet(args, callback) {
|
||||||
var file, data;
|
var self = this;
|
||||||
|
var file, keys, lines, line, parts;
|
||||||
|
var i, secret, time, label, addr;
|
||||||
|
|
||||||
if (args.help || args.length !== 1)
|
if (args.help || args.length !== 1)
|
||||||
return callback(new RPCError('importwallet "filename"'));
|
return callback(new RPCError('importwallet "filename"'));
|
||||||
@ -3121,6 +3123,48 @@ RPC.prototype.importwallet = function importwallet(args, callback) {
|
|||||||
if (err)
|
if (err)
|
||||||
return callback(err);
|
return callback(err);
|
||||||
|
|
||||||
|
lines = data.split(/\n+/);
|
||||||
|
keys = [];
|
||||||
|
|
||||||
|
for (i = 0; i < lines.length; i++) {
|
||||||
|
line = lines[i].trim();
|
||||||
|
|
||||||
|
if (line.length === 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (/^\s*#/.test(line))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
parts = line.split(/\s+/);
|
||||||
|
|
||||||
|
if (parts.length < 4)
|
||||||
|
return callback(new RPCError('Malformed wallet.'));
|
||||||
|
|
||||||
|
try {
|
||||||
|
secret = bcoin.keyring.fromSecret(parts[0]);
|
||||||
|
} catch (e) {
|
||||||
|
return callback(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
time = +parts[1];
|
||||||
|
label = parts[2];
|
||||||
|
addr = parts[3];
|
||||||
|
|
||||||
|
keys.push(secret);
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.forEachSerial(keys, function(key, next) {
|
||||||
|
self.wallet.importKey(0, key, null, next);
|
||||||
|
}, function(err) {
|
||||||
|
if (err)
|
||||||
|
return callback(err)
|
||||||
|
|
||||||
|
self.walletdb.rescan(self.chain.db, 0, function(err) {
|
||||||
|
if (err)
|
||||||
|
return callback(err);
|
||||||
|
callback(null, null);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -815,7 +815,7 @@ Wallet.prototype.importKey = function importKey(account, ring, passphrase, callb
|
|||||||
account = 0;
|
account = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
callback = this._lockWrite(importKey, [account, ring, callback]);
|
callback = this._lockWrite(importKey, [account, ring, passphrase, callback]);
|
||||||
|
|
||||||
if (!callback)
|
if (!callback)
|
||||||
return;
|
return;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user