@onekeyfe/hwk-trezor-adapter 1.2.2-alpha.9 → 1.2.3-alpha.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/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { IHardwareWallet, IConnector, TransportType, DeviceInfo, Response, ChainCapability, AllNetworkGetAddressParams, AllNetworkAddressResponse, DeviceAuthenticityParams, DeviceAuthenticityResult, TrezorDeviceSettingsParams, TrezorBrightnessParams, TrezorChangePinParams, UiResponseEvent, ChainForFingerprint, ICommonCallParams, EvmGetAddressParams, EvmAddress, EvmSignTxTrezorParams, EvmSignedTx, EvmSignMsgParams, EvmSignature, EvmSignTypedDataParams, BtcGetAddressParams, BtcAddress, BtcGetPublicKeyParams, BtcPublicKey, BtcSignTxParams, BtcSignedTx, BtcSignPsbtParams, BtcSignedPsbt, BtcSignMsgParams, BtcSignature, SolGetAddressParams, SolAddress, SolSignTxParams, SolSignedTx, SolSignMsgParams, SolSignature, TronGetAddressParams, TronAddress, TronSignTxParams, TronSignedTx, TronSignMsgParams, TronSignature, HardwareEventMap, DeviceEventListener, EvmEthereumDefinitions, ConnectorDevice } from '@onekeyfe/hwk-adapter-core';
1
+ import { IHardwareWallet, IConnector, TransportType, SearchDevicesOptions, DeviceInfo, DeviceSearchTarget, ConnectionTarget, Response, ChainCapability, AllNetworkGetAddressParams, AllNetworkAddressResponse, IDeviceManagerOperationContext, DeviceAuthenticityParams, DeviceAuthenticityResult, TrezorDeviceSettingsParams, TrezorBrightnessParams, TrezorChangePinParams, UiResponseEvent, ChainForFingerprint, ICommonCallParams, EvmGetAddressParams, EvmAddress, EvmSignTxTrezorParams, EvmSignedTx, EvmSignMsgParams, EvmSignature, EvmSignTypedDataParams, BtcGetAddressParams, BtcAddress, BtcGetPublicKeyParams, BtcPublicKey, BtcSignTxParams, BtcSignedTx, BtcSignPsbtParams, BtcSignedPsbt, BtcSignMsgParams, BtcSignature, SolGetAddressParams, SolAddress, SolSignTxParams, SolSignedTx, SolSignMsgParams, SolSignature, TronGetAddressParams, TronAddress, TronSignTxParams, TronSignedTx, TronSignMsgParams, TronSignature, HardwareEventMap, DeviceEventListener, EvmEthereumDefinitions, ConnectorDevice } from '@onekeyfe/hwk-adapter-core';
2
2
 
3
3
  type TrezorPassphraseCallParams = {
4
4
  passphraseState?: string;
@@ -6,10 +6,20 @@ type TrezorPassphraseCallParams = {
6
6
  };
7
7
  type TrezorCallParams<T> = (T & ICommonCallParams & TrezorPassphraseCallParams) | null | undefined;
8
8
  type TrezorCommonParams = (ICommonCallParams & TrezorPassphraseCallParams) | null | undefined;
9
+ interface TrezorKnownDeviceConnection {
10
+ deviceId: string;
11
+ usbConnectId?: string;
12
+ bleConnectId?: string;
13
+ }
14
+ interface TrezorAdapterOptions {
15
+ /** Persisted endpoints are routing hints, never proof of device identity. */
16
+ knownDeviceConnections?: readonly TrezorKnownDeviceConnection[];
17
+ }
9
18
  declare class TrezorAdapter implements IHardwareWallet {
10
19
  readonly vendor: "trezor";
11
20
  private readonly _connector;
12
21
  private readonly _emitter;
22
+ private readonly _interactions;
13
23
  private readonly _devices;
14
24
  private readonly _sessions;
15
25
  private readonly _connectingPromises;
@@ -17,8 +27,16 @@ declare class TrezorAdapter implements IHardwareWallet {
17
27
  private readonly _uiRegistry;
18
28
  private readonly _passphraseRequestContextByConnectId;
19
29
  private readonly _verifiedPassphraseSessionsByConnectId;
30
+ /** Raw connector calls that outlive an aborted caller, keyed by session. */
31
+ private readonly _unsettledConnectorOperations;
32
+ private readonly _connectorIdleWaiters;
33
+ private _resetPromise;
34
+ private _connectorTeardownTail;
35
+ private _pendingConnectorTeardowns;
36
+ private _stateGeneration;
20
37
  private readonly _jobQueue;
21
- constructor(connector: IConnector);
38
+ private readonly _knownDeviceConnections;
39
+ constructor(connector: IConnector, options?: TrezorAdapterOptions);
22
40
  private static _createDeviceBusyError;
23
41
  /**
24
42
  * Split a Trezor-only `passphraseState` routing hint off the chain params so
@@ -41,19 +59,17 @@ declare class TrezorAdapter implements IHardwareWallet {
41
59
  * selected is gone (the device evicted it from its limited slot pool). The
42
60
  * caller drops the stale cache entry and recreates from scratch.
43
61
  *
44
- * NOTE: the exact eviction code still needs real-device confirmation match
45
- * conservatively so a genuine error isn't mistaken for an evicted session
46
- * (which would silently re-prompt the passphrase).
62
+ * Match only the protocol's explicit unallocated-channel code. Guessing from
63
+ * an error message could replay a request after an unrelated business error.
47
64
  */
48
65
  private static _isStaleSessionError;
49
66
  private static _errorCode;
50
67
  private static _isConnectionUnavailableError;
51
68
  private static _isRecoverableProtocolResidueError;
52
69
  /**
53
- * Race a promise against an abort signal. Copied from LedgerAdapter:
54
- * IConnector.call() can't actually be cancelled at the protocol level, but
55
- * the caller gets the abort immediately and the underlying work completes
56
- * uselessly in the background.
70
+ * Race a promise against an abort signal. IConnector.call() can't actually
71
+ * be cancelled at the protocol level, so the caller gets the abort while the
72
+ * adapter keeps the transport exclusively reserved until the raw call drains.
57
73
  */
58
74
  private static _abortable;
59
75
  private _connectSession;
@@ -66,17 +82,20 @@ declare class TrezorAdapter implements IHardwareWallet {
66
82
  * error flows. Aborts active jobs and releases UI waits.
67
83
  */
68
84
  resetState(): void;
85
+ private _resetStateAndDisconnectSessions;
69
86
  getAvailableTransports(): TransportType[];
70
87
  switchTransport(_type: TransportType): Promise<void>;
71
- searchDevices(options?: {
72
- waitForAllTransports?: boolean;
73
- }): Promise<DeviceInfo[]>;
74
- connectDevice(connectId: string): Promise<Response<string>>;
75
- disconnectDevice(connectId: string): Promise<void>;
76
- getDeviceInfo(connectId: string, deviceId: string): Promise<Response<DeviceInfo>>;
88
+ searchDevices(options?: SearchDevicesOptions): Promise<DeviceInfo[]>;
89
+ private _searchDevices;
90
+ searchDeviceTargets(options?: SearchDevicesOptions): Promise<DeviceSearchTarget[]>;
91
+ listConnectionTargets(options?: SearchDevicesOptions): Promise<ConnectionTarget[]>;
92
+ connectDevice(searchTargetId: string): Promise<Response<string>>;
93
+ releaseInteraction(interactionId: string): Promise<void>;
94
+ private _releaseInteractionConnection;
95
+ getDeviceInfo(connectIdOrInteractionId: string, deviceId: string): Promise<Response<DeviceInfo>>;
77
96
  getSupportedChains(): ChainCapability[];
78
97
  allNetworkGetAddress(connectId: string, deviceId: string, params: AllNetworkGetAddressParams): Promise<Response<AllNetworkAddressResponse[]>>;
79
- getFeatures(connectId: string): Promise<Response<Record<string, unknown>>>;
98
+ getFeatures(connectId: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
80
99
  /**
81
100
  * Device authenticity attestation. Sends a host-generated challenge, has the
82
101
  * device sign it with its secure-element key, then verifies the returned
@@ -92,10 +111,10 @@ declare class TrezorAdapter implements IHardwareWallet {
92
111
  * enable it in a production accounting flow, it lets an emulator mint any id.
93
112
  */
94
113
  verifyDeviceAuthenticity(connectId: string, params?: DeviceAuthenticityParams): Promise<Response<DeviceAuthenticityResult>>;
95
- deviceSettings(connectId: string, params: TrezorDeviceSettingsParams): Promise<Response<Record<string, unknown>>>;
96
- setBrightness(connectId: string, params?: TrezorBrightnessParams): Promise<Response<Record<string, unknown>>>;
97
- changePin(connectId: string, params?: TrezorChangePinParams): Promise<Response<Record<string, unknown>>>;
98
- wipeDevice(connectId: string): Promise<Response<Record<string, unknown>>>;
114
+ deviceSettings(connectId: string, params: TrezorDeviceSettingsParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
115
+ setBrightness(connectId: string, params?: TrezorBrightnessParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
116
+ changePin(connectId: string, params?: TrezorChangePinParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
117
+ wipeDevice(connectId: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
99
118
  private _getTrezorDeviceId;
100
119
  cancel(connectId?: string): void;
101
120
  /**
@@ -114,7 +133,7 @@ declare class TrezorAdapter implements IHardwareWallet {
114
133
  * Unlike Ledger (which hashes a per-chain address), it is chain-global, so
115
134
  * `chain` is accepted for API parity but ignored.
116
135
  */
117
- getChainFingerprint(connectId: string, _deviceId: string, _chain: ChainForFingerprint): Promise<Response<string>>;
136
+ getChainFingerprint(connectId: string, deviceId: string, _chain: ChainForFingerprint): Promise<Response<string>>;
118
137
  /**
119
138
  * Resolve the active passphrase wallet identity (`passphraseState`).
120
139
  * See {@link IHardwareWallet.getPassphraseState} for the discover/verify
@@ -123,7 +142,7 @@ declare class TrezorAdapter implements IHardwareWallet {
123
142
  * can't interleave with a chain call on the same device (which would desync
124
143
  * the THP session selection).
125
144
  */
126
- getPassphraseState(connectId: string, passphraseState?: string): Promise<Response<string | null>>;
145
+ getPassphraseState(connectId: string, passphraseState?: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<string | null>>;
127
146
  evmGetAddress(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmGetAddressParams>): Promise<Response<EvmAddress>>;
128
147
  evmSignTransaction(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmSignTxTrezorParams>): Promise<Response<EvmSignedTx>>;
129
148
  evmSignMessage(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmSignMsgParams>): Promise<Response<EvmSignature>>;
@@ -143,7 +162,12 @@ declare class TrezorAdapter implements IHardwareWallet {
143
162
  tronSignTransaction(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<TronSignTxParams>): Promise<Response<TronSignedTx>>;
144
163
  tronSignMessage(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<TronSignMsgParams>): Promise<Response<TronSignature>>;
145
164
  private static _unwrapConnectorResult;
146
- private static _callConnector;
165
+ private _callConnector;
166
+ private _assertConnectorIdle;
167
+ private _runConnectorTeardown;
168
+ private _releaseProvisionalConnection;
169
+ private _waitForConnectorOperationsToDrain;
170
+ private _retainConnectorOperation;
147
171
  private static _normalizeAllNetworkItem;
148
172
  private static _getItemDeviceId;
149
173
  private _callAllNetworkMethod;
@@ -156,6 +180,9 @@ declare class TrezorAdapter implements IHardwareWallet {
156
180
  private _callMethod;
157
181
  private _callWithRetry;
158
182
  private _ensureSession;
183
+ private _resolveExpectedDeviceConnectId;
184
+ private _rememberVerifiedConnection;
185
+ private _emitVerifiedBinding;
159
186
  /**
160
187
  * Pin the device's active wallet session to `passphraseState` (the target
161
188
  * wallet identity) before a wallet-bound op. THP has an app-session id; v1
@@ -413,4 +440,4 @@ declare function isTrezorBleServiceUuid(uuid: string): boolean;
413
440
  declare function isTrezorBleDescriptor(descriptor: TrezorBleDescriptor): boolean;
414
441
  declare function resolveTrezorBleConnectId(descriptor: TrezorBleDescriptor): string;
415
442
 
416
- export { type AuthenticateDeviceResult, type AuthenticityProof, type BuildEthereumDefinitionsForPathParams, type BuildEthereumDefinitionsForSignTxParams, DEFAULT_ETHEREUM_DEFINITIONS_BASE_URL, DEFAULT_SOLANA_TOKEN_DEFINITION_BASE_URL, type FetchEthereumDefinitionsParams, type FetchLike, type FetchSolanaTokenDefinitionParams, type SdkEvent, type SdkEventListener, type SdkLogEvent, TREZOR_BLE_PACKET_SIZE, TREZOR_BLE_SUPPORTED_MODELS, TREZOR_BLE_UUIDS, TREZOR_SAFE_7_MODEL, TrezorAdapter, type TrezorBleDescriptor, type TrezorBleTransport, type TrezorBleTransportFactory, type TrezorConnectedDevice, type TrezorConnectorDevice, authenticateDeviceFromProof, buildEthereumDefinitionsForPath, buildEthereumDefinitionsForSignTx, fetchEthereumDefinitions, fetchSolanaTokenDefinition, getRequiredDeviceAuthenticityLayers, getSlip44FromPath, isTrezorBleDescriptor, isTrezorBleServiceUuid, isTrezorBleSupportedModel, isTrezorSafe7BleDescriptor, isTrezorSafe7BleName, normalizeTrezorBleUuid, offSdkEvent, onSdkEvent, resolveTrezorBleConnectId };
443
+ export { type AuthenticateDeviceResult, type AuthenticityProof, type BuildEthereumDefinitionsForPathParams, type BuildEthereumDefinitionsForSignTxParams, DEFAULT_ETHEREUM_DEFINITIONS_BASE_URL, DEFAULT_SOLANA_TOKEN_DEFINITION_BASE_URL, type FetchEthereumDefinitionsParams, type FetchLike, type FetchSolanaTokenDefinitionParams, type SdkEvent, type SdkEventListener, type SdkLogEvent, TREZOR_BLE_PACKET_SIZE, TREZOR_BLE_SUPPORTED_MODELS, TREZOR_BLE_UUIDS, TREZOR_SAFE_7_MODEL, TrezorAdapter, type TrezorAdapterOptions, type TrezorBleDescriptor, type TrezorBleTransport, type TrezorBleTransportFactory, type TrezorConnectedDevice, type TrezorConnectorDevice, type TrezorKnownDeviceConnection, authenticateDeviceFromProof, buildEthereumDefinitionsForPath, buildEthereumDefinitionsForSignTx, fetchEthereumDefinitions, fetchSolanaTokenDefinition, getRequiredDeviceAuthenticityLayers, getSlip44FromPath, isTrezorBleDescriptor, isTrezorBleServiceUuid, isTrezorBleSupportedModel, isTrezorSafe7BleDescriptor, isTrezorSafe7BleName, normalizeTrezorBleUuid, offSdkEvent, onSdkEvent, resolveTrezorBleConnectId };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { IHardwareWallet, IConnector, TransportType, DeviceInfo, Response, ChainCapability, AllNetworkGetAddressParams, AllNetworkAddressResponse, DeviceAuthenticityParams, DeviceAuthenticityResult, TrezorDeviceSettingsParams, TrezorBrightnessParams, TrezorChangePinParams, UiResponseEvent, ChainForFingerprint, ICommonCallParams, EvmGetAddressParams, EvmAddress, EvmSignTxTrezorParams, EvmSignedTx, EvmSignMsgParams, EvmSignature, EvmSignTypedDataParams, BtcGetAddressParams, BtcAddress, BtcGetPublicKeyParams, BtcPublicKey, BtcSignTxParams, BtcSignedTx, BtcSignPsbtParams, BtcSignedPsbt, BtcSignMsgParams, BtcSignature, SolGetAddressParams, SolAddress, SolSignTxParams, SolSignedTx, SolSignMsgParams, SolSignature, TronGetAddressParams, TronAddress, TronSignTxParams, TronSignedTx, TronSignMsgParams, TronSignature, HardwareEventMap, DeviceEventListener, EvmEthereumDefinitions, ConnectorDevice } from '@onekeyfe/hwk-adapter-core';
1
+ import { IHardwareWallet, IConnector, TransportType, SearchDevicesOptions, DeviceInfo, DeviceSearchTarget, ConnectionTarget, Response, ChainCapability, AllNetworkGetAddressParams, AllNetworkAddressResponse, IDeviceManagerOperationContext, DeviceAuthenticityParams, DeviceAuthenticityResult, TrezorDeviceSettingsParams, TrezorBrightnessParams, TrezorChangePinParams, UiResponseEvent, ChainForFingerprint, ICommonCallParams, EvmGetAddressParams, EvmAddress, EvmSignTxTrezorParams, EvmSignedTx, EvmSignMsgParams, EvmSignature, EvmSignTypedDataParams, BtcGetAddressParams, BtcAddress, BtcGetPublicKeyParams, BtcPublicKey, BtcSignTxParams, BtcSignedTx, BtcSignPsbtParams, BtcSignedPsbt, BtcSignMsgParams, BtcSignature, SolGetAddressParams, SolAddress, SolSignTxParams, SolSignedTx, SolSignMsgParams, SolSignature, TronGetAddressParams, TronAddress, TronSignTxParams, TronSignedTx, TronSignMsgParams, TronSignature, HardwareEventMap, DeviceEventListener, EvmEthereumDefinitions, ConnectorDevice } from '@onekeyfe/hwk-adapter-core';
2
2
 
3
3
  type TrezorPassphraseCallParams = {
4
4
  passphraseState?: string;
@@ -6,10 +6,20 @@ type TrezorPassphraseCallParams = {
6
6
  };
7
7
  type TrezorCallParams<T> = (T & ICommonCallParams & TrezorPassphraseCallParams) | null | undefined;
8
8
  type TrezorCommonParams = (ICommonCallParams & TrezorPassphraseCallParams) | null | undefined;
9
+ interface TrezorKnownDeviceConnection {
10
+ deviceId: string;
11
+ usbConnectId?: string;
12
+ bleConnectId?: string;
13
+ }
14
+ interface TrezorAdapterOptions {
15
+ /** Persisted endpoints are routing hints, never proof of device identity. */
16
+ knownDeviceConnections?: readonly TrezorKnownDeviceConnection[];
17
+ }
9
18
  declare class TrezorAdapter implements IHardwareWallet {
10
19
  readonly vendor: "trezor";
11
20
  private readonly _connector;
12
21
  private readonly _emitter;
22
+ private readonly _interactions;
13
23
  private readonly _devices;
14
24
  private readonly _sessions;
15
25
  private readonly _connectingPromises;
@@ -17,8 +27,16 @@ declare class TrezorAdapter implements IHardwareWallet {
17
27
  private readonly _uiRegistry;
18
28
  private readonly _passphraseRequestContextByConnectId;
19
29
  private readonly _verifiedPassphraseSessionsByConnectId;
30
+ /** Raw connector calls that outlive an aborted caller, keyed by session. */
31
+ private readonly _unsettledConnectorOperations;
32
+ private readonly _connectorIdleWaiters;
33
+ private _resetPromise;
34
+ private _connectorTeardownTail;
35
+ private _pendingConnectorTeardowns;
36
+ private _stateGeneration;
20
37
  private readonly _jobQueue;
21
- constructor(connector: IConnector);
38
+ private readonly _knownDeviceConnections;
39
+ constructor(connector: IConnector, options?: TrezorAdapterOptions);
22
40
  private static _createDeviceBusyError;
23
41
  /**
24
42
  * Split a Trezor-only `passphraseState` routing hint off the chain params so
@@ -41,19 +59,17 @@ declare class TrezorAdapter implements IHardwareWallet {
41
59
  * selected is gone (the device evicted it from its limited slot pool). The
42
60
  * caller drops the stale cache entry and recreates from scratch.
43
61
  *
44
- * NOTE: the exact eviction code still needs real-device confirmation match
45
- * conservatively so a genuine error isn't mistaken for an evicted session
46
- * (which would silently re-prompt the passphrase).
62
+ * Match only the protocol's explicit unallocated-channel code. Guessing from
63
+ * an error message could replay a request after an unrelated business error.
47
64
  */
48
65
  private static _isStaleSessionError;
49
66
  private static _errorCode;
50
67
  private static _isConnectionUnavailableError;
51
68
  private static _isRecoverableProtocolResidueError;
52
69
  /**
53
- * Race a promise against an abort signal. Copied from LedgerAdapter:
54
- * IConnector.call() can't actually be cancelled at the protocol level, but
55
- * the caller gets the abort immediately and the underlying work completes
56
- * uselessly in the background.
70
+ * Race a promise against an abort signal. IConnector.call() can't actually
71
+ * be cancelled at the protocol level, so the caller gets the abort while the
72
+ * adapter keeps the transport exclusively reserved until the raw call drains.
57
73
  */
58
74
  private static _abortable;
59
75
  private _connectSession;
@@ -66,17 +82,20 @@ declare class TrezorAdapter implements IHardwareWallet {
66
82
  * error flows. Aborts active jobs and releases UI waits.
67
83
  */
68
84
  resetState(): void;
85
+ private _resetStateAndDisconnectSessions;
69
86
  getAvailableTransports(): TransportType[];
70
87
  switchTransport(_type: TransportType): Promise<void>;
71
- searchDevices(options?: {
72
- waitForAllTransports?: boolean;
73
- }): Promise<DeviceInfo[]>;
74
- connectDevice(connectId: string): Promise<Response<string>>;
75
- disconnectDevice(connectId: string): Promise<void>;
76
- getDeviceInfo(connectId: string, deviceId: string): Promise<Response<DeviceInfo>>;
88
+ searchDevices(options?: SearchDevicesOptions): Promise<DeviceInfo[]>;
89
+ private _searchDevices;
90
+ searchDeviceTargets(options?: SearchDevicesOptions): Promise<DeviceSearchTarget[]>;
91
+ listConnectionTargets(options?: SearchDevicesOptions): Promise<ConnectionTarget[]>;
92
+ connectDevice(searchTargetId: string): Promise<Response<string>>;
93
+ releaseInteraction(interactionId: string): Promise<void>;
94
+ private _releaseInteractionConnection;
95
+ getDeviceInfo(connectIdOrInteractionId: string, deviceId: string): Promise<Response<DeviceInfo>>;
77
96
  getSupportedChains(): ChainCapability[];
78
97
  allNetworkGetAddress(connectId: string, deviceId: string, params: AllNetworkGetAddressParams): Promise<Response<AllNetworkAddressResponse[]>>;
79
- getFeatures(connectId: string): Promise<Response<Record<string, unknown>>>;
98
+ getFeatures(connectId: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
80
99
  /**
81
100
  * Device authenticity attestation. Sends a host-generated challenge, has the
82
101
  * device sign it with its secure-element key, then verifies the returned
@@ -92,10 +111,10 @@ declare class TrezorAdapter implements IHardwareWallet {
92
111
  * enable it in a production accounting flow, it lets an emulator mint any id.
93
112
  */
94
113
  verifyDeviceAuthenticity(connectId: string, params?: DeviceAuthenticityParams): Promise<Response<DeviceAuthenticityResult>>;
95
- deviceSettings(connectId: string, params: TrezorDeviceSettingsParams): Promise<Response<Record<string, unknown>>>;
96
- setBrightness(connectId: string, params?: TrezorBrightnessParams): Promise<Response<Record<string, unknown>>>;
97
- changePin(connectId: string, params?: TrezorChangePinParams): Promise<Response<Record<string, unknown>>>;
98
- wipeDevice(connectId: string): Promise<Response<Record<string, unknown>>>;
114
+ deviceSettings(connectId: string, params: TrezorDeviceSettingsParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
115
+ setBrightness(connectId: string, params?: TrezorBrightnessParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
116
+ changePin(connectId: string, params?: TrezorChangePinParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
117
+ wipeDevice(connectId: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
99
118
  private _getTrezorDeviceId;
100
119
  cancel(connectId?: string): void;
101
120
  /**
@@ -114,7 +133,7 @@ declare class TrezorAdapter implements IHardwareWallet {
114
133
  * Unlike Ledger (which hashes a per-chain address), it is chain-global, so
115
134
  * `chain` is accepted for API parity but ignored.
116
135
  */
117
- getChainFingerprint(connectId: string, _deviceId: string, _chain: ChainForFingerprint): Promise<Response<string>>;
136
+ getChainFingerprint(connectId: string, deviceId: string, _chain: ChainForFingerprint): Promise<Response<string>>;
118
137
  /**
119
138
  * Resolve the active passphrase wallet identity (`passphraseState`).
120
139
  * See {@link IHardwareWallet.getPassphraseState} for the discover/verify
@@ -123,7 +142,7 @@ declare class TrezorAdapter implements IHardwareWallet {
123
142
  * can't interleave with a chain call on the same device (which would desync
124
143
  * the THP session selection).
125
144
  */
126
- getPassphraseState(connectId: string, passphraseState?: string): Promise<Response<string | null>>;
145
+ getPassphraseState(connectId: string, passphraseState?: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<string | null>>;
127
146
  evmGetAddress(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmGetAddressParams>): Promise<Response<EvmAddress>>;
128
147
  evmSignTransaction(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmSignTxTrezorParams>): Promise<Response<EvmSignedTx>>;
129
148
  evmSignMessage(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmSignMsgParams>): Promise<Response<EvmSignature>>;
@@ -143,7 +162,12 @@ declare class TrezorAdapter implements IHardwareWallet {
143
162
  tronSignTransaction(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<TronSignTxParams>): Promise<Response<TronSignedTx>>;
144
163
  tronSignMessage(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<TronSignMsgParams>): Promise<Response<TronSignature>>;
145
164
  private static _unwrapConnectorResult;
146
- private static _callConnector;
165
+ private _callConnector;
166
+ private _assertConnectorIdle;
167
+ private _runConnectorTeardown;
168
+ private _releaseProvisionalConnection;
169
+ private _waitForConnectorOperationsToDrain;
170
+ private _retainConnectorOperation;
147
171
  private static _normalizeAllNetworkItem;
148
172
  private static _getItemDeviceId;
149
173
  private _callAllNetworkMethod;
@@ -156,6 +180,9 @@ declare class TrezorAdapter implements IHardwareWallet {
156
180
  private _callMethod;
157
181
  private _callWithRetry;
158
182
  private _ensureSession;
183
+ private _resolveExpectedDeviceConnectId;
184
+ private _rememberVerifiedConnection;
185
+ private _emitVerifiedBinding;
159
186
  /**
160
187
  * Pin the device's active wallet session to `passphraseState` (the target
161
188
  * wallet identity) before a wallet-bound op. THP has an app-session id; v1
@@ -413,4 +440,4 @@ declare function isTrezorBleServiceUuid(uuid: string): boolean;
413
440
  declare function isTrezorBleDescriptor(descriptor: TrezorBleDescriptor): boolean;
414
441
  declare function resolveTrezorBleConnectId(descriptor: TrezorBleDescriptor): string;
415
442
 
416
- export { type AuthenticateDeviceResult, type AuthenticityProof, type BuildEthereumDefinitionsForPathParams, type BuildEthereumDefinitionsForSignTxParams, DEFAULT_ETHEREUM_DEFINITIONS_BASE_URL, DEFAULT_SOLANA_TOKEN_DEFINITION_BASE_URL, type FetchEthereumDefinitionsParams, type FetchLike, type FetchSolanaTokenDefinitionParams, type SdkEvent, type SdkEventListener, type SdkLogEvent, TREZOR_BLE_PACKET_SIZE, TREZOR_BLE_SUPPORTED_MODELS, TREZOR_BLE_UUIDS, TREZOR_SAFE_7_MODEL, TrezorAdapter, type TrezorBleDescriptor, type TrezorBleTransport, type TrezorBleTransportFactory, type TrezorConnectedDevice, type TrezorConnectorDevice, authenticateDeviceFromProof, buildEthereumDefinitionsForPath, buildEthereumDefinitionsForSignTx, fetchEthereumDefinitions, fetchSolanaTokenDefinition, getRequiredDeviceAuthenticityLayers, getSlip44FromPath, isTrezorBleDescriptor, isTrezorBleServiceUuid, isTrezorBleSupportedModel, isTrezorSafe7BleDescriptor, isTrezorSafe7BleName, normalizeTrezorBleUuid, offSdkEvent, onSdkEvent, resolveTrezorBleConnectId };
443
+ export { type AuthenticateDeviceResult, type AuthenticityProof, type BuildEthereumDefinitionsForPathParams, type BuildEthereumDefinitionsForSignTxParams, DEFAULT_ETHEREUM_DEFINITIONS_BASE_URL, DEFAULT_SOLANA_TOKEN_DEFINITION_BASE_URL, type FetchEthereumDefinitionsParams, type FetchLike, type FetchSolanaTokenDefinitionParams, type SdkEvent, type SdkEventListener, type SdkLogEvent, TREZOR_BLE_PACKET_SIZE, TREZOR_BLE_SUPPORTED_MODELS, TREZOR_BLE_UUIDS, TREZOR_SAFE_7_MODEL, TrezorAdapter, type TrezorAdapterOptions, type TrezorBleDescriptor, type TrezorBleTransport, type TrezorBleTransportFactory, type TrezorConnectedDevice, type TrezorConnectorDevice, type TrezorKnownDeviceConnection, authenticateDeviceFromProof, buildEthereumDefinitionsForPath, buildEthereumDefinitionsForSignTx, fetchEthereumDefinitions, fetchSolanaTokenDefinition, getRequiredDeviceAuthenticityLayers, getSlip44FromPath, isTrezorBleDescriptor, isTrezorBleServiceUuid, isTrezorBleSupportedModel, isTrezorSafe7BleDescriptor, isTrezorSafe7BleName, normalizeTrezorBleUuid, offSdkEvent, onSdkEvent, resolveTrezorBleConnectId };