aboutsummaryrefslogtreecommitdiffstats
path: root/test/token_wrapper_test.ts
diff options
context:
space:
mode:
authorLeonid <logvinov.leon@gmail.com>2017-10-04 19:30:36 +0800
committerGitHub <noreply@github.com>2017-10-04 19:30:36 +0800
commit836d9be7fee9986c8ffa380633d873ba557511f4 (patch)
treebdbe710ada39c7619efa5087cdd4eee6256cbf33 /test/token_wrapper_test.ts
parent5d554ab88246563a8efcbde1b92e45ab926214d5 (diff)
parente5bdf60460330a24597e018f3611e7bc939c1362 (diff)
downloaddexon-0x-contracts-836d9be7fee9986c8ffa380633d873ba557511f4.tar
dexon-0x-contracts-836d9be7fee9986c8ffa380633d873ba557511f4.tar.gz
dexon-0x-contracts-836d9be7fee9986c8ffa380633d873ba557511f4.tar.bz2
dexon-0x-contracts-836d9be7fee9986c8ffa380633d873ba557511f4.tar.lz
dexon-0x-contracts-836d9be7fee9986c8ffa380633d873ba557511f4.tar.xz
dexon-0x-contracts-836d9be7fee9986c8ffa380633d873ba557511f4.tar.zst
dexon-0x-contracts-836d9be7fee9986c8ffa380633d873ba557511f4.zip
Merge pull request #178 from 0xProject/feature/getLogs
Add zeroEx.getLogsAsync
Diffstat (limited to 'test/token_wrapper_test.ts')
-rw-r--r--test/token_wrapper_test.ts54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/token_wrapper_test.ts b/test/token_wrapper_test.ts
index 68dca0769..da020f714 100644
--- a/test/token_wrapper_test.ts
+++ b/test/token_wrapper_test.ts
@@ -14,6 +14,7 @@ import {
ContractEvent,
TransferContractEventArgs,
ApprovalContractEventArgs,
+ LogWithDecodedArgs,
} from '../src';
import {BlockchainLifecycle} from './utils/blockchain_lifecycle';
import {TokenUtils} from './utils/token_utils';
@@ -435,4 +436,57 @@ describe('TokenWrapper', () => {
})().catch(done);
});
});
+ describe('#getLogsAsync', () => {
+ let tokenAddress: string;
+ let tokenTransferProxyAddress: string;
+ const subscriptionOpts: SubscriptionOpts = {
+ fromBlock: 'earliest',
+ toBlock: 'latest',
+ };
+ let txHash: string;
+ before(async () => {
+ const token = tokens[0];
+ tokenAddress = token.address;
+ tokenTransferProxyAddress = await zeroEx.proxy.getContractAddressAsync();
+ });
+ it('should get logs with decoded args emitted by Approval', async () => {
+ txHash = await zeroEx.token.setUnlimitedProxyAllowanceAsync(tokenAddress, coinbase);
+ await zeroEx.awaitTransactionMinedAsync(txHash);
+ const eventName = TokenEvents.Approval;
+ const indexFilterValues = {};
+ const logs = await zeroEx.token.getLogsAsync(
+ tokenAddress, eventName, subscriptionOpts, indexFilterValues,
+ );
+ expect(logs).to.have.length(1);
+ expect(logs[0].event).to.be.equal(eventName);
+ expect(logs[0].args._owner).to.be.equal(coinbase);
+ expect(logs[0].args._spender).to.be.equal(tokenTransferProxyAddress);
+ expect(logs[0].args._value).to.be.bignumber.equal(zeroEx.token.UNLIMITED_ALLOWANCE_IN_BASE_UNITS);
+ });
+ it('should only get the logs with the correct event name', async () => {
+ txHash = await zeroEx.token.setUnlimitedProxyAllowanceAsync(tokenAddress, coinbase);
+ await zeroEx.awaitTransactionMinedAsync(txHash);
+ const differentEventName = TokenEvents.Transfer;
+ const indexFilterValues = {};
+ const logs = await zeroEx.token.getLogsAsync(
+ tokenAddress, differentEventName, subscriptionOpts, indexFilterValues,
+ );
+ expect(logs).to.have.length(0);
+ });
+ it('should only get the logs with the correct indexed fields', async () => {
+ txHash = await zeroEx.token.setUnlimitedProxyAllowanceAsync(tokenAddress, coinbase);
+ await zeroEx.awaitTransactionMinedAsync(txHash);
+ txHash = await zeroEx.token.setUnlimitedProxyAllowanceAsync(tokenAddress, addressWithoutFunds);
+ await zeroEx.awaitTransactionMinedAsync(txHash);
+ const eventName = TokenEvents.Approval;
+ const indexFilterValues = {
+ _owner: coinbase,
+ };
+ const logs = await zeroEx.token.getLogsAsync(
+ tokenAddress, eventName, subscriptionOpts, indexFilterValues,
+ );
+ expect(logs).to.have.length(1);
+ expect(logs[0].args._owner).to.be.equal(coinbase);
+ });
+ });
});