UNPKG

@metamask/snaps-jest

Version:

A Jest preset for end-to-end testing MetaMask Snaps, including a Jest environment, and a set of Jest matchers

1 lines 2.71 kB
{"version":3,"file":"accounts.cjs","sourceRoot":"","sources":["../../src/internals/accounts.ts"],"names":[],"mappings":";;;AACA,2CAAqD;AACrD,mCAAoC;AAEpC;;;;;;;;;GASG;AACH,SAAgB,4BAA4B;IAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,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;AAvBD,oEAuBC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,SAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,0BAAkB,EAAC,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;AATD,kDASC","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"]}