@hsuite/native-connect-angular 2.1.0 → 2.1.1
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.
- package/coverage/coverage-summary.json +25 -21
- package/coverage/index.html +108 -108
- package/coverage/lcov-report/index.html +108 -108
- package/coverage/lcov-report/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-actions/index.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-filter/index.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-formatting.service.ts.html +13 -19
- package/coverage/lcov-report/lib/components/account-selector/account-grouping.service.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-list/index.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-selector.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-selector.service.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/index.html +5 -5
- package/coverage/lcov-report/lib/components/wallet-account-display/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-account-display/wallet-account-display.component.ts.html +10 -10
- package/coverage/lcov-report/lib/components/wallet-connect-button/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connect-prompt/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connected-guard/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connection-modal/index.html +15 -15
- package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +84 -36
- package/coverage/lcov-report/lib/components/wallet-session-display/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-transaction-status/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
- package/coverage/lcov-report/lib/directives/index.html +1 -1
- package/coverage/lcov-report/lib/directives/wallet-connected.directive.ts.html +1 -1
- package/coverage/lcov-report/lib/directives/wallet-context.directive.ts.html +1 -1
- package/coverage/lcov-report/lib/directives/wallet-events.directive.ts.html +1 -1
- package/coverage/lcov-report/lib/hsuite-wallet.module.ts.html +1 -1
- package/coverage/lcov-report/lib/index.html +1 -1
- package/coverage/lcov-report/lib/models/connection-config.model.ts.html +1 -1
- package/coverage/lcov-report/lib/models/index.html +7 -7
- package/coverage/lcov-report/lib/models/provider-types.ts.html +11 -5
- package/coverage/lcov-report/lib/providers/base-wallet-provider.ts.html +20 -20
- package/coverage/lcov-report/lib/providers/hsuite-native/channel-client.service.ts.html +639 -636
- package/coverage/lcov-report/lib/providers/hsuite-native/index.html +19 -19
- package/coverage/lcov-report/lib/providers/hsuite-native-provider.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/index.html +18 -18
- package/coverage/lcov-report/lib/providers/p2p-native/index.html +22 -22
- package/coverage/lcov-report/lib/providers/p2p-native/p2p-native.provider.ts.html +993 -993
- package/coverage/lcov-report/lib/providers/p2p-native/p2p-session-manager.ts.html +7 -4
- package/coverage/lcov-report/lib/providers/wallet-error-handler.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/walletconnect/core/index.html +65 -65
- package/coverage/lcov-report/lib/providers/walletconnect/core/session-health.ts.html +240 -240
- package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +559 -559
- package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-provider.ts.html +1108 -1105
- package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +493 -493
- package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +366 -366
- package/coverage/lcov-report/lib/providers/walletconnect/signers/hedera-signer.ts.html +730 -730
- package/coverage/lcov-report/lib/providers/walletconnect/signers/index.html +43 -43
- package/coverage/lcov-report/lib/providers/walletconnect/signers/signer-factory.ts.html +234 -234
- package/coverage/lcov-report/lib/providers/walletconnect/signers/xrpl-signer.ts.html +650 -650
- package/coverage/lcov-report/lib/services/hsuite-auth.interceptor.ts.html +568 -0
- package/coverage/lcov-report/lib/services/index.html +50 -20
- package/coverage/lcov-report/lib/services/logger.service.ts.html +1 -1
- package/coverage/lcov-report/lib/services/smart-session.service.ts.html +1264 -0
- package/coverage/lcov-report/lib/services/transaction-builders/active-account-source.ts.html +250 -0
- package/coverage/lcov-report/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
- package/coverage/lcov-report/lib/services/transaction-builders/hedera-amount-utils.ts.html +155 -155
- package/coverage/lcov-report/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +2156 -2156
- package/coverage/lcov-report/lib/services/transaction-builders/index.html +58 -43
- package/coverage/lcov-report/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1674 -1674
- package/coverage/lcov-report/lib/services/transaction.service.ts.html +4 -4
- package/coverage/lcov-report/lib/services/unified-wallet.service.ts.html +3 -3
- package/coverage/lcov-report/lib/services/wallet-context.service.ts.html +1 -1
- package/coverage/lcov-report/lib/services/wallet-event-bus.service.ts.html +249 -249
- package/coverage/lcov-report/lib/services/wallet-providers.service.ts.html +1 -1
- package/coverage/lcov-report/lib/transports/chrome-extension-transport.ts.html +1 -1
- package/coverage/lcov-report/lib/transports/index.html +1 -1
- package/coverage/lcov-report/lib/utils/index.html +36 -21
- package/coverage/lcov-report/lib/utils/ledger-icons.util.ts.html +254 -161
- package/coverage/lcov-report/lib/utils/ledger-ui-registry.ts.html +676 -0
- package/coverage/lcov.info +8567 -6896
- package/coverage/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-actions/index.html +1 -1
- package/coverage/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-filter/index.html +1 -1
- package/coverage/lib/components/account-selector/account-formatting.service.ts.html +13 -19
- package/coverage/lib/components/account-selector/account-grouping.service.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-list/index.html +1 -1
- package/coverage/lib/components/account-selector/account-selector.component.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-selector.service.ts.html +1 -1
- package/coverage/lib/components/account-selector/index.html +5 -5
- package/coverage/lib/components/wallet-account-display/index.html +1 -1
- package/coverage/lib/components/wallet-account-display/wallet-account-display.component.ts.html +10 -10
- package/coverage/lib/components/wallet-connect-button/index.html +1 -1
- package/coverage/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +1 -1
- package/coverage/lib/components/wallet-connect-prompt/index.html +1 -1
- package/coverage/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
- package/coverage/lib/components/wallet-connected-guard/index.html +1 -1
- package/coverage/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
- package/coverage/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +1 -1
- package/coverage/lib/components/wallet-connection-modal/connection-method-step/index.html +1 -1
- package/coverage/lib/components/wallet-connection-modal/index.html +15 -15
- package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/index.html +1 -1
- package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +1 -1
- package/coverage/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +84 -36
- package/coverage/lib/components/wallet-session-display/index.html +1 -1
- package/coverage/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
- package/coverage/lib/components/wallet-transaction-status/index.html +1 -1
- package/coverage/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
- package/coverage/lib/directives/index.html +1 -1
- package/coverage/lib/directives/wallet-connected.directive.ts.html +1 -1
- package/coverage/lib/directives/wallet-context.directive.ts.html +1 -1
- package/coverage/lib/directives/wallet-events.directive.ts.html +1 -1
- package/coverage/lib/hsuite-wallet.module.ts.html +1 -1
- package/coverage/lib/index.html +1 -1
- package/coverage/lib/models/connection-config.model.ts.html +1 -1
- package/coverage/lib/models/index.html +7 -7
- package/coverage/lib/models/provider-types.ts.html +11 -5
- package/coverage/lib/providers/base-wallet-provider.ts.html +20 -20
- package/coverage/lib/providers/hsuite-native/channel-client.service.ts.html +639 -636
- package/coverage/lib/providers/hsuite-native/index.html +19 -19
- package/coverage/lib/providers/hsuite-native-provider.ts.html +1 -1
- package/coverage/lib/providers/index.html +18 -18
- package/coverage/lib/providers/p2p-native/index.html +22 -22
- package/coverage/lib/providers/p2p-native/p2p-native.provider.ts.html +993 -993
- package/coverage/lib/providers/p2p-native/p2p-session-manager.ts.html +7 -4
- package/coverage/lib/providers/wallet-error-handler.ts.html +1 -1
- package/coverage/lib/providers/walletconnect/core/index.html +65 -65
- package/coverage/lib/providers/walletconnect/core/session-health.ts.html +240 -240
- package/coverage/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +559 -559
- package/coverage/lib/providers/walletconnect/core/walletconnect-provider.ts.html +1108 -1105
- package/coverage/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +493 -493
- package/coverage/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +366 -366
- package/coverage/lib/providers/walletconnect/signers/hedera-signer.ts.html +730 -730
- package/coverage/lib/providers/walletconnect/signers/index.html +43 -43
- package/coverage/lib/providers/walletconnect/signers/signer-factory.ts.html +234 -234
- package/coverage/lib/providers/walletconnect/signers/xrpl-signer.ts.html +650 -650
- package/coverage/lib/services/hsuite-auth.interceptor.ts.html +568 -0
- package/coverage/lib/services/index.html +50 -20
- package/coverage/lib/services/logger.service.ts.html +1 -1
- package/coverage/lib/services/smart-session.service.ts.html +1264 -0
- package/coverage/lib/services/transaction-builders/active-account-source.ts.html +250 -0
- package/coverage/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
- package/coverage/lib/services/transaction-builders/hedera-amount-utils.ts.html +155 -155
- package/coverage/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +2156 -2156
- package/coverage/lib/services/transaction-builders/index.html +58 -43
- package/coverage/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1674 -1674
- package/coverage/lib/services/transaction.service.ts.html +4 -4
- package/coverage/lib/services/unified-wallet.service.ts.html +3 -3
- package/coverage/lib/services/wallet-context.service.ts.html +1 -1
- package/coverage/lib/services/wallet-event-bus.service.ts.html +249 -249
- package/coverage/lib/services/wallet-providers.service.ts.html +1 -1
- package/coverage/lib/transports/chrome-extension-transport.ts.html +1 -1
- package/coverage/lib/transports/index.html +1 -1
- package/coverage/lib/utils/index.html +36 -21
- package/coverage/lib/utils/ledger-icons.util.ts.html +254 -161
- package/coverage/lib/utils/ledger-ui-registry.ts.html +676 -0
- package/dist/fesm2022/hsuite-native-connect-angular.mjs +854 -308
- package/dist/fesm2022/hsuite-native-connect-angular.mjs.map +1 -1
- package/dist/index.d.ts +456 -30
- package/package.json +4 -4
- package/src/index.ts +26 -0
- package/src/lib/components/account-selector/account-formatting.service.ts +8 -10
- package/src/lib/components/wallet-account-display/wallet-account-display.component.ts +9 -9
- package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts +34 -18
- package/src/lib/models/provider-types.ts +3 -1
- package/src/lib/models/unified-account.model.ts +4 -1
- package/src/lib/providers/hsuite-native/channel-client.service.ts +1 -0
- package/src/lib/providers/p2p-native/p2p-session-manager.ts +1 -0
- package/src/lib/providers/walletconnect/core/walletconnect-provider.ts +2 -1
- package/src/lib/services/hsuite-auth.interceptor.ts +159 -0
- package/src/lib/services/smart-session.service.ts +378 -0
- package/src/lib/services/transaction-builders/active-account-source.spec.ts +75 -0
- package/src/lib/services/transaction-builders/active-account-source.ts +55 -0
- package/src/lib/services/transaction-builders/hedera-transaction-builder.service.ts +4 -4
- package/src/lib/services/transaction-builders/index.ts +1 -0
- package/src/lib/services/transaction.service.ts +7 -3
- package/src/lib/services/unified-wallet.service.spec.ts +1 -1
- package/src/lib/services/unified-wallet.service.ts +2 -2
- package/src/lib/utils/index.ts +1 -0
- package/src/lib/utils/ledger-icons.util.ts +61 -30
- package/src/lib/utils/ledger-ui-registry.ts +197 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">58.67% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>115/196</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>3/6</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>3/6</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">58.67% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>115/196</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -259,7 +259,84 @@
|
|
|
259
259
|
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
260
|
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
261
|
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
263
|
+
<span class="cline-any cline-yes">1x</span>
|
|
264
|
+
<span class="cline-any cline-yes">1x</span>
|
|
265
|
+
<span class="cline-any cline-yes">1x</span>
|
|
266
|
+
<span class="cline-any cline-yes">1x</span>
|
|
267
|
+
<span class="cline-any cline-yes">1x</span>
|
|
268
|
+
<span class="cline-any cline-yes">1x</span>
|
|
269
|
+
<span class="cline-any cline-yes">1x</span>
|
|
270
|
+
<span class="cline-any cline-yes">1x</span>
|
|
271
|
+
<span class="cline-any cline-yes">1x</span>
|
|
272
|
+
<span class="cline-any cline-yes">1x</span>
|
|
273
|
+
<span class="cline-any cline-yes">1x</span>
|
|
274
|
+
<span class="cline-any cline-yes">1x</span>
|
|
275
|
+
<span class="cline-any cline-yes">1x</span>
|
|
276
|
+
<span class="cline-any cline-yes">1x</span>
|
|
277
|
+
<span class="cline-any cline-yes">1x</span>
|
|
278
|
+
<span class="cline-any cline-yes">1x</span>
|
|
279
|
+
<span class="cline-any cline-yes">1x</span>
|
|
280
|
+
<span class="cline-any cline-yes">1x</span>
|
|
281
|
+
<span class="cline-any cline-yes">1x</span>
|
|
282
|
+
<span class="cline-any cline-yes">1x</span>
|
|
283
|
+
<span class="cline-any cline-yes">1x</span>
|
|
284
|
+
<span class="cline-any cline-yes">1x</span>
|
|
285
|
+
<span class="cline-any cline-yes">1x</span>
|
|
286
|
+
<span class="cline-any cline-yes">1x</span>
|
|
287
|
+
<span class="cline-any cline-yes">1x</span>
|
|
288
|
+
<span class="cline-any cline-yes">1x</span>
|
|
289
|
+
<span class="cline-any cline-yes">1x</span>
|
|
290
|
+
<span class="cline-any cline-yes">1x</span>
|
|
291
|
+
<span class="cline-any cline-yes">1x</span>
|
|
292
|
+
<span class="cline-any cline-yes">1x</span>
|
|
293
|
+
<span class="cline-any cline-yes">1x</span>
|
|
294
|
+
<span class="cline-any cline-yes">1x</span>
|
|
295
|
+
<span class="cline-any cline-yes">1x</span>
|
|
296
|
+
<span class="cline-any cline-yes">1x</span>
|
|
297
|
+
<span class="cline-any cline-yes">1x</span>
|
|
298
|
+
<span class="cline-any cline-yes">1x</span>
|
|
299
|
+
<span class="cline-any cline-yes">1x</span>
|
|
300
|
+
<span class="cline-any cline-yes">1x</span>
|
|
301
|
+
<span class="cline-any cline-yes">1x</span>
|
|
302
|
+
<span class="cline-any cline-yes">12x</span>
|
|
303
|
+
<span class="cline-any cline-yes">12x</span>
|
|
304
|
+
<span class="cline-any cline-yes">12x</span>
|
|
305
|
+
<span class="cline-any cline-yes">12x</span>
|
|
306
|
+
<span class="cline-any cline-yes">12x</span>
|
|
307
|
+
<span class="cline-any cline-yes">12x</span>
|
|
308
|
+
<span class="cline-any cline-yes">12x</span>
|
|
309
|
+
<span class="cline-any cline-yes">12x</span>
|
|
310
|
+
<span class="cline-any cline-yes">12x</span>
|
|
311
|
+
<span class="cline-any cline-yes">12x</span>
|
|
312
|
+
<span class="cline-any cline-yes">12x</span>
|
|
313
|
+
<span class="cline-any cline-yes">12x</span>
|
|
314
|
+
<span class="cline-any cline-yes">12x</span>
|
|
315
|
+
<span class="cline-any cline-yes">12x</span>
|
|
316
|
+
<span class="cline-any cline-yes">12x</span>
|
|
317
|
+
<span class="cline-any cline-yes">12x</span>
|
|
318
|
+
<span class="cline-any cline-yes">12x</span>
|
|
319
|
+
<span class="cline-any cline-yes">12x</span>
|
|
320
|
+
<span class="cline-any cline-yes">12x</span>
|
|
321
|
+
<span class="cline-any cline-yes">12x</span>
|
|
322
|
+
<span class="cline-any cline-yes">12x</span>
|
|
323
|
+
<span class="cline-any cline-yes">12x</span>
|
|
324
|
+
<span class="cline-any cline-yes">12x</span>
|
|
325
|
+
<span class="cline-any cline-yes">12x</span>
|
|
326
|
+
<span class="cline-any cline-yes">12x</span>
|
|
327
|
+
<span class="cline-any cline-yes">12x</span>
|
|
328
|
+
<span class="cline-any cline-yes">12x</span>
|
|
329
|
+
<span class="cline-any cline-yes">12x</span>
|
|
330
|
+
<span class="cline-any cline-yes">12x</span>
|
|
331
|
+
<span class="cline-any cline-yes">12x</span>
|
|
332
|
+
<span class="cline-any cline-yes">12x</span>
|
|
333
|
+
<span class="cline-any cline-yes">12x</span>
|
|
334
|
+
<span class="cline-any cline-yes">12x</span>
|
|
335
|
+
<span class="cline-any cline-yes">12x</span>
|
|
336
|
+
<span class="cline-any cline-yes">12x</span>
|
|
337
|
+
<span class="cline-any cline-yes">12x</span>
|
|
338
|
+
<span class="cline-any cline-yes">12x</span>
|
|
339
|
+
<span class="cline-any cline-yes">12x</span>
|
|
263
340
|
<span class="cline-any cline-no"> </span>
|
|
264
341
|
<span class="cline-any cline-no"> </span>
|
|
265
342
|
<span class="cline-any cline-no"> </span>
|
|
@@ -298,6 +375,16 @@
|
|
|
298
375
|
<span class="cline-any cline-no"> </span>
|
|
299
376
|
<span class="cline-any cline-no"> </span>
|
|
300
377
|
<span class="cline-any cline-no"> </span>
|
|
378
|
+
<span class="cline-any cline-yes">12x</span>
|
|
379
|
+
<span class="cline-any cline-yes">12x</span>
|
|
380
|
+
<span class="cline-any cline-yes">12x</span>
|
|
381
|
+
<span class="cline-any cline-yes">12x</span>
|
|
382
|
+
<span class="cline-any cline-yes">12x</span>
|
|
383
|
+
<span class="cline-any cline-yes">12x</span>
|
|
384
|
+
<span class="cline-any cline-yes">12x</span>
|
|
385
|
+
<span class="cline-any cline-yes">12x</span>
|
|
386
|
+
<span class="cline-any cline-yes">12x</span>
|
|
387
|
+
<span class="cline-any cline-yes">12x</span>
|
|
301
388
|
<span class="cline-any cline-no"> </span>
|
|
302
389
|
<span class="cline-any cline-no"> </span>
|
|
303
390
|
<span class="cline-any cline-no"> </span>
|
|
@@ -318,12 +405,37 @@
|
|
|
318
405
|
<span class="cline-any cline-no"> </span>
|
|
319
406
|
<span class="cline-any cline-no"> </span>
|
|
320
407
|
<span class="cline-any cline-no"> </span>
|
|
408
|
+
<span class="cline-any cline-yes">12x</span>
|
|
409
|
+
<span class="cline-any cline-yes">12x</span>
|
|
410
|
+
<span class="cline-any cline-yes">12x</span>
|
|
411
|
+
<span class="cline-any cline-yes">12x</span>
|
|
412
|
+
<span class="cline-any cline-yes">12x</span>
|
|
413
|
+
<span class="cline-any cline-yes">12x</span>
|
|
414
|
+
<span class="cline-any cline-yes">12x</span>
|
|
321
415
|
<span class="cline-any cline-no"> </span>
|
|
322
416
|
<span class="cline-any cline-no"> </span>
|
|
323
417
|
<span class="cline-any cline-no"> </span>
|
|
324
418
|
<span class="cline-any cline-no"> </span>
|
|
325
419
|
<span class="cline-any cline-no"> </span>
|
|
326
420
|
<span class="cline-any cline-no"> </span>
|
|
421
|
+
<span class="cline-any cline-yes">12x</span>
|
|
422
|
+
<span class="cline-any cline-yes">12x</span>
|
|
423
|
+
<span class="cline-any cline-yes">12x</span>
|
|
424
|
+
<span class="cline-any cline-yes">12x</span>
|
|
425
|
+
<span class="cline-any cline-yes">12x</span>
|
|
426
|
+
<span class="cline-any cline-yes">12x</span>
|
|
427
|
+
<span class="cline-any cline-yes">12x</span>
|
|
428
|
+
<span class="cline-any cline-yes">12x</span>
|
|
429
|
+
<span class="cline-any cline-yes">12x</span>
|
|
430
|
+
<span class="cline-any cline-yes">12x</span>
|
|
431
|
+
<span class="cline-any cline-yes">12x</span>
|
|
432
|
+
<span class="cline-any cline-yes">12x</span>
|
|
433
|
+
<span class="cline-any cline-yes">12x</span>
|
|
434
|
+
<span class="cline-any cline-yes">12x</span>
|
|
435
|
+
<span class="cline-any cline-yes">12x</span>
|
|
436
|
+
<span class="cline-any cline-yes">12x</span>
|
|
437
|
+
<span class="cline-any cline-yes">12x</span>
|
|
438
|
+
<span class="cline-any cline-yes">12x</span>
|
|
327
439
|
<span class="cline-any cline-no"> </span>
|
|
328
440
|
<span class="cline-any cline-no"> </span>
|
|
329
441
|
<span class="cline-any cline-no"> </span>
|
|
@@ -341,198 +453,86 @@
|
|
|
341
453
|
<span class="cline-any cline-no"> </span>
|
|
342
454
|
<span class="cline-any cline-no"> </span>
|
|
343
455
|
<span class="cline-any cline-no"> </span>
|
|
344
|
-
<span class="cline-any cline-
|
|
345
|
-
<span class="cline-any cline-
|
|
346
|
-
<span class="cline-any cline-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
<span class="
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
<span class="
|
|
424
|
-
<span class="cline-any cline-no"> </span>
|
|
425
|
-
<span class="cline-any cline-no"> </span>
|
|
426
|
-
<span class="cline-any cline-no"> </span>
|
|
427
|
-
<span class="cline-any cline-no"> </span>
|
|
428
|
-
<span class="cline-any cline-no"> </span>
|
|
429
|
-
<span class="cline-any cline-no"> </span>
|
|
430
|
-
<span class="cline-any cline-no"> </span>
|
|
431
|
-
<span class="cline-any cline-no"> </span>
|
|
432
|
-
<span class="cline-any cline-no"> </span>
|
|
433
|
-
<span class="cline-any cline-no"> </span>
|
|
434
|
-
<span class="cline-any cline-no"> </span>
|
|
435
|
-
<span class="cline-any cline-no"> </span>
|
|
436
|
-
<span class="cline-any cline-no"> </span>
|
|
437
|
-
<span class="cline-any cline-no"> </span>
|
|
438
|
-
<span class="cline-any cline-no"> </span>
|
|
439
|
-
<span class="cline-any cline-no"> </span>
|
|
440
|
-
<span class="cline-any cline-no"> </span>
|
|
441
|
-
<span class="cline-any cline-no"> </span>
|
|
442
|
-
<span class="cline-any cline-no"> </span>
|
|
443
|
-
<span class="cline-any cline-no"> </span>
|
|
444
|
-
<span class="cline-any cline-no"> </span>
|
|
445
|
-
<span class="cline-any cline-no"> </span>
|
|
446
|
-
<span class="cline-any cline-no"> </span>
|
|
447
|
-
<span class="cline-any cline-no"> </span>
|
|
448
|
-
<span class="cline-any cline-no"> </span>
|
|
449
|
-
<span class="cline-any cline-no"> </span>
|
|
450
|
-
<span class="cline-any cline-no"> </span>
|
|
451
|
-
<span class="cline-any cline-no"> </span>
|
|
452
|
-
<span class="cline-any cline-no"> </span>
|
|
453
|
-
<span class="cline-any cline-no"> </span>
|
|
454
|
-
<span class="cline-any cline-no"> </span>
|
|
455
|
-
<span class="cline-any cline-no"> </span>
|
|
456
|
-
<span class="cline-any cline-no"> </span>
|
|
457
|
-
<span class="cline-any cline-no"> </span>
|
|
458
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >/**<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
|
|
459
|
-
<span class="cstat-no" title="statement not covered" > * HSuite Native Connect</span>
|
|
460
|
-
<span class="cstat-no" title="statement not covered" > * Copyright 2024-2025 HSuite (https://hsuite.finance)</span>
|
|
461
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
462
|
-
<span class="cstat-no" title="statement not covered" > * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0</span>
|
|
463
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
464
|
-
<span class="cstat-no" title="statement not covered" > * This file is part of HSuite Native Connect. For commercial licensing,</span>
|
|
465
|
-
<span class="cstat-no" title="statement not covered" > * visit https://hsuite.finance/licensing</span>
|
|
466
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
467
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
468
|
-
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
469
|
-
<span class="cstat-no" title="statement not covered" > * @file session-health.ts</span>
|
|
470
|
-
<span class="cstat-no" title="statement not covered" > * @description Manages WalletConnect session health - ensures relay subscriptions</span>
|
|
471
|
-
<span class="cstat-no" title="statement not covered" > * are active before making requests. Transparent to dApp developers.</span>
|
|
472
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
473
|
-
<span class="cstat-no" title="statement not covered" > * This class handles the common WalletConnect issue where relay subscriptions</span>
|
|
474
|
-
<span class="cstat-no" title="statement not covered" > * become stale, causing requests to fail with empty error objects.</span>
|
|
475
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
476
|
-
<span class="cstat-no" title="statement not covered" > * Features:</span>
|
|
477
|
-
<span class="cstat-no" title="statement not covered" > * - Pre-request session ping to ensure relay subscription is active</span>
|
|
478
|
-
<span class="cstat-no" title="statement not covered" > * - Relay connection monitoring (connect/disconnect/error events)</span>
|
|
479
|
-
<span class="cstat-no" title="statement not covered" > * - Automatic ping cache management</span>
|
|
480
|
-
<span class="cstat-no" title="statement not covered" > * - Subscription refresh capability</span>
|
|
481
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
482
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
483
|
-
<span class="cstat-no" title="statement not covered" >import { getLogger } from '@hsuite/native-connect-sdk';</span>
|
|
484
|
-
<span class="cstat-no" title="statement not covered" >import type SignClient from '@walletconnect/sign-client';</span>
|
|
485
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
486
|
-
<span class="cstat-no" title="statement not covered" >const logger = getLogger().scoped?.('WCSessionHealth') ?? getLogger();</span>
|
|
487
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
488
|
-
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
489
|
-
<span class="cstat-no" title="statement not covered" > * Manages WalletConnect session health to prevent stale relay subscription issues.</span>
|
|
490
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
491
|
-
<span class="cstat-no" title="statement not covered" > * The WalletConnect relay uses WebSocket connections that can become stale,</span>
|
|
492
|
-
<span class="cstat-no" title="statement not covered" > * causing push events to stop arriving. This manager:</span>
|
|
493
|
-
<span class="cstat-no" title="statement not covered" > * - Pings sessions before requests to ensure subscriptions are active</span>
|
|
494
|
-
<span class="cstat-no" title="statement not covered" > * - Monitors relay connection state</span>
|
|
495
|
-
<span class="cstat-no" title="statement not covered" > * - Clears ping cache on disconnect to force re-ping</span>
|
|
496
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
497
|
-
<span class="cstat-no" title="statement not covered" >export class SessionHealthManager {</span>
|
|
498
|
-
<span class="cstat-no" title="statement not covered" > private client: SignClient;</span>
|
|
499
|
-
<span class="cstat-no" title="statement not covered" > private lastPingTime = new Map<string, number>();</span>
|
|
500
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
501
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
502
|
-
<span class="cstat-no" title="statement not covered" > * Minimum interval between pings for the same topic (30 seconds).</span>
|
|
503
|
-
<span class="cstat-no" title="statement not covered" > * Pinging too frequently is unnecessary and adds latency.</span>
|
|
504
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
505
|
-
<span class="cstat-no" title="statement not covered" > private readonly PING_INTERVAL_MS = 30000;</span>
|
|
506
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
507
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
508
|
-
<span class="cstat-no" title="statement not covered" > * Maximum time to wait for a ping response (5 seconds).</span>
|
|
509
|
-
<span class="cstat-no" title="statement not covered" > * If ping times out, we proceed anyway but log a warning.</span>
|
|
510
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
511
|
-
<span class="cstat-no" title="statement not covered" > private readonly PING_TIMEOUT_MS = 5000;</span>
|
|
512
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
513
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
514
|
-
<span class="cstat-no" title="statement not covered" > * Create a new SessionHealthManager.</span>
|
|
515
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
516
|
-
<span class="cstat-no" title="statement not covered" > * @param client - Initialized WalletConnect SignClient instance</span>
|
|
517
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
518
|
-
<span class="cstat-no" title="statement not covered" > constructor(client: SignClient) {</span>
|
|
519
|
-
<span class="cstat-no" title="statement not covered" > this.client = client;</span>
|
|
520
|
-
<span class="cstat-no" title="statement not covered" > this.setupRelayMonitoring();</span>
|
|
521
|
-
<span class="cstat-no" title="statement not covered" > logger.info('SessionHealthManager initialized');</span>
|
|
522
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
523
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
524
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
525
|
-
<span class="cstat-no" title="statement not covered" > * Ensure session is healthy before making a request.</span>
|
|
526
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
527
|
-
<span class="cstat-no" title="statement not covered" > * Pings the session if the last ping was more than 30 seconds ago.</span>
|
|
528
|
-
<span class="cstat-no" title="statement not covered" > * This refreshes the relay subscription and helps prevent the</span>
|
|
529
|
-
<span class="cstat-no" title="statement not covered" > * empty error object issue.</span>
|
|
530
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
531
|
-
<span class="cstat-no" title="statement not covered" > * Called automatically by WalletConnectClientManager before requests.</span>
|
|
532
|
-
<span class="cstat-no" title="statement not covered" > *</span>
|
|
533
|
-
<span class="cstat-no" title="statement not covered" > * @param topic - Session topic to verify</span>
|
|
534
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
535
|
-
<span class="cstat-no" title="statement not covered" > async ensureSessionHealth(topic: string): Promise<void> {</span>
|
|
456
|
+
<span class="cline-any cline-yes">12x</span>
|
|
457
|
+
<span class="cline-any cline-yes">12x</span>
|
|
458
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
459
|
+
* HSuite Native Connect
|
|
460
|
+
* Copyright 2024-2025 HSuite (https://hsuite.finance)
|
|
461
|
+
*
|
|
462
|
+
* SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
|
|
463
|
+
*
|
|
464
|
+
* This file is part of HSuite Native Connect. For commercial licensing,
|
|
465
|
+
* visit https://hsuite.finance/licensing
|
|
466
|
+
*/
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* @file session-health.ts
|
|
470
|
+
* @description Manages WalletConnect session health - ensures relay subscriptions
|
|
471
|
+
* are active before making requests. Transparent to dApp developers.
|
|
472
|
+
*
|
|
473
|
+
* This class handles the common WalletConnect issue where relay subscriptions
|
|
474
|
+
* become stale, causing requests to fail with empty error objects.
|
|
475
|
+
*
|
|
476
|
+
* Features:
|
|
477
|
+
* - Pre-request session ping to ensure relay subscription is active
|
|
478
|
+
* - Relay connection monitoring (connect/disconnect/error events)
|
|
479
|
+
* - Automatic ping cache management
|
|
480
|
+
* - Subscription refresh capability
|
|
481
|
+
*/
|
|
482
|
+
|
|
483
|
+
import { getLogger } from '@hsuite/native-connect-sdk';
|
|
484
|
+
import type SignClient from '@walletconnect/sign-client';
|
|
485
|
+
|
|
486
|
+
const logger = getLogger().scoped?.('WCSessionHealth'<span class="branch-0 cbranch-no" title="branch not covered" >) ?? getLogger();</span>
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Manages WalletConnect session health to prevent stale relay subscription issues.
|
|
490
|
+
*
|
|
491
|
+
* The WalletConnect relay uses WebSocket connections that can become stale,
|
|
492
|
+
* causing push events to stop arriving. This manager:
|
|
493
|
+
* - Pings sessions before requests to ensure subscriptions are active
|
|
494
|
+
* - Monitors relay connection state
|
|
495
|
+
* - Clears ping cache on disconnect to force re-ping
|
|
496
|
+
*/
|
|
497
|
+
export class SessionHealthManager {
|
|
498
|
+
private client: SignClient;
|
|
499
|
+
private lastPingTime = new Map<string, number>();
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* Minimum interval between pings for the same topic (30 seconds).
|
|
503
|
+
* Pinging too frequently is unnecessary and adds latency.
|
|
504
|
+
*/
|
|
505
|
+
private readonly PING_INTERVAL_MS = 30000;
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* Maximum time to wait for a ping response (5 seconds).
|
|
509
|
+
* If ping times out, we proceed anyway but log a warning.
|
|
510
|
+
*/
|
|
511
|
+
private readonly PING_TIMEOUT_MS = 5000;
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* Create a new SessionHealthManager.
|
|
515
|
+
*
|
|
516
|
+
* @param client - Initialized WalletConnect SignClient instance
|
|
517
|
+
*/
|
|
518
|
+
constructor(client: SignClient) {
|
|
519
|
+
this.client = client;
|
|
520
|
+
this.setupRelayMonitoring();
|
|
521
|
+
logger.info('SessionHealthManager initialized');
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Ensure session is healthy before making a request.
|
|
526
|
+
*
|
|
527
|
+
* Pings the session if the last ping was more than 30 seconds ago.
|
|
528
|
+
* This refreshes the relay subscription and helps prevent the
|
|
529
|
+
* empty error object issue.
|
|
530
|
+
*
|
|
531
|
+
* Called automatically by WalletConnectClientManager before requests.
|
|
532
|
+
*
|
|
533
|
+
* @param topic - Session topic to verify
|
|
534
|
+
*/
|
|
535
|
+
<span class="fstat-no" title="function not covered" > async ensureSessionHealth(topic: string): Promise<void> {</span>
|
|
536
536
|
<span class="cstat-no" title="statement not covered" > const lastPing = this.lastPingTime.get(topic) || 0;</span>
|
|
537
537
|
<span class="cstat-no" title="statement not covered" > const now = Date.now();</span>
|
|
538
538
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
@@ -571,16 +571,16 @@
|
|
|
571
571
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
572
572
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
573
573
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
<span class="
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* Force refresh relay subscription for a topic.
|
|
577
|
+
*
|
|
578
|
+
* Use this when you suspect the subscription is stale and want
|
|
579
|
+
* to explicitly re-subscribe rather than relying on ping.
|
|
580
|
+
*
|
|
581
|
+
* @param topic - Session topic to refresh subscription for
|
|
582
|
+
*/
|
|
583
|
+
<span class="fstat-no" title="function not covered" > async refreshSubscription(topic: string): Promise<void> {</span>
|
|
584
584
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
585
585
|
<span class="cstat-no" title="statement not covered" > // eslint-disable-next-line @typescript-eslint/no-explicit-any -- WalletConnect internal API not typed</span>
|
|
586
586
|
<span class="cstat-no" title="statement not covered" > const relayer = (this.client as any).core?.relayer;</span>
|
|
@@ -601,37 +601,37 @@
|
|
|
601
601
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
602
602
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
603
603
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
<span class="
|
|
604
|
+
|
|
605
|
+
/**
|
|
606
|
+
* Clear ping cache for a specific topic or all topics.
|
|
607
|
+
*
|
|
608
|
+
* @param topic - Optional topic to clear. If not provided, clears all.
|
|
609
|
+
*/
|
|
610
|
+
<span class="fstat-no" title="function not covered" > clearPingCache(topic?: string): void {</span>
|
|
611
611
|
<span class="cstat-no" title="statement not covered" > if (topic) {</span>
|
|
612
612
|
<span class="cstat-no" title="statement not covered" > this.lastPingTime.delete(topic);</span>
|
|
613
613
|
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
614
614
|
<span class="cstat-no" title="statement not covered" > this.lastPingTime.clear();</span>
|
|
615
615
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
616
616
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
<span class="
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* Setup relay connection monitoring.
|
|
620
|
+
*
|
|
621
|
+
* Listens for:
|
|
622
|
+
* - connect: Logs when WebSocket connects
|
|
623
|
+
* - disconnect: Clears ping cache to force re-ping on next request
|
|
624
|
+
* - error: Logs relay errors
|
|
625
|
+
*
|
|
626
|
+
* @private
|
|
627
|
+
*/
|
|
628
|
+
private setupRelayMonitoring(): void {
|
|
629
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- WalletConnect internal API not typed
|
|
630
|
+
const relayer = (this.client as any).<span class="branch-0 cbranch-no" title="branch not covered" >core?.relayer;</span>
|
|
631
|
+
if (!relayer) {
|
|
632
|
+
logger.warn('Could not access relayer for monitoring');
|
|
633
|
+
return;
|
|
634
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > }</span>
|
|
635
635
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
636
636
|
<span class="cstat-no" title="statement not covered" > relayer.on('connect', () => {</span>
|
|
637
637
|
<span class="cstat-no" title="statement not covered" > logger.info('Relay WebSocket connected');</span>
|
|
@@ -649,8 +649,8 @@
|
|
|
649
649
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
650
650
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
651
651
|
<span class="cstat-no" title="statement not covered" > logger.debug('Relay monitoring setup complete');</span>
|
|
652
|
-
|
|
653
|
-
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
654
|
</pre></td></tr></table></pre>
|
|
655
655
|
|
|
656
656
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -658,7 +658,7 @@
|
|
|
658
658
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
659
659
|
Code coverage generated by
|
|
660
660
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
661
|
-
at 2026-06-
|
|
661
|
+
at 2026-06-27T21:00:37.138Z
|
|
662
662
|
</div>
|
|
663
663
|
<script src="../../../../prettify.js"></script>
|
|
664
664
|
<script>
|