import working
This commit is contained in:
parent
605727fa2d
commit
922e79d34d
|
@ -16,6 +16,7 @@ program
|
|||
.command('broadcast <txpId>', 'broadcast a transaction proposal to the Bitcoin network')
|
||||
.command('rm <txpId>', 'remove a transaction proposal')
|
||||
.command('export', 'export wallet critical data')
|
||||
.command('import', 'import wallet critical data')
|
||||
.parse(process.argv);
|
||||
|
||||
|
||||
|
|
|
@ -211,12 +211,15 @@ API.prototype._joinWallet = function(secret, copayerName, cb) {
|
|||
var wallet = body.wallet;
|
||||
var data = {
|
||||
copayerId: body.copayerId,
|
||||
walletPrivKey: walletPrivKey.toWIF(),
|
||||
signingPrivKey: signingPrivKey.toWIF(),
|
||||
m: wallet.m,
|
||||
n: wallet.n,
|
||||
|
||||
publicKeyRing: wallet.publicKeyRing,
|
||||
network: wallet.network,
|
||||
m: wallet.m,
|
||||
n: wallet.n,
|
||||
|
||||
xPrivKey: xPrivKey,
|
||||
walletPrivKey: walletPrivKey.toWIF(),
|
||||
signingPrivKey: signingPrivKey.toWIF(),
|
||||
};
|
||||
self.storage.save(data, cb);
|
||||
});
|
||||
|
@ -304,8 +307,11 @@ API.prototype.export = function(cb) {
|
|||
|
||||
this._loadAndCheck(function(err, data) {
|
||||
if (err) return cb(err);
|
||||
var x = _.pick(data, WALLET_CRITICAL_DATA)
|
||||
return cb(null, JSON.stringify(_.values(x)));
|
||||
var v = [];
|
||||
_.each(WALLET_CRITICAL_DATA, function(k) {
|
||||
v.push(data[k]);
|
||||
});
|
||||
return cb(null, JSON.stringify(v));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -313,16 +319,27 @@ API.prototype.export = function(cb) {
|
|||
API.prototype.import = function(str, cb) {
|
||||
var self = this;
|
||||
|
||||
this.storage.load(function(err, data) {
|
||||
if (data)
|
||||
return cb('Storage already contains a wallet');
|
||||
|
||||
data = {};
|
||||
|
||||
var inData = JSON.parse(str);
|
||||
var data = {},
|
||||
i = 0;
|
||||
var i = 0;
|
||||
|
||||
_.each(WALLET_CRITICAL_DATA, function(k) {
|
||||
data[k] = inData[i++];
|
||||
if (!data[k])
|
||||
return cb('Invalid wallet data');
|
||||
});
|
||||
|
||||
if (err) return cb(err);
|
||||
}
|
||||
data.m = data.publicKeyRing.length;
|
||||
data.signingPrivKey = (new Bitcore.HDPrivateKey(data.xPrivKey)).derive('m/1/0').privateKey.toWIF();
|
||||
data.network = data.xPrivKey.substr(0,4) === 'tprv' ? 'testnet' : 'livenet';
|
||||
self.storage.save(data, cb);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
API.prototype.getTxProposals = function(opts, cb) {
|
||||
|
|
Loading…
Reference in New Issue