|
@@ -94,7 +94,13 @@ contract('ERC827 Token', function (accounts) {
|
|
|
});
|
|
|
|
|
|
it('should increase by 50 then decrease by 10', async function () {
|
|
|
- await token.increaseApproval(accounts[1], 50);
|
|
|
+ const abiMethod = findMethod(token.abi, 'increaseApproval', 'address,uint256');
|
|
|
+ const increaseApprovalData = ethjsABI.encodeMethod(abiMethod,
|
|
|
+ [accounts[1], 50]
|
|
|
+ );
|
|
|
+ await token.sendTransaction(
|
|
|
+ { from: accounts[0], data: increaseApprovalData }
|
|
|
+ );
|
|
|
let postIncrease = await token.allowance(accounts[0], accounts[1]);
|
|
|
preApproved.plus(50).should.be.bignumber.equal(postIncrease);
|
|
|
await token.decreaseApproval(accounts[1], 10);
|
|
@@ -168,6 +174,56 @@ contract('ERC827 Token', function (accounts) {
|
|
|
);
|
|
|
});
|
|
|
|
|
|
+ it(
|
|
|
+ 'should return correct allowance after increaseApproval (with data) and show the event on receiver contract'
|
|
|
+ , async function () {
|
|
|
+ const message = await Message.new();
|
|
|
+
|
|
|
+ const extraData = message.contract.showMessage.getData(
|
|
|
+ web3.toHex(123456), 666, 'Transfer Done'
|
|
|
+ );
|
|
|
+
|
|
|
+ const abiMethod = findMethod(token.abi, 'increaseApproval', 'address,uint256,bytes');
|
|
|
+ const increaseApprovalData = ethjsABI.encodeMethod(abiMethod,
|
|
|
+ [message.contract.address, 50, extraData]
|
|
|
+ );
|
|
|
+ const transaction = await token.sendTransaction(
|
|
|
+ { from: accounts[0], data: increaseApprovalData }
|
|
|
+ );
|
|
|
+
|
|
|
+ assert.equal(2, transaction.receipt.logs.length);
|
|
|
+
|
|
|
+ new BigNumber(50).should.be.bignumber.equal(
|
|
|
+ await token.allowance(accounts[0], message.contract.address)
|
|
|
+ );
|
|
|
+ });
|
|
|
+
|
|
|
+ it(
|
|
|
+ 'should return correct allowance after decreaseApproval (with data) and show the event on receiver contract'
|
|
|
+ , async function () {
|
|
|
+ const message = await Message.new();
|
|
|
+
|
|
|
+ await token.approve(message.contract.address, 100);
|
|
|
+
|
|
|
+ const extraData = message.contract.showMessage.getData(
|
|
|
+ web3.toHex(123456), 666, 'Transfer Done'
|
|
|
+ );
|
|
|
+
|
|
|
+ const abiMethod = findMethod(token.abi, 'decreaseApproval', 'address,uint256,bytes');
|
|
|
+ const decreaseApprovalData = ethjsABI.encodeMethod(abiMethod,
|
|
|
+ [message.contract.address, 60, extraData]
|
|
|
+ );
|
|
|
+ const transaction = await token.sendTransaction(
|
|
|
+ { from: accounts[0], data: decreaseApprovalData }
|
|
|
+ );
|
|
|
+
|
|
|
+ assert.equal(2, transaction.receipt.logs.length);
|
|
|
+
|
|
|
+ new BigNumber(40).should.be.bignumber.equal(
|
|
|
+ await token.allowance(accounts[0], message.contract.address)
|
|
|
+ );
|
|
|
+ });
|
|
|
+
|
|
|
it(
|
|
|
'should return correct balances after transferFrom (with data) and show the event on receiver contract'
|
|
|
, async function () {
|