@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.
Files changed (104) hide show
  1. package/CHANGELOG.md +43 -5
  2. package/README.md +1 -1
  3. package/lib/api/applyFlags.d.ts +8 -1
  4. package/lib/api/applyFlags.js +3 -8
  5. package/lib/api/applySettings.d.ts +8 -1
  6. package/lib/api/applySettings.js +3 -8
  7. package/lib/api/backupDevice.d.ts +10 -2
  8. package/lib/api/backupDevice.js +12 -9
  9. package/lib/api/binance/api/binanceGetAddress.d.ts +4 -3
  10. package/lib/api/binance/api/binanceGetAddress.js +8 -22
  11. package/lib/api/binance/api/binanceGetPublicKey.d.ts +4 -2
  12. package/lib/api/binance/api/binanceGetPublicKey.js +6 -18
  13. package/lib/api/cardano/api/cardanoGetAddress.d.ts +4 -3
  14. package/lib/api/cardano/api/cardanoGetAddress.js +8 -22
  15. package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +4 -3
  16. package/lib/api/cardano/api/cardanoGetPublicKey.js +9 -31
  17. package/lib/api/changeLanguage.d.ts +8 -1
  18. package/lib/api/changeLanguage.js +3 -7
  19. package/lib/api/eos/api/eosGetPublicKey.d.ts +4 -2
  20. package/lib/api/eos/api/eosGetPublicKey.js +6 -18
  21. package/lib/api/ethereum/api/ethereumGetAddress.d.ts +4 -3
  22. package/lib/api/ethereum/api/ethereumGetAddress.js +4 -20
  23. package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +4 -2
  24. package/lib/api/ethereum/api/ethereumGetPublicKey.js +3 -10
  25. package/lib/api/firmware/index.d.ts +2 -0
  26. package/lib/api/firmware/index.js +5 -1
  27. package/lib/api/firmware/parseFirmwareHeaders.d.ts +5 -0
  28. package/lib/api/firmware/parseFirmwareHeaders.js +35 -0
  29. package/lib/api/firmware/uploadFirmware.d.ts +1 -1
  30. package/lib/api/firmware/uploadFirmware.js +9 -1
  31. package/lib/api/getAccountDescriptor.d.ts +5 -3
  32. package/lib/api/getAccountDescriptor.js +8 -21
  33. package/lib/api/getAccountInfo.d.ts +23 -7
  34. package/lib/api/getAccountInfo.js +12 -25
  35. package/lib/api/getAddress.d.ts +4 -3
  36. package/lib/api/getAddress.js +8 -22
  37. package/lib/api/getFeatures.d.ts +1 -0
  38. package/lib/api/getOwnershipId.d.ts +4 -2
  39. package/lib/api/getOwnershipId.js +4 -15
  40. package/lib/api/getOwnershipProof.d.ts +4 -2
  41. package/lib/api/getOwnershipProof.js +4 -15
  42. package/lib/api/getPublicKey.d.ts +5 -4
  43. package/lib/api/getPublicKey.js +12 -35
  44. package/lib/api/index.d.ts +0 -1
  45. package/lib/api/index.js +1 -3
  46. package/lib/api/nem/api/nemGetAddress.d.ts +4 -3
  47. package/lib/api/nem/api/nemGetAddress.js +4 -20
  48. package/lib/api/rebootToBootloader.d.ts +8 -2
  49. package/lib/api/rebootToBootloader.js +3 -10
  50. package/lib/api/recoveryDevice.d.ts +8 -1
  51. package/lib/api/recoveryDevice.js +3 -7
  52. package/lib/api/resetDevice.d.ts +4 -2
  53. package/lib/api/resetDevice.js +3 -10
  54. package/lib/api/ripple/api/rippleGetAddress.d.ts +4 -3
  55. package/lib/api/ripple/api/rippleGetAddress.js +4 -20
  56. package/lib/api/solana/api/solanaGetAddress.d.ts +4 -3
  57. package/lib/api/solana/api/solanaGetAddress.js +7 -28
  58. package/lib/api/solana/api/solanaGetPublicKey.d.ts +4 -3
  59. package/lib/api/solana/api/solanaGetPublicKey.js +7 -27
  60. package/lib/api/stellar/api/stellarGetAddress.d.ts +4 -3
  61. package/lib/api/stellar/api/stellarGetAddress.js +4 -20
  62. package/lib/api/tezos/api/tezosGetAddress.d.ts +4 -3
  63. package/lib/api/tezos/api/tezosGetAddress.js +4 -20
  64. package/lib/api/tezos/api/tezosGetPublicKey.d.ts +4 -2
  65. package/lib/api/tezos/api/tezosGetPublicKey.js +6 -18
  66. package/lib/api/wipeDevice.d.ts +8 -2
  67. package/lib/api/wipeDevice.js +3 -10
  68. package/lib/constants/errors.d.ts +1 -0
  69. package/lib/constants/errors.js +1 -0
  70. package/lib/core/AbstractMethod.d.ts +4 -8
  71. package/lib/core/AbstractMethod.js +6 -28
  72. package/lib/core/index.d.ts +2 -1
  73. package/lib/core/index.js +254 -225
  74. package/lib/core/onCallFirmwareUpdate.d.ts +31 -0
  75. package/lib/core/onCallFirmwareUpdate.js +259 -0
  76. package/lib/data/analyticsInfo.d.ts +2 -2
  77. package/lib/data/analyticsInfo.js +6 -7
  78. package/lib/data/deviceAuthenticityConfig.js +8 -4
  79. package/lib/data/firmwareInfo.js +1 -1
  80. package/lib/data/version.d.ts +1 -1
  81. package/lib/data/version.js +1 -1
  82. package/lib/device/Device.d.ts +1 -1
  83. package/lib/device/Device.js +2 -2
  84. package/lib/device/DeviceCommands.d.ts +2 -14
  85. package/lib/device/DeviceCommands.js +1 -43
  86. package/lib/device/DeviceList.d.ts +1 -1
  87. package/lib/device/DeviceList.js +20 -15
  88. package/lib/events/index.d.ts +1 -0
  89. package/lib/events/ui-request.d.ts +13 -1
  90. package/lib/events/ui-request.js +1 -0
  91. package/lib/index.js +2 -2
  92. package/lib/types/api/backupDevice.d.ts +2 -2
  93. package/lib/types/api/dispose.d.ts +1 -1
  94. package/lib/types/api/firmwareUpdate.d.ts +7 -6
  95. package/lib/types/api/firmwareUpdate.js +1 -3
  96. package/lib/utils/popupPromiseManager.d.ts +8 -0
  97. package/lib/utils/popupPromiseManager.js +21 -0
  98. package/lib/utils/uiPromiseManager.d.ts +38 -0
  99. package/lib/utils/uiPromiseManager.js +47 -0
  100. package/lib/workers/workers-browser.d.ts +3 -1
  101. package/lib/workers/workers-browser.js +2 -2
  102. package/package.json +6 -6
  103. package/lib/api/firmwareUpdate.d.ts +0 -19
  104. 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
- confirmation?(): Promise<boolean | undefined>;
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(isUsingPopup?: boolean): Promise<"ui-device_firmware_old" | "ui-device_firmware_unsupported" | "ui-device_firmware_not_compatible" | "ui-device_firmware_not_installed" | undefined>;
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
- async checkFirmwareRange(isUsingPopup) {
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
- if (isUsingPopup) {
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() {
@@ -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(): Promise<void>;
10
+ dispose(): void;
10
11
  getCurrentMethod(): Promise<AbstractMethod<any, undefined>>;
11
12
  getTransportInfo(): TransportInfo | undefined;
12
13
  enumerate(): void;