Address feedback

This commit is contained in:
Leonid Logvinov 2017-05-24 19:23:35 +02:00
parent d8670e5768
commit 945a583e89
No known key found for this signature in database
GPG Key ID: 0DD294BFDE8C95D4
3 changed files with 7 additions and 5 deletions

View File

@ -11,7 +11,8 @@ export interface ECSignature {
export class ZeroEx { export class ZeroEx {
/** /**
* Checks if the signature is valid * Verifies that the elliptic curve signature `signature` was generated
* by signing `data` with the private key corresponding to the `signer` address.
*/ */
public static isValidSignature(data: string, signature: ECSignature, signer: ETHAddressHex): boolean { public static isValidSignature(data: string, signature: ECSignature, signer: ETHAddressHex): boolean {
const dataBuff = ethUtil.toBuffer(data); const dataBuff = ethUtil.toBuffer(data);

6
src/ts/globals.d.ts vendored
View File

@ -1,4 +1,4 @@
declare type PubKey = string; declare type ETHPublicKey = string;
declare type ETHAddressHex = string; declare type ETHAddressHex = string;
declare type ETHAddressBuff = Buffer; declare type ETHAddressBuff = Buffer;
@ -6,6 +6,6 @@ declare module 'ethereumjs-util' {
const toBuffer: (data: string) => Buffer; const toBuffer: (data: string) => Buffer;
const hashPersonalMessage: (msg: Buffer) => Buffer; const hashPersonalMessage: (msg: Buffer) => Buffer;
const bufferToHex: (buff: Buffer) => string; const bufferToHex: (buff: Buffer) => string;
const ecrecover: (msgHashBuff: Buffer, v: number, r: Buffer, s: Buffer) => PubKey; const ecrecover: (msgHashBuff: Buffer, v: number, r: Buffer, s: Buffer) => ETHPublicKey;
const pubToAddress: (pubKey: PubKey) => ETHAddressBuff; const pubToAddress: (pubKey: ETHPublicKey) => ETHAddressBuff;
} }

View File

@ -4,6 +4,7 @@ import 'mocha';
describe('ZeroEx library', () => { describe('ZeroEx library', () => {
describe('#isValidSignature', () => { describe('#isValidSignature', () => {
// This test data was borrowed from the JSON RPC documentation
// Source: https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign // Source: https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign
const data = '0xdeadbeaf'; const data = '0xdeadbeaf';
const signature = { const signature = {
@ -66,7 +67,7 @@ describe('ZeroEx library', () => {
const isValid = ZeroEx.isValidSignature(data, wrongSignature, address); const isValid = ZeroEx.isValidSignature(data, wrongSignature, address);
expect(isValid).to.be.false; expect(isValid).to.be.false;
}); });
it('should return true for valid signature', () => { it('should return true if the signature does pertain to the data & address', () => {
const isValid = ZeroEx.isValidSignature(data, signature, address); const isValid = ZeroEx.isValidSignature(data, signature, address);
expect(isValid).to.be.true; expect(isValid).to.be.true;
}); });