parse amount on client API sendTxProposal

This commit is contained in:
Ivan Socolsky 2015-02-18 15:55:16 -03:00
parent c23f962030
commit dac04f3db7
2 changed files with 21 additions and 19 deletions

View File

@ -17,17 +17,6 @@ var BASE_URL = 'http://localhost:3001/copay/api';
var WALLET_CRITICAL_DATA = ['xPrivKey', 'm', 'publicKeyRing'];
function _createProposalOpts(opts, signingKey) {
var args = {
toAddress: opts.toAddress,
amount: opts.amount,
message: _encryptProposalMessage(opts.message, signingKey),
};
var hash = WalletUtils.getProposalHash(args.toAddress, args.amount, args.message);
args.proposalSignature = WalletUtils.signMessage(hash, signingKey);
return args;
};
function _encryptProposalMessage(message, encryptingKey) {
if (!message) return null;
return WalletUtils.encryptMessage(message, encryptingKey);
@ -298,18 +287,31 @@ API.prototype.getStatus = function(cb) {
/**
* send
*
* @param inArgs
* @param inArgs.toAddress
* @param inArgs.amount
* @param inArgs.message
* @param opts
* @param opts.toAddress
* @param opts.amount
* @param opts.message
*/
API.prototype.sendTxProposal = function(inArgs, cb) {
API.prototype.sendTxProposal = function(opts, cb) {
var self = this;
this._loadAndCheck(function(err, data) {
if (err) return cb(err);
var args = _createProposalOpts(inArgs, data.signingPrivKey);
var amount;
try {
amount = WalletUtils.parseAmount(opts.amount);
} catch (ex) {
return cb(ex);
}
var args = {
toAddress: opts.toAddress,
amount: amount,
message: _encryptProposalMessage(opts.message, data.signingPrivKey),
};
var hash = WalletUtils.getProposalHash(args.toAddress, args.amount, args.message);
args.proposalSignature = WalletUtils.signMessage(hash, data.signingPrivKey);
var url = '/v1/txproposals/';
self._doPostRequest(url, args, data, cb);

View File

@ -183,13 +183,13 @@ describe('client API ', function() {
var args = {
toAddress: '2N3fA6wDtnebzywPkGuNK9KkFaEzgbPRRTq',
amount: 100000,
amount: '200bit',
message: 'some message',
};
client.sendTxProposal(args, function(err) {
var callArgs = request.getCall(0).args[0].body;
callArgs.toAddress.should.equal(args.toAddress);
callArgs.amount.should.equal(args.amount);
callArgs.amount.should.equal(20000);
callArgs.message.should.not.equal(args.message);
var decryptedMsg = WalletUtils.decryptMessage(callArgs.message, '42798f82c4ed9ace4d66335165071edf180e70bc0fc08dacb3e35185a2141d5b');
decryptedMsg.should.equal(args.message);