@metamask/assets-controller 11.0.0 → 11.1.0

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 (78) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/dist/AssetsController-method-action-types.cjs.map +1 -1
  3. package/dist/AssetsController-method-action-types.d.cts +23 -1
  4. package/dist/AssetsController-method-action-types.d.cts.map +1 -1
  5. package/dist/AssetsController-method-action-types.d.mts +23 -1
  6. package/dist/AssetsController-method-action-types.d.mts.map +1 -1
  7. package/dist/AssetsController-method-action-types.mjs.map +1 -1
  8. package/dist/AssetsController.cjs +99 -51
  9. package/dist/AssetsController.cjs.map +1 -1
  10. package/dist/AssetsController.d.cts +21 -1
  11. package/dist/AssetsController.d.cts.map +1 -1
  12. package/dist/AssetsController.d.mts +21 -1
  13. package/dist/AssetsController.d.mts.map +1 -1
  14. package/dist/AssetsController.mjs +99 -51
  15. package/dist/AssetsController.mjs.map +1 -1
  16. package/dist/data-sources/AccountsApiDataSource.cjs +95 -9
  17. package/dist/data-sources/AccountsApiDataSource.cjs.map +1 -1
  18. package/dist/data-sources/AccountsApiDataSource.d.cts +8 -1
  19. package/dist/data-sources/AccountsApiDataSource.d.cts.map +1 -1
  20. package/dist/data-sources/AccountsApiDataSource.d.mts +8 -1
  21. package/dist/data-sources/AccountsApiDataSource.d.mts.map +1 -1
  22. package/dist/data-sources/AccountsApiDataSource.mjs +95 -9
  23. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -1
  24. package/dist/data-sources/TokenDataSource.cjs +73 -12
  25. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  26. package/dist/data-sources/TokenDataSource.d.cts +4 -1
  27. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  28. package/dist/data-sources/TokenDataSource.d.mts +4 -1
  29. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  30. package/dist/data-sources/TokenDataSource.mjs +73 -12
  31. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  32. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs +86 -27
  33. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.cjs.map +1 -1
  34. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts +4 -3
  35. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.cts.map +1 -1
  36. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts +4 -3
  37. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.d.mts.map +1 -1
  38. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs +86 -27
  39. package/dist/data-sources/evm-rpc-services/clients/TokensApiClient.mjs.map +1 -1
  40. package/dist/index.cjs.map +1 -1
  41. package/dist/index.d.cts +2 -2
  42. package/dist/index.d.cts.map +1 -1
  43. package/dist/index.d.mts +2 -2
  44. package/dist/index.d.mts.map +1 -1
  45. package/dist/index.mjs.map +1 -1
  46. package/dist/utils/formatExchangeRatesForBridge.cjs +36 -7
  47. package/dist/utils/formatExchangeRatesForBridge.cjs.map +1 -1
  48. package/dist/utils/formatExchangeRatesForBridge.d.cts +20 -14
  49. package/dist/utils/formatExchangeRatesForBridge.d.cts.map +1 -1
  50. package/dist/utils/formatExchangeRatesForBridge.d.mts +20 -14
  51. package/dist/utils/formatExchangeRatesForBridge.d.mts.map +1 -1
  52. package/dist/utils/formatExchangeRatesForBridge.mjs +34 -5
  53. package/dist/utils/formatExchangeRatesForBridge.mjs.map +1 -1
  54. package/dist/utils/formatStateForTransactionPay.cjs +56 -9
  55. package/dist/utils/formatStateForTransactionPay.cjs.map +1 -1
  56. package/dist/utils/formatStateForTransactionPay.d.cts +23 -17
  57. package/dist/utils/formatStateForTransactionPay.d.cts.map +1 -1
  58. package/dist/utils/formatStateForTransactionPay.d.mts +23 -17
  59. package/dist/utils/formatStateForTransactionPay.d.mts.map +1 -1
  60. package/dist/utils/formatStateForTransactionPay.mjs +54 -7
  61. package/dist/utils/formatStateForTransactionPay.mjs.map +1 -1
  62. package/dist/utils/index.cjs +4 -1
  63. package/dist/utils/index.cjs.map +1 -1
  64. package/dist/utils/index.d.cts +5 -5
  65. package/dist/utils/index.d.cts.map +1 -1
  66. package/dist/utils/index.d.mts +5 -5
  67. package/dist/utils/index.d.mts.map +1 -1
  68. package/dist/utils/index.mjs +3 -3
  69. package/dist/utils/index.mjs.map +1 -1
  70. package/dist/utils/normalizeAssetId.cjs +17 -3
  71. package/dist/utils/normalizeAssetId.cjs.map +1 -1
  72. package/dist/utils/normalizeAssetId.d.cts +10 -1
  73. package/dist/utils/normalizeAssetId.d.cts.map +1 -1
  74. package/dist/utils/normalizeAssetId.d.mts +10 -1
  75. package/dist/utils/normalizeAssetId.d.mts.map +1 -1
  76. package/dist/utils/normalizeAssetId.mjs +19 -1
  77. package/dist/utils/normalizeAssetId.mjs.map +1 -1
  78. package/package.json +7 -4
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildNativeAssetsFromApi = exports.buildNativeAssetsFromConstant = exports.formatStateForTransactionPay = exports.formatExchangeRatesForBridge = exports.normalizeAssetId = exports.normalizeAmountString = exports.fetchWithTimeout = void 0;
3
+ exports.buildNativeAssetsFromApi = exports.buildNativeAssetsFromConstant = exports.clearFormatStateForTransactionPayCacheForTesting = exports.formatStateForTransactionPay = exports.clearFormatExchangeRatesForBridgeCacheForTesting = exports.formatExchangeRatesForBridge = exports.clearNormalizeAssetIdCacheForTesting = exports.normalizeAssetId = exports.normalizeAmountString = exports.fetchWithTimeout = void 0;
4
4
  var fetchWithTimeout_1 = require("./fetchWithTimeout.cjs");
5
5
  Object.defineProperty(exports, "fetchWithTimeout", { enumerable: true, get: function () { return fetchWithTimeout_1.fetchWithTimeout; } });
6
6
  var normalizeAmountString_1 = require("./normalizeAmountString.cjs");
7
7
  Object.defineProperty(exports, "normalizeAmountString", { enumerable: true, get: function () { return normalizeAmountString_1.normalizeAmountString; } });
8
8
  var normalizeAssetId_1 = require("./normalizeAssetId.cjs");
9
9
  Object.defineProperty(exports, "normalizeAssetId", { enumerable: true, get: function () { return normalizeAssetId_1.normalizeAssetId; } });
10
+ Object.defineProperty(exports, "clearNormalizeAssetIdCacheForTesting", { enumerable: true, get: function () { return normalizeAssetId_1.clearNormalizeAssetIdCacheForTesting; } });
10
11
  var formatExchangeRatesForBridge_1 = require("./formatExchangeRatesForBridge.cjs");
11
12
  Object.defineProperty(exports, "formatExchangeRatesForBridge", { enumerable: true, get: function () { return formatExchangeRatesForBridge_1.formatExchangeRatesForBridge; } });
13
+ Object.defineProperty(exports, "clearFormatExchangeRatesForBridgeCacheForTesting", { enumerable: true, get: function () { return formatExchangeRatesForBridge_1.clearFormatExchangeRatesForBridgeCacheForTesting; } });
12
14
  var formatStateForTransactionPay_1 = require("./formatStateForTransactionPay.cjs");
13
15
  Object.defineProperty(exports, "formatStateForTransactionPay", { enumerable: true, get: function () { return formatStateForTransactionPay_1.formatStateForTransactionPay; } });
16
+ Object.defineProperty(exports, "clearFormatStateForTransactionPayCacheForTesting", { enumerable: true, get: function () { return formatStateForTransactionPay_1.clearFormatStateForTransactionPayCacheForTesting; } });
14
17
  var native_assets_1 = require("./native-assets.cjs");
15
18
  Object.defineProperty(exports, "buildNativeAssetsFromConstant", { enumerable: true, get: function () { return native_assets_1.buildNativeAssetsFromConstant; } });
16
19
  Object.defineProperty(exports, "buildNativeAssetsFromApi", { enumerable: true, get: function () { return native_assets_1.buildNativeAssetsFromApi; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,qEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2DAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,mFAA8E;AAArE,4IAAA,4BAA4B,OAAA;AACrC,mFAA8E;AAArE,4IAAA,4BAA4B,OAAA;AAOrC,qDAGyB;AAFvB,8HAAA,6BAA6B,OAAA;AAC7B,yHAAA,wBAAwB,OAAA","sourcesContent":["export { fetchWithTimeout } from './fetchWithTimeout';\nexport { normalizeAmountString } from './normalizeAmountString';\nexport { normalizeAssetId } from './normalizeAssetId';\nexport { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge';\nexport { formatStateForTransactionPay } from './formatStateForTransactionPay';\nexport type { BridgeExchangeRatesFormat } from './formatExchangeRatesForBridge';\nexport type {\n AccountForLegacyFormat,\n LegacyToken,\n TransactionPayLegacyFormat,\n} from './formatStateForTransactionPay';\nexport {\n buildNativeAssetsFromConstant,\n buildNativeAssetsFromApi,\n} from './native-assets';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,qEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2DAG4B;AAF1B,oHAAA,gBAAgB,OAAA;AAChB,wIAAA,oCAAoC,OAAA;AAEtC,mFAGwC;AAFtC,4IAAA,4BAA4B,OAAA;AAC5B,gKAAA,gDAAgD,OAAA;AAElD,mFAGwC;AAFtC,4IAAA,4BAA4B,OAAA;AAC5B,gKAAA,gDAAgD,OAAA;AAYlD,qDAGyB;AAFvB,8HAAA,6BAA6B,OAAA;AAC7B,yHAAA,wBAAwB,OAAA","sourcesContent":["export { fetchWithTimeout } from './fetchWithTimeout';\nexport { normalizeAmountString } from './normalizeAmountString';\nexport {\n normalizeAssetId,\n clearNormalizeAssetIdCacheForTesting,\n} from './normalizeAssetId';\nexport {\n formatExchangeRatesForBridge,\n clearFormatExchangeRatesForBridgeCacheForTesting,\n} from './formatExchangeRatesForBridge';\nexport {\n formatStateForTransactionPay,\n clearFormatStateForTransactionPayCacheForTesting,\n} from './formatStateForTransactionPay';\nexport type {\n BridgeExchangeRatesFormat,\n FormatExchangeRatesForBridgeParams,\n} from './formatExchangeRatesForBridge';\nexport type {\n AccountForLegacyFormat,\n FormatStateForTransactionPayParams,\n LegacyToken,\n TransactionPayLegacyFormat,\n} from './formatStateForTransactionPay';\nexport {\n buildNativeAssetsFromConstant,\n buildNativeAssetsFromApi,\n} from './native-assets';\n"]}
@@ -1,9 +1,9 @@
1
1
  export { fetchWithTimeout } from "./fetchWithTimeout.cjs";
2
2
  export { normalizeAmountString } from "./normalizeAmountString.cjs";
3
- export { normalizeAssetId } from "./normalizeAssetId.cjs";
4
- export { formatExchangeRatesForBridge } from "./formatExchangeRatesForBridge.cjs";
5
- export { formatStateForTransactionPay } from "./formatStateForTransactionPay.cjs";
6
- export type { BridgeExchangeRatesFormat } from "./formatExchangeRatesForBridge.cjs";
7
- export type { AccountForLegacyFormat, LegacyToken, TransactionPayLegacyFormat, } from "./formatStateForTransactionPay.cjs";
3
+ export { normalizeAssetId, clearNormalizeAssetIdCacheForTesting, } from "./normalizeAssetId.cjs";
4
+ export { formatExchangeRatesForBridge, clearFormatExchangeRatesForBridgeCacheForTesting, } from "./formatExchangeRatesForBridge.cjs";
5
+ export { formatStateForTransactionPay, clearFormatStateForTransactionPayCacheForTesting, } from "./formatStateForTransactionPay.cjs";
6
+ export type { BridgeExchangeRatesFormat, FormatExchangeRatesForBridgeParams, } from "./formatExchangeRatesForBridge.cjs";
7
+ export type { AccountForLegacyFormat, FormatStateForTransactionPayParams, LegacyToken, TransactionPayLegacyFormat, } from "./formatStateForTransactionPay.cjs";
8
8
  export { buildNativeAssetsFromConstant, buildNativeAssetsFromApi, } from "./native-assets.cjs";
9
9
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,qBAAqB,EAAE,oCAAgC;AAChE,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,4BAA4B,EAAE,2CAAuC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,2CAAuC;AAC9E,YAAY,EAAE,yBAAyB,EAAE,2CAAuC;AAChF,YAAY,EACV,sBAAsB,EACtB,WAAW,EACX,0BAA0B,GAC3B,2CAAuC;AACxC,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,4BAAwB"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,qBAAqB,EAAE,oCAAgC;AAChE,OAAO,EACL,gBAAgB,EAChB,oCAAoC,GACrC,+BAA2B;AAC5B,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,GACjD,2CAAuC;AACxC,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,GACjD,2CAAuC;AACxC,YAAY,EACV,yBAAyB,EACzB,kCAAkC,GACnC,2CAAuC;AACxC,YAAY,EACV,sBAAsB,EACtB,kCAAkC,EAClC,WAAW,EACX,0BAA0B,GAC3B,2CAAuC;AACxC,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,4BAAwB"}
@@ -1,9 +1,9 @@
1
1
  export { fetchWithTimeout } from "./fetchWithTimeout.mjs";
2
2
  export { normalizeAmountString } from "./normalizeAmountString.mjs";
3
- export { normalizeAssetId } from "./normalizeAssetId.mjs";
4
- export { formatExchangeRatesForBridge } from "./formatExchangeRatesForBridge.mjs";
5
- export { formatStateForTransactionPay } from "./formatStateForTransactionPay.mjs";
6
- export type { BridgeExchangeRatesFormat } from "./formatExchangeRatesForBridge.mjs";
7
- export type { AccountForLegacyFormat, LegacyToken, TransactionPayLegacyFormat, } from "./formatStateForTransactionPay.mjs";
3
+ export { normalizeAssetId, clearNormalizeAssetIdCacheForTesting, } from "./normalizeAssetId.mjs";
4
+ export { formatExchangeRatesForBridge, clearFormatExchangeRatesForBridgeCacheForTesting, } from "./formatExchangeRatesForBridge.mjs";
5
+ export { formatStateForTransactionPay, clearFormatStateForTransactionPayCacheForTesting, } from "./formatStateForTransactionPay.mjs";
6
+ export type { BridgeExchangeRatesFormat, FormatExchangeRatesForBridgeParams, } from "./formatExchangeRatesForBridge.mjs";
7
+ export type { AccountForLegacyFormat, FormatStateForTransactionPayParams, LegacyToken, TransactionPayLegacyFormat, } from "./formatStateForTransactionPay.mjs";
8
8
  export { buildNativeAssetsFromConstant, buildNativeAssetsFromApi, } from "./native-assets.mjs";
9
9
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,qBAAqB,EAAE,oCAAgC;AAChE,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,4BAA4B,EAAE,2CAAuC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,2CAAuC;AAC9E,YAAY,EAAE,yBAAyB,EAAE,2CAAuC;AAChF,YAAY,EACV,sBAAsB,EACtB,WAAW,EACX,0BAA0B,GAC3B,2CAAuC;AACxC,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,4BAAwB"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,qBAAqB,EAAE,oCAAgC;AAChE,OAAO,EACL,gBAAgB,EAChB,oCAAoC,GACrC,+BAA2B;AAC5B,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,GACjD,2CAAuC;AACxC,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,GACjD,2CAAuC;AACxC,YAAY,EACV,yBAAyB,EACzB,kCAAkC,GACnC,2CAAuC;AACxC,YAAY,EACV,sBAAsB,EACtB,kCAAkC,EAClC,WAAW,EACX,0BAA0B,GAC3B,2CAAuC;AACxC,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,4BAAwB"}
@@ -1,7 +1,7 @@
1
1
  export { fetchWithTimeout } from "./fetchWithTimeout.mjs";
2
2
  export { normalizeAmountString } from "./normalizeAmountString.mjs";
3
- export { normalizeAssetId } from "./normalizeAssetId.mjs";
4
- export { formatExchangeRatesForBridge } from "./formatExchangeRatesForBridge.mjs";
5
- export { formatStateForTransactionPay } from "./formatStateForTransactionPay.mjs";
3
+ export { normalizeAssetId, clearNormalizeAssetIdCacheForTesting } from "./normalizeAssetId.mjs";
4
+ export { formatExchangeRatesForBridge, clearFormatExchangeRatesForBridgeCacheForTesting } from "./formatExchangeRatesForBridge.mjs";
5
+ export { formatStateForTransactionPay, clearFormatStateForTransactionPayCacheForTesting } from "./formatStateForTransactionPay.mjs";
6
6
  export { buildNativeAssetsFromConstant, buildNativeAssetsFromApi } from "./native-assets.mjs";
7
7
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,qBAAqB,EAAE,oCAAgC;AAChE,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,4BAA4B,EAAE,2CAAuC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,2CAAuC;AAO9E,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACzB,4BAAwB","sourcesContent":["export { fetchWithTimeout } from './fetchWithTimeout';\nexport { normalizeAmountString } from './normalizeAmountString';\nexport { normalizeAssetId } from './normalizeAssetId';\nexport { formatExchangeRatesForBridge } from './formatExchangeRatesForBridge';\nexport { formatStateForTransactionPay } from './formatStateForTransactionPay';\nexport type { BridgeExchangeRatesFormat } from './formatExchangeRatesForBridge';\nexport type {\n AccountForLegacyFormat,\n LegacyToken,\n TransactionPayLegacyFormat,\n} from './formatStateForTransactionPay';\nexport {\n buildNativeAssetsFromConstant,\n buildNativeAssetsFromApi,\n} from './native-assets';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,+BAA2B;AACtD,OAAO,EAAE,qBAAqB,EAAE,oCAAgC;AAChE,OAAO,EACL,gBAAgB,EAChB,oCAAoC,EACrC,+BAA2B;AAC5B,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,EACjD,2CAAuC;AACxC,OAAO,EACL,4BAA4B,EAC5B,gDAAgD,EACjD,2CAAuC;AAWxC,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACzB,4BAAwB","sourcesContent":["export { fetchWithTimeout } from './fetchWithTimeout';\nexport { normalizeAmountString } from './normalizeAmountString';\nexport {\n normalizeAssetId,\n clearNormalizeAssetIdCacheForTesting,\n} from './normalizeAssetId';\nexport {\n formatExchangeRatesForBridge,\n clearFormatExchangeRatesForBridgeCacheForTesting,\n} from './formatExchangeRatesForBridge';\nexport {\n formatStateForTransactionPay,\n clearFormatStateForTransactionPayCacheForTesting,\n} from './formatStateForTransactionPay';\nexport type {\n BridgeExchangeRatesFormat,\n FormatExchangeRatesForBridgeParams,\n} from './formatExchangeRatesForBridge';\nexport type {\n AccountForLegacyFormat,\n FormatStateForTransactionPayParams,\n LegacyToken,\n TransactionPayLegacyFormat,\n} from './formatStateForTransactionPay';\nexport {\n buildNativeAssetsFromConstant,\n buildNativeAssetsFromApi,\n} from './native-assets';\n"]}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeAssetId = void 0;
6
+ exports.clearNormalizeAssetIdCacheForTesting = exports.normalizeAssetId = void 0;
4
7
  const util_1 = require("@ethereumjs/util");
5
8
  const utils_1 = require("@metamask/utils");
9
+ const memoize_1 = __importDefault(require("lodash/memoize.js"));
6
10
  /**
7
11
  * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.
8
12
  * This ensures consistent asset IDs regardless of the data source format.
@@ -10,10 +14,14 @@ const utils_1 = require("@metamask/utils");
10
14
  * For EVM ERC20 tokens (e.g., "eip155:1/erc20:0x..."), the address is checksummed.
11
15
  * All other asset types are returned unchanged.
12
16
  *
17
+ * Results are memoized with lodash: repeated calls with the same ID (common after
18
+ * the first pipeline pass, when IDs are already checksummed) skip re-parsing and
19
+ * keccak256 checksum work.
20
+ *
13
21
  * @param assetId - The CAIP-19 asset ID to normalize
14
22
  * @returns The normalized asset ID with checksummed address (for EVM tokens)
15
23
  */
16
- function normalizeAssetId(assetId) {
24
+ exports.normalizeAssetId = (0, memoize_1.default)((assetId) => {
17
25
  const parsed = (0, utils_1.parseCaipAssetType)(assetId);
18
26
  const chainIdParsed = (0, utils_1.parseCaipChainId)(parsed.chainId);
19
27
  // Only checksum EVM ERC20 addresses
@@ -23,6 +31,12 @@ function normalizeAssetId(assetId) {
23
31
  return `${parsed.chainId}/${parsed.assetNamespace}:${checksummedAddress}`;
24
32
  }
25
33
  return assetId;
34
+ });
35
+ /**
36
+ * Clears the {@link normalizeAssetId} memoize cache. Exported for unit tests.
37
+ */
38
+ function clearNormalizeAssetIdCacheForTesting() {
39
+ exports.normalizeAssetId.cache.clear?.();
26
40
  }
27
- exports.normalizeAssetId = normalizeAssetId;
41
+ exports.clearNormalizeAssetIdCacheForTesting = clearNormalizeAssetIdCacheForTesting;
28
42
  //# sourceMappingURL=normalizeAssetId.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeAssetId.cjs","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":";;;AAAA,2CAAqD;AACrD,2CAAuE;AAIvE;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAAC,OAAsB;IACrD,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvD,oCAAoC;IACpC,IACE,aAAa,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,cAAc,KAAK,OAAO,EACjC,CAAC;QACD,MAAM,kBAAkB,GAAG,IAAA,wBAAiB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpE,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,kBAAkB,EAAmB,CAAC;IAC7F,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAdD,4CAcC","sourcesContent":["import { toChecksumAddress } from '@ethereumjs/util';\nimport { parseCaipAssetType, parseCaipChainId } from '@metamask/utils';\n\nimport type { Caip19AssetId } from '../types';\n\n/**\n * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.\n * This ensures consistent asset IDs regardless of the data source format.\n *\n * For EVM ERC20 tokens (e.g., \"eip155:1/erc20:0x...\"), the address is checksummed.\n * All other asset types are returned unchanged.\n *\n * @param assetId - The CAIP-19 asset ID to normalize\n * @returns The normalized asset ID with checksummed address (for EVM tokens)\n */\nexport function normalizeAssetId(assetId: Caip19AssetId): Caip19AssetId {\n const parsed = parseCaipAssetType(assetId);\n const chainIdParsed = parseCaipChainId(parsed.chainId);\n\n // Only checksum EVM ERC20 addresses\n if (\n chainIdParsed.namespace === 'eip155' &&\n parsed.assetNamespace === 'erc20'\n ) {\n const checksummedAddress = toChecksumAddress(parsed.assetReference);\n return `${parsed.chainId}/${parsed.assetNamespace}:${checksummedAddress}` as Caip19AssetId;\n }\n\n return assetId;\n}\n"]}
1
+ {"version":3,"file":"normalizeAssetId.cjs","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAqD;AACrD,2CAAuE;AAEvE,gEAAqC;AAIrC;;;;;;;;;;;;;GAaG;AACU,QAAA,gBAAgB,GACR,IAAA,iBAAO,EAAC,CAAC,OAAsB,EAAiB,EAAE;IACrE,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvD,oCAAoC;IACpC,IACE,aAAa,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,cAAc,KAAK,OAAO,EACjC,CAAC;QACD,MAAM,kBAAkB,GAAG,IAAA,wBAAiB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpE,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,kBAAkB,EAAmB,CAAC;IAC7F,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,SAAgB,oCAAoC;IAClD,wBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AACnC,CAAC;AAFD,oFAEC","sourcesContent":["import { toChecksumAddress } from '@ethereumjs/util';\nimport { parseCaipAssetType, parseCaipChainId } from '@metamask/utils';\nimport type { MemoizedFunction } from 'lodash';\nimport memoize from 'lodash/memoize';\n\nimport type { Caip19AssetId } from '../types';\n\n/**\n * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.\n * This ensures consistent asset IDs regardless of the data source format.\n *\n * For EVM ERC20 tokens (e.g., \"eip155:1/erc20:0x...\"), the address is checksummed.\n * All other asset types are returned unchanged.\n *\n * Results are memoized with lodash: repeated calls with the same ID (common after\n * the first pipeline pass, when IDs are already checksummed) skip re-parsing and\n * keccak256 checksum work.\n *\n * @param assetId - The CAIP-19 asset ID to normalize\n * @returns The normalized asset ID with checksummed address (for EVM tokens)\n */\nexport const normalizeAssetId: ((assetId: Caip19AssetId) => Caip19AssetId) &\n MemoizedFunction = memoize((assetId: Caip19AssetId): Caip19AssetId => {\n const parsed = parseCaipAssetType(assetId);\n const chainIdParsed = parseCaipChainId(parsed.chainId);\n\n // Only checksum EVM ERC20 addresses\n if (\n chainIdParsed.namespace === 'eip155' &&\n parsed.assetNamespace === 'erc20'\n ) {\n const checksummedAddress = toChecksumAddress(parsed.assetReference);\n return `${parsed.chainId}/${parsed.assetNamespace}:${checksummedAddress}` as Caip19AssetId;\n }\n\n return assetId;\n});\n\n/**\n * Clears the {@link normalizeAssetId} memoize cache. Exported for unit tests.\n */\nexport function clearNormalizeAssetIdCacheForTesting(): void {\n normalizeAssetId.cache.clear?.();\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type { MemoizedFunction } from "lodash";
1
2
  import type { Caip19AssetId } from "../types.cjs";
2
3
  /**
3
4
  * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.
@@ -6,8 +7,16 @@ import type { Caip19AssetId } from "../types.cjs";
6
7
  * For EVM ERC20 tokens (e.g., "eip155:1/erc20:0x..."), the address is checksummed.
7
8
  * All other asset types are returned unchanged.
8
9
  *
10
+ * Results are memoized with lodash: repeated calls with the same ID (common after
11
+ * the first pipeline pass, when IDs are already checksummed) skip re-parsing and
12
+ * keccak256 checksum work.
13
+ *
9
14
  * @param assetId - The CAIP-19 asset ID to normalize
10
15
  * @returns The normalized asset ID with checksummed address (for EVM tokens)
11
16
  */
12
- export declare function normalizeAssetId(assetId: Caip19AssetId): Caip19AssetId;
17
+ export declare const normalizeAssetId: ((assetId: Caip19AssetId) => Caip19AssetId) & MemoizedFunction;
18
+ /**
19
+ * Clears the {@link normalizeAssetId} memoize cache. Exported for unit tests.
20
+ */
21
+ export declare function clearNormalizeAssetIdCacheForTesting(): void;
13
22
  //# sourceMappingURL=normalizeAssetId.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeAssetId.d.cts","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAiB;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CActE"}
1
+ {"version":3,"file":"normalizeAssetId.d.cts","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe;AAG/C,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAiB;AAE9C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,CAAC,GACxE,gBAcA,CAAC;AAEH;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D"}
@@ -1,3 +1,4 @@
1
+ import type { MemoizedFunction } from "lodash";
1
2
  import type { Caip19AssetId } from "../types.mjs";
2
3
  /**
3
4
  * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.
@@ -6,8 +7,16 @@ import type { Caip19AssetId } from "../types.mjs";
6
7
  * For EVM ERC20 tokens (e.g., "eip155:1/erc20:0x..."), the address is checksummed.
7
8
  * All other asset types are returned unchanged.
8
9
  *
10
+ * Results are memoized with lodash: repeated calls with the same ID (common after
11
+ * the first pipeline pass, when IDs are already checksummed) skip re-parsing and
12
+ * keccak256 checksum work.
13
+ *
9
14
  * @param assetId - The CAIP-19 asset ID to normalize
10
15
  * @returns The normalized asset ID with checksummed address (for EVM tokens)
11
16
  */
12
- export declare function normalizeAssetId(assetId: Caip19AssetId): Caip19AssetId;
17
+ export declare const normalizeAssetId: ((assetId: Caip19AssetId) => Caip19AssetId) & MemoizedFunction;
18
+ /**
19
+ * Clears the {@link normalizeAssetId} memoize cache. Exported for unit tests.
20
+ */
21
+ export declare function clearNormalizeAssetIdCacheForTesting(): void;
13
22
  //# sourceMappingURL=normalizeAssetId.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeAssetId.d.mts","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAiB;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CActE"}
1
+ {"version":3,"file":"normalizeAssetId.d.mts","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe;AAG/C,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAiB;AAE9C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,CAAC,GACxE,gBAcA,CAAC;AAEH;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D"}
@@ -1,5 +1,13 @@
1
+ function $importDefault(module) {
2
+ if (module?.__esModule) {
3
+ return module.default;
4
+ }
5
+ return module;
6
+ }
1
7
  import { toChecksumAddress } from "@ethereumjs/util";
2
8
  import { parseCaipAssetType, parseCaipChainId } from "@metamask/utils";
9
+ import $memoize from "lodash/memoize.js";
10
+ const memoize = $importDefault($memoize);
3
11
  /**
4
12
  * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.
5
13
  * This ensures consistent asset IDs regardless of the data source format.
@@ -7,10 +15,14 @@ import { parseCaipAssetType, parseCaipChainId } from "@metamask/utils";
7
15
  * For EVM ERC20 tokens (e.g., "eip155:1/erc20:0x..."), the address is checksummed.
8
16
  * All other asset types are returned unchanged.
9
17
  *
18
+ * Results are memoized with lodash: repeated calls with the same ID (common after
19
+ * the first pipeline pass, when IDs are already checksummed) skip re-parsing and
20
+ * keccak256 checksum work.
21
+ *
10
22
  * @param assetId - The CAIP-19 asset ID to normalize
11
23
  * @returns The normalized asset ID with checksummed address (for EVM tokens)
12
24
  */
13
- export function normalizeAssetId(assetId) {
25
+ export const normalizeAssetId = memoize((assetId) => {
14
26
  const parsed = parseCaipAssetType(assetId);
15
27
  const chainIdParsed = parseCaipChainId(parsed.chainId);
16
28
  // Only checksum EVM ERC20 addresses
@@ -20,5 +32,11 @@ export function normalizeAssetId(assetId) {
20
32
  return `${parsed.chainId}/${parsed.assetNamespace}:${checksummedAddress}`;
21
33
  }
22
34
  return assetId;
35
+ });
36
+ /**
37
+ * Clears the {@link normalizeAssetId} memoize cache. Exported for unit tests.
38
+ */
39
+ export function clearNormalizeAssetIdCacheForTesting() {
40
+ normalizeAssetId.cache.clear?.();
23
41
  }
24
42
  //# sourceMappingURL=normalizeAssetId.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeAssetId.mjs","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,yBAAyB;AACrD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,wBAAwB;AAIvE;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB;IACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvD,oCAAoC;IACpC,IACE,aAAa,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,cAAc,KAAK,OAAO,EACjC,CAAC;QACD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpE,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,kBAAkB,EAAmB,CAAC;IAC7F,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { toChecksumAddress } from '@ethereumjs/util';\nimport { parseCaipAssetType, parseCaipChainId } from '@metamask/utils';\n\nimport type { Caip19AssetId } from '../types';\n\n/**\n * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.\n * This ensures consistent asset IDs regardless of the data source format.\n *\n * For EVM ERC20 tokens (e.g., \"eip155:1/erc20:0x...\"), the address is checksummed.\n * All other asset types are returned unchanged.\n *\n * @param assetId - The CAIP-19 asset ID to normalize\n * @returns The normalized asset ID with checksummed address (for EVM tokens)\n */\nexport function normalizeAssetId(assetId: Caip19AssetId): Caip19AssetId {\n const parsed = parseCaipAssetType(assetId);\n const chainIdParsed = parseCaipChainId(parsed.chainId);\n\n // Only checksum EVM ERC20 addresses\n if (\n chainIdParsed.namespace === 'eip155' &&\n parsed.assetNamespace === 'erc20'\n ) {\n const checksummedAddress = toChecksumAddress(parsed.assetReference);\n return `${parsed.chainId}/${parsed.assetNamespace}:${checksummedAddress}` as Caip19AssetId;\n }\n\n return assetId;\n}\n"]}
1
+ {"version":3,"file":"normalizeAssetId.mjs","sourceRoot":"","sources":["../../src/utils/normalizeAssetId.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,yBAAyB;AACrD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,wBAAwB;AAEvE,OAAO,QAAO,0BAAuB;;AAIrC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,gBAAgB,GACR,OAAO,CAAC,CAAC,OAAsB,EAAiB,EAAE;IACrE,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvD,oCAAoC;IACpC,IACE,aAAa,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,cAAc,KAAK,OAAO,EACjC,CAAC;QACD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpE,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,kBAAkB,EAAmB,CAAC;IAC7F,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,oCAAoC;IAClD,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AACnC,CAAC","sourcesContent":["import { toChecksumAddress } from '@ethereumjs/util';\nimport { parseCaipAssetType, parseCaipChainId } from '@metamask/utils';\nimport type { MemoizedFunction } from 'lodash';\nimport memoize from 'lodash/memoize';\n\nimport type { Caip19AssetId } from '../types';\n\n/**\n * Normalizes a CAIP-19 asset ID by checksumming EVM addresses.\n * This ensures consistent asset IDs regardless of the data source format.\n *\n * For EVM ERC20 tokens (e.g., \"eip155:1/erc20:0x...\"), the address is checksummed.\n * All other asset types are returned unchanged.\n *\n * Results are memoized with lodash: repeated calls with the same ID (common after\n * the first pipeline pass, when IDs are already checksummed) skip re-parsing and\n * keccak256 checksum work.\n *\n * @param assetId - The CAIP-19 asset ID to normalize\n * @returns The normalized asset ID with checksummed address (for EVM tokens)\n */\nexport const normalizeAssetId: ((assetId: Caip19AssetId) => Caip19AssetId) &\n MemoizedFunction = memoize((assetId: Caip19AssetId): Caip19AssetId => {\n const parsed = parseCaipAssetType(assetId);\n const chainIdParsed = parseCaipChainId(parsed.chainId);\n\n // Only checksum EVM ERC20 addresses\n if (\n chainIdParsed.namespace === 'eip155' &&\n parsed.assetNamespace === 'erc20'\n ) {\n const checksummedAddress = toChecksumAddress(parsed.assetReference);\n return `${parsed.chainId}/${parsed.assetNamespace}:${checksummedAddress}` as Caip19AssetId;\n }\n\n return assetId;\n});\n\n/**\n * Clears the {@link normalizeAssetId} memoize cache. Exported for unit tests.\n */\nexport function clearNormalizeAssetIdCacheForTesting(): void {\n normalizeAssetId.cache.clear?.();\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/assets-controller",
3
- "version": "11.0.0",
3
+ "version": "11.1.0",
4
4
  "description": "Tracks assets balances/prices and handles token detection across all digital assets",
5
5
  "keywords": [
6
6
  "Ethereum",
@@ -44,6 +44,8 @@
44
44
  "build:docs": "typedoc",
45
45
  "changelog:update": "../../scripts/update-changelog.sh @metamask/assets-controller",
46
46
  "changelog:validate": "../../scripts/validate-changelog.sh @metamask/assets-controller",
47
+ "lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts",
48
+ "lint:tsconfigs:fix": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts --fix",
47
49
  "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check",
48
50
  "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate",
49
51
  "since-latest-release": "../../scripts/since-latest-release.sh",
@@ -69,14 +71,15 @@
69
71
  "@metamask/keyring-snap-client": "^9.2.0",
70
72
  "@metamask/messenger": "^2.0.0",
71
73
  "@metamask/network-controller": "^34.0.0",
72
- "@metamask/network-enablement-controller": "^5.5.0",
74
+ "@metamask/network-enablement-controller": "^5.6.0",
73
75
  "@metamask/permission-controller": "^13.1.1",
74
- "@metamask/phishing-controller": "^17.2.1",
76
+ "@metamask/phishing-controller": "^17.3.0",
75
77
  "@metamask/polling-controller": "^16.0.8",
76
78
  "@metamask/preferences-controller": "^23.1.0",
79
+ "@metamask/remote-feature-flag-controller": "^4.2.2",
77
80
  "@metamask/snaps-controllers": "^19.0.0",
78
81
  "@metamask/snaps-utils": "^12.1.2",
79
- "@metamask/transaction-controller": "^69.0.0",
82
+ "@metamask/transaction-controller": "^69.1.0",
80
83
  "@metamask/utils": "^11.11.0",
81
84
  "async-mutex": "^0.5.0",
82
85
  "bignumber.js": "^9.1.2",