aboutsummaryrefslogtreecommitdiffstats
path: root/src/0x.js.ts
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-06-08 18:19:02 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-06-08 18:19:02 +0800
commita328f0c8053173fd8e1f75b808228c3edb617bcc (patch)
tree42eeb9f4fbff9bd999c61915e688ed496488f180 /src/0x.js.ts
parent8311203f73bf6eff8bcac8d1fb72f9cf8b65c45b (diff)
downloaddexon-sol-tools-a328f0c8053173fd8e1f75b808228c3edb617bcc.tar
dexon-sol-tools-a328f0c8053173fd8e1f75b808228c3edb617bcc.tar.gz
dexon-sol-tools-a328f0c8053173fd8e1f75b808228c3edb617bcc.tar.bz2
dexon-sol-tools-a328f0c8053173fd8e1f75b808228c3edb617bcc.tar.lz
dexon-sol-tools-a328f0c8053173fd8e1f75b808228c3edb617bcc.tar.xz
dexon-sol-tools-a328f0c8053173fd8e1f75b808228c3edb617bcc.tar.zst
dexon-sol-tools-a328f0c8053173fd8e1f75b808228c3edb617bcc.zip
Move isValidSignature back from utils
Diffstat (limited to 'src/0x.js.ts')
-rw-r--r--src/0x.js.ts14
1 files changed, 13 insertions, 1 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.