add import
This commit is contained in:
parent
c6f61ae0da
commit
4e87dfe548
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env node
|
||||
var program = require('commander');
|
||||
|
||||
var Client = require('../lib/client');
|
||||
var utils = require('./cli-utils');
|
||||
|
||||
var fs = require('fs');
|
||||
|
||||
program
|
||||
.version('0.0.1')
|
||||
.option('-c, --config [file]', 'Wallet config filename')
|
||||
.option('-v, --verbose', 'be verbose')
|
||||
.usage('import [options] <file>')
|
||||
.parse(process.argv);
|
||||
|
||||
var args = program.args;
|
||||
|
||||
if (!args[0])
|
||||
program.help();
|
||||
|
||||
var client = utils.getClient(program);
|
||||
var str = fs.readFileSync(args[0]);
|
||||
|
||||
client.import(str, function(err, x) {
|
||||
utils.die(err);
|
||||
console.log('Wallet Imported');
|
||||
});
|
|
@ -308,8 +308,17 @@ API.prototype.export = function(cb) {
|
|||
this._loadAndCheck(function(err, data) {
|
||||
if (err) return cb(err);
|
||||
var v = [];
|
||||
|
||||
var myXPubKey = (new Bitcore.HDPublicKey(data.xPrivKey)).toString();
|
||||
|
||||
_.each(WALLET_CRITICAL_DATA, function(k) {
|
||||
v.push(data[k]);
|
||||
var d;
|
||||
if (k === 'publicKeyRing') {
|
||||
d = _.without(data[k], myXPubKey);
|
||||
} else {
|
||||
d = data[k];
|
||||
}
|
||||
v.push(d);
|
||||
});
|
||||
return cb(null, JSON.stringify(v));
|
||||
});
|
||||
|
@ -334,6 +343,10 @@ API.prototype.import = function(str, cb) {
|
|||
return cb('Invalid wallet data');
|
||||
});
|
||||
|
||||
var xPubKey = (new Bitcore.HDPublicKey(data.xPrivKey)).toString();
|
||||
|
||||
data.publicKeyRing.push(xPubKey);
|
||||
data.copayerId = WalletUtils.xpubToCopayerId(xPubKey);
|
||||
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';
|
||||
|
|
|
@ -8,7 +8,7 @@ var Bitcore = require('bitcore');
|
|||
var HDPublicKey = Bitcore.HDPublicKey;
|
||||
var Uuid = require('uuid');
|
||||
var AddressManager = require('./addressmanager');
|
||||
var Utils = require('../bitcoinutils');
|
||||
var Utils = require('../walletutils');
|
||||
|
||||
|
||||
var VERSION = '1.0.0';
|
||||
|
|
|
@ -4,6 +4,7 @@ var Address = Bitcore.Address;
|
|||
var PrivateKey = Bitcore.PrivateKey;
|
||||
var PublicKey = Bitcore.PublicKey;
|
||||
var crypto = Bitcore.crypto;
|
||||
var HDPath = require('./hdpath');
|
||||
|
||||
function WalletUtils() {};
|
||||
|
||||
|
@ -56,4 +57,10 @@ WalletUtils.getProposalHash = function(toAddress, amount, message) {
|
|||
return toAddress + '|' + amount + '|' + (message || '');
|
||||
};
|
||||
|
||||
WalletUtils.xpubToCopayerId = function(xpub) {
|
||||
return (new Bitcore.HDPublicKey(xpub)).derive(HDPath.IdBranch).publicKey.toString();
|
||||
};
|
||||
|
||||
|
||||
|
||||
module.exports = WalletUtils;
|
||||
|
|
Loading…
Reference in New Issue