aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/test/asset_proxy/decoder.ts
diff options
context:
space:
mode:
authorGreg Hysen <greg.hysen@gmail.com>2018-05-25 15:31:03 +0800
committerGreg Hysen <greg.hysen@gmail.com>2018-06-08 06:38:42 +0800
commit842363200b3b8aded3b03fc8e46a329ff9534e36 (patch)
tree8f535e5a16c298594b4d3f0959ec4b73f707cf48 /packages/contracts/test/asset_proxy/decoder.ts
parentd9f9895b2bcd3cde09febbe0e1af31be5ddc80e2 (diff)
downloaddexon-sol-tools-842363200b3b8aded3b03fc8e46a329ff9534e36.tar
dexon-sol-tools-842363200b3b8aded3b03fc8e46a329ff9534e36.tar.gz
dexon-sol-tools-842363200b3b8aded3b03fc8e46a329ff9534e36.tar.bz2
dexon-sol-tools-842363200b3b8aded3b03fc8e46a329ff9534e36.tar.lz
dexon-sol-tools-842363200b3b8aded3b03fc8e46a329ff9534e36.tar.xz
dexon-sol-tools-842363200b3b8aded3b03fc8e46a329ff9534e36.tar.zst
dexon-sol-tools-842363200b3b8aded3b03fc8e46a329ff9534e36.zip
Tons of tests around nested byte arrays and ERC721 receiver
Diffstat (limited to 'packages/contracts/test/asset_proxy/decoder.ts')
-rw-r--r--packages/contracts/test/asset_proxy/decoder.ts26
1 files changed, 25 insertions, 1 deletions
diff --git a/packages/contracts/test/asset_proxy/decoder.ts b/packages/contracts/test/asset_proxy/decoder.ts
index 4416334d1..0f1413ff1 100644
--- a/packages/contracts/test/asset_proxy/decoder.ts
+++ b/packages/contracts/test/asset_proxy/decoder.ts
@@ -56,21 +56,45 @@ describe('LibAssetProxyDecoder', () => {
expect(decodedTokenAddress).to.be.equal(expectedDecodedProxyData.tokenAddress);
});
- it('should correctly decode ERC721 proxy data)', async () => {
+ it('should correctly decode ERC721 proxy data', async () => {
const tokenId = ZeroEx.generatePseudoRandomSalt();
const encodedProxyData = assetProxyUtils.encodeERC721ProxyData(testAddress, tokenId);
const expectedDecodedProxyData = assetProxyUtils.decodeERC721ProxyData(encodedProxyData);
let decodedAssetProxyId: number;
let decodedTokenAddress: string;
let decodedTokenId: BigNumber;
+ let decodedData: string;
[
decodedAssetProxyId,
decodedTokenAddress,
decodedTokenId,
+ decodedData,
] = await testAssetProxyDecoder.publicDecodeERC721Data.callAsync(encodedProxyData);
expect(decodedAssetProxyId).to.be.equal(expectedDecodedProxyData.assetProxyId);
expect(decodedTokenAddress).to.be.equal(expectedDecodedProxyData.tokenAddress);
expect(decodedTokenId).to.be.bignumber.equal(expectedDecodedProxyData.tokenId);
+ expect(decodedData).to.be.equal(expectedDecodedProxyData.data);
+ });
+
+ it('should correctly decode ERC721 proxy data with receiver data', async () => {
+ const tokenId = ZeroEx.generatePseudoRandomSalt();
+ const data = ethUtil.bufferToHex(assetProxyUtils.encodeUint256(ZeroEx.generatePseudoRandomSalt())) + 'FFFF';
+ const encodedProxyData = assetProxyUtils.encodeERC721ProxyData(testAddress, tokenId, data);
+ const expectedDecodedProxyData = assetProxyUtils.decodeERC721ProxyData(encodedProxyData);
+ let decodedAssetProxyId: number;
+ let decodedTokenAddress: string;
+ let decodedTokenId: BigNumber;
+ let decodedData: string;
+ [
+ decodedAssetProxyId,
+ decodedTokenAddress,
+ decodedTokenId,
+ decodedData,
+ ] = await testAssetProxyDecoder.publicDecodeERC721Data.callAsync(encodedProxyData);
+ expect(decodedAssetProxyId).to.be.equal(expectedDecodedProxyData.assetProxyId);
+ expect(decodedTokenAddress).to.be.equal(expectedDecodedProxyData.tokenAddress);
+ expect(decodedTokenId).to.be.bignumber.equal(expectedDecodedProxyData.tokenId);
+ expect(decodedData).to.be.equal(expectedDecodedProxyData.data);
});
});
});