Merge pull request #48 from isocolsky/cli_fixes

CLI fixes
This commit is contained in:
Matias Alejo Garcia 2015-02-21 11:56:54 -03:00
commit d4aeff3c44
6 changed files with 30 additions and 19 deletions

View File

@ -10,7 +10,7 @@ program
.command('address', 'create a new address from server')
.command('addresses', 'list addresses')
.command('balance', 'wallet balance')
.command('send <address> <amount> <note>', 'send bitcoins')
.command('send <address> <amount> [note]', 'send bitcoins')
.command('sign <txpId>', 'sign a transaction proposal')
.command('reject <txpId> [reason]', 'reject a transaction proposal')
.command('broadcast <txpId>', 'broadcast a transaction proposal to the Bitcoin network')

View File

@ -24,7 +24,7 @@ client.getTxProposals({}, function(err, txps) {
var txp = utils.findOneTxProposal(txps, txpid);
client.rejectTxProposal(txp, reason, function(err, tx) {
utils.die(err);
if (x.status == 'rejected')
if (tx.status == 'rejected')
console.log('Transaction finally rejected.');
else
console.log('Transaction rejected by you.');

View File

@ -3,7 +3,7 @@
var _ = require('lodash');
var program = require('commander');
var Client = require('../lib/client');
var common = require('./common');
var utils = require('./cli-utils');
program
.version('0.0.1')
@ -24,15 +24,15 @@ var cli = new Client({
});
cli.getTxProposals({}, function(err, txps) {
common.die(err);
utils.die(err);
if (program.verbose)
console.log('* Raw Server Response:\n', txps); //TODO
var txp = common.findOneTxProposal(txps, txpid);
var txp = utils.findOneTxProposal(txps, txpid);
cli.removeTxProposal(txp, function(err) {
common.die(err);
utils.die(err);
console.log('Transaction removed.');
});

View File

@ -9,11 +9,21 @@ program
.option('-c, --config [file]', 'Wallet config filename')
.option('-h, --host [host]', 'Bitcore Wallet Service URL (eg: http://localhost:3001/copay/api')
.option('-v, --verbose', 'be verbose')
.usage('[options] <address> <amount> <message>')
.parse(process.argv);
.usage('[options] <address> <amount> [note]')
.description('Create a proposal for sending bitcoins to a destination address.\n The amount can be specified in bit, btc or sat (the default).');
program.on('--help', function(){
console.log(' Examples:');
console.log('');
console.log(' $ bit-send n2HRFgtoihgAhx1qAEXcdBMjoMvAx7AcDc 500bit');
console.log(' $ bit-send mgWeRvUC6d1LRPKtdDbvYEpaUEmApS4XrY 0.2btc "dinner with friends"');
console.log('');
});
program.parse(process.argv);
var args = program.args;
if (!args[0] || !args[1] || !args[2])
if (!args[0] || !args[1])
program.help();
var address = args[0];
@ -23,14 +33,14 @@ try {
} catch (ex) {
utils.die(ex);
}
var message = args[2];
var note = args[2];
var client = utils.getClient(program);
client.sendTxProposal({
toAddress: address,
amount: amount,
message: message
message: note
}, function(err, x) {
utils.die(err);
console.log(' * Tx created: ID %s [%s] RequiredSignatures:',

View File

@ -20,10 +20,10 @@ client.getTxProposals({}, function(err, txps) {
utils.die(err);
var txp = utils.findOneTxProposal(txps, txpid);
client.signTxProposal(txp, function(err, x) {
client.signTxProposal(txp, function(err, tx) {
utils.die(err);
if (x.status == 'broadcasted')
console.log('Transaction Broadcasted: TXID: ' + x.txid);
if (tx.status == 'broadcasted')
console.log('Transaction Broadcasted: TXID: ' + tx.txid);
else
console.log('Transaction signed by you.');
});

View File

@ -25,19 +25,20 @@ client.getStatus(function(err, res) {
console.log('* Copayers:', _.pluck(x.copayers,'name').join(', '));
var x = res.balance;
console.log('* Balance %d (Locked: %d)', x.totalAmount, x.lockedAmount);
console.log('* Balance %dSAT (Locked: %dSAT)', x.totalAmount, x.lockedAmount);
if (!_.isEmpty(res.pendingTxps)) {
console.log("* TX Proposals:")
_.each(res.pendingTxps, function(x) {
console.log("\t%s [%s by %s] %dSAT => %s", utils.shortID(x.id), x.message, x.creatorName, x.amount, x.toAddress);
missingSignatures = x.requiredSignatures - _.filter(_.values(x.actions), function (a) { return a.type == 'accept'; }).length;
console.log("\t%s [\"%s\" by %s] %dSAT => %s", utils.shortID(x.id), x.message, x.creatorName, x.amount, x.toAddress);
if (!_.isEmpty(x.actions)) {
console.log('\t\t * Actions');
console.log('\t\t', _.map(x.actions, function(a) {
return a.copayerName + ': ' + a.type + ''
console.log('\t\tActions: ', _.map(x.actions, function(a) {
return a.copayerName + ' ' + (a.type == 'accept' ? '✓' : '✗') + (a.comment ? ' (' + a.comment + ')' : '');
}).join('. '));
}
console.log('\t\tMissing signatures: ' + missingSignatures);
});
}
});