forked from hiero-ledger/hiero-sdk-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate-key.js
40 lines (32 loc) · 1.36 KB
/
generate-key.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { Mnemonic } from "@hashgraph/sdk";
async function main() {
try {
// generate a 24-word mnemonic
const mnemonic = await Mnemonic.generate();
console.log(`24 words mnemonic = ${mnemonic.toString()}`);
const key = await mnemonic.toStandardEd25519PrivateKey("", 0);
console.log(`private key = ${key.toString()}`);
console.log(`public key = ${key.publicKey.toString()}`);
// [...]
// recover your key from the mnemonic
// this takes space-separated or comma-separated words
const recoveredMnemonic = await Mnemonic.fromString(
mnemonic.toString(),
);
const recoveredRootKey =
await recoveredMnemonic.toStandardEd25519PrivateKey("", 0);
recoveredRootKey.toString() === key.toString()
? console.log(`successful key recovery!`)
: console.log(`key recovery failed!`);
const mnemonic12 = await Mnemonic.generate12();
console.log(`12 words mnemonic = ${mnemonic12.toString()}`);
const key12 = await mnemonic12.toStandardEd25519PrivateKey("", 0);
console.log(`private key = ${key12.toString()}`);
console.log(`public key = ${key12.publicKey.toString()}`);
} catch (error) {
console.error(error);
}
}
void main()
.then(() => process.exit(0))
.catch(() => process.exit(1));