@trezor/connect 9.2.3 → 9.2.4-beta.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/CHANGELOG.md +43 -5
- package/README.md +1 -1
- package/lib/api/applyFlags.d.ts +8 -1
- package/lib/api/applyFlags.js +3 -8
- package/lib/api/applySettings.d.ts +8 -1
- package/lib/api/applySettings.js +3 -8
- package/lib/api/backupDevice.d.ts +10 -2
- package/lib/api/backupDevice.js +12 -9
- package/lib/api/binance/api/binanceGetAddress.d.ts +4 -3
- package/lib/api/binance/api/binanceGetAddress.js +8 -22
- package/lib/api/binance/api/binanceGetPublicKey.d.ts +4 -2
- package/lib/api/binance/api/binanceGetPublicKey.js +6 -18
- package/lib/api/cardano/api/cardanoGetAddress.d.ts +4 -3
- package/lib/api/cardano/api/cardanoGetAddress.js +8 -22
- package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +4 -3
- package/lib/api/cardano/api/cardanoGetPublicKey.js +9 -31
- package/lib/api/changeLanguage.d.ts +8 -1
- package/lib/api/changeLanguage.js +3 -7
- package/lib/api/eos/api/eosGetPublicKey.d.ts +4 -2
- package/lib/api/eos/api/eosGetPublicKey.js +6 -18
- package/lib/api/ethereum/api/ethereumGetAddress.d.ts +4 -3
- package/lib/api/ethereum/api/ethereumGetAddress.js +4 -20
- package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +4 -2
- package/lib/api/ethereum/api/ethereumGetPublicKey.js +3 -10
- package/lib/api/firmware/index.d.ts +2 -0
- package/lib/api/firmware/index.js +5 -1
- package/lib/api/firmware/parseFirmwareHeaders.d.ts +5 -0
- package/lib/api/firmware/parseFirmwareHeaders.js +35 -0
- package/lib/api/firmware/uploadFirmware.d.ts +1 -1
- package/lib/api/firmware/uploadFirmware.js +9 -1
- package/lib/api/getAccountDescriptor.d.ts +5 -3
- package/lib/api/getAccountDescriptor.js +8 -21
- package/lib/api/getAccountInfo.d.ts +23 -7
- package/lib/api/getAccountInfo.js +12 -25
- package/lib/api/getAddress.d.ts +4 -3
- package/lib/api/getAddress.js +8 -22
- package/lib/api/getFeatures.d.ts +1 -0
- package/lib/api/getOwnershipId.d.ts +4 -2
- package/lib/api/getOwnershipId.js +4 -15
- package/lib/api/getOwnershipProof.d.ts +4 -2
- package/lib/api/getOwnershipProof.js +4 -15
- package/lib/api/getPublicKey.d.ts +5 -4
- package/lib/api/getPublicKey.js +12 -35
- package/lib/api/index.d.ts +0 -1
- package/lib/api/index.js +1 -3
- package/lib/api/nem/api/nemGetAddress.d.ts +4 -3
- package/lib/api/nem/api/nemGetAddress.js +4 -20
- package/lib/api/rebootToBootloader.d.ts +8 -2
- package/lib/api/rebootToBootloader.js +3 -10
- package/lib/api/recoveryDevice.d.ts +8 -1
- package/lib/api/recoveryDevice.js +3 -7
- package/lib/api/resetDevice.d.ts +4 -2
- package/lib/api/resetDevice.js +3 -10
- package/lib/api/ripple/api/rippleGetAddress.d.ts +4 -3
- package/lib/api/ripple/api/rippleGetAddress.js +4 -20
- package/lib/api/solana/api/solanaGetAddress.d.ts +4 -3
- package/lib/api/solana/api/solanaGetAddress.js +7 -28
- package/lib/api/solana/api/solanaGetPublicKey.d.ts +4 -3
- package/lib/api/solana/api/solanaGetPublicKey.js +7 -27
- package/lib/api/stellar/api/stellarGetAddress.d.ts +4 -3
- package/lib/api/stellar/api/stellarGetAddress.js +4 -20
- package/lib/api/tezos/api/tezosGetAddress.d.ts +4 -3
- package/lib/api/tezos/api/tezosGetAddress.js +4 -20
- package/lib/api/tezos/api/tezosGetPublicKey.d.ts +4 -2
- package/lib/api/tezos/api/tezosGetPublicKey.js +6 -18
- package/lib/api/wipeDevice.d.ts +8 -2
- package/lib/api/wipeDevice.js +3 -10
- package/lib/constants/errors.d.ts +1 -0
- package/lib/constants/errors.js +1 -0
- package/lib/core/AbstractMethod.d.ts +4 -8
- package/lib/core/AbstractMethod.js +6 -28
- package/lib/core/index.d.ts +2 -1
- package/lib/core/index.js +254 -225
- package/lib/core/onCallFirmwareUpdate.d.ts +31 -0
- package/lib/core/onCallFirmwareUpdate.js +259 -0
- package/lib/data/analyticsInfo.d.ts +2 -2
- package/lib/data/analyticsInfo.js +6 -7
- package/lib/data/deviceAuthenticityConfig.js +8 -4
- package/lib/data/firmwareInfo.js +1 -1
- package/lib/data/version.d.ts +1 -1
- package/lib/data/version.js +1 -1
- package/lib/device/Device.d.ts +1 -1
- package/lib/device/Device.js +2 -2
- package/lib/device/DeviceCommands.d.ts +2 -14
- package/lib/device/DeviceCommands.js +1 -43
- package/lib/device/DeviceList.d.ts +1 -1
- package/lib/device/DeviceList.js +20 -15
- package/lib/events/index.d.ts +1 -0
- package/lib/events/ui-request.d.ts +13 -1
- package/lib/events/ui-request.js +1 -0
- package/lib/index.js +2 -2
- package/lib/types/api/backupDevice.d.ts +2 -2
- package/lib/types/api/dispose.d.ts +1 -1
- package/lib/types/api/firmwareUpdate.d.ts +7 -6
- package/lib/types/api/firmwareUpdate.js +1 -3
- package/lib/utils/popupPromiseManager.d.ts +8 -0
- package/lib/utils/popupPromiseManager.js +21 -0
- package/lib/utils/uiPromiseManager.d.ts +38 -0
- package/lib/utils/uiPromiseManager.js +47 -0
- package/lib/workers/workers-browser.d.ts +3 -1
- package/lib/workers/workers-browser.js +2 -2
- package/package.json +6 -6
- package/lib/api/firmwareUpdate.d.ts +0 -19
- package/lib/api/firmwareUpdate.js +0 -78
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Deferred } from '@trezor/utils';
|
|
2
1
|
import { NETWORK } from '../constants';
|
|
3
|
-
import { CallMethodPayload, CallMethodResponse, UiRequestButtonData, UiPromiseCreator, CoreEventMessage } from '../events';
|
|
2
|
+
import { CallMethodPayload, CallMethodResponse, UiRequestButtonData, UiPromiseCreator, CoreEventMessage, UiRequestConfirmation } from '../events';
|
|
4
3
|
import type { Device } from '../device/Device';
|
|
5
4
|
import type { FirmwareRange } from '../types';
|
|
6
5
|
export type Payload<M> = Extract<CallMethodPayload, {
|
|
@@ -25,6 +24,7 @@ export declare abstract class AbstractMethod<Name extends CallMethodPayload['met
|
|
|
25
24
|
name: Name;
|
|
26
25
|
payload: Payload<Name>;
|
|
27
26
|
get info(): string;
|
|
27
|
+
get confirmation(): UiRequestConfirmation['payload'] | undefined;
|
|
28
28
|
useUi: boolean;
|
|
29
29
|
useDevice: boolean;
|
|
30
30
|
useDeviceState: boolean;
|
|
@@ -37,24 +37,20 @@ export declare abstract class AbstractMethod<Name extends CallMethodPayload['met
|
|
|
37
37
|
requireDeviceMode: string[];
|
|
38
38
|
network: NETWORK.NetworkType;
|
|
39
39
|
useCardanoDerivation: boolean;
|
|
40
|
-
|
|
41
|
-
noBackupConfirmation?(allowSuppression?: boolean): Promise<boolean>;
|
|
40
|
+
noBackupConfirmationMode: 'never' | 'always' | 'popup-only';
|
|
42
41
|
getButtonRequestData?(code: string): UiRequestButtonData | undefined;
|
|
43
42
|
postMessage: (message: CoreEventMessage) => void;
|
|
44
|
-
getPopupPromise: () => Deferred<void>;
|
|
45
43
|
createUiPromise: UiPromiseCreator;
|
|
46
|
-
removeUiPromise: (promise: Deferred<any>) => void;
|
|
47
44
|
initAsync?(): Promise<void>;
|
|
48
45
|
constructor(message: {
|
|
49
46
|
id?: number;
|
|
50
47
|
payload: Payload<Name>;
|
|
51
48
|
});
|
|
52
49
|
setDevice(device: Device): void;
|
|
53
|
-
requestPermissions(): Promise<boolean>;
|
|
54
50
|
private getOriginPermissions;
|
|
55
51
|
checkPermissions(): void;
|
|
56
52
|
savePermissions(temporary?: boolean): void;
|
|
57
|
-
checkFirmwareRange(
|
|
53
|
+
checkFirmwareRange(): "ui-device_firmware_old" | "ui-device_firmware_unsupported" | "ui-device_firmware_not_compatible" | "ui-device_firmware_not_installed" | undefined;
|
|
58
54
|
isManagementRestricted(): boolean | undefined;
|
|
59
55
|
abstract init(): void;
|
|
60
56
|
abstract run(): Promise<MethodReturnType<Name>>;
|
|
@@ -17,6 +17,9 @@ class AbstractMethod {
|
|
|
17
17
|
get info() {
|
|
18
18
|
return '';
|
|
19
19
|
}
|
|
20
|
+
get confirmation() {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
20
23
|
constructor(message) {
|
|
21
24
|
var _a, _b;
|
|
22
25
|
const { payload } = message;
|
|
@@ -59,6 +62,7 @@ class AbstractMethod {
|
|
|
59
62
|
typeof payload.useCardanoDerivation === 'boolean'
|
|
60
63
|
? payload.useCardanoDerivation
|
|
61
64
|
: payload.method.startsWith('cardano');
|
|
65
|
+
this.noBackupConfirmationMode = 'never';
|
|
62
66
|
}
|
|
63
67
|
setDevice(device) {
|
|
64
68
|
this.device = device;
|
|
@@ -66,21 +70,6 @@ class AbstractMethod {
|
|
|
66
70
|
const originalFn = this.createUiPromise;
|
|
67
71
|
this.createUiPromise = (t, d) => originalFn(t, d || device);
|
|
68
72
|
}
|
|
69
|
-
async requestPermissions() {
|
|
70
|
-
await this.getPopupPromise().promise;
|
|
71
|
-
const uiPromise = this.createUiPromise(events_1.UI.RECEIVE_PERMISSION);
|
|
72
|
-
this.postMessage((0, events_1.createUiMessage)(events_1.UI.REQUEST_PERMISSION, {
|
|
73
|
-
permissions: this.requiredPermissions,
|
|
74
|
-
device: this.device.toMessageObject(),
|
|
75
|
-
}));
|
|
76
|
-
const uiResp = await uiPromise.promise;
|
|
77
|
-
const { granted, remember } = uiResp.payload;
|
|
78
|
-
if (granted) {
|
|
79
|
-
this.savePermissions(!remember);
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
73
|
getOriginPermissions() {
|
|
85
74
|
var _a;
|
|
86
75
|
const origin = DataManager_1.DataManager.getSettings('origin');
|
|
@@ -128,7 +117,7 @@ class AbstractMethod {
|
|
|
128
117
|
this.postMessage((0, events_1.createDeviceMessage)(events_1.DEVICE.CONNECT, this.device.toMessageObject()));
|
|
129
118
|
}
|
|
130
119
|
}
|
|
131
|
-
|
|
120
|
+
checkFirmwareRange() {
|
|
132
121
|
if (this.skipFirmwareCheck) {
|
|
133
122
|
return;
|
|
134
123
|
}
|
|
@@ -151,18 +140,7 @@ class AbstractMethod {
|
|
|
151
140
|
return events_1.UI.FIRMWARE_OLD;
|
|
152
141
|
}
|
|
153
142
|
if (range.max !== '0' && utils_1.versionUtils.isNewer(version, range.max)) {
|
|
154
|
-
|
|
155
|
-
await this.getPopupPromise().promise;
|
|
156
|
-
const uiPromise = this.createUiPromise(events_1.UI.RECEIVE_CONFIRMATION);
|
|
157
|
-
this.postMessage((0, events_1.createUiMessage)(events_1.UI.FIRMWARE_NOT_COMPATIBLE, device.toMessageObject()));
|
|
158
|
-
const uiResp = await uiPromise.promise;
|
|
159
|
-
if (!uiResp.payload) {
|
|
160
|
-
throw constants_1.ERRORS.TypedError('Method_PermissionsNotGranted');
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
return events_1.UI.FIRMWARE_NOT_COMPATIBLE;
|
|
165
|
-
}
|
|
143
|
+
return events_1.UI.FIRMWARE_NOT_COMPATIBLE;
|
|
166
144
|
}
|
|
167
145
|
}
|
|
168
146
|
isManagementRestricted() {
|
package/lib/core/index.d.ts
CHANGED
|
@@ -5,8 +5,9 @@ import { AbstractMethod } from './AbstractMethod';
|
|
|
5
5
|
import { LogWriter } from '../utils/debug';
|
|
6
6
|
import type { ConnectSettings } from '../types';
|
|
7
7
|
export declare class Core extends EventEmitter {
|
|
8
|
+
abortController: AbortController;
|
|
8
9
|
handleMessage(message: CoreRequestMessage): void;
|
|
9
|
-
dispose():
|
|
10
|
+
dispose(): void;
|
|
10
11
|
getCurrentMethod(): Promise<AbstractMethod<any, undefined>>;
|
|
11
12
|
getTransportInfo(): TransportInfo | undefined;
|
|
12
13
|
enumerate(): void;
|