{"version":3,"file":"accounts.mjs","sourceRoot":"","sources":["../../src/internals/accounts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB;AACrD,OAAO,EAAE,UAAU,EAAE,eAAe;AAEpC;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B;IAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC;aAC/B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;aACpB,MAAM,EAAE;aACR,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEnB,+BAA+B;QAC/B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,8BAA8B;QAE9B,OAAO,IAAI,CAAC,CAAC;QAEb,OAAO,CACL,KAAK;aACF,QAAQ,CAAC,KAAK,CAAC;aACf,KAAK,CAAC,UAAU,CAAC;YAClB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CACpB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC","sourcesContent":["import type { CaipAssetType, CaipChainId } from '@metamask/utils';\nimport { parseCaipAssetType } from '@metamask/utils';\nimport { createHash } from 'crypto';\n\n/**\n * Get a function that generates pseudo-random UUIDs. This function uses a\n * counter to generate a unique UUID each time it is called.\n *\n * This is likely not suitable for production use, as it does not guarantee\n * true randomness and is not cryptographically secure. It is intended for\n * testing and mock purposes only.\n *\n * @returns A function that generates a pseudo-random UUID.\n */\nexport function getPseudoRandomUuidGenerator() {\n  let counter = 0;\n\n  return () => {\n    const bytes = createHash('sha256')\n      .update(`${counter}`)\n      .digest()\n      .subarray(0, 16);\n\n    /* eslint-disable no-bitwise */\n    bytes[6] = (bytes[6] & 0x0f) | 0x40;\n    bytes[8] = (bytes[8] & 0x3f) | 0x80;\n    /* eslint-enable no-bitwise */\n\n    counter += 1;\n\n    return (\n      bytes\n        .toString('hex')\n        .match(/.{1,8}/gu)\n        ?.join('-') ?? ''\n    );\n  };\n}\n\n/**\n * Get unique scopes from a list of assets. This assumes the assets are in\n * CAIP format, where the chain ID is the first part of the asset type.\n *\n * @param assets - An array of CAIP asset types.\n * @returns An array of unique CAIP chain IDs derived from the assets.\n */\nexport function getScopesFromAssets(\n  assets: CaipAssetType[] = [],\n): CaipChainId[] {\n  const scopes = assets.map((asset) => {\n    const { chainId } = parseCaipAssetType(asset);\n    return chainId;\n  });\n\n  return Array.from(new Set(scopes));\n}\n"]}