{"version":3,"file":"accounts.cjs","sourceRoot":"","sources":["../../src/tests/accounts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,uDAQ+B;AAC/B,qEAA4D;AAG5D,8EAAkE;AAElE,MAAM,eAAe,GAAG;IACtB,uBAAS,CAAC,YAAY;IACtB,uBAAS,CAAC,IAAI;IACd,uBAAS,CAAC,eAAe;IACzB,uBAAS,CAAC,eAAe;IACzB,uBAAS,CAAC,eAAe;IACzB,uBAAS,CAAC,eAAe;CACjB,CAAC;AAEX,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAS,CAAC,CAAC;AAEhC,QAAA,WAAW,GAAG;IACzB,EAAE,EAAE,sBAAsB;IAC1B,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE;QACR,YAAY,EAAE,aAAa;KAC5B;CACF,CAAC;AAEW,QAAA,WAAW,GAAG;IACzB,EAAE,EAAE,sBAAsB;IAC1B,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE;QACR,YAAY,EAAE,aAAa;KAC5B;CACF,CAAC;AAEW,QAAA,qBAAqB,GAAG,mBAAmB,CAAC;AAC5C,QAAA,qBAAqB,GAAG,mBAAmB,CAAC;AAE5C,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,iCAAY,CAAC,EAAE;IACrB,QAAQ,EAAE,EAAE,EAAE,EAAE,6BAAqB,EAAE,IAAI,EAAE,cAAc,EAAE;IAC7D,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC;AAEW,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,iCAAY,CAAC,EAAE;IACrB,QAAQ,EAAE,EAAE,EAAE,EAAE,6BAAqB,EAAE,IAAI,EAAE,cAAc,EAAE;IAC7D,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC;AAEW,QAAA,iBAAiB,GAAoB;IAChD,EAAE,EAAE,WAAW;IACf,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,6CAA+B,CAAC,QAAQ;YAC9C,EAAE,EAAE,yBAAiB,CAAC,QAAQ,CAAC,EAAE;YACjC,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,EAAE;SACnB;KACF;IACD,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;IAC7B,IAAI,EAAE,4BAAc,CAAC,GAAG;IACxB,MAAM,EAAE,CAAC,sBAAQ,CAAC,GAAG,CAAC;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,iCAAY,CAAC,EAAE,EAAE;QAClC,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;QACf,iBAAiB,EAAE,CAAC;KACrB;CACF,CAAC;AAEW,QAAA,iBAAiB,GAAoB;IAChD,EAAE,EAAE,WAAW;IACf,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,6CAA+B,CAAC,QAAQ;YAC9C,EAAE,EAAE,yBAAiB,CAAC,QAAQ,CAAC,EAAE;YACjC,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,EAAE;SACnB;KACF;IACD,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;IAC7B,IAAI,EAAE,4BAAc,CAAC,GAAG;IACxB,MAAM,EAAE,CAAC,sBAAQ,CAAC,GAAG,CAAC;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,iCAAY,CAAC,EAAE,EAAE;QAClC,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;QACf,iBAAiB,EAAE,CAAC;KACrB;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAoB;IAClD,EAAE,EAAE,gBAAgB;IACpB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,6CAA+B,CAAC,QAAQ;YAC9C,8CAA8C;YAC9C,EAAE,EAAE,yBAAiB,CAAC,QAAQ,CAAC,EAAE;YACjC,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,EAAE;SACnB;KACF;IACD,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,4BAAc,CAAC,WAAW;IAChC,MAAM,EAAE,CAAC,sBAAQ,CAAC,OAAO,CAAC;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,EAAE,IAAI,EAAE,iCAAY,CAAC,IAAI,EAAE;QACpC,IAAI,EAAE,mBAAW;QACjB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;KAChB;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAoB;IAClD,EAAE,EAAE,gBAAgB;IACpB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;IAC7B,IAAI,EAAE,4BAAc,CAAC,GAAG;IACxB,MAAM,EAAE,CAAC,sBAAQ,CAAC,GAAG,CAAC;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,EAAE,IAAI,EAAE,iCAAY,CAAC,IAAI,EAAE;QACpC,IAAI,EAAE,mBAAW;QACjB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;KAChB;CACF,CAAC;AAEW,QAAA,uBAAuB,GAAoB;IACtD,EAAE,EAAE,oBAAoB;IACxB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;IAC7B,IAAI,EAAE,4BAAc,CAAC,GAAG;IACxB,MAAM,EAAE,CAAC,sBAAQ,CAAC,GAAG,CAAC;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,EAAE,IAAI,EAAE,iCAAY,CAAC,MAAM,EAAE;QACtC,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;KAChB;CACF,CAAC;AAEF,MAAa,kBAAkB;IAG7B,YAAY,OAAwB;QAF3B,8CAA0B;QAGjC,mDAAmD;QACnD,uBAAA,IAAI,+BAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAA,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAwB;QAClC,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,aAA8B;QAC9C,IAAI,IAAA,oCAAc,EAAC,uBAAA,IAAI,mCAAS,CAAC,EAAE;YACjC,uBAAA,IAAI,mCAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAC;SAClD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,IAAI,IAAA,oCAAc,EAAC,uBAAA,IAAI,mCAAS,CAAC,EAAE;YACjC,uBAAA,IAAI,mCAAS,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;SACvD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG;QACD,OAAO,uBAAA,IAAI,mCAAS,CAAC;IACvB,CAAC;CACF;AA7BD,gDA6BC","sourcesContent":["import type { EntropySourceId } from '@metamask/keyring-api';\nimport {\n  EthAccountType,\n  EthMethod,\n  EthScope,\n  KeyringAccountEntropyTypeOption,\n  SolAccountType,\n  SolMethod,\n  SolScope,\n} from '@metamask/keyring-api';\nimport { KeyringTypes } from '@metamask/keyring-controller';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\n\nimport { isBip44Account } from '../providers/BaseAccountProvider';\n\nconst 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_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\nexport const MOCK_HD_ACCOUNT_1: 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: 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_SNAP_ACCOUNT_1: 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],\n  metadata: {\n    name: 'Snap Account 1',\n    keyring: { type: KeyringTypes.snap },\n    snap: MOCK_SNAP_1,\n    importTime: 0,\n    lastSelected: 0,\n  },\n};\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_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 class MockAccountBuilder {\n  readonly #account: InternalAccount;\n\n  constructor(account: InternalAccount) {\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: InternalAccount): MockAccountBuilder {\n    return new MockAccountBuilder(account);\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  get() {\n    return this.#account;\n  }\n}\n"]}