diff --git a/contracts/exchange/test/signature_validator.ts b/contracts/exchange/test/signature_validator.ts index 33510e50c0..939b1986d8 100644 --- a/contracts/exchange/test/signature_validator.ts +++ b/contracts/exchange/test/signature_validator.ts @@ -94,6 +94,16 @@ describe('MixinSignatureValidator', () => { ), constants.AWAIT_TRANSACTION_MINED_MS, ); + await web3Wrapper.awaitTransactionSuccessAsync( + await signatureValidator.setSignatureValidatorApproval.sendTransactionAsync( + testValidator.address, + true, + { + from: notSignerAddress, + }, + ), + constants.AWAIT_TRANSACTION_MINED_MS, + ); const defaultOrderParams = { ...constants.STATIC_ORDER_PARAMS, @@ -359,6 +369,15 @@ describe('MixinSignatureValidator', () => { signatureHex, ); expect(isValidSignature).to.be.true(); + + const isValidSignatureTs = await signatureUtils.isValidSignatureAsync( + provider, + orderHashHex, + signatureHex, + signerAddress, + { exchangeAddress: signatureValidator.address }, + ); + expect(isValidSignatureTs).to.be.true(); }); it('should return false when SignatureType=Validator, signature is invalid and validator is approved', async () => { @@ -375,6 +394,15 @@ describe('MixinSignatureValidator', () => { signatureHex, ); expect(isValidSignature).to.be.false(); + + const isValidSignatureTs = await signatureUtils.isValidSignatureAsync( + provider, + orderHashHex, + signatureHex, + notSignerAddress, + { exchangeAddress: signatureValidator.address }, + ); + expect(isValidSignatureTs).to.be.false(); }); it('should revert when `isValidSignature` attempts to update state and SignatureType=Validator', async () => { @@ -410,6 +438,12 @@ describe('MixinSignatureValidator', () => { signatureHex, ); expect(isValidSignature).to.be.false(); + + expect( + signatureUtils.isValidSignatureAsync(provider, orderHashHex, signatureHex, signerAddress, { + exchangeAddress: signatureValidator.address, + }), + ).to.be.rejected(); }); it('should return true when SignatureType=Presigned and signer has presigned hash', async () => { diff --git a/packages/order-utils/src/signature_utils.ts b/packages/order-utils/src/signature_utils.ts index 978e01891f..563a724276 100644 --- a/packages/order-utils/src/signature_utils.ts +++ b/packages/order-utils/src/signature_utils.ts @@ -195,7 +195,7 @@ export const signatureUtils = { ); } - const validatorContract = new IValidatorContract(validatorSignature.signature, provider); + const validatorContract = new IValidatorContract(validatorSignature.validatorAddress, provider); const isValid = await validatorContract.isValidSignature.callAsync( data, signerAddress,