@hsuite/native-connect-angular 1.0.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 (188) hide show
  1. package/coverage/coverage-summary.json +53 -49
  2. package/coverage/index.html +100 -100
  3. package/coverage/lcov-report/index.html +100 -100
  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 +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 +1230 -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 +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 +1 -1
  43. package/coverage/lcov-report/lib/providers/hsuite-native/channel-client.service.ts.html +9 -6
  44. package/coverage/lcov-report/lib/providers/hsuite-native/index.html +10 -10
  45. package/coverage/lcov-report/lib/providers/hsuite-native-provider.ts.html +1 -1
  46. package/coverage/lcov-report/lib/providers/index.html +1 -1
  47. package/coverage/lcov-report/lib/providers/p2p-native/index.html +7 -7
  48. package/coverage/lcov-report/lib/providers/p2p-native/p2p-native.provider.ts.html +1 -1
  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 +10 -10
  52. package/coverage/lcov-report/lib/providers/walletconnect/core/session-health.ts.html +1 -1
  53. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +1 -1
  54. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-provider.ts.html +10 -7
  55. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +1 -1
  56. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +1 -1
  57. package/coverage/lcov-report/lib/providers/walletconnect/signers/hedera-signer.ts.html +1 -1
  58. package/coverage/lcov-report/lib/providers/walletconnect/signers/index.html +1 -1
  59. package/coverage/lcov-report/lib/providers/walletconnect/signers/signer-factory.ts.html +49 -49
  60. package/coverage/lcov-report/lib/providers/walletconnect/signers/xrpl-signer.ts.html +1 -1
  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 +4 -4
  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 +1 -1
  68. package/coverage/lcov-report/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +318 -318
  69. package/coverage/lcov-report/lib/services/transaction-builders/index.html +24 -9
  70. package/coverage/lcov-report/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1 -1
  71. package/coverage/lcov-report/lib/services/transaction.service.ts.html +7 -10
  72. package/coverage/lcov-report/lib/services/unified-wallet.service.ts.html +9 -12
  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 +1 -1
  75. package/coverage/lcov-report/lib/services/wallet-providers.service.ts.html +4 -7
  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 +3236 -2122
  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 +21 -21
  96. package/coverage/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +475 -451
  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 +148 -148
  102. package/coverage/lib/components/wallet-connection-modal/connection-method-step/index.html +17 -17
  103. package/coverage/lib/components/wallet-connection-modal/index.html +21 -21
  104. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/index.html +17 -17
  105. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +838 -838
  106. package/coverage/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +1230 -987
  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 +1 -1
  121. package/coverage/lib/providers/hsuite-native/channel-client.service.ts.html +9 -6
  122. package/coverage/lib/providers/hsuite-native/index.html +10 -10
  123. package/coverage/lib/providers/hsuite-native-provider.ts.html +1 -1
  124. package/coverage/lib/providers/index.html +1 -1
  125. package/coverage/lib/providers/p2p-native/index.html +7 -7
  126. package/coverage/lib/providers/p2p-native/p2p-native.provider.ts.html +1 -1
  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 +10 -10
  130. package/coverage/lib/providers/walletconnect/core/session-health.ts.html +1 -1
  131. package/coverage/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +1 -1
  132. package/coverage/lib/providers/walletconnect/core/walletconnect-provider.ts.html +10 -7
  133. package/coverage/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +1 -1
  134. package/coverage/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +1 -1
  135. package/coverage/lib/providers/walletconnect/signers/hedera-signer.ts.html +1 -1
  136. package/coverage/lib/providers/walletconnect/signers/index.html +1 -1
  137. package/coverage/lib/providers/walletconnect/signers/signer-factory.ts.html +49 -49
  138. package/coverage/lib/providers/walletconnect/signers/xrpl-signer.ts.html +1 -1
  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 +4 -4
  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 +1 -1
  146. package/coverage/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +318 -318
  147. package/coverage/lib/services/transaction-builders/index.html +24 -9
  148. package/coverage/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1 -1
  149. package/coverage/lib/services/transaction.service.ts.html +7 -10
  150. package/coverage/lib/services/unified-wallet.service.ts.html +9 -12
  151. package/coverage/lib/services/wallet-context.service.ts.html +1 -1
  152. package/coverage/lib/services/wallet-event-bus.service.ts.html +1 -1
  153. package/coverage/lib/services/wallet-providers.service.ts.html +4 -7
  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 +939 -328
  160. package/dist/fesm2022/hsuite-native-connect-angular.mjs.map +1 -1
  161. package/dist/index.d.ts +489 -33
  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-connect-button/wallet-connect-button.component.spec.ts +89 -0
  167. package/src/lib/components/wallet-connect-button/wallet-connect-button.component.ts +8 -0
  168. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.html +1 -6
  169. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.spec.ts +173 -0
  170. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts +118 -37
  171. package/src/lib/models/provider-types.ts +3 -1
  172. package/src/lib/models/unified-account.model.ts +4 -1
  173. package/src/lib/providers/hsuite-native/channel-client.service.ts +1 -0
  174. package/src/lib/providers/p2p-native/p2p-session-manager.ts +1 -0
  175. package/src/lib/providers/walletconnect/core/walletconnect-provider.ts +2 -1
  176. package/src/lib/services/hsuite-auth.interceptor.ts +159 -0
  177. package/src/lib/services/smart-session.service.ts +378 -0
  178. package/src/lib/services/transaction-builders/active-account-source.spec.ts +75 -0
  179. package/src/lib/services/transaction-builders/active-account-source.ts +55 -0
  180. package/src/lib/services/transaction-builders/hedera-transaction-builder.service.ts +4 -4
  181. package/src/lib/services/transaction-builders/index.ts +1 -0
  182. package/src/lib/services/transaction.service.ts +7 -4
  183. package/src/lib/services/unified-wallet.service.spec.ts +1 -1
  184. package/src/lib/services/unified-wallet.service.ts +2 -3
  185. package/src/lib/services/wallet-providers.service.ts +0 -1
  186. package/src/lib/utils/index.ts +1 -0
  187. package/src/lib/utils/ledger-icons.util.ts +61 -30
  188. package/src/lib/utils/ledger-ui-registry.ts +197 -0
package/dist/index.d.ts CHANGED
@@ -1,16 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Signal, NgZone, EventEmitter, OnInit, TemplateRef, OnDestroy, Provider } from '@angular/core';
2
+ import { Signal, NgZone, EventEmitter, OnInit, TemplateRef, OnDestroy, InjectionToken, Provider } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import * as i2 from '@ionic/angular';
5
5
  import { ModalController as ModalController$1 } from '@ionic/angular';
6
6
  import { ModalController, AlertController, ToastController } from '@ionic/angular/standalone';
7
7
  import * as _hsuite_native_connect_sdk from '@hsuite/native-connect-sdk';
8
- import { TransportState, Logger, TransportProvider, ChannelState, ChannelAccount, ChannelInvite, ChannelType } from '@hsuite/native-connect-sdk';
8
+ import { SupportedLedger, TransportState, Logger, TransportProvider, ChannelState, ChannelAccount, ChannelInvite, ChannelType } from '@hsuite/native-connect-sdk';
9
9
  export { ChannelAccount, ChannelInvite, ChannelMessage, ChannelState, ChannelType, HederaTransactionEncoder, MessageType, TransportState, XrplTransactionEncoder } from '@hsuite/native-connect-sdk';
10
10
  import * as _hsuite_native_connect_angular from '@hsuite/native-connect-angular';
11
11
  import { Observable } from 'rxjs';
12
- import { MessageEnvelope } from '@hsuite/native-connect-types';
13
- export { RpcEnvelope, RpcRequest, RpcResponse, SessionApproval } from '@hsuite/native-connect-types';
12
+ import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpInterceptorFn } from '@angular/common/http';
13
+ import { MessageEnvelope, LedgerId } from '@hsuite/native-connect-types';
14
+ export { LedgerId, RpcEnvelope, RpcRequest, RpcResponse, SessionApproval } from '@hsuite/native-connect-types';
14
15
  import SignClient from '@walletconnect/sign-client';
15
16
  import { WalletConnectModal } from '@walletconnect/modal';
16
17
  import { ISignClient } from '@walletconnect/types';
@@ -36,6 +37,7 @@ import { ISignClient } from '@walletconnect/types';
36
37
  * \-> error
37
38
  * ```
38
39
  */
40
+
39
41
  /**
40
42
  * Supported wallet connection protocol types.
41
43
  *
@@ -134,7 +136,7 @@ interface HsuiteNativeConfig {
134
136
  interface WalletConnectV2Config {
135
137
  type: 'walletconnect-v2';
136
138
  projectId: string;
137
- ledgerId: 'hedera' | 'xrpl';
139
+ ledgerId: SupportedLedger;
138
140
  networkId: string;
139
141
  appName?: string;
140
142
  appDescription?: string;
@@ -176,7 +178,7 @@ type ConnectionConfig$1 = HsuiteNativeConfig | WalletConnectV2Config | MobileNat
176
178
  * visit https://hsuite.finance/licensing
177
179
  */
178
180
  /**
179
- * @fileoverview Unified account model that works across all wallet providers.
181
+ * @file Unified account model that works across all wallet providers.
180
182
  *
181
183
  * @module models/unified-account
182
184
  *
@@ -208,6 +210,8 @@ interface UnifiedAccount {
208
210
  id: string;
209
211
  /** Account address/public key */
210
212
  address: string;
213
+ /** Public key associated with the account, when available from the provider. */
214
+ publicKey?: string;
211
215
  /** Human-readable label */
212
216
  label?: string;
213
217
  /** Ledger ID (e.g., 'hedera', 'xrpl') */
@@ -1883,7 +1887,7 @@ declare class UnifiedWalletService {
1883
1887
  * @throws {Error} If provider is not found
1884
1888
  * @throws {Error} If user rejects the signing request
1885
1889
  */
1886
- signMessage(message: string, encoding?: 'utf-8' | 'base64'): Promise<unknown>;
1890
+ signMessage(message: string, encoding?: 'utf-8' | 'base64'): Promise<SignMessageResult>;
1887
1891
  /**
1888
1892
  * Signs and executes a transaction in a single prompt.
1889
1893
  *
@@ -2021,6 +2025,12 @@ declare class WalletConnectButtonComponent {
2021
2025
  * Wallet URL for targeting the wallet window
2022
2026
  */
2023
2027
  walletUrl: string;
2028
+ /**
2029
+ * Pins the connection network and hides the network-selection step in the
2030
+ * modal. When set to `'mainnet'` or `'testnet'`, the dApp decides the network
2031
+ * and the user never sees the picker. When omitted, the user chooses.
2032
+ */
2033
+ network?: 'mainnet' | 'testnet';
2024
2034
  /**
2025
2035
  * Whether to show session information when connected
2026
2036
  * @default true
@@ -2104,7 +2114,7 @@ declare class WalletConnectButtonComponent {
2104
2114
  */
2105
2115
  getConnectedAccounts(): any[];
2106
2116
  static ɵfac: i0.ɵɵFactoryDeclaration<WalletConnectButtonComponent, never>;
2107
- static ɵcmp: i0.ɵɵComponentDeclaration<WalletConnectButtonComponent, "wallet-connect-button", never, { "walletConnectProjectId": { "alias": "walletConnectProjectId"; "required": false; }; "appName": { "alias": "appName"; "required": false; }; "appDescription": { "alias": "appDescription"; "required": false; }; "walletUrl": { "alias": "walletUrl"; "required": false; }; "showSessionInfo": { "alias": "showSessionInfo"; "required": false; }; "buttonColor": { "alias": "buttonColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; "connectText": { "alias": "connectText"; "required": false; }; "connectedText": { "alias": "connectedText"; "required": false; }; "multiSessionMode": { "alias": "multiSessionMode"; "required": false; }; }, { "connected": "connected"; "disconnected": "disconnected"; "error": "error"; }, never, never, true, never>;
2117
+ static ɵcmp: i0.ɵɵComponentDeclaration<WalletConnectButtonComponent, "wallet-connect-button", never, { "walletConnectProjectId": { "alias": "walletConnectProjectId"; "required": false; }; "appName": { "alias": "appName"; "required": false; }; "appDescription": { "alias": "appDescription"; "required": false; }; "walletUrl": { "alias": "walletUrl"; "required": false; }; "network": { "alias": "network"; "required": false; }; "showSessionInfo": { "alias": "showSessionInfo"; "required": false; }; "buttonColor": { "alias": "buttonColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; "connectText": { "alias": "connectText"; "required": false; }; "connectedText": { "alias": "connectedText"; "required": false; }; "multiSessionMode": { "alias": "multiSessionMode"; "required": false; }; }, { "connected": "connected"; "disconnected": "disconnected"; "error": "error"; }, never, never, true, never>;
2108
2118
  }
2109
2119
 
2110
2120
  /**
@@ -3093,13 +3103,18 @@ declare class WalletAccountDisplayComponent {
3093
3103
  * Get multisig threshold info (e.g., "2/3")
3094
3104
  */
3095
3105
  protected readonly multisigInfo: i0.Signal<string>;
3106
+ /**
3107
+ *
3108
+ */
3096
3109
  constructor();
3097
3110
  /**
3098
3111
  * Get color for ledger badge
3112
+ * @param ledgerId
3099
3113
  */
3100
3114
  protected getLedgerColor(ledgerId: string): string;
3101
3115
  /**
3102
3116
  * Format network ID for display
3117
+ * @param networkId
3103
3118
  */
3104
3119
  protected formatNetwork(networkId: string): string;
3105
3120
  static ɵfac: i0.ɵɵFactoryDeclaration<WalletAccountDisplayComponent, never>;
@@ -3279,7 +3294,7 @@ interface ProtocolOption {
3279
3294
  * Ledger configuration options
3280
3295
  */
3281
3296
  interface LedgerOption {
3282
- id: 'hedera' | 'xrpl';
3297
+ id: SupportedLedger;
3283
3298
  name: string;
3284
3299
  description: string;
3285
3300
  icon: string;
@@ -3298,13 +3313,22 @@ interface StepConfig {
3298
3313
  * Main wallet connection modal component.
3299
3314
  * Orchestrates the multi-step connection flow.
3300
3315
  */
3301
- declare class WalletConnectionModalComponent {
3316
+ declare class WalletConnectionModalComponent implements OnInit {
3302
3317
  private modalController;
3303
3318
  private unifiedWalletService;
3304
3319
  /**
3305
3320
  * WalletConnect project ID (required for WalletConnect)
3306
3321
  */
3307
3322
  projectId?: string;
3323
+ /**
3324
+ * Pins the connection network and hides the network-selection step.
3325
+ *
3326
+ * When set to `'mainnet'` or `'testnet'`, the host dApp decides the network
3327
+ * and the user is never shown the network picker — the modal opens directly
3328
+ * on protocol selection. When omitted (default), the user chooses the network
3329
+ * as the first step.
3330
+ */
3331
+ network?: 'mainnet' | 'testnet';
3308
3332
  /**
3309
3333
  * App name for WalletConnect metadata
3310
3334
  */
@@ -3328,7 +3352,7 @@ declare class WalletConnectionModalComponent {
3328
3352
  readonly selectedNetwork: i0.WritableSignal<string>;
3329
3353
  readonly selectedProtocol: i0.WritableSignal<"hsuite-native" | "walletconnect">;
3330
3354
  readonly selectedConnectionMethod: i0.WritableSignal<ConnectionMethod>;
3331
- readonly selectedLedger: i0.WritableSignal<"hedera" | "xrpl">;
3355
+ readonly selectedLedger: i0.WritableSignal<SupportedLedger>;
3332
3356
  readonly isConnecting: i0.WritableSignal<boolean>;
3333
3357
  readonly connectionError: i0.WritableSignal<string>;
3334
3358
  readonly pairingOffer: i0.WritableSignal<string>;
@@ -3372,12 +3396,27 @@ declare class WalletConnectionModalComponent {
3372
3396
  * Different protocol paths have different step mappings.
3373
3397
  */
3374
3398
  readonly displayStep: i0.Signal<number>;
3399
+ /**
3400
+ * Whether a back affordance should be offered for the current step.
3401
+ * The first reachable step has no back target — that is protocol selection
3402
+ * when the network is pinned, otherwise network selection. The connection
3403
+ * progress step manages its own retry navigation instead.
3404
+ */
3405
+ readonly canGoBack: i0.Signal<boolean>;
3375
3406
  /**
3376
3407
  *
3377
3408
  * @param modalController
3378
3409
  * @param unifiedWalletService
3379
3410
  */
3380
3411
  constructor(modalController: ModalController$1, unifiedWalletService: UnifiedWalletService);
3412
+ /**
3413
+ * Apply the pinned network (if any) before the first render.
3414
+ *
3415
+ * When the host dApp provides a {@link network}, lock the selection to it and
3416
+ * skip straight to protocol selection so the user never sees — and cannot
3417
+ * change — the network. With no input, the modal opens on network selection.
3418
+ */
3419
+ ngOnInit(): void;
3381
3420
  /**
3382
3421
  * Select a network option (internal, use selectNetworkAndProceed for UI)
3383
3422
  * @param networkId
@@ -3416,13 +3455,13 @@ declare class WalletConnectionModalComponent {
3416
3455
  * Select a ledger option (internal, use selectLedgerAndConnect for UI)
3417
3456
  * @param ledgerId
3418
3457
  */
3419
- selectLedger(ledgerId: 'hedera' | 'xrpl'): void;
3458
+ selectLedger(ledgerId: SupportedLedger): void;
3420
3459
  /**
3421
3460
  * Select a ledger and automatically initiate connection.
3422
3461
  * This enables direct selection behavior for WalletConnect ledger step.
3423
3462
  * @param ledgerId - The ledger ID to select ('hedera' or 'xrpl')
3424
3463
  */
3425
- selectLedgerAndConnect(ledgerId: 'hedera' | 'xrpl'): void;
3464
+ selectLedgerAndConnect(ledgerId: SupportedLedger): void;
3426
3465
  /**
3427
3466
  * Proceed to the next step in the wizard
3428
3467
  */
@@ -3476,7 +3515,7 @@ declare class WalletConnectionModalComponent {
3476
3515
  */
3477
3516
  private detectExtension;
3478
3517
  static ɵfac: i0.ɵɵFactoryDeclaration<WalletConnectionModalComponent, never>;
3479
- static ɵcmp: i0.ɵɵComponentDeclaration<WalletConnectionModalComponent, "hsuite-wallet-connection-modal", never, { "projectId": { "alias": "projectId"; "required": false; }; "appName": { "alias": "appName"; "required": false; }; "appDescription": { "alias": "appDescription"; "required": false; }; "walletUrl": { "alias": "walletUrl"; "required": false; }; }, { "connected": "connected"; }, never, never, true, never>;
3518
+ static ɵcmp: i0.ɵɵComponentDeclaration<WalletConnectionModalComponent, "hsuite-wallet-connection-modal", never, { "projectId": { "alias": "projectId"; "required": false; }; "network": { "alias": "network"; "required": false; }; "appName": { "alias": "appName"; "required": false; }; "appDescription": { "alias": "appDescription"; "required": false; }; "walletUrl": { "alias": "walletUrl"; "required": false; }; }, { "connected": "connected"; }, never, never, true, never>;
3480
3519
  }
3481
3520
 
3482
3521
  /**
@@ -4562,7 +4601,7 @@ declare class TransactionService {
4562
4601
  * @param message - Message to sign
4563
4602
  * @returns Sign result with signature
4564
4603
  */
4565
- signMessage(message: string): Promise<SignResult>;
4604
+ signMessage(message: string): Promise<SignMessageResult>;
4566
4605
  /**
4567
4606
  * Show a success toast notification
4568
4607
  * Uses cssClass-only styling (no Ionic color property) for theme compatibility.
@@ -4692,6 +4731,233 @@ declare class LoggerService {
4692
4731
  static ɵprov: i0.ɵɵInjectableDeclaration<LoggerService>;
4693
4732
  }
4694
4733
 
4734
+ /**
4735
+ * Configuration token for {@link SmartSessionService}.
4736
+ */
4737
+ declare const SMART_SESSION_CONFIG: InjectionToken<SmartSessionConfig>;
4738
+ /**
4739
+ * Configuration for the smart-host session handshake.
4740
+ */
4741
+ interface SmartSessionConfig {
4742
+ /**
4743
+ * Base URL for the smart-host API.
4744
+ * @default '' (relative to the current origin)
4745
+ */
4746
+ baseUrl?: string;
4747
+ /**
4748
+ * Health endpoint used to discover the host `appId`.
4749
+ * @default '/api/health'
4750
+ */
4751
+ healthEndpoint?: string;
4752
+ /**
4753
+ * Challenge endpoint used to obtain a message to sign.
4754
+ * @default '/api/auth/challenge'
4755
+ */
4756
+ challengeEndpoint?: string;
4757
+ /**
4758
+ * Verify endpoint used to exchange the signed challenge for a bearer token.
4759
+ * @default '/api/auth/verify'
4760
+ */
4761
+ verifyEndpoint?: string;
4762
+ /**
4763
+ * sessionStorage key used to persist the session token and expiry.
4764
+ * @default 'hsuite.smart-session'
4765
+ */
4766
+ storageKey?: string;
4767
+ }
4768
+ /**
4769
+ * Health response shape expected from the smart host.
4770
+ */
4771
+ interface SmartHostHealth {
4772
+ appId: string;
4773
+ [key: string]: unknown;
4774
+ }
4775
+ /**
4776
+ * Challenge response shape expected from the smart host.
4777
+ */
4778
+ interface SmartHostChallenge {
4779
+ challenge: string;
4780
+ [key: string]: unknown;
4781
+ }
4782
+ /**
4783
+ * Verify request payload sent to the smart host.
4784
+ */
4785
+ interface SmartHostVerifyRequest {
4786
+ appId: string;
4787
+ accountAddress: string;
4788
+ publicKey?: string;
4789
+ signature: string;
4790
+ algorithm?: string;
4791
+ message: string;
4792
+ caipChainId?: string;
4793
+ ledgerId?: string;
4794
+ networkId?: string;
4795
+ }
4796
+ /**
4797
+ * Verify response shape expected from the smart host.
4798
+ */
4799
+ interface SmartHostVerifyResponse {
4800
+ bearer: string;
4801
+ expiresAt?: number;
4802
+ expiresIn?: number;
4803
+ [key: string]: unknown;
4804
+ }
4805
+ /**
4806
+ * Smart-host customer session helper.
4807
+ *
4808
+ * @service SmartSessionService
4809
+ *
4810
+ * @description
4811
+ * Encapsulates the full challenge → sign → verify → store JWT flow required by
4812
+ * HSuite smart hosts. The service is intentionally thin: it delegates signing to
4813
+ * {@link TransactionService} and relies on standard Angular `HttpClient` for the
4814
+ * host HTTP calls.
4815
+ *
4816
+ * @providedIn root
4817
+ */
4818
+ declare class SmartSessionService {
4819
+ private readonly http;
4820
+ private readonly walletService;
4821
+ private readonly transactionService;
4822
+ private readonly config;
4823
+ private get baseUrl();
4824
+ private get healthEndpoint();
4825
+ private get challengeEndpoint();
4826
+ private get verifyEndpoint();
4827
+ private get storageKey();
4828
+ /**
4829
+ * Returns the currently stored bearer token, or `null` if there is no session.
4830
+ *
4831
+ * @returns Bearer token string or null
4832
+ */
4833
+ getBearer(): string | null;
4834
+ /**
4835
+ * Checks whether a non-expired session is available.
4836
+ *
4837
+ * @returns true if logged in and the bearer has not expired
4838
+ */
4839
+ isLoggedIn(): boolean;
4840
+ /**
4841
+ * Performs the full smart-host login handshake.
4842
+ *
4843
+ * @description
4844
+ * 1. Discovers `appId` from the health endpoint.
4845
+ * 2. Fetches a challenge from the challenge endpoint.
4846
+ * 3. Signs the challenge with the active wallet account.
4847
+ * 4. Exchanges the signed challenge for a bearer token.
4848
+ * 5. Stores the bearer and expiry in `sessionStorage`.
4849
+ *
4850
+ * @returns The verify response from the host
4851
+ *
4852
+ * @throws {Error} If no active account is available
4853
+ * @throws {Error} If the health endpoint does not return an `appId`
4854
+ * @throws {Error} If the challenge endpoint does not return a `challenge`
4855
+ * @throws {Error} If the verify call fails
4856
+ */
4857
+ login(): Promise<SmartHostVerifyResponse>;
4858
+ /**
4859
+ * Clears the stored session.
4860
+ */
4861
+ logout(): void;
4862
+ /**
4863
+ * Runs an HTTP operation with automatic 401 recovery.
4864
+ *
4865
+ * @description
4866
+ * Executes the provided operation. If it rejects with an HTTP 401 error,
4867
+ * the service clears the current bearer, performs a fresh login, and retries
4868
+ * the operation once. Any other error is propagated immediately.
4869
+ *
4870
+ * @param operation - Async operation that needs a valid session
4871
+ * @returns The result of the operation
4872
+ *
4873
+ * @throws {Error} The original error if retry is not possible or fails
4874
+ */
4875
+ withSession<T>(operation: () => Promise<T>): Promise<T>;
4876
+ private fetchHealth;
4877
+ private fetchChallenge;
4878
+ private verifyChallenge;
4879
+ private resolveExpiry;
4880
+ private readStoredSession;
4881
+ private storeSession;
4882
+ private clearStoredSession;
4883
+ private isUnauthorizedError;
4884
+ static ɵfac: i0.ɵɵFactoryDeclaration<SmartSessionService, never>;
4885
+ static ɵprov: i0.ɵɵInjectableDeclaration<SmartSessionService>;
4886
+ }
4887
+
4888
+ /**
4889
+ * HSuite Native Connect
4890
+ * Copyright 2024-2025 HSuite (https://hsuite.finance)
4891
+ *
4892
+ * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
4893
+ *
4894
+ * This file is part of HSuite Native Connect. For commercial licensing,
4895
+ * visit https://hsuite.finance/licensing
4896
+ */
4897
+ /**
4898
+ * @file HTTP interceptor that attaches wallet-attributed auth headers.
4899
+ *
4900
+ * @module services/hsuite-auth-interceptor
4901
+ *
4902
+ * @description
4903
+ * `HsuiteAuthInterceptor` automatically adds the active smart-host bearer token
4904
+ * and wallet ledger identifier to outgoing HTTP requests. When a request fails
4905
+ * with HTTP 401, it delegates recovery to {@link SmartSessionService} for a
4906
+ * single re-login and retry.
4907
+ *
4908
+ * **Registration (standalone apps):**
4909
+ * ```typescript
4910
+ * provideHttpClient(withInterceptors([provideHsuiteAuthInterceptor()]))
4911
+ * ```
4912
+ *
4913
+ * **Registration (module-based apps):**
4914
+ * ```typescript
4915
+ * { provide: HTTP_INTERCEPTORS, useClass: HsuiteAuthInterceptor, multi: true }
4916
+ * ```
4917
+ */
4918
+
4919
+ /**
4920
+ * Headers injected by the interceptor.
4921
+ */
4922
+ declare const HSUITE_AUTH_HEADER = "Authorization";
4923
+ declare const HSUITE_LEDGER_HEADER = "X-Ledger-Id";
4924
+ /**
4925
+ * Functional HTTP interceptor that attaches wallet-attributed auth headers.
4926
+ *
4927
+ * @description
4928
+ * Adds:
4929
+ * - `Authorization: Bearer <token>` when {@link SmartSessionService.getBearer} returns a token
4930
+ * - `X-Ledger-Id: <ledgerId>` when a wallet account is active
4931
+ *
4932
+ * On 401 responses, clears the stale bearer and retries once after re-login.
4933
+ *
4934
+ * @param req - The outgoing HTTP request
4935
+ * @param next - The downstream request handler
4936
+ * @returns Observable of HTTP events
4937
+ */
4938
+ declare const hsuiteAuthInterceptor: HttpInterceptorFn;
4939
+ /**
4940
+ * Class-based HTTP interceptor for module-based Angular apps.
4941
+ *
4942
+ * @description
4943
+ * Provides the same behavior as {@link hsuiteAuthInterceptor} in a class form
4944
+ * suitable for registration via `HTTP_INTERCEPTORS`.
4945
+ */
4946
+ declare class HsuiteAuthInterceptor implements HttpInterceptor {
4947
+ private readonly session;
4948
+ private readonly wallet;
4949
+ /**
4950
+ * Intercepts outgoing HTTP requests to attach wallet-attributed auth headers.
4951
+ *
4952
+ * @param req - The outgoing HTTP request
4953
+ * @param next - The downstream request handler
4954
+ * @returns Observable of HTTP events
4955
+ */
4956
+ intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
4957
+ static ɵfac: i0.ɵɵFactoryDeclaration<HsuiteAuthInterceptor, never>;
4958
+ static ɵprov: i0.ɵɵInjectableDeclaration<HsuiteAuthInterceptor>;
4959
+ }
4960
+
4695
4961
  /**
4696
4962
  * Supported inner transaction types for batch transactions.
4697
4963
  * Excludes 'batch-transaction' since batches cannot be nested.
@@ -4856,7 +5122,7 @@ interface AccountCreateOptions {
4856
5122
  * ```
4857
5123
  */
4858
5124
  declare class HederaTransactionBuilderService {
4859
- private readonly wallet;
5125
+ private readonly accountSource;
4860
5126
  private readonly logger;
4861
5127
  /**
4862
5128
  * Gets the network ID from the active wallet account.
@@ -5461,6 +5727,49 @@ declare class XrplTransactionBuilderService {
5461
5727
  */
5462
5728
  declare function scaleHederaAmountToBaseUnits(amount: number, decimals: number): bigint;
5463
5729
 
5730
+ /**
5731
+ * HSuite Native Connect
5732
+ * Copyright 2024-2025 HSuite (https://hsuite.finance)
5733
+ *
5734
+ * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
5735
+ *
5736
+ * This file is part of HSuite Native Connect. For commercial licensing,
5737
+ * visit https://hsuite.finance/licensing
5738
+ */
5739
+ /**
5740
+ * @file ACTIVE_ACCOUNT_SOURCE: the minimal active-account read surface the
5741
+ * transaction builders need.
5742
+ *
5743
+ * @description
5744
+ * The Hedera transaction builder only reads `activeAccount()` from the wallet
5745
+ * (to pick the network and the entity key config). Injecting the whole
5746
+ * {@link UnifiedWalletService} couples the builder to a heavy root service that
5747
+ * also runs the dApp connect stack on construction. This token narrows that
5748
+ * dependency to a single member.
5749
+ *
5750
+ * The default provider points at {@link UnifiedWalletService}, so existing SDK
5751
+ * consumers that already provide it need NO wiring change (backward
5752
+ * compatible). The embedded widget shell overrides this token with a one-member
5753
+ * account context, which keeps the heavy root service from ever being
5754
+ * constructed inside the wallet.
5755
+ */
5756
+
5757
+ /**
5758
+ * The only member the transaction builders read from the active wallet account.
5759
+ * Implemented by {@link UnifiedWalletService} (the default) and by the embedded
5760
+ * shell's one-member account context.
5761
+ */
5762
+ interface ActiveAccountSource {
5763
+ readonly activeAccount: Signal<UnifiedAccount | null>;
5764
+ }
5765
+ /**
5766
+ * Injection token for the active-account read surface. Defaults to
5767
+ * {@link UnifiedWalletService} so consumers that already provide it need no
5768
+ * extra wiring; override it to supply a narrower source (the embedded shell
5769
+ * does this to avoid constructing the root service inside the wallet).
5770
+ */
5771
+ declare const ACTIVE_ACCOUNT_SOURCE: InjectionToken<ActiveAccountSource>;
5772
+
5464
5773
  /**
5465
5774
  * HSuite Native Connect
5466
5775
  * Copyright 2024-2025 HSuite (https://hsuite.finance)
@@ -6891,6 +7200,129 @@ declare class ChannelClientService {
6891
7200
  static ɵprov: i0.ɵɵInjectableDeclaration<ChannelClientService>;
6892
7201
  }
6893
7202
 
7203
+ /**
7204
+ * HSuite Native Connect
7205
+ * Copyright 2024-2025 HSuite (https://hsuite.finance)
7206
+ *
7207
+ * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0
7208
+ *
7209
+ * This file is part of HSuite Native Connect. For commercial licensing,
7210
+ * visit https://hsuite.finance/licensing
7211
+ */
7212
+
7213
+ /**
7214
+ * @module LedgerUiRegistry
7215
+ *
7216
+ * Single source of truth for **how a ledger is presented** in the Angular SDK —
7217
+ * its display name, native currency, brand colours, and brand icon.
7218
+ *
7219
+ * ## Why a registry
7220
+ *
7221
+ * The core SDK keys everything off the canonical, open {@link LedgerId} type
7222
+ * (`z.string().min(1)` in `@hsuite/native-connect-types`) and discovers chains
7223
+ * dynamically via `WalletCore.registerLedger(adapter)` / `LedgerRegistry`. This
7224
+ * registry mirrors that pattern for the **presentation layer**: ledgers are
7225
+ * registered, not hard-coded into closed `'hedera' | 'xrpl'` maps. Adding a new
7226
+ * chain is a single {@link LedgerUIRegistry.register} call — no union to widen,
7227
+ * no scattered `Record<>` literals to keep in sync.
7228
+ *
7229
+ * Presentation lives in the presentation package (this Angular SDK) so the core
7230
+ * SDK stays headless: the descriptor carries the framework-agnostic data plus
7231
+ * the Ionic-specific icon binding ({@link LedgerUiDescriptor.iconName} /
7232
+ * {@link LedgerUiDescriptor.iconSvg}) that `<ion-icon>` renders.
7233
+ *
7234
+ * @see {@link LedgerUiDescriptor} for the per-ledger contract.
7235
+ * @see `docs/guides/adding-a-new-chain.md` for the end-to-end "add a chain" flow.
7236
+ */
7237
+ /**
7238
+ * Presentation contract for one ledger.
7239
+ *
7240
+ * Keyed by the canonical {@link LedgerId} (open `string`) so the registry is
7241
+ * extensible to any number of chains. Built-in ledgers are registered at module
7242
+ * load; first-party chains add a descriptor here, third-party/plugin chains call
7243
+ * {@link LedgerUIRegistry.register} at runtime.
7244
+ */
7245
+ interface LedgerUiDescriptor {
7246
+ /** Canonical ledger identity, e.g. `'hedera'`, `'xrpl'` (see {@link LedgerId}). */
7247
+ readonly id: LedgerId;
7248
+ /** Full human-readable name, e.g. `'Hedera'`, `'XRP Ledger'`. */
7249
+ readonly displayName: string;
7250
+ /** Compact name for badges/dense surfaces, e.g. `'Hedera'`, `'XRPL'`. */
7251
+ readonly shortName: string;
7252
+ /** Native currency ticker, e.g. `'HBAR'`, `'XRP'`. */
7253
+ readonly currencySymbol: string;
7254
+ /** Native currency decimal places, e.g. `8` (Hedera), `6` (XRPL). */
7255
+ readonly currencyDecimals: number;
7256
+ /** Brand colour as a hex string, used for CSS accents, e.g. `'#8259ef'`. */
7257
+ readonly brandColor: string;
7258
+ /** Ionic semantic colour name for `<ion-badge color="...">`, e.g. `'success'`. */
7259
+ readonly badgeColor: string;
7260
+ /**
7261
+ * Ionicons name under which {@link iconSvg} is registered, e.g.
7262
+ * `'ledger-hedera'`. Reference it from `<ion-icon [name]="...">`. The SVG is
7263
+ * flushed to Ionicons by {@link LedgerUIRegistry.registerIcons}.
7264
+ */
7265
+ readonly iconName: string;
7266
+ /**
7267
+ * Self-contained brand SVG markup. Inlined (rather than shipped as an asset
7268
+ * file) so the packaged library needs no runtime asset pipeline or external
7269
+ * CDN. `currentColor` fills inherit the host `<ion-icon>` colour; explicit
7270
+ * fills are preserved.
7271
+ */
7272
+ readonly iconSvg: string;
7273
+ /**
7274
+ * Optional CDN URL for a raster icon of the native token, used as a fallback
7275
+ * when an inline brand SVG is not the right surface (e.g. token lists).
7276
+ */
7277
+ readonly tokenIconUrl?: string;
7278
+ }
7279
+ /**
7280
+ * Open, string-keyed registry of {@link LedgerUiDescriptor}s.
7281
+ *
7282
+ * A static registry (like `AccountLabelManager`) because ledger presentation is
7283
+ * process-global — Ionicons' own icon table is global too. Mirrors the core
7284
+ * `LedgerRegistry` shape (`register` / `get` / `has` / `list`) so the two read
7285
+ * the same way.
7286
+ */
7287
+ declare class LedgerUIRegistry {
7288
+ private static readonly descriptors;
7289
+ /** Whether {@link registerIcons} has already flushed SVGs to Ionicons. */
7290
+ private static iconsFlushed;
7291
+ /**
7292
+ * Register (or replace) the presentation descriptor for a ledger.
7293
+ *
7294
+ * If icons were already flushed to Ionicons (i.e. {@link registerIcons} ran),
7295
+ * the new ledger's SVG is registered immediately so late registrations still
7296
+ * render.
7297
+ *
7298
+ * @param descriptor - The ledger's presentation contract.
7299
+ */
7300
+ static register(descriptor: LedgerUiDescriptor): void;
7301
+ /**
7302
+ * Look up a ledger's presentation descriptor.
7303
+ *
7304
+ * @param ledgerId - Canonical ledger id (case-sensitive; callers normalise).
7305
+ * @returns The descriptor, or `undefined` if the ledger is not registered.
7306
+ */
7307
+ static get(ledgerId: LedgerId): LedgerUiDescriptor | undefined;
7308
+ /**
7309
+ * @param ledgerId - Canonical ledger id.
7310
+ * @returns `true` if a descriptor is registered for `ledgerId`.
7311
+ */
7312
+ static has(ledgerId: LedgerId): boolean;
7313
+ /**
7314
+ * @returns All registered descriptors, in registration order.
7315
+ */
7316
+ static list(): LedgerUiDescriptor[];
7317
+ /**
7318
+ * Flush every registered ledger's brand SVG to Ionicons so the icons resolve
7319
+ * by name from `<ion-icon>`. Idempotent and cheap to call repeatedly — call it
7320
+ * before the icons are first rendered (e.g. from a component constructor or
7321
+ * once at app bootstrap).
7322
+ */
7323
+ static registerIcons(): void;
7324
+ }
7325
+
6894
7326
  /**
6895
7327
  * HSuite Native Connect
6896
7328
  * Copyright 2024-2025 HSuite (https://hsuite.finance)
@@ -6902,48 +7334,72 @@ declare class ChannelClientService {
6902
7334
  */
6903
7335
  /**
6904
7336
  * @module LedgerIconsUtil
6905
- * Utilities for getting default icon URLs for ledgers and their native tokens.
6906
7337
  *
6907
- * Uses CoinGecko's public CDN for reliable, high-quality token icons.
6908
- * Shared across wallet and dApp for consistency.
7338
+ * Backward-compatible facade over {@link LedgerUIRegistry}.
7339
+ *
7340
+ * Every value here is **derived from the registry** so there is exactly one
7341
+ * source of truth for ledger presentation. New code should prefer
7342
+ * {@link LedgerUIRegistry} directly (it is open/extensible and richer); these
7343
+ * getters and constant maps remain for the existing public API surface.
7344
+ *
7345
+ * The constant maps below are snapshots taken at module load — they include the
7346
+ * built-in ledgers (Hedera, XRPL). Ledgers registered later at runtime are
7347
+ * always reachable through the getters and {@link LedgerUIRegistry}, but will
7348
+ * not retroactively appear in these legacy snapshots; prefer the registry when
7349
+ * extensibility matters.
6909
7350
  */
6910
7351
  /**
6911
- * Default icon URLs for native ledger tokens
7352
+ * Default raster icon URLs for native ledger tokens, keyed by ledger id.
7353
+ * Derived from {@link LedgerUiDescriptor.tokenIconUrl}.
6912
7354
  */
6913
7355
  declare const DEFAULT_LEDGER_ICONS: Record<string, string>;
6914
7356
  /**
6915
- * Brand colors for each ledger
7357
+ * Brand colours (hex) for each ledger, keyed by ledger id.
7358
+ * Derived from {@link LedgerUiDescriptor.brandColor}.
6916
7359
  */
6917
7360
  declare const LEDGER_COLORS: Record<string, string>;
6918
7361
  /**
6919
- * Display names for each ledger
7362
+ * Display names for each ledger, keyed by ledger id.
7363
+ * Derived from {@link LedgerUiDescriptor.displayName}.
6920
7364
  */
6921
7365
  declare const LEDGER_NAMES: Record<string, string>;
6922
7366
  /**
6923
- * Get the default icon URL for a ledger
6924
- * @param ledgerId - Ledger identifier (e.g., 'hedera', 'xrpl')
6925
- * @returns Icon URL or empty string if not found
7367
+ * Ionicons names under which each ledger's brand SVG is registered, keyed by
7368
+ * ledger id. Reference these from `<ion-icon [name]="...">`.
7369
+ * Derived from {@link LedgerUiDescriptor.iconName}.
7370
+ */
7371
+ declare const LEDGER_ICON_NAMES: Record<string, string>;
7372
+ /**
7373
+ * Register the ledger brand SVGs with Ionicons so they can be referenced by name
7374
+ * (see {@link LEDGER_ICON_NAMES}). Idempotent; safe to call from multiple
7375
+ * consumers. Delegates to {@link LedgerUIRegistry.registerIcons}.
7376
+ */
7377
+ declare function registerLedgerIcons(): void;
7378
+ /**
7379
+ * Get the default raster token icon URL for a ledger.
7380
+ * @param ledgerId - Ledger identifier (e.g. `'hedera'`, `'xrpl'`)
7381
+ * @returns Icon URL, or empty string if the ledger has none.
6926
7382
  */
6927
7383
  declare function getLedgerIcon(ledgerId: string): string;
6928
7384
  /**
6929
- * Get the brand color for a ledger
7385
+ * Get the brand colour (hex) for a ledger.
6930
7386
  * @param ledgerId - Ledger identifier
6931
- * @returns Hex color string or primary color fallback
7387
+ * @returns Hex colour string, or the Ionic primary CSS variable as fallback.
6932
7388
  */
6933
7389
  declare function getLedgerColor(ledgerId: string): string;
6934
7390
  /**
6935
- * Get the display name for a ledger
7391
+ * Get the display name for a ledger.
6936
7392
  * @param ledgerId - Ledger identifier
6937
- * @returns Human-readable ledger name
7393
+ * @returns Human-readable ledger name, or the raw id if unknown.
6938
7394
  */
6939
7395
  declare function getLedgerName(ledgerId: string): string;
6940
7396
  /**
6941
- * Get token icon URL, falling back to ledger default if not provided
7397
+ * Get a token icon URL, falling back to the ledger default if not provided.
6942
7398
  * @param tokenIconUrl - Specific token icon URL (optional)
6943
7399
  * @param ledgerId - Ledger identifier for fallback
6944
- * @returns Icon URL or empty string
7400
+ * @returns Icon URL, or empty string.
6945
7401
  */
6946
7402
  declare function getTokenIcon(tokenIconUrl: string | undefined, ledgerId: string): string;
6947
7403
 
6948
- export { AccountActionsComponent, AccountFilterComponent, AccountFormattingService, AccountGroupingService, AccountListComponent, AccountSelectorComponent, AccountSelectorService, BaseWalletProvider, ChannelClientService, ChromeExtensionTransport, DEFAULT_LEDGER_ICONS, DEFAULT_WALLET_URL, HederaSigner, HederaTransactionBuilderService, HsuiteNativeProvider, HsuiteWalletModule, LEDGER_COLORS, LEDGER_NAMES, LoggerService, P2PNativeProvider, P2PSessionManager, SignerFactory, TransactionService, UnifiedWalletService, WalletAccountDisplayComponent, WalletConnectButtonComponent, WalletConnectClientManager, WalletConnectPromptComponent, WalletConnectSessionStore, WalletConnectSigningOrchestrator, WalletConnectV2Provider, WalletConnectedDirective, WalletConnectedGuardComponent, WalletConnectionModalComponent, WalletContextDirective, WalletContextService, WalletErrorHandler, WalletEventBus, WalletEventsDirective, WalletSessionDisplayComponent, WalletTransactionStatusComponent, XrplSigner, XrplTransactionBuilderService, getExtensionVersion, getLedgerColor, getLedgerIcon, getLedgerName, getTokenIcon, isExtensionInstalled, isHsuiteNativeConfig, isWalletConnectV2Config, provideWalletErrorHandler, scaleHederaAmountToBaseUnits };
6949
- export type { AccountChangeEvent, AccountCreateOptions, AccountGroupingMode, AccountItem, AccountSelectorConfig, AccountSelectorPresentationMode, AccountWithBalance, AccountsUpdateEvent, ActiveAccountData, BatchInnerTransaction, BatchInnerTransactionType, ChannelConnectConfig, ChromeExtensionTransportOptions, CompactHeaderFormat, CompactHeaderSize, ConnectionConfig, ConnectionEvent, ConnectionStatus, CreateOfferOptions, CreateOfferResult, DisconnectionEvent, HederaKeyConfig, HsuiteNativeConfig, IWalletConnectSigner, LedgerGroup$1 as LedgerGroup, MobileNativeConfig, NetworkGroup, P2PConnectionState, P2PNativeConnectionState, P2PSession, PairingOfferResult, ProtocolGroup, ProviderErrorEvent, ProviderMetadata, ProviderStatusEvent, ProviderType, SelectedAccountData, SessionEvent, SessionMetadata, SignMessageOptions, SignMessageResult, SignResult, SignTransactionOptions, SignerContext, SignerOperationParams, SigningOrchestratorConfig, StoredSessionData, SubmitResult, SubmitTransactionOptions, TokenCreateOptions, TopicCreateOptions, UnifiedAccount, WCAppMetadata, WalletConnectSession, WalletConnectSignerConfig, WalletConnectV2Config, WalletContext, WalletErrorHandlerConfig, WalletSession };
7404
+ export { ACTIVE_ACCOUNT_SOURCE, AccountActionsComponent, AccountFilterComponent, AccountFormattingService, AccountGroupingService, AccountListComponent, AccountSelectorComponent, AccountSelectorService, BaseWalletProvider, ChannelClientService, ChromeExtensionTransport, DEFAULT_LEDGER_ICONS, DEFAULT_WALLET_URL, HSUITE_AUTH_HEADER, HSUITE_LEDGER_HEADER, HederaSigner, HederaTransactionBuilderService, HsuiteAuthInterceptor, HsuiteNativeProvider, HsuiteWalletModule, LEDGER_COLORS, LEDGER_ICON_NAMES, LEDGER_NAMES, LedgerUIRegistry, LoggerService, P2PNativeProvider, P2PSessionManager, SMART_SESSION_CONFIG, SignerFactory, SmartSessionService, TransactionService, UnifiedWalletService, WalletAccountDisplayComponent, WalletConnectButtonComponent, WalletConnectClientManager, WalletConnectPromptComponent, WalletConnectSessionStore, WalletConnectSigningOrchestrator, WalletConnectV2Provider, WalletConnectedDirective, WalletConnectedGuardComponent, WalletConnectionModalComponent, WalletContextDirective, WalletContextService, WalletErrorHandler, WalletEventBus, WalletEventsDirective, WalletSessionDisplayComponent, WalletTransactionStatusComponent, XrplSigner, XrplTransactionBuilderService, getExtensionVersion, getLedgerColor, getLedgerIcon, getLedgerName, getTokenIcon, hsuiteAuthInterceptor, isExtensionInstalled, isHsuiteNativeConfig, isWalletConnectV2Config, provideWalletErrorHandler, registerLedgerIcons, scaleHederaAmountToBaseUnits };
7405
+ export type { AccountChangeEvent, AccountCreateOptions, AccountGroupingMode, AccountItem, AccountSelectorConfig, AccountSelectorPresentationMode, AccountWithBalance, AccountsUpdateEvent, ActiveAccountData, ActiveAccountSource, BatchInnerTransaction, BatchInnerTransactionType, ChannelConnectConfig, ChromeExtensionTransportOptions, CompactHeaderFormat, CompactHeaderSize, ConnectionConfig, ConnectionEvent, ConnectionStatus, CreateOfferOptions, CreateOfferResult, DisconnectionEvent, HederaKeyConfig, HsuiteNativeConfig, IWalletConnectSigner, LedgerGroup$1 as LedgerGroup, LedgerUiDescriptor, MobileNativeConfig, NetworkGroup, P2PConnectionState, P2PNativeConnectionState, P2PSession, PairingOfferResult, ProtocolGroup, ProviderErrorEvent, ProviderMetadata, ProviderStatusEvent, ProviderType, SelectedAccountData, SessionEvent, SessionMetadata, SignMessageOptions, SignMessageResult, SignResult, SignTransactionOptions, SignerContext, SignerOperationParams, SigningOrchestratorConfig, SmartHostChallenge, SmartHostHealth, SmartHostVerifyRequest, SmartHostVerifyResponse, SmartSessionConfig, StoredSessionData, SubmitResult, SubmitTransactionOptions, TokenCreateOptions, TopicCreateOptions, UnifiedAccount, WCAppMetadata, WalletConnectSession, WalletConnectSignerConfig, WalletConnectV2Config, WalletContext, WalletErrorHandlerConfig, WalletSession };