@hsuite/native-connect-angular 1.0.0 → 2.1.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 (162) hide show
  1. package/coverage/coverage-summary.json +49 -49
  2. package/coverage/index.html +122 -122
  3. package/coverage/lcov-report/index.html +122 -122
  4. package/coverage/lcov-report/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
  5. package/coverage/lcov-report/lib/components/account-selector/account-actions/index.html +1 -1
  6. package/coverage/lcov-report/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
  7. package/coverage/lcov-report/lib/components/account-selector/account-filter/index.html +1 -1
  8. package/coverage/lcov-report/lib/components/account-selector/account-formatting.service.ts.html +1 -1
  9. package/coverage/lcov-report/lib/components/account-selector/account-grouping.service.ts.html +1 -1
  10. package/coverage/lcov-report/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
  11. package/coverage/lcov-report/lib/components/account-selector/account-list/index.html +1 -1
  12. package/coverage/lcov-report/lib/components/account-selector/account-selector.component.ts.html +1 -1
  13. package/coverage/lcov-report/lib/components/account-selector/account-selector.service.ts.html +1 -1
  14. package/coverage/lcov-report/lib/components/account-selector/index.html +1 -1
  15. package/coverage/lcov-report/lib/components/wallet-account-display/index.html +1 -1
  16. package/coverage/lcov-report/lib/components/wallet-account-display/wallet-account-display.component.ts.html +1 -1
  17. package/coverage/lcov-report/lib/components/wallet-connect-button/index.html +21 -21
  18. package/coverage/lcov-report/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +475 -451
  19. package/coverage/lcov-report/lib/components/wallet-connect-prompt/index.html +1 -1
  20. package/coverage/lcov-report/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
  21. package/coverage/lcov-report/lib/components/wallet-connected-guard/index.html +1 -1
  22. package/coverage/lcov-report/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
  23. package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +148 -148
  24. package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/index.html +17 -17
  25. package/coverage/lcov-report/lib/components/wallet-connection-modal/index.html +21 -21
  26. package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/index.html +17 -17
  27. package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +838 -838
  28. package/coverage/lcov-report/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +1182 -987
  29. package/coverage/lcov-report/lib/components/wallet-session-display/index.html +1 -1
  30. package/coverage/lcov-report/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
  31. package/coverage/lcov-report/lib/components/wallet-transaction-status/index.html +1 -1
  32. package/coverage/lcov-report/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
  33. package/coverage/lcov-report/lib/directives/index.html +1 -1
  34. package/coverage/lcov-report/lib/directives/wallet-connected.directive.ts.html +1 -1
  35. package/coverage/lcov-report/lib/directives/wallet-context.directive.ts.html +1 -1
  36. package/coverage/lcov-report/lib/directives/wallet-events.directive.ts.html +1 -1
  37. package/coverage/lcov-report/lib/hsuite-wallet.module.ts.html +1 -1
  38. package/coverage/lcov-report/lib/index.html +1 -1
  39. package/coverage/lcov-report/lib/models/connection-config.model.ts.html +1 -1
  40. package/coverage/lcov-report/lib/models/index.html +1 -1
  41. package/coverage/lcov-report/lib/models/provider-types.ts.html +1 -1
  42. package/coverage/lcov-report/lib/providers/base-wallet-provider.ts.html +20 -20
  43. package/coverage/lcov-report/lib/providers/hsuite-native/channel-client.service.ts.html +637 -637
  44. package/coverage/lcov-report/lib/providers/hsuite-native/index.html +19 -19
  45. package/coverage/lcov-report/lib/providers/hsuite-native-provider.ts.html +1 -1
  46. package/coverage/lcov-report/lib/providers/index.html +18 -18
  47. package/coverage/lcov-report/lib/providers/p2p-native/index.html +20 -20
  48. package/coverage/lcov-report/lib/providers/p2p-native/p2p-native.provider.ts.html +993 -993
  49. package/coverage/lcov-report/lib/providers/p2p-native/p2p-session-manager.ts.html +1 -1
  50. package/coverage/lcov-report/lib/providers/wallet-error-handler.ts.html +1 -1
  51. package/coverage/lcov-report/lib/providers/walletconnect/core/index.html +65 -65
  52. package/coverage/lcov-report/lib/providers/walletconnect/core/session-health.ts.html +240 -240
  53. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +559 -559
  54. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-provider.ts.html +1104 -1104
  55. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +493 -493
  56. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +366 -366
  57. package/coverage/lcov-report/lib/providers/walletconnect/signers/hedera-signer.ts.html +730 -730
  58. package/coverage/lcov-report/lib/providers/walletconnect/signers/index.html +43 -43
  59. package/coverage/lcov-report/lib/providers/walletconnect/signers/signer-factory.ts.html +234 -234
  60. package/coverage/lcov-report/lib/providers/walletconnect/signers/xrpl-signer.ts.html +650 -650
  61. package/coverage/lcov-report/lib/services/index.html +31 -31
  62. package/coverage/lcov-report/lib/services/logger.service.ts.html +4 -4
  63. package/coverage/lcov-report/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
  64. package/coverage/lcov-report/lib/services/transaction-builders/hedera-amount-utils.ts.html +155 -155
  65. package/coverage/lcov-report/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +2156 -2156
  66. package/coverage/lcov-report/lib/services/transaction-builders/index.html +43 -43
  67. package/coverage/lcov-report/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1674 -1674
  68. package/coverage/lcov-report/lib/services/transaction.service.ts.html +4 -7
  69. package/coverage/lcov-report/lib/services/unified-wallet.service.ts.html +7 -10
  70. package/coverage/lcov-report/lib/services/wallet-context.service.ts.html +1 -1
  71. package/coverage/lcov-report/lib/services/wallet-event-bus.service.ts.html +249 -249
  72. package/coverage/lcov-report/lib/services/wallet-providers.service.ts.html +4 -7
  73. package/coverage/lcov-report/lib/transports/chrome-extension-transport.ts.html +1 -1
  74. package/coverage/lcov-report/lib/transports/index.html +1 -1
  75. package/coverage/lcov-report/lib/utils/index.html +1 -1
  76. package/coverage/lcov-report/lib/utils/ledger-icons.util.ts.html +1 -1
  77. package/coverage/lcov.info +14420 -14977
  78. package/coverage/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
  79. package/coverage/lib/components/account-selector/account-actions/index.html +1 -1
  80. package/coverage/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
  81. package/coverage/lib/components/account-selector/account-filter/index.html +1 -1
  82. package/coverage/lib/components/account-selector/account-formatting.service.ts.html +1 -1
  83. package/coverage/lib/components/account-selector/account-grouping.service.ts.html +1 -1
  84. package/coverage/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
  85. package/coverage/lib/components/account-selector/account-list/index.html +1 -1
  86. package/coverage/lib/components/account-selector/account-selector.component.ts.html +1 -1
  87. package/coverage/lib/components/account-selector/account-selector.service.ts.html +1 -1
  88. package/coverage/lib/components/account-selector/index.html +1 -1
  89. package/coverage/lib/components/wallet-account-display/index.html +1 -1
  90. package/coverage/lib/components/wallet-account-display/wallet-account-display.component.ts.html +1 -1
  91. package/coverage/lib/components/wallet-connect-button/index.html +21 -21
  92. package/coverage/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +475 -451
  93. package/coverage/lib/components/wallet-connect-prompt/index.html +1 -1
  94. package/coverage/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
  95. package/coverage/lib/components/wallet-connected-guard/index.html +1 -1
  96. package/coverage/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
  97. package/coverage/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +148 -148
  98. package/coverage/lib/components/wallet-connection-modal/connection-method-step/index.html +17 -17
  99. package/coverage/lib/components/wallet-connection-modal/index.html +21 -21
  100. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/index.html +17 -17
  101. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +838 -838
  102. package/coverage/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +1182 -987
  103. package/coverage/lib/components/wallet-session-display/index.html +1 -1
  104. package/coverage/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
  105. package/coverage/lib/components/wallet-transaction-status/index.html +1 -1
  106. package/coverage/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
  107. package/coverage/lib/directives/index.html +1 -1
  108. package/coverage/lib/directives/wallet-connected.directive.ts.html +1 -1
  109. package/coverage/lib/directives/wallet-context.directive.ts.html +1 -1
  110. package/coverage/lib/directives/wallet-events.directive.ts.html +1 -1
  111. package/coverage/lib/hsuite-wallet.module.ts.html +1 -1
  112. package/coverage/lib/index.html +1 -1
  113. package/coverage/lib/models/connection-config.model.ts.html +1 -1
  114. package/coverage/lib/models/index.html +1 -1
  115. package/coverage/lib/models/provider-types.ts.html +1 -1
  116. package/coverage/lib/providers/base-wallet-provider.ts.html +20 -20
  117. package/coverage/lib/providers/hsuite-native/channel-client.service.ts.html +637 -637
  118. package/coverage/lib/providers/hsuite-native/index.html +19 -19
  119. package/coverage/lib/providers/hsuite-native-provider.ts.html +1 -1
  120. package/coverage/lib/providers/index.html +18 -18
  121. package/coverage/lib/providers/p2p-native/index.html +20 -20
  122. package/coverage/lib/providers/p2p-native/p2p-native.provider.ts.html +993 -993
  123. package/coverage/lib/providers/p2p-native/p2p-session-manager.ts.html +1 -1
  124. package/coverage/lib/providers/wallet-error-handler.ts.html +1 -1
  125. package/coverage/lib/providers/walletconnect/core/index.html +65 -65
  126. package/coverage/lib/providers/walletconnect/core/session-health.ts.html +240 -240
  127. package/coverage/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +559 -559
  128. package/coverage/lib/providers/walletconnect/core/walletconnect-provider.ts.html +1104 -1104
  129. package/coverage/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +493 -493
  130. package/coverage/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +366 -366
  131. package/coverage/lib/providers/walletconnect/signers/hedera-signer.ts.html +730 -730
  132. package/coverage/lib/providers/walletconnect/signers/index.html +43 -43
  133. package/coverage/lib/providers/walletconnect/signers/signer-factory.ts.html +234 -234
  134. package/coverage/lib/providers/walletconnect/signers/xrpl-signer.ts.html +650 -650
  135. package/coverage/lib/services/index.html +31 -31
  136. package/coverage/lib/services/logger.service.ts.html +4 -4
  137. package/coverage/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
  138. package/coverage/lib/services/transaction-builders/hedera-amount-utils.ts.html +155 -155
  139. package/coverage/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +2156 -2156
  140. package/coverage/lib/services/transaction-builders/index.html +43 -43
  141. package/coverage/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1674 -1674
  142. package/coverage/lib/services/transaction.service.ts.html +4 -7
  143. package/coverage/lib/services/unified-wallet.service.ts.html +7 -10
  144. package/coverage/lib/services/wallet-context.service.ts.html +1 -1
  145. package/coverage/lib/services/wallet-event-bus.service.ts.html +249 -249
  146. package/coverage/lib/services/wallet-providers.service.ts.html +4 -7
  147. package/coverage/lib/transports/chrome-extension-transport.ts.html +1 -1
  148. package/coverage/lib/transports/index.html +1 -1
  149. package/coverage/lib/utils/index.html +1 -1
  150. package/coverage/lib/utils/ledger-icons.util.ts.html +1 -1
  151. package/dist/fesm2022/hsuite-native-connect-angular.mjs +85 -20
  152. package/dist/fesm2022/hsuite-native-connect-angular.mjs.map +1 -1
  153. package/dist/index.d.ts +33 -3
  154. package/package.json +4 -4
  155. package/src/lib/components/wallet-connect-button/wallet-connect-button.component.spec.ts +89 -0
  156. package/src/lib/components/wallet-connect-button/wallet-connect-button.component.ts +8 -0
  157. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.html +1 -6
  158. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.spec.ts +173 -0
  159. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts +84 -19
  160. package/src/lib/services/transaction.service.ts +0 -1
  161. package/src/lib/services/unified-wallet.service.ts +0 -1
  162. package/src/lib/services/wallet-providers.service.ts +0 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">58.67% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>115/196</span>
28
+ <span class='fraction'>0/196</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">50% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>3/6</span>
35
+ <span class='fraction'>0/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/6</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">58.67% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>115/196</span>
49
+ <span class='fraction'>0/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 medium'></div>
64
+ <div class='status-line low'></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,84 +259,7 @@
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-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>
262
+ <a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
340
263
  <span class="cline-any cline-no">&nbsp;</span>
341
264
  <span class="cline-any cline-no">&nbsp;</span>
342
265
  <span class="cline-any cline-no">&nbsp;</span>
@@ -375,16 +298,6 @@
375
298
  <span class="cline-any cline-no">&nbsp;</span>
376
299
  <span class="cline-any cline-no">&nbsp;</span>
377
300
  <span class="cline-any cline-no">&nbsp;</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>
388
301
  <span class="cline-any cline-no">&nbsp;</span>
389
302
  <span class="cline-any cline-no">&nbsp;</span>
390
303
  <span class="cline-any cline-no">&nbsp;</span>
@@ -405,37 +318,12 @@
405
318
  <span class="cline-any cline-no">&nbsp;</span>
406
319
  <span class="cline-any cline-no">&nbsp;</span>
407
320
  <span class="cline-any cline-no">&nbsp;</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>
415
321
  <span class="cline-any cline-no">&nbsp;</span>
416
322
  <span class="cline-any cline-no">&nbsp;</span>
417
323
  <span class="cline-any cline-no">&nbsp;</span>
418
324
  <span class="cline-any cline-no">&nbsp;</span>
419
325
  <span class="cline-any cline-no">&nbsp;</span>
420
326
  <span class="cline-any cline-no">&nbsp;</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>
439
327
  <span class="cline-any cline-no">&nbsp;</span>
440
328
  <span class="cline-any cline-no">&nbsp;</span>
441
329
  <span class="cline-any cline-no">&nbsp;</span>
@@ -453,86 +341,198 @@
453
341
  <span class="cline-any cline-no">&nbsp;</span>
454
342
  <span class="cline-any cline-no">&nbsp;</span>
455
343
  <span class="cline-any cline-no">&nbsp;</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">&nbsp;</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
- &nbsp;
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
- &nbsp;
483
- import { getLogger } from '@hsuite/native-connect-sdk';
484
- import type SignClient from '@walletconnect/sign-client';
485
- &nbsp;
486
- const logger = getLogger().scoped?.('WCSessionHealth'<span class="branch-0 cbranch-no" title="branch not covered" >) ?? getLogger();</span>
487
- &nbsp;
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&lt;string, number&gt;();
500
- &nbsp;
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
- &nbsp;
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
- &nbsp;
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
- &nbsp;
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&lt;void&gt; {</span>
344
+ <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-no">&nbsp;</span>
346
+ <span class="cline-any cline-no">&nbsp;</span>
347
+ <span class="cline-any cline-no">&nbsp;</span>
348
+ <span class="cline-any cline-no">&nbsp;</span>
349
+ <span class="cline-any cline-no">&nbsp;</span>
350
+ <span class="cline-any cline-no">&nbsp;</span>
351
+ <span class="cline-any cline-no">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
354
+ <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
+ <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-no">&nbsp;</span>
359
+ <span class="cline-any cline-no">&nbsp;</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-no">&nbsp;</span>
362
+ <span class="cline-any cline-no">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
369
+ <span class="cline-any cline-no">&nbsp;</span>
370
+ <span class="cline-any cline-no">&nbsp;</span>
371
+ <span class="cline-any cline-no">&nbsp;</span>
372
+ <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-no">&nbsp;</span>
374
+ <span class="cline-any cline-no">&nbsp;</span>
375
+ <span class="cline-any cline-no">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-no">&nbsp;</span>
378
+ <span class="cline-any cline-no">&nbsp;</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-no">&nbsp;</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-no">&nbsp;</span>
383
+ <span class="cline-any cline-no">&nbsp;</span>
384
+ <span class="cline-any cline-no">&nbsp;</span>
385
+ <span class="cline-any cline-no">&nbsp;</span>
386
+ <span class="cline-any cline-no">&nbsp;</span>
387
+ <span class="cline-any cline-no">&nbsp;</span>
388
+ <span class="cline-any cline-no">&nbsp;</span>
389
+ <span class="cline-any cline-no">&nbsp;</span>
390
+ <span class="cline-any cline-no">&nbsp;</span>
391
+ <span class="cline-any cline-no">&nbsp;</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
393
+ <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-no">&nbsp;</span>
395
+ <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-no">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
+ <span class="cline-any cline-no">&nbsp;</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
400
+ <span class="cline-any cline-no">&nbsp;</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-no">&nbsp;</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-no">&nbsp;</span>
405
+ <span class="cline-any cline-no">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-no">&nbsp;</span>
408
+ <span class="cline-any cline-no">&nbsp;</span>
409
+ <span class="cline-any cline-no">&nbsp;</span>
410
+ <span class="cline-any cline-no">&nbsp;</span>
411
+ <span class="cline-any cline-no">&nbsp;</span>
412
+ <span class="cline-any cline-no">&nbsp;</span>
413
+ <span class="cline-any cline-no">&nbsp;</span>
414
+ <span class="cline-any cline-no">&nbsp;</span>
415
+ <span class="cline-any cline-no">&nbsp;</span>
416
+ <span class="cline-any cline-no">&nbsp;</span>
417
+ <span class="cline-any cline-no">&nbsp;</span>
418
+ <span class="cline-any cline-no">&nbsp;</span>
419
+ <span class="cline-any cline-no">&nbsp;</span>
420
+ <span class="cline-any cline-no">&nbsp;</span>
421
+ <span class="cline-any cline-no">&nbsp;</span>
422
+ <span class="cline-any cline-no">&nbsp;</span>
423
+ <span class="cline-any cline-no">&nbsp;</span>
424
+ <span class="cline-any cline-no">&nbsp;</span>
425
+ <span class="cline-any cline-no">&nbsp;</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
+ <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
+ <span class="cline-any cline-no">&nbsp;</span>
430
+ <span class="cline-any cline-no">&nbsp;</span>
431
+ <span class="cline-any cline-no">&nbsp;</span>
432
+ <span class="cline-any cline-no">&nbsp;</span>
433
+ <span class="cline-any cline-no">&nbsp;</span>
434
+ <span class="cline-any cline-no">&nbsp;</span>
435
+ <span class="cline-any cline-no">&nbsp;</span>
436
+ <span class="cline-any cline-no">&nbsp;</span>
437
+ <span class="cline-any cline-no">&nbsp;</span>
438
+ <span class="cline-any cline-no">&nbsp;</span>
439
+ <span class="cline-any cline-no">&nbsp;</span>
440
+ <span class="cline-any cline-no">&nbsp;</span>
441
+ <span class="cline-any cline-no">&nbsp;</span>
442
+ <span class="cline-any cline-no">&nbsp;</span>
443
+ <span class="cline-any cline-no">&nbsp;</span>
444
+ <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-no">&nbsp;</span>
446
+ <span class="cline-any cline-no">&nbsp;</span>
447
+ <span class="cline-any cline-no">&nbsp;</span>
448
+ <span class="cline-any cline-no">&nbsp;</span>
449
+ <span class="cline-any cline-no">&nbsp;</span>
450
+ <span class="cline-any cline-no">&nbsp;</span>
451
+ <span class="cline-any cline-no">&nbsp;</span>
452
+ <span class="cline-any cline-no">&nbsp;</span>
453
+ <span class="cline-any cline-no">&nbsp;</span>
454
+ <span class="cline-any cline-no">&nbsp;</span>
455
+ <span class="cline-any cline-no">&nbsp;</span>
456
+ <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-no">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</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&lt;string, number&gt;();</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&lt;void&gt; {</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 @@ export class SessionHealthManager {
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
- &nbsp;
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&lt;void&gt; {</span>
574
+ <span class="cstat-no" title="statement not covered" ></span>
575
+ <span class="cstat-no" title="statement not covered" > /**</span>
576
+ <span class="cstat-no" title="statement not covered" > * Force refresh relay subscription for a topic.</span>
577
+ <span class="cstat-no" title="statement not covered" > *</span>
578
+ <span class="cstat-no" title="statement not covered" > * Use this when you suspect the subscription is stale and want</span>
579
+ <span class="cstat-no" title="statement not covered" > * to explicitly re-subscribe rather than relying on ping.</span>
580
+ <span class="cstat-no" title="statement not covered" > *</span>
581
+ <span class="cstat-no" title="statement not covered" > * @param topic - Session topic to refresh subscription for</span>
582
+ <span class="cstat-no" title="statement not covered" > */</span>
583
+ <span class="cstat-no" title="statement not covered" > async refreshSubscription(topic: string): Promise&lt;void&gt; {</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 @@ export class SessionHealthManager {
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
- &nbsp;
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>
604
+ <span class="cstat-no" title="statement not covered" ></span>
605
+ <span class="cstat-no" title="statement not covered" > /**</span>
606
+ <span class="cstat-no" title="statement not covered" > * Clear ping cache for a specific topic or all topics.</span>
607
+ <span class="cstat-no" title="statement not covered" > *</span>
608
+ <span class="cstat-no" title="statement not covered" > * @param topic - Optional topic to clear. If not provided, clears all.</span>
609
+ <span class="cstat-no" title="statement not covered" > */</span>
610
+ <span class="cstat-no" title="statement 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
- &nbsp;
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>
617
+ <span class="cstat-no" title="statement not covered" ></span>
618
+ <span class="cstat-no" title="statement not covered" > /**</span>
619
+ <span class="cstat-no" title="statement not covered" > * Setup relay connection monitoring.</span>
620
+ <span class="cstat-no" title="statement not covered" > *</span>
621
+ <span class="cstat-no" title="statement not covered" > * Listens for:</span>
622
+ <span class="cstat-no" title="statement not covered" > * - connect: Logs when WebSocket connects</span>
623
+ <span class="cstat-no" title="statement not covered" > * - disconnect: Clears ping cache to force re-ping on next request</span>
624
+ <span class="cstat-no" title="statement not covered" > * - error: Logs relay errors</span>
625
+ <span class="cstat-no" title="statement not covered" > *</span>
626
+ <span class="cstat-no" title="statement not covered" > * @private</span>
627
+ <span class="cstat-no" title="statement not covered" > */</span>
628
+ <span class="cstat-no" title="statement not covered" > private setupRelayMonitoring(): void {</span>
629
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line @typescript-eslint/no-explicit-any -- WalletConnect internal API not typed</span>
630
+ <span class="cstat-no" title="statement not covered" > const relayer = (this.client as any).core?.relayer;</span>
631
+ <span class="cstat-no" title="statement not covered" > if (!relayer) {</span>
632
+ <span class="cstat-no" title="statement not covered" > logger.warn('Could not access relayer for monitoring');</span>
633
+ <span class="cstat-no" title="statement not covered" > return;</span>
634
+ <span class="cstat-no" title="statement 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', () =&gt; {</span>
637
637
  <span class="cstat-no" title="statement not covered" > logger.info('Relay WebSocket connected');</span>
@@ -649,8 +649,8 @@ export class SessionHealthManager {
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
+ <span class="cstat-no" title="statement not covered" > }</span>
653
+ <span class="cstat-no" title="statement not covered" >}</span>
654
654
  &nbsp;</pre></td></tr></table></pre>
655
655
 
656
656
  <div class='push'></div><!-- for sticky footer -->
@@ -658,7 +658,7 @@ export class SessionHealthManager {
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-02T14:30:38.257Z
661
+ at 2026-06-10T09:00:36.727Z
662
662
  </div>
663
663
  <script src="../../../../prettify.js"></script>
664
664
  <script>