@metamask/assets-controller 0.1.0 → 1.0.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 (132) hide show
  1. package/CHANGELOG.md +31 -3
  2. package/dist/AssetsController-method-action-types.cjs +7 -0
  3. package/dist/AssetsController-method-action-types.cjs.map +1 -0
  4. package/dist/AssetsController-method-action-types.d.cts +78 -0
  5. package/dist/AssetsController-method-action-types.d.cts.map +1 -0
  6. package/dist/AssetsController-method-action-types.d.mts +78 -0
  7. package/dist/AssetsController-method-action-types.d.mts.map +1 -0
  8. package/dist/AssetsController-method-action-types.mjs +6 -0
  9. package/dist/AssetsController-method-action-types.mjs.map +1 -0
  10. package/dist/AssetsController.cjs +273 -247
  11. package/dist/AssetsController.cjs.map +1 -1
  12. package/dist/AssetsController.d.cts +55 -93
  13. package/dist/AssetsController.d.cts.map +1 -1
  14. package/dist/AssetsController.d.mts +55 -93
  15. package/dist/AssetsController.d.mts.map +1 -1
  16. package/dist/AssetsController.mjs +273 -247
  17. package/dist/AssetsController.mjs.map +1 -1
  18. package/dist/data-sources/AbstractDataSource.cjs +8 -0
  19. package/dist/data-sources/AbstractDataSource.cjs.map +1 -1
  20. package/dist/data-sources/AbstractDataSource.d.cts +16 -1
  21. package/dist/data-sources/AbstractDataSource.d.cts.map +1 -1
  22. package/dist/data-sources/AbstractDataSource.d.mts +16 -1
  23. package/dist/data-sources/AbstractDataSource.d.mts.map +1 -1
  24. package/dist/data-sources/AbstractDataSource.mjs +8 -0
  25. package/dist/data-sources/AbstractDataSource.mjs.map +1 -1
  26. package/dist/data-sources/AccountsApiDataSource.cjs +25 -99
  27. package/dist/data-sources/AccountsApiDataSource.cjs.map +1 -1
  28. package/dist/data-sources/AccountsApiDataSource.d.cts +5 -67
  29. package/dist/data-sources/AccountsApiDataSource.d.cts.map +1 -1
  30. package/dist/data-sources/AccountsApiDataSource.d.mts +5 -67
  31. package/dist/data-sources/AccountsApiDataSource.d.mts.map +1 -1
  32. package/dist/data-sources/AccountsApiDataSource.mjs +24 -97
  33. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -1
  34. package/dist/data-sources/BackendWebsocketDataSource.cjs +138 -45
  35. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -1
  36. package/dist/data-sources/BackendWebsocketDataSource.d.cts +19 -66
  37. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -1
  38. package/dist/data-sources/BackendWebsocketDataSource.d.mts +19 -66
  39. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -1
  40. package/dist/data-sources/BackendWebsocketDataSource.mjs +138 -45
  41. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -1
  42. package/dist/data-sources/PriceDataSource.cjs +22 -44
  43. package/dist/data-sources/PriceDataSource.cjs.map +1 -1
  44. package/dist/data-sources/PriceDataSource.d.cts +6 -89
  45. package/dist/data-sources/PriceDataSource.d.cts.map +1 -1
  46. package/dist/data-sources/PriceDataSource.d.mts +6 -89
  47. package/dist/data-sources/PriceDataSource.d.mts.map +1 -1
  48. package/dist/data-sources/PriceDataSource.mjs +22 -44
  49. package/dist/data-sources/PriceDataSource.mjs.map +1 -1
  50. package/dist/data-sources/RpcDataSource.cjs +64 -102
  51. package/dist/data-sources/RpcDataSource.cjs.map +1 -1
  52. package/dist/data-sources/RpcDataSource.d.cts +16 -62
  53. package/dist/data-sources/RpcDataSource.d.cts.map +1 -1
  54. package/dist/data-sources/RpcDataSource.d.mts +16 -62
  55. package/dist/data-sources/RpcDataSource.d.mts.map +1 -1
  56. package/dist/data-sources/RpcDataSource.mjs +64 -102
  57. package/dist/data-sources/RpcDataSource.mjs.map +1 -1
  58. package/dist/data-sources/SnapDataSource.cjs +32 -30
  59. package/dist/data-sources/SnapDataSource.cjs.map +1 -1
  60. package/dist/data-sources/SnapDataSource.d.cts +7 -44
  61. package/dist/data-sources/SnapDataSource.d.cts.map +1 -1
  62. package/dist/data-sources/SnapDataSource.d.mts +7 -44
  63. package/dist/data-sources/SnapDataSource.d.mts.map +1 -1
  64. package/dist/data-sources/SnapDataSource.mjs +32 -30
  65. package/dist/data-sources/SnapDataSource.mjs.map +1 -1
  66. package/dist/data-sources/TokenDataSource.cjs +3 -16
  67. package/dist/data-sources/TokenDataSource.cjs.map +1 -1
  68. package/dist/data-sources/TokenDataSource.d.cts +2 -25
  69. package/dist/data-sources/TokenDataSource.d.cts.map +1 -1
  70. package/dist/data-sources/TokenDataSource.d.mts +2 -25
  71. package/dist/data-sources/TokenDataSource.d.mts.map +1 -1
  72. package/dist/data-sources/TokenDataSource.mjs +3 -16
  73. package/dist/data-sources/TokenDataSource.mjs.map +1 -1
  74. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs +27 -35
  75. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.cjs.map +1 -1
  76. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.cts.map +1 -1
  77. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.d.mts.map +1 -1
  78. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs +27 -35
  79. package/dist/data-sources/evm-rpc-services/clients/MulticallClient.mjs.map +1 -1
  80. package/dist/data-sources/index.cjs +1 -6
  81. package/dist/data-sources/index.cjs.map +1 -1
  82. package/dist/data-sources/index.d.cts +6 -7
  83. package/dist/data-sources/index.d.cts.map +1 -1
  84. package/dist/data-sources/index.d.mts +6 -7
  85. package/dist/data-sources/index.d.mts.map +1 -1
  86. package/dist/data-sources/index.mjs +1 -3
  87. package/dist/data-sources/index.mjs.map +1 -1
  88. package/dist/index.cjs +6 -6
  89. package/dist/index.cjs.map +1 -1
  90. package/dist/index.d.cts +11 -11
  91. package/dist/index.d.cts.map +1 -1
  92. package/dist/index.d.mts +11 -11
  93. package/dist/index.d.mts.map +1 -1
  94. package/dist/index.mjs +3 -3
  95. package/dist/index.mjs.map +1 -1
  96. package/dist/middlewares/DetectionMiddleware.cjs +4 -27
  97. package/dist/middlewares/DetectionMiddleware.cjs.map +1 -1
  98. package/dist/middlewares/DetectionMiddleware.d.cts +3 -26
  99. package/dist/middlewares/DetectionMiddleware.d.cts.map +1 -1
  100. package/dist/middlewares/DetectionMiddleware.d.mts +3 -26
  101. package/dist/middlewares/DetectionMiddleware.d.mts.map +1 -1
  102. package/dist/middlewares/DetectionMiddleware.mjs +4 -27
  103. package/dist/middlewares/DetectionMiddleware.mjs.map +1 -1
  104. package/dist/middlewares/index.cjs.map +1 -1
  105. package/dist/middlewares/index.d.cts +1 -1
  106. package/dist/middlewares/index.d.cts.map +1 -1
  107. package/dist/middlewares/index.d.mts +1 -1
  108. package/dist/middlewares/index.d.mts.map +1 -1
  109. package/dist/middlewares/index.mjs.map +1 -1
  110. package/dist/selectors/balance.cjs +306 -0
  111. package/dist/selectors/balance.cjs.map +1 -0
  112. package/dist/selectors/balance.d.cts +22 -0
  113. package/dist/selectors/balance.d.cts.map +1 -0
  114. package/dist/selectors/balance.d.mts +22 -0
  115. package/dist/selectors/balance.d.mts.map +1 -0
  116. package/dist/selectors/balance.mjs +297 -0
  117. package/dist/selectors/balance.mjs.map +1 -0
  118. package/dist/types.cjs.map +1 -1
  119. package/dist/types.d.cts +63 -18
  120. package/dist/types.d.cts.map +1 -1
  121. package/dist/types.d.mts +63 -18
  122. package/dist/types.d.mts.map +1 -1
  123. package/dist/types.mjs.map +1 -1
  124. package/package.json +4 -4
  125. package/dist/data-sources/initDataSources.cjs +0 -215
  126. package/dist/data-sources/initDataSources.cjs.map +0 -1
  127. package/dist/data-sources/initDataSources.d.cts +0 -140
  128. package/dist/data-sources/initDataSources.d.cts.map +0 -1
  129. package/dist/data-sources/initDataSources.d.mts +0 -140
  130. package/dist/data-sources/initDataSources.d.mts.map +0 -1
  131. package/dist/data-sources/initDataSources.mjs +0 -210
  132. package/dist/data-sources/initDataSources.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RpcDataSource.d.mts","sourceRoot":"","sources":["../../src/data-sources/RpcDataSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,uCAAuC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,qCAAqC;AAMhF,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,iCAA6B;AAkBhE,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EAEb,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACX,qBAAiB;AAElB,QAAA,MAAM,eAAe,kBAAkB,CAAC;AAOxC,MAAM,MAAM,sCAAsC,GAAG;IACnD,IAAI,EAAE,mCAAmC,CAAC;IAC1C,OAAO,EAAE,MAAM,UAAU,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,EAAE,+BAA+B,CAAC;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAChE,OAAO,eAAe,EACtB,kBAAkB,CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B,2BAA2B,GAC3B,sCAAsC,GACtC,kCAAkC,GAClC,wBAAwB,GACxB,4BAA4B,GAC5B,8BAA8B,CAAC;AAGnC,MAAM,MAAM,qCAAqC,GAAG;IAClD,IAAI,EAAE,mCAAmC,CAAC;IAC1C,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,6BAA6B,CAAC;IACpC,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,0BAA0B,CACpE,OAAO,eAAe,EACtB,kBAAkB,CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,6BAA6B,GAC7B,qCAAqC,GACrC,+BAA+B,CAAC;AAGpC,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,4BAA4B,CAAC;IACnC,OAAO,EAAE,MAAM,YAAY,CAAC;CAC7B,CAAC;AAGF,MAAM,MAAM,2CAA2C,GAAG;IACxD,IAAI,EAAE,wCAAwC,CAAC;IAC/C,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,aAAa,CAAC;CACrD,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAGF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7E,CAAC;AAGF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,+BAA+B,CAAC;IACtC,OAAO,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;CAClC,CAAC;AAGF,KAAK,KAAK,GAAG;IACX,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,KAAK,wCAAwC,GAAG;IAC9C,IAAI,EAAE,qCAAqC,CAAC;IAC5C,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CAClE,CAAC;AAEF,KAAK,kCAAkC,GAAG;IACxC,IAAI,EAAE,+BAA+B,CAAC;IACtC,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE,CAAC;AAGF,KAAK,iCAAiC,GAAG;IACvC,IAAI,EAAE,8BAA8B,CAAC;IACrC,OAAO,EAAE,MAAM;QACb,iBAAiB,EAAE,MAAM,CACvB,MAAM,EACN;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CACrD,CAAC;KACH,CAAC;CACH,CAAC;AAGF,KAAK,8BAA8B,GAAG;IACpC,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,MAAM;QACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC,CAAC,CAAC;QACjE,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC,CAAC,CAAC;QACzE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACrD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;KACnE,CAAC;CACH,CAAC;AAGF,KAAK,yCAAyC,GAAG;IAC/C,IAAI,EAAE,sCAAsC,CAAC;IAC7C,OAAO,EAAE,MAAM;QACb,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChD,CAAC;CACH,CAAC;AAGF,MAAM,MAAM,2BAA2B,GACnC,+BAA+B,GAC/B,2CAA2C,GAC3C,wCAAwC,GACxC,kCAAkC,GAClC,8BAA8B,GAC9B,iCAAiC,GACjC,yCAAyC,CAAC;AAG9C,MAAM,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAE3E,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAC5C,OAAO,eAAe,EACtB,oBAAoB,GAAG,2BAA2B,EAClD,mBAAmB,GAAG,0BAA0B,CACjD,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,iCAAiC;AACjC,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,sBAAsB,CAAC;IAClC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAgBF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,MAAM,KAAG,GAUlD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAc,SAAQ,cAAc,CAC/C,OAAO,eAAe,EACtB,kBAAkB,EAClB,sBAAsB,CACvB;;gBAwBa,OAAO,EAAE,oBAAoB;IAwezC;;;;OAIG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI3C;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;IAIhD;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS;IAIzD;;;;OAIG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKjD;;;;OAIG;IACH,yBAAyB,IAAI,MAAM,GAAG,SAAS;IAI/C;;;;OAIG;IACH,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnD;;;;OAIG;IACH,2BAA2B,IAAI,MAAM,GAAG,SAAS;IAI3C,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA+HxD;;;;;;OAMG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,YAAY,CAAC;IAmFxB,IAAI,gBAAgB,IAAI,UAAU,CAkEjC;IAED;;;;;OAKG;IACG,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwFxE;;;;OAIG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgHxD;;OAEG;IACH,OAAO,IAAI,IAAI;CAahB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAEf"}
1
+ {"version":3,"file":"RpcDataSource.d.mts","sourceRoot":"","sources":["../../src/data-sources/RpcDataSource.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _RpcDataSource_instances, _RpcDataSource_timeout, _RpcDataSource_tokenDetectionEnabled, _RpcDataSource_activeChains, _RpcDataSource_chainStatuses, _RpcDataSource_providerCache, _RpcDataSource_activeSubscriptions, _RpcDataSource_multicallClient, _RpcDataSource_balanceFetcher, _RpcDataSource_tokenDetector, _RpcDataSource_convertToHumanReadable, _RpcDataSource_collectMetadataForBalances, _RpcDataSource_handleBalanceUpdate, _RpcDataSource_handleDetectionUpdate, _RpcDataSource_registerActionHandlers, _RpcDataSource_subscribeToNetworkController, _RpcDataSource_initializeFromNetworkController, _RpcDataSource_updateFromNetworkState, _RpcDataSource_getProvider, _RpcDataSource_getMulticallProvider, _RpcDataSource_clearProviderCache, _RpcDataSource_accountSupportsChain, _RpcDataSource_buildNativeAssetId, _RpcDataSource_getExistingAssetsMetadata, _RpcDataSource_getTokenMetadataFromTokenList;
12
+ var _RpcDataSource_instances, _RpcDataSource_messenger, _RpcDataSource_onActiveChainsUpdated, _RpcDataSource_timeout, _RpcDataSource_tokenDetectionEnabled, _RpcDataSource_activeChains, _RpcDataSource_chainStatuses, _RpcDataSource_providerCache, _RpcDataSource_activeSubscriptions, _RpcDataSource_multicallClient, _RpcDataSource_balanceFetcher, _RpcDataSource_tokenDetector, _RpcDataSource_convertToHumanReadable, _RpcDataSource_collectMetadataForBalances, _RpcDataSource_handleBalanceUpdate, _RpcDataSource_handleDetectionUpdate, _RpcDataSource_subscribeToNetworkController, _RpcDataSource_initializeFromNetworkController, _RpcDataSource_updateFromNetworkState, _RpcDataSource_getProvider, _RpcDataSource_getMulticallProvider, _RpcDataSource_clearProviderCache, _RpcDataSource_buildNativeAssetId, _RpcDataSource_getExistingAssetsMetadata, _RpcDataSource_getTokenMetadataFromTokenList;
13
13
  import { Web3Provider } from "@ethersproject/providers";
14
- import { BaseController } from "@metamask/base-controller";
15
14
  import { toHex } from "@metamask/controller-utils";
16
15
  import { isStrictHexString, isCaipChainId, parseCaipChainId } from "@metamask/utils";
17
16
  import BigNumberJS from "bignumber.js";
17
+ import { AbstractDataSource } from "./AbstractDataSource.mjs";
18
18
  import { BalanceFetcher, MulticallClient, TokenDetector } from "./evm-rpc-services/index.mjs";
19
19
  import { projectLogger, createModuleLogger } from "../logger.mjs";
20
20
  const CONTROLLER_NAME = 'RpcDataSource';
@@ -54,15 +54,12 @@ export const caipChainIdToHex = (chainId) => {
54
54
  * - RpcDataSource:activeChainsUpdated
55
55
  * - RpcDataSource:assetsUpdated
56
56
  */
57
- export class RpcDataSource extends BaseController {
57
+ export class RpcDataSource extends AbstractDataSource {
58
58
  constructor(options) {
59
- super({
60
- name: CONTROLLER_NAME,
61
- metadata: {},
62
- state: {},
63
- messenger: options.messenger,
64
- });
59
+ super(CONTROLLER_NAME, { activeChains: [] });
65
60
  _RpcDataSource_instances.add(this);
61
+ _RpcDataSource_messenger.set(this, void 0);
62
+ _RpcDataSource_onActiveChainsUpdated.set(this, void 0);
66
63
  _RpcDataSource_timeout.set(this, void 0);
67
64
  _RpcDataSource_tokenDetectionEnabled.set(this, void 0);
68
65
  /** Currently active chains */
@@ -77,6 +74,8 @@ export class RpcDataSource extends BaseController {
77
74
  _RpcDataSource_multicallClient.set(this, void 0);
78
75
  _RpcDataSource_balanceFetcher.set(this, void 0);
79
76
  _RpcDataSource_tokenDetector.set(this, void 0);
77
+ __classPrivateFieldSet(this, _RpcDataSource_messenger, options.messenger, "f");
78
+ __classPrivateFieldSet(this, _RpcDataSource_onActiveChainsUpdated, options.onActiveChainsUpdated, "f");
80
79
  __classPrivateFieldSet(this, _RpcDataSource_timeout, options.timeout ?? 10000, "f");
81
80
  __classPrivateFieldSet(this, _RpcDataSource_tokenDetectionEnabled, options.tokenDetectionEnabled ?? false, "f");
82
81
  const balanceInterval = options.balanceInterval ?? DEFAULT_BALANCE_INTERVAL;
@@ -94,7 +93,7 @@ export class RpcDataSource extends BaseController {
94
93
  // Create messenger adapters for BalanceFetcher and TokenDetector
95
94
  const balanceFetcherMessenger = {
96
95
  call: (_action) => {
97
- const state = this.messenger.call('AssetsController:getState');
96
+ const state = __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").call('AssetsController:getState');
98
97
  return {
99
98
  assetsBalance: (state.assetsBalance ?? {}),
100
99
  };
@@ -102,7 +101,7 @@ export class RpcDataSource extends BaseController {
102
101
  };
103
102
  const tokenDetectorMessenger = {
104
103
  call: (_action) => {
105
- return this.messenger.call('TokenListController:getState');
104
+ return __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").call('TokenListController:getState');
106
105
  },
107
106
  };
108
107
  // Initialize BalanceFetcher with polling interval
@@ -111,7 +110,6 @@ export class RpcDataSource extends BaseController {
111
110
  // Initialize TokenDetector with polling interval
112
111
  __classPrivateFieldSet(this, _RpcDataSource_tokenDetector, new TokenDetector(__classPrivateFieldGet(this, _RpcDataSource_multicallClient, "f"), tokenDetectorMessenger, { pollingInterval: detectionInterval }), "f");
113
112
  __classPrivateFieldGet(this, _RpcDataSource_tokenDetector, "f").setOnDetectionUpdate(__classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_handleDetectionUpdate).bind(this));
114
- __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_registerActionHandlers).call(this);
115
113
  __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_subscribeToNetworkController).call(this);
116
114
  __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_initializeFromNetworkController).call(this);
117
115
  }
@@ -120,17 +118,6 @@ export class RpcDataSource extends BaseController {
120
118
  *
121
119
  * @returns The name of this data source.
122
120
  */
123
- getName() {
124
- return this.name;
125
- }
126
- /**
127
- * Get currently active chains.
128
- *
129
- * @returns Promise resolving to array of active chain IDs.
130
- */
131
- async getActiveChains() {
132
- return __classPrivateFieldGet(this, _RpcDataSource_activeChains, "f");
133
- }
134
121
  /**
135
122
  * Get the status of all configured chains.
136
123
  *
@@ -186,7 +173,7 @@ export class RpcDataSource extends BaseController {
186
173
  const response = {};
187
174
  const chainsToFetch = request.chainIds.filter((chainId) => __classPrivateFieldGet(this, _RpcDataSource_activeChains, "f").includes(chainId));
188
175
  log('Fetch requested', {
189
- accounts: request.accounts.map((a) => a.id),
176
+ accounts: request.accountsWithSupportedChains.map((a) => a.account.id),
190
177
  requestedChains: request.chainIds,
191
178
  chainsToFetch,
192
179
  });
@@ -197,14 +184,15 @@ export class RpcDataSource extends BaseController {
197
184
  const assetsBalance = {};
198
185
  const assetsMetadata = {};
199
186
  const failedChains = [];
200
- // Fetch balances for each chain using BalanceFetcher
201
- for (const chainId of chainsToFetch) {
202
- const hexChainId = caipChainIdToHex(chainId);
203
- for (const account of request.accounts) {
204
- if (!__classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_accountSupportsChain).call(this, account, chainId)) {
205
- continue;
206
- }
207
- const { address, id: accountId } = account;
187
+ // Fetch balances for each account and its supported chains (pre-computed in request)
188
+ for (const { account, supportedChains, } of request.accountsWithSupportedChains) {
189
+ const chainsForAccount = chainsToFetch.filter((chain) => supportedChains.includes(chain));
190
+ if (chainsForAccount.length === 0) {
191
+ continue;
192
+ }
193
+ const { address, id: accountId } = account;
194
+ for (const chainId of chainsForAccount) {
195
+ const hexChainId = caipChainIdToHex(chainId);
208
196
  try {
209
197
  // Use BalanceFetcher for batched balance fetching
210
198
  const result = await __classPrivateFieldGet(this, _RpcDataSource_balanceFetcher, "f").fetchBalancesForTokens(hexChainId, accountId, address, [], // Empty array means just native token
@@ -352,7 +340,7 @@ export class RpcDataSource extends BaseController {
352
340
  let successfullyHandledChains = [];
353
341
  log('Middleware fetching', {
354
342
  chains: supportedChains,
355
- accounts: request.accounts.map((a) => a.id),
343
+ accounts: request.accountsWithSupportedChains.map((a) => a.account.id),
356
344
  });
357
345
  const response = await this.fetch({
358
346
  ...request,
@@ -402,7 +390,7 @@ export class RpcDataSource extends BaseController {
402
390
  log('Subscribe requested', {
403
391
  subscriptionId,
404
392
  isUpdate,
405
- accounts: request.accounts.map((a) => a.id),
393
+ accounts: request.accountsWithSupportedChains.map((a) => a.account.id),
406
394
  chainsToSubscribe,
407
395
  });
408
396
  if (chainsToSubscribe.length === 0) {
@@ -423,16 +411,17 @@ export class RpcDataSource extends BaseController {
423
411
  }
424
412
  // Clean up existing subscription (stops old polling)
425
413
  await this.unsubscribe(subscriptionId);
426
- // Start polling through BalanceFetcher and TokenDetector
414
+ // Start polling through BalanceFetcher and TokenDetector (use pre-computed supportedChains per account)
427
415
  const balancePollingTokens = [];
428
416
  const detectionPollingTokens = [];
429
- for (const chainId of chainsToSubscribe) {
430
- const hexChainId = caipChainIdToHex(chainId);
431
- for (const account of request.accounts) {
432
- if (!__classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_accountSupportsChain).call(this, account, chainId)) {
433
- continue;
434
- }
435
- const { address, id: accountId } = account;
417
+ for (const { account, supportedChains, } of request.accountsWithSupportedChains) {
418
+ const chainsForAccount = chainsToSubscribe.filter((chain) => supportedChains.includes(chain));
419
+ if (chainsForAccount.length === 0) {
420
+ continue;
421
+ }
422
+ const { address, id: accountId } = account;
423
+ for (const chainId of chainsForAccount) {
424
+ const hexChainId = caipChainIdToHex(chainId);
436
425
  // Start balance polling
437
426
  const balanceInput = {
438
427
  chainId: hexChainId,
@@ -454,11 +443,13 @@ export class RpcDataSource extends BaseController {
454
443
  }
455
444
  }
456
445
  // Store subscription data
446
+ const accounts = request.accountsWithSupportedChains.map((entry) => entry.account);
457
447
  __classPrivateFieldGet(this, _RpcDataSource_activeSubscriptions, "f").set(subscriptionId, {
458
448
  balancePollingTokens,
459
449
  detectionPollingTokens,
460
450
  chains: chainsToSubscribe,
461
- accounts: request.accounts,
451
+ accounts,
452
+ onAssetsUpdate: subscriptionRequest.onAssetsUpdate,
462
453
  });
463
454
  log('Subscription SUCCESS', {
464
455
  subscriptionId,
@@ -501,7 +492,7 @@ export class RpcDataSource extends BaseController {
501
492
  __classPrivateFieldGet(this, _RpcDataSource_providerCache, "f").clear();
502
493
  }
503
494
  }
504
- _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = new WeakMap(), _RpcDataSource_activeChains = new WeakMap(), _RpcDataSource_chainStatuses = new WeakMap(), _RpcDataSource_providerCache = new WeakMap(), _RpcDataSource_activeSubscriptions = new WeakMap(), _RpcDataSource_multicallClient = new WeakMap(), _RpcDataSource_balanceFetcher = new WeakMap(), _RpcDataSource_tokenDetector = new WeakMap(), _RpcDataSource_instances = new WeakSet(), _RpcDataSource_convertToHumanReadable = function _RpcDataSource_convertToHumanReadable(rawBalance, decimals) {
495
+ _RpcDataSource_messenger = new WeakMap(), _RpcDataSource_onActiveChainsUpdated = new WeakMap(), _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = new WeakMap(), _RpcDataSource_activeChains = new WeakMap(), _RpcDataSource_chainStatuses = new WeakMap(), _RpcDataSource_providerCache = new WeakMap(), _RpcDataSource_activeSubscriptions = new WeakMap(), _RpcDataSource_multicallClient = new WeakMap(), _RpcDataSource_balanceFetcher = new WeakMap(), _RpcDataSource_tokenDetector = new WeakMap(), _RpcDataSource_instances = new WeakSet(), _RpcDataSource_convertToHumanReadable = function _RpcDataSource_convertToHumanReadable(rawBalance, decimals) {
505
496
  const rawAmount = new BigNumberJS(rawBalance);
506
497
  const divisor = new BigNumberJS(10).pow(decimals);
507
498
  return rawAmount.dividedBy(divisor).toString();
@@ -577,11 +568,11 @@ _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = n
577
568
  accountId: result.accountId,
578
569
  newBalanceCount: Object.keys(newBalances).length,
579
570
  });
580
- this.messenger
581
- .call('AssetsController:assetsUpdate', response, CONTROLLER_NAME)
582
- .catch((error) => {
583
- log('Failed to update assets', { error });
584
- });
571
+ for (const subscription of __classPrivateFieldGet(this, _RpcDataSource_activeSubscriptions, "f").values()) {
572
+ subscription.onAssetsUpdate(response)?.catch((error) => {
573
+ log('Failed to update assets', { error });
574
+ });
575
+ }
585
576
  }, _RpcDataSource_handleDetectionUpdate = function _RpcDataSource_handleDetectionUpdate(result) {
586
577
  log('Detected new tokens', {
587
578
  count: result.detectedAssets.length,
@@ -627,24 +618,13 @@ _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = n
627
618
  [result.accountId]: newBalances,
628
619
  },
629
620
  };
630
- this.messenger
631
- .call('AssetsController:assetsUpdate', response, CONTROLLER_NAME)
632
- .catch((error) => {
633
- log('Failed to update detected assets', { error });
634
- });
635
- }, _RpcDataSource_registerActionHandlers = function _RpcDataSource_registerActionHandlers() {
636
- const getAssetsMiddlewareHandler = () => this.assetsMiddleware;
637
- const getActiveChainsHandler = async () => this.getActiveChains();
638
- const fetchHandler = async (request) => this.fetch(request);
639
- const subscribeHandler = async (request) => this.subscribe(request);
640
- const unsubscribeHandler = async (subscriptionId) => this.unsubscribe(subscriptionId);
641
- this.messenger.registerActionHandler('RpcDataSource:getAssetsMiddleware', getAssetsMiddlewareHandler);
642
- this.messenger.registerActionHandler('RpcDataSource:getActiveChains', getActiveChainsHandler);
643
- this.messenger.registerActionHandler('RpcDataSource:fetch', fetchHandler);
644
- this.messenger.registerActionHandler('RpcDataSource:subscribe', subscribeHandler);
645
- this.messenger.registerActionHandler('RpcDataSource:unsubscribe', unsubscribeHandler);
621
+ for (const subscription of __classPrivateFieldGet(this, _RpcDataSource_activeSubscriptions, "f").values()) {
622
+ subscription.onAssetsUpdate(response)?.catch((error) => {
623
+ log('Failed to update detected assets', { error });
624
+ });
625
+ }
646
626
  }, _RpcDataSource_subscribeToNetworkController = function _RpcDataSource_subscribeToNetworkController() {
647
- this.messenger.subscribe('NetworkController:stateChange', (networkState) => {
627
+ __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").subscribe('NetworkController:stateChange', (networkState) => {
648
628
  log('NetworkController state changed');
649
629
  __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_clearProviderCache).call(this);
650
630
  __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_updateFromNetworkState).call(this, networkState);
@@ -652,7 +632,7 @@ _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = n
652
632
  }, _RpcDataSource_initializeFromNetworkController = function _RpcDataSource_initializeFromNetworkController() {
653
633
  log('Initializing from NetworkController');
654
634
  try {
655
- const networkState = this.messenger.call('NetworkController:getState');
635
+ const networkState = __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").call('NetworkController:getState');
656
636
  __classPrivateFieldGet(this, _RpcDataSource_instances, "m", _RpcDataSource_updateFromNetworkState).call(this, networkState);
657
637
  }
658
638
  catch (error) {
@@ -688,14 +668,18 @@ _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = n
688
668
  activeChains,
689
669
  });
690
670
  // Check if chains changed
691
- const previousChains = new Set(__classPrivateFieldGet(this, _RpcDataSource_activeChains, "f"));
692
- const hasChanges = previousChains.size !== activeChains.length ||
693
- activeChains.some((chain) => !previousChains.has(chain));
694
- // Update internal state
671
+ const previousChains = [...__classPrivateFieldGet(this, _RpcDataSource_activeChains, "f")];
672
+ const previousSet = new Set(previousChains);
673
+ const hasChanges = previousChains.length !== activeChains.length ||
674
+ activeChains.some((chain) => !previousSet.has(chain));
675
+ // Update internal state and data source state before notifying, so that
676
+ // when the controller handles the callback and calls getActiveChainsSync(),
677
+ // it receives the updated chains (same order as AbstractDataSource.updateActiveChains).
695
678
  __classPrivateFieldSet(this, _RpcDataSource_chainStatuses, chainStatuses, "f");
696
679
  __classPrivateFieldSet(this, _RpcDataSource_activeChains, activeChains, "f");
680
+ this.state.activeChains = activeChains;
697
681
  if (hasChanges) {
698
- this.messenger.call('AssetsController:activeChainsUpdate', CONTROLLER_NAME, activeChains);
682
+ __classPrivateFieldGet(this, _RpcDataSource_onActiveChainsUpdated, "f").call(this, this.getName(), activeChains, previousChains);
699
683
  }
700
684
  }, _RpcDataSource_getProvider = function _RpcDataSource_getProvider(chainId) {
701
685
  const cached = __classPrivateFieldGet(this, _RpcDataSource_providerCache, "f").get(chainId);
@@ -707,7 +691,10 @@ _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = n
707
691
  return undefined;
708
692
  }
709
693
  try {
710
- const networkClient = this.messenger.call('NetworkController:getNetworkClientById', chainStatus.networkClientId);
694
+ const networkClient = __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").call('NetworkController:getNetworkClientById', chainStatus.networkClientId);
695
+ if (!networkClient?.provider) {
696
+ return undefined;
697
+ }
711
698
  const web3Provider = new Web3Provider(networkClient.provider);
712
699
  __classPrivateFieldGet(this, _RpcDataSource_providerCache, "f").set(chainId, web3Provider);
713
700
  return web3Provider;
@@ -737,38 +724,13 @@ _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = n
737
724
  };
738
725
  }, _RpcDataSource_clearProviderCache = function _RpcDataSource_clearProviderCache() {
739
726
  __classPrivateFieldGet(this, _RpcDataSource_providerCache, "f").clear();
740
- }, _RpcDataSource_accountSupportsChain = function _RpcDataSource_accountSupportsChain(account, chainId) {
741
- const scopes = account.scopes ?? [];
742
- if (scopes.length === 0) {
743
- return true;
744
- }
745
- const [chainNamespace, chainReference] = chainId.split(':');
746
- for (const scope of scopes) {
747
- const [scopeNamespace, scopeReference] = scope.split(':');
748
- if (scopeNamespace !== chainNamespace) {
749
- continue;
750
- }
751
- // Wildcard scope (e.g., eip155:0) matches all chains in the namespace
752
- if (scopeReference === '0') {
753
- return true;
754
- }
755
- // RpcDataSource only handles eip155 (EVM) chains
756
- // Normalize hex chain references (e.g., 0x1 -> 1) for comparison
757
- const normalizedScopeRef = scopeReference?.startsWith('0x')
758
- ? parseInt(scopeReference, 16).toString()
759
- : scopeReference;
760
- if (normalizedScopeRef === chainReference) {
761
- return true;
762
- }
763
- }
764
- return false;
765
727
  }, _RpcDataSource_buildNativeAssetId = function _RpcDataSource_buildNativeAssetId(chainId) {
766
- const { nativeAssetIdentifiers } = this.messenger.call('NetworkEnablementController:getState');
728
+ const { nativeAssetIdentifiers } = __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").call('NetworkEnablementController:getState');
767
729
  return (nativeAssetIdentifiers[chainId] ??
768
730
  `${chainId}/slip44:60`);
769
731
  }, _RpcDataSource_getExistingAssetsMetadata = function _RpcDataSource_getExistingAssetsMetadata() {
770
732
  try {
771
- const state = this.messenger.call('AssetsController:getState');
733
+ const state = __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").call('AssetsController:getState');
772
734
  return (state.assetsMetadata ?? {});
773
735
  }
774
736
  catch {
@@ -786,8 +748,8 @@ _RpcDataSource_timeout = new WeakMap(), _RpcDataSource_tokenDetectionEnabled = n
786
748
  const tokenAddress = assetPart.slice(6); // Remove 'erc20:' prefix
787
749
  const chainIdDecimal = chainPart.split(':')[1];
788
750
  const hexChainId = `0x${parseInt(chainIdDecimal, 10).toString(16)}`;
789
- const tokenListState = this.messenger.call('TokenListController:getState');
790
- const chainCacheEntry = tokenListState.tokensChainsCache[hexChainId];
751
+ const tokenListState = __classPrivateFieldGet(this, _RpcDataSource_messenger, "f").call('TokenListController:getState');
752
+ const chainCacheEntry = tokenListState?.tokensChainsCache?.[hexChainId];
791
753
  const chainTokenList = chainCacheEntry?.data;
792
754
  if (!chainTokenList) {
793
755
  return undefined;