return output.message from txproposal if one exists

This commit is contained in:
Gregg Zigler 2015-07-28 08:45:46 -07:00
parent 39ac518a61
commit 20487ab38a
2 changed files with 37 additions and 8 deletions

View File

@ -1502,11 +1502,12 @@ WalletService.prototype.getTxHistory = function(opts, cb) {
var amountIn, amountOut, amountOutChange;
var amount, action, addressTo;
var inputs, outputs;
if (tx.outputs.length || tx.inputs.length) {
var inputs = classify(tx.inputs);
var outputs = classify(tx.outputs);
inputs = classify(tx.inputs);
outputs = classify(tx.outputs);
amountIn = sum(inputs, true);
amountOut = sum(outputs, true, false);
@ -1538,7 +1539,7 @@ WalletService.prototype.getTxHistory = function(opts, cb) {
fees: tx.fees,
time: tx.time,
addressTo: addressTo,
outputs: tx.outputs,
outputs: _.filter(outputs, { isChange: false }),
confirmations: tx.confirmations,
};
@ -1550,6 +1551,12 @@ WalletService.prototype.getTxHistory = function(opts, cb) {
newTx.actions = _.map(proposal.actions, function(action) {
return _.pick(action, ['createdOn', 'type', 'copayerId', 'copayerName', 'comment']);
});
_.each(newTx.outputs, function(output) {
var query = { toAddress: output.address, amount: output.amount };
var txpOut = _.find(proposal.outputs, query);
output.message = txpOut ? txpOut.message : null;
}
);
// newTx.sentTs = proposal.sentTs;
// newTx.merchant = proposal.merchant;
//newTx.paymentAckMemo = proposal.paymentAckMemo;

View File

@ -3587,14 +3587,26 @@ describe('Wallet service', function() {
tx.action.should.equal('sent');
tx.amount.should.equal(300);
tx.fees.should.equal(100);
tx.outputs[0].address.should.equal('external');
tx.outputs[0].amount.should.equal(300);
done();
});
});
it('should get tx history with accepted proposal', function(done) {
server._normalizeTxHistory = sinon.stub().returnsArg(0);
var external = '18PzpUFkFZE8zKWUPvfykkTxmB9oMR8qP7';
helpers.stubUtxos(server, wallet, [100, 200], function(utxos) {
var txOpts = helpers.createSimpleProposalOpts(mainAddresses[0].address, 80, 'some message', TestData.copayers[0].privKey_1H_0);
var outputs = [{
toAddress: external,
amount: 50,
message: undefined // no message
}, {
toAddress: external,
amount: 30,
message: 'message #2'
}];
var txOpts = helpers.createProposalOpts(Model.TxProposal.Types.MULTIPLEOUTPUTS, outputs, 'some message', TestData.copayers[0].privKey_1H_0);
server.createTx(txOpts, function(err, tx) {
should.not.exist(err);
should.exist(tx);
@ -3624,9 +3636,12 @@ describe('Wallet service', function() {
address: changeAddresses[0].address,
amount: helpers.toSatoshi(20) - 5460,
}, {
address: 'external',
amount: helpers.toSatoshi(80) - 5460,
}],
address: external,
amount: helpers.toSatoshi(50)
}, {
address: external,
amount: helpers.toSatoshi(30)
}]
}];
helpers.stubHistory(txs);
@ -3638,10 +3653,17 @@ describe('Wallet service', function() {
tx.action.should.equal('sent');
tx.amount.should.equal(helpers.toSatoshi(80));
tx.message.should.equal('some message');
tx.addressTo.should.equal('external');
tx.addressTo.should.equal(external);
tx.actions.length.should.equal(1);
tx.actions[0].type.should.equal('accept');
tx.actions[0].copayerName.should.equal('copayer 1');
tx.outputs[0].address.should.equal(external);
tx.outputs[0].amount.should.equal(helpers.toSatoshi(50));
should.not.exist(tx.outputs[0].message);
tx.outputs[1].address.should.equal(external);
tx.outputs[1].amount.should.equal(helpers.toSatoshi(30));
should.exist(tx.outputs[1].message);
tx.outputs[1].message.should.equal('message #2');
done();
});
});