diff options
-rw-r--r-- | packages/order-utils/package.json | 1 | ||||
-rw-r--r-- | packages/order-utils/src/signature_utils.ts | 10 | ||||
-rw-r--r-- | packages/order-utils/test/signature_utils_test.ts | 11 |
3 files changed, 21 insertions, 1 deletions
diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json index 4fa49a58f..cca0182a0 100644 --- a/packages/order-utils/package.json +++ b/packages/order-utils/package.json @@ -57,6 +57,7 @@ "@0x/assert": "^1.0.23", "@0x/base-contract": "^3.0.13", "@0x/contract-artifacts": "^1.3.0", + "@0x/contract-addresses": "^2.2.0", "@0x/json-schemas": "^2.1.7", "@0x/types": "^1.5.2", "@0x/typescript-typings": "^3.0.8", diff --git a/packages/order-utils/src/signature_utils.ts b/packages/order-utils/src/signature_utils.ts index 131144d48..efcc146bf 100644 --- a/packages/order-utils/src/signature_utils.ts +++ b/packages/order-utils/src/signature_utils.ts @@ -1,4 +1,5 @@ import { ExchangeContract, IValidatorContract, IWalletContract } from '@0x/abi-gen-wrappers'; +import { getContractAddressesForNetworkOrThrow } from '@0x/contract-addresses'; import * as artifacts from '@0x/contract-artifacts'; import { schemas } from '@0x/json-schemas'; import { ECSignature, Order, SignatureType, SignedOrder, ValidatorSignature } from '@0x/types'; @@ -92,7 +93,14 @@ export const signatureUtils = { assert.isWeb3Provider('provider', provider); assert.isHexString('data', data); assert.isETHAddressHex('signerAddress', signerAddress); - const exchangeContract = new ExchangeContract(artifacts.Exchange.compilerOutput.abi, signerAddress, provider); + const web3Wrapper = new Web3Wrapper(provider); + const networkId = await web3Wrapper.getNetworkIdAsync(); + const addresses = getContractAddressesForNetworkOrThrow(networkId); + const exchangeContract = new ExchangeContract( + artifacts.Exchange.compilerOutput.abi, + addresses.exchange, + provider, + ); const isValid = await exchangeContract.preSigned.callAsync(data, signerAddress); return isValid; }, diff --git a/packages/order-utils/test/signature_utils_test.ts b/packages/order-utils/test/signature_utils_test.ts index 937382056..eab6aa636 100644 --- a/packages/order-utils/test/signature_utils_test.ts +++ b/packages/order-utils/test/signature_utils_test.ts @@ -99,6 +99,17 @@ describe('Signature utils', () => { ); expect(isValidSignatureLocal).to.be.true(); }); + + it.only('should return false if entry not found in `preSigned` mapping', async () => { + const preSignedSignature = '0x06'; + const isValidSignatureLocal = await signatureUtils.isValidSignatureAsync( + provider, + dataHex, + preSignedSignature, + address, + ); + expect(isValidSignatureLocal).to.be.true(); + }); }); describe('#isValidECSignature', () => { const signature = { |