Add tests to verify ZRX_ASSET_DATA
This commit is contained in:
		| @@ -39,6 +39,7 @@ | ||||
|         "MultiSigWalletWithTimeLock", | ||||
|         "TestAssetProxyOwner", | ||||
|         "TestAssetProxyDispatcher", | ||||
|         "TestConstants", | ||||
|         "TestLibBytes", | ||||
|         "TestLibs", | ||||
|         "TestSignatureValidator", | ||||
|   | ||||
| @@ -37,7 +37,7 @@ | ||||
|     }, | ||||
|     "config": { | ||||
|         "abis": | ||||
|             "../migrations/artifacts/2.0.0/@(AssetProxyOwner|DummyERC20Token|DummyERC721Receiver|DummyERC721Token|ERC20Proxy|ERC721Proxy|Forwarder|Exchange|ExchangeWrapper|IAssetData|IAssetProxy|MixinAuthorizable|MultiSigWallet|MultiSigWalletWithTimeLock|TestAssetProxyOwner|TestAssetProxyDispatcher|TestLibBytes|TestLibs|TestSignatureValidator|Validator|Wallet|TokenRegistry|Whitelist|WETH9|ZRXToken).json" | ||||
|             "../migrations/artifacts/2.0.0/@(AssetProxyOwner|DummyERC20Token|DummyERC721Receiver|DummyERC721Token|ERC20Proxy|ERC721Proxy|Forwarder|Exchange|ExchangeWrapper|IAssetData|IAssetProxy|MixinAuthorizable|MultiSigWallet|MultiSigWalletWithTimeLock|TestAssetProxyOwner|TestAssetProxyDispatcher|TestConstants|TestLibBytes|TestLibs|TestSignatureValidator|Validator|Wallet|TokenRegistry|Whitelist|WETH9|ZRXToken).json" | ||||
|     }, | ||||
|     "repository": { | ||||
|         "type": "git", | ||||
|   | ||||
							
								
								
									
										57
									
								
								packages/contracts/src/2.0.0/test/TestConstants/TestConstants.sol
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								packages/contracts/src/2.0.0/test/TestConstants/TestConstants.sol
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| /* | ||||
|  | ||||
|   Copyright 2018 ZeroEx Intl. | ||||
|  | ||||
|   Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|   you may not use this file except in compliance with the License. | ||||
|   You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|   Unless required by applicable law or agreed to in writing, software | ||||
|   distributed under the License is distributed on an "AS IS" BASIS, | ||||
|   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|   See the License for the specific language governing permissions and | ||||
|   limitations under the License. | ||||
|  | ||||
| */ | ||||
|  | ||||
| pragma solidity 0.4.24; | ||||
|  | ||||
| import "../../utils/LibBytes/LibBytes.sol"; | ||||
|  | ||||
|  | ||||
| // solhint-disable max-line-length | ||||
| contract TestConstants { | ||||
|     | ||||
|     using LibBytes for bytes; | ||||
|  | ||||
|     bytes4 constant internal ERC20_PROXY_ID = bytes4(keccak256("ERC20Token(address)")); | ||||
|      | ||||
|     address constant internal KOVAN_ZRX_ADDRESS = 0x6Ff6C0Ff1d68b964901F986d4C9FA3ac68346570; | ||||
|     bytes constant internal KOVAN_ZRX_ASSET_DATA = "\xf4\x72\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xf6\xc0\xff\x1d\x68\xb9\x64\x90\x1f\x98\x6d\x4c\x9f\xa3\xac\x68\x34\x65\x70"; | ||||
|      | ||||
|     address constant internal MAINNET_ZRX_ADDRESS = 0xE41d2489571d322189246DaFA5ebDe1F4699F498; | ||||
|     bytes constant public MAINNET_ZRX_ASSET_DATA = "\xf4\x72\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x1d\x24\x89\x57\x1d\x32\x21\x89\x24\x6d\xaf\xa5\xeb\xde\x1f\x46\x99\xf4\x98"; | ||||
|      | ||||
|     function assertValidZrxAssetData() | ||||
|         public | ||||
|         pure | ||||
|         returns (bool) | ||||
|     { | ||||
|         bytes memory kovanZrxAssetData = abi.encodeWithSelector(ERC20_PROXY_ID, KOVAN_ZRX_ADDRESS); | ||||
|         require( | ||||
|             kovanZrxAssetData.equals(KOVAN_ZRX_ASSET_DATA), | ||||
|             "INVALID_KOVAN_ZRX_ASSET_DATA" | ||||
|         ); | ||||
|  | ||||
|         bytes memory mainetZrxAssetData = abi.encodeWithSelector(ERC20_PROXY_ID, MAINNET_ZRX_ADDRESS); | ||||
|         require( | ||||
|             mainetZrxAssetData.equals(MAINNET_ZRX_ASSET_DATA), | ||||
|             "INVALID_MAINNET_ZRX_ASSET_DATA" | ||||
|         ); | ||||
|  | ||||
|         return true; | ||||
|     } | ||||
| } | ||||
| // solhint-enable max-line-length | ||||
| @@ -4,6 +4,7 @@ import { SignedOrder } from '@0xproject/types'; | ||||
| import { BigNumber } from '@0xproject/utils'; | ||||
| import * as chai from 'chai'; | ||||
|  | ||||
| import { TestConstantsContract } from '../../generated_contract_wrappers/test_constants'; | ||||
| import { TestLibsContract } from '../../generated_contract_wrappers/test_libs'; | ||||
| import { addressUtils } from '../utils/address_utils'; | ||||
| import { artifacts } from '../utils/artifacts'; | ||||
| @@ -21,6 +22,7 @@ describe('Exchange libs', () => { | ||||
|     let signedOrder: SignedOrder; | ||||
|     let orderFactory: OrderFactory; | ||||
|     let libs: TestLibsContract; | ||||
|     let testConstants: TestConstantsContract; | ||||
|  | ||||
|     before(async () => { | ||||
|         await blockchainLifecycle.startAsync(); | ||||
| @@ -32,6 +34,11 @@ describe('Exchange libs', () => { | ||||
|         const accounts = await web3Wrapper.getAvailableAddressesAsync(); | ||||
|         const makerAddress = accounts[0]; | ||||
|         libs = await TestLibsContract.deployFrom0xArtifactAsync(artifacts.TestLibs, provider, txDefaults); | ||||
|         testConstants = await TestConstantsContract.deployFrom0xArtifactAsync( | ||||
|             artifacts.TestConstants, | ||||
|             provider, | ||||
|             txDefaults, | ||||
|         ); | ||||
|  | ||||
|         const defaultOrderParams = { | ||||
|             ...constants.STATIC_ORDER_PARAMS, | ||||
| @@ -52,6 +59,15 @@ describe('Exchange libs', () => { | ||||
|         await blockchainLifecycle.revertAsync(); | ||||
|     }); | ||||
|  | ||||
|     describe('LibConstants', () => { | ||||
|         describe('ZRX_ASSET_DATA', () => { | ||||
|             it('should have the correct ZRX_ASSET_DATA', async () => { | ||||
|                 const isValid = await testConstants.assertValidZrxAssetData.callAsync(); | ||||
|                 expect(isValid).to.be.equal(true); | ||||
|             }); | ||||
|         }); | ||||
|     }); | ||||
|  | ||||
|     describe('LibOrder', () => { | ||||
|         describe('getOrderSchema', () => { | ||||
|             it('should output the correct order schema hash', async () => { | ||||
|   | ||||
| @@ -15,6 +15,7 @@ import * as MultiSigWallet from '../../artifacts/MultiSigWallet.json'; | ||||
| import * as MultiSigWalletWithTimeLock from '../../artifacts/MultiSigWalletWithTimeLock.json'; | ||||
| import * as TestAssetProxyDispatcher from '../../artifacts/TestAssetProxyDispatcher.json'; | ||||
| import * as TestAssetProxyOwner from '../../artifacts/TestAssetProxyOwner.json'; | ||||
| import * as TestConstants from '../../artifacts/TestConstants.json'; | ||||
| import * as TestLibBytes from '../../artifacts/TestLibBytes.json'; | ||||
| import * as TestLibs from '../../artifacts/TestLibs.json'; | ||||
| import * as TestSignatureValidator from '../../artifacts/TestSignatureValidator.json'; | ||||
| @@ -42,6 +43,7 @@ export const artifacts = { | ||||
|     MultiSigWalletWithTimeLock: (MultiSigWalletWithTimeLock as any) as ContractArtifact, | ||||
|     TestAssetProxyOwner: (TestAssetProxyOwner as any) as ContractArtifact, | ||||
|     TestAssetProxyDispatcher: (TestAssetProxyDispatcher as any) as ContractArtifact, | ||||
|     TestConstants: (TestConstants as any) as ContractArtifact, | ||||
|     TestLibBytes: (TestLibBytes as any) as ContractArtifact, | ||||
|     TestLibs: (TestLibs as any) as ContractArtifact, | ||||
|     TestSignatureValidator: (TestSignatureValidator as any) as ContractArtifact, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user