Skip to content

Commit ebc9ff1

Browse files
authored
Merge pull request #6237 from BitGo/WIN-5725
chore(abstract-substrate): add signMessageinUint8Array method in substrateKeyPair
2 parents a1100b0 + e3293dc commit ebc9ff1

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

modules/abstract-substrate/src/lib/keyPair.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import { DefaultKeys, Ed25519KeyPair, isBase58, KeyPairOptions, toHex } from '@bitgo/sdk-core';
1+
import { DefaultKeys, Ed25519KeyPair, isBase58, KeyPairOptions, toHex, toUint8Array } from '@bitgo/sdk-core';
22
import { KeyCurve } from '@bitgo/statics';
33
import { Keyring } from '@polkadot/keyring';
44
import { createPair } from '@polkadot/keyring/pair';
55
import { KeyringPair } from '@polkadot/keyring/types';
66
import bs58 from 'bs58';
77
import utils from './utils';
8+
import * as nacl from 'tweetnacl';
89

910
const keyring = new Keyring({ type: KeyCurve.Ed25519 });
1011

@@ -61,4 +62,18 @@ export class KeyPair extends Ed25519KeyPair {
6162
}).publicKey;
6263
return { pub: toHex(publicKey) };
6364
}
65+
66+
/**
67+
* Sign the message in Uint8Array
68+
*
69+
* @param {Uint8Array} message to be signed
70+
* @returns {Uint8Array} signed message
71+
*/
72+
signMessageinUint8Array(message: Uint8Array): Uint8Array {
73+
const { prv } = this.keyPair;
74+
if (!prv) {
75+
throw new Error('Missing private key');
76+
}
77+
return nacl.sign.detached(message, nacl.sign.keyPair.fromSeed(toUint8Array(prv)).secretKey);
78+
}
6479
}

0 commit comments

Comments
 (0)