Skip to content

Commit b85ccdd

Browse files
author
Aleix Morgadas
committed
CHANGED PublicAccount.verifySignature to be an instance method instead of static.
FIX KeyPair.verify param types
1 parent d9a0bf3 commit b85ccdd

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

src/model/account/PublicAccount.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,13 @@ export class PublicAccount {
5757
/**
5858
* Verify a signature.
5959
*
60-
* @param {PublicAccount} publicAccount - The public account to use for verification.
6160
* @param {string} data - The data to verify.
6261
* @param {string} signature - The signature to verify.
6362
*
6463
* @return {boolean} - True if the signature is valid, false otherwise.
6564
*/
66-
static verifySignature(publicAccount: PublicAccount, data: string, signature: string): boolean {
67-
if (!publicAccount || !data || !signature) {
65+
public verifySignature(data: string, signature: string): boolean {
66+
if (!data || !signature) {
6867
throw new Error('Missing argument');
6968
}
7069

@@ -89,7 +88,7 @@ export class PublicAccount {
8988
// Convert to Uint8Array
9089
convertedData = convert.hexToUint8(convertedData);
9190

92-
return KeyPair.verify(convert.hexToUint8(publicAccount.publicKey), convertedData, convertedSignature);
91+
return KeyPair.verify(convert.hexToUint8(this.publicKey), convertedData, convertedSignature);
9392
}
9493

9594
/**

test/model/account/PublicAccount.spec.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@ describe('PublicAccount', () => {
3131
describe('Signature verification', () => {
3232
it('Can verify a signature', () => {
3333
// Arrange:'
34-
const signerPublicAccount = PublicAccount.createFromPublicKey('22816F825B4CACEA334723D51297D8582332D8B875A5829908AAE85831ABB508',
34+
const signerPublicAccount = PublicAccount.createFromPublicKey(
35+
'1464953393CE96A08ABA6184601FD08864E910696B060FF7064474726E666CA8',
3536
NetworkType.MIJIN_TEST);
3637
const data = 'I am so so so awesome as always';
37-
const signature = 'B01DCA6484026C2ECDF3C822E64DEAAFC15EBCCE337EEE209C28513CB5351CDED8863A8E7B855CD471B55C91FAE611C548625C9A5916A555A24F72F3526FA508'; // tslint:disable-line
38+
const signature = '2092660F5BD4AE832B2E290F34A76B41506EE473B02FD7FD468B32C80C945CF60A0D60D005FA9B2DB3AD3212F8028C1449D3DCF81C9FAB3EB4975A7409D8D802'; // tslint:disable-line
3839

3940
// Act & Assert:
40-
expect(PublicAccount.verifySignature(signerPublicAccount, data, signature)).equal(true);
41+
expect(signerPublicAccount.verifySignature(data, signature)).equal(true);
4142
});
4243

4344
it('Throw error if signature has invalid length', () => {
@@ -48,7 +49,7 @@ describe('Signature verification', () => {
4849
const signature = 'B01DCA6484026C2ECDF3C822E64DEAAFC15EBCCE337EEE209C28513CB5351CDED8863A8E7B855CD471B55C91FAE611C5486'; // tslint:disable-line
4950

5051
// Act & Assert:
51-
expect(() => { PublicAccount.verifySignature(signerPublicAccount, data, signature); }).to.throw('Signature length is incorrect');
52+
expect(() => { signerPublicAccount.verifySignature(data, signature); }).to.throw('Signature length is incorrect');
5253
});
5354

5455
it('Throw error if signature is not strictly hexadecimal', () => {
@@ -59,7 +60,7 @@ describe('Signature verification', () => {
5960
const signature = 'B01DCA6484026C2ECDF3C822E64DEAAFC15EBCCE337EEE209C28513CB5351CDED8863A8E7B855CD471B55C91FAE611C548625C9A5916A555A24F72F35a1wwwww';// tslint:disable-line
6061

6162
// Act & Assert:
62-
expect(() => { PublicAccount.verifySignature(signerPublicAccount, data, signature); })
63+
expect(() => { signerPublicAccount.verifySignature(data, signature); })
6364
.to.throw('Signature must be hexadecimal only');
6465
});
6566

@@ -71,7 +72,7 @@ describe('Signature verification', () => {
7172
const signature = 'B01DCA6484026C2ECDF3C822E64DEAAFC15EBCCE337EEE209C28513CB5351CDED8863A8E7B855CD471B55C91FAE611C548625C9A5916A555A24F72F3526FA508';// tslint:disable-line
7273

7374
// Act & Assert:
74-
expect(PublicAccount.verifySignature(signerPublicAccount, data, signature)).equal(false);
75+
expect(signerPublicAccount.verifySignature(data, signature)).equal(false);
7576
});
7677

7778
it('Return false if data is not corresponding to signature provided', () => {
@@ -82,7 +83,7 @@ describe('Signature verification', () => {
8283
const signature = 'B01DCA6484026C2ECDF3C822E64DEAAFC15EBCCE337EEE209C28513CB5351CDED8863A8E7B855CD471B55C91FAE611C548625C9A5916A555A24F72F3526FA508';// tslint:disable-line
8384

8485
// Act & Assert:
85-
expect(PublicAccount.verifySignature(signerPublicAccount, data, signature)).equal(false);
86+
expect(signerPublicAccount.verifySignature(data, signature)).equal(false);
8687
});
8788

8889
it('Return false if signature is not corresponding to data provided', () => {
@@ -93,7 +94,7 @@ describe('Signature verification', () => {
9394
const signature = 'A01DCA6484026C2ECDF3C822E64DEAAFC15EBCCE337EEE209C28513CB5351CDED8863A8E7B855CD471B55C91FAE611C548625C9A5916A555A24F72F3526FA509';// tslint:disable-line
9495

9596
// Act & Assert:
96-
expect(PublicAccount.verifySignature(signerPublicAccount, data, signature)).equal(false);
97+
expect(signerPublicAccount.verifySignature(data, signature)).equal(false);
9798
});
9899

99100
it('Throw error if signature verification is missing a parameter', () => {
@@ -104,6 +105,6 @@ describe('Signature verification', () => {
104105
const signature = 'B01DCA6484026C2ECDF3C822E64DEAAFC15EBCCE337EEE209C28513CB5351CDED8863A8E7B855CD471B55C91FAE611C548625C9A5916A555A24F72F3526FA508';// tslint:disable-line
105106

106107
// Act & Assert:
107-
expect(() => { PublicAccount.verifySignature(signerPublicAccount, data, signature); }).to.throw('Missing argument');
108+
expect(() => { signerPublicAccount.verifySignature(data, signature); }).to.throw('Missing argument');
108109
});
109110
});

0 commit comments

Comments
 (0)