diff options
author | F. Eugene Aumson <gene@aumson.org> | 2018-08-31 21:22:05 +0800 |
---|---|---|
committer | F. Eugene Aumson <gene@aumson.org> | 2018-08-31 21:22:05 +0800 |
commit | 72419816a88d6afcf8727cefe69e3a2fbe479f55 (patch) | |
tree | 076252c005a879c4ea122d467348d1097e41a574 /packages/contracts/test/exchange/dispatcher.ts | |
parent | 9a4e6da02f606e97b470a6545b2ce5baf14b03e6 (diff) | |
parent | 675964dc5c6c44eb07023fd036857ecd3f14dcf3 (diff) | |
download | dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.gz dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.bz2 dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.lz dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.xz dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.tar.zst dexon-sol-tools-72419816a88d6afcf8727cefe69e3a2fbe479f55.zip |
Merge remote-tracking branch 'upstream/development' into sol-doc
Diffstat (limited to 'packages/contracts/test/exchange/dispatcher.ts')
-rw-r--r-- | packages/contracts/test/exchange/dispatcher.ts | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/packages/contracts/test/exchange/dispatcher.ts b/packages/contracts/test/exchange/dispatcher.ts index 81871a680..a8ae897a8 100644 --- a/packages/contracts/test/exchange/dispatcher.ts +++ b/packages/contracts/test/exchange/dispatcher.ts @@ -205,6 +205,60 @@ describe('AssetProxyDispatcher', () => { ); }); + it('should not dispatch a transfer if amount == 0', async () => { + // Register ERC20 proxy + await web3Wrapper.awaitTransactionSuccessAsync( + await assetProxyDispatcher.registerAssetProxy.sendTransactionAsync(erc20Proxy.address, { from: owner }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // Construct metadata for ERC20 proxy + const encodedAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); + + // Perform a transfer from makerAddress to takerAddress + const erc20Balances = await erc20Wrapper.getBalancesAsync(); + const amount = constants.ZERO_AMOUNT; + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync( + await assetProxyDispatcher.publicDispatchTransferFrom.sendTransactionAsync( + encodedAssetData, + makerAddress, + takerAddress, + amount, + { from: owner }, + ), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + expect(txReceipt.logs.length).to.be.equal(0); + const newBalances = await erc20Wrapper.getBalancesAsync(); + expect(newBalances).to.deep.equal(erc20Balances); + }); + + it('should not dispatch a transfer if from == to', async () => { + // Register ERC20 proxy + await web3Wrapper.awaitTransactionSuccessAsync( + await assetProxyDispatcher.registerAssetProxy.sendTransactionAsync(erc20Proxy.address, { from: owner }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // Construct metadata for ERC20 proxy + const encodedAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); + + // Perform a transfer from makerAddress to takerAddress + const erc20Balances = await erc20Wrapper.getBalancesAsync(); + const amount = new BigNumber(10); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync( + await assetProxyDispatcher.publicDispatchTransferFrom.sendTransactionAsync( + encodedAssetData, + makerAddress, + makerAddress, + amount, + { from: owner }, + ), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + expect(txReceipt.logs.length).to.be.equal(0); + const newBalances = await erc20Wrapper.getBalancesAsync(); + expect(newBalances).to.deep.equal(erc20Balances); + }); + it('should throw if dispatching to unregistered proxy', async () => { // Construct metadata for ERC20 proxy const encodedAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); |