@metamask-previews/assets-controller 0.0.0-preview-ab102d86 → 0.0.0-preview-3ec2a74

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 (130) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/dist/AssetsController.cjs +1028 -61
  3. package/dist/AssetsController.cjs.map +1 -1
  4. package/dist/AssetsController.d.cts +229 -83
  5. package/dist/AssetsController.d.cts.map +1 -1
  6. package/dist/AssetsController.d.mts +229 -83
  7. package/dist/AssetsController.d.mts.map +1 -1
  8. package/dist/AssetsController.mjs +1024 -59
  9. package/dist/AssetsController.mjs.map +1 -1
  10. package/dist/data-sources/AbstractDataSource.cjs +103 -0
  11. package/dist/data-sources/AbstractDataSource.cjs.map +1 -0
  12. package/dist/data-sources/AbstractDataSource.d.cts +92 -0
  13. package/dist/data-sources/AbstractDataSource.d.cts.map +1 -0
  14. package/dist/data-sources/AbstractDataSource.d.mts +92 -0
  15. package/dist/data-sources/AbstractDataSource.d.mts.map +1 -0
  16. package/dist/data-sources/AbstractDataSource.mjs +99 -0
  17. package/dist/data-sources/AbstractDataSource.mjs.map +1 -0
  18. package/dist/data-sources/AccountsApiDataSource.cjs +421 -0
  19. package/dist/data-sources/AccountsApiDataSource.cjs.map +1 -0
  20. package/dist/data-sources/AccountsApiDataSource.d.cts +103 -0
  21. package/dist/data-sources/AccountsApiDataSource.d.cts.map +1 -0
  22. package/dist/data-sources/AccountsApiDataSource.d.mts +103 -0
  23. package/dist/data-sources/AccountsApiDataSource.d.mts.map +1 -0
  24. package/dist/data-sources/AccountsApiDataSource.mjs +416 -0
  25. package/dist/data-sources/AccountsApiDataSource.mjs.map +1 -0
  26. package/dist/data-sources/BackendWebsocketDataSource.cjs +388 -0
  27. package/dist/data-sources/BackendWebsocketDataSource.cjs.map +1 -0
  28. package/dist/data-sources/BackendWebsocketDataSource.d.cts +95 -0
  29. package/dist/data-sources/BackendWebsocketDataSource.d.cts.map +1 -0
  30. package/dist/data-sources/BackendWebsocketDataSource.d.mts +95 -0
  31. package/dist/data-sources/BackendWebsocketDataSource.d.mts.map +1 -0
  32. package/dist/data-sources/BackendWebsocketDataSource.mjs +383 -0
  33. package/dist/data-sources/BackendWebsocketDataSource.mjs.map +1 -0
  34. package/dist/data-sources/PriceDataSource.cjs +350 -0
  35. package/dist/data-sources/PriceDataSource.cjs.map +1 -0
  36. package/dist/data-sources/PriceDataSource.d.cts +153 -0
  37. package/dist/data-sources/PriceDataSource.d.cts.map +1 -0
  38. package/dist/data-sources/PriceDataSource.d.mts +153 -0
  39. package/dist/data-sources/PriceDataSource.d.mts.map +1 -0
  40. package/dist/data-sources/PriceDataSource.mjs +346 -0
  41. package/dist/data-sources/PriceDataSource.mjs.map +1 -0
  42. package/dist/data-sources/RpcDataSource.cjs +410 -0
  43. package/dist/data-sources/RpcDataSource.cjs.map +1 -0
  44. package/dist/data-sources/RpcDataSource.d.cts +154 -0
  45. package/dist/data-sources/RpcDataSource.d.cts.map +1 -0
  46. package/dist/data-sources/RpcDataSource.d.mts +154 -0
  47. package/dist/data-sources/RpcDataSource.d.mts.map +1 -0
  48. package/dist/data-sources/RpcDataSource.mjs +405 -0
  49. package/dist/data-sources/RpcDataSource.mjs.map +1 -0
  50. package/dist/data-sources/SnapDataSource.cjs +734 -0
  51. package/dist/data-sources/SnapDataSource.cjs.map +1 -0
  52. package/dist/data-sources/SnapDataSource.d.cts +217 -0
  53. package/dist/data-sources/SnapDataSource.d.cts.map +1 -0
  54. package/dist/data-sources/SnapDataSource.d.mts +217 -0
  55. package/dist/data-sources/SnapDataSource.d.mts.map +1 -0
  56. package/dist/data-sources/SnapDataSource.mjs +723 -0
  57. package/dist/data-sources/SnapDataSource.mjs.map +1 -0
  58. package/dist/data-sources/TokenDataSource.cjs +179 -0
  59. package/dist/data-sources/TokenDataSource.cjs.map +1 -0
  60. package/dist/data-sources/TokenDataSource.d.cts +62 -0
  61. package/dist/data-sources/TokenDataSource.d.cts.map +1 -0
  62. package/dist/data-sources/TokenDataSource.d.mts +62 -0
  63. package/dist/data-sources/TokenDataSource.d.mts.map +1 -0
  64. package/dist/data-sources/TokenDataSource.mjs +175 -0
  65. package/dist/data-sources/TokenDataSource.mjs.map +1 -0
  66. package/dist/data-sources/index.cjs +62 -0
  67. package/dist/data-sources/index.cjs.map +1 -0
  68. package/dist/data-sources/index.d.cts +9 -0
  69. package/dist/data-sources/index.d.cts.map +1 -0
  70. package/dist/data-sources/index.d.mts +9 -0
  71. package/dist/data-sources/index.d.mts.map +1 -0
  72. package/dist/data-sources/index.mjs +23 -0
  73. package/dist/data-sources/index.mjs.map +1 -0
  74. package/dist/data-sources/initDataSources.cjs +199 -0
  75. package/dist/data-sources/initDataSources.cjs.map +1 -0
  76. package/dist/data-sources/initDataSources.d.cts +123 -0
  77. package/dist/data-sources/initDataSources.d.cts.map +1 -0
  78. package/dist/data-sources/initDataSources.d.mts +123 -0
  79. package/dist/data-sources/initDataSources.d.mts.map +1 -0
  80. package/dist/data-sources/initDataSources.mjs +194 -0
  81. package/dist/data-sources/initDataSources.mjs.map +1 -0
  82. package/dist/index.cjs +70 -1
  83. package/dist/index.cjs.map +1 -1
  84. package/dist/index.d.cts +19 -1
  85. package/dist/index.d.cts.map +1 -1
  86. package/dist/index.d.mts +19 -1
  87. package/dist/index.d.mts.map +1 -1
  88. package/dist/index.mjs +31 -0
  89. package/dist/index.mjs.map +1 -1
  90. package/dist/logger.cjs +7 -0
  91. package/dist/logger.cjs.map +1 -0
  92. package/dist/logger.d.cts +5 -0
  93. package/dist/logger.d.cts.map +1 -0
  94. package/dist/logger.d.mts +5 -0
  95. package/dist/logger.d.mts.map +1 -0
  96. package/dist/logger.mjs +4 -0
  97. package/dist/logger.mjs.map +1 -0
  98. package/dist/middlewares/DetectionMiddleware.cjs +101 -0
  99. package/dist/middlewares/DetectionMiddleware.cjs.map +1 -0
  100. package/dist/middlewares/DetectionMiddleware.d.cts +54 -0
  101. package/dist/middlewares/DetectionMiddleware.d.cts.map +1 -0
  102. package/dist/middlewares/DetectionMiddleware.d.mts +54 -0
  103. package/dist/middlewares/DetectionMiddleware.d.mts.map +1 -0
  104. package/dist/middlewares/DetectionMiddleware.mjs +97 -0
  105. package/dist/middlewares/DetectionMiddleware.mjs.map +1 -0
  106. package/dist/middlewares/index.cjs +6 -0
  107. package/dist/middlewares/index.cjs.map +1 -0
  108. package/dist/middlewares/index.d.cts +2 -0
  109. package/dist/middlewares/index.d.cts.map +1 -0
  110. package/dist/middlewares/index.d.mts +2 -0
  111. package/dist/middlewares/index.d.mts.map +1 -0
  112. package/dist/middlewares/index.mjs +2 -0
  113. package/dist/middlewares/index.mjs.map +1 -0
  114. package/dist/types.cjs +39 -0
  115. package/dist/types.cjs.map +1 -0
  116. package/dist/types.d.cts +360 -0
  117. package/dist/types.d.cts.map +1 -0
  118. package/dist/types.d.mts +360 -0
  119. package/dist/types.d.mts.map +1 -0
  120. package/dist/types.mjs +35 -0
  121. package/dist/types.mjs.map +1 -0
  122. package/dist/utils.cjs +28 -0
  123. package/dist/utils.cjs.map +1 -0
  124. package/dist/utils.d.cts +13 -0
  125. package/dist/utils.d.cts.map +1 -0
  126. package/dist/utils.d.mts +13 -0
  127. package/dist/utils.d.mts.map +1 -0
  128. package/dist/utils.mjs +24 -0
  129. package/dist/utils.mjs.map +1 -0
  130. package/package.json +13 -1
@@ -0,0 +1,123 @@
1
+ import type { ApiPlatformClient } from "@metamask/core-backend";
2
+ import { Messenger } from "@metamask/messenger";
3
+ import type { ActionConstraint, EventConstraint } from "@metamask/messenger";
4
+ import { AccountsApiDataSource } from "./AccountsApiDataSource.cjs";
5
+ import type { AccountsApiDataSourceActions, AccountsApiDataSourceAllowedActions, AccountsApiDataSourceEvents, AccountsApiDataSourceMessenger } from "./AccountsApiDataSource.cjs";
6
+ import { BackendWebsocketDataSource } from "./BackendWebsocketDataSource.cjs";
7
+ import type { BackendWebsocketDataSourceActions, BackendWebsocketDataSourceAllowedActions, BackendWebsocketDataSourceAllowedEvents, BackendWebsocketDataSourceEvents, BackendWebsocketDataSourceMessenger } from "./BackendWebsocketDataSource.cjs";
8
+ import { PriceDataSource } from "./PriceDataSource.cjs";
9
+ import type { PriceDataSourceActions, PriceDataSourceAllowedActions, PriceDataSourceEvents, PriceDataSourceMessenger } from "./PriceDataSource.cjs";
10
+ import { RpcDataSource } from "./RpcDataSource.cjs";
11
+ import type { RpcDataSourceActions, RpcDataSourceAllowedActions, RpcDataSourceAllowedEvents, RpcDataSourceEvents, RpcDataSourceMessenger } from "./RpcDataSource.cjs";
12
+ import { SnapDataSource } from "./SnapDataSource.cjs";
13
+ import type { SnapDataSourceActions, SnapDataSourceEvents, SnapDataSourceMessenger, SnapProvider } from "./SnapDataSource.cjs";
14
+ import { TokenDataSource } from "./TokenDataSource.cjs";
15
+ import type { TokenDataSourceActions, TokenDataSourceMessenger } from "./TokenDataSource.cjs";
16
+ import type { DetectionMiddlewareActions, DetectionMiddlewareMessenger } from "../middlewares/index.cjs";
17
+ import { DetectionMiddleware } from "../middlewares/index.cjs";
18
+ /**
19
+ * All actions from data sources.
20
+ */
21
+ export type DataSourceActions = RpcDataSourceActions | BackendWebsocketDataSourceActions | AccountsApiDataSourceActions | SnapDataSourceActions | TokenDataSourceActions | PriceDataSourceActions | DetectionMiddlewareActions;
22
+ /**
23
+ * All events from data sources.
24
+ */
25
+ export type DataSourceEvents = RpcDataSourceEvents | BackendWebsocketDataSourceEvents | AccountsApiDataSourceEvents | SnapDataSourceEvents | PriceDataSourceEvents;
26
+ /**
27
+ * All external actions that data sources need.
28
+ * Note: TokenDataSource, AccountsApiDataSource, and PriceDataSource now use ApiPlatformClient
29
+ * directly, so they don't need BackendApiClient actions delegated.
30
+ */
31
+ export type DataSourceAllowedActions = RpcDataSourceAllowedActions | BackendWebsocketDataSourceAllowedActions | AccountsApiDataSourceAllowedActions | PriceDataSourceAllowedActions;
32
+ /**
33
+ * All external events that data sources need.
34
+ */
35
+ export type DataSourceAllowedEvents = RpcDataSourceAllowedEvents | BackendWebsocketDataSourceAllowedEvents;
36
+ /**
37
+ * Root messenger type for all data sources.
38
+ */
39
+ export type RootMessenger<AllowedActions extends ActionConstraint, AllowedEvents extends EventConstraint> = Messenger<string, AllowedActions, AllowedEvents>;
40
+ /**
41
+ * All messengers for data sources.
42
+ */
43
+ export type DataSourceMessengers = {
44
+ rpcMessenger: RpcDataSourceMessenger;
45
+ backendWebsocketMessenger: BackendWebsocketDataSourceMessenger;
46
+ accountsApiMessenger: AccountsApiDataSourceMessenger;
47
+ snapMessenger: SnapDataSourceMessenger;
48
+ tokenMessenger: TokenDataSourceMessenger;
49
+ priceMessenger: PriceDataSourceMessenger;
50
+ detectionMessenger: DetectionMiddlewareMessenger;
51
+ };
52
+ /**
53
+ * Options for initializing messengers.
54
+ */
55
+ export type InitMessengersOptions<AllowedActions extends ActionConstraint, AllowedEvents extends EventConstraint> = {
56
+ /** The root controller messenger */
57
+ messenger: RootMessenger<AllowedActions, AllowedEvents>;
58
+ };
59
+ /**
60
+ * All data source instances.
61
+ */
62
+ export type DataSources = {
63
+ rpcDataSource: RpcDataSource;
64
+ backendWebsocketDataSource: BackendWebsocketDataSource;
65
+ accountsApiDataSource: AccountsApiDataSource;
66
+ snapDataSource: SnapDataSource;
67
+ tokenDataSource: TokenDataSource;
68
+ priceDataSource: PriceDataSource;
69
+ detectionMiddleware: DetectionMiddleware;
70
+ };
71
+ /**
72
+ * Options for initializing data sources.
73
+ */
74
+ export type InitDataSourcesOptions = {
75
+ /** Messengers for each data source */
76
+ messengers: DataSourceMessengers;
77
+ /** Snap provider for communicating with snaps */
78
+ snapProvider: SnapProvider;
79
+ /** ApiPlatformClient for cached API calls */
80
+ queryApiClient: ApiPlatformClient;
81
+ };
82
+ /**
83
+ * Initialize all messengers for data sources.
84
+ *
85
+ * This function creates child messengers for each data source from the root
86
+ * controller messenger, with proper action/event delegation.
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * import { initMessengers } from '@metamask/assets-controllers';
91
+ *
92
+ * const messengers = initMessengers({ messenger });
93
+ * ```
94
+ *
95
+ * @param options - Configuration options
96
+ * @returns Object containing all messengers
97
+ */
98
+ export declare function initMessengers<AllowedActions extends ActionConstraint, AllowedEvents extends EventConstraint>(options: InitMessengersOptions<AllowedActions, AllowedEvents>): DataSourceMessengers;
99
+ /**
100
+ * Initialize all data sources and middlewares.
101
+ *
102
+ * This function creates and initializes all data sources, registering their
103
+ * action handlers with the messenger.
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * import { initMessengers, initDataSources } from '@metamask/assets-controllers';
108
+ *
109
+ * // Initialize messengers first
110
+ * const messengers = initMessengers({ controllerMessenger });
111
+ *
112
+ * // Then initialize data sources
113
+ * const dataSources = initDataSources({
114
+ * messengers,
115
+ * snapProvider: snapController,
116
+ * });
117
+ * ```
118
+ *
119
+ * @param options - Configuration options
120
+ * @returns Object containing all data source instances
121
+ */
122
+ export declare function initDataSources(options: InitDataSourcesOptions): DataSources;
123
+ //# sourceMappingURL=initDataSources.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initDataSources.d.cts","sourceRoot":"","sources":["../../src/data-sources/initDataSources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import type { ApiPlatformClient } from "@metamask/core-backend";
2
+ import { Messenger } from "@metamask/messenger";
3
+ import type { ActionConstraint, EventConstraint } from "@metamask/messenger";
4
+ import { AccountsApiDataSource } from "./AccountsApiDataSource.mjs";
5
+ import type { AccountsApiDataSourceActions, AccountsApiDataSourceAllowedActions, AccountsApiDataSourceEvents, AccountsApiDataSourceMessenger } from "./AccountsApiDataSource.mjs";
6
+ import { BackendWebsocketDataSource } from "./BackendWebsocketDataSource.mjs";
7
+ import type { BackendWebsocketDataSourceActions, BackendWebsocketDataSourceAllowedActions, BackendWebsocketDataSourceAllowedEvents, BackendWebsocketDataSourceEvents, BackendWebsocketDataSourceMessenger } from "./BackendWebsocketDataSource.mjs";
8
+ import { PriceDataSource } from "./PriceDataSource.mjs";
9
+ import type { PriceDataSourceActions, PriceDataSourceAllowedActions, PriceDataSourceEvents, PriceDataSourceMessenger } from "./PriceDataSource.mjs";
10
+ import { RpcDataSource } from "./RpcDataSource.mjs";
11
+ import type { RpcDataSourceActions, RpcDataSourceAllowedActions, RpcDataSourceAllowedEvents, RpcDataSourceEvents, RpcDataSourceMessenger } from "./RpcDataSource.mjs";
12
+ import { SnapDataSource } from "./SnapDataSource.mjs";
13
+ import type { SnapDataSourceActions, SnapDataSourceEvents, SnapDataSourceMessenger, SnapProvider } from "./SnapDataSource.mjs";
14
+ import { TokenDataSource } from "./TokenDataSource.mjs";
15
+ import type { TokenDataSourceActions, TokenDataSourceMessenger } from "./TokenDataSource.mjs";
16
+ import type { DetectionMiddlewareActions, DetectionMiddlewareMessenger } from "../middlewares/index.mjs";
17
+ import { DetectionMiddleware } from "../middlewares/index.mjs";
18
+ /**
19
+ * All actions from data sources.
20
+ */
21
+ export type DataSourceActions = RpcDataSourceActions | BackendWebsocketDataSourceActions | AccountsApiDataSourceActions | SnapDataSourceActions | TokenDataSourceActions | PriceDataSourceActions | DetectionMiddlewareActions;
22
+ /**
23
+ * All events from data sources.
24
+ */
25
+ export type DataSourceEvents = RpcDataSourceEvents | BackendWebsocketDataSourceEvents | AccountsApiDataSourceEvents | SnapDataSourceEvents | PriceDataSourceEvents;
26
+ /**
27
+ * All external actions that data sources need.
28
+ * Note: TokenDataSource, AccountsApiDataSource, and PriceDataSource now use ApiPlatformClient
29
+ * directly, so they don't need BackendApiClient actions delegated.
30
+ */
31
+ export type DataSourceAllowedActions = RpcDataSourceAllowedActions | BackendWebsocketDataSourceAllowedActions | AccountsApiDataSourceAllowedActions | PriceDataSourceAllowedActions;
32
+ /**
33
+ * All external events that data sources need.
34
+ */
35
+ export type DataSourceAllowedEvents = RpcDataSourceAllowedEvents | BackendWebsocketDataSourceAllowedEvents;
36
+ /**
37
+ * Root messenger type for all data sources.
38
+ */
39
+ export type RootMessenger<AllowedActions extends ActionConstraint, AllowedEvents extends EventConstraint> = Messenger<string, AllowedActions, AllowedEvents>;
40
+ /**
41
+ * All messengers for data sources.
42
+ */
43
+ export type DataSourceMessengers = {
44
+ rpcMessenger: RpcDataSourceMessenger;
45
+ backendWebsocketMessenger: BackendWebsocketDataSourceMessenger;
46
+ accountsApiMessenger: AccountsApiDataSourceMessenger;
47
+ snapMessenger: SnapDataSourceMessenger;
48
+ tokenMessenger: TokenDataSourceMessenger;
49
+ priceMessenger: PriceDataSourceMessenger;
50
+ detectionMessenger: DetectionMiddlewareMessenger;
51
+ };
52
+ /**
53
+ * Options for initializing messengers.
54
+ */
55
+ export type InitMessengersOptions<AllowedActions extends ActionConstraint, AllowedEvents extends EventConstraint> = {
56
+ /** The root controller messenger */
57
+ messenger: RootMessenger<AllowedActions, AllowedEvents>;
58
+ };
59
+ /**
60
+ * All data source instances.
61
+ */
62
+ export type DataSources = {
63
+ rpcDataSource: RpcDataSource;
64
+ backendWebsocketDataSource: BackendWebsocketDataSource;
65
+ accountsApiDataSource: AccountsApiDataSource;
66
+ snapDataSource: SnapDataSource;
67
+ tokenDataSource: TokenDataSource;
68
+ priceDataSource: PriceDataSource;
69
+ detectionMiddleware: DetectionMiddleware;
70
+ };
71
+ /**
72
+ * Options for initializing data sources.
73
+ */
74
+ export type InitDataSourcesOptions = {
75
+ /** Messengers for each data source */
76
+ messengers: DataSourceMessengers;
77
+ /** Snap provider for communicating with snaps */
78
+ snapProvider: SnapProvider;
79
+ /** ApiPlatformClient for cached API calls */
80
+ queryApiClient: ApiPlatformClient;
81
+ };
82
+ /**
83
+ * Initialize all messengers for data sources.
84
+ *
85
+ * This function creates child messengers for each data source from the root
86
+ * controller messenger, with proper action/event delegation.
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * import { initMessengers } from '@metamask/assets-controllers';
91
+ *
92
+ * const messengers = initMessengers({ messenger });
93
+ * ```
94
+ *
95
+ * @param options - Configuration options
96
+ * @returns Object containing all messengers
97
+ */
98
+ export declare function initMessengers<AllowedActions extends ActionConstraint, AllowedEvents extends EventConstraint>(options: InitMessengersOptions<AllowedActions, AllowedEvents>): DataSourceMessengers;
99
+ /**
100
+ * Initialize all data sources and middlewares.
101
+ *
102
+ * This function creates and initializes all data sources, registering their
103
+ * action handlers with the messenger.
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * import { initMessengers, initDataSources } from '@metamask/assets-controllers';
108
+ *
109
+ * // Initialize messengers first
110
+ * const messengers = initMessengers({ controllerMessenger });
111
+ *
112
+ * // Then initialize data sources
113
+ * const dataSources = initDataSources({
114
+ * messengers,
115
+ * snapProvider: snapController,
116
+ * });
117
+ * ```
118
+ *
119
+ * @param options - Configuration options
120
+ * @returns Object containing all data source instances
121
+ */
122
+ export declare function initDataSources(options: InitDataSourcesOptions): DataSources;
123
+ //# sourceMappingURL=initDataSources.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initDataSources.d.mts","sourceRoot":"","sources":["../../src/data-sources/initDataSources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ import { Messenger } from "@metamask/messenger";
2
+ import { AccountsApiDataSource } from "./AccountsApiDataSource.mjs";
3
+ import { BackendWebsocketDataSource } from "./BackendWebsocketDataSource.mjs";
4
+ import { PriceDataSource } from "./PriceDataSource.mjs";
5
+ import { RpcDataSource } from "./RpcDataSource.mjs";
6
+ import { SnapDataSource } from "./SnapDataSource.mjs";
7
+ import { TokenDataSource } from "./TokenDataSource.mjs";
8
+ import { DetectionMiddleware } from "../middlewares/index.mjs";
9
+ // ============================================================================
10
+ // MESSENGER INITIALIZATION
11
+ // ============================================================================
12
+ /**
13
+ * Initialize all messengers for data sources.
14
+ *
15
+ * This function creates child messengers for each data source from the root
16
+ * controller messenger, with proper action/event delegation.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * import { initMessengers } from '@metamask/assets-controllers';
21
+ *
22
+ * const messengers = initMessengers({ messenger });
23
+ * ```
24
+ *
25
+ * @param options - Configuration options
26
+ * @returns Object containing all messengers
27
+ */
28
+ export function initMessengers(options) {
29
+ const { messenger } = options;
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ const rootMessenger = messenger;
32
+ // RPC Data Source messenger
33
+ const rpcMessenger = new Messenger({
34
+ namespace: 'RpcDataSource',
35
+ parent: rootMessenger,
36
+ });
37
+ rootMessenger.delegate({
38
+ actions: [
39
+ 'NetworkController:getState',
40
+ 'NetworkController:getNetworkClientById',
41
+ 'AssetsController:activeChainsUpdate',
42
+ 'AssetsController:assetsUpdate',
43
+ ],
44
+ events: ['NetworkController:stateChange'],
45
+ messenger: rpcMessenger,
46
+ });
47
+ // Backend Websocket Data Source messenger
48
+ const backendWebsocketMessenger = new Messenger({
49
+ namespace: 'BackendWebsocketDataSource',
50
+ parent: rootMessenger,
51
+ });
52
+ rootMessenger.delegate({
53
+ actions: [
54
+ 'BackendWebSocketService:subscribe',
55
+ 'BackendWebSocketService:unsubscribe',
56
+ 'BackendWebSocketService:getState',
57
+ 'BackendWebSocketService:getConnectionInfo',
58
+ 'BackendWebSocketService:findSubscriptionsByChannelPrefix',
59
+ 'AssetsController:activeChainsUpdate',
60
+ 'AssetsController:assetsUpdate',
61
+ ],
62
+ events: [
63
+ 'BackendWebSocketService:stateChange',
64
+ 'BackendWebSocketService:connectionStateChanged',
65
+ 'AccountsApiDataSource:activeChainsUpdated',
66
+ ],
67
+ messenger: backendWebsocketMessenger,
68
+ });
69
+ // Accounts API Data Source messenger
70
+ // Note: AccountsApiDataSource uses ApiPlatformClient directly, so no BackendApiClient actions needed
71
+ const accountsApiMessenger = new Messenger({
72
+ namespace: 'AccountsApiDataSource',
73
+ parent: rootMessenger,
74
+ });
75
+ rootMessenger.delegate({
76
+ actions: [
77
+ 'AssetsController:activeChainsUpdate',
78
+ 'AssetsController:assetsUpdate',
79
+ ],
80
+ messenger: accountsApiMessenger,
81
+ });
82
+ // Snap Data Source messenger
83
+ const snapMessenger = new Messenger({
84
+ namespace: 'SnapDataSource',
85
+ parent: rootMessenger,
86
+ });
87
+ rootMessenger.delegate({
88
+ actions: [
89
+ 'AssetsController:activeChainsUpdate',
90
+ 'AssetsController:assetsUpdate',
91
+ ],
92
+ events: [
93
+ // Snap keyring balance updates - snaps emit this when balances change
94
+ 'AccountsController:accountBalancesUpdated',
95
+ ],
96
+ messenger: snapMessenger,
97
+ });
98
+ // Token Data Source messenger
99
+ // Note: TokenDataSource uses ApiPlatformClient directly, so no BackendApiClient actions needed
100
+ const tokenMessenger = new Messenger({
101
+ namespace: 'TokenDataSource',
102
+ parent: rootMessenger,
103
+ });
104
+ // Price Data Source messenger
105
+ // Note: PriceDataSource uses ApiPlatformClient directly, so no BackendApiClient actions needed
106
+ const priceMessenger = new Messenger({
107
+ namespace: 'PriceDataSource',
108
+ parent: rootMessenger,
109
+ });
110
+ rootMessenger.delegate({
111
+ actions: ['AssetsController:getState', 'AssetsController:assetsUpdate'],
112
+ messenger: priceMessenger,
113
+ });
114
+ // Detection Middleware messenger
115
+ const detectionMessenger = new Messenger({
116
+ namespace: 'DetectionMiddleware',
117
+ parent: rootMessenger,
118
+ });
119
+ return {
120
+ rpcMessenger: rpcMessenger,
121
+ backendWebsocketMessenger: backendWebsocketMessenger,
122
+ accountsApiMessenger: accountsApiMessenger,
123
+ snapMessenger: snapMessenger,
124
+ tokenMessenger: tokenMessenger,
125
+ priceMessenger: priceMessenger,
126
+ detectionMessenger: detectionMessenger,
127
+ };
128
+ }
129
+ // ============================================================================
130
+ // DATA SOURCE INITIALIZATION
131
+ // ============================================================================
132
+ /**
133
+ * Initialize all data sources and middlewares.
134
+ *
135
+ * This function creates and initializes all data sources, registering their
136
+ * action handlers with the messenger.
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * import { initMessengers, initDataSources } from '@metamask/assets-controllers';
141
+ *
142
+ * // Initialize messengers first
143
+ * const messengers = initMessengers({ controllerMessenger });
144
+ *
145
+ * // Then initialize data sources
146
+ * const dataSources = initDataSources({
147
+ * messengers,
148
+ * snapProvider: snapController,
149
+ * });
150
+ * ```
151
+ *
152
+ * @param options - Configuration options
153
+ * @returns Object containing all data source instances
154
+ */
155
+ export function initDataSources(options) {
156
+ const { messengers, snapProvider, queryApiClient } = options;
157
+ // Initialize primary data sources (provide balance data)
158
+ const rpcDataSource = new RpcDataSource({
159
+ messenger: messengers.rpcMessenger,
160
+ });
161
+ const backendWebsocketDataSource = new BackendWebsocketDataSource({
162
+ messenger: messengers.backendWebsocketMessenger,
163
+ });
164
+ const accountsApiDataSource = new AccountsApiDataSource({
165
+ messenger: messengers.accountsApiMessenger,
166
+ queryApiClient,
167
+ });
168
+ const snapDataSource = new SnapDataSource({
169
+ messenger: messengers.snapMessenger,
170
+ snapProvider,
171
+ });
172
+ // Initialize middleware data sources (enrich responses)
173
+ const tokenDataSource = new TokenDataSource({
174
+ messenger: messengers.tokenMessenger,
175
+ queryApiClient,
176
+ });
177
+ const priceDataSource = new PriceDataSource({
178
+ messenger: messengers.priceMessenger,
179
+ queryApiClient,
180
+ });
181
+ const detectionMiddleware = new DetectionMiddleware({
182
+ messenger: messengers.detectionMessenger,
183
+ });
184
+ return {
185
+ rpcDataSource,
186
+ backendWebsocketDataSource,
187
+ accountsApiDataSource,
188
+ snapDataSource,
189
+ tokenDataSource,
190
+ priceDataSource,
191
+ detectionMiddleware,
192
+ };
193
+ }
194
+ //# sourceMappingURL=initDataSources.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initDataSources.mjs","sourceRoot":"","sources":["../../src/data-sources/initDataSources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAGhD,OAAO,EAAE,qBAAqB,EAAE,oCAAgC;AAOhE,OAAO,EAAE,0BAA0B,EAAE,yCAAqC;AAQ1E,OAAO,EAAE,eAAe,EAAE,8BAA0B;AAOpD,OAAO,EAAE,aAAa,EAAE,4BAAwB;AAQhD,OAAO,EAAE,cAAc,EAAE,6BAAyB;AAOlD,OAAO,EAAE,eAAe,EAAE,8BAA0B;AASpD,OAAO,EAAE,mBAAmB,EAAE,iCAAuB;AAiHrD,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAI5B,OAA6D;IAE7D,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,8DAA8D;IAC9D,MAAM,aAAa,GAAG,SAAgB,CAAC;IAEvC,4BAA4B;IAC5B,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC;QACjC,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE;YACP,4BAA4B;YAC5B,wCAAwC;YACxC,qCAAqC;YACrC,+BAA+B;SAChC;QACD,MAAM,EAAE,CAAC,+BAA+B,CAAC;QACzC,SAAS,EAAE,YAAY;KACxB,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,yBAAyB,GAAG,IAAI,SAAS,CAAC;QAC9C,SAAS,EAAE,4BAA4B;QACvC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE;YACP,mCAAmC;YACnC,qCAAqC;YACrC,kCAAkC;YAClC,2CAA2C;YAC3C,0DAA0D;YAC1D,qCAAqC;YACrC,+BAA+B;SAChC;QACD,MAAM,EAAE;YACN,qCAAqC;YACrC,gDAAgD;YAChD,2CAA2C;SAC5C;QACD,SAAS,EAAE,yBAAyB;KACrC,CAAC,CAAC;IAEH,qCAAqC;IACrC,qGAAqG;IACrG,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC;QACzC,SAAS,EAAE,uBAAuB;QAClC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE;YACP,qCAAqC;YACrC,+BAA+B;SAChC;QACD,SAAS,EAAE,oBAAoB;KAChC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,aAAa,GAAG,IAAI,SAAS,CAAC;QAClC,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE;YACP,qCAAqC;YACrC,+BAA+B;SAChC;QACD,MAAM,EAAE;YACN,sEAAsE;YACtE,2CAA2C;SAC5C;QACD,SAAS,EAAE,aAAa;KACzB,CAAC,CAAC;IAEH,8BAA8B;IAC9B,+FAA+F;IAC/F,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC;QACnC,SAAS,EAAE,iBAAiB;QAC5B,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IAEH,8BAA8B;IAC9B,+FAA+F;IAC/F,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC;QACnC,SAAS,EAAE,iBAAiB;QAC5B,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE,CAAC,2BAA2B,EAAE,+BAA+B,CAAC;QACvE,SAAS,EAAE,cAAc;KAC1B,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,kBAAkB,GAAG,IAAI,SAAS,CAAC;QACvC,SAAS,EAAE,qBAAqB;QAChC,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,YAAsC;QACpD,yBAAyB,EACvB,yBAAgE;QAClE,oBAAoB,EAClB,oBAAsD;QACxD,aAAa,EAAE,aAAwC;QACvD,cAAc,EAAE,cAA0C;QAC1D,cAAc,EAAE,cAA0C;QAC1D,kBAAkB,EAAE,kBAAkD;KACvE,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE7D,yDAAyD;IACzD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;QACtC,SAAS,EAAE,UAAU,CAAC,YAAY;KACnC,CAAC,CAAC;IAEH,MAAM,0BAA0B,GAAG,IAAI,0BAA0B,CAAC;QAChE,SAAS,EAAE,UAAU,CAAC,yBAAyB;KAChD,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CAAC;QACtD,SAAS,EAAE,UAAU,CAAC,oBAAoB;QAC1C,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;QACxC,SAAS,EAAE,UAAU,CAAC,aAAa;QACnC,YAAY;KACb,CAAC,CAAC;IAEH,wDAAwD;IACxD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC;QAC1C,SAAS,EAAE,UAAU,CAAC,cAAc;QACpC,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC;QAC1C,SAAS,EAAE,UAAU,CAAC,cAAc;QACpC,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC;QAClD,SAAS,EAAE,UAAU,CAAC,kBAAkB;KACzC,CAAC,CAAC;IAEH,OAAO;QACL,aAAa;QACb,0BAA0B;QAC1B,qBAAqB;QACrB,cAAc;QACd,eAAe;QACf,eAAe;QACf,mBAAmB;KACpB,CAAC;AACJ,CAAC","sourcesContent":["import type { ApiPlatformClient } from '@metamask/core-backend';\nimport { Messenger } from '@metamask/messenger';\nimport type { ActionConstraint, EventConstraint } from '@metamask/messenger';\n\nimport { AccountsApiDataSource } from './AccountsApiDataSource';\nimport type {\n AccountsApiDataSourceActions,\n AccountsApiDataSourceAllowedActions,\n AccountsApiDataSourceEvents,\n AccountsApiDataSourceMessenger,\n} from './AccountsApiDataSource';\nimport { BackendWebsocketDataSource } from './BackendWebsocketDataSource';\nimport type {\n BackendWebsocketDataSourceActions,\n BackendWebsocketDataSourceAllowedActions,\n BackendWebsocketDataSourceAllowedEvents,\n BackendWebsocketDataSourceEvents,\n BackendWebsocketDataSourceMessenger,\n} from './BackendWebsocketDataSource';\nimport { PriceDataSource } from './PriceDataSource';\nimport type {\n PriceDataSourceActions,\n PriceDataSourceAllowedActions,\n PriceDataSourceEvents,\n PriceDataSourceMessenger,\n} from './PriceDataSource';\nimport { RpcDataSource } from './RpcDataSource';\nimport type {\n RpcDataSourceActions,\n RpcDataSourceAllowedActions,\n RpcDataSourceAllowedEvents,\n RpcDataSourceEvents,\n RpcDataSourceMessenger,\n} from './RpcDataSource';\nimport { SnapDataSource } from './SnapDataSource';\nimport type {\n SnapDataSourceActions,\n SnapDataSourceEvents,\n SnapDataSourceMessenger,\n SnapProvider,\n} from './SnapDataSource';\nimport { TokenDataSource } from './TokenDataSource';\nimport type {\n TokenDataSourceActions,\n TokenDataSourceMessenger,\n} from './TokenDataSource';\nimport type {\n DetectionMiddlewareActions,\n DetectionMiddlewareMessenger,\n} from '../middlewares';\nimport { DetectionMiddleware } from '../middlewares';\n\n// ============================================================================\n// ACTION & EVENT TYPES\n// ============================================================================\n\n/**\n * All actions from data sources.\n */\nexport type DataSourceActions =\n | RpcDataSourceActions\n | BackendWebsocketDataSourceActions\n | AccountsApiDataSourceActions\n | SnapDataSourceActions\n | TokenDataSourceActions\n | PriceDataSourceActions\n | DetectionMiddlewareActions;\n\n/**\n * All events from data sources.\n */\nexport type DataSourceEvents =\n | RpcDataSourceEvents\n | BackendWebsocketDataSourceEvents\n | AccountsApiDataSourceEvents\n | SnapDataSourceEvents\n | PriceDataSourceEvents;\n\n/**\n * All external actions that data sources need.\n * Note: TokenDataSource, AccountsApiDataSource, and PriceDataSource now use ApiPlatformClient\n * directly, so they don't need BackendApiClient actions delegated.\n */\nexport type DataSourceAllowedActions =\n | RpcDataSourceAllowedActions\n | BackendWebsocketDataSourceAllowedActions\n | AccountsApiDataSourceAllowedActions\n | PriceDataSourceAllowedActions;\n\n/**\n * All external events that data sources need.\n */\nexport type DataSourceAllowedEvents =\n | RpcDataSourceAllowedEvents\n | BackendWebsocketDataSourceAllowedEvents;\n\n/**\n * Root messenger type for all data sources.\n */\nexport type RootMessenger<\n AllowedActions extends ActionConstraint,\n AllowedEvents extends EventConstraint,\n> = Messenger<string, AllowedActions, AllowedEvents>;\n\n// ============================================================================\n// MESSENGER TYPES\n// ============================================================================\n\n/**\n * All messengers for data sources.\n */\nexport type DataSourceMessengers = {\n rpcMessenger: RpcDataSourceMessenger;\n backendWebsocketMessenger: BackendWebsocketDataSourceMessenger;\n accountsApiMessenger: AccountsApiDataSourceMessenger;\n snapMessenger: SnapDataSourceMessenger;\n tokenMessenger: TokenDataSourceMessenger;\n priceMessenger: PriceDataSourceMessenger;\n detectionMessenger: DetectionMiddlewareMessenger;\n};\n\n/**\n * Options for initializing messengers.\n */\nexport type InitMessengersOptions<\n AllowedActions extends ActionConstraint,\n AllowedEvents extends EventConstraint,\n> = {\n /** The root controller messenger */\n messenger: RootMessenger<AllowedActions, AllowedEvents>;\n};\n\n// ============================================================================\n// CONTROLLER TYPES\n// ============================================================================\n\n/**\n * All data source instances.\n */\nexport type DataSources = {\n rpcDataSource: RpcDataSource;\n backendWebsocketDataSource: BackendWebsocketDataSource;\n accountsApiDataSource: AccountsApiDataSource;\n snapDataSource: SnapDataSource;\n tokenDataSource: TokenDataSource;\n priceDataSource: PriceDataSource;\n detectionMiddleware: DetectionMiddleware;\n};\n\n/**\n * Options for initializing data sources.\n */\nexport type InitDataSourcesOptions = {\n /** Messengers for each data source */\n messengers: DataSourceMessengers;\n\n /** Snap provider for communicating with snaps */\n snapProvider: SnapProvider;\n\n /** ApiPlatformClient for cached API calls */\n queryApiClient: ApiPlatformClient;\n};\n\n// ============================================================================\n// MESSENGER INITIALIZATION\n// ============================================================================\n\n/**\n * Initialize all messengers for data sources.\n *\n * This function creates child messengers for each data source from the root\n * controller messenger, with proper action/event delegation.\n *\n * @example\n * ```typescript\n * import { initMessengers } from '@metamask/assets-controllers';\n *\n * const messengers = initMessengers({ messenger });\n * ```\n *\n * @param options - Configuration options\n * @returns Object containing all messengers\n */\nexport function initMessengers<\n AllowedActions extends ActionConstraint,\n AllowedEvents extends EventConstraint,\n>(\n options: InitMessengersOptions<AllowedActions, AllowedEvents>,\n): DataSourceMessengers {\n const { messenger } = options;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rootMessenger = messenger as any;\n\n // RPC Data Source messenger\n const rpcMessenger = new Messenger({\n namespace: 'RpcDataSource',\n parent: rootMessenger,\n });\n rootMessenger.delegate({\n actions: [\n 'NetworkController:getState',\n 'NetworkController:getNetworkClientById',\n 'AssetsController:activeChainsUpdate',\n 'AssetsController:assetsUpdate',\n ],\n events: ['NetworkController:stateChange'],\n messenger: rpcMessenger,\n });\n\n // Backend Websocket Data Source messenger\n const backendWebsocketMessenger = new Messenger({\n namespace: 'BackendWebsocketDataSource',\n parent: rootMessenger,\n });\n rootMessenger.delegate({\n actions: [\n 'BackendWebSocketService:subscribe',\n 'BackendWebSocketService:unsubscribe',\n 'BackendWebSocketService:getState',\n 'BackendWebSocketService:getConnectionInfo',\n 'BackendWebSocketService:findSubscriptionsByChannelPrefix',\n 'AssetsController:activeChainsUpdate',\n 'AssetsController:assetsUpdate',\n ],\n events: [\n 'BackendWebSocketService:stateChange',\n 'BackendWebSocketService:connectionStateChanged',\n 'AccountsApiDataSource:activeChainsUpdated',\n ],\n messenger: backendWebsocketMessenger,\n });\n\n // Accounts API Data Source messenger\n // Note: AccountsApiDataSource uses ApiPlatformClient directly, so no BackendApiClient actions needed\n const accountsApiMessenger = new Messenger({\n namespace: 'AccountsApiDataSource',\n parent: rootMessenger,\n });\n rootMessenger.delegate({\n actions: [\n 'AssetsController:activeChainsUpdate',\n 'AssetsController:assetsUpdate',\n ],\n messenger: accountsApiMessenger,\n });\n\n // Snap Data Source messenger\n const snapMessenger = new Messenger({\n namespace: 'SnapDataSource',\n parent: rootMessenger,\n });\n rootMessenger.delegate({\n actions: [\n 'AssetsController:activeChainsUpdate',\n 'AssetsController:assetsUpdate',\n ],\n events: [\n // Snap keyring balance updates - snaps emit this when balances change\n 'AccountsController:accountBalancesUpdated',\n ],\n messenger: snapMessenger,\n });\n\n // Token Data Source messenger\n // Note: TokenDataSource uses ApiPlatformClient directly, so no BackendApiClient actions needed\n const tokenMessenger = new Messenger({\n namespace: 'TokenDataSource',\n parent: rootMessenger,\n });\n\n // Price Data Source messenger\n // Note: PriceDataSource uses ApiPlatformClient directly, so no BackendApiClient actions needed\n const priceMessenger = new Messenger({\n namespace: 'PriceDataSource',\n parent: rootMessenger,\n });\n rootMessenger.delegate({\n actions: ['AssetsController:getState', 'AssetsController:assetsUpdate'],\n messenger: priceMessenger,\n });\n\n // Detection Middleware messenger\n const detectionMessenger = new Messenger({\n namespace: 'DetectionMiddleware',\n parent: rootMessenger,\n });\n\n return {\n rpcMessenger: rpcMessenger as RpcDataSourceMessenger,\n backendWebsocketMessenger:\n backendWebsocketMessenger as BackendWebsocketDataSourceMessenger,\n accountsApiMessenger:\n accountsApiMessenger as AccountsApiDataSourceMessenger,\n snapMessenger: snapMessenger as SnapDataSourceMessenger,\n tokenMessenger: tokenMessenger as TokenDataSourceMessenger,\n priceMessenger: priceMessenger as PriceDataSourceMessenger,\n detectionMessenger: detectionMessenger as DetectionMiddlewareMessenger,\n };\n}\n\n// ============================================================================\n// DATA SOURCE INITIALIZATION\n// ============================================================================\n\n/**\n * Initialize all data sources and middlewares.\n *\n * This function creates and initializes all data sources, registering their\n * action handlers with the messenger.\n *\n * @example\n * ```typescript\n * import { initMessengers, initDataSources } from '@metamask/assets-controllers';\n *\n * // Initialize messengers first\n * const messengers = initMessengers({ controllerMessenger });\n *\n * // Then initialize data sources\n * const dataSources = initDataSources({\n * messengers,\n * snapProvider: snapController,\n * });\n * ```\n *\n * @param options - Configuration options\n * @returns Object containing all data source instances\n */\nexport function initDataSources(options: InitDataSourcesOptions): DataSources {\n const { messengers, snapProvider, queryApiClient } = options;\n\n // Initialize primary data sources (provide balance data)\n const rpcDataSource = new RpcDataSource({\n messenger: messengers.rpcMessenger,\n });\n\n const backendWebsocketDataSource = new BackendWebsocketDataSource({\n messenger: messengers.backendWebsocketMessenger,\n });\n\n const accountsApiDataSource = new AccountsApiDataSource({\n messenger: messengers.accountsApiMessenger,\n queryApiClient,\n });\n\n const snapDataSource = new SnapDataSource({\n messenger: messengers.snapMessenger,\n snapProvider,\n });\n\n // Initialize middleware data sources (enrich responses)\n const tokenDataSource = new TokenDataSource({\n messenger: messengers.tokenMessenger,\n queryApiClient,\n });\n\n const priceDataSource = new PriceDataSource({\n messenger: messengers.priceMessenger,\n queryApiClient,\n });\n\n const detectionMiddleware = new DetectionMiddleware({\n messenger: messengers.detectionMessenger,\n });\n\n return {\n rpcDataSource,\n backendWebsocketDataSource,\n accountsApiDataSource,\n snapDataSource,\n tokenDataSource,\n priceDataSource,\n detectionMiddleware,\n };\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,7 +1,76 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDefaultAssetsControllerState = exports.AssetsController = void 0;
3
+ exports.normalizeAssetId = exports.initDataSources = exports.initMessengers = exports.DetectionMiddleware = exports.PriceDataSource = exports.TokenDataSource = exports.isTronChain = exports.isBitcoinChain = exports.isSolanaChain = exports.isSnapSupportedChain = exports.getSnapTypeForChain = exports.SNAP_REGISTRY = exports.DEFAULT_SNAP_POLL_INTERVAL = exports.DEFAULT_TRON_POLL_INTERVAL = exports.DEFAULT_BITCOIN_POLL_INTERVAL = exports.DEFAULT_SOLANA_POLL_INTERVAL = exports.ALL_DEFAULT_NETWORKS = exports.TRON_NILE_HEX = exports.TRON_SHASTA_HEX = exports.TRON_MAINNET_HEX = exports.TRON_NILE = exports.TRON_SHASTA = exports.TRON_MAINNET = exports.BITCOIN_TESTNET = exports.BITCOIN_MAINNET = exports.SOLANA_TESTNET = exports.SOLANA_DEVNET = exports.SOLANA_MAINNET = exports.TRON_CHAIN_PREFIX = exports.BITCOIN_CHAIN_PREFIX = exports.SOLANA_CHAIN_PREFIX = exports.TRON_SNAP_ID = exports.BITCOIN_SNAP_ID = exports.SOLANA_SNAP_ID = exports.SNAP_DATA_SOURCE_NAME = exports.createSnapDataSource = exports.SnapDataSource = exports.createRpcDataSource = exports.RpcDataSource = exports.createBackendWebsocketDataSource = exports.BackendWebsocketDataSource = exports.createAccountsApiDataSource = exports.AccountsApiDataSource = exports.AbstractDataSource = exports.getDefaultAssetsControllerState = exports.AssetsController = void 0;
4
+ // Main controller export
4
5
  var AssetsController_1 = require("./AssetsController.cjs");
5
6
  Object.defineProperty(exports, "AssetsController", { enumerable: true, get: function () { return AssetsController_1.AssetsController; } });
6
7
  Object.defineProperty(exports, "getDefaultAssetsControllerState", { enumerable: true, get: function () { return AssetsController_1.getDefaultAssetsControllerState; } });
8
+ // Data sources - base class and types
9
+ var data_sources_1 = require("./data-sources/index.cjs");
10
+ Object.defineProperty(exports, "AbstractDataSource", { enumerable: true, get: function () { return data_sources_1.AbstractDataSource; } });
11
+ // Data sources - AccountsApi
12
+ var data_sources_2 = require("./data-sources/index.cjs");
13
+ Object.defineProperty(exports, "AccountsApiDataSource", { enumerable: true, get: function () { return data_sources_2.AccountsApiDataSource; } });
14
+ Object.defineProperty(exports, "createAccountsApiDataSource", { enumerable: true, get: function () { return data_sources_2.createAccountsApiDataSource; } });
15
+ // Data sources - BackendWebsocket
16
+ var data_sources_3 = require("./data-sources/index.cjs");
17
+ Object.defineProperty(exports, "BackendWebsocketDataSource", { enumerable: true, get: function () { return data_sources_3.BackendWebsocketDataSource; } });
18
+ Object.defineProperty(exports, "createBackendWebsocketDataSource", { enumerable: true, get: function () { return data_sources_3.createBackendWebsocketDataSource; } });
19
+ // Data sources - RPC
20
+ var data_sources_4 = require("./data-sources/index.cjs");
21
+ Object.defineProperty(exports, "RpcDataSource", { enumerable: true, get: function () { return data_sources_4.RpcDataSource; } });
22
+ Object.defineProperty(exports, "createRpcDataSource", { enumerable: true, get: function () { return data_sources_4.createRpcDataSource; } });
23
+ // Data sources - Unified Snap Data Source (handles Solana, Bitcoin, Tron)
24
+ var data_sources_5 = require("./data-sources/index.cjs");
25
+ Object.defineProperty(exports, "SnapDataSource", { enumerable: true, get: function () { return data_sources_5.SnapDataSource; } });
26
+ Object.defineProperty(exports, "createSnapDataSource", { enumerable: true, get: function () { return data_sources_5.createSnapDataSource; } });
27
+ Object.defineProperty(exports, "SNAP_DATA_SOURCE_NAME", { enumerable: true, get: function () { return data_sources_5.SNAP_DATA_SOURCE_NAME; } });
28
+ // Snap IDs
29
+ Object.defineProperty(exports, "SOLANA_SNAP_ID", { enumerable: true, get: function () { return data_sources_5.SOLANA_SNAP_ID; } });
30
+ Object.defineProperty(exports, "BITCOIN_SNAP_ID", { enumerable: true, get: function () { return data_sources_5.BITCOIN_SNAP_ID; } });
31
+ Object.defineProperty(exports, "TRON_SNAP_ID", { enumerable: true, get: function () { return data_sources_5.TRON_SNAP_ID; } });
32
+ // Chain prefixes
33
+ Object.defineProperty(exports, "SOLANA_CHAIN_PREFIX", { enumerable: true, get: function () { return data_sources_5.SOLANA_CHAIN_PREFIX; } });
34
+ Object.defineProperty(exports, "BITCOIN_CHAIN_PREFIX", { enumerable: true, get: function () { return data_sources_5.BITCOIN_CHAIN_PREFIX; } });
35
+ Object.defineProperty(exports, "TRON_CHAIN_PREFIX", { enumerable: true, get: function () { return data_sources_5.TRON_CHAIN_PREFIX; } });
36
+ // Networks
37
+ Object.defineProperty(exports, "SOLANA_MAINNET", { enumerable: true, get: function () { return data_sources_5.SOLANA_MAINNET; } });
38
+ Object.defineProperty(exports, "SOLANA_DEVNET", { enumerable: true, get: function () { return data_sources_5.SOLANA_DEVNET; } });
39
+ Object.defineProperty(exports, "SOLANA_TESTNET", { enumerable: true, get: function () { return data_sources_5.SOLANA_TESTNET; } });
40
+ Object.defineProperty(exports, "BITCOIN_MAINNET", { enumerable: true, get: function () { return data_sources_5.BITCOIN_MAINNET; } });
41
+ Object.defineProperty(exports, "BITCOIN_TESTNET", { enumerable: true, get: function () { return data_sources_5.BITCOIN_TESTNET; } });
42
+ Object.defineProperty(exports, "TRON_MAINNET", { enumerable: true, get: function () { return data_sources_5.TRON_MAINNET; } });
43
+ Object.defineProperty(exports, "TRON_SHASTA", { enumerable: true, get: function () { return data_sources_5.TRON_SHASTA; } });
44
+ Object.defineProperty(exports, "TRON_NILE", { enumerable: true, get: function () { return data_sources_5.TRON_NILE; } });
45
+ Object.defineProperty(exports, "TRON_MAINNET_HEX", { enumerable: true, get: function () { return data_sources_5.TRON_MAINNET_HEX; } });
46
+ Object.defineProperty(exports, "TRON_SHASTA_HEX", { enumerable: true, get: function () { return data_sources_5.TRON_SHASTA_HEX; } });
47
+ Object.defineProperty(exports, "TRON_NILE_HEX", { enumerable: true, get: function () { return data_sources_5.TRON_NILE_HEX; } });
48
+ Object.defineProperty(exports, "ALL_DEFAULT_NETWORKS", { enumerable: true, get: function () { return data_sources_5.ALL_DEFAULT_NETWORKS; } });
49
+ // Poll intervals
50
+ Object.defineProperty(exports, "DEFAULT_SOLANA_POLL_INTERVAL", { enumerable: true, get: function () { return data_sources_5.DEFAULT_SOLANA_POLL_INTERVAL; } });
51
+ Object.defineProperty(exports, "DEFAULT_BITCOIN_POLL_INTERVAL", { enumerable: true, get: function () { return data_sources_5.DEFAULT_BITCOIN_POLL_INTERVAL; } });
52
+ Object.defineProperty(exports, "DEFAULT_TRON_POLL_INTERVAL", { enumerable: true, get: function () { return data_sources_5.DEFAULT_TRON_POLL_INTERVAL; } });
53
+ Object.defineProperty(exports, "DEFAULT_SNAP_POLL_INTERVAL", { enumerable: true, get: function () { return data_sources_5.DEFAULT_SNAP_POLL_INTERVAL; } });
54
+ // Snap registry
55
+ Object.defineProperty(exports, "SNAP_REGISTRY", { enumerable: true, get: function () { return data_sources_5.SNAP_REGISTRY; } });
56
+ // Helper functions
57
+ Object.defineProperty(exports, "getSnapTypeForChain", { enumerable: true, get: function () { return data_sources_5.getSnapTypeForChain; } });
58
+ Object.defineProperty(exports, "isSnapSupportedChain", { enumerable: true, get: function () { return data_sources_5.isSnapSupportedChain; } });
59
+ Object.defineProperty(exports, "isSolanaChain", { enumerable: true, get: function () { return data_sources_5.isSolanaChain; } });
60
+ Object.defineProperty(exports, "isBitcoinChain", { enumerable: true, get: function () { return data_sources_5.isBitcoinChain; } });
61
+ Object.defineProperty(exports, "isTronChain", { enumerable: true, get: function () { return data_sources_5.isTronChain; } });
62
+ // Enrichment data sources
63
+ var data_sources_6 = require("./data-sources/index.cjs");
64
+ Object.defineProperty(exports, "TokenDataSource", { enumerable: true, get: function () { return data_sources_6.TokenDataSource; } });
65
+ Object.defineProperty(exports, "PriceDataSource", { enumerable: true, get: function () { return data_sources_6.PriceDataSource; } });
66
+ // Middlewares
67
+ var middlewares_1 = require("./middlewares/index.cjs");
68
+ Object.defineProperty(exports, "DetectionMiddleware", { enumerable: true, get: function () { return middlewares_1.DetectionMiddleware; } });
69
+ // Data source initialization
70
+ var data_sources_7 = require("./data-sources/index.cjs");
71
+ Object.defineProperty(exports, "initMessengers", { enumerable: true, get: function () { return data_sources_7.initMessengers; } });
72
+ Object.defineProperty(exports, "initDataSources", { enumerable: true, get: function () { return data_sources_7.initDataSources; } });
73
+ // Utilities
74
+ var utils_1 = require("./utils.cjs");
75
+ Object.defineProperty(exports, "normalizeAssetId", { enumerable: true, get: function () { return utils_1.normalizeAssetId; } });
7
76
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAQA,2DAG4B;AAF1B,oHAAA,gBAAgB,OAAA;AAChB,mIAAA,+BAA+B,OAAA","sourcesContent":["export type {\n AssetsControllerState,\n AssetsControllerGetStateAction,\n AssetsControllerActions,\n AssetsControllerStateChangeEvent,\n AssetsControllerEvents,\n AssetsControllerMessenger,\n} from './AssetsController';\nexport {\n AssetsController,\n getDefaultAssetsControllerState,\n} from './AssetsController';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,2DAG4B;AAF1B,oHAAA,gBAAgB,OAAA;AAChB,mIAAA,+BAA+B,OAAA;AA2EjC,sCAAsC;AACtC,yDAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAI3B,6BAA6B;AAC7B,yDAGwB;AAFtB,qHAAA,qBAAqB,OAAA;AACrB,2HAAA,2BAA2B,OAAA;AAW7B,kCAAkC;AAClC,yDAGwB;AAFtB,0HAAA,0BAA0B,OAAA;AAC1B,gIAAA,gCAAgC,OAAA;AAalC,qBAAqB;AACrB,yDAAoE;AAA3D,6GAAA,aAAa,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAU3C,0EAA0E;AAC1E,yDAsCwB;AArCtB,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,qHAAA,qBAAqB,OAAA;AACrB,WAAW;AACX,8GAAA,cAAc,OAAA;AACd,+GAAA,eAAe,OAAA;AACf,4GAAA,YAAY,OAAA;AACZ,iBAAiB;AACjB,mHAAA,mBAAmB,OAAA;AACnB,oHAAA,oBAAoB,OAAA;AACpB,iHAAA,iBAAiB,OAAA;AACjB,WAAW;AACX,8GAAA,cAAc,OAAA;AACd,6GAAA,aAAa,OAAA;AACb,8GAAA,cAAc,OAAA;AACd,+GAAA,eAAe,OAAA;AACf,+GAAA,eAAe,OAAA;AACf,4GAAA,YAAY,OAAA;AACZ,2GAAA,WAAW,OAAA;AACX,yGAAA,SAAS,OAAA;AACT,gHAAA,gBAAgB,OAAA;AAChB,+GAAA,eAAe,OAAA;AACf,6GAAA,aAAa,OAAA;AACb,oHAAA,oBAAoB,OAAA;AACpB,iBAAiB;AACjB,4HAAA,4BAA4B,OAAA;AAC5B,6HAAA,6BAA6B,OAAA;AAC7B,0HAAA,0BAA0B,OAAA;AAC1B,0HAAA,0BAA0B,OAAA;AAC1B,gBAAgB;AAChB,6GAAA,aAAa,OAAA;AACb,mBAAmB;AACnB,mHAAA,mBAAmB,OAAA;AACnB,oHAAA,oBAAoB,OAAA;AACpB,6GAAA,aAAa,OAAA;AACb,8GAAA,cAAc,OAAA;AACd,2GAAA,WAAW,OAAA;AAcb,0BAA0B;AAC1B,yDAAkE;AAAzD,+GAAA,eAAe,OAAA;AAAE,+GAAA,eAAe,OAAA;AAUzC,cAAc;AACd,uDAAoD;AAA3C,kHAAA,mBAAmB,OAAA;AAO5B,6BAA6B;AAC7B,yDAAiE;AAAxD,8GAAA,cAAc,OAAA;AAAE,+GAAA,eAAe,OAAA;AAcxC,YAAY;AACZ,qCAA2C;AAAlC,yGAAA,gBAAgB,OAAA","sourcesContent":["// Main controller export\nexport {\n AssetsController,\n getDefaultAssetsControllerState,\n} from './AssetsController';\n\n// State and messenger types\nexport type {\n AssetsControllerState,\n AssetsControllerMessenger,\n AssetsControllerOptions,\n AssetsControllerGetStateAction,\n AssetsControllerGetAssetsAction,\n AssetsControllerGetAssetsBalanceAction,\n AssetsControllerGetAssetMetadataAction,\n AssetsControllerGetAssetsPriceAction,\n AssetsControllerActiveChainsUpdateAction,\n AssetsControllerAssetsUpdateAction,\n AssetsControllerAddCustomAssetAction,\n AssetsControllerRemoveCustomAssetAction,\n AssetsControllerGetCustomAssetsAction,\n AssetsControllerActions,\n AssetsControllerStateChangeEvent,\n AssetsControllerBalanceChangedEvent,\n AssetsControllerPriceChangedEvent,\n AssetsControllerAssetsDetectedEvent,\n AssetsControllerEvents,\n} from './AssetsController';\n\n// Core types\nexport type {\n // CAIP types\n Caip19AssetId,\n AccountId,\n ChainId,\n // Asset types\n AssetType,\n TokenStandard,\n // Metadata types\n BaseAssetMetadata,\n FungibleAssetMetadata,\n ERC721AssetMetadata,\n ERC1155AssetMetadata,\n AssetMetadata,\n // Price types\n BaseAssetPrice,\n FungibleAssetPrice,\n NFTAssetPrice,\n AssetPrice,\n // Balance types\n FungibleAssetBalance,\n ERC721AssetBalance,\n ERC1155AssetBalance,\n AssetBalance,\n // Data source types\n DataType,\n DataRequest,\n DataResponse,\n // Middleware types\n Context,\n NextFunction,\n Middleware,\n FetchContext,\n FetchNextFunction,\n FetchMiddleware,\n // Data source registration\n DataSourceDefinition,\n RegisteredDataSource,\n SubscriptionResponse,\n // Combined asset type\n Asset,\n // Event types\n BalanceChangeEvent,\n PriceChangeEvent,\n MetadataChangeEvent,\n AssetsDetectedEvent,\n} from './types';\n\n// Data sources - base class and types\nexport { AbstractDataSource } from './data-sources';\n\nexport type { DataSourceState, SubscriptionRequest } from './data-sources';\n\n// Data sources - AccountsApi\nexport {\n AccountsApiDataSource,\n createAccountsApiDataSource,\n} from './data-sources';\n\nexport type {\n AccountsApiDataSourceOptions,\n AccountsApiDataSourceState,\n AccountsApiDataSourceActions,\n AccountsApiDataSourceEvents,\n AccountsApiDataSourceMessenger,\n} from './data-sources';\n\n// Data sources - BackendWebsocket\nexport {\n BackendWebsocketDataSource,\n createBackendWebsocketDataSource,\n} from './data-sources';\n\nexport type {\n BackendWebsocketDataSourceOptions,\n BackendWebsocketDataSourceState,\n BackendWebsocketDataSourceActions,\n BackendWebsocketDataSourceEvents,\n BackendWebsocketDataSourceMessenger,\n BackendWebsocketDataSourceAllowedActions,\n BackendWebsocketDataSourceAllowedEvents,\n} from './data-sources';\n\n// Data sources - RPC\nexport { RpcDataSource, createRpcDataSource } from './data-sources';\n\nexport type {\n RpcDataSourceOptions,\n RpcDataSourceState,\n RpcDataSourceActions,\n RpcDataSourceEvents,\n RpcDataSourceMessenger,\n} from './data-sources';\n\n// Data sources - Unified Snap Data Source (handles Solana, Bitcoin, Tron)\nexport {\n SnapDataSource,\n createSnapDataSource,\n SNAP_DATA_SOURCE_NAME,\n // Snap IDs\n SOLANA_SNAP_ID,\n BITCOIN_SNAP_ID,\n TRON_SNAP_ID,\n // Chain prefixes\n SOLANA_CHAIN_PREFIX,\n BITCOIN_CHAIN_PREFIX,\n TRON_CHAIN_PREFIX,\n // Networks\n SOLANA_MAINNET,\n SOLANA_DEVNET,\n SOLANA_TESTNET,\n BITCOIN_MAINNET,\n BITCOIN_TESTNET,\n TRON_MAINNET,\n TRON_SHASTA,\n TRON_NILE,\n TRON_MAINNET_HEX,\n TRON_SHASTA_HEX,\n TRON_NILE_HEX,\n ALL_DEFAULT_NETWORKS,\n // Poll intervals\n DEFAULT_SOLANA_POLL_INTERVAL,\n DEFAULT_BITCOIN_POLL_INTERVAL,\n DEFAULT_TRON_POLL_INTERVAL,\n DEFAULT_SNAP_POLL_INTERVAL,\n // Snap registry\n SNAP_REGISTRY,\n // Helper functions\n getSnapTypeForChain,\n isSnapSupportedChain,\n isSolanaChain,\n isBitcoinChain,\n isTronChain,\n} from './data-sources';\n\nexport type {\n SnapType,\n SnapInfo,\n SnapDataSourceState,\n SnapDataSourceOptions,\n SnapProvider,\n SnapDataSourceActions,\n SnapDataSourceEvents,\n SnapDataSourceMessenger,\n} from './data-sources';\n\n// Enrichment data sources\nexport { TokenDataSource, PriceDataSource } from './data-sources';\n\nexport type {\n TokenDataSourceActions,\n TokenDataSourceMessenger,\n PriceDataSourceActions,\n PriceDataSourceEvents,\n PriceDataSourceMessenger,\n} from './data-sources';\n\n// Middlewares\nexport { DetectionMiddleware } from './middlewares';\n\nexport type {\n DetectionMiddlewareActions,\n DetectionMiddlewareMessenger,\n} from './middlewares';\n\n// Data source initialization\nexport { initMessengers, initDataSources } from './data-sources';\n\nexport type {\n DataSourceMessengers,\n DataSources,\n InitMessengersOptions,\n InitDataSourcesOptions,\n DataSourceActions,\n DataSourceEvents,\n DataSourceAllowedActions,\n DataSourceAllowedEvents,\n RootMessenger,\n} from './data-sources';\n\n// Utilities\nexport { normalizeAssetId } from './utils';\n"]}
package/dist/index.d.cts CHANGED
@@ -1,3 +1,21 @@
1
- export type { AssetsControllerState, AssetsControllerGetStateAction, AssetsControllerActions, AssetsControllerStateChangeEvent, AssetsControllerEvents, AssetsControllerMessenger, } from "./AssetsController.cjs";
2
1
  export { AssetsController, getDefaultAssetsControllerState, } from "./AssetsController.cjs";
2
+ export type { AssetsControllerState, AssetsControllerMessenger, AssetsControllerOptions, AssetsControllerGetStateAction, AssetsControllerGetAssetsAction, AssetsControllerGetAssetsBalanceAction, AssetsControllerGetAssetMetadataAction, AssetsControllerGetAssetsPriceAction, AssetsControllerActiveChainsUpdateAction, AssetsControllerAssetsUpdateAction, AssetsControllerAddCustomAssetAction, AssetsControllerRemoveCustomAssetAction, AssetsControllerGetCustomAssetsAction, AssetsControllerActions, AssetsControllerStateChangeEvent, AssetsControllerBalanceChangedEvent, AssetsControllerPriceChangedEvent, AssetsControllerAssetsDetectedEvent, AssetsControllerEvents, } from "./AssetsController.cjs";
3
+ export type { Caip19AssetId, AccountId, ChainId, AssetType, TokenStandard, BaseAssetMetadata, FungibleAssetMetadata, ERC721AssetMetadata, ERC1155AssetMetadata, AssetMetadata, BaseAssetPrice, FungibleAssetPrice, NFTAssetPrice, AssetPrice, FungibleAssetBalance, ERC721AssetBalance, ERC1155AssetBalance, AssetBalance, DataType, DataRequest, DataResponse, Context, NextFunction, Middleware, FetchContext, FetchNextFunction, FetchMiddleware, DataSourceDefinition, RegisteredDataSource, SubscriptionResponse, Asset, BalanceChangeEvent, PriceChangeEvent, MetadataChangeEvent, AssetsDetectedEvent, } from "./types.cjs";
4
+ export { AbstractDataSource } from "./data-sources/index.cjs";
5
+ export type { DataSourceState, SubscriptionRequest } from "./data-sources/index.cjs";
6
+ export { AccountsApiDataSource, createAccountsApiDataSource, } from "./data-sources/index.cjs";
7
+ export type { AccountsApiDataSourceOptions, AccountsApiDataSourceState, AccountsApiDataSourceActions, AccountsApiDataSourceEvents, AccountsApiDataSourceMessenger, } from "./data-sources/index.cjs";
8
+ export { BackendWebsocketDataSource, createBackendWebsocketDataSource, } from "./data-sources/index.cjs";
9
+ export type { BackendWebsocketDataSourceOptions, BackendWebsocketDataSourceState, BackendWebsocketDataSourceActions, BackendWebsocketDataSourceEvents, BackendWebsocketDataSourceMessenger, BackendWebsocketDataSourceAllowedActions, BackendWebsocketDataSourceAllowedEvents, } from "./data-sources/index.cjs";
10
+ export { RpcDataSource, createRpcDataSource } from "./data-sources/index.cjs";
11
+ export type { RpcDataSourceOptions, RpcDataSourceState, RpcDataSourceActions, RpcDataSourceEvents, RpcDataSourceMessenger, } from "./data-sources/index.cjs";
12
+ export { SnapDataSource, createSnapDataSource, SNAP_DATA_SOURCE_NAME, SOLANA_SNAP_ID, BITCOIN_SNAP_ID, TRON_SNAP_ID, SOLANA_CHAIN_PREFIX, BITCOIN_CHAIN_PREFIX, TRON_CHAIN_PREFIX, SOLANA_MAINNET, SOLANA_DEVNET, SOLANA_TESTNET, BITCOIN_MAINNET, BITCOIN_TESTNET, TRON_MAINNET, TRON_SHASTA, TRON_NILE, TRON_MAINNET_HEX, TRON_SHASTA_HEX, TRON_NILE_HEX, ALL_DEFAULT_NETWORKS, DEFAULT_SOLANA_POLL_INTERVAL, DEFAULT_BITCOIN_POLL_INTERVAL, DEFAULT_TRON_POLL_INTERVAL, DEFAULT_SNAP_POLL_INTERVAL, SNAP_REGISTRY, getSnapTypeForChain, isSnapSupportedChain, isSolanaChain, isBitcoinChain, isTronChain, } from "./data-sources/index.cjs";
13
+ export type { SnapType, SnapInfo, SnapDataSourceState, SnapDataSourceOptions, SnapProvider, SnapDataSourceActions, SnapDataSourceEvents, SnapDataSourceMessenger, } from "./data-sources/index.cjs";
14
+ export { TokenDataSource, PriceDataSource } from "./data-sources/index.cjs";
15
+ export type { TokenDataSourceActions, TokenDataSourceMessenger, PriceDataSourceActions, PriceDataSourceEvents, PriceDataSourceMessenger, } from "./data-sources/index.cjs";
16
+ export { DetectionMiddleware } from "./middlewares/index.cjs";
17
+ export type { DetectionMiddlewareActions, DetectionMiddlewareMessenger, } from "./middlewares/index.cjs";
18
+ export { initMessengers, initDataSources } from "./data-sources/index.cjs";
19
+ export type { DataSourceMessengers, DataSources, InitMessengersOptions, InitDataSourcesOptions, DataSourceActions, DataSourceEvents, DataSourceAllowedActions, DataSourceAllowedEvents, RootMessenger, } from "./data-sources/index.cjs";
20
+ export { normalizeAssetId } from "./utils.cjs";
3
21
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,gCAAgC,EAChC,sBAAsB,EACtB,yBAAyB,GAC1B,+BAA2B;AAC5B,OAAO,EACL,gBAAgB,EAChB,+BAA+B,GAChC,+BAA2B"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}