better wallet creation for 1-1

This commit is contained in:
Matias Alejo Garcia 2015-02-15 18:26:05 -03:00
parent f359827d97
commit 18da32df64
3 changed files with 22 additions and 18 deletions

View File

@ -1,13 +1,14 @@
#!/usr/bin/env node #!/usr/bin/env node
var _ = require('lodash');
var program = require('commander'); var program = require('commander');
var ClientLib = require('../lib/client'); var ClientLib = require('../lib/client');
var utils = require('./cli-utils'); var utils = require('./cli-utils');
program program
.version('0.0.1') .version('0.0.1')
.option('-c, --config [file]', 'Wallet config filename') .option('-c, --config [file]', 'Wallet config filename')
.option('-n, --network [networkname]', 'livenet|testnet', String, 'livenet') .option('-t, --testnet', 'Create a Testnet Wallet', String)
.usage('[options] <walletName> <m-n> [copayerName]') .usage('[options] <walletName> <m-n> [copayerName]')
.parse(process.argv); .parse(process.argv);
@ -17,14 +18,14 @@ if (!args[0])
var walletName = args[0]; var walletName = args[0];
var copayerName = args[2] || process.env.USER; var copayerName = args[2] || process.env.USER;
var network = program.network; var network = program.testnet ? 'testnet' : 'livenet';
var mn = utils.parseMN(args[1]); var mn = utils.parseMN(args[1]);
var client = utils.getClient(program); var client = utils.getClient(program);
client.createWallet(walletName, copayerName, mn[0], mn[1], network, function(err, secret) { client.createWallet(walletName, copayerName, mn[0], mn[1], network, function(err, secret) {
utils.die(err); utils.die(err);
console.log(' * Wallet Created.'); console.log(' * ' + _.capitalize(network) + ' Wallet Created.');
console.log(' - Secret to share:\n\t' + secret); if (secret)
console.log(' - Secret to share:\n\t' + secret);
}); });

View File

@ -2,16 +2,16 @@
var _ = require('lodash'); var _ = require('lodash');
var Client = require('../lib/client'); var Client = require('../lib/client');
var lib = function() {}; var Utils = function() {};
var die = lib.die = function(err) { var die = Utils.die = function(err) {
if (err) { if (err) {
console.error(err); console.error(err);
process.exit(1); process.exit(1);
} }
}; };
lib.parseMN = function(MN) { Utils.parseMN = function(MN) {
if (!MN) if (!MN)
die('No m-n parameter'); die('No m-n parameter');
var mn = MN.split('-'); var mn = MN.split('-');
@ -27,11 +27,11 @@ lib.parseMN = function(MN) {
}; };
lib.shortID = function(id) { Utils.shortID = function(id) {
return id.substr(id.length - 4); return id.substr(id.length - 4);
}; };
lib.getClient = function(args) { Utils.getClient = function(args) {
var storage = new Client.FileStorage({ var storage = new Client.FileStorage({
filename: args.config filename: args.config
}); });
@ -41,16 +41,16 @@ lib.getClient = function(args) {
}); });
} }
lib.findOneTxProposal = function(txps, id) { Utils.findOneTxProposal = function(txps, id) {
var matches = _.filter(txps, function(tx) { var matches = _.filter(txps, function(tx) {
return _.endsWith(lib.shortID(tx.id), id); return _.endsWith(Utils.shortID(tx.id), id);
}); });
if (!matches.length) if (!matches.length)
lib.die('Could not find TX Proposal:' + id); Utils.die('Could not find TX Proposal:' + id);
if (matches.length > 1) if (matches.length > 1)
lib.die('More than one TX Proposals match:' + id + ' : ' + _.map(matches, function(tx) { Utils.die('More than one TX Proposals match:' + id + ' : ' + _.map(matches, function(tx) {
return tx.id; return tx.id;
}).join(' '));; }).join(' '));;
@ -59,4 +59,4 @@ lib.findOneTxProposal = function(txps, id) {
module.exports = lib; module.exports = Utils;

View File

@ -148,13 +148,16 @@ API.prototype.createWallet = function(walletName, copayerName, m, n, network, cb
var walletId = body.walletId; var walletId = body.walletId;
var secret = walletId + ':' + privKey.toString() + ':' + (network == 'testnet' ? 'T' : 'L'); var secret = walletId + ':' + privKey.toString() + ':' + (network == 'testnet' ? 'T' : 'L');
data.secret = secret; var ret;
if (n > 1)
ret = data.secret = secret;
self.storage.save(data); self.storage.save(data);
self._joinWallet(data, secret, copayerName, function(err) { self._joinWallet(data, secret, copayerName, function(err) {
if (err) return cb(err); if (err) return cb(err);
return cb(null, data.secret); return cb(null, ret);
}); });
}); });
}; };