generateKeypair.ts 621 Bytes
Newer Older
Amaury Martiny's avatar
Amaury Martiny committed
1
import { Keyring } from '@polkadot/keyring';
2
import { KeyringPair as KeyringPairBase } from '@polkadot/keyring/types';
Amaury Martiny's avatar
Amaury Martiny committed
3
4
import { mnemonicGenerate } from '@polkadot/util-crypto';

Amaury Martiny's avatar
Amaury Martiny committed
5
6
import { KUSAMA_SS58_FORMAT } from './util/constants';

7
8
9
10
11
/**
 * A keyring pair
 */
export interface KeyringPair extends KeyringPairBase {} // eslint-disable-line @typescript-eslint/no-empty-interface

Amaury Martiny's avatar
Amaury Martiny committed
12
13
14
15
16
/**
 * Generate a valid public/private keypair offline
 */
export function generateKeypair(): KeyringPair {
  const keyring = new Keyring();
Amaury Martiny's avatar
Amaury Martiny committed
17
  keyring.setSS58Format(KUSAMA_SS58_FORMAT);
Amaury Martiny's avatar
Amaury Martiny committed
18
19
20

  return keyring.addFromMnemonic(mnemonicGenerate());
}