@metamask-previews/assets-controllers 32.0.0-preview-c439acc5 → 32.0.0-preview-e2529f0

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 (105) hide show
  1. package/dist/AccountTrackerController.js +2 -2
  2. package/dist/AccountTrackerController.mjs +1 -1
  3. package/dist/AssetsContractController.js +6 -6
  4. package/dist/AssetsContractController.mjs +5 -5
  5. package/dist/NftController.js +3 -3
  6. package/dist/NftController.mjs +2 -2
  7. package/dist/Standards/ERC20Standard.js +3 -3
  8. package/dist/Standards/ERC20Standard.mjs +2 -2
  9. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js +3 -3
  10. package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.mjs +2 -2
  11. package/dist/Standards/NftStandards/ERC721/ERC721Standard.js +3 -3
  12. package/dist/Standards/NftStandards/ERC721/ERC721Standard.mjs +2 -2
  13. package/dist/TokenDetectionController.js +3 -3
  14. package/dist/TokenDetectionController.mjs +2 -2
  15. package/dist/TokenListController.js +4 -4
  16. package/dist/TokenListController.mjs +3 -3
  17. package/dist/TokenRatesController.js +4 -4
  18. package/dist/TokenRatesController.mjs +3 -3
  19. package/dist/TokensController.js +6 -6
  20. package/dist/TokensController.mjs +5 -5
  21. package/dist/assetsUtil.js +2 -2
  22. package/dist/assetsUtil.mjs +1 -1
  23. package/dist/{chunk-M4ZW6TYC.js → chunk-3NTGK7OO.js} +8 -8
  24. package/dist/chunk-3NTGK7OO.js.map +1 -0
  25. package/dist/{chunk-JUI3XNEF.js → chunk-5JDOJSUA.js} +14 -9
  26. package/dist/chunk-5JDOJSUA.js.map +1 -0
  27. package/dist/{chunk-ASA5RLBY.mjs → chunk-A3FHQNJH.mjs} +2 -2
  28. package/dist/{chunk-QHWKLZUC.js → chunk-AEM6O7HM.js} +14 -10
  29. package/dist/chunk-AEM6O7HM.js.map +1 -0
  30. package/dist/{chunk-LZ5ZGQEX.mjs → chunk-AMB5TO4Q.mjs} +2 -2
  31. package/dist/{chunk-5W5OO2Q5.mjs → chunk-BMMTR4HK.mjs} +2 -2
  32. package/dist/{chunk-XSXRLN3P.mjs → chunk-BWZXTNMF.mjs} +4 -4
  33. package/dist/chunk-BWZXTNMF.mjs.map +1 -0
  34. package/dist/{chunk-CGLUTXI7.js → chunk-F577WEB7.js} +5 -5
  35. package/dist/{chunk-D3K5MPMW.mjs → chunk-GRUCF6OP.mjs} +2 -2
  36. package/dist/{chunk-A2DDWXMS.mjs → chunk-GYWAJHCH.mjs} +10 -5
  37. package/dist/chunk-GYWAJHCH.mjs.map +1 -0
  38. package/dist/{chunk-HDI4L2DD.js → chunk-J2NHA3RU.js} +5 -5
  39. package/dist/{chunk-A7SULHJK.js → chunk-KJGV2U5Z.js} +1 -1
  40. package/dist/chunk-KJGV2U5Z.js.map +1 -0
  41. package/dist/{chunk-HLCGZGPA.mjs → chunk-LDG4TZCJ.mjs} +13 -9
  42. package/dist/chunk-LDG4TZCJ.mjs.map +1 -0
  43. package/dist/{chunk-62T7RKU3.mjs → chunk-MQUZBTRE.mjs} +2 -2
  44. package/dist/{chunk-MR6EF4B7.mjs → chunk-NY3GKW5L.mjs} +2 -2
  45. package/dist/{chunk-U3DJJN4X.js → chunk-OOQ23ZM4.js} +4 -4
  46. package/dist/{chunk-4AC3X2U5.js → chunk-OPPL2AVG.js} +19 -14
  47. package/dist/chunk-OPPL2AVG.js.map +1 -0
  48. package/dist/{chunk-PYMUBJQX.js → chunk-S3OXHT4M.js} +3 -3
  49. package/dist/{chunk-Q5JRBGWO.mjs → chunk-SXFTKOHZ.mjs} +2 -2
  50. package/dist/{chunk-Q5JRBGWO.mjs.map → chunk-SXFTKOHZ.mjs.map} +1 -1
  51. package/dist/{chunk-B5YY22QQ.js → chunk-T2UKYSM3.js} +3 -3
  52. package/dist/{chunk-7J63MEC3.mjs → chunk-TLABIOJD.mjs} +1 -1
  53. package/dist/chunk-TLABIOJD.mjs.map +1 -0
  54. package/dist/{chunk-Y7G5RKIF.js → chunk-TN227P74.js} +1 -3
  55. package/dist/chunk-TN227P74.js.map +1 -0
  56. package/dist/{chunk-NEXY7SE2.js → chunk-VJCRI43T.js} +2 -2
  57. package/dist/{chunk-NEXY7SE2.js.map → chunk-VJCRI43T.js.map} +1 -1
  58. package/dist/{chunk-BOTVAG4A.js → chunk-XHVPM73D.js} +5 -5
  59. package/dist/{chunk-G2ZRGQPQ.mjs → chunk-Y5ZJ2KRC.mjs} +1 -3
  60. package/dist/{chunk-G2ZRGQPQ.mjs.map → chunk-Y5ZJ2KRC.mjs.map} +1 -1
  61. package/dist/{chunk-73F3SN5O.mjs → chunk-ZJBJ2VBS.mjs} +15 -10
  62. package/dist/chunk-ZJBJ2VBS.mjs.map +1 -0
  63. package/dist/index.js +16 -16
  64. package/dist/index.mjs +14 -14
  65. package/dist/token-prices-service/codefi-v2.js +2 -2
  66. package/dist/token-prices-service/codefi-v2.mjs +1 -1
  67. package/dist/token-prices-service/index.js +2 -2
  68. package/dist/token-prices-service/index.mjs +1 -1
  69. package/dist/token-service.js +3 -3
  70. package/dist/token-service.mjs +2 -2
  71. package/dist/tsconfig.build.tsbuildinfo +1 -1
  72. package/dist/types/AccountTrackerController.d.ts +3 -2
  73. package/dist/types/AccountTrackerController.d.ts.map +1 -1
  74. package/dist/types/AssetsContractController.d.ts.map +1 -1
  75. package/dist/types/TokenListController.d.ts.map +1 -1
  76. package/dist/types/TokenRatesController.d.ts +0 -1
  77. package/dist/types/TokenRatesController.d.ts.map +1 -1
  78. package/dist/types/TokensController.d.ts.map +1 -1
  79. package/dist/types/token-prices-service/abstract-token-prices-service.d.ts +0 -1
  80. package/dist/types/token-prices-service/abstract-token-prices-service.d.ts.map +1 -1
  81. package/dist/types/token-prices-service/codefi-v2.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/dist/chunk-4AC3X2U5.js.map +0 -1
  84. package/dist/chunk-73F3SN5O.mjs.map +0 -1
  85. package/dist/chunk-7J63MEC3.mjs.map +0 -1
  86. package/dist/chunk-A2DDWXMS.mjs.map +0 -1
  87. package/dist/chunk-A7SULHJK.js.map +0 -1
  88. package/dist/chunk-HLCGZGPA.mjs.map +0 -1
  89. package/dist/chunk-JUI3XNEF.js.map +0 -1
  90. package/dist/chunk-M4ZW6TYC.js.map +0 -1
  91. package/dist/chunk-QHWKLZUC.js.map +0 -1
  92. package/dist/chunk-XSXRLN3P.mjs.map +0 -1
  93. package/dist/chunk-Y7G5RKIF.js.map +0 -1
  94. /package/dist/{chunk-ASA5RLBY.mjs.map → chunk-A3FHQNJH.mjs.map} +0 -0
  95. /package/dist/{chunk-LZ5ZGQEX.mjs.map → chunk-AMB5TO4Q.mjs.map} +0 -0
  96. /package/dist/{chunk-5W5OO2Q5.mjs.map → chunk-BMMTR4HK.mjs.map} +0 -0
  97. /package/dist/{chunk-CGLUTXI7.js.map → chunk-F577WEB7.js.map} +0 -0
  98. /package/dist/{chunk-D3K5MPMW.mjs.map → chunk-GRUCF6OP.mjs.map} +0 -0
  99. /package/dist/{chunk-HDI4L2DD.js.map → chunk-J2NHA3RU.js.map} +0 -0
  100. /package/dist/{chunk-62T7RKU3.mjs.map → chunk-MQUZBTRE.mjs.map} +0 -0
  101. /package/dist/{chunk-MR6EF4B7.mjs.map → chunk-NY3GKW5L.mjs.map} +0 -0
  102. /package/dist/{chunk-U3DJJN4X.js.map → chunk-OOQ23ZM4.js.map} +0 -0
  103. /package/dist/{chunk-PYMUBJQX.js.map → chunk-S3OXHT4M.js.map} +0 -0
  104. /package/dist/{chunk-B5YY22QQ.js.map → chunk-T2UKYSM3.js.map} +0 -0
  105. /package/dist/{chunk-BOTVAG4A.js.map → chunk-XHVPM73D.js.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkA7SULHJKjs = require('./chunk-A7SULHJK.js');
4
+ var _chunkKJGV2U5Zjs = require('./chunk-KJGV2U5Z.js');
5
5
  require('./chunk-Z4BLTVTB.js');
6
6
 
7
7
 
8
8
 
9
- exports.AccountTrackerController = _chunkA7SULHJKjs.AccountTrackerController; exports.default = _chunkA7SULHJKjs.AccountTrackerController_default;
9
+ exports.AccountTrackerController = _chunkKJGV2U5Zjs.AccountTrackerController; exports.default = _chunkKJGV2U5Zjs.AccountTrackerController_default;
10
10
  //# sourceMappingURL=AccountTrackerController.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AccountTrackerController,
3
3
  AccountTrackerController_default
4
- } from "./chunk-7J63MEC3.mjs";
4
+ } from "./chunk-TLABIOJD.mjs";
5
5
  import "./chunk-XUI43LEZ.mjs";
6
6
  export {
7
7
  AccountTrackerController,
@@ -3,16 +3,16 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkQHWKLZUCjs = require('./chunk-QHWKLZUC.js');
7
- require('./chunk-U3DJJN4X.js');
8
- require('./chunk-B5YY22QQ.js');
9
- require('./chunk-BOTVAG4A.js');
10
- require('./chunk-NEXY7SE2.js');
6
+ var _chunkAEM6O7HMjs = require('./chunk-AEM6O7HM.js');
7
+ require('./chunk-OOQ23ZM4.js');
8
+ require('./chunk-XHVPM73D.js');
9
+ require('./chunk-T2UKYSM3.js');
10
+ require('./chunk-VJCRI43T.js');
11
11
  require('./chunk-Z4BLTVTB.js');
12
12
 
13
13
 
14
14
 
15
15
 
16
16
 
17
- exports.AssetsContractController = _chunkQHWKLZUCjs.AssetsContractController; exports.MISSING_PROVIDER_ERROR = _chunkQHWKLZUCjs.MISSING_PROVIDER_ERROR; exports.SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID = _chunkQHWKLZUCjs.SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID; exports.default = _chunkQHWKLZUCjs.AssetsContractController_default;
17
+ exports.AssetsContractController = _chunkAEM6O7HMjs.AssetsContractController; exports.MISSING_PROVIDER_ERROR = _chunkAEM6O7HMjs.MISSING_PROVIDER_ERROR; exports.SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID = _chunkAEM6O7HMjs.SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID; exports.default = _chunkAEM6O7HMjs.AssetsContractController_default;
18
18
  //# sourceMappingURL=AssetsContractController.js.map
@@ -3,11 +3,11 @@ import {
3
3
  AssetsContractController_default,
4
4
  MISSING_PROVIDER_ERROR,
5
5
  SINGLE_CALL_BALANCES_ADDRESS_BY_CHAINID
6
- } from "./chunk-HLCGZGPA.mjs";
7
- import "./chunk-ASA5RLBY.mjs";
8
- import "./chunk-D3K5MPMW.mjs";
9
- import "./chunk-LZ5ZGQEX.mjs";
10
- import "./chunk-Q5JRBGWO.mjs";
6
+ } from "./chunk-LDG4TZCJ.mjs";
7
+ import "./chunk-A3FHQNJH.mjs";
8
+ import "./chunk-AMB5TO4Q.mjs";
9
+ import "./chunk-GRUCF6OP.mjs";
10
+ import "./chunk-SXFTKOHZ.mjs";
11
11
  import "./chunk-XUI43LEZ.mjs";
12
12
  export {
13
13
  AssetsContractController,
@@ -2,13 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkCGLUTXI7js = require('./chunk-CGLUTXI7.js');
5
+ var _chunkF577WEB7js = require('./chunk-F577WEB7.js');
6
6
  require('./chunk-RGHTNZQ6.js');
7
- require('./chunk-NEXY7SE2.js');
7
+ require('./chunk-VJCRI43T.js');
8
8
  require('./chunk-Z4BLTVTB.js');
9
9
 
10
10
 
11
11
 
12
12
 
13
- exports.NftController = _chunkCGLUTXI7js.NftController; exports.default = _chunkCGLUTXI7js.NftController_default; exports.getDefaultNftControllerState = _chunkCGLUTXI7js.getDefaultNftControllerState;
13
+ exports.NftController = _chunkF577WEB7js.NftController; exports.default = _chunkF577WEB7js.NftController_default; exports.getDefaultNftControllerState = _chunkF577WEB7js.getDefaultNftControllerState;
14
14
  //# sourceMappingURL=NftController.js.map
@@ -2,9 +2,9 @@ import {
2
2
  NftController,
3
3
  NftController_default,
4
4
  getDefaultNftControllerState
5
- } from "./chunk-62T7RKU3.mjs";
5
+ } from "./chunk-MQUZBTRE.mjs";
6
6
  import "./chunk-CP3HC7AQ.mjs";
7
- import "./chunk-Q5JRBGWO.mjs";
7
+ import "./chunk-SXFTKOHZ.mjs";
8
8
  import "./chunk-XUI43LEZ.mjs";
9
9
  export {
10
10
  NftController,
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkB5YY22QQjs = require('../chunk-B5YY22QQ.js');
4
- require('../chunk-NEXY7SE2.js');
3
+ var _chunkT2UKYSM3js = require('../chunk-T2UKYSM3.js');
4
+ require('../chunk-VJCRI43T.js');
5
5
  require('../chunk-Z4BLTVTB.js');
6
6
 
7
7
 
8
- exports.ERC20Standard = _chunkB5YY22QQjs.ERC20Standard;
8
+ exports.ERC20Standard = _chunkT2UKYSM3js.ERC20Standard;
9
9
  //# sourceMappingURL=ERC20Standard.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ERC20Standard
3
- } from "../chunk-D3K5MPMW.mjs";
4
- import "../chunk-Q5JRBGWO.mjs";
3
+ } from "../chunk-GRUCF6OP.mjs";
4
+ import "../chunk-SXFTKOHZ.mjs";
5
5
  import "../chunk-XUI43LEZ.mjs";
6
6
  export {
7
7
  ERC20Standard
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkBOTVAG4Ajs = require('../../../chunk-BOTVAG4A.js');
4
- require('../../../chunk-NEXY7SE2.js');
3
+ var _chunkXHVPM73Djs = require('../../../chunk-XHVPM73D.js');
4
+ require('../../../chunk-VJCRI43T.js');
5
5
  require('../../../chunk-Z4BLTVTB.js');
6
6
 
7
7
 
8
- exports.ERC1155Standard = _chunkBOTVAG4Ajs.ERC1155Standard;
8
+ exports.ERC1155Standard = _chunkXHVPM73Djs.ERC1155Standard;
9
9
  //# sourceMappingURL=ERC1155Standard.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ERC1155Standard
3
- } from "../../../chunk-LZ5ZGQEX.mjs";
4
- import "../../../chunk-Q5JRBGWO.mjs";
3
+ } from "../../../chunk-AMB5TO4Q.mjs";
4
+ import "../../../chunk-SXFTKOHZ.mjs";
5
5
  import "../../../chunk-XUI43LEZ.mjs";
6
6
  export {
7
7
  ERC1155Standard
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkU3DJJN4Xjs = require('../../../chunk-U3DJJN4X.js');
4
- require('../../../chunk-NEXY7SE2.js');
3
+ var _chunkOOQ23ZM4js = require('../../../chunk-OOQ23ZM4.js');
4
+ require('../../../chunk-VJCRI43T.js');
5
5
  require('../../../chunk-Z4BLTVTB.js');
6
6
 
7
7
 
8
- exports.ERC721Standard = _chunkU3DJJN4Xjs.ERC721Standard;
8
+ exports.ERC721Standard = _chunkOOQ23ZM4js.ERC721Standard;
9
9
  //# sourceMappingURL=ERC721Standard.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ERC721Standard
3
- } from "../../../chunk-ASA5RLBY.mjs";
4
- import "../../../chunk-Q5JRBGWO.mjs";
3
+ } from "../../../chunk-A3FHQNJH.mjs";
4
+ import "../../../chunk-SXFTKOHZ.mjs";
5
5
  import "../../../chunk-XUI43LEZ.mjs";
6
6
  export {
7
7
  ERC721Standard
@@ -4,8 +4,8 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkHDI4L2DDjs = require('./chunk-HDI4L2DD.js');
8
- require('./chunk-NEXY7SE2.js');
7
+ var _chunkJ2NHA3RUjs = require('./chunk-J2NHA3RU.js');
8
+ require('./chunk-VJCRI43T.js');
9
9
  require('./chunk-Z4BLTVTB.js');
10
10
 
11
11
 
@@ -13,5 +13,5 @@ require('./chunk-Z4BLTVTB.js');
13
13
 
14
14
 
15
15
 
16
- exports.STATIC_MAINNET_TOKEN_LIST = _chunkHDI4L2DDjs.STATIC_MAINNET_TOKEN_LIST; exports.TokenDetectionController = _chunkHDI4L2DDjs.TokenDetectionController; exports.controllerName = _chunkHDI4L2DDjs.controllerName; exports.default = _chunkHDI4L2DDjs.TokenDetectionController_default; exports.isEqualCaseInsensitive = _chunkHDI4L2DDjs.isEqualCaseInsensitive;
16
+ exports.STATIC_MAINNET_TOKEN_LIST = _chunkJ2NHA3RUjs.STATIC_MAINNET_TOKEN_LIST; exports.TokenDetectionController = _chunkJ2NHA3RUjs.TokenDetectionController; exports.controllerName = _chunkJ2NHA3RUjs.controllerName; exports.default = _chunkJ2NHA3RUjs.TokenDetectionController_default; exports.isEqualCaseInsensitive = _chunkJ2NHA3RUjs.isEqualCaseInsensitive;
17
17
  //# sourceMappingURL=TokenDetectionController.js.map
@@ -4,8 +4,8 @@ import {
4
4
  TokenDetectionController_default,
5
5
  controllerName,
6
6
  isEqualCaseInsensitive
7
- } from "./chunk-MR6EF4B7.mjs";
8
- import "./chunk-Q5JRBGWO.mjs";
7
+ } from "./chunk-NY3GKW5L.mjs";
8
+ import "./chunk-SXFTKOHZ.mjs";
9
9
  import "./chunk-XUI43LEZ.mjs";
10
10
  export {
11
11
  STATIC_MAINNET_TOKEN_LIST,
@@ -2,13 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkJUI3XNEFjs = require('./chunk-JUI3XNEF.js');
6
- require('./chunk-PYMUBJQX.js');
7
- require('./chunk-NEXY7SE2.js');
5
+ var _chunk5JDOJSUAjs = require('./chunk-5JDOJSUA.js');
6
+ require('./chunk-S3OXHT4M.js');
7
+ require('./chunk-VJCRI43T.js');
8
8
  require('./chunk-Z4BLTVTB.js');
9
9
 
10
10
 
11
11
 
12
12
 
13
- exports.TokenListController = _chunkJUI3XNEFjs.TokenListController; exports.default = _chunkJUI3XNEFjs.TokenListController_default; exports.getDefaultTokenListState = _chunkJUI3XNEFjs.getDefaultTokenListState;
13
+ exports.TokenListController = _chunk5JDOJSUAjs.TokenListController; exports.default = _chunk5JDOJSUAjs.TokenListController_default; exports.getDefaultTokenListState = _chunk5JDOJSUAjs.getDefaultTokenListState;
14
14
  //# sourceMappingURL=TokenListController.js.map
@@ -2,9 +2,9 @@ import {
2
2
  TokenListController,
3
3
  TokenListController_default,
4
4
  getDefaultTokenListState
5
- } from "./chunk-A2DDWXMS.mjs";
6
- import "./chunk-5W5OO2Q5.mjs";
7
- import "./chunk-Q5JRBGWO.mjs";
5
+ } from "./chunk-GYWAJHCH.mjs";
6
+ import "./chunk-BMMTR4HK.mjs";
7
+ import "./chunk-SXFTKOHZ.mjs";
8
8
  import "./chunk-XUI43LEZ.mjs";
9
9
  export {
10
10
  TokenListController,
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkM4ZW6TYCjs = require('./chunk-M4ZW6TYC.js');
5
- require('./chunk-Y7G5RKIF.js');
4
+ var _chunk3NTGK7OOjs = require('./chunk-3NTGK7OO.js');
5
+ require('./chunk-TN227P74.js');
6
6
  require('./chunk-7K6PSEAA.js');
7
7
  require('./chunk-WB6KJX4N.js');
8
- require('./chunk-NEXY7SE2.js');
8
+ require('./chunk-VJCRI43T.js');
9
9
  require('./chunk-Z4BLTVTB.js');
10
10
 
11
11
 
12
12
 
13
- exports.TokenRatesController = _chunkM4ZW6TYCjs.TokenRatesController; exports.default = _chunkM4ZW6TYCjs.TokenRatesController_default;
13
+ exports.TokenRatesController = _chunk3NTGK7OOjs.TokenRatesController; exports.default = _chunk3NTGK7OOjs.TokenRatesController_default;
14
14
  //# sourceMappingURL=TokenRatesController.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  TokenRatesController,
3
3
  TokenRatesController_default
4
- } from "./chunk-XSXRLN3P.mjs";
5
- import "./chunk-G2ZRGQPQ.mjs";
4
+ } from "./chunk-BWZXTNMF.mjs";
5
+ import "./chunk-Y5ZJ2KRC.mjs";
6
6
  import "./chunk-TTH3ES66.mjs";
7
7
  import "./chunk-CNKVITJO.mjs";
8
- import "./chunk-Q5JRBGWO.mjs";
8
+ import "./chunk-SXFTKOHZ.mjs";
9
9
  import "./chunk-XUI43LEZ.mjs";
10
10
  export {
11
11
  TokenRatesController,
@@ -2,15 +2,15 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk4AC3X2U5js = require('./chunk-4AC3X2U5.js');
6
- require('./chunk-B5YY22QQ.js');
7
- require('./chunk-BOTVAG4A.js');
8
- require('./chunk-PYMUBJQX.js');
9
- require('./chunk-NEXY7SE2.js');
5
+ var _chunkOPPL2AVGjs = require('./chunk-OPPL2AVG.js');
6
+ require('./chunk-XHVPM73D.js');
7
+ require('./chunk-T2UKYSM3.js');
8
+ require('./chunk-S3OXHT4M.js');
9
+ require('./chunk-VJCRI43T.js');
10
10
  require('./chunk-Z4BLTVTB.js');
11
11
 
12
12
 
13
13
 
14
14
 
15
- exports.TokensController = _chunk4AC3X2U5js.TokensController; exports.default = _chunk4AC3X2U5js.TokensController_default; exports.getDefaultTokensState = _chunk4AC3X2U5js.getDefaultTokensState;
15
+ exports.TokensController = _chunkOPPL2AVGjs.TokensController; exports.default = _chunkOPPL2AVGjs.TokensController_default; exports.getDefaultTokensState = _chunkOPPL2AVGjs.getDefaultTokensState;
16
16
  //# sourceMappingURL=TokensController.js.map
@@ -2,11 +2,11 @@ import {
2
2
  TokensController,
3
3
  TokensController_default,
4
4
  getDefaultTokensState
5
- } from "./chunk-73F3SN5O.mjs";
6
- import "./chunk-D3K5MPMW.mjs";
7
- import "./chunk-LZ5ZGQEX.mjs";
8
- import "./chunk-5W5OO2Q5.mjs";
9
- import "./chunk-Q5JRBGWO.mjs";
5
+ } from "./chunk-ZJBJ2VBS.mjs";
6
+ import "./chunk-AMB5TO4Q.mjs";
7
+ import "./chunk-GRUCF6OP.mjs";
8
+ import "./chunk-BMMTR4HK.mjs";
9
+ import "./chunk-SXFTKOHZ.mjs";
10
10
  import "./chunk-XUI43LEZ.mjs";
11
11
  export {
12
12
  TokensController,
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkNEXY7SE2js = require('./chunk-NEXY7SE2.js');
17
+ var _chunkVJCRI43Tjs = require('./chunk-VJCRI43T.js');
18
18
  require('./chunk-Z4BLTVTB.js');
19
19
 
20
20
 
@@ -32,5 +32,5 @@ require('./chunk-Z4BLTVTB.js');
32
32
 
33
33
 
34
34
 
35
- exports.SupportedTokenDetectionNetworks = _chunkNEXY7SE2js.SupportedTokenDetectionNetworks; exports.TOKEN_PRICES_BATCH_SIZE = _chunkNEXY7SE2js.TOKEN_PRICES_BATCH_SIZE; exports.addUrlProtocolPrefix = _chunkNEXY7SE2js.addUrlProtocolPrefix; exports.compareNftMetadata = _chunkNEXY7SE2js.compareNftMetadata; exports.divideIntoBatches = _chunkNEXY7SE2js.divideIntoBatches; exports.ethersBigNumberToBN = _chunkNEXY7SE2js.ethersBigNumberToBN; exports.fetchTokenContractExchangeRates = _chunkNEXY7SE2js.fetchTokenContractExchangeRates; exports.formatAggregatorNames = _chunkNEXY7SE2js.formatAggregatorNames; exports.formatIconUrlWithProxy = _chunkNEXY7SE2js.formatIconUrlWithProxy; exports.getFormattedIpfsUrl = _chunkNEXY7SE2js.getFormattedIpfsUrl; exports.getIpfsCIDv1AndPath = _chunkNEXY7SE2js.getIpfsCIDv1AndPath; exports.isTokenDetectionSupportedForNetwork = _chunkNEXY7SE2js.isTokenDetectionSupportedForNetwork; exports.isTokenListSupportedForNetwork = _chunkNEXY7SE2js.isTokenListSupportedForNetwork; exports.reduceInBatchesSerially = _chunkNEXY7SE2js.reduceInBatchesSerially; exports.removeIpfsProtocolPrefix = _chunkNEXY7SE2js.removeIpfsProtocolPrefix;
35
+ exports.SupportedTokenDetectionNetworks = _chunkVJCRI43Tjs.SupportedTokenDetectionNetworks; exports.TOKEN_PRICES_BATCH_SIZE = _chunkVJCRI43Tjs.TOKEN_PRICES_BATCH_SIZE; exports.addUrlProtocolPrefix = _chunkVJCRI43Tjs.addUrlProtocolPrefix; exports.compareNftMetadata = _chunkVJCRI43Tjs.compareNftMetadata; exports.divideIntoBatches = _chunkVJCRI43Tjs.divideIntoBatches; exports.ethersBigNumberToBN = _chunkVJCRI43Tjs.ethersBigNumberToBN; exports.fetchTokenContractExchangeRates = _chunkVJCRI43Tjs.fetchTokenContractExchangeRates; exports.formatAggregatorNames = _chunkVJCRI43Tjs.formatAggregatorNames; exports.formatIconUrlWithProxy = _chunkVJCRI43Tjs.formatIconUrlWithProxy; exports.getFormattedIpfsUrl = _chunkVJCRI43Tjs.getFormattedIpfsUrl; exports.getIpfsCIDv1AndPath = _chunkVJCRI43Tjs.getIpfsCIDv1AndPath; exports.isTokenDetectionSupportedForNetwork = _chunkVJCRI43Tjs.isTokenDetectionSupportedForNetwork; exports.isTokenListSupportedForNetwork = _chunkVJCRI43Tjs.isTokenListSupportedForNetwork; exports.reduceInBatchesSerially = _chunkVJCRI43Tjs.reduceInBatchesSerially; exports.removeIpfsProtocolPrefix = _chunkVJCRI43Tjs.removeIpfsProtocolPrefix;
36
36
  //# sourceMappingURL=assetsUtil.js.map
@@ -14,7 +14,7 @@ import {
14
14
  isTokenListSupportedForNetwork,
15
15
  reduceInBatchesSerially,
16
16
  removeIpfsProtocolPrefix
17
- } from "./chunk-Q5JRBGWO.mjs";
17
+ } from "./chunk-SXFTKOHZ.mjs";
18
18
  import "./chunk-XUI43LEZ.mjs";
19
19
  export {
20
20
  SupportedTokenDetectionNetworks,
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkY7G5RKIFjs = require('./chunk-Y7G5RKIF.js');
3
+ var _chunkTN227P74js = require('./chunk-TN227P74.js');
4
4
 
5
5
 
6
6
  var _chunkWB6KJX4Njs = require('./chunk-WB6KJX4N.js');
7
7
 
8
8
 
9
9
 
10
- var _chunkNEXY7SE2js = require('./chunk-NEXY7SE2.js');
10
+ var _chunkVJCRI43Tjs = require('./chunk-VJCRI43T.js');
11
11
 
12
12
 
13
13
 
@@ -346,9 +346,9 @@ fetchAndMapExchangeRatesForSupportedNativeCurrency_fn = async function({
346
346
  nativeCurrency
347
347
  }) {
348
348
  let contractNativeInformations;
349
- const tokenPricesByTokenAddress = await _chunkNEXY7SE2js.reduceInBatchesSerially.call(void 0, {
349
+ const tokenPricesByTokenAddress = await _chunkVJCRI43Tjs.reduceInBatchesSerially.call(void 0, {
350
350
  values: [...tokenAddresses].sort(),
351
- batchSize: _chunkNEXY7SE2js.TOKEN_PRICES_BATCH_SIZE,
351
+ batchSize: _chunkVJCRI43Tjs.TOKEN_PRICES_BATCH_SIZE,
352
352
  eachBatch: async (allTokenPricesByTokenAddress, batch) => {
353
353
  const tokenPricesByTokenAddressForBatch = await _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _tokenPricesService).fetchTokenPrices({
354
354
  tokenAddresses: batch,
@@ -370,9 +370,9 @@ fetchAndMapExchangeRatesForSupportedNativeCurrency_fn = async function({
370
370
  currency: nativeCurrency
371
371
  });
372
372
  contractNativeInformations = {
373
- [_chunkY7G5RKIFjs.ZERO_ADDRESS]: {
373
+ [_chunkTN227P74js.ZERO_ADDRESS]: {
374
374
  currency: nativeCurrency,
375
- ...contractNativeInformationsNative[_chunkY7G5RKIFjs.ZERO_ADDRESS]
375
+ ...contractNativeInformationsNative[_chunkTN227P74js.ZERO_ADDRESS]
376
376
  }
377
377
  };
378
378
  }
@@ -416,7 +416,7 @@ fetchAndMapExchangeRatesForUnsupportedNativeCurrency_fn = async function({
416
416
  ...acc,
417
417
  [tokenAddress]: {
418
418
  ...token,
419
- value: token.value ? token.value * fallbackCurrencyToNativeCurrencyConversionRate : void 0
419
+ price: token.price ? token.price * fallbackCurrencyToNativeCurrencyConversionRate : void 0
420
420
  }
421
421
  };
422
422
  return acc;
@@ -429,4 +429,4 @@ var TokenRatesController_default = TokenRatesController;
429
429
 
430
430
 
431
431
  exports.TokenRatesController = TokenRatesController; exports.TokenRatesController_default = TokenRatesController_default;
432
- //# sourceMappingURL=chunk-M4ZW6TYC.js.map
432
+ //# sourceMappingURL=chunk-3NTGK7OO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/TokenRatesController.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BaseConfig, BaseState } from '@metamask/base-controller';\nimport {\n safelyExecute,\n toChecksumHexAddress,\n FALL_BACK_VS_CURRENCY,\n toHex,\n} from '@metamask/controller-utils';\nimport type {\n NetworkClientId,\n NetworkController,\n NetworkState,\n} from '@metamask/network-controller';\nimport { StaticIntervalPollingControllerV1 } from '@metamask/polling-controller';\nimport type { PreferencesState } from '@metamask/preferences-controller';\nimport { createDeferredPromise, type Hex } from '@metamask/utils';\nimport { isEqual } from 'lodash';\n\nimport { reduceInBatchesSerially, TOKEN_PRICES_BATCH_SIZE } from './assetsUtil';\nimport { fetchExchangeRate as fetchNativeCurrencyExchangeRate } from './crypto-compare-service';\nimport type { AbstractTokenPricesService } from './token-prices-service/abstract-token-prices-service';\nimport { ZERO_ADDRESS } from './token-prices-service/codefi-v2';\nimport type { TokensControllerState } from './TokensController';\n\n/**\n * @type Token\n *\n * Token representation\n * @property address - Hex address of the token contract\n * @property decimals - Number of decimals the token uses\n * @property symbol - Symbol of the token\n * @property image - Image of the token, url or bit32 image\n */\n\nexport type Token = {\n address: string;\n decimals: number;\n symbol: string;\n aggregators?: string[];\n image?: string;\n hasBalanceError?: boolean;\n isERC721?: boolean;\n name?: string;\n};\n\n/**\n * @type TokenRatesConfig\n *\n * Token rates controller configuration\n * @property interval - Polling interval used to fetch new token rates\n * @property nativeCurrency - Current native currency selected to use base of rates\n * @property chainId - Current network chainId\n * @property tokens - List of tokens to track exchange rates for\n * @property threshold - Threshold to invalidate the supportedChains\n */\n// This interface was created before this ESLint rule was added.\n// Convert to a `type` in a future major version.\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport interface TokenRatesConfig extends BaseConfig {\n interval: number;\n nativeCurrency: string;\n chainId: Hex;\n selectedAddress: string;\n allTokens: { [chainId: Hex]: { [key: string]: Token[] } };\n allDetectedTokens: { [chainId: Hex]: { [key: string]: Token[] } };\n threshold: number;\n}\n\n// This interface was created before this ESLint rule was added.\n// Convert to a `type` in a future major version.\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport interface ContractExchangeRates {\n [address: string]: number | undefined;\n}\n\ntype MarketDataDetails = {\n tokenAddress: `0x${string}`;\n currency: string;\n allTimeHigh: number;\n allTimeLow: number;\n circulatingSupply: number;\n dilutedMarketCap: number;\n high1d: number;\n low1d: number;\n marketCap: number;\n marketCapPercentChange1d: number;\n price: number;\n priceChange1d: number;\n pricePercentChange1d: number;\n pricePercentChange1h: number;\n pricePercentChange1y: number;\n pricePercentChange7d: number;\n pricePercentChange14d: number;\n pricePercentChange30d: number;\n pricePercentChange200d: number;\n totalVolume: number;\n};\n\nexport type ContractMarketData = Record<Hex, MarketDataDetails>;\n\nenum PollState {\n Active = 'Active',\n Inactive = 'Inactive',\n}\n\n/**\n * @type TokenRatesState\n *\n * Token rates controller state\n * @property marketData - Market data for tokens, keyed by chain ID and then token contract address.\n */\n// This interface was created before this ESLint rule was added.\n// Convert to a `type` in a future major version.\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport interface TokenRatesState extends BaseState {\n marketData: Record<Hex, Record<Hex, MarketDataDetails>>;\n}\n\n/**\n * Uses the CryptoCompare API to fetch the exchange rate between one currency\n * and another, i.e., the multiplier to apply the amount of one currency in\n * order to convert it to another.\n *\n * @param args - The arguments to this function.\n * @param args.from - The currency to convert from.\n * @param args.to - The currency to convert to.\n * @returns The exchange rate between `fromCurrency` to `toCurrency` if one\n * exists, or null if one does not.\n */\nasync function getCurrencyConversionRate({\n from,\n to,\n}: {\n from: string;\n to: string;\n}) {\n const includeUSDRate = false;\n try {\n const result = await fetchNativeCurrencyExchangeRate(\n to,\n from,\n includeUSDRate,\n );\n return result.conversionRate;\n } catch (error) {\n if (\n error instanceof Error &&\n error.message.includes('market does not exist for this coin pair')\n ) {\n return null;\n }\n throw error;\n }\n}\n\n/**\n * Controller that passively polls on a set interval for token-to-fiat exchange rates\n * for tokens stored in the TokensController\n */\nexport class TokenRatesController extends StaticIntervalPollingControllerV1<\n TokenRatesConfig,\n TokenRatesState\n> {\n private handle?: ReturnType<typeof setTimeout>;\n\n #pollState = PollState.Inactive;\n\n #tokenPricesService: AbstractTokenPricesService;\n\n #inProcessExchangeRateUpdates: Record<`${Hex}:${string}`, Promise<void>> = {};\n\n /**\n * Name of this controller used during composition\n */\n override name = 'TokenRatesController' as const;\n\n private readonly getNetworkClientById: NetworkController['getNetworkClientById'];\n\n /**\n * Creates a TokenRatesController instance.\n *\n * @param options - The controller options.\n * @param options.interval - The polling interval in ms\n * @param options.threshold - The duration in ms before metadata fetched from CoinGecko is considered stale\n * @param options.getNetworkClientById - Gets the network client with the given id from the NetworkController.\n * @param options.chainId - The chain ID of the current network.\n * @param options.ticker - The ticker for the current network.\n * @param options.selectedAddress - The current selected address.\n * @param options.onPreferencesStateChange - Allows subscribing to preference controller state changes.\n * @param options.onTokensStateChange - Allows subscribing to token controller state changes.\n * @param options.onNetworkStateChange - Allows subscribing to network state changes.\n * @param options.tokenPricesService - An object in charge of retrieving token prices.\n * @param config - Initial options used to configure this controller.\n * @param state - Initial state to set on this controller.\n */\n constructor(\n {\n interval = 3 * 60 * 1000,\n threshold = 6 * 60 * 60 * 1000,\n getNetworkClientById,\n chainId: initialChainId,\n ticker: initialTicker,\n selectedAddress: initialSelectedAddress,\n onPreferencesStateChange,\n onTokensStateChange,\n onNetworkStateChange,\n tokenPricesService,\n }: {\n interval?: number;\n threshold?: number;\n getNetworkClientById: NetworkController['getNetworkClientById'];\n chainId: Hex;\n ticker: string;\n selectedAddress: string;\n onPreferencesStateChange: (\n listener: (preferencesState: PreferencesState) => void,\n ) => void;\n onTokensStateChange: (\n listener: (tokensState: TokensControllerState) => void,\n ) => void;\n onNetworkStateChange: (\n listener: (networkState: NetworkState) => void,\n ) => void;\n tokenPricesService: AbstractTokenPricesService;\n },\n config?: Partial<TokenRatesConfig>,\n state?: Partial<TokenRatesState>,\n ) {\n super(config, state);\n this.defaultConfig = {\n interval,\n threshold,\n disabled: false,\n nativeCurrency: initialTicker,\n chainId: initialChainId,\n selectedAddress: initialSelectedAddress,\n allTokens: {}, // TODO: initialize these correctly, maybe as part of BaseControllerV2 migration\n allDetectedTokens: {},\n };\n\n this.defaultState = {\n marketData: {},\n };\n this.initialize();\n this.setIntervalLength(interval);\n this.getNetworkClientById = getNetworkClientById;\n this.#tokenPricesService = tokenPricesService;\n\n if (config?.disabled) {\n this.configure({ disabled: true }, false, false);\n }\n\n onPreferencesStateChange(async ({ selectedAddress }) => {\n if (this.config.selectedAddress !== selectedAddress) {\n this.configure({ selectedAddress });\n if (this.#pollState === PollState.Active) {\n await this.updateExchangeRates();\n }\n }\n });\n\n onTokensStateChange(async ({ allTokens, allDetectedTokens }) => {\n const previousTokenAddresses = this.#getTokenAddresses(\n this.config.chainId,\n );\n this.configure({ allTokens, allDetectedTokens });\n const newTokenAddresses = this.#getTokenAddresses(this.config.chainId);\n if (\n !isEqual(previousTokenAddresses, newTokenAddresses) &&\n this.#pollState === PollState.Active\n ) {\n await this.updateExchangeRates();\n }\n });\n\n onNetworkStateChange(async ({ selectedNetworkClientId }) => {\n const selectedNetworkClient = getNetworkClientById(\n selectedNetworkClientId,\n );\n const { chainId, ticker } = selectedNetworkClient.configuration;\n\n if (\n this.config.chainId !== chainId ||\n this.config.nativeCurrency !== ticker\n ) {\n this.update({ ...this.defaultState });\n this.configure({ chainId, nativeCurrency: ticker });\n if (this.#pollState === PollState.Active) {\n await this.updateExchangeRates();\n }\n }\n });\n }\n\n /**\n * Get the user's tokens for the given chain.\n *\n * @param chainId - The chain ID.\n * @returns The list of tokens addresses for the current chain\n */\n #getTokenAddresses(chainId: Hex): Hex[] {\n const { allTokens, allDetectedTokens } = this.config;\n const tokens = allTokens[chainId]?.[this.config.selectedAddress] || [];\n const detectedTokens =\n allDetectedTokens[chainId]?.[this.config.selectedAddress] || [];\n\n return [\n ...new Set(\n [...tokens, ...detectedTokens].map((token) =>\n toHex(toChecksumHexAddress(token.address)),\n ),\n ),\n ].sort();\n }\n\n /**\n * Start (or restart) polling.\n */\n async start() {\n this.#stopPoll();\n this.#pollState = PollState.Active;\n await this.#poll();\n }\n\n /**\n * Stop polling.\n */\n stop() {\n this.#stopPoll();\n this.#pollState = PollState.Inactive;\n }\n\n /**\n * Clear the active polling timer, if present.\n */\n #stopPoll() {\n if (this.handle) {\n clearTimeout(this.handle);\n }\n }\n\n /**\n * Poll for exchange rate updates.\n */\n async #poll() {\n await safelyExecute(() => this.updateExchangeRates());\n\n // Poll using recursive `setTimeout` instead of `setInterval` so that\n // requests don't stack if they take longer than the polling interval\n this.handle = setTimeout(() => {\n this.#poll();\n }, this.config.interval);\n }\n\n /**\n * Updates exchange rates for all tokens.\n */\n async updateExchangeRates() {\n const { chainId, nativeCurrency } = this.config;\n await this.updateExchangeRatesByChainId({\n chainId,\n nativeCurrency,\n });\n }\n\n /**\n * Updates exchange rates for all tokens.\n *\n * @param options - The options to fetch exchange rates.\n * @param options.chainId - The chain ID.\n * @param options.nativeCurrency - The ticker for the chain.\n */\n async updateExchangeRatesByChainId({\n chainId,\n nativeCurrency,\n }: {\n chainId: Hex;\n nativeCurrency: string;\n }) {\n if (this.disabled) {\n return;\n }\n\n const tokenAddresses = this.#getTokenAddresses(chainId);\n\n const updateKey: `${Hex}:${string}` = `${chainId}:${nativeCurrency}`;\n if (updateKey in this.#inProcessExchangeRateUpdates) {\n // This prevents redundant updates\n // This promise is resolved after the in-progress update has finished,\n // and state has been updated.\n await this.#inProcessExchangeRateUpdates[updateKey];\n return;\n }\n\n const {\n promise: inProgressUpdate,\n resolve: updateSucceeded,\n reject: updateFailed,\n } = createDeferredPromise({ suppressUnhandledRejection: true });\n this.#inProcessExchangeRateUpdates[updateKey] = inProgressUpdate;\n\n try {\n const contractInformations = await this.#fetchAndMapExchangeRates({\n tokenAddresses,\n chainId,\n nativeCurrency,\n });\n\n const marketData = {\n [chainId]: {\n ...(contractInformations ?? {}),\n },\n };\n\n this.update({\n marketData,\n });\n updateSucceeded();\n } catch (error: unknown) {\n updateFailed(error);\n throw error;\n } finally {\n delete this.#inProcessExchangeRateUpdates[updateKey];\n }\n }\n\n /**\n * Uses the token prices service to retrieve exchange rates for tokens in a\n * particular currency.\n *\n * If the price API does not support the given chain ID, returns an empty\n * object.\n *\n * If the price API does not support the given currency, retrieves exchange\n * rates in a known currency instead, then converts those rates using the\n * exchange rate between the known currency and desired currency.\n *\n * @param args - The arguments to this function.\n * @param args.tokenAddresses - Addresses for tokens.\n * @param args.chainId - The EIP-155 ID of the chain where the tokens live.\n * @param args.nativeCurrency - The native currency in which to request\n * exchange rates.\n * @returns A map from token address to its exchange rate in the native\n * currency, or an empty map if no exchange rates can be obtained for the\n * chain ID.\n */\n async #fetchAndMapExchangeRates({\n tokenAddresses,\n chainId,\n nativeCurrency,\n }: {\n tokenAddresses: Hex[];\n chainId: Hex;\n nativeCurrency: string;\n }): Promise<ContractMarketData> {\n if (!this.#tokenPricesService.validateChainIdSupported(chainId)) {\n return tokenAddresses.reduce((obj, tokenAddress) => {\n obj = {\n ...obj,\n [tokenAddress]: undefined,\n };\n\n return obj;\n }, {});\n }\n\n if (this.#tokenPricesService.validateCurrencySupported(nativeCurrency)) {\n return await this.#fetchAndMapExchangeRatesForSupportedNativeCurrency({\n tokenAddresses,\n chainId,\n nativeCurrency,\n });\n }\n return await this.#fetchAndMapExchangeRatesForUnsupportedNativeCurrency({\n tokenAddresses,\n nativeCurrency,\n });\n }\n\n /**\n * Updates token rates for the given networkClientId\n *\n * @param networkClientId - The network client ID used to get a ticker value.\n * @returns The controller state.\n */\n async _executePoll(networkClientId: NetworkClientId): Promise<void> {\n const networkClient = this.getNetworkClientById(networkClientId);\n await this.updateExchangeRatesByChainId({\n chainId: networkClient.configuration.chainId,\n nativeCurrency: networkClient.configuration.ticker,\n });\n }\n\n /**\n * Retrieves prices in the given currency for the given tokens on the given\n * chain. Ensures that token addresses are checksum addresses.\n *\n * @param args - The arguments to this function.\n * @param args.tokenAddresses - Addresses for tokens.\n * @param args.chainId - The EIP-155 ID of the chain where the tokens live.\n * @param args.nativeCurrency - The native currency in which to request\n * prices.\n * @returns A map of the token addresses (as checksums) to their prices in the\n * native currency.\n */\n async #fetchAndMapExchangeRatesForSupportedNativeCurrency({\n tokenAddresses,\n chainId,\n nativeCurrency,\n }: {\n tokenAddresses: Hex[];\n chainId: Hex;\n nativeCurrency: string;\n }): Promise<ContractMarketData> {\n let contractNativeInformations;\n const tokenPricesByTokenAddress = await reduceInBatchesSerially<\n Hex,\n Awaited<ReturnType<AbstractTokenPricesService['fetchTokenPrices']>>\n >({\n values: [...tokenAddresses].sort(),\n batchSize: TOKEN_PRICES_BATCH_SIZE,\n eachBatch: async (allTokenPricesByTokenAddress, batch) => {\n const tokenPricesByTokenAddressForBatch =\n await this.#tokenPricesService.fetchTokenPrices({\n tokenAddresses: batch,\n chainId,\n currency: nativeCurrency,\n });\n\n return {\n ...allTokenPricesByTokenAddress,\n ...tokenPricesByTokenAddressForBatch,\n };\n },\n initialResult: {},\n });\n contractNativeInformations = tokenPricesByTokenAddress;\n\n // fetch for native token\n if (tokenAddresses.length === 0) {\n const contractNativeInformationsNative =\n await this.#tokenPricesService.fetchTokenPrices({\n tokenAddresses: [],\n chainId,\n currency: nativeCurrency,\n });\n\n contractNativeInformations = {\n [ZERO_ADDRESS]: {\n currency: nativeCurrency,\n ...contractNativeInformationsNative[ZERO_ADDRESS],\n },\n };\n }\n return Object.entries(contractNativeInformations).reduce(\n (obj, [tokenAddress, token]) => {\n obj = {\n ...obj,\n [tokenAddress.toLowerCase()]: { ...token },\n };\n\n return obj;\n },\n {},\n );\n }\n\n /**\n * If the price API does not support a given native currency, then we need to\n * convert it to a fallback currency and feed that currency into the price\n * API, then convert the prices to our desired native currency.\n *\n * @param args - The arguments to this function.\n * @param args.tokenAddresses - Addresses for tokens.\n * @param args.nativeCurrency - The native currency in which to request\n * prices.\n * @returns A map of the token addresses (as checksums) to their prices in the\n * native currency.\n */\n async #fetchAndMapExchangeRatesForUnsupportedNativeCurrency({\n tokenAddresses,\n nativeCurrency,\n }: {\n tokenAddresses: Hex[];\n nativeCurrency: string;\n }): Promise<ContractMarketData> {\n const [\n contractExchangeInformations,\n fallbackCurrencyToNativeCurrencyConversionRate,\n ] = await Promise.all([\n this.#fetchAndMapExchangeRatesForSupportedNativeCurrency({\n tokenAddresses,\n chainId: this.config.chainId,\n nativeCurrency: FALL_BACK_VS_CURRENCY,\n }),\n getCurrencyConversionRate({\n from: FALL_BACK_VS_CURRENCY,\n to: nativeCurrency,\n }),\n ]);\n\n if (fallbackCurrencyToNativeCurrencyConversionRate === null) {\n return {};\n }\n\n const updatedContractExchangeRates = Object.entries(\n contractExchangeInformations,\n ).reduce((acc, [tokenAddress, token]) => {\n acc = {\n ...acc,\n [tokenAddress]: {\n ...token,\n price: token.price\n ? token.price * fallbackCurrencyToNativeCurrencyConversionRate\n : undefined,\n },\n };\n return acc;\n }, {});\n\n return updatedContractExchangeRates;\n }\n}\n\nexport default TokenRatesController;\n"]}
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkPYMUBJQXjs = require('./chunk-PYMUBJQX.js');
3
+ var _chunkS3OXHT4Mjs = require('./chunk-S3OXHT4M.js');
4
4
 
5
5
 
6
6
 
7
7
 
8
- var _chunkNEXY7SE2js = require('./chunk-NEXY7SE2.js');
8
+ var _chunkVJCRI43Tjs = require('./chunk-VJCRI43T.js');
9
9
 
10
10
 
11
11
 
@@ -97,7 +97,7 @@ var TokenListController = class extends _pollingcontroller.StaticIntervalPolling
97
97
  * Start polling for the token list.
98
98
  */
99
99
  async start() {
100
- if (!_chunkNEXY7SE2js.isTokenListSupportedForNetwork.call(void 0, this.chainId)) {
100
+ if (!_chunkVJCRI43Tjs.isTokenListSupportedForNetwork.call(void 0, this.chainId)) {
101
101
  return;
102
102
  }
103
103
  await this.startPolling();
@@ -173,7 +173,7 @@ var TokenListController = class extends _pollingcontroller.StaticIntervalPolling
173
173
  tokenList = { ...cachedTokens };
174
174
  } else {
175
175
  const tokensFromAPI = await _controllerutils.safelyExecute.call(void 0,
176
- () => _chunkPYMUBJQXjs.fetchTokenListByChainId.call(void 0,
176
+ () => _chunkS3OXHT4Mjs.fetchTokenListByChainId.call(void 0,
177
177
  chainId,
178
178
  this.abortController.signal
179
179
  )
@@ -192,8 +192,8 @@ var TokenListController = class extends _pollingcontroller.StaticIntervalPolling
192
192
  for (const token of tokensFromAPI) {
193
193
  const formattedToken = {
194
194
  ...token,
195
- aggregators: _chunkNEXY7SE2js.formatAggregatorNames.call(void 0, token.aggregators),
196
- iconUrl: _chunkNEXY7SE2js.formatIconUrlWithProxy.call(void 0, {
195
+ aggregators: _chunkVJCRI43Tjs.formatAggregatorNames.call(void 0, token.aggregators),
196
+ iconUrl: _chunkVJCRI43Tjs.formatIconUrlWithProxy.call(void 0, {
197
197
  chainId,
198
198
  tokenAddress: token.address
199
199
  })
@@ -247,10 +247,15 @@ var TokenListController = class extends _pollingcontroller.StaticIntervalPolling
247
247
  };
248
248
  _onNetworkControllerStateChange = new WeakSet();
249
249
  onNetworkControllerStateChange_fn = async function(networkControllerState) {
250
- if (this.chainId !== networkControllerState.providerConfig.chainId) {
250
+ const selectedNetworkClient = this.messagingSystem.call(
251
+ "NetworkController:getNetworkClientById",
252
+ networkControllerState.selectedNetworkClientId
253
+ );
254
+ const { chainId } = selectedNetworkClient.configuration;
255
+ if (this.chainId !== chainId) {
251
256
  this.abortController.abort();
252
257
  this.abortController = new AbortController();
253
- this.chainId = networkControllerState.providerConfig.chainId;
258
+ this.chainId = chainId;
254
259
  if (this.state.preventPollingOnNetworkRestart) {
255
260
  this.clearingTokenListData();
256
261
  } else {
@@ -281,4 +286,4 @@ var TokenListController_default = TokenListController;
281
286
 
282
287
 
283
288
  exports.getDefaultTokenListState = getDefaultTokenListState; exports.TokenListController = TokenListController; exports.TokenListController_default = TokenListController_default;
284
- //# sourceMappingURL=chunk-JUI3XNEF.js.map
289
+ //# sourceMappingURL=chunk-5JDOJSUA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/TokenListController.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n RestrictedControllerMessenger,\n} from '@metamask/base-controller';\nimport { safelyExecute } from '@metamask/controller-utils';\nimport type {\n NetworkClientId,\n NetworkControllerStateChangeEvent,\n NetworkState,\n NetworkControllerGetNetworkClientByIdAction,\n} from '@metamask/network-controller';\nimport { StaticIntervalPollingController } from '@metamask/polling-controller';\nimport type { Hex } from '@metamask/utils';\nimport { Mutex } from 'async-mutex';\n\nimport {\n isTokenListSupportedForNetwork,\n formatAggregatorNames,\n formatIconUrlWithProxy,\n} from './assetsUtil';\nimport { fetchTokenListByChainId } from './token-service';\n\nconst DEFAULT_INTERVAL = 24 * 60 * 60 * 1000;\nconst DEFAULT_THRESHOLD = 24 * 60 * 60 * 1000;\n\nconst name = 'TokenListController';\n\nexport type TokenListToken = {\n name: string;\n symbol: string;\n decimals: number;\n address: string;\n occurrences: number;\n aggregators: string[];\n iconUrl: string;\n};\n\nexport type TokenListMap = Record<string, TokenListToken>;\n\ntype DataCache = {\n timestamp: number;\n data: TokenListMap;\n};\ntype TokensChainsCache = {\n [chainId: Hex]: DataCache;\n};\n\nexport type TokenListState = {\n tokenList: TokenListMap;\n tokensChainsCache: TokensChainsCache;\n preventPollingOnNetworkRestart: boolean;\n};\n\nexport type TokenListStateChange = ControllerStateChangeEvent<\n typeof name,\n TokenListState\n>;\n\nexport type TokenListControllerEvents = TokenListStateChange;\n\nexport type GetTokenListState = ControllerGetStateAction<\n typeof name,\n TokenListState\n>;\n\nexport type TokenListControllerActions = GetTokenListState;\n\ntype AllowedActions = NetworkControllerGetNetworkClientByIdAction;\n\ntype AllowedEvents = NetworkControllerStateChangeEvent;\n\nexport type TokenListControllerMessenger = RestrictedControllerMessenger<\n typeof name,\n TokenListControllerActions | AllowedActions,\n TokenListControllerEvents | AllowedEvents,\n AllowedActions['type'],\n AllowedEvents['type']\n>;\n\nconst metadata = {\n tokenList: { persist: true, anonymous: true },\n tokensChainsCache: { persist: true, anonymous: true },\n preventPollingOnNetworkRestart: { persist: true, anonymous: true },\n};\n\nexport const getDefaultTokenListState = (): TokenListState => {\n return {\n tokenList: {},\n tokensChainsCache: {},\n preventPollingOnNetworkRestart: false,\n };\n};\n\n/**\n * Controller that passively polls on a set interval for the list of tokens from metaswaps api\n */\nexport class TokenListController extends StaticIntervalPollingController<\n typeof name,\n TokenListState,\n TokenListControllerMessenger\n> {\n private readonly mutex = new Mutex();\n\n private intervalId?: ReturnType<typeof setTimeout>;\n\n private readonly intervalDelay: number;\n\n private readonly cacheRefreshThreshold: number;\n\n private chainId: Hex;\n\n private abortController: AbortController;\n\n /**\n * Creates a TokenListController instance.\n *\n * @param options - The controller options.\n * @param options.chainId - The chain ID of the current network.\n * @param options.onNetworkStateChange - A function for registering an event handler for network state changes.\n * @param options.interval - The polling interval, in milliseconds.\n * @param options.cacheRefreshThreshold - The token cache expiry time, in milliseconds.\n * @param options.messenger - A restricted controller messenger.\n * @param options.state - Initial state to set on this controller.\n * @param options.preventPollingOnNetworkRestart - Determines whether to prevent poilling on network restart in extension.\n */\n constructor({\n chainId,\n preventPollingOnNetworkRestart = false,\n onNetworkStateChange,\n interval = DEFAULT_INTERVAL,\n cacheRefreshThreshold = DEFAULT_THRESHOLD,\n messenger,\n state,\n }: {\n chainId: Hex;\n preventPollingOnNetworkRestart?: boolean;\n onNetworkStateChange?: (\n listener: (networkState: NetworkState) => void,\n ) => void;\n interval?: number;\n cacheRefreshThreshold?: number;\n messenger: TokenListControllerMessenger;\n state?: Partial<TokenListState>;\n }) {\n super({\n name,\n metadata,\n messenger,\n state: { ...getDefaultTokenListState(), ...state },\n });\n this.intervalDelay = interval;\n this.cacheRefreshThreshold = cacheRefreshThreshold;\n this.chainId = chainId;\n this.updatePreventPollingOnNetworkRestart(preventPollingOnNetworkRestart);\n this.abortController = new AbortController();\n if (onNetworkStateChange) {\n onNetworkStateChange(async (networkControllerState) => {\n await this.#onNetworkControllerStateChange(networkControllerState);\n });\n } else {\n this.messagingSystem.subscribe(\n 'NetworkController:stateChange',\n async (networkControllerState) => {\n await this.#onNetworkControllerStateChange(networkControllerState);\n },\n );\n }\n }\n\n /**\n * Updates state and restarts polling on changes to the network controller\n * state.\n *\n * @param networkControllerState - The updated network controller state.\n */\n async #onNetworkControllerStateChange(networkControllerState: NetworkState) {\n const selectedNetworkClient = this.messagingSystem.call(\n 'NetworkController:getNetworkClientById',\n networkControllerState.selectedNetworkClientId,\n );\n const { chainId } = selectedNetworkClient.configuration;\n\n if (this.chainId !== chainId) {\n this.abortController.abort();\n this.abortController = new AbortController();\n this.chainId = chainId;\n if (this.state.preventPollingOnNetworkRestart) {\n this.clearingTokenListData();\n } else {\n // Ensure tokenList is referencing data from correct network\n this.update(() => {\n return {\n ...this.state,\n tokenList: this.state.tokensChainsCache[this.chainId]?.data || {},\n };\n });\n await this.restart();\n }\n }\n }\n\n /**\n * Start polling for the token list.\n */\n async start() {\n if (!isTokenListSupportedForNetwork(this.chainId)) {\n return;\n }\n await this.startPolling();\n }\n\n /**\n * Restart polling for the token list.\n */\n async restart() {\n this.stopPolling();\n await this.startPolling();\n }\n\n /**\n * Stop polling for the token list.\n */\n stop() {\n this.stopPolling();\n }\n\n /**\n * Prepare to discard this controller.\n *\n * This stops any active polling.\n */\n override destroy() {\n super.destroy();\n this.stopPolling();\n }\n\n private stopPolling() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n /**\n * Starts a new polling interval.\n */\n private async startPolling(): Promise<void> {\n await safelyExecute(() => this.fetchTokenList());\n this.intervalId = setInterval(async () => {\n await safelyExecute(() => this.fetchTokenList());\n }, this.intervalDelay);\n }\n\n /**\n * Fetching token list from the Token Service API.\n *\n * @private\n * @param networkClientId - The ID of the network client triggering the fetch.\n * @returns A promise that resolves when this operation completes.\n */\n async _executePoll(networkClientId: string): Promise<void> {\n return this.fetchTokenList(networkClientId);\n }\n\n /**\n * Fetching token list from the Token Service API.\n *\n * @param networkClientId - The ID of the network client triggering the fetch.\n */\n async fetchTokenList(networkClientId?: NetworkClientId): Promise<void> {\n const releaseLock = await this.mutex.acquire();\n let networkClient;\n if (networkClientId) {\n networkClient = this.messagingSystem.call(\n 'NetworkController:getNetworkClientById',\n networkClientId,\n );\n }\n const chainId = networkClient?.configuration.chainId ?? this.chainId;\n try {\n const { tokensChainsCache } = this.state;\n let tokenList: TokenListMap = {};\n const cachedTokens = await safelyExecute(() =>\n this.#fetchFromCache(chainId),\n );\n if (cachedTokens) {\n // Use non-expired cached tokens\n tokenList = { ...cachedTokens };\n } else {\n // Fetch fresh token list\n const tokensFromAPI = await safelyExecute(\n () =>\n fetchTokenListByChainId(\n chainId,\n this.abortController.signal,\n ) as Promise<TokenListToken[]>,\n );\n\n if (!tokensFromAPI) {\n // Fallback to expired cached tokens\n tokenList = { ...(tokensChainsCache[chainId]?.data || {}) };\n this.update(() => {\n return {\n ...this.state,\n tokenList,\n tokensChainsCache,\n };\n });\n return;\n }\n for (const token of tokensFromAPI) {\n const formattedToken: TokenListToken = {\n ...token,\n aggregators: formatAggregatorNames(token.aggregators),\n iconUrl: formatIconUrlWithProxy({\n chainId,\n tokenAddress: token.address,\n }),\n };\n tokenList[token.address] = formattedToken;\n }\n }\n const updatedTokensChainsCache: TokensChainsCache = {\n ...tokensChainsCache,\n [chainId]: {\n timestamp: Date.now(),\n data: tokenList,\n },\n };\n this.update(() => {\n return {\n ...this.state,\n tokenList,\n tokensChainsCache: updatedTokensChainsCache,\n };\n });\n } finally {\n releaseLock();\n }\n }\n\n /**\n * Checks if the Cache timestamp is valid,\n * if yes data in cache will be returned\n * otherwise null will be returned.\n * @param chainId - The chain ID of the network for which to fetch the cache.\n * @returns The cached data, or `null` if the cache was expired.\n */\n async #fetchFromCache(chainId: Hex): Promise<TokenListMap | null> {\n const { tokensChainsCache }: TokenListState = this.state;\n const dataCache = tokensChainsCache[chainId];\n const now = Date.now();\n if (\n dataCache?.data &&\n now - dataCache?.timestamp < this.cacheRefreshThreshold\n ) {\n return dataCache.data;\n }\n return null;\n }\n\n /**\n * Clearing tokenList and tokensChainsCache explicitly.\n */\n clearingTokenListData(): void {\n this.update(() => {\n return {\n ...this.state,\n tokenList: {},\n tokensChainsCache: {},\n };\n });\n }\n\n /**\n * Updates preventPollingOnNetworkRestart from extension.\n *\n * @param shouldPreventPolling - Determine whether to prevent polling on network change\n */\n updatePreventPollingOnNetworkRestart(shouldPreventPolling: boolean): void {\n this.update(() => {\n return {\n ...this.state,\n preventPollingOnNetworkRestart: shouldPreventPolling,\n };\n });\n }\n}\n\nexport default TokenListController;\n"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getFormattedIpfsUrl
3
- } from "./chunk-Q5JRBGWO.mjs";
3
+ } from "./chunk-SXFTKOHZ.mjs";
4
4
 
5
5
  // src/Standards/NftStandards/ERC721/ERC721Standard.ts
6
6
  import { Contract } from "@ethersproject/contracts";
@@ -175,4 +175,4 @@ var ERC721Standard = class {
175
175
  export {
176
176
  ERC721Standard
177
177
  };
178
- //# sourceMappingURL=chunk-ASA5RLBY.mjs.map
178
+ //# sourceMappingURL=chunk-A3FHQNJH.mjs.map