47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
import nacl from 'tweetnacl';
|
|
import type {SignKeyPair as KeyPair} from 'tweetnacl';
|
|
import type {Buffer} from 'buffer';
|
|
|
|
import {toBuffer} from './util/to-buffer';
|
|
import {PublicKey} from './publickey';
|
|
|
|
/**
|
|
* An account key pair (public and secret keys).
|
|
*
|
|
* @deprecated since v1.10.0, please use {@link Keypair} instead.
|
|
*/
|
|
export class Account {
|
|
/** @internal */
|
|
_keypair: KeyPair;
|
|
|
|
/**
|
|
* Create a new Account object
|
|
*
|
|
* If the secretKey parameter is not provided a new key pair is randomly
|
|
* created for the account
|
|
*
|
|
* @param secretKey Secret key for the account
|
|
*/
|
|
constructor(secretKey?: Buffer | Uint8Array | Array<number>) {
|
|
if (secretKey) {
|
|
this._keypair = nacl.sign.keyPair.fromSecretKey(toBuffer(secretKey));
|
|
} else {
|
|
this._keypair = nacl.sign.keyPair();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The public key for this account
|
|
*/
|
|
get publicKey(): PublicKey {
|
|
return new PublicKey(this._keypair.publicKey);
|
|
}
|
|
|
|
/**
|
|
* The **unencrypted** secret key for this account
|
|
*/
|
|
get secretKey(): Buffer {
|
|
return toBuffer(this._keypair.secretKey);
|
|
}
|
|
}
|