@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.
Files changed (183) hide show
  1. package/coverage/coverage-summary.json +25 -21
  2. package/coverage/index.html +108 -108
  3. package/coverage/lcov-report/index.html +108 -108
  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 +13 -19
  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 +5 -5
  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 +10 -10
  17. package/coverage/lcov-report/lib/components/wallet-connect-button/index.html +1 -1
  18. package/coverage/lcov-report/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +1 -1
  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 +1 -1
  24. package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/index.html +1 -1
  25. package/coverage/lcov-report/lib/components/wallet-connection-modal/index.html +15 -15
  26. package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/index.html +1 -1
  27. package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +1 -1
  28. package/coverage/lcov-report/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +84 -36
  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 +7 -7
  41. package/coverage/lcov-report/lib/models/provider-types.ts.html +11 -5
  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 +639 -636
  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 +22 -22
  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 +7 -4
  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 +1108 -1105
  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/hsuite-auth.interceptor.ts.html +568 -0
  62. package/coverage/lcov-report/lib/services/index.html +50 -20
  63. package/coverage/lcov-report/lib/services/logger.service.ts.html +1 -1
  64. package/coverage/lcov-report/lib/services/smart-session.service.ts.html +1264 -0
  65. package/coverage/lcov-report/lib/services/transaction-builders/active-account-source.ts.html +250 -0
  66. package/coverage/lcov-report/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
  67. package/coverage/lcov-report/lib/services/transaction-builders/hedera-amount-utils.ts.html +155 -155
  68. package/coverage/lcov-report/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +2156 -2156
  69. package/coverage/lcov-report/lib/services/transaction-builders/index.html +58 -43
  70. package/coverage/lcov-report/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1674 -1674
  71. package/coverage/lcov-report/lib/services/transaction.service.ts.html +4 -4
  72. package/coverage/lcov-report/lib/services/unified-wallet.service.ts.html +3 -3
  73. package/coverage/lcov-report/lib/services/wallet-context.service.ts.html +1 -1
  74. package/coverage/lcov-report/lib/services/wallet-event-bus.service.ts.html +249 -249
  75. package/coverage/lcov-report/lib/services/wallet-providers.service.ts.html +1 -1
  76. package/coverage/lcov-report/lib/transports/chrome-extension-transport.ts.html +1 -1
  77. package/coverage/lcov-report/lib/transports/index.html +1 -1
  78. package/coverage/lcov-report/lib/utils/index.html +36 -21
  79. package/coverage/lcov-report/lib/utils/ledger-icons.util.ts.html +254 -161
  80. package/coverage/lcov-report/lib/utils/ledger-ui-registry.ts.html +676 -0
  81. package/coverage/lcov.info +8567 -6896
  82. package/coverage/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
  83. package/coverage/lib/components/account-selector/account-actions/index.html +1 -1
  84. package/coverage/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
  85. package/coverage/lib/components/account-selector/account-filter/index.html +1 -1
  86. package/coverage/lib/components/account-selector/account-formatting.service.ts.html +13 -19
  87. package/coverage/lib/components/account-selector/account-grouping.service.ts.html +1 -1
  88. package/coverage/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
  89. package/coverage/lib/components/account-selector/account-list/index.html +1 -1
  90. package/coverage/lib/components/account-selector/account-selector.component.ts.html +1 -1
  91. package/coverage/lib/components/account-selector/account-selector.service.ts.html +1 -1
  92. package/coverage/lib/components/account-selector/index.html +5 -5
  93. package/coverage/lib/components/wallet-account-display/index.html +1 -1
  94. package/coverage/lib/components/wallet-account-display/wallet-account-display.component.ts.html +10 -10
  95. package/coverage/lib/components/wallet-connect-button/index.html +1 -1
  96. package/coverage/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +1 -1
  97. package/coverage/lib/components/wallet-connect-prompt/index.html +1 -1
  98. package/coverage/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
  99. package/coverage/lib/components/wallet-connected-guard/index.html +1 -1
  100. package/coverage/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
  101. package/coverage/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +1 -1
  102. package/coverage/lib/components/wallet-connection-modal/connection-method-step/index.html +1 -1
  103. package/coverage/lib/components/wallet-connection-modal/index.html +15 -15
  104. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/index.html +1 -1
  105. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +1 -1
  106. package/coverage/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +84 -36
  107. package/coverage/lib/components/wallet-session-display/index.html +1 -1
  108. package/coverage/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
  109. package/coverage/lib/components/wallet-transaction-status/index.html +1 -1
  110. package/coverage/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
  111. package/coverage/lib/directives/index.html +1 -1
  112. package/coverage/lib/directives/wallet-connected.directive.ts.html +1 -1
  113. package/coverage/lib/directives/wallet-context.directive.ts.html +1 -1
  114. package/coverage/lib/directives/wallet-events.directive.ts.html +1 -1
  115. package/coverage/lib/hsuite-wallet.module.ts.html +1 -1
  116. package/coverage/lib/index.html +1 -1
  117. package/coverage/lib/models/connection-config.model.ts.html +1 -1
  118. package/coverage/lib/models/index.html +7 -7
  119. package/coverage/lib/models/provider-types.ts.html +11 -5
  120. package/coverage/lib/providers/base-wallet-provider.ts.html +20 -20
  121. package/coverage/lib/providers/hsuite-native/channel-client.service.ts.html +639 -636
  122. package/coverage/lib/providers/hsuite-native/index.html +19 -19
  123. package/coverage/lib/providers/hsuite-native-provider.ts.html +1 -1
  124. package/coverage/lib/providers/index.html +18 -18
  125. package/coverage/lib/providers/p2p-native/index.html +22 -22
  126. package/coverage/lib/providers/p2p-native/p2p-native.provider.ts.html +993 -993
  127. package/coverage/lib/providers/p2p-native/p2p-session-manager.ts.html +7 -4
  128. package/coverage/lib/providers/wallet-error-handler.ts.html +1 -1
  129. package/coverage/lib/providers/walletconnect/core/index.html +65 -65
  130. package/coverage/lib/providers/walletconnect/core/session-health.ts.html +240 -240
  131. package/coverage/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +559 -559
  132. package/coverage/lib/providers/walletconnect/core/walletconnect-provider.ts.html +1108 -1105
  133. package/coverage/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +493 -493
  134. package/coverage/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +366 -366
  135. package/coverage/lib/providers/walletconnect/signers/hedera-signer.ts.html +730 -730
  136. package/coverage/lib/providers/walletconnect/signers/index.html +43 -43
  137. package/coverage/lib/providers/walletconnect/signers/signer-factory.ts.html +234 -234
  138. package/coverage/lib/providers/walletconnect/signers/xrpl-signer.ts.html +650 -650
  139. package/coverage/lib/services/hsuite-auth.interceptor.ts.html +568 -0
  140. package/coverage/lib/services/index.html +50 -20
  141. package/coverage/lib/services/logger.service.ts.html +1 -1
  142. package/coverage/lib/services/smart-session.service.ts.html +1264 -0
  143. package/coverage/lib/services/transaction-builders/active-account-source.ts.html +250 -0
  144. package/coverage/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
  145. package/coverage/lib/services/transaction-builders/hedera-amount-utils.ts.html +155 -155
  146. package/coverage/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +2156 -2156
  147. package/coverage/lib/services/transaction-builders/index.html +58 -43
  148. package/coverage/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1674 -1674
  149. package/coverage/lib/services/transaction.service.ts.html +4 -4
  150. package/coverage/lib/services/unified-wallet.service.ts.html +3 -3
  151. package/coverage/lib/services/wallet-context.service.ts.html +1 -1
  152. package/coverage/lib/services/wallet-event-bus.service.ts.html +249 -249
  153. package/coverage/lib/services/wallet-providers.service.ts.html +1 -1
  154. package/coverage/lib/transports/chrome-extension-transport.ts.html +1 -1
  155. package/coverage/lib/transports/index.html +1 -1
  156. package/coverage/lib/utils/index.html +36 -21
  157. package/coverage/lib/utils/ledger-icons.util.ts.html +254 -161
  158. package/coverage/lib/utils/ledger-ui-registry.ts.html +676 -0
  159. package/dist/fesm2022/hsuite-native-connect-angular.mjs +854 -308
  160. package/dist/fesm2022/hsuite-native-connect-angular.mjs.map +1 -1
  161. package/dist/index.d.ts +456 -30
  162. package/package.json +4 -4
  163. package/src/index.ts +26 -0
  164. package/src/lib/components/account-selector/account-formatting.service.ts +8 -10
  165. package/src/lib/components/wallet-account-display/wallet-account-display.component.ts +9 -9
  166. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts +34 -18
  167. package/src/lib/models/provider-types.ts +3 -1
  168. package/src/lib/models/unified-account.model.ts +4 -1
  169. package/src/lib/providers/hsuite-native/channel-client.service.ts +1 -0
  170. package/src/lib/providers/p2p-native/p2p-session-manager.ts +1 -0
  171. package/src/lib/providers/walletconnect/core/walletconnect-provider.ts +2 -1
  172. package/src/lib/services/hsuite-auth.interceptor.ts +159 -0
  173. package/src/lib/services/smart-session.service.ts +378 -0
  174. package/src/lib/services/transaction-builders/active-account-source.spec.ts +75 -0
  175. package/src/lib/services/transaction-builders/active-account-source.ts +55 -0
  176. package/src/lib/services/transaction-builders/hedera-transaction-builder.service.ts +4 -4
  177. package/src/lib/services/transaction-builders/index.ts +1 -0
  178. package/src/lib/services/transaction.service.ts +7 -3
  179. package/src/lib/services/unified-wallet.service.spec.ts +1 -1
  180. package/src/lib/services/unified-wallet.service.ts +2 -2
  181. package/src/lib/utils/index.ts +1 -0
  182. package/src/lib/utils/ledger-icons.util.ts +61 -30
  183. 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">0% </span>
26
+ <span class="strong">86.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/120</span>
28
+ <span class='fraction'>104/120</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">85.71% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/1</span>
35
+ <span class='fraction'>6/7</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">66.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/1</span>
42
+ <span class='fraction'>4/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">86.66% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/120</span>
49
+ <span class='fraction'>104/120</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 low'></div>
64
+ <div class='status-line high'></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>
@@ -183,201 +183,201 @@
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
184
  <a name='L119'></a><a href='#L119'>119</a>
185
185
  <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
187
- <span class="cline-any cline-no">&nbsp;</span>
188
- <span class="cline-any cline-no">&nbsp;</span>
189
- <span class="cline-any cline-no">&nbsp;</span>
190
- <span class="cline-any cline-no">&nbsp;</span>
191
- <span class="cline-any cline-no">&nbsp;</span>
192
- <span class="cline-any cline-no">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
- <span class="cline-any cline-no">&nbsp;</span>
195
- <span class="cline-any cline-no">&nbsp;</span>
196
- <span class="cline-any cline-no">&nbsp;</span>
197
- <span class="cline-any cline-no">&nbsp;</span>
198
- <span class="cline-any cline-no">&nbsp;</span>
199
- <span class="cline-any cline-no">&nbsp;</span>
200
- <span class="cline-any cline-no">&nbsp;</span>
201
- <span class="cline-any cline-no">&nbsp;</span>
202
- <span class="cline-any cline-no">&nbsp;</span>
203
- <span class="cline-any cline-no">&nbsp;</span>
204
- <span class="cline-any cline-no">&nbsp;</span>
205
- <span class="cline-any cline-no">&nbsp;</span>
206
- <span class="cline-any cline-no">&nbsp;</span>
207
- <span class="cline-any cline-no">&nbsp;</span>
208
- <span class="cline-any cline-no">&nbsp;</span>
209
- <span class="cline-any cline-no">&nbsp;</span>
210
- <span class="cline-any cline-no">&nbsp;</span>
211
- <span class="cline-any cline-no">&nbsp;</span>
212
- <span class="cline-any cline-no">&nbsp;</span>
213
- <span class="cline-any cline-no">&nbsp;</span>
214
- <span class="cline-any cline-no">&nbsp;</span>
215
- <span class="cline-any cline-no">&nbsp;</span>
216
- <span class="cline-any cline-no">&nbsp;</span>
217
- <span class="cline-any cline-no">&nbsp;</span>
218
- <span class="cline-any cline-no">&nbsp;</span>
219
- <span class="cline-any cline-no">&nbsp;</span>
220
- <span class="cline-any cline-no">&nbsp;</span>
221
- <span class="cline-any cline-no">&nbsp;</span>
222
- <span class="cline-any cline-no">&nbsp;</span>
223
- <span class="cline-any cline-no">&nbsp;</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
225
- <span class="cline-any cline-no">&nbsp;</span>
226
- <span class="cline-any cline-no">&nbsp;</span>
227
- <span class="cline-any cline-no">&nbsp;</span>
228
- <span class="cline-any cline-no">&nbsp;</span>
229
- <span class="cline-any cline-no">&nbsp;</span>
230
- <span class="cline-any cline-no">&nbsp;</span>
231
- <span class="cline-any cline-no">&nbsp;</span>
232
- <span class="cline-any cline-no">&nbsp;</span>
233
- <span class="cline-any cline-no">&nbsp;</span>
234
- <span class="cline-any cline-no">&nbsp;</span>
235
- <span class="cline-any cline-no">&nbsp;</span>
236
- <span class="cline-any cline-no">&nbsp;</span>
237
- <span class="cline-any cline-no">&nbsp;</span>
238
- <span class="cline-any cline-no">&nbsp;</span>
239
- <span class="cline-any cline-no">&nbsp;</span>
240
- <span class="cline-any cline-no">&nbsp;</span>
241
- <span class="cline-any cline-no">&nbsp;</span>
242
- <span class="cline-any cline-no">&nbsp;</span>
243
- <span class="cline-any cline-no">&nbsp;</span>
244
- <span class="cline-any cline-no">&nbsp;</span>
245
- <span class="cline-any cline-no">&nbsp;</span>
246
- <span class="cline-any cline-no">&nbsp;</span>
247
- <span class="cline-any cline-no">&nbsp;</span>
248
- <span class="cline-any cline-no">&nbsp;</span>
249
- <span class="cline-any cline-no">&nbsp;</span>
250
- <span class="cline-any cline-no">&nbsp;</span>
251
- <span class="cline-any cline-no">&nbsp;</span>
252
- <span class="cline-any cline-no">&nbsp;</span>
253
- <span class="cline-any cline-no">&nbsp;</span>
254
- <span class="cline-any cline-no">&nbsp;</span>
255
- <span class="cline-any cline-no">&nbsp;</span>
256
- <span class="cline-any cline-no">&nbsp;</span>
257
- <span class="cline-any cline-no">&nbsp;</span>
258
- <span class="cline-any cline-no">&nbsp;</span>
259
- <span class="cline-any cline-no">&nbsp;</span>
260
- <span class="cline-any cline-no">&nbsp;</span>
261
- <span class="cline-any cline-no">&nbsp;</span>
262
- <span class="cline-any cline-no">&nbsp;</span>
263
- <span class="cline-any cline-no">&nbsp;</span>
264
- <span class="cline-any cline-no">&nbsp;</span>
265
- <span class="cline-any cline-no">&nbsp;</span>
266
- <span class="cline-any cline-no">&nbsp;</span>
267
- <span class="cline-any cline-no">&nbsp;</span>
268
- <span class="cline-any cline-no">&nbsp;</span>
269
- <span class="cline-any cline-no">&nbsp;</span>
270
- <span class="cline-any cline-no">&nbsp;</span>
271
- <span class="cline-any cline-no">&nbsp;</span>
272
- <span class="cline-any cline-no">&nbsp;</span>
273
- <span class="cline-any cline-no">&nbsp;</span>
274
- <span class="cline-any cline-no">&nbsp;</span>
275
- <span class="cline-any cline-no">&nbsp;</span>
276
- <span class="cline-any cline-no">&nbsp;</span>
277
- <span class="cline-any cline-no">&nbsp;</span>
278
- <span class="cline-any cline-no">&nbsp;</span>
279
- <span class="cline-any cline-no">&nbsp;</span>
280
- <span class="cline-any cline-no">&nbsp;</span>
281
- <span class="cline-any cline-no">&nbsp;</span>
282
- <span class="cline-any cline-no">&nbsp;</span>
283
- <span class="cline-any cline-no">&nbsp;</span>
284
- <span class="cline-any cline-no">&nbsp;</span>
285
- <span class="cline-any cline-no">&nbsp;</span>
286
- <span class="cline-any cline-no">&nbsp;</span>
287
- <span class="cline-any cline-no">&nbsp;</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
289
- <span class="cline-any cline-no">&nbsp;</span>
290
- <span class="cline-any cline-no">&nbsp;</span>
291
- <span class="cline-any cline-no">&nbsp;</span>
292
- <span class="cline-any cline-no">&nbsp;</span>
293
- <span class="cline-any cline-no">&nbsp;</span>
294
- <span class="cline-any cline-no">&nbsp;</span>
295
- <span class="cline-any cline-no">&nbsp;</span>
296
- <span class="cline-any cline-no">&nbsp;</span>
297
- <span class="cline-any cline-no">&nbsp;</span>
298
- <span class="cline-any cline-no">&nbsp;</span>
299
- <span class="cline-any cline-no">&nbsp;</span>
300
- <span class="cline-any cline-no">&nbsp;</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
302
- <span class="cline-any cline-no">&nbsp;</span>
303
- <span class="cline-any cline-no">&nbsp;</span>
304
- <span class="cline-any cline-no">&nbsp;</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
306
- <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>
307
- <span class="cstat-no" title="statement not covered" > * HSuite Native Connect</span>
308
- <span class="cstat-no" title="statement not covered" > * Copyright 2024-2025 HSuite (https://hsuite.finance)</span>
309
- <span class="cstat-no" title="statement not covered" > *</span>
310
- <span class="cstat-no" title="statement not covered" > * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0</span>
311
- <span class="cstat-no" title="statement not covered" > *</span>
312
- <span class="cstat-no" title="statement not covered" > * This file is part of HSuite Native Connect. For commercial licensing,</span>
313
- <span class="cstat-no" title="statement not covered" > * visit https://hsuite.finance/licensing</span>
314
- <span class="cstat-no" title="statement not covered" > */</span>
315
- <span class="cstat-no" title="statement not covered" ></span>
316
- <span class="cstat-no" title="statement not covered" >/**</span>
317
- <span class="cstat-no" title="statement not covered" > * @file signer-factory.ts</span>
318
- <span class="cstat-no" title="statement not covered" > * @description Factory for creating and managing WalletConnect signers</span>
319
- <span class="cstat-no" title="statement not covered" > *</span>
320
- <span class="cstat-no" title="statement not covered" > * Implements the Factory Pattern for creating ledger-specific signers.</span>
321
- <span class="cstat-no" title="statement not covered" > * Maintains a registry of available signers and provides type-safe access.</span>
322
- <span class="cstat-no" title="statement not covered" > *</span>
323
- <span class="cstat-no" title="statement not covered" > * This design allows easy extension - new ledgers can be added by:</span>
324
- <span class="cstat-no" title="statement not covered" > * 1. Implementing IWalletConnectSigner interface</span>
325
- <span class="cstat-no" title="statement not covered" > * 2. Registering the signer with SignerFactory</span>
326
- <span class="cstat-no" title="statement not covered" > */</span>
327
- <span class="cstat-no" title="statement not covered" ></span>
328
- <span class="cstat-no" title="statement not covered" >import { getLogger } from '@hsuite/native-connect-sdk';</span>
329
- <span class="cstat-no" title="statement not covered" ></span>
330
- <span class="cstat-no" title="statement not covered" >import type { IWalletConnectSigner } from '../core/base-signer.interface';</span>
331
- <span class="cstat-no" title="statement not covered" ></span>
332
- <span class="cstat-no" title="statement not covered" >import { HederaSigner } from './hedera-signer';</span>
333
- <span class="cstat-no" title="statement not covered" >import { XrplSigner } from './xrpl-signer';</span>
334
- <span class="cstat-no" title="statement not covered" ></span>
335
- <span class="cstat-no" title="statement not covered" >const logger = getLogger().scoped?.('SignerFactory') ?? getLogger();</span>
336
- <span class="cstat-no" title="statement not covered" ></span>
337
- <span class="cstat-no" title="statement not covered" >/**</span>
338
- <span class="cstat-no" title="statement not covered" > * Factory class for creating and managing WalletConnect signers.</span>
339
- <span class="cstat-no" title="statement not covered" > *</span>
340
- <span class="cstat-no" title="statement not covered" > * Features:</span>
341
- <span class="cstat-no" title="statement not covered" > * - Singleton signer instances for each ledger (performance optimization)</span>
342
- <span class="cstat-no" title="statement not covered" > * - Type-safe ledger ID validation</span>
343
- <span class="cstat-no" title="statement not covered" > * - Extensible registration system for custom signers</span>
344
- <span class="cstat-no" title="statement not covered" > */</span>
345
- <span class="cstat-no" title="statement not covered" >export class SignerFactory {</span>
346
- <span class="cstat-no" title="statement not covered" > /**</span>
347
- <span class="cstat-no" title="statement not covered" > * Registry of available signers.</span>
348
- <span class="cstat-no" title="statement not covered" > * Each ledger ID maps to a singleton signer instance.</span>
349
- <span class="cstat-no" title="statement not covered" > */</span>
350
- <span class="cstat-no" title="statement not covered" > private static signers = new Map&lt;string, IWalletConnectSigner&gt;([</span>
351
- <span class="cstat-no" title="statement not covered" > ['hedera', new HederaSigner()],</span>
352
- <span class="cstat-no" title="statement not covered" > ['xrpl', new XrplSigner()],</span>
353
- <span class="cstat-no" title="statement not covered" > ]);</span>
354
- <span class="cstat-no" title="statement not covered" ></span>
355
- <span class="cstat-no" title="statement not covered" > /**</span>
356
- <span class="cstat-no" title="statement not covered" > * Get a signer for the specified ledger.</span>
357
- <span class="cstat-no" title="statement not covered" > *</span>
358
- <span class="cstat-no" title="statement not covered" > * @param ledgerId - Unique identifier for the ledger (e.g., 'hedera', 'xrpl')</span>
359
- <span class="cstat-no" title="statement not covered" > * @returns The signer instance for the specified ledger</span>
360
- <span class="cstat-no" title="statement not covered" > * @throws Error if no signer is registered for the ledger ID</span>
361
- <span class="cstat-no" title="statement not covered" > */</span>
362
- <span class="cstat-no" title="statement not covered" > static getSigner(ledgerId: string): IWalletConnectSigner {</span>
363
- <span class="cstat-no" title="statement not covered" > const signer = this.signers.get(ledgerId);</span>
364
- <span class="cstat-no" title="statement not covered" ></span>
365
- <span class="cstat-no" title="statement not covered" > if (!signer) {</span>
366
- <span class="cstat-no" title="statement not covered" > const available = Array.from(this.signers.keys()).join(', ');</span>
367
- <span class="cstat-no" title="statement not covered" > throw new Error(`Unsupported ledger: ${ledgerId}. Available ledgers: ${available}`);</span>
368
- <span class="cstat-no" title="statement not covered" > }</span>
369
- <span class="cstat-no" title="statement not covered" ></span>
370
- <span class="cstat-no" title="statement not covered" > return signer;</span>
371
- <span class="cstat-no" title="statement not covered" > }</span>
372
- <span class="cstat-no" title="statement not covered" ></span>
373
- <span class="cstat-no" title="statement not covered" > /**</span>
374
- <span class="cstat-no" title="statement not covered" > * Register a custom signer for a ledger.</span>
375
- <span class="cstat-no" title="statement not covered" > * Allows extending the factory with support for additional ledgers.</span>
376
- <span class="cstat-no" title="statement not covered" > *</span>
377
- <span class="cstat-no" title="statement not covered" > * @param ledgerId - Unique identifier for the ledger</span>
378
- <span class="cstat-no" title="statement not covered" > * @param signer - Signer implementation for the ledger</span>
379
- <span class="cstat-no" title="statement not covered" > */</span>
380
- <span class="cstat-no" title="statement not covered" > static registerSigner(ledgerId: string, signer: IWalletConnectSigner): void {</span>
186
+ <a name='L121'></a><a href='#L121'>121</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
187
+ <span class="cline-any cline-yes">1x</span>
188
+ <span class="cline-any cline-yes">1x</span>
189
+ <span class="cline-any cline-yes">1x</span>
190
+ <span class="cline-any cline-yes">1x</span>
191
+ <span class="cline-any cline-yes">1x</span>
192
+ <span class="cline-any cline-yes">1x</span>
193
+ <span class="cline-any cline-yes">1x</span>
194
+ <span class="cline-any cline-yes">1x</span>
195
+ <span class="cline-any cline-yes">1x</span>
196
+ <span class="cline-any cline-yes">1x</span>
197
+ <span class="cline-any cline-yes">1x</span>
198
+ <span class="cline-any cline-yes">1x</span>
199
+ <span class="cline-any cline-yes">1x</span>
200
+ <span class="cline-any cline-yes">1x</span>
201
+ <span class="cline-any cline-yes">1x</span>
202
+ <span class="cline-any cline-yes">1x</span>
203
+ <span class="cline-any cline-yes">1x</span>
204
+ <span class="cline-any cline-yes">1x</span>
205
+ <span class="cline-any cline-yes">1x</span>
206
+ <span class="cline-any cline-yes">1x</span>
207
+ <span class="cline-any cline-yes">1x</span>
208
+ <span class="cline-any cline-yes">1x</span>
209
+ <span class="cline-any cline-yes">1x</span>
210
+ <span class="cline-any cline-yes">1x</span>
211
+ <span class="cline-any cline-yes">1x</span>
212
+ <span class="cline-any cline-yes">1x</span>
213
+ <span class="cline-any cline-yes">1x</span>
214
+ <span class="cline-any cline-yes">1x</span>
215
+ <span class="cline-any cline-yes">1x</span>
216
+ <span class="cline-any cline-yes">1x</span>
217
+ <span class="cline-any cline-yes">1x</span>
218
+ <span class="cline-any cline-yes">1x</span>
219
+ <span class="cline-any cline-yes">1x</span>
220
+ <span class="cline-any cline-yes">1x</span>
221
+ <span class="cline-any cline-yes">1x</span>
222
+ <span class="cline-any cline-yes">1x</span>
223
+ <span class="cline-any cline-yes">1x</span>
224
+ <span class="cline-any cline-yes">1x</span>
225
+ <span class="cline-any cline-yes">1x</span>
226
+ <span class="cline-any cline-yes">2x</span>
227
+ <span class="cline-any cline-yes">2x</span>
228
+ <span class="cline-any cline-yes">2x</span>
229
+ <span class="cline-any cline-yes">2x</span>
230
+ <span class="cline-any cline-yes">2x</span>
231
+ <span class="cline-any cline-yes">2x</span>
232
+ <span class="cline-any cline-yes">2x</span>
233
+ <span class="cline-any cline-yes">2x</span>
234
+ <span class="cline-any cline-yes">2x</span>
235
+ <span class="cline-any cline-yes">2x</span>
236
+ <span class="cline-any cline-yes">2x</span>
237
+ <span class="cline-any cline-yes">2x</span>
238
+ <span class="cline-any cline-yes">2x</span>
239
+ <span class="cline-any cline-yes">2x</span>
240
+ <span class="cline-any cline-yes">2x</span>
241
+ <span class="cline-any cline-yes">2x</span>
242
+ <span class="cline-any cline-yes">2x</span>
243
+ <span class="cline-any cline-yes">20x</span>
244
+ <span class="cline-any cline-yes">20x</span>
245
+ <span class="cline-any cline-yes">20x</span>
246
+ <span class="cline-any cline-yes">1x</span>
247
+ <span class="cline-any cline-yes">1x</span>
248
+ <span class="cline-any cline-yes">1x</span>
249
+ <span class="cline-any cline-yes">19x</span>
250
+ <span class="cline-any cline-yes">19x</span>
251
+ <span class="cline-any cline-yes">20x</span>
252
+ <span class="cline-any cline-yes">2x</span>
253
+ <span class="cline-any cline-yes">2x</span>
254
+ <span class="cline-any cline-yes">2x</span>
255
+ <span class="cline-any cline-yes">2x</span>
256
+ <span class="cline-any cline-yes">2x</span>
257
+ <span class="cline-any cline-yes">2x</span>
258
+ <span class="cline-any cline-yes">2x</span>
259
+ <span class="cline-any cline-yes">2x</span>
260
+ <span class="cline-any cline-yes">2x</span>
261
+ <span class="cline-any cline-no">&nbsp;</span>
262
+ <span class="cline-any cline-no">&nbsp;</span>
263
+ <span class="cline-any cline-no">&nbsp;</span>
264
+ <span class="cline-any cline-no">&nbsp;</span>
265
+ <span class="cline-any cline-no">&nbsp;</span>
266
+ <span class="cline-any cline-no">&nbsp;</span>
267
+ <span class="cline-any cline-no">&nbsp;</span>
268
+ <span class="cline-any cline-no">&nbsp;</span>
269
+ <span class="cline-any cline-no">&nbsp;</span>
270
+ <span class="cline-any cline-no">&nbsp;</span>
271
+ <span class="cline-any cline-yes">2x</span>
272
+ <span class="cline-any cline-yes">2x</span>
273
+ <span class="cline-any cline-yes">2x</span>
274
+ <span class="cline-any cline-yes">2x</span>
275
+ <span class="cline-any cline-yes">2x</span>
276
+ <span class="cline-any cline-yes">2x</span>
277
+ <span class="cline-any cline-yes">2x</span>
278
+ <span class="cline-any cline-yes">2x</span>
279
+ <span class="cline-any cline-yes">3x</span>
280
+ <span class="cline-any cline-yes">3x</span>
281
+ <span class="cline-any cline-yes">2x</span>
282
+ <span class="cline-any cline-yes">2x</span>
283
+ <span class="cline-any cline-yes">2x</span>
284
+ <span class="cline-any cline-yes">2x</span>
285
+ <span class="cline-any cline-yes">2x</span>
286
+ <span class="cline-any cline-yes">2x</span>
287
+ <span class="cline-any cline-yes">2x</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">2x</span>
291
+ <span class="cline-any cline-yes">2x</span>
292
+ <span class="cline-any cline-yes">2x</span>
293
+ <span class="cline-any cline-yes">2x</span>
294
+ <span class="cline-any cline-yes">2x</span>
295
+ <span class="cline-any cline-yes">2x</span>
296
+ <span class="cline-any cline-yes">2x</span>
297
+ <span class="cline-any cline-yes">2x</span>
298
+ <span class="cline-any cline-yes">2x</span>
299
+ <span class="cline-any cline-no">&nbsp;</span>
300
+ <span class="cline-any cline-no">&nbsp;</span>
301
+ <span class="cline-any cline-no">&nbsp;</span>
302
+ <span class="cline-any cline-no">&nbsp;</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-no">&nbsp;</span>
305
+ <span class="cline-any cline-yes">2x</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
307
+ * HSuite Native Connect
308
+ * Copyright 2024-2025 HSuite (https://hsuite.finance)
309
+ *
310
+ * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
311
+ *
312
+ * This file is part of HSuite Native Connect. For commercial licensing,
313
+ * visit https://hsuite.finance/licensing
314
+ */
315
+ &nbsp;
316
+ /**
317
+ * @file signer-factory.ts
318
+ * @description Factory for creating and managing WalletConnect signers
319
+ *
320
+ * Implements the Factory Pattern for creating ledger-specific signers.
321
+ * Maintains a registry of available signers and provides type-safe access.
322
+ *
323
+ * This design allows easy extension - new ledgers can be added by:
324
+ * 1. Implementing IWalletConnectSigner interface
325
+ * 2. Registering the signer with SignerFactory
326
+ */
327
+ &nbsp;
328
+ import { getLogger } from '@hsuite/native-connect-sdk';
329
+ &nbsp;
330
+ import type { IWalletConnectSigner } from '../core/base-signer.interface';
331
+ &nbsp;
332
+ import { HederaSigner } from './hedera-signer';
333
+ import { XrplSigner } from './xrpl-signer';
334
+ &nbsp;
335
+ const logger = getLogger().scoped?.('SignerFactory'<span class="branch-0 cbranch-no" title="branch not covered" >) ?? getLogger();</span>
336
+ &nbsp;
337
+ /**
338
+ * Factory class for creating and managing WalletConnect signers.
339
+ *
340
+ * Features:
341
+ * - Singleton signer instances for each ledger (performance optimization)
342
+ * - Type-safe ledger ID validation
343
+ * - Extensible registration system for custom signers
344
+ */
345
+ export class SignerFactory {
346
+ /**
347
+ * Registry of available signers.
348
+ * Each ledger ID maps to a singleton signer instance.
349
+ */
350
+ private static signers = new Map&lt;string, IWalletConnectSigner&gt;([
351
+ ['hedera', new HederaSigner()],
352
+ ['xrpl', new XrplSigner()],
353
+ ]);
354
+ &nbsp;
355
+ /**
356
+ * Get a signer for the specified ledger.
357
+ *
358
+ * @param ledgerId - Unique identifier for the ledger (e.g., 'hedera', 'xrpl')
359
+ * @returns The signer instance for the specified ledger
360
+ * @throws Error if no signer is registered for the ledger ID
361
+ */
362
+ static getSigner(ledgerId: string): IWalletConnectSigner {
363
+ const signer = this.signers.get(ledgerId);
364
+ &nbsp;
365
+ if (!signer) {
366
+ const available = Array.from(this.signers.keys()).join(', ');
367
+ throw new Error(`Unsupported ledger: ${ledgerId}. Available ledgers: ${available}`);
368
+ }
369
+ &nbsp;
370
+ return signer;
371
+ }
372
+ &nbsp;
373
+ /**
374
+ * Register a custom signer for a ledger.
375
+ * Allows extending the factory with support for additional ledgers.
376
+ *
377
+ * @param ledgerId - Unique identifier for the ledger
378
+ * @param signer - Signer implementation for the ledger
379
+ */
380
+ static <span class="fstat-no" title="function not covered" >registerSigner(ledgerId: string, signer: IWalletConnectSigner): void {</span>
381
381
  <span class="cstat-no" title="statement not covered" > if (signer.ledgerId !== ledgerId) {</span>
382
382
  <span class="cstat-no" title="statement not covered" > logger.warn('Signer ledgerId does not match registration key', {</span>
383
383
  <span class="cstat-no" title="statement not covered" > signerLedgerId: signer.ledgerId,</span>
@@ -388,41 +388,41 @@
388
388
  <span class="cstat-no" title="statement not covered" > this.signers.set(ledgerId, signer);</span>
389
389
  <span class="cstat-no" title="statement not covered" > logger.debug('Registered signer for ledger', { ledgerId });</span>
390
390
  <span class="cstat-no" title="statement not covered" > }</span>
391
- <span class="cstat-no" title="statement not covered" ></span>
392
- <span class="cstat-no" title="statement not covered" > /**</span>
393
- <span class="cstat-no" title="statement not covered" > * Check if a signer is registered for a ledger.</span>
394
- <span class="cstat-no" title="statement not covered" > *</span>
395
- <span class="cstat-no" title="statement not covered" > * @param ledgerId - Ledger identifier to check</span>
396
- <span class="cstat-no" title="statement not covered" > * @returns True if a signer is registered, false otherwise</span>
397
- <span class="cstat-no" title="statement not covered" > */</span>
398
- <span class="cstat-no" title="statement not covered" > static hasSigner(ledgerId: string): boolean {</span>
399
- <span class="cstat-no" title="statement not covered" > return this.signers.has(ledgerId);</span>
400
- <span class="cstat-no" title="statement not covered" > }</span>
401
- <span class="cstat-no" title="statement not covered" ></span>
402
- <span class="cstat-no" title="statement not covered" > /**</span>
403
- <span class="cstat-no" title="statement not covered" > * Get all registered ledger IDs.</span>
404
- <span class="cstat-no" title="statement not covered" > *</span>
405
- <span class="cstat-no" title="statement not covered" > * @returns Array of ledger identifiers</span>
406
- <span class="cstat-no" title="statement not covered" > */</span>
407
- <span class="cstat-no" title="statement not covered" > static getAvailableLedgers(): string[] {</span>
408
- <span class="cstat-no" title="statement not covered" > return Array.from(this.signers.keys());</span>
409
- <span class="cstat-no" title="statement not covered" > }</span>
410
- <span class="cstat-no" title="statement not covered" ></span>
411
- <span class="cstat-no" title="statement not covered" > /**</span>
412
- <span class="cstat-no" title="statement not covered" > * Remove a signer from the registry.</span>
413
- <span class="cstat-no" title="statement not covered" > * Useful for testing or dynamic ledger support.</span>
414
- <span class="cstat-no" title="statement not covered" > *</span>
415
- <span class="cstat-no" title="statement not covered" > * @param ledgerId - Ledger identifier to remove</span>
416
- <span class="cstat-no" title="statement not covered" > * @returns True if signer was removed, false if it didn't exist</span>
417
- <span class="cstat-no" title="statement not covered" > */</span>
418
- <span class="cstat-no" title="statement not covered" > static unregisterSigner(ledgerId: string): boolean {</span>
391
+ &nbsp;
392
+ /**
393
+ * Check if a signer is registered for a ledger.
394
+ *
395
+ * @param ledgerId - Ledger identifier to check
396
+ * @returns True if a signer is registered, false otherwise
397
+ */
398
+ static hasSigner(ledgerId: string): boolean {
399
+ return this.signers.has(ledgerId);
400
+ }
401
+ &nbsp;
402
+ /**
403
+ * Get all registered ledger IDs.
404
+ *
405
+ * @returns Array of ledger identifiers
406
+ */
407
+ static getAvailableLedgers(): string[] {
408
+ return Array.from(this.signers.keys());
409
+ }
410
+ &nbsp;
411
+ /**
412
+ * Remove a signer from the registry.
413
+ * Useful for testing or dynamic ledger support.
414
+ *
415
+ * @param ledgerId - Ledger identifier to remove
416
+ * @returns True if signer was removed, false if it didn't exist
417
+ */
418
+ static <span class="fstat-no" title="function not covered" >unregisterSigner(ledgerId: string): boolean {</span>
419
419
  <span class="cstat-no" title="statement not covered" > const removed = this.signers.delete(ledgerId);</span>
420
420
  <span class="cstat-no" title="statement not covered" > if (removed) {</span>
421
421
  <span class="cstat-no" title="statement not covered" > logger.debug('Unregistered signer for ledger', { ledgerId });</span>
422
422
  <span class="cstat-no" title="statement not covered" > }</span>
423
423
  <span class="cstat-no" title="statement not covered" > return removed;</span>
424
424
  <span class="cstat-no" title="statement not covered" > }</span>
425
- <span class="cstat-no" title="statement not covered" >}</span>
425
+ }
426
426
  &nbsp;</pre></td></tr></table></pre>
427
427
 
428
428
  <div class='push'></div><!-- for sticky footer -->
@@ -430,7 +430,7 @@
430
430
  <div class='footer quiet pad2 space-top1 center small'>
431
431
  Code coverage generated by
432
432
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
433
- at 2026-06-10T09:00:36.812Z
433
+ at 2026-06-27T21:00:37.209Z
434
434
  </div>
435
435
  <script src="../../../../prettify.js"></script>
436
436
  <script>