@metamask-previews/assets-controller 0.0.0-preview-fa81dffb → 0.0.0-preview-ab102d86

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 (122) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/data-sources/rpc-datasource/clients/MulticallClient.cjs +638 -0
  3. package/dist/data-sources/rpc-datasource/clients/MulticallClient.cjs.map +1 -0
  4. package/dist/data-sources/rpc-datasource/clients/MulticallClient.d.cts +47 -0
  5. package/dist/data-sources/rpc-datasource/clients/MulticallClient.d.cts.map +1 -0
  6. package/dist/data-sources/rpc-datasource/clients/MulticallClient.d.mts +47 -0
  7. package/dist/data-sources/rpc-datasource/clients/MulticallClient.d.mts.map +1 -0
  8. package/dist/data-sources/rpc-datasource/clients/MulticallClient.mjs +632 -0
  9. package/dist/data-sources/rpc-datasource/clients/MulticallClient.mjs.map +1 -0
  10. package/dist/data-sources/rpc-datasource/clients/index.cjs +8 -0
  11. package/dist/data-sources/rpc-datasource/clients/index.cjs.map +1 -0
  12. package/dist/data-sources/rpc-datasource/clients/index.d.cts +3 -0
  13. package/dist/data-sources/rpc-datasource/clients/index.d.cts.map +1 -0
  14. package/dist/data-sources/rpc-datasource/clients/index.d.mts +3 -0
  15. package/dist/data-sources/rpc-datasource/clients/index.d.mts.map +1 -0
  16. package/dist/data-sources/rpc-datasource/clients/index.mjs +2 -0
  17. package/dist/data-sources/rpc-datasource/clients/index.mjs.map +1 -0
  18. package/dist/data-sources/rpc-datasource/index.cjs +9 -0
  19. package/dist/data-sources/rpc-datasource/index.cjs.map +1 -0
  20. package/dist/data-sources/rpc-datasource/index.d.cts +4 -0
  21. package/dist/data-sources/rpc-datasource/index.d.cts.map +1 -0
  22. package/dist/data-sources/rpc-datasource/index.d.mts +4 -0
  23. package/dist/data-sources/rpc-datasource/index.d.mts.map +1 -0
  24. package/dist/data-sources/rpc-datasource/index.mjs +3 -0
  25. package/dist/data-sources/rpc-datasource/index.mjs.map +1 -0
  26. package/dist/data-sources/rpc-datasource/services/BalanceFetcher.cjs +167 -0
  27. package/dist/data-sources/rpc-datasource/services/BalanceFetcher.cjs.map +1 -0
  28. package/dist/data-sources/rpc-datasource/services/BalanceFetcher.d.cts +16 -0
  29. package/dist/data-sources/rpc-datasource/services/BalanceFetcher.d.cts.map +1 -0
  30. package/dist/data-sources/rpc-datasource/services/BalanceFetcher.d.mts +16 -0
  31. package/dist/data-sources/rpc-datasource/services/BalanceFetcher.d.mts.map +1 -0
  32. package/dist/data-sources/rpc-datasource/services/BalanceFetcher.mjs +163 -0
  33. package/dist/data-sources/rpc-datasource/services/BalanceFetcher.mjs.map +1 -0
  34. package/dist/data-sources/rpc-datasource/services/TokenDetector.cjs +173 -0
  35. package/dist/data-sources/rpc-datasource/services/TokenDetector.cjs.map +1 -0
  36. package/dist/data-sources/rpc-datasource/services/TokenDetector.d.cts +14 -0
  37. package/dist/data-sources/rpc-datasource/services/TokenDetector.d.cts.map +1 -0
  38. package/dist/data-sources/rpc-datasource/services/TokenDetector.d.mts +14 -0
  39. package/dist/data-sources/rpc-datasource/services/TokenDetector.d.mts.map +1 -0
  40. package/dist/data-sources/rpc-datasource/services/TokenDetector.mjs +169 -0
  41. package/dist/data-sources/rpc-datasource/services/TokenDetector.mjs.map +1 -0
  42. package/dist/data-sources/rpc-datasource/services/index.cjs +8 -0
  43. package/dist/data-sources/rpc-datasource/services/index.cjs.map +1 -0
  44. package/dist/data-sources/rpc-datasource/services/index.d.cts +3 -0
  45. package/dist/data-sources/rpc-datasource/services/index.d.cts.map +1 -0
  46. package/dist/data-sources/rpc-datasource/services/index.d.mts +3 -0
  47. package/dist/data-sources/rpc-datasource/services/index.d.mts.map +1 -0
  48. package/dist/data-sources/rpc-datasource/services/index.mjs +3 -0
  49. package/dist/data-sources/rpc-datasource/services/index.mjs.map +1 -0
  50. package/dist/data-sources/rpc-datasource/types/assets.cjs +3 -0
  51. package/dist/data-sources/rpc-datasource/types/assets.cjs.map +1 -0
  52. package/dist/data-sources/rpc-datasource/types/assets.d.cts +53 -0
  53. package/dist/data-sources/rpc-datasource/types/assets.d.cts.map +1 -0
  54. package/dist/data-sources/rpc-datasource/types/assets.d.mts +53 -0
  55. package/dist/data-sources/rpc-datasource/types/assets.d.mts.map +1 -0
  56. package/dist/data-sources/rpc-datasource/types/assets.mjs +2 -0
  57. package/dist/data-sources/rpc-datasource/types/assets.mjs.map +1 -0
  58. package/dist/data-sources/rpc-datasource/types/config.cjs +3 -0
  59. package/dist/data-sources/rpc-datasource/types/config.cjs.map +1 -0
  60. package/dist/data-sources/rpc-datasource/types/config.d.cts +18 -0
  61. package/dist/data-sources/rpc-datasource/types/config.d.cts.map +1 -0
  62. package/dist/data-sources/rpc-datasource/types/config.d.mts +18 -0
  63. package/dist/data-sources/rpc-datasource/types/config.d.mts.map +1 -0
  64. package/dist/data-sources/rpc-datasource/types/config.mjs +2 -0
  65. package/dist/data-sources/rpc-datasource/types/config.mjs.map +1 -0
  66. package/dist/data-sources/rpc-datasource/types/core.cjs +3 -0
  67. package/dist/data-sources/rpc-datasource/types/core.cjs.map +1 -0
  68. package/dist/data-sources/rpc-datasource/types/core.d.cts +19 -0
  69. package/dist/data-sources/rpc-datasource/types/core.d.cts.map +1 -0
  70. package/dist/data-sources/rpc-datasource/types/core.d.mts +19 -0
  71. package/dist/data-sources/rpc-datasource/types/core.d.mts.map +1 -0
  72. package/dist/data-sources/rpc-datasource/types/core.mjs +2 -0
  73. package/dist/data-sources/rpc-datasource/types/core.mjs.map +1 -0
  74. package/dist/data-sources/rpc-datasource/types/index.cjs +3 -0
  75. package/dist/data-sources/rpc-datasource/types/index.cjs.map +1 -0
  76. package/dist/data-sources/rpc-datasource/types/index.d.cts +7 -0
  77. package/dist/data-sources/rpc-datasource/types/index.d.cts.map +1 -0
  78. package/dist/data-sources/rpc-datasource/types/index.d.mts +7 -0
  79. package/dist/data-sources/rpc-datasource/types/index.d.mts.map +1 -0
  80. package/dist/data-sources/rpc-datasource/types/index.mjs +2 -0
  81. package/dist/data-sources/rpc-datasource/types/index.mjs.map +1 -0
  82. package/dist/data-sources/rpc-datasource/types/multicall.cjs +3 -0
  83. package/dist/data-sources/rpc-datasource/types/multicall.cjs.map +1 -0
  84. package/dist/data-sources/rpc-datasource/types/multicall.d.cts +24 -0
  85. package/dist/data-sources/rpc-datasource/types/multicall.d.cts.map +1 -0
  86. package/dist/data-sources/rpc-datasource/types/multicall.d.mts +24 -0
  87. package/dist/data-sources/rpc-datasource/types/multicall.d.mts.map +1 -0
  88. package/dist/data-sources/rpc-datasource/types/multicall.mjs +2 -0
  89. package/dist/data-sources/rpc-datasource/types/multicall.mjs.map +1 -0
  90. package/dist/data-sources/rpc-datasource/types/services.cjs +3 -0
  91. package/dist/data-sources/rpc-datasource/types/services.cjs.map +1 -0
  92. package/dist/data-sources/rpc-datasource/types/services.d.cts +74 -0
  93. package/dist/data-sources/rpc-datasource/types/services.d.cts.map +1 -0
  94. package/dist/data-sources/rpc-datasource/types/services.d.mts +74 -0
  95. package/dist/data-sources/rpc-datasource/types/services.d.mts.map +1 -0
  96. package/dist/data-sources/rpc-datasource/types/services.mjs +2 -0
  97. package/dist/data-sources/rpc-datasource/types/services.mjs.map +1 -0
  98. package/dist/data-sources/rpc-datasource/types/state.cjs +3 -0
  99. package/dist/data-sources/rpc-datasource/types/state.cjs.map +1 -0
  100. package/dist/data-sources/rpc-datasource/types/state.d.cts +67 -0
  101. package/dist/data-sources/rpc-datasource/types/state.d.cts.map +1 -0
  102. package/dist/data-sources/rpc-datasource/types/state.d.mts +67 -0
  103. package/dist/data-sources/rpc-datasource/types/state.d.mts.map +1 -0
  104. package/dist/data-sources/rpc-datasource/types/state.mjs +2 -0
  105. package/dist/data-sources/rpc-datasource/types/state.mjs.map +1 -0
  106. package/dist/data-sources/rpc-datasource/utils/batch.cjs +45 -0
  107. package/dist/data-sources/rpc-datasource/utils/batch.cjs.map +1 -0
  108. package/dist/data-sources/rpc-datasource/utils/batch.d.cts +28 -0
  109. package/dist/data-sources/rpc-datasource/utils/batch.d.cts.map +1 -0
  110. package/dist/data-sources/rpc-datasource/utils/batch.d.mts +28 -0
  111. package/dist/data-sources/rpc-datasource/utils/batch.d.mts.map +1 -0
  112. package/dist/data-sources/rpc-datasource/utils/batch.mjs +40 -0
  113. package/dist/data-sources/rpc-datasource/utils/batch.mjs.map +1 -0
  114. package/dist/data-sources/rpc-datasource/utils/index.cjs +7 -0
  115. package/dist/data-sources/rpc-datasource/utils/index.cjs.map +1 -0
  116. package/dist/data-sources/rpc-datasource/utils/index.d.cts +2 -0
  117. package/dist/data-sources/rpc-datasource/utils/index.d.cts.map +1 -0
  118. package/dist/data-sources/rpc-datasource/utils/index.d.mts +2 -0
  119. package/dist/data-sources/rpc-datasource/utils/index.d.mts.map +1 -0
  120. package/dist/data-sources/rpc-datasource/utils/index.mjs +2 -0
  121. package/dist/data-sources/rpc-datasource/utils/index.mjs.map +1 -0
  122. package/package.json +3 -2
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reduceInBatchesSerially = exports.divideIntoBatches = void 0;
4
+ /**
5
+ * Divides an array into batches of specified size.
6
+ *
7
+ * @param values - Array of values to divide.
8
+ * @param options - Options containing batchSize.
9
+ * @param options.batchSize - The size of each batch.
10
+ * @returns Array of batches.
11
+ */
12
+ function divideIntoBatches(values, { batchSize }) {
13
+ if (batchSize <= 0) {
14
+ throw new Error('batchSize must be greater than 0');
15
+ }
16
+ const batches = [];
17
+ for (let i = 0; i < values.length; i += batchSize) {
18
+ batches.push(values.slice(i, i + batchSize));
19
+ }
20
+ return batches;
21
+ }
22
+ exports.divideIntoBatches = divideIntoBatches;
23
+ /**
24
+ * Reduces an array in serial batches, applying an async function to each batch.
25
+ *
26
+ * @param options - The options for batch reduction.
27
+ * @param options.values - Array of values to process.
28
+ * @param options.batchSize - Size of each batch.
29
+ * @param options.eachBatch - Async function to apply to each batch.
30
+ * @param options.initialResult - Initial result value.
31
+ * @returns The final reduced result.
32
+ */
33
+ async function reduceInBatchesSerially({ values, batchSize, eachBatch, initialResult, }) {
34
+ const batches = divideIntoBatches(values, { batchSize });
35
+ let workingResult = initialResult;
36
+ for (const [index, batch] of batches.entries()) {
37
+ workingResult = await eachBatch(workingResult, batch, index);
38
+ }
39
+ // There's no way around this — we have to assume that in the end, the result
40
+ // matches the intended type.
41
+ const finalResult = workingResult;
42
+ return finalResult;
43
+ }
44
+ exports.reduceInBatchesSerially = reduceInBatchesSerially;
45
+ //# sourceMappingURL=batch.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.cjs","sourceRoot":"","sources":["../../../../src/data-sources/rpc-datasource/utils/batch.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,MAAsB,EACtB,EAAE,SAAS,EAAyB;IAEpC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAbD,8CAaC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,uBAAuB,CAAgB,EAC3D,MAAM,EACN,SAAS,EACT,SAAS,EACT,aAAa,GAUd;IACC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,IAAI,aAAa,GAAG,aAAa,CAAC;IAClC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,aAAa,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,6EAA6E;IAC7E,6BAA6B;IAC7B,MAAM,WAAW,GAAG,aAAuB,CAAC;IAC5C,OAAO,WAAW,CAAC;AACrB,CAAC;AAxBD,0DAwBC","sourcesContent":["/**\n * Divides an array into batches of specified size.\n *\n * @param values - Array of values to divide.\n * @param options - Options containing batchSize.\n * @param options.batchSize - The size of each batch.\n * @returns Array of batches.\n */\nexport function divideIntoBatches<ArrayElement>(\n values: ArrayElement[],\n { batchSize }: { batchSize: number },\n): ArrayElement[][] {\n if (batchSize <= 0) {\n throw new Error('batchSize must be greater than 0');\n }\n\n const batches: ArrayElement[][] = [];\n for (let i = 0; i < values.length; i += batchSize) {\n batches.push(values.slice(i, i + batchSize));\n }\n return batches;\n}\n\n/**\n * Reduces an array in serial batches, applying an async function to each batch.\n *\n * @param options - The options for batch reduction.\n * @param options.values - Array of values to process.\n * @param options.batchSize - Size of each batch.\n * @param options.eachBatch - Async function to apply to each batch.\n * @param options.initialResult - Initial result value.\n * @returns The final reduced result.\n */\nexport async function reduceInBatchesSerially<Value, Result>({\n values,\n batchSize,\n eachBatch,\n initialResult,\n}: {\n values: Value[];\n batchSize: number;\n eachBatch: (\n workingResult: Partial<Result>,\n batch: Value[],\n index: number,\n ) => Partial<Result> | Promise<Partial<Result>>;\n initialResult: Partial<Result>;\n}): Promise<Result> {\n const batches = divideIntoBatches(values, { batchSize });\n let workingResult = initialResult;\n for (const [index, batch] of batches.entries()) {\n workingResult = await eachBatch(workingResult, batch, index);\n }\n // There's no way around this — we have to assume that in the end, the result\n // matches the intended type.\n const finalResult = workingResult as Result;\n return finalResult;\n}\n"]}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Divides an array into batches of specified size.
3
+ *
4
+ * @param values - Array of values to divide.
5
+ * @param options - Options containing batchSize.
6
+ * @param options.batchSize - The size of each batch.
7
+ * @returns Array of batches.
8
+ */
9
+ export declare function divideIntoBatches<ArrayElement>(values: ArrayElement[], { batchSize }: {
10
+ batchSize: number;
11
+ }): ArrayElement[][];
12
+ /**
13
+ * Reduces an array in serial batches, applying an async function to each batch.
14
+ *
15
+ * @param options - The options for batch reduction.
16
+ * @param options.values - Array of values to process.
17
+ * @param options.batchSize - Size of each batch.
18
+ * @param options.eachBatch - Async function to apply to each batch.
19
+ * @param options.initialResult - Initial result value.
20
+ * @returns The final reduced result.
21
+ */
22
+ export declare function reduceInBatchesSerially<Value, Result>({ values, batchSize, eachBatch, initialResult, }: {
23
+ values: Value[];
24
+ batchSize: number;
25
+ eachBatch: (workingResult: Partial<Result>, batch: Value[], index: number) => Partial<Result> | Promise<Partial<Result>>;
26
+ initialResult: Partial<Result>;
27
+ }): Promise<Result>;
28
+ //# sourceMappingURL=batch.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.cts","sourceRoot":"","sources":["../../../../src/data-sources/rpc-datasource/utils/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAC5C,MAAM,EAAE,YAAY,EAAE,EACtB,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACnC,YAAY,EAAE,EAAE,CAUlB;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,EAC3D,MAAM,EACN,SAAS,EACT,SAAS,EACT,aAAa,GACd,EAAE;IACD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CACT,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,KAAK,EAAE,EACd,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Divides an array into batches of specified size.
3
+ *
4
+ * @param values - Array of values to divide.
5
+ * @param options - Options containing batchSize.
6
+ * @param options.batchSize - The size of each batch.
7
+ * @returns Array of batches.
8
+ */
9
+ export declare function divideIntoBatches<ArrayElement>(values: ArrayElement[], { batchSize }: {
10
+ batchSize: number;
11
+ }): ArrayElement[][];
12
+ /**
13
+ * Reduces an array in serial batches, applying an async function to each batch.
14
+ *
15
+ * @param options - The options for batch reduction.
16
+ * @param options.values - Array of values to process.
17
+ * @param options.batchSize - Size of each batch.
18
+ * @param options.eachBatch - Async function to apply to each batch.
19
+ * @param options.initialResult - Initial result value.
20
+ * @returns The final reduced result.
21
+ */
22
+ export declare function reduceInBatchesSerially<Value, Result>({ values, batchSize, eachBatch, initialResult, }: {
23
+ values: Value[];
24
+ batchSize: number;
25
+ eachBatch: (workingResult: Partial<Result>, batch: Value[], index: number) => Partial<Result> | Promise<Partial<Result>>;
26
+ initialResult: Partial<Result>;
27
+ }): Promise<Result>;
28
+ //# sourceMappingURL=batch.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.mts","sourceRoot":"","sources":["../../../../src/data-sources/rpc-datasource/utils/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAC5C,MAAM,EAAE,YAAY,EAAE,EACtB,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACnC,YAAY,EAAE,EAAE,CAUlB;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,EAC3D,MAAM,EACN,SAAS,EACT,SAAS,EACT,aAAa,GACd,EAAE;IACD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CACT,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,KAAK,EAAE,EACd,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Divides an array into batches of specified size.
3
+ *
4
+ * @param values - Array of values to divide.
5
+ * @param options - Options containing batchSize.
6
+ * @param options.batchSize - The size of each batch.
7
+ * @returns Array of batches.
8
+ */
9
+ export function divideIntoBatches(values, { batchSize }) {
10
+ if (batchSize <= 0) {
11
+ throw new Error('batchSize must be greater than 0');
12
+ }
13
+ const batches = [];
14
+ for (let i = 0; i < values.length; i += batchSize) {
15
+ batches.push(values.slice(i, i + batchSize));
16
+ }
17
+ return batches;
18
+ }
19
+ /**
20
+ * Reduces an array in serial batches, applying an async function to each batch.
21
+ *
22
+ * @param options - The options for batch reduction.
23
+ * @param options.values - Array of values to process.
24
+ * @param options.batchSize - Size of each batch.
25
+ * @param options.eachBatch - Async function to apply to each batch.
26
+ * @param options.initialResult - Initial result value.
27
+ * @returns The final reduced result.
28
+ */
29
+ export async function reduceInBatchesSerially({ values, batchSize, eachBatch, initialResult, }) {
30
+ const batches = divideIntoBatches(values, { batchSize });
31
+ let workingResult = initialResult;
32
+ for (const [index, batch] of batches.entries()) {
33
+ workingResult = await eachBatch(workingResult, batch, index);
34
+ }
35
+ // There's no way around this — we have to assume that in the end, the result
36
+ // matches the intended type.
37
+ const finalResult = workingResult;
38
+ return finalResult;
39
+ }
40
+ //# sourceMappingURL=batch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.mjs","sourceRoot":"","sources":["../../../../src/data-sources/rpc-datasource/utils/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAsB,EACtB,EAAE,SAAS,EAAyB;IAEpC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAgB,EAC3D,MAAM,EACN,SAAS,EACT,SAAS,EACT,aAAa,GAUd;IACC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,IAAI,aAAa,GAAG,aAAa,CAAC;IAClC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,aAAa,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,6EAA6E;IAC7E,6BAA6B;IAC7B,MAAM,WAAW,GAAG,aAAuB,CAAC;IAC5C,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["/**\n * Divides an array into batches of specified size.\n *\n * @param values - Array of values to divide.\n * @param options - Options containing batchSize.\n * @param options.batchSize - The size of each batch.\n * @returns Array of batches.\n */\nexport function divideIntoBatches<ArrayElement>(\n values: ArrayElement[],\n { batchSize }: { batchSize: number },\n): ArrayElement[][] {\n if (batchSize <= 0) {\n throw new Error('batchSize must be greater than 0');\n }\n\n const batches: ArrayElement[][] = [];\n for (let i = 0; i < values.length; i += batchSize) {\n batches.push(values.slice(i, i + batchSize));\n }\n return batches;\n}\n\n/**\n * Reduces an array in serial batches, applying an async function to each batch.\n *\n * @param options - The options for batch reduction.\n * @param options.values - Array of values to process.\n * @param options.batchSize - Size of each batch.\n * @param options.eachBatch - Async function to apply to each batch.\n * @param options.initialResult - Initial result value.\n * @returns The final reduced result.\n */\nexport async function reduceInBatchesSerially<Value, Result>({\n values,\n batchSize,\n eachBatch,\n initialResult,\n}: {\n values: Value[];\n batchSize: number;\n eachBatch: (\n workingResult: Partial<Result>,\n batch: Value[],\n index: number,\n ) => Partial<Result> | Promise<Partial<Result>>;\n initialResult: Partial<Result>;\n}): Promise<Result> {\n const batches = divideIntoBatches(values, { batchSize });\n let workingResult = initialResult;\n for (const [index, batch] of batches.entries()) {\n workingResult = await eachBatch(workingResult, batch, index);\n }\n // There's no way around this — we have to assume that in the end, the result\n // matches the intended type.\n const finalResult = workingResult as Result;\n return finalResult;\n}\n"]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reduceInBatchesSerially = exports.divideIntoBatches = void 0;
4
+ var batch_1 = require("./batch.cjs");
5
+ Object.defineProperty(exports, "divideIntoBatches", { enumerable: true, get: function () { return batch_1.divideIntoBatches; } });
6
+ Object.defineProperty(exports, "reduceInBatchesSerially", { enumerable: true, get: function () { return batch_1.reduceInBatchesSerially; } });
7
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../../src/data-sources/rpc-datasource/utils/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqE;AAA5D,0GAAA,iBAAiB,OAAA;AAAE,gHAAA,uBAAuB,OAAA","sourcesContent":["export { divideIntoBatches, reduceInBatchesSerially } from './batch';\n"]}
@@ -0,0 +1,2 @@
1
+ export { divideIntoBatches, reduceInBatchesSerially } from "./batch.cjs";
2
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../../src/data-sources/rpc-datasource/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAgB"}
@@ -0,0 +1,2 @@
1
+ export { divideIntoBatches, reduceInBatchesSerially } from "./batch.mjs";
2
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/data-sources/rpc-datasource/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAgB"}
@@ -0,0 +1,2 @@
1
+ export { divideIntoBatches, reduceInBatchesSerially } from "./batch.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../../src/data-sources/rpc-datasource/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAgB","sourcesContent":["export { divideIntoBatches, reduceInBatchesSerially } from './batch';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/assets-controller",
3
- "version": "0.0.0-preview-fa81dffb",
3
+ "version": "0.0.0-preview-ab102d86",
4
4
  "description": "Tracks assets balances/prices and handles token detection across all digital assets",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -49,7 +49,8 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@metamask/base-controller": "^9.0.0",
52
- "@metamask/messenger": "^0.3.0"
52
+ "@metamask/messenger": "^0.3.0",
53
+ "viem": "^2.44.4"
53
54
  },
54
55
  "devDependencies": {
55
56
  "@metamask/auto-changelog": "^3.4.4",