@trezor/connect 9.5.4 → 9.5.5-beta.2

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 (87) hide show
  1. package/CHANGELOG.md +800 -775
  2. package/README.md +5 -5
  3. package/lib/api/bitcoin/TransactionComposer.d.ts +3 -1
  4. package/lib/api/bitcoin/TransactionComposer.js +6 -3
  5. package/lib/api/bitcoin/index.d.ts +0 -1
  6. package/lib/api/bitcoin/index.js +0 -1
  7. package/lib/api/bitcoin/transactionBytes.d.ts +5 -0
  8. package/lib/api/bitcoin/transactionBytes.js +74 -0
  9. package/lib/api/bleUnpair.d.ts +9 -0
  10. package/lib/api/bleUnpair.js +36 -0
  11. package/lib/api/blockchainEstimateFee.js +4 -16
  12. package/lib/api/common/Discovery.d.ts +12 -10
  13. package/lib/api/common/Discovery.js +2 -4
  14. package/lib/api/composeTransaction.js +1 -1
  15. package/lib/api/ethereum/api/ethereumSignMessage.d.ts +6 -0
  16. package/lib/api/ethereum/api/ethereumSignMessage.js +10 -0
  17. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +21 -1
  18. package/lib/api/ethereum/api/ethereumSignTransaction.js +66 -0
  19. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +6 -0
  20. package/lib/api/ethereum/api/ethereumSignTypedData.js +10 -0
  21. package/lib/api/getFeatures.js +1 -0
  22. package/lib/api/index.d.ts +1 -0
  23. package/lib/api/index.js +3 -1
  24. package/lib/api/signMessage.d.ts +8 -0
  25. package/lib/api/signMessage.js +16 -6
  26. package/lib/api/signTransaction.d.ts +205 -0
  27. package/lib/api/signTransaction.js +43 -0
  28. package/lib/api/solana/api/solanaSignTransaction.d.ts +20 -0
  29. package/lib/api/solana/api/solanaSignTransaction.js +132 -0
  30. package/lib/api/solana/solanaUtils.d.ts +1 -0
  31. package/lib/api/solana/solanaUtils.js +2 -1
  32. package/lib/backend/BackendManager.js +1 -1
  33. package/lib/backend/Blockchain.d.ts +1 -3
  34. package/lib/backend/Blockchain.js +1 -21
  35. package/lib/{api/bitcoin/BitcoinFees.d.ts → backend/fees/BitcoinFeeLevels.d.ts} +5 -6
  36. package/lib/{api/bitcoin/BitcoinFees.js → backend/fees/BitcoinFeeLevels.js} +5 -4
  37. package/lib/{api/ethereum/EthereumFees.d.ts → backend/fees/EthereumFeeLevels.d.ts} +4 -5
  38. package/lib/{api/ethereum/EthereumFees.js → backend/fees/EthereumFeeLevels.js} +4 -5
  39. package/lib/{api/common/MiscFees.d.ts → backend/fees/MiscFeeLevels.d.ts} +3 -3
  40. package/lib/{api/common/MiscFees.js → backend/fees/MiscFeeLevels.js} +3 -2
  41. package/lib/backend/fees/index.d.ts +6 -0
  42. package/lib/backend/fees/index.js +33 -0
  43. package/lib/constants/firmware.d.ts +0 -1
  44. package/lib/constants/firmware.js +1 -2
  45. package/lib/core/AbstractMethod.d.ts +7 -4
  46. package/lib/core/AbstractMethod.js +8 -1
  47. package/lib/core/index.d.ts +0 -1
  48. package/lib/core/index.js +22 -27
  49. package/lib/core/onCallFirmwareUpdate.js +1 -1
  50. package/lib/data/DataManager.d.ts +4 -1
  51. package/lib/data/DataManager.js +7 -0
  52. package/lib/data/config.d.ts +0 -14
  53. package/lib/data/config.js +4 -12
  54. package/lib/data/connectSettings.d.ts +5 -1
  55. package/lib/data/connectSettings.js +26 -2
  56. package/lib/data/defaultFeeLevels.js +3 -3
  57. package/lib/data/deviceAuthenticityConfig.js +22 -7
  58. package/lib/data/thpSettings.d.ts +3 -0
  59. package/lib/data/thpSettings.js +37 -0
  60. package/lib/data/version.d.ts +1 -1
  61. package/lib/data/version.js +1 -1
  62. package/lib/device/Device.d.ts +8 -11
  63. package/lib/device/Device.js +40 -80
  64. package/lib/device/DeviceCurrentSession.d.ts +9 -1
  65. package/lib/device/DeviceList.js +1 -1
  66. package/lib/events/index.d.ts +2 -0
  67. package/lib/events/ui-request.d.ts +18 -4
  68. package/lib/events/ui-request.js +1 -0
  69. package/lib/events/ui-response.d.ts +7 -1
  70. package/lib/events/ui-response.js +1 -0
  71. package/lib/factory.js +1 -0
  72. package/lib/tsconfig.lib.tsbuildinfo +1 -1
  73. package/lib/types/api/bleUnpair.d.ts +4 -0
  74. package/lib/types/api/bleUnpair.js +3 -0
  75. package/lib/types/api/index.d.ts +2 -0
  76. package/lib/types/api/solana/index.d.ts +4 -0
  77. package/lib/types/api/solana/index.js +1 -0
  78. package/lib/types/device.d.ts +4 -0
  79. package/lib/types/fees.d.ts +2 -0
  80. package/lib/types/fees.js +2 -0
  81. package/lib/types/firmware.d.ts +5 -0
  82. package/lib/types/settings.d.ts +20 -2
  83. package/lib/utils/firmwareUtils.d.ts +3 -1
  84. package/lib/utils/firmwareUtils.js +7 -1
  85. package/lib/utils/uiPromiseManager.d.ts +2 -0
  86. package/lib/utils/versionCheck.js +1 -1
  87. package/package.json +17 -16
@@ -13,6 +13,7 @@ export declare const SolanaTxTokenAccountInfo: import("@trezor/schema-utils").TO
13
13
  tokenProgram: import("@trezor/schema-utils").TString;
14
14
  tokenMint: import("@trezor/schema-utils").TString;
15
15
  tokenAccount: import("@trezor/schema-utils").TString;
16
+ symbol: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TString>;
16
17
  }>;
17
18
  export type SolanaTxAdditionalInfo = Static<typeof SolanaTxAdditionalInfo>;
18
19
  export declare const SolanaTxAdditionalInfo: import("@trezor/schema-utils").TObject<{
@@ -21,6 +22,7 @@ export declare const SolanaTxAdditionalInfo: import("@trezor/schema-utils").TObj
21
22
  tokenProgram: import("@trezor/schema-utils").TString;
22
23
  tokenMint: import("@trezor/schema-utils").TString;
23
24
  tokenAccount: import("@trezor/schema-utils").TString;
25
+ symbol: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TString>;
24
26
  }>>>;
25
27
  }>;
26
28
  export type SolanaSignTransaction = Static<typeof SolanaSignTransaction>;
@@ -33,6 +35,7 @@ export declare const SolanaSignTransaction: import("@trezor/schema-utils").TObje
33
35
  tokenProgram: import("@trezor/schema-utils").TString;
34
36
  tokenMint: import("@trezor/schema-utils").TString;
35
37
  tokenAccount: import("@trezor/schema-utils").TString;
38
+ symbol: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TString>;
36
39
  }>>>;
37
40
  }>>;
38
41
  serialize: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TBoolean>;
@@ -77,6 +80,7 @@ export declare const SolanaComposedTransaction: import("@trezor/schema-utils").T
77
80
  tokenProgram: import("@trezor/schema-utils").TString;
78
81
  tokenMint: import("@trezor/schema-utils").TString;
79
82
  tokenAccount: import("@trezor/schema-utils").TString;
83
+ symbol: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TString>;
80
84
  }>>;
81
85
  }>;
82
86
  }>;
@@ -14,6 +14,7 @@ exports.SolanaTxTokenAccountInfo = schema_utils_1.Type.Object({
14
14
  tokenProgram: schema_utils_1.Type.String(),
15
15
  tokenMint: schema_utils_1.Type.String(),
16
16
  tokenAccount: schema_utils_1.Type.String(),
17
+ symbol: schema_utils_1.Type.Optional(schema_utils_1.Type.String()),
17
18
  });
18
19
  exports.SolanaTxAdditionalInfo = schema_utils_1.Type.Object({
19
20
  tokenAccountsInfos: schema_utils_1.Type.Optional(schema_utils_1.Type.Array(exports.SolanaTxTokenAccountInfo, { minItems: 1 })),
@@ -1,4 +1,5 @@
1
1
  import { FeaturesNarrowing, FirmwareType } from '@trezor/device-utils';
2
+ import type { ThpStateSerialized } from '@trezor/protocol';
2
3
  import { Descriptor } from '@trezor/transport';
3
4
  import type { PROTO } from '../constants';
4
5
  import type { ReleaseInfo } from './firmware';
@@ -59,6 +60,7 @@ export type KnownDevice = BaseDevice & {
59
60
  _state?: DeviceState;
60
61
  state?: DeviceState['staticSessionId'];
61
62
  features: PROTO.Features;
63
+ thp?: ThpStateSerialized;
62
64
  unavailableCapabilities: UnavailableCapabilities;
63
65
  availableTranslations: string[];
64
66
  authenticityChecks?: {
@@ -75,6 +77,7 @@ export type UnknownDevice = BaseDevice & {
75
77
  id?: typeof undefined;
76
78
  error?: typeof undefined;
77
79
  features?: typeof undefined;
80
+ thp?: ThpStateSerialized;
78
81
  firmware?: typeof undefined;
79
82
  firmwareRelease?: typeof undefined;
80
83
  firmwareType?: typeof undefined;
@@ -95,6 +98,7 @@ export type UnreadableDevice = BaseDevice & {
95
98
  error: string;
96
99
  id?: typeof undefined;
97
100
  features?: typeof undefined;
101
+ thp?: typeof undefined;
98
102
  firmware?: typeof undefined;
99
103
  firmwareRelease?: typeof undefined;
100
104
  firmwareType?: typeof undefined;
@@ -23,11 +23,13 @@ export declare const SelectFeeLevel: import("@trezor/schema-utils").TUnion<[impo
23
23
  name: import("@trezor/schema-utils").TString;
24
24
  fee: import("@trezor/schema-utils").TLiteral<"0">;
25
25
  feePerByte: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TUndefined>;
26
+ blocks: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TUndefined>;
26
27
  disabled: import("@trezor/schema-utils").TLiteral<true>;
27
28
  }>, import("@trezor/schema-utils").TObject<{
28
29
  name: import("@trezor/schema-utils").TString;
29
30
  fee: import("@trezor/schema-utils").TString;
30
31
  feePerByte: import("@trezor/schema-utils").TString;
32
+ blocks: import("@trezor/schema-utils").TNumber;
31
33
  minutes: import("@trezor/schema-utils").TNumber;
32
34
  total: import("@trezor/schema-utils").TString;
33
35
  }>]>;
package/lib/types/fees.js CHANGED
@@ -30,12 +30,14 @@ exports.SelectFeeLevel = schema_utils_1.Type.Union([
30
30
  name: schema_utils_1.Type.String(),
31
31
  fee: schema_utils_1.Type.Literal('0'),
32
32
  feePerByte: schema_utils_1.Type.Optional(schema_utils_1.Type.Undefined()),
33
+ blocks: schema_utils_1.Type.Optional(schema_utils_1.Type.Undefined()),
33
34
  disabled: schema_utils_1.Type.Literal(true),
34
35
  }),
35
36
  schema_utils_1.Type.Object({
36
37
  name: schema_utils_1.Type.String(),
37
38
  fee: schema_utils_1.Type.String(),
38
39
  feePerByte: schema_utils_1.Type.String(),
40
+ blocks: schema_utils_1.Type.Number(),
39
41
  minutes: schema_utils_1.Type.Number(),
40
42
  total: schema_utils_1.Type.String(),
41
43
  }),
@@ -29,4 +29,9 @@ export type ReleaseInfo = {
29
29
  intermediaryVersion?: IntermediaryVersion;
30
30
  translations?: string[];
31
31
  };
32
+ export type BinaryInfo = {
33
+ binary: ArrayBuffer;
34
+ binaryVersion: VersionArray;
35
+ releaseVersion: undefined;
36
+ };
32
37
  //# sourceMappingURL=firmware.d.ts.map
@@ -1,12 +1,25 @@
1
1
  import type { BlockchainSettings } from '@trezor/blockchain-link';
2
+ import type { ThpCredentials, ThpPairingMethod } from '@trezor/protocol';
2
3
  import type { Transport } from '@trezor/transport';
3
4
  export type { SystemInfo } from '@trezor/connect-common';
4
5
  export interface Manifest {
6
+ appName?: string;
7
+ appIcon?: string;
5
8
  appUrl: string;
6
9
  email: string;
7
10
  }
8
11
  export type Proxy = BlockchainSettings['proxy'];
12
+ export type LocalFirmwares = {
13
+ firmwareDir: string;
14
+ firmwareList: string[];
15
+ };
9
16
  type KnownTransport = Exclude<Transport['name'], 'NativeUsbTransport' | 'BluetoothTransport'>;
17
+ export type ThpSettings = {
18
+ hostName?: string;
19
+ staticKey?: string;
20
+ knownCredentials?: ThpCredentials[];
21
+ pairingMethods: ThpPairingMethod[] | (keyof typeof ThpPairingMethod)[];
22
+ };
10
23
  export type ConnectSettingsTransport = KnownTransport | Transport | (new (...args: any[]) => Transport);
11
24
  export interface ConnectSettingsPublic {
12
25
  manifest?: Manifest;
@@ -22,6 +35,7 @@ export interface ConnectSettingsPublic {
22
35
  _sessionsBackgroundUrl?: null | string;
23
36
  binFilesBaseUrl?: string;
24
37
  enableFirmwareHashCheck?: boolean;
38
+ thp?: ThpSettings;
25
39
  }
26
40
  export interface ConnectSettingsInternal {
27
41
  origin?: string;
@@ -38,19 +52,23 @@ export interface ConnectSettingsInternal {
38
52
  proxy?: Proxy;
39
53
  sharedLogger?: boolean;
40
54
  useCoreInPopup?: boolean;
55
+ localFirmwares?: LocalFirmwares;
41
56
  }
42
57
  export interface ConnectSettingsWeb {
43
58
  hostLabel?: string;
44
- hostIcon?: string;
45
59
  coreMode?: 'auto' | 'popup' | 'iframe' | 'deeplink' | 'suite-desktop';
46
60
  }
47
61
  export interface ConnectSettingsWebextension {
48
62
  _extendWebextensionLifetime?: boolean;
63
+ coreMode?: 'auto' | 'popup' | 'suite-desktop';
49
64
  }
50
65
  export interface ConnectSettingsMobile {
51
66
  deeplinkUrl: string;
52
67
  deeplinkOpen?: (url: string) => void;
53
68
  deeplinkCallbackUrl?: string;
69
+ coreMode?: 'deeplink';
54
70
  }
55
- export type ConnectSettings = ConnectSettingsPublic & ConnectSettingsInternal & ConnectSettingsWeb & ConnectSettingsWebextension & ConnectSettingsMobile;
71
+ export type ConnectSettings = ConnectSettingsPublic & ConnectSettingsInternal & Omit<ConnectSettingsWeb & ConnectSettingsWebextension & ConnectSettingsMobile, 'coreMode'> & {
72
+ coreMode?: ConnectSettingsWeb['coreMode'] | ConnectSettingsWebextension['coreMode'] | ConnectSettingsMobile['coreMode'];
73
+ };
56
74
  //# sourceMappingURL=settings.d.ts.map
@@ -1,6 +1,8 @@
1
- import type { Features, FirmwareRelease, StrictFeatures, VersionArray } from '../types';
1
+ import { DeviceModelInternal } from '@trezor/device-utils';
2
+ import { Features, FirmwareRelease, FirmwareType, StrictFeatures, VersionArray } from '../types';
2
3
  export declare const isStrictFeatures: (extFeatures: Features) => extFeatures is StrictFeatures;
3
4
  export declare const isValidReleases: (extReleases: any) => extReleases is FirmwareRelease[];
4
5
  export declare const filterSafeListByBootloader: (releasesList: FirmwareRelease[], bootloaderVersion: VersionArray) => FirmwareRelease[];
5
6
  export declare const filterSafeListByFirmware: (releasesList: FirmwareRelease[], firmwareVersion: VersionArray) => FirmwareRelease[];
7
+ export declare const buildFirmwareFileName: (firmwareType: FirmwareType, internalModel: DeviceModelInternal, version: VersionArray) => string;
6
8
  //# sourceMappingURL=firmwareUtils.d.ts.map
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterSafeListByFirmware = exports.filterSafeListByBootloader = exports.isValidReleases = exports.isStrictFeatures = void 0;
3
+ exports.buildFirmwareFileName = exports.filterSafeListByFirmware = exports.filterSafeListByBootloader = exports.isValidReleases = exports.isStrictFeatures = void 0;
4
4
  const utils_1 = require("@trezor/utils");
5
+ const types_1 = require("../types");
5
6
  const isStrictFeatures = (extFeatures) => [1, 2].includes(extFeatures.major_version) &&
6
7
  (extFeatures.firmware_present === false ||
7
8
  extFeatures.bootloader_mode == null ||
@@ -24,4 +25,9 @@ const filterSafeListByBootloader = (releasesList, bootloaderVersion) => {
24
25
  exports.filterSafeListByBootloader = filterSafeListByBootloader;
25
26
  const filterSafeListByFirmware = (releasesList, firmwareVersion) => releasesList.filter(item => utils_1.versionUtils.isNewerOrEqual(firmwareVersion, item.min_firmware_version));
26
27
  exports.filterSafeListByFirmware = filterSafeListByFirmware;
28
+ const buildFirmwareFileName = (firmwareType, internalModel, version) => {
29
+ const firmwareTypeFileString = firmwareType === types_1.FirmwareType.BitcoinOnly ? '-bitcoinonly' : '';
30
+ return `trezor-${internalModel.toLocaleLowerCase()}-${version.join('.')}${firmwareTypeFileString}.bin`;
31
+ };
32
+ exports.buildFirmwareFileName = buildFirmwareFileName;
27
33
  //# sourceMappingURL=firmwareUtils.js.map
@@ -12,6 +12,8 @@ export declare const createUiPromiseManager: (interactionTimeout: () => void) =>
12
12
  type: T;
13
13
  }> | Extract<import("../events").UiResponseConfirmation, {
14
14
  type: T;
15
+ }> | Extract<import("../events").UiResponseFirmwares, {
16
+ type: T;
15
17
  }> | Extract<import("../events").UiResponseDevice, {
16
18
  type: T;
17
19
  }> | Extract<import("../events").UiResponsePin, {
@@ -6,7 +6,7 @@ const isConnectOutdated = (settings) => {
6
6
  if (settings?.env !== 'web')
7
7
  return false;
8
8
  const version = settings.npmVersion || settings.version;
9
- if (!(0, versionUtils_1.isNewerOrEqual)(version, '9.1.5'))
9
+ if (!(0, versionUtils_1.isNewerOrEqual)(version, '9.2.1'))
10
10
  return 'error';
11
11
  if (!(0, versionUtils_1.isNewerOrEqual)(version, '9.5.0'))
12
12
  return 'warning';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trezor/connect",
3
- "version": "9.5.4",
3
+ "version": "9.5.5-beta.2",
4
4
  "author": "Trezor <info@trezor.io>",
5
5
  "homepage": "https://github.com/trezor/trezor-suite/tree/develop/packages/connect",
6
6
  "description": "High-level javascript interface for Trezor hardware wallet.",
@@ -79,30 +79,31 @@
79
79
  "@solana-program/token": "^0.5.1",
80
80
  "@solana-program/token-2022": "^0.4.0",
81
81
  "@solana/kit": "^2.0.0",
82
- "@trezor/blockchain-link": "2.4.4",
83
- "@trezor/blockchain-link-types": "1.3.4",
84
- "@trezor/blockchain-link-utils": "1.3.4",
85
- "@trezor/connect-analytics": "1.3.2",
86
- "@trezor/connect-common": "0.3.4",
87
- "@trezor/crypto-utils": "1.1.2",
88
- "@trezor/device-utils": "1.0.2",
89
- "@trezor/protobuf": "1.3.4",
90
- "@trezor/protocol": "1.2.5",
91
- "@trezor/schema-utils": "1.3.2",
92
- "@trezor/transport": "1.4.4",
93
- "@trezor/utils": "9.3.4",
94
- "@trezor/utxo-lib": "2.3.4",
82
+ "@trezor/blockchain-link": "2.4.5-beta.1",
83
+ "@trezor/blockchain-link-types": "1.3.5-beta.2",
84
+ "@trezor/blockchain-link-utils": "1.3.5-beta.1",
85
+ "@trezor/connect-analytics": "1.3.3-beta.1",
86
+ "@trezor/connect-common": "0.3.5-beta.1",
87
+ "@trezor/crypto-utils": "1.1.3-beta.1",
88
+ "@trezor/device-utils": "1.0.3-beta.1",
89
+ "@trezor/protobuf": "1.3.5-beta.1",
90
+ "@trezor/protocol": "1.2.6-beta.1",
91
+ "@trezor/schema-utils": "1.3.3-beta.1",
92
+ "@trezor/transport": "1.4.5-beta.1",
93
+ "@trezor/type-utils": "1.1.6-beta.2",
94
+ "@trezor/utils": "9.3.5-beta.1",
95
+ "@trezor/utxo-lib": "2.3.5-beta.1",
95
96
  "blakejs": "^1.2.1",
96
97
  "bs58": "^6.0.0",
97
98
  "bs58check": "^4.0.0",
98
99
  "cross-fetch": "^4.0.0"
99
100
  },
100
101
  "devDependencies": {
101
- "@babel/preset-typescript": "^7.24.7",
102
+ "@babel/preset-typescript": "^7.27.0",
102
103
  "@trezor/eslint": "1.0.0",
103
104
  "@trezor/trezor-user-env-link": "1.0.2",
104
105
  "@types/karma": "^6.3.9",
105
- "babel-loader": "^9.1.3",
106
+ "babel-loader": "^10.0.0",
106
107
  "jest": "29.7.0",
107
108
  "karma": "^6.4.4",
108
109
  "karma-babel-preprocessor": "^8.0.2",