XYOracleNetwork/clients

View on GitHub
packages/cli/src/lib/settings/account/getAccount.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { generateMnemonic } from '@scure/bip39'
// eslint-disable-next-line import-x/no-internal-modules
import { wordlist } from '@scure/bip39/wordlists/english'
import { HDWallet } from '@xyo-network/account'
import type { AccountInstance } from '@xyo-network/account-model'

import { loadMnemonic } from './loadMnemonic.js'
import { saveMnemonic } from './saveMnemonic.js'

export const getAccount = async (): Promise<AccountInstance> => {
  let mnemonic = await loadMnemonic()
  if (!mnemonic) {
    mnemonic = generateMnemonic(wordlist, 256)
    await saveMnemonic(mnemonic)
  }
  const account = HDWallet.fromPhrase(mnemonic)
  return account
}