address and addresses!
This commit is contained in:
parent
8208746bb3
commit
20272d895a
|
@ -8,6 +8,8 @@ program
|
|||
.command('create <walletName> <m-n> [username]', 'creates a wallet')
|
||||
.command('join <secret> [username]', 'join a wallet')
|
||||
.command('status', 'get wallet status')
|
||||
.command('address', 'create a new address from server')
|
||||
.command('addresses', 'list addresses')
|
||||
.command('send <address> <amount> <note>', 'send bitcoins')
|
||||
.parse(process.argv);
|
||||
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
var program = require('commander');
|
||||
var CliLib = require('../lib/clilib.js');
|
||||
var common = require('./common');
|
||||
|
||||
program
|
||||
.version('0.0.1')
|
||||
.option('-c,--config [file]', 'Wallet config filename')
|
||||
.option('-v,--verbose', 'be verbose')
|
||||
.parse(process.argv);
|
||||
|
||||
var args = program.args;
|
||||
var cli = new CliLib({
|
||||
filename: program.config
|
||||
});
|
||||
|
||||
cli.address(function(err, x) {
|
||||
common.die(err);
|
||||
console.log('* New Address %s ', x.address);
|
||||
|
||||
if (program.verbose)
|
||||
console.log('* Raw Server Response:\n', x); //TODO
|
||||
});
|
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
var _ = require('lodash');
|
||||
var program = require('commander');
|
||||
var CliLib = require('../lib/clilib.js');
|
||||
var common = require('./common');
|
||||
|
||||
program
|
||||
.version('0.0.1')
|
||||
.option('-c,--config [file]', 'Wallet config filename')
|
||||
.option('-v,--verbose', 'be verbose')
|
||||
.parse(process.argv);
|
||||
|
||||
var args = program.args;
|
||||
var cli = new CliLib({
|
||||
filename: program.config
|
||||
});
|
||||
|
||||
cli.addresses(function(err, x) {
|
||||
common.die(err);
|
||||
|
||||
console.log('* Addresses:');
|
||||
_.each(x, function(a){
|
||||
console.log(' ', a.address);
|
||||
});
|
||||
|
||||
if (program.verbose)
|
||||
console.log('* Raw Server Response:\n', x); //TODO
|
||||
});
|
|
@ -247,7 +247,6 @@ CliLib.prototype.send = function(inArgs, cb) {
|
|||
|
||||
var data = this._loadAndCheck();
|
||||
var args = _createProposalOpts(inArgs, data.signingPrivKey);
|
||||
console.log('[clilib.js.249:args:]',args); //TODO
|
||||
|
||||
var url = '/v1/txproposals/';
|
||||
var signature = _signRequest(url, args, data.signingPrivKey);
|
||||
|
@ -280,8 +279,60 @@ CliLib.prototype.reject = function(proposalId, cb) {
|
|||
|
||||
};
|
||||
|
||||
CliLib.prototype.address = function(cb) {
|
||||
// Get addresses
|
||||
CliLib.prototype.addresses = function(cb) {
|
||||
var self = this;
|
||||
|
||||
var data = this._loadAndCheck();
|
||||
|
||||
var url = '/v1/addresses/';
|
||||
var signature = _signRequest(url, {}, data.signingPrivKey);
|
||||
|
||||
request({
|
||||
headers: {
|
||||
'x-identity': data.copayerId,
|
||||
'x-signature': signature,
|
||||
},
|
||||
method: 'get',
|
||||
url: _getUrl(url),
|
||||
json: true,
|
||||
}, function(err, res, body) {
|
||||
if (err) return cb(err);
|
||||
if (res.statusCode != 200) {
|
||||
_parseError(body);
|
||||
return cb('Request error');
|
||||
}
|
||||
return cb(null, body);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// Creates a new address
|
||||
// TODO: verify derivation!!
|
||||
CliLib.prototype.address = function(cb) {
|
||||
var self = this;
|
||||
|
||||
var data = this._loadAndCheck();
|
||||
|
||||
var url = '/v1/addresses/';
|
||||
var signature = _signRequest(url, {}, data.signingPrivKey);
|
||||
|
||||
request({
|
||||
headers: {
|
||||
'x-identity': data.copayerId,
|
||||
'x-signature': signature,
|
||||
},
|
||||
method: 'post',
|
||||
url: _getUrl(url),
|
||||
json: true,
|
||||
}, function(err, res, body) {
|
||||
if (err) return cb(err);
|
||||
if (res.statusCode != 200) {
|
||||
_parseError(body);
|
||||
return cb('Request error');
|
||||
}
|
||||
return cb(null, body);
|
||||
});
|
||||
};
|
||||
|
||||
CliLib.prototype.history = function(limit, cb) {
|
||||
|
|
|
@ -333,7 +333,8 @@ CopayServer.prototype._getUtxos = function(cb) {
|
|||
// Get addresses for this wallet
|
||||
self.storage.fetchAddresses(self.walletId, function(err, addresses) {
|
||||
if (err) return cb(err);
|
||||
if (addresses.length == 0) return cb(new ClientError('The wallet has no addresses'));
|
||||
if (addresses.length == 0)
|
||||
return cb(null, []);
|
||||
|
||||
var addressStrs = _.pluck(addresses, 'address');
|
||||
var addressToPath = _.indexBy(addresses, 'address'); // TODO : check performance
|
||||
|
|
Loading…
Reference in New Issue