aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/0x.js.ts14
-rw-r--r--src/utils/utils.ts15
2 files changed, 13 insertions, 16 deletions
diff --git a/src/0x.js.ts b/src/0x.js.ts
index f275d9fbd..8f1178b2a 100644
--- a/src/0x.js.ts
+++ b/src/0x.js.ts
@@ -40,7 +40,19 @@ export class ZeroEx {
assert.doesConformToSchema('signature', signature, ecSignatureSchema);
assert.isETHAddressHex('signerAddressHex', signerAddressHex);
- return utils.isValidSignature(dataHex, signature, signerAddressHex);
+ const dataBuff = ethUtil.toBuffer(dataHex);
+ const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff);
+ try {
+ const pubKey = ethUtil.ecrecover(
+ msgHashBuff,
+ signature.v,
+ ethUtil.toBuffer(signature.r),
+ ethUtil.toBuffer(signature.s));
+ const retrievedAddress = ethUtil.bufferToHex(ethUtil.pubToAddress(pubKey));
+ return retrievedAddress === signerAddressHex;
+ } catch (err) {
+ return false;
+ }
}
/**
* Generates pseudo-random 256 bit salt.
diff --git a/src/utils/utils.ts b/src/utils/utils.ts
index ea3d8c7e1..ded2d31fd 100644
--- a/src/utils/utils.ts
+++ b/src/utils/utils.ts
@@ -51,21 +51,6 @@ export const utils = {
const hashHex = ethUtil.bufferToHex(hashBuff);
return hashHex;
},
- isValidSignature(dataHex: string, signature: ECSignature, signerAddressHex: string): boolean {
- const dataBuff = ethUtil.toBuffer(dataHex);
- const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff);
- try {
- const pubKey = ethUtil.ecrecover(
- msgHashBuff,
- signature.v,
- ethUtil.toBuffer(signature.r),
- ethUtil.toBuffer(signature.s));
- const retrievedAddress = ethUtil.bufferToHex(ethUtil.pubToAddress(pubKey));
- return retrievedAddress === signerAddressHex;
- } catch (err) {
- return false;
- }
- },
getCurrentUnixTimestamp(): BigNumber.BigNumber {
return new BigNumber(Date.now() / 1000);
},