@metamask/connect-multichain 0.5.2 → 0.6.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 (139) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/README.md +415 -3
  3. package/dist/browser/es/connect-multichain.d.mts +33 -9
  4. package/dist/browser/es/connect-multichain.mjs +864 -510
  5. package/dist/browser/es/connect-multichain.mjs.map +1 -1
  6. package/dist/browser/es/metafile-esm.json +1 -1
  7. package/dist/browser/iife/connect-multichain.d.ts +33 -9
  8. package/dist/browser/iife/connect-multichain.js +24802 -24331
  9. package/dist/browser/iife/connect-multichain.js.map +1 -1
  10. package/dist/browser/iife/metafile-iife.json +1 -1
  11. package/dist/browser/umd/connect-multichain.d.ts +33 -9
  12. package/dist/browser/umd/connect-multichain.js +864 -510
  13. package/dist/browser/umd/connect-multichain.js.map +1 -1
  14. package/dist/browser/umd/metafile-cjs.json +1 -1
  15. package/dist/node/cjs/connect-multichain.d.ts +33 -9
  16. package/dist/node/cjs/connect-multichain.js +693 -340
  17. package/dist/node/cjs/connect-multichain.js.map +1 -1
  18. package/dist/node/cjs/metafile-cjs.json +1 -1
  19. package/dist/node/es/connect-multichain.d.mts +33 -9
  20. package/dist/node/es/connect-multichain.mjs +694 -339
  21. package/dist/node/es/connect-multichain.mjs.map +1 -1
  22. package/dist/node/es/metafile-esm.json +1 -1
  23. package/dist/react-native/es/connect-multichain.d.mts +33 -9
  24. package/dist/react-native/es/connect-multichain.mjs +857 -503
  25. package/dist/react-native/es/connect-multichain.mjs.map +1 -1
  26. package/dist/react-native/es/metafile-esm.json +1 -1
  27. package/dist/src/domain/logger/index.d.ts +1 -1
  28. package/dist/src/domain/logger/index.d.ts.map +1 -1
  29. package/dist/src/domain/logger/index.js.map +1 -1
  30. package/dist/src/domain/multichain/api/constants.js.map +1 -1
  31. package/dist/src/domain/multichain/api/types.d.ts +1 -1
  32. package/dist/src/domain/multichain/api/types.d.ts.map +1 -1
  33. package/dist/src/domain/multichain/index.d.ts +15 -4
  34. package/dist/src/domain/multichain/index.d.ts.map +1 -1
  35. package/dist/src/domain/multichain/index.js +14 -0
  36. package/dist/src/domain/multichain/index.js.map +1 -1
  37. package/dist/src/domain/multichain/types.d.ts +14 -0
  38. package/dist/src/domain/multichain/types.d.ts.map +1 -1
  39. package/dist/src/domain/platform/index.d.ts.map +1 -1
  40. package/dist/src/domain/platform/index.js +1 -0
  41. package/dist/src/domain/platform/index.js.map +1 -1
  42. package/dist/src/index.browser.d.ts.map +1 -1
  43. package/dist/src/index.browser.js +9 -4
  44. package/dist/src/index.browser.js.map +1 -1
  45. package/dist/src/index.native.d.ts.map +1 -1
  46. package/dist/src/index.native.js +9 -4
  47. package/dist/src/index.native.js.map +1 -1
  48. package/dist/src/index.node.d.ts.map +1 -1
  49. package/dist/src/index.node.js +8 -4
  50. package/dist/src/index.node.js.map +1 -1
  51. package/dist/src/multichain/index.d.ts +4 -3
  52. package/dist/src/multichain/index.d.ts.map +1 -1
  53. package/dist/src/multichain/index.js +181 -59
  54. package/dist/src/multichain/index.js.map +1 -1
  55. package/dist/src/multichain/rpc/handlers/rpcClient.d.ts +9 -2
  56. package/dist/src/multichain/rpc/handlers/rpcClient.d.ts.map +1 -1
  57. package/dist/src/multichain/rpc/handlers/rpcClient.js +13 -3
  58. package/dist/src/multichain/rpc/handlers/rpcClient.js.map +1 -1
  59. package/dist/src/multichain/rpc/requestRouter.d.ts +14 -1
  60. package/dist/src/multichain/rpc/requestRouter.d.ts.map +1 -1
  61. package/dist/src/multichain/rpc/requestRouter.js +27 -5
  62. package/dist/src/multichain/rpc/requestRouter.js.map +1 -1
  63. package/dist/src/multichain/transports/default/index.d.ts +5 -3
  64. package/dist/src/multichain/transports/default/index.d.ts.map +1 -1
  65. package/dist/src/multichain/transports/default/index.js +31 -28
  66. package/dist/src/multichain/transports/default/index.js.map +1 -1
  67. package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts +3 -3
  68. package/dist/src/multichain/transports/multichainApiClientWrapper/index.d.ts.map +1 -1
  69. package/dist/src/multichain/transports/multichainApiClientWrapper/index.js +33 -29
  70. package/dist/src/multichain/transports/multichainApiClientWrapper/index.js.map +1 -1
  71. package/dist/src/multichain/transports/mwp/KeyManager.d.ts.map +1 -1
  72. package/dist/src/multichain/transports/mwp/KeyManager.js.map +1 -1
  73. package/dist/src/multichain/transports/mwp/index.d.ts +16 -3
  74. package/dist/src/multichain/transports/mwp/index.d.ts.map +1 -1
  75. package/dist/src/multichain/transports/mwp/index.js +157 -39
  76. package/dist/src/multichain/transports/mwp/index.js.map +1 -1
  77. package/dist/src/multichain/utils/analytics.d.ts.map +1 -1
  78. package/dist/src/multichain/utils/analytics.js +1 -0
  79. package/dist/src/multichain/utils/analytics.js.map +1 -1
  80. package/dist/src/multichain/utils/index.d.ts +48 -0
  81. package/dist/src/multichain/utils/index.d.ts.map +1 -1
  82. package/dist/src/multichain/utils/index.js +91 -6
  83. package/dist/src/multichain/utils/index.js.map +1 -1
  84. package/dist/src/polyfills/buffer-shim.js +5 -11
  85. package/dist/src/polyfills/buffer-shim.js.map +1 -1
  86. package/dist/src/store/adapters/node.d.ts +1 -1
  87. package/dist/src/store/adapters/node.d.ts.map +1 -1
  88. package/dist/src/store/adapters/node.js +11 -4
  89. package/dist/src/store/adapters/node.js.map +1 -1
  90. package/dist/src/store/adapters/rn.d.ts.map +1 -1
  91. package/dist/src/store/adapters/rn.js +1 -0
  92. package/dist/src/store/adapters/rn.js.map +1 -1
  93. package/dist/src/store/adapters/web.d.ts +5 -5
  94. package/dist/src/store/adapters/web.d.ts.map +1 -1
  95. package/dist/src/store/adapters/web.js +7 -1
  96. package/dist/src/store/adapters/web.js.map +1 -1
  97. package/dist/src/store/index.d.ts.map +1 -1
  98. package/dist/src/store/index.js +2 -0
  99. package/dist/src/store/index.js.map +1 -1
  100. package/dist/src/ui/ModalFactory.d.ts.map +1 -1
  101. package/dist/src/ui/ModalFactory.js +1 -4
  102. package/dist/src/ui/ModalFactory.js.map +1 -1
  103. package/dist/src/ui/index.d.ts.map +1 -1
  104. package/dist/src/ui/index.js +2 -0
  105. package/dist/src/ui/index.js.map +1 -1
  106. package/dist/src/ui/index.native.d.ts.map +1 -1
  107. package/dist/src/ui/index.native.js +4 -1
  108. package/dist/src/ui/index.native.js.map +1 -1
  109. package/dist/src/ui/modals/base/AbstractInstallModal.d.ts +2 -3
  110. package/dist/src/ui/modals/base/AbstractInstallModal.d.ts.map +1 -1
  111. package/dist/src/ui/modals/base/AbstractInstallModal.js +28 -12
  112. package/dist/src/ui/modals/base/AbstractInstallModal.js.map +1 -1
  113. package/dist/src/ui/modals/base/AbstractOTPModal.d.ts +2 -2
  114. package/dist/src/ui/modals/base/AbstractOTPModal.d.ts.map +1 -1
  115. package/dist/src/ui/modals/base/AbstractOTPModal.js.map +1 -1
  116. package/dist/src/ui/modals/base/utils.d.ts +12 -0
  117. package/dist/src/ui/modals/base/utils.d.ts.map +1 -1
  118. package/dist/src/ui/modals/base/utils.js +16 -5
  119. package/dist/src/ui/modals/base/utils.js.map +1 -1
  120. package/dist/src/ui/modals/node/install.d.ts.map +1 -1
  121. package/dist/src/ui/modals/node/install.js +1 -1
  122. package/dist/src/ui/modals/node/install.js.map +1 -1
  123. package/dist/src/ui/modals/node/otp.d.ts.map +1 -1
  124. package/dist/src/ui/modals/node/otp.js +6 -2
  125. package/dist/src/ui/modals/node/otp.js.map +1 -1
  126. package/dist/src/ui/modals/rn/install.d.ts.map +1 -1
  127. package/dist/src/ui/modals/rn/install.js +7 -3
  128. package/dist/src/ui/modals/rn/install.js.map +1 -1
  129. package/dist/src/ui/modals/rn/otp.d.ts.map +1 -1
  130. package/dist/src/ui/modals/rn/otp.js +6 -2
  131. package/dist/src/ui/modals/rn/otp.js.map +1 -1
  132. package/dist/src/ui/modals/web/install.d.ts.map +1 -1
  133. package/dist/src/ui/modals/web/install.js +1 -1
  134. package/dist/src/ui/modals/web/install.js.map +1 -1
  135. package/dist/src/ui/modals/web/otp.d.ts.map +1 -1
  136. package/dist/src/ui/modals/web/otp.js +6 -2
  137. package/dist/src/ui/modals/web/otp.js.map +1 -1
  138. package/dist/types/connect-multichain.d.ts +33 -9
  139. package/package.json +3 -3
@@ -18,10 +18,12 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
18
18
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
19
19
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
20
20
  };
21
- var _MetaMaskConnectMultichain_instances, _MetaMaskConnectMultichain_provider, _MetaMaskConnectMultichain_providerTransportWrapper, _MetaMaskConnectMultichain_transport, _MetaMaskConnectMultichain_dappClient, _MetaMaskConnectMultichain_beforeUnloadListener, _MetaMaskConnectMultichain_listener, _MetaMaskConnectMultichain_sdkInfo, _MetaMaskConnectMultichain_setupAnalytics, _MetaMaskConnectMultichain_onTransportNotification, _MetaMaskConnectMultichain_getStoredTransport, _MetaMaskConnectMultichain_setupTransport, _MetaMaskConnectMultichain_init, _MetaMaskConnectMultichain_createDappClient, _MetaMaskConnectMultichain_setupMWP, _MetaMaskConnectMultichain_onBeforeUnload, _MetaMaskConnectMultichain_createBeforeUnloadListener, _MetaMaskConnectMultichain_renderInstallModalAsync, _MetaMaskConnectMultichain_showInstallModal, _MetaMaskConnectMultichain_headlessConnect, _MetaMaskConnectMultichain_setupDefaultTransport, _MetaMaskConnectMultichain_deeplinkConnect, _MetaMaskConnectMultichain_handleConnection;
21
+ var _MetaMaskConnectMultichain_instances, _MetaMaskConnectMultichain_provider, _MetaMaskConnectMultichain_providerTransportWrapper, _MetaMaskConnectMultichain_transport, _MetaMaskConnectMultichain_dappClient, _MetaMaskConnectMultichain_beforeUnloadListener, _MetaMaskConnectMultichain_listener, _MetaMaskConnectMultichain_sdkInfo, _MetaMaskConnectMultichain_setupAnalytics, _MetaMaskConnectMultichain_onTransportNotification, _MetaMaskConnectMultichain_getStoredTransport, _MetaMaskConnectMultichain_setupTransport, _MetaMaskConnectMultichain_init, _MetaMaskConnectMultichain_createDappClient, _MetaMaskConnectMultichain_setupMWP, _MetaMaskConnectMultichain_onBeforeUnload, _MetaMaskConnectMultichain_createBeforeUnloadListener, _MetaMaskConnectMultichain_renderInstallModalAsync, _MetaMaskConnectMultichain_showInstallModal, _MetaMaskConnectMultichain_headlessConnect, _MetaMaskConnectMultichain_setupDefaultTransport, _MetaMaskConnectMultichain_deeplinkConnect, _MetaMaskConnectMultichain_handleConnection, _MetaMaskConnectMultichain_getCaipSession, _MetaMaskConnectMultichain_openConnectDeeplinkIfNeeded;
22
22
  /* eslint-disable @typescript-eslint/no-misused-promises */
23
23
  /* eslint-disable @typescript-eslint/naming-convention */
24
24
  /* eslint-disable no-restricted-globals */
25
+ /* eslint-disable promise/always-return -- Event handlers */
26
+ /* eslint-disable no-async-promise-executor -- Async promise executor needed for complex flow */
25
27
  import { analytics } from '@metamask/analytics';
26
28
  import { ErrorCode, ProtocolError, SessionStore, WebSocketTransport, } from '@metamask/mobile-wallet-protocol-core';
27
29
  import { DappClient } from '@metamask/mobile-wallet-protocol-dapp-client';
@@ -35,13 +37,14 @@ import { getPlatformType, hasExtension, isSecure, PlatformType, } from '../domai
35
37
  import { RpcClient } from './rpc/handlers/rpcClient';
36
38
  import { RequestRouter } from './rpc/requestRouter';
37
39
  import { DefaultTransport } from './transports/default';
40
+ import { MultichainApiClientWrapperTransport } from './transports/multichainApiClientWrapper';
38
41
  import { MWPTransport } from './transports/mwp';
39
42
  import { keymanager } from './transports/mwp/KeyManager';
40
- import { getDappId, openDeeplink, setupDappMetadata } from './utils';
41
- import { MultichainApiClientWrapperTransport } from './transports/multichainApiClientWrapper';
43
+ import { getDappId, getGlobalObject, mergeRequestedSessionWithExisting, openDeeplink, setupDappMetadata, } from './utils';
42
44
  export { getInfuraRpcUrls } from '../domain/multichain/api/infura';
43
45
  // ENFORCE NAMESPACE THAT CAN BE DISABLED
44
46
  const logger = createLogger('metamask-sdk:core');
47
+ const SINGLETON_KEY = '__METAMASK_CONNECT_MULTICHAIN_SINGLETON__';
45
48
  export class MetaMaskConnectMultichain extends MultichainCore {
46
49
  get status() {
47
50
  return this._status;
@@ -93,25 +96,53 @@ export class MetaMaskConnectMultichain extends MultichainCore {
93
96
  _MetaMaskConnectMultichain_listener.set(this, void 0);
94
97
  _MetaMaskConnectMultichain_sdkInfo.set(this, `Sdk/Javascript SdkVersion/${getVersion()} Platform/${getPlatformType()} dApp/${(_g = this.options.dapp.url) !== null && _g !== void 0 ? _g : this.options.dapp.name} dAppTitle/${this.options.dapp.name}`);
95
98
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_providerTransportWrapper, new MultichainApiClientWrapperTransport(this), "f");
96
- __classPrivateFieldSet(this, _MetaMaskConnectMultichain_provider, getMultichainClient({ transport: __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f") }), "f");
99
+ __classPrivateFieldSet(this, _MetaMaskConnectMultichain_provider, getMultichainClient({
100
+ transport: __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f"),
101
+ }), "f");
97
102
  }
103
+ // Creates a singleton instance of MetaMaskConnectMultichain.
104
+ // If the singleton already exists, it merges the incoming options with the
105
+ // existing singleton options for the following keys: `api.supportedNetworks`,
106
+ // `ui.*`, `mobile.*`, `transport.extensionId`, `debug`. Take note that the
107
+ // value for `dapp` is not merged as it does not make sense for subsequent calls to
108
+ // `createMultichainClient` to have a different `dapp` value.
98
109
  static create(options) {
99
110
  return __awaiter(this, void 0, void 0, function* () {
100
- const instance = new MetaMaskConnectMultichain(options);
101
- const isEnabled = yield isLoggerEnabled('metamask-sdk:core', instance.options.storage);
102
- if (isEnabled) {
103
- enableDebug('metamask-sdk:core');
111
+ const globalObject = getGlobalObject();
112
+ const existing = globalObject[SINGLETON_KEY];
113
+ if (existing) {
114
+ const instance = yield existing;
115
+ instance.mergeOptions(options);
116
+ if (options.debug) {
117
+ enableDebug('metamask-sdk:*');
118
+ }
119
+ return instance;
104
120
  }
105
- yield __classPrivateFieldGet(instance, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_init).call(instance);
106
- return instance;
121
+ const instancePromise = (() => __awaiter(this, void 0, void 0, function* () {
122
+ const instance = new MetaMaskConnectMultichain(options);
123
+ const isEnabled = yield isLoggerEnabled('metamask-sdk:core', instance.options.storage);
124
+ if (isEnabled) {
125
+ enableDebug('metamask-sdk:core');
126
+ }
127
+ yield __classPrivateFieldGet(instance, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_init).call(instance);
128
+ return instance;
129
+ }))();
130
+ globalObject[SINGLETON_KEY] = instancePromise;
131
+ instancePromise.catch((error) => {
132
+ globalObject[SINGLETON_KEY] = undefined;
133
+ console.error('Error initializing MetaMaskConnectMultichain', error);
134
+ });
135
+ return instancePromise;
107
136
  });
108
137
  }
109
138
  // TODO: make this into param object
110
139
  connect(scopes, caipAccountIds, sessionProperties, forceRequest) {
111
140
  return __awaiter(this, void 0, void 0, function* () {
112
141
  var _a;
113
- if (this.status !== 'connected') {
114
- yield this.disconnect();
142
+ if (this.status === 'connecting' &&
143
+ this.transportType === TransportType.MWP) {
144
+ yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_openConnectDeeplinkIfNeeded).call(this);
145
+ throw new Error('Existing connection is pending. Please check your MetaMask Mobile app to continue.');
115
146
  }
116
147
  const { ui } = this.options;
117
148
  const platformType = getPlatformType();
@@ -136,11 +167,20 @@ export class MetaMaskConnectMultichain extends MultichainCore {
136
167
  catch (error) {
137
168
  logger('Error tracking connection_initiated event', error);
138
169
  }
170
+ const sessionData = yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_getCaipSession).call(this);
171
+ const { mergedScopes, mergedCaipAccountIds, mergedSessionProperties } = mergeRequestedSessionWithExisting(sessionData, scopes, caipAccountIds, sessionProperties);
139
172
  // Needed because empty object will cause wallet_createSession to return an error
140
- const nonEmptySessionProperites = Object.keys(sessionProperties !== null && sessionProperties !== void 0 ? sessionProperties : {}).length > 0 ? sessionProperties : undefined;
173
+ const nonEmptySessionProperties = Object.keys(mergedSessionProperties !== null && mergedSessionProperties !== void 0 ? mergedSessionProperties : {}).length > 0
174
+ ? mergedSessionProperties
175
+ : undefined;
141
176
  if (((_a = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_transport, "f")) === null || _a === void 0 ? void 0 : _a.isConnected()) && !secure) {
142
177
  return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, __classPrivateFieldGet(this, _MetaMaskConnectMultichain_transport, "f")
143
- .connect({ scopes, caipAccountIds, sessionProperties: nonEmptySessionProperites, forceRequest })
178
+ .connect({
179
+ scopes: mergedScopes,
180
+ caipAccountIds: mergedCaipAccountIds,
181
+ sessionProperties: nonEmptySessionProperties,
182
+ forceRequest,
183
+ })
144
184
  .then(() => __awaiter(this, void 0, void 0, function* () {
145
185
  if (__classPrivateFieldGet(this, _MetaMaskConnectMultichain_transport, "f") instanceof MWPTransport) {
146
186
  return this.storage.setTransport(TransportType.MWP);
@@ -151,13 +191,23 @@ export class MetaMaskConnectMultichain extends MultichainCore {
151
191
  // In MetaMask Mobile In App Browser, window.ethereum is available directly
152
192
  if (platformType === PlatformType.MetaMaskMobileWebview) {
153
193
  const defaultTransport = yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_setupDefaultTransport).call(this);
154
- return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, defaultTransport.connect({ scopes, caipAccountIds, sessionProperties: nonEmptySessionProperites, forceRequest }), scopes, transportType);
194
+ return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, defaultTransport.connect({
195
+ scopes: mergedScopes,
196
+ caipAccountIds: mergedCaipAccountIds,
197
+ sessionProperties: nonEmptySessionProperties,
198
+ forceRequest,
199
+ }), scopes, transportType);
155
200
  }
156
201
  if (isWeb && hasExtensionInstalled && preferExtension) {
157
202
  // If metamask extension is available, connect to it
158
203
  const defaultTransport = yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_setupDefaultTransport).call(this);
159
204
  // Web transport has no initial payload
160
- return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, defaultTransport.connect({ scopes, caipAccountIds, sessionProperties: nonEmptySessionProperites, forceRequest }), scopes, transportType);
205
+ return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, defaultTransport.connect({
206
+ scopes: mergedScopes,
207
+ caipAccountIds: mergedCaipAccountIds,
208
+ sessionProperties: nonEmptySessionProperties,
209
+ forceRequest,
210
+ }), scopes, transportType);
161
211
  }
162
212
  // Connection will now be InstallModal + QRCodes or Deeplinks, both require mwp
163
213
  yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_setupMWP).call(this);
@@ -167,10 +217,10 @@ export class MetaMaskConnectMultichain extends MultichainCore {
167
217
  : !preferExtension || showInstallModal;
168
218
  if (secure && !shouldShowInstallModal) {
169
219
  // Desktop is not preferred option, so we use deeplinks (mobile web)
170
- return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_deeplinkConnect).call(this, scopes, caipAccountIds, nonEmptySessionProperites), scopes, transportType);
220
+ return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_deeplinkConnect).call(this, mergedScopes, mergedCaipAccountIds, nonEmptySessionProperties), scopes, transportType);
171
221
  }
172
222
  // Show install modal for RN, Web + Node
173
- return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_showInstallModal).call(this, shouldShowInstallModal, scopes, caipAccountIds, nonEmptySessionProperites), scopes, transportType);
223
+ return __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_handleConnection).call(this, __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_showInstallModal).call(this, shouldShowInstallModal, mergedScopes, mergedCaipAccountIds, nonEmptySessionProperties), scopes, transportType);
174
224
  });
175
225
  }
176
226
  emit(event, args) {
@@ -179,18 +229,24 @@ export class MetaMaskConnectMultichain extends MultichainCore {
179
229
  super.emit(event, args);
180
230
  }
181
231
  disconnect() {
182
- return __awaiter(this, void 0, void 0, function* () {
232
+ return __awaiter(this, arguments, void 0, function* (scopes = []) {
183
233
  var _a, _b, _c;
184
- yield ((_a = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_listener, "f")) === null || _a === void 0 ? void 0 : _a.call(this));
185
- (_b = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_beforeUnloadListener, "f")) === null || _b === void 0 ? void 0 : _b.call(this);
186
- yield ((_c = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_transport, "f")) === null || _c === void 0 ? void 0 : _c.disconnect());
187
- yield this.storage.removeTransport();
188
- this.emit('stateChanged', 'disconnected');
189
- __classPrivateFieldSet(this, _MetaMaskConnectMultichain_listener, undefined, "f");
190
- __classPrivateFieldSet(this, _MetaMaskConnectMultichain_beforeUnloadListener, undefined, "f");
191
- __classPrivateFieldSet(this, _MetaMaskConnectMultichain_transport, undefined, "f");
192
- __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").clearNotificationCallbacks();
193
- __classPrivateFieldSet(this, _MetaMaskConnectMultichain_dappClient, undefined, "f");
234
+ const sessionData = yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_getCaipSession).call(this);
235
+ const remainingScopes = scopes.length === 0
236
+ ? []
237
+ : Object.keys(sessionData.sessionScopes).filter((scope) => !scopes.includes(scope));
238
+ yield ((_a = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_transport, "f")) === null || _a === void 0 ? void 0 : _a.disconnect(scopes));
239
+ if (remainingScopes.length === 0) {
240
+ yield ((_b = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_listener, "f")) === null || _b === void 0 ? void 0 : _b.call(this));
241
+ (_c = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_beforeUnloadListener, "f")) === null || _c === void 0 ? void 0 : _c.call(this);
242
+ yield this.storage.removeTransport();
243
+ __classPrivateFieldSet(this, _MetaMaskConnectMultichain_listener, undefined, "f");
244
+ __classPrivateFieldSet(this, _MetaMaskConnectMultichain_beforeUnloadListener, undefined, "f");
245
+ __classPrivateFieldSet(this, _MetaMaskConnectMultichain_transport, undefined, "f");
246
+ __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").clearTransportNotificationListener();
247
+ __classPrivateFieldSet(this, _MetaMaskConnectMultichain_dappClient, undefined, "f");
248
+ this.status = 'disconnected';
249
+ }
194
250
  });
195
251
  }
196
252
  invokeMethod(request) {
@@ -203,7 +259,7 @@ export class MetaMaskConnectMultichain extends MultichainCore {
203
259
  });
204
260
  }
205
261
  // DRY THIS WITH REQUEST ROUTER
206
- openDeeplinkIfNeeded() {
262
+ openSimpleDeeplinkIfNeeded() {
207
263
  const { ui, mobile } = this.options;
208
264
  const { showInstallModal = false } = ui !== null && ui !== void 0 ? ui : {};
209
265
  const secure = isSecure();
@@ -224,6 +280,27 @@ export class MetaMaskConnectMultichain extends MultichainCore {
224
280
  }), 10); // small delay to ensure the message encryption and dispatch completes
225
281
  }
226
282
  }
283
+ // Provides a way for ecosystem clients (EVM, Solana, etc.) to get the current CAIP session data
284
+ // when instantiating themselves (as they would have already missed any initial sessionChanged events emitted by ConnectMultichain)
285
+ // without having to concern themselves with the current transport connection status.
286
+ emitSessionChanged() {
287
+ return __awaiter(this, void 0, void 0, function* () {
288
+ var _a;
289
+ const emptySession = { sessionScopes: {} };
290
+ if (this.status !== 'connected' && this.status !== 'connecting') {
291
+ // If we aren't connected or connecting, there definitely is no active CAIP session
292
+ // so we optimistically emit an empty session to signify that to the ecosystem client consumers (EVM, Solana, etc.)
293
+ this.emit('wallet_sessionChanged', emptySession);
294
+ return;
295
+ }
296
+ // Otherwise, we need to fetch the current CAIP session from the wallet
297
+ const response = yield this.transport.request({
298
+ method: 'wallet_getSession',
299
+ });
300
+ // And then simulate a sessionChanged event with the current CAIP session data
301
+ this.emit('wallet_sessionChanged', (_a = response.result) !== null && _a !== void 0 ? _a : emptySession);
302
+ });
303
+ }
227
304
  }
228
305
  _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_providerTransportWrapper = new WeakMap(), _MetaMaskConnectMultichain_transport = new WeakMap(), _MetaMaskConnectMultichain_dappClient = new WeakMap(), _MetaMaskConnectMultichain_beforeUnloadListener = new WeakMap(), _MetaMaskConnectMultichain_listener = new WeakMap(), _MetaMaskConnectMultichain_sdkInfo = new WeakMap(), _MetaMaskConnectMultichain_instances = new WeakSet(), _MetaMaskConnectMultichain_setupAnalytics = function _MetaMaskConnectMultichain_setupAnalytics() {
229
306
  return __awaiter(this, void 0, void 0, function* () {
@@ -267,7 +344,7 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
267
344
  if (hasExtensionInstalled) {
268
345
  const apiTransport = new DefaultTransport();
269
346
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_transport, apiTransport, "f");
270
- __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").setupNotifcationListener();
347
+ __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").setupTransportNotificationListener();
271
348
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_listener, apiTransport.onNotification(__classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_onTransportNotification).bind(this)), "f");
272
349
  return apiTransport;
273
350
  }
@@ -278,7 +355,7 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
278
355
  const apiTransport = new MWPTransport(dappClient, kvstore);
279
356
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_dappClient, dappClient, "f");
280
357
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_transport, apiTransport, "f");
281
- __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").setupNotifcationListener();
358
+ __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").setupTransportNotificationListener();
282
359
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_listener, apiTransport.onNotification(__classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_onTransportNotification).bind(this)), "f");
283
360
  return apiTransport;
284
361
  }
@@ -308,26 +385,15 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
308
385
  });
309
386
  }, _MetaMaskConnectMultichain_init = function _MetaMaskConnectMultichain_init() {
310
387
  return __awaiter(this, void 0, void 0, function* () {
311
- var _a;
312
388
  try {
313
- // @ts-expect-error mmsdk should be accessible
314
- if (typeof window !== 'undefined' && ((_a = window.mmsdk) === null || _a === void 0 ? void 0 : _a.isInitialized)) {
315
- logger('MetaMaskSDK: init already initialized');
389
+ yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_setupAnalytics).call(this);
390
+ yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_setupTransport).call(this);
391
+ try {
392
+ const baseProps = yield getBaseAnalyticsProperties(this.options, this.storage);
393
+ analytics.track('mmconnect_initialized', baseProps);
316
394
  }
317
- else {
318
- yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_setupAnalytics).call(this);
319
- yield __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_setupTransport).call(this);
320
- try {
321
- const baseProps = yield getBaseAnalyticsProperties(this.options, this.storage);
322
- analytics.track('mmconnect_initialized', baseProps);
323
- }
324
- catch (error) {
325
- logger('Error tracking initialized event', error);
326
- }
327
- if (typeof window !== 'undefined') {
328
- // @ts-expect-error mmsdk should be accessible
329
- window.mmsdk = this;
330
- }
395
+ catch (error) {
396
+ logger('Error tracking initialized event', error);
331
397
  }
332
398
  }
333
399
  catch (error) {
@@ -364,7 +430,7 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
364
430
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_dappClient, dappClient, "f");
365
431
  const apiTransport = new MWPTransport(dappClient, kvstore);
366
432
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_transport, apiTransport, "f");
367
- __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").setupNotifcationListener();
433
+ __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").setupTransportNotificationListener();
368
434
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_listener, this.transport.onNotification(__classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_onTransportNotification).bind(this)), "f");
369
435
  yield this.storage.setTransport(TransportType.MWP);
370
436
  });
@@ -377,14 +443,15 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
377
443
  }
378
444
  });
379
445
  }, _MetaMaskConnectMultichain_createBeforeUnloadListener = function _MetaMaskConnectMultichain_createBeforeUnloadListener() {
446
+ const handler = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_onBeforeUnload).bind(this);
380
447
  if (typeof window !== 'undefined' &&
381
448
  typeof window.addEventListener !== 'undefined') {
382
- window.addEventListener('beforeunload', __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_onBeforeUnload).bind(this));
449
+ window.addEventListener('beforeunload', handler);
383
450
  }
384
451
  return () => {
385
452
  if (typeof window !== 'undefined' &&
386
453
  typeof window.removeEventListener !== 'undefined') {
387
- window.removeEventListener('beforeunload', __classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_onBeforeUnload).bind(this));
454
+ window.removeEventListener('beforeunload', handler);
388
455
  }
389
456
  };
390
457
  }, _MetaMaskConnectMultichain_renderInstallModalAsync = function _MetaMaskConnectMultichain_renderInstallModalAsync(desktopPreferred, scopes, caipAccountIds, sessionProperties) {
@@ -413,7 +480,11 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
413
480
  (() => __awaiter(this, void 0, void 0, function* () {
414
481
  var _a;
415
482
  try {
416
- yield this.transport.connect({ scopes, caipAccountIds, sessionProperties });
483
+ yield this.transport.connect({
484
+ scopes,
485
+ caipAccountIds,
486
+ sessionProperties,
487
+ });
417
488
  yield this.options.ui.factory.unload();
418
489
  (_a = this.options.ui.factory.modal) === null || _a === void 0 ? void 0 : _a.unmount();
419
490
  this.status = 'connected';
@@ -424,13 +495,18 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
424
495
  // Ignore Request expired errors to allow modal to regenerate expired qr codes
425
496
  if (error.code !== ErrorCode.REQUEST_EXPIRED) {
426
497
  this.status = 'disconnected';
498
+ // Close the modal on error
499
+ yield this.options.ui.factory.unload(error);
427
500
  reject(error);
428
501
  }
429
502
  // If request is expires, the QRCode will automatically be regenerated we can ignore this case
430
503
  }
431
504
  else {
432
505
  this.status = 'disconnected';
433
- reject(error instanceof Error ? error : new Error(String(error)));
506
+ const normalizedError = error instanceof Error ? error : new Error(String(error));
507
+ // Close the modal on error
508
+ yield this.options.ui.factory.unload(normalizedError);
509
+ reject(normalizedError);
434
510
  }
435
511
  }
436
512
  }))().catch(() => {
@@ -523,12 +599,12 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
523
599
  const transport = new DefaultTransport();
524
600
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_listener, transport.onNotification(__classPrivateFieldGet(this, _MetaMaskConnectMultichain_instances, "m", _MetaMaskConnectMultichain_onTransportNotification).bind(this)), "f");
525
601
  __classPrivateFieldSet(this, _MetaMaskConnectMultichain_transport, transport, "f");
526
- __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").setupNotifcationListener();
602
+ __classPrivateFieldGet(this, _MetaMaskConnectMultichain_providerTransportWrapper, "f").setupTransportNotificationListener();
527
603
  return transport;
528
604
  });
529
605
  }, _MetaMaskConnectMultichain_deeplinkConnect = function _MetaMaskConnectMultichain_deeplinkConnect(scopes, caipAccountIds, sessionProperties) {
530
606
  return __awaiter(this, void 0, void 0, function* () {
531
- return new Promise((resolve, reject) => {
607
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
532
608
  // Handle the response to the initial wallet_createSession request
533
609
  const dappClientMessageHandler = (payload) => {
534
610
  var _a;
@@ -555,7 +631,7 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
555
631
  let timeout;
556
632
  if (this.transport.isConnected()) {
557
633
  timeout = setTimeout(() => {
558
- this.openDeeplinkIfNeeded();
634
+ this.openSimpleDeeplinkIfNeeded();
559
635
  }, 250);
560
636
  }
561
637
  else {
@@ -593,7 +669,7 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
593
669
  clearTimeout(timeout);
594
670
  }
595
671
  });
596
- });
672
+ }));
597
673
  });
598
674
  }, _MetaMaskConnectMultichain_handleConnection = function _MetaMaskConnectMultichain_handleConnection(promise, scopes, transportType) {
599
675
  return __awaiter(this, void 0, void 0, function* () {
@@ -628,5 +704,51 @@ _MetaMaskConnectMultichain_provider = new WeakMap(), _MetaMaskConnectMultichain_
628
704
  throw error;
629
705
  }));
630
706
  });
707
+ }, _MetaMaskConnectMultichain_getCaipSession = function _MetaMaskConnectMultichain_getCaipSession() {
708
+ return __awaiter(this, void 0, void 0, function* () {
709
+ let sessionData = {
710
+ sessionScopes: {},
711
+ sessionProperties: {},
712
+ };
713
+ if (this.status === 'connected') {
714
+ const response = yield this.transport.request({
715
+ method: 'wallet_getSession',
716
+ });
717
+ if (response.result) {
718
+ sessionData = response.result;
719
+ }
720
+ }
721
+ return sessionData;
722
+ });
723
+ }, _MetaMaskConnectMultichain_openConnectDeeplinkIfNeeded = function _MetaMaskConnectMultichain_openConnectDeeplinkIfNeeded() {
724
+ return __awaiter(this, void 0, void 0, function* () {
725
+ var _a, _b;
726
+ const { ui } = this.options;
727
+ const { showInstallModal = false } = ui !== null && ui !== void 0 ? ui : {};
728
+ const secure = isSecure();
729
+ const shouldOpenDeeplink = secure && !showInstallModal;
730
+ if (!shouldOpenDeeplink) {
731
+ return;
732
+ }
733
+ const storedSessionRequest = yield ((_a = __classPrivateFieldGet(this, _MetaMaskConnectMultichain_transport, "f")) === null || _a === void 0 ? void 0 : _a.getStoredPendingSessionRequest());
734
+ if (!storedSessionRequest) {
735
+ return;
736
+ }
737
+ const connectionRequest = {
738
+ sessionRequest: storedSessionRequest,
739
+ metadata: {
740
+ dapp: this.options.dapp,
741
+ sdk: { version: getVersion(), platform: getPlatformType() },
742
+ },
743
+ };
744
+ const deeplink = this.options.ui.factory.createConnectionDeeplink(connectionRequest);
745
+ const universalLink = this.options.ui.factory.createConnectionUniversalLink(connectionRequest);
746
+ if ((_b = this.options.mobile) === null || _b === void 0 ? void 0 : _b.preferredOpenLink) {
747
+ this.options.mobile.preferredOpenLink(deeplink, '_self');
748
+ }
749
+ else {
750
+ openDeeplink(this.options, deeplink, universalLink);
751
+ }
752
+ });
631
753
  };
632
754
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/multichain/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/multichain/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import type { Json } from '@metamask/utils';
2
- import { type InvokeMethodOptions, type MultichainOptions } from '../../../domain';
2
+ import type { InvokeMethodOptions, MultichainOptions } from '../../../domain';
3
+ /**
4
+ * Gets the next RPC ID for request tracking.
5
+ *
6
+ * @returns The next unique RPC ID.
7
+ */
3
8
  export declare function getNextRpcId(): number;
4
9
  export declare class MissingRpcEndpointErr extends Error {
5
10
  }
@@ -9,7 +14,9 @@ export declare class RpcClient {
9
14
  constructor(config: MultichainOptions, sdkInfo: string);
10
15
  /**
11
16
  * Routes the request to a configured RPC node.
12
- * @param options - The invoke method options
17
+ *
18
+ * @param options - The invoke method options.
19
+ * @returns The JSON response from the RPC node.
13
20
  */
14
21
  request(options: InvokeMethodOptions): Promise<Json>;
15
22
  private getRpcEndpoint;
@@ -1 +1 @@
1
- {"version":3,"file":"rpcClient.d.ts","sourceRoot":"","sources":["../../../../../src/multichain/rpc/handlers/rpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAEN,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAOtB,MAAM,iBAAiB,CAAC;AAIzB,wBAAgB,YAAY,WAG3B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;CAAI;AAEpD,qBAAa,SAAS;IAEpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,MAAM;IAGjC;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1D,OAAO,CAAC,cAAc;YAWR,gBAAgB;YAkChB,aAAa;IAS3B,OAAO,CAAC,UAAU;CAalB"}
1
+ {"version":3,"file":"rpcClient.d.ts","sourceRoot":"","sources":["../../../../../src/multichain/rpc/handlers/rpcClient.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAQ5C,OAAO,KAAK,EAIV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAIzB;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,qBAAa,qBAAsB,SAAQ,KAAK;CAAG;AAEnD,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,MAAM;IAGlC;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1D,OAAO,CAAC,cAAc;YAaR,gBAAgB;YAkChB,aAAa;IAS3B,OAAO,CAAC,UAAU;CAanB"}
@@ -1,3 +1,7 @@
1
+ /* eslint-disable no-restricted-syntax -- Private class properties use established patterns */
2
+ /* eslint-disable @typescript-eslint/explicit-function-return-type -- Inferred types are sufficient */
3
+ /* eslint-disable @typescript-eslint/parameter-properties -- Constructor shorthand is intentional */
4
+ /* eslint-disable @typescript-eslint/no-shadow -- fetch import shadows global */
1
5
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
6
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
7
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -10,13 +14,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
14
  import fetch from 'cross-fetch';
11
15
  import { RPCHttpErr, RPCReadonlyRequestErr, RPCReadonlyResponseErr, } from '../../../domain';
12
16
  let rpcId = 1;
17
+ /**
18
+ * Gets the next RPC ID for request tracking.
19
+ *
20
+ * @returns The next unique RPC ID.
21
+ */
13
22
  export function getNextRpcId() {
14
23
  rpcId += 1;
15
24
  return rpcId;
16
25
  }
17
26
  export class MissingRpcEndpointErr extends Error {
18
27
  }
19
- ;
20
28
  export class RpcClient {
21
29
  constructor(config, sdkInfo) {
22
30
  this.config = config;
@@ -24,7 +32,9 @@ export class RpcClient {
24
32
  }
25
33
  /**
26
34
  * Routes the request to a configured RPC node.
27
- * @param options - The invoke method options
35
+ *
36
+ * @param options - The invoke method options.
37
+ * @returns The JSON response from the RPC node.
28
38
  */
29
39
  request(options) {
30
40
  return __awaiter(this, void 0, void 0, function* () {
@@ -75,7 +85,7 @@ export class RpcClient {
75
85
  if (error instanceof Error && error.name === 'AbortError') {
76
86
  throw new RPCReadonlyRequestErr(`Request timeout after ${timeout}ms`);
77
87
  }
78
- throw new RPCReadonlyRequestErr(error instanceof Error ? error.message : 'Unknown error');
88
+ throw new RPCReadonlyRequestErr(error.message);
79
89
  }
80
90
  });
81
91
  }