@metamask-previews/assets-controller 4.0.0-preview-212d43f → 4.0.0-preview-3f6f27f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +3 -5
  2. package/dist/AssetsController.cjs +42 -23
  3. package/dist/AssetsController.cjs.map +1 -1
  4. package/dist/AssetsController.d.cts +4 -2
  5. package/dist/AssetsController.d.cts.map +1 -1
  6. package/dist/AssetsController.d.mts +4 -2
  7. package/dist/AssetsController.d.mts.map +1 -1
  8. package/dist/AssetsController.mjs +42 -23
  9. package/dist/AssetsController.mjs.map +1 -1
  10. package/dist/data-sources/RpcDataSource.cjs +63 -8
  11. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  12. package/dist/data-sources/RpcDataSource.d.cts +2 -1
  13. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  14. package/dist/data-sources/RpcDataSource.d.mts +2 -1
  15. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  16. package/dist/data-sources/RpcDataSource.mjs +65 -10
  17. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  18. package/dist/data-sources/TokenDataSource.cjs +1 -1
  19. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  20. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  21. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  22. package/dist/data-sources/TokenDataSource.mjs +1 -1
  23. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  24. package/dist/data-sources/evm-rpc-services/clients/index.cjs +1 -3
  25. package/dist/data-sources/evm-rpc-services/clients/index.cjs.map +1 -1
  26. package/dist/data-sources/evm-rpc-services/clients/index.d.cts +0 -1
  27. package/dist/data-sources/evm-rpc-services/clients/index.d.cts.map +1 -1
  28. package/dist/data-sources/evm-rpc-services/clients/index.d.mts +0 -1
  29. package/dist/data-sources/evm-rpc-services/clients/index.d.mts.map +1 -1
  30. package/dist/data-sources/evm-rpc-services/clients/index.mjs +0 -1
  31. package/dist/data-sources/evm-rpc-services/clients/index.mjs.map +1 -1
  32. package/dist/data-sources/evm-rpc-services/index.cjs +1 -2
  33. package/dist/data-sources/evm-rpc-services/index.cjs.map +1 -1
  34. package/dist/data-sources/evm-rpc-services/index.d.cts +1 -1
  35. package/dist/data-sources/evm-rpc-services/index.d.cts.map +1 -1
  36. package/dist/data-sources/evm-rpc-services/index.d.mts +1 -1
  37. package/dist/data-sources/evm-rpc-services/index.d.mts.map +1 -1
  38. package/dist/data-sources/evm-rpc-services/index.mjs +1 -1
  39. package/dist/data-sources/evm-rpc-services/index.mjs.map +1 -1
  40. package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs +48 -27
  41. package/dist/data-sources/evm-rpc-services/services/TokenDetector.cjs.map +1 -1
  42. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.cts +9 -12
  43. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.cts.map +1 -1
  44. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts +9 -12
  45. package/dist/data-sources/evm-rpc-services/services/TokenDetector.d.mts.map +1 -1
  46. package/dist/data-sources/evm-rpc-services/services/TokenDetector.mjs +48 -27
  47. package/dist/data-sources/evm-rpc-services/services/TokenDetector.mjs.map +1 -1
  48. package/dist/data-sources/evm-rpc-services/services/index.cjs.map +1 -1
  49. package/dist/data-sources/evm-rpc-services/services/index.d.cts +1 -1
  50. package/dist/data-sources/evm-rpc-services/services/index.d.cts.map +1 -1
  51. package/dist/data-sources/evm-rpc-services/services/index.d.mts +1 -1
  52. package/dist/data-sources/evm-rpc-services/services/index.d.mts.map +1 -1
  53. package/dist/data-sources/evm-rpc-services/services/index.mjs.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs +0 -67
  56. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs.map +0 -1
  57. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts +0 -23
  58. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts.map +0 -1
  59. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts +0 -23
  60. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts.map +0 -1
  61. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs +0 -63
  62. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs.map +0 -1
@@ -1,63 +0,0 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _TokensApiClient_fetch;
13
- const TOKENS_API_BASE_URL = 'https://tokens.api.cx.metamask.io/v3/chains';
14
- /** How many tokens to request from the API per chain. */
15
- const TOKENS_API_FIRST = 25;
16
- /**
17
- * Client for the MetaMask Tokens API.
18
- * Fetches the top ERC-20 tokens for a given chain (occurrenceFloor=3, first=25).
19
- */
20
- export class TokensApiClient {
21
- constructor(config) {
22
- _TokensApiClient_fetch.set(this, void 0);
23
- __classPrivateFieldSet(this, _TokensApiClient_fetch, config?.fetch ?? globalThis.fetch.bind(globalThis), "f");
24
- }
25
- /**
26
- * Fetch the list of top ERC-20 tokens for a chain from the Tokens API.
27
- * Only `erc20` assets are returned; native (`slip44`) entries are skipped.
28
- *
29
- * @param hexChainId - Chain ID in hex format (e.g. `'0x1'` for Ethereum mainnet).
30
- * @returns Array of token list entries with address and metadata.
31
- * @throws If the API responds with a non-2xx status.
32
- */
33
- async fetchTokenList(hexChainId) {
34
- const chainIdDecimal = parseInt(hexChainId, 16);
35
- const caipChainId = `eip155:${chainIdDecimal}`;
36
- const url = `${TOKENS_API_BASE_URL}/${caipChainId}/assets` +
37
- `?first=${TOKENS_API_FIRST}` +
38
- `&includeOccurrences=true` +
39
- `&includeMetadata=true` +
40
- `&occurrenceFloor=3` +
41
- `&includeRwaData=true` +
42
- `&excludeDescription=true`;
43
- const response = await __classPrivateFieldGet(this, _TokensApiClient_fetch, "f").call(this, url);
44
- if (!response.ok) {
45
- throw new Error(`Tokens API responded with ${response.status} for ${caipChainId}`);
46
- }
47
- const { data } = (await response.json());
48
- return data
49
- .filter((item) => item.assetId.includes('/erc20:'))
50
- .map((item) => {
51
- const address = item.assetId.split('/erc20:')[1];
52
- return {
53
- address,
54
- symbol: item.symbol ?? '',
55
- name: item.name ?? '',
56
- decimals: item.decimals ?? 18,
57
- occurrences: item.occurrences,
58
- };
59
- });
60
- }
61
- }
62
- _TokensApiClient_fetch = new WeakMap();
63
- //# sourceMappingURL=TokensApiClient.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokensApiClient.mjs","sourceRoot":"","sources":["../../../../src/data-sources/evm-rpc-services/clients/TokensApiClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAM,mBAAmB,GAAG,6CAA6C,CAAC;AAE1E,yDAAyD;AACzD,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAgB5B;;;GAGG;AACH,MAAM,OAAO,eAAe;IAG1B,YAAY,MAA8B;QAFjC,yCAAgC;QAGvC,uBAAA,IAAI,0BAAU,MAAM,EAAE,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAA,CAAC;IACnE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,UAAmB;QACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,UAAU,cAAc,EAAE,CAAC;QAE/C,MAAM,GAAG,GACP,GAAG,mBAAmB,IAAI,WAAW,SAAS;YAC9C,UAAU,gBAAgB,EAAE;YAC5B,0BAA0B;YAC1B,uBAAuB;YACvB,oBAAoB;YACpB,sBAAsB;YACtB,0BAA0B,CAAC;QAE7B,MAAM,QAAQ,GAAG,MAAM,uBAAA,IAAI,8BAAO,MAAX,IAAI,EAAQ,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,CAAC,MAAM,QAAQ,WAAW,EAAE,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;QAErE,OAAO,IAAI;aACR,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAClD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;CACF","sourcesContent":["import type { ChainId, TokenListEntry } from '../types';\n\nconst TOKENS_API_BASE_URL = 'https://tokens.api.cx.metamask.io/v3/chains';\n\n/** How many tokens to request from the API per chain. */\nconst TOKENS_API_FIRST = 25;\n\n/** Shape of a single item in the Tokens API response `data` array. */\ntype ApiTokenData = {\n assetId: string;\n symbol?: string;\n name?: string;\n decimals?: number;\n occurrences?: number;\n};\n\nexport type TokensApiClientConfig = {\n /** Fetch function (defaults to globalThis.fetch). */\n fetch?: typeof globalThis.fetch;\n};\n\n/**\n * Client for the MetaMask Tokens API.\n * Fetches the top ERC-20 tokens for a given chain (occurrenceFloor=3, first=25).\n */\nexport class TokensApiClient {\n readonly #fetch: typeof globalThis.fetch;\n\n constructor(config?: TokensApiClientConfig) {\n this.#fetch = config?.fetch ?? globalThis.fetch.bind(globalThis);\n }\n\n /**\n * Fetch the list of top ERC-20 tokens for a chain from the Tokens API.\n * Only `erc20` assets are returned; native (`slip44`) entries are skipped.\n *\n * @param hexChainId - Chain ID in hex format (e.g. `'0x1'` for Ethereum mainnet).\n * @returns Array of token list entries with address and metadata.\n * @throws If the API responds with a non-2xx status.\n */\n async fetchTokenList(hexChainId: ChainId): Promise<TokenListEntry[]> {\n const chainIdDecimal = parseInt(hexChainId, 16);\n const caipChainId = `eip155:${chainIdDecimal}`;\n\n const url =\n `${TOKENS_API_BASE_URL}/${caipChainId}/assets` +\n `?first=${TOKENS_API_FIRST}` +\n `&includeOccurrences=true` +\n `&includeMetadata=true` +\n `&occurrenceFloor=3` +\n `&includeRwaData=true` +\n `&excludeDescription=true`;\n\n const response = await this.#fetch(url);\n if (!response.ok) {\n throw new Error(\n `Tokens API responded with ${response.status} for ${caipChainId}`,\n );\n }\n\n const { data } = (await response.json()) as { data: ApiTokenData[] };\n\n return data\n .filter((item) => item.assetId.includes('/erc20:'))\n .map((item) => {\n const address = item.assetId.split('/erc20:')[1];\n return {\n address,\n symbol: item.symbol ?? '',\n name: item.name ?? '',\n decimals: item.decimals ?? 18,\n occurrences: item.occurrences,\n };\n });\n }\n}\n"]}