{"version":3,"file":"accounts.mjs","sourceRoot":"","sources":["../../src/tests/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Bip44Account } from '@metamask/account-api';\nimport { isBip44Account } from '@metamask/account-api';\nimport type {\n  DiscoveredAccount,\n  EntropySourceId,\n  KeyringAccount,\n} from '@metamask/keyring-api';\nimport {\n  BtcAccountType,\n  BtcMethod,\n  BtcScope,\n  EthAccountType,\n  EthMethod,\n  EthScope,\n  KeyringAccountEntropyTypeOption,\n  SolAccountType,\n  SolMethod,\n  SolScope,\n  TrxAccountType,\n  TrxMethod,\n  TrxScope,\n  XlmAccountType,\n  XlmMethod,\n  XlmScope,\n} from '@metamask/keyring-api';\nimport { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport { v4 as uuid } from 'uuid';\n\nexport const ETH_EOA_METHODS = [\n  EthMethod.PersonalSign,\n  EthMethod.Sign,\n  EthMethod.SignTransaction,\n  EthMethod.SignTypedDataV1,\n  EthMethod.SignTypedDataV3,\n  EthMethod.SignTypedDataV4,\n] as const;\n\nconst SOL_METHODS = Object.values(SolMethod);\n\nexport const MOCK_SNAP_1 = {\n  id: 'local:mock-snap-id-1',\n  name: 'Mock Snap 1',\n  enabled: true,\n  manifest: {\n    proposedName: 'Mock Snap 1',\n  },\n};\n\nexport const MOCK_SNAP_2 = {\n  id: 'local:mock-snap-id-2',\n  name: 'Mock Snap 2',\n  enabled: true,\n  manifest: {\n    proposedName: 'Mock Snap 2',\n  },\n};\n\nexport const MOCK_ENTROPY_SOURCE_1 = 'mock-keyring-id-1';\nexport const MOCK_ENTROPY_SOURCE_2 = 'mock-keyring-id-2';\n\nexport const MOCK_MNEMONIC =\n  'abandon ability able about above absent absorb abstract absurd abuse access accident';\n\nexport const MOCK_HD_KEYRING_1 = {\n  type: KeyringTypes.hd,\n  metadata: { id: MOCK_ENTROPY_SOURCE_1, name: 'HD Keyring 1' },\n  accounts: ['0x123'],\n};\n\nexport const MOCK_HD_KEYRING_2 = {\n  type: KeyringTypes.hd,\n  metadata: { id: MOCK_ENTROPY_SOURCE_2, name: 'HD Keyring 2' },\n  accounts: ['0x456'],\n};\n\n/** Used when tests need ensureReady to resolve (SnapAccountService waits for Snap keyring). */\nexport const MOCK_SNAP_KEYRING = {\n  type: KeyringTypes.snap,\n  metadata: { id: 'snap-keyring', name: 'Snap Keyring' },\n  accounts: [],\n};\n\nexport const MOCK_HD_ACCOUNT_1: Bip44Account<InternalAccount> = {\n  id: 'mock-id-1',\n  address: '0x123',\n  options: {\n    entropy: {\n      type: KeyringAccountEntropyTypeOption.Mnemonic,\n      id: MOCK_HD_KEYRING_1.metadata.id,\n      groupIndex: 0,\n      derivationPath: '',\n    },\n  },\n  methods: [...ETH_EOA_METHODS],\n  type: EthAccountType.Eoa,\n  scopes: [EthScope.Eoa],\n  metadata: {\n    name: 'Account 1',\n    keyring: { type: KeyringTypes.hd },\n    importTime: 0,\n    lastSelected: 0,\n    nameLastUpdatedAt: 0,\n  },\n};\n\nexport const MOCK_HD_ACCOUNT_2: Bip44Account<InternalAccount> = {\n  id: 'mock-id-2',\n  address: '0x456',\n  options: {\n    entropy: {\n      type: KeyringAccountEntropyTypeOption.Mnemonic,\n      id: MOCK_HD_KEYRING_2.metadata.id,\n      groupIndex: 0,\n      derivationPath: '',\n    },\n  },\n  methods: [...ETH_EOA_METHODS],\n  type: EthAccountType.Eoa,\n  scopes: [EthScope.Eoa],\n  metadata: {\n    name: 'Account 2',\n    keyring: { type: KeyringTypes.hd },\n    importTime: 0,\n    lastSelected: 0,\n    nameLastUpdatedAt: 0,\n  },\n};\n\nexport const MOCK_SOL_ACCOUNT_1: Bip44Account<InternalAccount> = {\n  id: 'mock-snap-id-1',\n  address: 'aabbccdd',\n  options: {\n    entropy: {\n      type: KeyringAccountEntropyTypeOption.Mnemonic,\n      // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n      id: MOCK_HD_KEYRING_2.metadata.id,\n      groupIndex: 0,\n      derivationPath: '',\n    },\n  },\n  methods: SOL_METHODS,\n  type: SolAccountType.DataAccount,\n  scopes: [SolScope.Mainnet, SolScope.Testnet, SolScope.Devnet],\n  metadata: {\n    name: 'Solana Account 1',\n    keyring: { type: KeyringTypes.snap },\n    snap: MOCK_SNAP_1,\n    importTime: 0,\n    lastSelected: 0,\n  },\n};\n\nconst XLM_METHODS = Object.values(XlmMethod);\n\nexport const MOCK_XLM_ACCOUNT_1: Bip44Account<InternalAccount> = {\n  id: 'mock-snap-id-1',\n  address: `G${'A'.repeat(55)}`,\n  options: {\n    entropy: {\n      type: KeyringAccountEntropyTypeOption.Mnemonic,\n      id: MOCK_HD_KEYRING_2.metadata.id,\n      groupIndex: 0,\n      derivationPath: `m/44'/148'/0'`,\n    },\n  },\n  methods: XLM_METHODS,\n  type: XlmAccountType.Account,\n  scopes: [XlmScope.Pubnet, XlmScope.Testnet],\n  metadata: {\n    name: 'Stellar Account 1',\n    keyring: { type: KeyringTypes.snap },\n    snap: MOCK_SNAP_1,\n    importTime: 0,\n    lastSelected: 0,\n  },\n};\n\nexport const MOCK_TRX_ACCOUNT_1: Bip44Account<InternalAccount> = {\n  id: 'mock-snap-id-1',\n  address: 'aabbccdd',\n  options: {\n    entropy: {\n      type: KeyringAccountEntropyTypeOption.Mnemonic,\n      // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n      id: MOCK_HD_KEYRING_2.metadata.id,\n      groupIndex: 0,\n      derivationPath: '',\n    },\n  },\n  methods: [TrxMethod.SignMessageV2, TrxMethod.VerifyMessageV2],\n  type: TrxAccountType.Eoa,\n  scopes: [TrxScope.Mainnet],\n  metadata: {\n    name: 'Tron Account 1',\n    keyring: { type: KeyringTypes.snap },\n    snap: MOCK_SNAP_1,\n    importTime: 0,\n    lastSelected: 0,\n  },\n};\n\nexport const MOCK_SOL_DISCOVERED_ACCOUNT_1: DiscoveredAccount = {\n  type: 'bip44',\n  scopes: [SolScope.Mainnet],\n  derivationPath: `m/44'/501'/0'/0'`,\n};\n\nexport const MOCK_TRX_DISCOVERED_ACCOUNT_1: DiscoveredAccount = {\n  type: 'bip44',\n  scopes: [TrxScope.Mainnet],\n  derivationPath: `m/44'/195'/0'/0'`,\n};\n\nexport const MOCK_XLM_DISCOVERED_ACCOUNT_1: DiscoveredAccount = {\n  type: 'bip44',\n  scopes: [XlmScope.Pubnet],\n  derivationPath: `m/44'/148'/0'`,\n};\n\nexport const MOCK_BTC_P2TR_DISCOVERED_ACCOUNT_1: DiscoveredAccount = {\n  type: 'bip44',\n  scopes: [BtcScope.Mainnet],\n  derivationPath: `m/44'/0'/0'/0'`,\n};\n\nexport const MOCK_BTC_P2WPKH_ACCOUNT_1: Bip44Account<InternalAccount> = {\n  id: 'b0f030d8-e101-4b5a-a3dd-13f8ca8ec1db',\n  type: BtcAccountType.P2wpkh,\n  methods: Object.values(BtcMethod),\n  address: 'bc1qx8ls07cy8j8nrluy2u0xwn7gh8fxg0rg4s8zze',\n  options: {\n    entropy: {\n      type: KeyringAccountEntropyTypeOption.Mnemonic,\n      // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n      id: MOCK_HD_KEYRING_2.metadata.id,\n      groupIndex: 0,\n      derivationPath: '',\n    },\n  },\n  scopes: [BtcScope.Mainnet],\n  metadata: {\n    name: 'Bitcoin Native Segwit Account 1',\n    importTime: 0,\n    keyring: {\n      type: KeyringTypes.snap,\n    },\n    snap: {\n      id: 'mock-btc-snap-id',\n    },\n  },\n};\n\nexport const MOCK_BTC_P2TR_ACCOUNT_1: Bip44Account<InternalAccount> = {\n  id: 'a20c2e1a-6ff6-40ba-b8e0-ccdb6f9933bb',\n  type: BtcAccountType.P2tr,\n  methods: Object.values(BtcMethod),\n  address: 'tb1p5cyxnuxmeuwuvkwfem96lxx9wex9kkf4mt9ll6q60jfsnrzqg4sszkqjnh',\n  options: {\n    entropy: {\n      type: KeyringAccountEntropyTypeOption.Mnemonic,\n      // NOTE: shares entropy with MOCK_HD_ACCOUNT_2\n      id: MOCK_HD_KEYRING_2.metadata.id,\n      groupIndex: 0,\n      derivationPath: '',\n    },\n  },\n  scopes: [BtcScope.Testnet],\n  metadata: {\n    name: 'Bitcoin Taproot Account 1',\n    importTime: 0,\n    keyring: {\n      type: KeyringTypes.snap,\n    },\n    snap: {\n      id: 'mock-btc-snap-id',\n    },\n  },\n};\n\nexport const MOCK_SNAP_ACCOUNT_1 = MOCK_SOL_ACCOUNT_1;\n\nexport const MOCK_SNAP_ACCOUNT_2: InternalAccount = {\n  id: 'mock-snap-id-2',\n  address: '0x789',\n  options: {},\n  methods: [...ETH_EOA_METHODS],\n  type: EthAccountType.Eoa,\n  scopes: [EthScope.Eoa],\n  metadata: {\n    name: 'Snap Acc 2',\n    keyring: { type: KeyringTypes.snap },\n    snap: MOCK_SNAP_2,\n    importTime: 0,\n    lastSelected: 0,\n  },\n};\n\nexport const MOCK_SNAP_ACCOUNT_3 = MOCK_BTC_P2WPKH_ACCOUNT_1;\nexport const MOCK_SNAP_ACCOUNT_4 = MOCK_BTC_P2TR_ACCOUNT_1;\n\nexport const MOCK_HARDWARE_ACCOUNT_1: InternalAccount = {\n  id: 'mock-hardware-id-1',\n  address: '0xABC',\n  options: {},\n  methods: [...ETH_EOA_METHODS],\n  type: EthAccountType.Eoa,\n  scopes: [EthScope.Eoa],\n  metadata: {\n    name: 'Hardware Acc 1',\n    keyring: { type: KeyringTypes.ledger },\n    importTime: 0,\n    lastSelected: 0,\n  },\n};\n\nexport function isInternalAccount(\n  account: KeyringAccount,\n): account is InternalAccount {\n  // Meant to be used for testing, so we keep this simple.\n  return Object.prototype.hasOwnProperty.call(account, 'metadata');\n}\n\nexport function asKeyringAccount<Account extends KeyringAccount>(\n  account: Account,\n): KeyringAccount {\n  const { id, type, address, scopes, options, methods } = account;\n\n  return {\n    id,\n    type,\n    address,\n    scopes,\n    options,\n    methods,\n  };\n}\n\nexport class MockAccountBuilder<Account extends KeyringAccount> {\n  readonly #account: Account;\n\n  constructor(account: Account) {\n    // Make a deep-copy to avoid mutating the same ref.\n    this.#account = JSON.parse(JSON.stringify(account));\n  }\n\n  static from<Account extends KeyringAccount>(\n    account: Account,\n  ): MockAccountBuilder<Account> {\n    return new MockAccountBuilder(account);\n  }\n\n  withId(id: InternalAccount['id']) {\n    this.#account.id = id;\n    return this;\n  }\n\n  withUuid() {\n    this.#account.id = uuid();\n    return this;\n  }\n\n  withAddress(address: string): this {\n    this.#account.address = address;\n    return this;\n  }\n\n  withAddressSuffix(suffix: string) {\n    this.#account.address += suffix;\n    return this;\n  }\n\n  withEntropySource(entropySource: EntropySourceId) {\n    if (isBip44Account(this.#account)) {\n      this.#account.options.entropy.id = entropySource;\n    }\n    return this;\n  }\n\n  withGroupIndex(groupIndex: number) {\n    if (isBip44Account(this.#account)) {\n      this.#account.options.entropy.groupIndex = groupIndex;\n    }\n    return this;\n  }\n\n  withSnapId(snapId: SnapId) {\n    if (isInternalAccount(this.#account)) {\n      this.#account.metadata.snap = {\n        id: snapId,\n      };\n    }\n    return this;\n  }\n\n  get() {\n    return this.#account;\n  }\n}\n\nexport const MOCK_WALLET_1_ENTROPY_SOURCE = MOCK_ENTROPY_SOURCE_1;\n\nexport const MOCK_WALLET_1_EVM_ACCOUNT = MockAccountBuilder.from(\n  MOCK_HD_ACCOUNT_1,\n)\n  .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n  .withGroupIndex(0)\n  .get();\nexport const MOCK_WALLET_1_SOL_ACCOUNT = MockAccountBuilder.from(\n  MOCK_SOL_ACCOUNT_1,\n)\n  .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n  .withGroupIndex(0)\n  .get();\nexport const MOCK_WALLET_1_BTC_P2WPKH_ACCOUNT = MockAccountBuilder.from(\n  MOCK_BTC_P2WPKH_ACCOUNT_1,\n)\n  .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n  .withGroupIndex(0)\n  .get();\nexport const MOCK_WALLET_1_BTC_P2TR_ACCOUNT = MockAccountBuilder.from(\n  MOCK_BTC_P2TR_ACCOUNT_1,\n)\n  .withEntropySource(MOCK_WALLET_1_ENTROPY_SOURCE)\n  .withGroupIndex(0)\n  .get();\n\nexport function mockAsInternalAccount(\n  account: KeyringAccount,\n): InternalAccount {\n  return {\n    ...account,\n    metadata: {\n      name: 'Mocked Account',\n      importTime: Date.now(),\n      keyring: {\n        type: 'mock-keyring-type',\n      },\n    },\n  };\n}\n"]}