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) { 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); } }