bitcore-wallet-service/bit-wallet/bit-sign

53 lines
1.4 KiB
Plaintext
Raw Normal View History

2015-02-13 11:07:47 -08:00
#!/usr/bin/env node
2015-02-13 12:02:56 -08:00
var _ = require('lodash');
2015-02-22 17:15:53 -08:00
var fs = require('fs');
2015-02-13 11:07:47 -08:00
var program = require('commander');
2015-02-22 17:15:53 -08:00
var utils = require('./cli-utils');
2015-02-21 06:59:33 -08:00
program = utils.configureCommander(program);
2015-02-13 11:07:47 -08:00
program
2015-02-13 12:02:56 -08:00
.usage('[options] <txpid>')
2015-02-22 17:15:53 -08:00
.option('-i, --input [filename]', 'use signatures from file')
.option('-o, --output [filename]', 'write signatures to file')
2015-02-13 12:02:56 -08:00
.parse(process.argv);
2015-02-13 11:07:47 -08:00
var args = program.args;
var txpid = args[0] || '';
2015-02-13 11:07:47 -08:00
2015-02-15 08:14:36 -08:00
var client = utils.getClient(program);
client.getTxProposals({}, function(err, txps) {
utils.die(err);
2015-02-13 13:53:49 -08:00
2015-02-15 08:14:36 -08:00
var txp = utils.findOneTxProposal(txps, txpid);
2015-02-22 17:15:53 -08:00
if (program.output) {
client.getSignatures(txp, function(err, signatures) {
utils.die(err);
var out = {
id: txp.id,
signatures: signatures,
};
fs.writeFileSync(program.output, JSON.stringify(out));
console.log('Signatures written to file.');
});
} else {
if (program.input) {
var infile = JSON.parse(fs.readFileSync(program.input));
if (infile.id != txp.id)
utils.die('Signatures does not match Transaction')
txp.signatures = infile.signatures;
}
client.signTxProposal(txp, function(err, tx) {
utils.die(err);
if (tx.status == 'broadcasted')
console.log('Transaction Broadcasted: TXID: ' + tx.txid);
else
console.log('Transaction signed by you.');
});
}
2015-02-13 11:07:47 -08:00
});