debug clilib
This commit is contained in:
parent
50c217c994
commit
4171ff4a79
10
app.js
10
app.js
|
@ -75,7 +75,7 @@ function getServerWithAuth(req, res, cb) {
|
||||||
var credentials = getCredentials(req);
|
var credentials = getCredentials(req);
|
||||||
var auth = {
|
var auth = {
|
||||||
copayerId: credentials.copayerId,
|
copayerId: credentials.copayerId,
|
||||||
message: req.url + '|' + JSON.stringify(req.body),
|
message: req.url + req.body ? '|' + JSON.stringify(req.body) : '',
|
||||||
signature: credentials.signature,
|
signature: credentials.signature,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -87,20 +87,20 @@ function getServerWithAuth(req, res, cb) {
|
||||||
|
|
||||||
router.post('/v1/wallets/', function(req, res) {
|
router.post('/v1/wallets/', function(req, res) {
|
||||||
var server = CopayServer.getInstance();
|
var server = CopayServer.getInstance();
|
||||||
server.createWallet(req.body, function(err, wallet) {
|
server.createWallet(req.body, function(err, walletId) {
|
||||||
if (err) returnError(err, res);
|
if (err) returnError(err, res);
|
||||||
|
|
||||||
res.json(wallet);
|
res.json(walletId);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/v1/wallets/:id/copayers/', function(req, res) {
|
router.post('/v1/wallets/:id/copayers/', function(req, res) {
|
||||||
req.body.walletId = req.params['id'];
|
req.body.walletId = req.params['id'];
|
||||||
var server = CopayServer.getInstance();
|
var server = CopayServer.getInstance();
|
||||||
server.joinWallet(req.body, function(err) {
|
server.joinWallet(req.body, function(err, copayerId) {
|
||||||
if (err) returnError(err, res);
|
if (err) returnError(err, res);
|
||||||
|
|
||||||
res.end();
|
res.json(copayerId);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
var _ = require('lodash');
|
||||||
|
var async = require('async');
|
||||||
|
var log = require('npmlog');
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
|
var clilib = require('./lib/clilib');
|
||||||
|
|
||||||
|
fs.unlinkSync('.bit');
|
||||||
|
|
||||||
|
clilib.createWallet('my wallet', 'me', 1, 1, function(err, secret) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
clilib.status(function(err, status) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(status);
|
||||||
|
})
|
||||||
|
});
|
|
@ -4,7 +4,6 @@ var _ = require('lodash');
|
||||||
var async = require('async');
|
var async = require('async');
|
||||||
var log = require('npmlog');
|
var log = require('npmlog');
|
||||||
var request = require('request')
|
var request = require('request')
|
||||||
var commander = require('commander')
|
|
||||||
log.debug = log.verbose;
|
log.debug = log.verbose;
|
||||||
log.level = 'debug';
|
log.level = 'debug';
|
||||||
var fs = require('fs')
|
var fs = require('fs')
|
||||||
|
@ -14,7 +13,7 @@ var SignUtils = require('./signutils');
|
||||||
|
|
||||||
var BASE_URL = 'http://localhost:3001/copay/api/';
|
var BASE_URL = 'http://localhost:3001/copay/api/';
|
||||||
|
|
||||||
var cli = {};
|
var clilib = {};
|
||||||
|
|
||||||
|
|
||||||
function _getUrl(path) {
|
function _getUrl(path) {
|
||||||
|
@ -22,29 +21,33 @@ function _getUrl(path) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
function signRequest(url, args) {
|
function _signRequest(url, args) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function save(data) {
|
function _save(data) {
|
||||||
fs.writeFileSync('./.bit', JSON.stringify(data));
|
fs.writeFileSync('.bit', JSON.stringify(data));
|
||||||
};
|
};
|
||||||
|
|
||||||
function load() {
|
function _load() {
|
||||||
try {
|
try {
|
||||||
return JSON.parse(fs.readFileSync('./.bit'));
|
return JSON.parse(fs.readFileSync('.bit'));
|
||||||
} catch (ex) {}
|
} catch (ex) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function _createXPrivKey() {
|
||||||
|
return new Bitcore.HDPrivateKey().toString();
|
||||||
|
};
|
||||||
|
|
||||||
clilib.createWallet = function(walletName, copayerName, m, n, cb) {
|
clilib.createWallet = function(walletName, copayerName, m, n, cb) {
|
||||||
var data = load();
|
var data = _load();
|
||||||
if (!data) {
|
if (data) return cb('Only one wallet can exist');
|
||||||
data = {};
|
|
||||||
data.xPrivKey = new Bitcore.HDPrivateKey().toString();
|
data = {
|
||||||
data.m = m;
|
xPrivKey: _createXPrivKey(),
|
||||||
}
|
m: m,
|
||||||
|
};
|
||||||
|
|
||||||
var privKey = new Bitcore.PrivateKey();
|
var privKey = new Bitcore.PrivateKey();
|
||||||
var pubKey = privKey.toPublicKey();
|
var pubKey = privKey.toPublicKey();
|
||||||
|
|
||||||
|
@ -63,23 +66,27 @@ clilib.createWallet = function(walletName, copayerName, m, n, cb) {
|
||||||
}, function(err, res, body) {
|
}, function(err, res, body) {
|
||||||
if (err) return cb(err);
|
if (err) return cb(err);
|
||||||
var walletId = body;
|
var walletId = body;
|
||||||
var secret = walletId + '|' + privKey.toString();
|
data.secret = walletId + '|' + privKey.toString();
|
||||||
|
|
||||||
joinWallet(secret, copayerName, function(err) {
|
_save(data);
|
||||||
|
|
||||||
|
clilib.joinWallet(data.secret, copayerName, function(err) {
|
||||||
if (err) return cb(err);
|
if (err) return cb(err);
|
||||||
|
|
||||||
save(data);
|
return cb(null, data.secret);
|
||||||
return cb(null, secret);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
clilib.joinWallet = function(secret, copayerName, cb) {
|
clilib.joinWallet = function(secret, copayerName, cb) {
|
||||||
var data = load();
|
var data = _load();
|
||||||
|
if (data && data.copayerId) return cb('Only one wallet can exist');
|
||||||
if (!data) {
|
if (!data) {
|
||||||
data = {};
|
data = {
|
||||||
data.xPrivKey = new Bitcore.HDPrivateKey().toString();
|
xPrivKey: _createXPrivKey(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var secretSplit = secret.split('|');
|
var secretSplit = secret.split('|');
|
||||||
var walletId = secretSplit[0];
|
var walletId = secretSplit[0];
|
||||||
var privKey = Bitcore.PrivateKey.fromString(secretSplit[1]);
|
var privKey = Bitcore.PrivateKey.fromString(secretSplit[1]);
|
||||||
|
@ -102,23 +109,35 @@ clilib.joinWallet = function(secret, copayerName, cb) {
|
||||||
json: true,
|
json: true,
|
||||||
}, function(err, res, body) {
|
}, function(err, res, body) {
|
||||||
if (err) return cb(err);
|
if (err) return cb(err);
|
||||||
|
|
||||||
var copayerId = body;
|
var copayerId = body;
|
||||||
data.copayerId = copayerId;
|
data.copayerId = copayerId;
|
||||||
save(data);
|
|
||||||
return status(cb);
|
_save(data);
|
||||||
|
|
||||||
|
// TODO: call status to retrieve wallet.m
|
||||||
|
|
||||||
|
return clilib.status(cb);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
clilib.status = function(cb) {
|
clilib.status = function(cb) {
|
||||||
|
var data = _load();
|
||||||
|
if (!data || !data.copayerId) return cb('Not a part of an active wallet');
|
||||||
|
|
||||||
|
var url = 'v1/dump/';
|
||||||
|
var signature = _signRequest(url);
|
||||||
|
|
||||||
request({
|
request({
|
||||||
|
headers: {
|
||||||
|
'x-identity': data.copayerId,
|
||||||
|
'x-signature': signature,
|
||||||
|
},
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: _getUrl('v1/dump/'),
|
url: _getUrl(url),
|
||||||
}, function(err, res, body) {
|
}, function(err, res, body) {
|
||||||
if (err) return cb(err);
|
if (err) return cb(err);
|
||||||
|
|
||||||
console.log(body);
|
return cb(null, body);
|
||||||
return cb();
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue