From 7ddd66fb744c55ee8b7cc251b2ac0c141fa34c5c Mon Sep 17 00:00:00 2001 From: AugustoL Date: Tue, 16 Jan 2018 18:43:50 -0300 Subject: [PATCH] fix increaseApproval in ERC827Token with tests --- contracts/token/ERC827Token.sol | 2 +- test/ERC827Token.js | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/contracts/token/ERC827Token.sol b/contracts/token/ERC827Token.sol index 3cb22943d..173acf98f 100644 --- a/contracts/token/ERC827Token.sol +++ b/contracts/token/ERC827Token.sol @@ -94,7 +94,7 @@ contract ERC827Token is ERC827, StandardToken { function increaseApproval(address _spender, uint _addedValue, bytes _data) public returns (bool) { require(_spender != address(this)); - super.approve(_spender, _addedValue); + super.increaseApproval(_spender, _addedValue); require(_spender.call(_data)); diff --git a/test/ERC827Token.js b/test/ERC827Token.js index 7cb4ed26c..a88540ba6 100644 --- a/test/ERC827Token.js +++ b/test/ERC827Token.js @@ -183,6 +183,11 @@ contract('ERC827 Token', function (accounts) { web3.toHex(123456), 666, 'Transfer Done' ); + await token.approve(message.contract.address, 10); + new BigNumber(10).should.be.bignumber.equal( + await token.allowance(accounts[0], message.contract.address) + ); + const abiMethod = findMethod(token.abi, 'increaseApproval', 'address,uint256,bytes'); const increaseApprovalData = ethjsABI.encodeMethod(abiMethod, [message.contract.address, 50, extraData] @@ -193,7 +198,7 @@ contract('ERC827 Token', function (accounts) { assert.equal(2, transaction.receipt.logs.length); - new BigNumber(50).should.be.bignumber.equal( + new BigNumber(60).should.be.bignumber.equal( await token.allowance(accounts[0], message.contract.address) ); }); @@ -205,6 +210,10 @@ contract('ERC827 Token', function (accounts) { await token.approve(message.contract.address, 100); + new BigNumber(100).should.be.bignumber.equal( + await token.allowance(accounts[0], message.contract.address) + ); + const extraData = message.contract.showMessage.getData( web3.toHex(123456), 666, 'Transfer Done' );