@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.
- package/coverage/coverage-summary.json +53 -49
- package/coverage/index.html +100 -100
- package/coverage/lcov-report/index.html +100 -100
- package/coverage/lcov-report/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-actions/index.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-filter/index.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-formatting.service.ts.html +13 -19
- package/coverage/lcov-report/lib/components/account-selector/account-grouping.service.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-list/index.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-selector.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/account-selector.service.ts.html +1 -1
- package/coverage/lcov-report/lib/components/account-selector/index.html +5 -5
- package/coverage/lcov-report/lib/components/wallet-account-display/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-account-display/wallet-account-display.component.ts.html +10 -10
- package/coverage/lcov-report/lib/components/wallet-connect-button/index.html +21 -21
- package/coverage/lcov-report/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +475 -451
- package/coverage/lcov-report/lib/components/wallet-connect-prompt/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connected-guard/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +148 -148
- package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/index.html +17 -17
- package/coverage/lcov-report/lib/components/wallet-connection-modal/index.html +21 -21
- package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/index.html +17 -17
- package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +838 -838
- package/coverage/lcov-report/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +1230 -987
- package/coverage/lcov-report/lib/components/wallet-session-display/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-transaction-status/index.html +1 -1
- package/coverage/lcov-report/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
- package/coverage/lcov-report/lib/directives/index.html +1 -1
- package/coverage/lcov-report/lib/directives/wallet-connected.directive.ts.html +1 -1
- package/coverage/lcov-report/lib/directives/wallet-context.directive.ts.html +1 -1
- package/coverage/lcov-report/lib/directives/wallet-events.directive.ts.html +1 -1
- package/coverage/lcov-report/lib/hsuite-wallet.module.ts.html +1 -1
- package/coverage/lcov-report/lib/index.html +1 -1
- package/coverage/lcov-report/lib/models/connection-config.model.ts.html +1 -1
- package/coverage/lcov-report/lib/models/index.html +7 -7
- package/coverage/lcov-report/lib/models/provider-types.ts.html +11 -5
- package/coverage/lcov-report/lib/providers/base-wallet-provider.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/hsuite-native/channel-client.service.ts.html +9 -6
- package/coverage/lcov-report/lib/providers/hsuite-native/index.html +10 -10
- package/coverage/lcov-report/lib/providers/hsuite-native-provider.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/index.html +1 -1
- package/coverage/lcov-report/lib/providers/p2p-native/index.html +7 -7
- package/coverage/lcov-report/lib/providers/p2p-native/p2p-native.provider.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/p2p-native/p2p-session-manager.ts.html +7 -4
- package/coverage/lcov-report/lib/providers/wallet-error-handler.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/walletconnect/core/index.html +10 -10
- package/coverage/lcov-report/lib/providers/walletconnect/core/session-health.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-provider.ts.html +10 -7
- package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/walletconnect/signers/hedera-signer.ts.html +1 -1
- package/coverage/lcov-report/lib/providers/walletconnect/signers/index.html +1 -1
- package/coverage/lcov-report/lib/providers/walletconnect/signers/signer-factory.ts.html +49 -49
- package/coverage/lcov-report/lib/providers/walletconnect/signers/xrpl-signer.ts.html +1 -1
- package/coverage/lcov-report/lib/services/hsuite-auth.interceptor.ts.html +568 -0
- package/coverage/lcov-report/lib/services/index.html +50 -20
- package/coverage/lcov-report/lib/services/logger.service.ts.html +4 -4
- package/coverage/lcov-report/lib/services/smart-session.service.ts.html +1264 -0
- package/coverage/lcov-report/lib/services/transaction-builders/active-account-source.ts.html +250 -0
- package/coverage/lcov-report/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
- package/coverage/lcov-report/lib/services/transaction-builders/hedera-amount-utils.ts.html +1 -1
- package/coverage/lcov-report/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +318 -318
- package/coverage/lcov-report/lib/services/transaction-builders/index.html +24 -9
- package/coverage/lcov-report/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1 -1
- package/coverage/lcov-report/lib/services/transaction.service.ts.html +7 -10
- package/coverage/lcov-report/lib/services/unified-wallet.service.ts.html +9 -12
- package/coverage/lcov-report/lib/services/wallet-context.service.ts.html +1 -1
- package/coverage/lcov-report/lib/services/wallet-event-bus.service.ts.html +1 -1
- package/coverage/lcov-report/lib/services/wallet-providers.service.ts.html +4 -7
- package/coverage/lcov-report/lib/transports/chrome-extension-transport.ts.html +1 -1
- package/coverage/lcov-report/lib/transports/index.html +1 -1
- package/coverage/lcov-report/lib/utils/index.html +36 -21
- package/coverage/lcov-report/lib/utils/ledger-icons.util.ts.html +254 -161
- package/coverage/lcov-report/lib/utils/ledger-ui-registry.ts.html +676 -0
- package/coverage/lcov.info +3236 -2122
- package/coverage/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-actions/index.html +1 -1
- package/coverage/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-filter/index.html +1 -1
- package/coverage/lib/components/account-selector/account-formatting.service.ts.html +13 -19
- package/coverage/lib/components/account-selector/account-grouping.service.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-list/index.html +1 -1
- package/coverage/lib/components/account-selector/account-selector.component.ts.html +1 -1
- package/coverage/lib/components/account-selector/account-selector.service.ts.html +1 -1
- package/coverage/lib/components/account-selector/index.html +5 -5
- package/coverage/lib/components/wallet-account-display/index.html +1 -1
- package/coverage/lib/components/wallet-account-display/wallet-account-display.component.ts.html +10 -10
- package/coverage/lib/components/wallet-connect-button/index.html +21 -21
- package/coverage/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +475 -451
- package/coverage/lib/components/wallet-connect-prompt/index.html +1 -1
- package/coverage/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
- package/coverage/lib/components/wallet-connected-guard/index.html +1 -1
- package/coverage/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
- package/coverage/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +148 -148
- package/coverage/lib/components/wallet-connection-modal/connection-method-step/index.html +17 -17
- package/coverage/lib/components/wallet-connection-modal/index.html +21 -21
- package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/index.html +17 -17
- package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +838 -838
- package/coverage/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +1230 -987
- package/coverage/lib/components/wallet-session-display/index.html +1 -1
- package/coverage/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
- package/coverage/lib/components/wallet-transaction-status/index.html +1 -1
- package/coverage/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
- package/coverage/lib/directives/index.html +1 -1
- package/coverage/lib/directives/wallet-connected.directive.ts.html +1 -1
- package/coverage/lib/directives/wallet-context.directive.ts.html +1 -1
- package/coverage/lib/directives/wallet-events.directive.ts.html +1 -1
- package/coverage/lib/hsuite-wallet.module.ts.html +1 -1
- package/coverage/lib/index.html +1 -1
- package/coverage/lib/models/connection-config.model.ts.html +1 -1
- package/coverage/lib/models/index.html +7 -7
- package/coverage/lib/models/provider-types.ts.html +11 -5
- package/coverage/lib/providers/base-wallet-provider.ts.html +1 -1
- package/coverage/lib/providers/hsuite-native/channel-client.service.ts.html +9 -6
- package/coverage/lib/providers/hsuite-native/index.html +10 -10
- package/coverage/lib/providers/hsuite-native-provider.ts.html +1 -1
- package/coverage/lib/providers/index.html +1 -1
- package/coverage/lib/providers/p2p-native/index.html +7 -7
- package/coverage/lib/providers/p2p-native/p2p-native.provider.ts.html +1 -1
- package/coverage/lib/providers/p2p-native/p2p-session-manager.ts.html +7 -4
- package/coverage/lib/providers/wallet-error-handler.ts.html +1 -1
- package/coverage/lib/providers/walletconnect/core/index.html +10 -10
- package/coverage/lib/providers/walletconnect/core/session-health.ts.html +1 -1
- package/coverage/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +1 -1
- package/coverage/lib/providers/walletconnect/core/walletconnect-provider.ts.html +10 -7
- package/coverage/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +1 -1
- package/coverage/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +1 -1
- package/coverage/lib/providers/walletconnect/signers/hedera-signer.ts.html +1 -1
- package/coverage/lib/providers/walletconnect/signers/index.html +1 -1
- package/coverage/lib/providers/walletconnect/signers/signer-factory.ts.html +49 -49
- package/coverage/lib/providers/walletconnect/signers/xrpl-signer.ts.html +1 -1
- package/coverage/lib/services/hsuite-auth.interceptor.ts.html +568 -0
- package/coverage/lib/services/index.html +50 -20
- package/coverage/lib/services/logger.service.ts.html +4 -4
- package/coverage/lib/services/smart-session.service.ts.html +1264 -0
- package/coverage/lib/services/transaction-builders/active-account-source.ts.html +250 -0
- package/coverage/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
- package/coverage/lib/services/transaction-builders/hedera-amount-utils.ts.html +1 -1
- package/coverage/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +318 -318
- package/coverage/lib/services/transaction-builders/index.html +24 -9
- package/coverage/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1 -1
- package/coverage/lib/services/transaction.service.ts.html +7 -10
- package/coverage/lib/services/unified-wallet.service.ts.html +9 -12
- package/coverage/lib/services/wallet-context.service.ts.html +1 -1
- package/coverage/lib/services/wallet-event-bus.service.ts.html +1 -1
- package/coverage/lib/services/wallet-providers.service.ts.html +4 -7
- package/coverage/lib/transports/chrome-extension-transport.ts.html +1 -1
- package/coverage/lib/transports/index.html +1 -1
- package/coverage/lib/utils/index.html +36 -21
- package/coverage/lib/utils/ledger-icons.util.ts.html +254 -161
- package/coverage/lib/utils/ledger-ui-registry.ts.html +676 -0
- package/dist/fesm2022/hsuite-native-connect-angular.mjs +939 -328
- package/dist/fesm2022/hsuite-native-connect-angular.mjs.map +1 -1
- package/dist/index.d.ts +489 -33
- package/package.json +4 -4
- package/src/index.ts +26 -0
- package/src/lib/components/account-selector/account-formatting.service.ts +8 -10
- package/src/lib/components/wallet-account-display/wallet-account-display.component.ts +9 -9
- package/src/lib/components/wallet-connect-button/wallet-connect-button.component.spec.ts +89 -0
- package/src/lib/components/wallet-connect-button/wallet-connect-button.component.ts +8 -0
- package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.html +1 -6
- package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.spec.ts +173 -0
- package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts +118 -37
- package/src/lib/models/provider-types.ts +3 -1
- package/src/lib/models/unified-account.model.ts +4 -1
- package/src/lib/providers/hsuite-native/channel-client.service.ts +1 -0
- package/src/lib/providers/p2p-native/p2p-session-manager.ts +1 -0
- package/src/lib/providers/walletconnect/core/walletconnect-provider.ts +2 -1
- package/src/lib/services/hsuite-auth.interceptor.ts +159 -0
- package/src/lib/services/smart-session.service.ts +378 -0
- package/src/lib/services/transaction-builders/active-account-source.spec.ts +75 -0
- package/src/lib/services/transaction-builders/active-account-source.ts +55 -0
- package/src/lib/services/transaction-builders/hedera-transaction-builder.service.ts +4 -4
- package/src/lib/services/transaction-builders/index.ts +1 -0
- package/src/lib/services/transaction.service.ts +7 -4
- package/src/lib/services/unified-wallet.service.spec.ts +1 -1
- package/src/lib/services/unified-wallet.service.ts +2 -3
- package/src/lib/services/wallet-providers.service.ts +0 -1
- package/src/lib/utils/index.ts +1 -0
- package/src/lib/utils/ledger-icons.util.ts +61 -30
- package/src/lib/utils/ledger-ui-registry.ts +197 -0
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 {
|
|
13
|
-
|
|
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:
|
|
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
|
-
* @
|
|
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<
|
|
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:
|
|
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<
|
|
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:
|
|
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:
|
|
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<
|
|
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
|
|
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
|
-
*
|
|
6908
|
-
*
|
|
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
|
|
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
|
-
*
|
|
6924
|
-
*
|
|
6925
|
-
*
|
|
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
|
|
7385
|
+
* Get the brand colour (hex) for a ledger.
|
|
6930
7386
|
* @param ledgerId - Ledger identifier
|
|
6931
|
-
* @returns Hex
|
|
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 };
|