@onekeyfe/hwk-trezor-adapter 1.2.3-alpha.7 → 1.2.3-alpha.8
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 +64 -25
- package/dist/index.d.ts +64 -25
- package/dist/index.js +1165 -225
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1148 -208
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IHardwareWallet, IConnector, TransportType, DeviceInfo,
|
|
1
|
+
import { IHardwareWallet, IConnector, TransportType, SearchDevicesOptions, DeviceInfo, DeviceSearchTarget, ConnectionTarget, BindBleDeviceParams, Response, 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,21 @@ 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";
|
|
20
|
+
readonly cancelCapability: "stops-waiting";
|
|
11
21
|
private readonly _connector;
|
|
12
22
|
private readonly _emitter;
|
|
23
|
+
private readonly _operations;
|
|
13
24
|
private readonly _devices;
|
|
14
25
|
private readonly _sessions;
|
|
15
26
|
private readonly _connectingPromises;
|
|
@@ -17,8 +28,16 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
17
28
|
private readonly _uiRegistry;
|
|
18
29
|
private readonly _passphraseRequestContextByConnectId;
|
|
19
30
|
private readonly _verifiedPassphraseSessionsByConnectId;
|
|
31
|
+
/** Raw connector calls that outlive an aborted caller, keyed by session. */
|
|
32
|
+
private readonly _unsettledConnectorOperations;
|
|
33
|
+
private readonly _connectorIdleWaiters;
|
|
34
|
+
private _resetPromise;
|
|
35
|
+
private _connectorTeardownTail;
|
|
36
|
+
private _pendingConnectorTeardowns;
|
|
37
|
+
private _stateGeneration;
|
|
20
38
|
private readonly _jobQueue;
|
|
21
|
-
|
|
39
|
+
private readonly _knownDeviceConnections;
|
|
40
|
+
constructor(connector: IConnector, options?: TrezorAdapterOptions);
|
|
22
41
|
private static _createDeviceBusyError;
|
|
23
42
|
/**
|
|
24
43
|
* Split a Trezor-only `passphraseState` routing hint off the chain params so
|
|
@@ -41,19 +60,17 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
41
60
|
* selected is gone (the device evicted it from its limited slot pool). The
|
|
42
61
|
* caller drops the stale cache entry and recreates from scratch.
|
|
43
62
|
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* (which would silently re-prompt the passphrase).
|
|
63
|
+
* Match only the protocol's explicit unallocated-channel code. Guessing from
|
|
64
|
+
* an error message could replay a request after an unrelated business error.
|
|
47
65
|
*/
|
|
48
66
|
private static _isStaleSessionError;
|
|
49
67
|
private static _errorCode;
|
|
50
68
|
private static _isConnectionUnavailableError;
|
|
51
69
|
private static _isRecoverableProtocolResidueError;
|
|
52
70
|
/**
|
|
53
|
-
* Race a promise against an abort signal.
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* uselessly in the background.
|
|
71
|
+
* Race a promise against an abort signal. IConnector.call() can't actually
|
|
72
|
+
* be cancelled at the protocol level, so the caller gets the abort while the
|
|
73
|
+
* adapter keeps the transport exclusively reserved until the raw call drains.
|
|
57
74
|
*/
|
|
58
75
|
private static _abortable;
|
|
59
76
|
private _connectSession;
|
|
@@ -66,17 +83,20 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
66
83
|
* error flows. Aborts active jobs and releases UI waits.
|
|
67
84
|
*/
|
|
68
85
|
resetState(): void;
|
|
86
|
+
private _resetStateAndDisconnectSessions;
|
|
69
87
|
getAvailableTransports(): TransportType[];
|
|
70
88
|
switchTransport(_type: TransportType): Promise<void>;
|
|
71
|
-
searchDevices(options?:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
89
|
+
searchDevices(options?: SearchDevicesOptions): Promise<DeviceInfo[]>;
|
|
90
|
+
private _searchDevices;
|
|
91
|
+
searchDeviceTargets(options?: SearchDevicesOptions): Promise<DeviceSearchTarget[]>;
|
|
92
|
+
listConnectionTargets(options?: SearchDevicesOptions): Promise<ConnectionTarget[]>;
|
|
93
|
+
bindBleDevice(params: BindBleDeviceParams): Promise<Response<string>>;
|
|
94
|
+
connectDevice(searchTargetId: string): Promise<Response<string>>;
|
|
95
|
+
releaseOperation(operationId: string): Promise<void>;
|
|
96
|
+
private _releaseOperationConnection;
|
|
97
|
+
getDeviceInfo(connectIdOrOperationId: string, deviceId: string): Promise<Response<DeviceInfo>>;
|
|
78
98
|
allNetworkGetAddress(connectId: string, deviceId: string, params: AllNetworkGetAddressParams): Promise<Response<AllNetworkAddressResponse[]>>;
|
|
79
|
-
getFeatures(connectId: string): Promise<Response<Record<string, unknown>>>;
|
|
99
|
+
getFeatures(connectId: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
80
100
|
/**
|
|
81
101
|
* Device authenticity attestation. Sends a host-generated challenge, has the
|
|
82
102
|
* device sign it with its secure-element key, then verifies the returned
|
|
@@ -92,12 +112,20 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
92
112
|
* enable it in a production accounting flow, it lets an emulator mint any id.
|
|
93
113
|
*/
|
|
94
114
|
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>>>;
|
|
115
|
+
deviceSettings(connectId: string, params: TrezorDeviceSettingsParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
116
|
+
setBrightness(connectId: string, params?: TrezorBrightnessParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
117
|
+
changePin(connectId: string, params?: TrezorChangePinParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
118
|
+
wipeDevice(connectId: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
99
119
|
private _getTrezorDeviceId;
|
|
100
120
|
cancel(connectId?: string): void;
|
|
121
|
+
/**
|
|
122
|
+
* The operation the running device job belongs to, so a UI request raised
|
|
123
|
+
* mid-call can name it. A call pinned to an operation queues under its id
|
|
124
|
+
* (`trezorQueueKey`); a call without one queues under the connectId, and the
|
|
125
|
+
* live operation on that connection is still the owner. Only work with no
|
|
126
|
+
* operation at all comes back undefined.
|
|
127
|
+
*/
|
|
128
|
+
private _activeOperationId;
|
|
101
129
|
/**
|
|
102
130
|
* Routes to BOTH the adapter's local UI registry (preemption decisions,
|
|
103
131
|
* future SELECT_DEVICE / DEVICE_PERMISSION) AND the connector's registry
|
|
@@ -114,7 +142,7 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
114
142
|
* Unlike Ledger (which hashes a per-chain address), it is chain-global, so
|
|
115
143
|
* `chain` is accepted for API parity but ignored.
|
|
116
144
|
*/
|
|
117
|
-
getChainFingerprint(connectId: string,
|
|
145
|
+
getChainFingerprint(connectId: string, deviceId: string, _chain: ChainForFingerprint): Promise<Response<string>>;
|
|
118
146
|
/**
|
|
119
147
|
* Resolve the active passphrase wallet identity (`passphraseState`).
|
|
120
148
|
* See {@link IHardwareWallet.getPassphraseState} for the discover/verify
|
|
@@ -123,7 +151,7 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
123
151
|
* can't interleave with a chain call on the same device (which would desync
|
|
124
152
|
* the THP session selection).
|
|
125
153
|
*/
|
|
126
|
-
getPassphraseState(connectId: string, passphraseState?: string): Promise<Response<string | null>>;
|
|
154
|
+
getPassphraseState(connectId: string, passphraseState?: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<string | null>>;
|
|
127
155
|
evmGetAddress(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmGetAddressParams>): Promise<Response<EvmAddress>>;
|
|
128
156
|
evmSignTransaction(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmSignTxTrezorParams>): Promise<Response<EvmSignedTx>>;
|
|
129
157
|
evmSignMessage(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmSignMsgParams>): Promise<Response<EvmSignature>>;
|
|
@@ -143,9 +171,16 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
143
171
|
tronSignTransaction(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<TronSignTxParams>): Promise<Response<TronSignedTx>>;
|
|
144
172
|
tronSignMessage(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<TronSignMsgParams>): Promise<Response<TronSignature>>;
|
|
145
173
|
private static _unwrapConnectorResult;
|
|
146
|
-
private
|
|
174
|
+
private _callConnector;
|
|
175
|
+
private _assertConnectorIdle;
|
|
176
|
+
private _runConnectorTeardown;
|
|
177
|
+
private _releaseProvisionalConnection;
|
|
178
|
+
private _waitForConnectorOperationsToDrain;
|
|
179
|
+
private _retainConnectorOperation;
|
|
147
180
|
private static _normalizeAllNetworkItem;
|
|
148
181
|
private static _getItemDeviceId;
|
|
182
|
+
/** UserAborted is a top-level abort code, so this ends the bundle. */
|
|
183
|
+
private static _buildCancelledFailure;
|
|
149
184
|
private _callAllNetworkMethod;
|
|
150
185
|
on<K extends keyof HardwareEventMap>(event: K, listener: (event: HardwareEventMap[K]) => void): void;
|
|
151
186
|
on(event: string, listener: DeviceEventListener): void;
|
|
@@ -156,6 +191,10 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
156
191
|
private _callMethod;
|
|
157
192
|
private _callWithRetry;
|
|
158
193
|
private _ensureSession;
|
|
194
|
+
private _resolveExpectedDeviceConnectId;
|
|
195
|
+
private _selectBleDeviceForBinding;
|
|
196
|
+
private _rememberVerifiedConnection;
|
|
197
|
+
private _emitVerifiedBinding;
|
|
159
198
|
/**
|
|
160
199
|
* Pin the device's active wallet session to `passphraseState` (the target
|
|
161
200
|
* wallet identity) before a wallet-bound op. THP has an app-session id; v1
|
|
@@ -413,4 +452,4 @@ declare function isTrezorBleServiceUuid(uuid: string): boolean;
|
|
|
413
452
|
declare function isTrezorBleDescriptor(descriptor: TrezorBleDescriptor): boolean;
|
|
414
453
|
declare function resolveTrezorBleConnectId(descriptor: TrezorBleDescriptor): string;
|
|
415
454
|
|
|
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 };
|
|
455
|
+
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,
|
|
1
|
+
import { IHardwareWallet, IConnector, TransportType, SearchDevicesOptions, DeviceInfo, DeviceSearchTarget, ConnectionTarget, BindBleDeviceParams, Response, 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,21 @@ 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";
|
|
20
|
+
readonly cancelCapability: "stops-waiting";
|
|
11
21
|
private readonly _connector;
|
|
12
22
|
private readonly _emitter;
|
|
23
|
+
private readonly _operations;
|
|
13
24
|
private readonly _devices;
|
|
14
25
|
private readonly _sessions;
|
|
15
26
|
private readonly _connectingPromises;
|
|
@@ -17,8 +28,16 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
17
28
|
private readonly _uiRegistry;
|
|
18
29
|
private readonly _passphraseRequestContextByConnectId;
|
|
19
30
|
private readonly _verifiedPassphraseSessionsByConnectId;
|
|
31
|
+
/** Raw connector calls that outlive an aborted caller, keyed by session. */
|
|
32
|
+
private readonly _unsettledConnectorOperations;
|
|
33
|
+
private readonly _connectorIdleWaiters;
|
|
34
|
+
private _resetPromise;
|
|
35
|
+
private _connectorTeardownTail;
|
|
36
|
+
private _pendingConnectorTeardowns;
|
|
37
|
+
private _stateGeneration;
|
|
20
38
|
private readonly _jobQueue;
|
|
21
|
-
|
|
39
|
+
private readonly _knownDeviceConnections;
|
|
40
|
+
constructor(connector: IConnector, options?: TrezorAdapterOptions);
|
|
22
41
|
private static _createDeviceBusyError;
|
|
23
42
|
/**
|
|
24
43
|
* Split a Trezor-only `passphraseState` routing hint off the chain params so
|
|
@@ -41,19 +60,17 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
41
60
|
* selected is gone (the device evicted it from its limited slot pool). The
|
|
42
61
|
* caller drops the stale cache entry and recreates from scratch.
|
|
43
62
|
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* (which would silently re-prompt the passphrase).
|
|
63
|
+
* Match only the protocol's explicit unallocated-channel code. Guessing from
|
|
64
|
+
* an error message could replay a request after an unrelated business error.
|
|
47
65
|
*/
|
|
48
66
|
private static _isStaleSessionError;
|
|
49
67
|
private static _errorCode;
|
|
50
68
|
private static _isConnectionUnavailableError;
|
|
51
69
|
private static _isRecoverableProtocolResidueError;
|
|
52
70
|
/**
|
|
53
|
-
* Race a promise against an abort signal.
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* uselessly in the background.
|
|
71
|
+
* Race a promise against an abort signal. IConnector.call() can't actually
|
|
72
|
+
* be cancelled at the protocol level, so the caller gets the abort while the
|
|
73
|
+
* adapter keeps the transport exclusively reserved until the raw call drains.
|
|
57
74
|
*/
|
|
58
75
|
private static _abortable;
|
|
59
76
|
private _connectSession;
|
|
@@ -66,17 +83,20 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
66
83
|
* error flows. Aborts active jobs and releases UI waits.
|
|
67
84
|
*/
|
|
68
85
|
resetState(): void;
|
|
86
|
+
private _resetStateAndDisconnectSessions;
|
|
69
87
|
getAvailableTransports(): TransportType[];
|
|
70
88
|
switchTransport(_type: TransportType): Promise<void>;
|
|
71
|
-
searchDevices(options?:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
89
|
+
searchDevices(options?: SearchDevicesOptions): Promise<DeviceInfo[]>;
|
|
90
|
+
private _searchDevices;
|
|
91
|
+
searchDeviceTargets(options?: SearchDevicesOptions): Promise<DeviceSearchTarget[]>;
|
|
92
|
+
listConnectionTargets(options?: SearchDevicesOptions): Promise<ConnectionTarget[]>;
|
|
93
|
+
bindBleDevice(params: BindBleDeviceParams): Promise<Response<string>>;
|
|
94
|
+
connectDevice(searchTargetId: string): Promise<Response<string>>;
|
|
95
|
+
releaseOperation(operationId: string): Promise<void>;
|
|
96
|
+
private _releaseOperationConnection;
|
|
97
|
+
getDeviceInfo(connectIdOrOperationId: string, deviceId: string): Promise<Response<DeviceInfo>>;
|
|
78
98
|
allNetworkGetAddress(connectId: string, deviceId: string, params: AllNetworkGetAddressParams): Promise<Response<AllNetworkAddressResponse[]>>;
|
|
79
|
-
getFeatures(connectId: string): Promise<Response<Record<string, unknown>>>;
|
|
99
|
+
getFeatures(connectId: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
80
100
|
/**
|
|
81
101
|
* Device authenticity attestation. Sends a host-generated challenge, has the
|
|
82
102
|
* device sign it with its secure-element key, then verifies the returned
|
|
@@ -92,12 +112,20 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
92
112
|
* enable it in a production accounting flow, it lets an emulator mint any id.
|
|
93
113
|
*/
|
|
94
114
|
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>>>;
|
|
115
|
+
deviceSettings(connectId: string, params: TrezorDeviceSettingsParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
116
|
+
setBrightness(connectId: string, params?: TrezorBrightnessParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
117
|
+
changePin(connectId: string, params?: TrezorChangePinParams, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
118
|
+
wipeDevice(connectId: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<Record<string, unknown>>>;
|
|
99
119
|
private _getTrezorDeviceId;
|
|
100
120
|
cancel(connectId?: string): void;
|
|
121
|
+
/**
|
|
122
|
+
* The operation the running device job belongs to, so a UI request raised
|
|
123
|
+
* mid-call can name it. A call pinned to an operation queues under its id
|
|
124
|
+
* (`trezorQueueKey`); a call without one queues under the connectId, and the
|
|
125
|
+
* live operation on that connection is still the owner. Only work with no
|
|
126
|
+
* operation at all comes back undefined.
|
|
127
|
+
*/
|
|
128
|
+
private _activeOperationId;
|
|
101
129
|
/**
|
|
102
130
|
* Routes to BOTH the adapter's local UI registry (preemption decisions,
|
|
103
131
|
* future SELECT_DEVICE / DEVICE_PERMISSION) AND the connector's registry
|
|
@@ -114,7 +142,7 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
114
142
|
* Unlike Ledger (which hashes a per-chain address), it is chain-global, so
|
|
115
143
|
* `chain` is accepted for API parity but ignored.
|
|
116
144
|
*/
|
|
117
|
-
getChainFingerprint(connectId: string,
|
|
145
|
+
getChainFingerprint(connectId: string, deviceId: string, _chain: ChainForFingerprint): Promise<Response<string>>;
|
|
118
146
|
/**
|
|
119
147
|
* Resolve the active passphrase wallet identity (`passphraseState`).
|
|
120
148
|
* See {@link IHardwareWallet.getPassphraseState} for the discover/verify
|
|
@@ -123,7 +151,7 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
123
151
|
* can't interleave with a chain call on the same device (which would desync
|
|
124
152
|
* the THP session selection).
|
|
125
153
|
*/
|
|
126
|
-
getPassphraseState(connectId: string, passphraseState?: string): Promise<Response<string | null>>;
|
|
154
|
+
getPassphraseState(connectId: string, passphraseState?: string, operationContext?: IDeviceManagerOperationContext): Promise<Response<string | null>>;
|
|
127
155
|
evmGetAddress(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmGetAddressParams>): Promise<Response<EvmAddress>>;
|
|
128
156
|
evmSignTransaction(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmSignTxTrezorParams>): Promise<Response<EvmSignedTx>>;
|
|
129
157
|
evmSignMessage(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<EvmSignMsgParams>): Promise<Response<EvmSignature>>;
|
|
@@ -143,9 +171,16 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
143
171
|
tronSignTransaction(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<TronSignTxParams>): Promise<Response<TronSignedTx>>;
|
|
144
172
|
tronSignMessage(connectId?: string | null, deviceId?: string | null, params?: TrezorCallParams<TronSignMsgParams>): Promise<Response<TronSignature>>;
|
|
145
173
|
private static _unwrapConnectorResult;
|
|
146
|
-
private
|
|
174
|
+
private _callConnector;
|
|
175
|
+
private _assertConnectorIdle;
|
|
176
|
+
private _runConnectorTeardown;
|
|
177
|
+
private _releaseProvisionalConnection;
|
|
178
|
+
private _waitForConnectorOperationsToDrain;
|
|
179
|
+
private _retainConnectorOperation;
|
|
147
180
|
private static _normalizeAllNetworkItem;
|
|
148
181
|
private static _getItemDeviceId;
|
|
182
|
+
/** UserAborted is a top-level abort code, so this ends the bundle. */
|
|
183
|
+
private static _buildCancelledFailure;
|
|
149
184
|
private _callAllNetworkMethod;
|
|
150
185
|
on<K extends keyof HardwareEventMap>(event: K, listener: (event: HardwareEventMap[K]) => void): void;
|
|
151
186
|
on(event: string, listener: DeviceEventListener): void;
|
|
@@ -156,6 +191,10 @@ declare class TrezorAdapter implements IHardwareWallet {
|
|
|
156
191
|
private _callMethod;
|
|
157
192
|
private _callWithRetry;
|
|
158
193
|
private _ensureSession;
|
|
194
|
+
private _resolveExpectedDeviceConnectId;
|
|
195
|
+
private _selectBleDeviceForBinding;
|
|
196
|
+
private _rememberVerifiedConnection;
|
|
197
|
+
private _emitVerifiedBinding;
|
|
159
198
|
/**
|
|
160
199
|
* Pin the device's active wallet session to `passphraseState` (the target
|
|
161
200
|
* wallet identity) before a wallet-bound op. THP has an app-session id; v1
|
|
@@ -413,4 +452,4 @@ declare function isTrezorBleServiceUuid(uuid: string): boolean;
|
|
|
413
452
|
declare function isTrezorBleDescriptor(descriptor: TrezorBleDescriptor): boolean;
|
|
414
453
|
declare function resolveTrezorBleConnectId(descriptor: TrezorBleDescriptor): string;
|
|
415
454
|
|
|
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 };
|
|
455
|
+
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 };
|