@trezor/connect 9.4.3-beta.1 → 9.4.3

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 (200) hide show
  1. package/CHANGELOG.md +80 -49
  2. package/README.md +1 -1
  3. package/lib/api/applyFlags.js +1 -1
  4. package/lib/api/applySettings.js +1 -1
  5. package/lib/api/authenticateDevice.js +1 -1
  6. package/lib/api/authorizeCoinjoin.js +1 -1
  7. package/lib/api/backupDevice.js +1 -1
  8. package/lib/api/binance/api/binanceGetAddress.js +2 -1
  9. package/lib/api/binance/api/binanceGetPublicKey.js +2 -1
  10. package/lib/api/binance/api/binanceSignTransaction.js +2 -1
  11. package/lib/api/binance/binanceSignTx.js +1 -1
  12. package/lib/api/bitcoin/Fees.js +2 -2
  13. package/lib/api/bitcoin/TransactionComposer.d.ts +3 -3
  14. package/lib/api/bitcoin/TransactionComposer.js +2 -2
  15. package/lib/api/bitcoin/refTx.js +1 -1
  16. package/lib/api/blockchainDisconnect.js +1 -1
  17. package/lib/api/blockchainEvmRpcCall.d.ts +16 -0
  18. package/lib/api/blockchainEvmRpcCall.js +45 -0
  19. package/lib/api/cancelCoinjoinAuthorization.js +1 -1
  20. package/lib/api/cardano/api/cardanoGetAddress.js +2 -1
  21. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +2 -1
  22. package/lib/api/cardano/api/cardanoGetPublicKey.js +2 -1
  23. package/lib/api/cardano/api/cardanoSignTransaction.js +2 -1
  24. package/lib/api/cardano/cardanoAddressParameters.js +1 -1
  25. package/lib/api/cardano/cardanoAuxiliaryData.js +1 -1
  26. package/lib/api/cardano/cardanoCertificate.js +1 -1
  27. package/lib/api/cardano/cardanoInputs.d.ts +8 -8
  28. package/lib/api/cardano/cardanoInputs.js +1 -1
  29. package/lib/api/cardano/cardanoOutputs.d.ts +22 -22
  30. package/lib/api/cardano/cardanoOutputs.js +1 -1
  31. package/lib/api/cardano/cardanoTokenBundle.d.ts +6 -6
  32. package/lib/api/cardano/cardanoTokenBundle.js +1 -1
  33. package/lib/api/changeLanguage.js +1 -1
  34. package/lib/api/changePin.js +1 -1
  35. package/lib/api/cipherKeyValue.js +1 -1
  36. package/lib/api/common/paramsValidator.js +1 -1
  37. package/lib/api/composeTransaction.d.ts +9 -3
  38. package/lib/api/composeTransaction.js +7 -4
  39. package/lib/api/eos/api/eosGetPublicKey.js +2 -1
  40. package/lib/api/eos/api/eosSignTransaction.js +2 -1
  41. package/lib/api/eos/eosSignTx.d.ts +3 -3
  42. package/lib/api/ethereum/api/ethereumGetAddress.js +2 -1
  43. package/lib/api/ethereum/api/ethereumGetPublicKey.js +2 -1
  44. package/lib/api/ethereum/api/ethereumSignMessage.d.ts +1 -1
  45. package/lib/api/ethereum/api/ethereumSignMessage.js +2 -1
  46. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +1 -1
  47. package/lib/api/ethereum/api/ethereumSignTransaction.js +13 -7
  48. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +58 -57
  49. package/lib/api/ethereum/api/ethereumSignTypedData.js +3 -2
  50. package/lib/api/ethereum/api/ethereumVerifyMessage.js +2 -1
  51. package/lib/api/ethereum/ethereumDefinitions.d.ts +21 -21
  52. package/lib/api/ethereum/ethereumDefinitions.js +6 -5
  53. package/lib/api/firmware/getBinary.js +1 -1
  54. package/lib/api/firmware/x509certificate.js +3 -5
  55. package/lib/api/getAccountDescriptor.js +1 -1
  56. package/lib/api/getAddress.js +1 -1
  57. package/lib/api/getCoinInfo.d.ts +3 -0
  58. package/lib/api/getCoinInfo.js +1 -1
  59. package/lib/api/getFirmwareHash.js +1 -1
  60. package/lib/api/getOwnershipId.js +1 -1
  61. package/lib/api/getOwnershipProof.js +1 -1
  62. package/lib/api/getPublicKey.js +1 -1
  63. package/lib/api/index.d.ts +2 -1
  64. package/lib/api/index.js +5 -3
  65. package/lib/api/loadDevice.d.ts +14 -0
  66. package/lib/api/loadDevice.js +44 -0
  67. package/lib/api/nem/api/nemGetAddress.js +2 -1
  68. package/lib/api/nem/api/nemSignTransaction.js +2 -1
  69. package/lib/api/pushTransaction.js +1 -1
  70. package/lib/api/rebootToBootloader.js +1 -1
  71. package/lib/api/recoveryDevice.js +1 -1
  72. package/lib/api/requestLogin.js +1 -1
  73. package/lib/api/resetDevice.js +1 -1
  74. package/lib/api/ripple/api/rippleGetAddress.js +2 -1
  75. package/lib/api/ripple/api/rippleSignTransaction.js +2 -1
  76. package/lib/api/setBrightness.js +1 -1
  77. package/lib/api/setBusy.js +1 -1
  78. package/lib/api/signMessage.js +1 -1
  79. package/lib/api/solana/api/solanaGetAddress.js +2 -1
  80. package/lib/api/solana/api/solanaGetPublicKey.js +2 -1
  81. package/lib/api/solana/api/solanaSignTransaction.js +2 -1
  82. package/lib/api/stellar/api/stellarGetAddress.js +2 -1
  83. package/lib/api/stellar/api/stellarSignTransaction.js +2 -1
  84. package/lib/api/stellar/stellarSignTx.js +1 -1
  85. package/lib/api/tezos/api/tezosGetAddress.js +2 -1
  86. package/lib/api/tezos/api/tezosGetPublicKey.js +2 -1
  87. package/lib/api/tezos/api/tezosSignTransaction.js +2 -1
  88. package/lib/api/tezos/tezosSignTx.js +1 -1
  89. package/lib/api/unlockPath.js +1 -1
  90. package/lib/api/verifyMessage.js +1 -1
  91. package/lib/backend/Blockchain.d.ts +3 -0
  92. package/lib/backend/Blockchain.js +3 -0
  93. package/lib/constants/errors.d.ts +3 -0
  94. package/lib/constants/errors.js +3 -0
  95. package/lib/constants/index.d.ts +1 -0
  96. package/lib/constants/index.js +3 -1
  97. package/lib/constants/nem.d.ts +3 -3
  98. package/lib/constants/utxo.d.ts +3 -0
  99. package/lib/constants/utxo.js +5 -0
  100. package/lib/core/AbstractMethod.d.ts +13 -5
  101. package/lib/core/AbstractMethod.js +50 -24
  102. package/lib/core/index.js +41 -30
  103. package/lib/core/onCallFirmwareUpdate.d.ts +2 -2
  104. package/lib/core/onCallFirmwareUpdate.js +5 -5
  105. package/lib/data/DataManager.d.ts +0 -181
  106. package/lib/data/DataManager.js +40 -6
  107. package/lib/data/analyticsInfo.js +2 -1
  108. package/lib/data/coinInfo.d.ts +14 -0
  109. package/lib/data/config.d.ts +20 -22
  110. package/lib/data/config.js +15 -40
  111. package/lib/data/connectSettings.js +5 -4
  112. package/lib/data/deviceAuthenticityConfig.js +17 -0
  113. package/lib/data/deviceAuthenticityConfigTypes.d.ts +32 -23
  114. package/lib/data/firmwareInfo.d.ts +1 -1
  115. package/lib/data/models.d.ts +9 -0
  116. package/lib/data/models.js +9 -0
  117. package/lib/data/version.d.ts +1 -1
  118. package/lib/data/version.js +1 -1
  119. package/lib/device/Device.d.ts +143 -36
  120. package/lib/device/Device.js +226 -119
  121. package/lib/device/DeviceCommands.js +4 -4
  122. package/lib/device/DeviceList.d.ts +13 -21
  123. package/lib/device/DeviceList.js +54 -168
  124. package/lib/device/prompts.js +3 -2
  125. package/lib/device/resolveDescriptorForTaproot.d.ts +1 -1
  126. package/lib/events/call.d.ts +5 -5
  127. package/lib/events/call.js +2 -2
  128. package/lib/events/device.d.ts +0 -6
  129. package/lib/events/device.js +0 -6
  130. package/lib/events/transport.d.ts +1 -1
  131. package/lib/factory.d.ts +6 -6
  132. package/lib/factory.js +132 -136
  133. package/lib/impl/dynamic.d.ts +13 -19
  134. package/lib/impl/dynamic.js +0 -9
  135. package/lib/index-browser.d.ts +3 -1
  136. package/lib/index-browser.js +0 -3
  137. package/lib/index.d.ts +3 -1
  138. package/lib/index.js +1 -13
  139. package/lib/types/api/applySettings.d.ts +13 -13
  140. package/lib/types/api/authenticateDevice.d.ts +33 -24
  141. package/lib/types/api/authorizeCoinjoin.d.ts +10 -10
  142. package/lib/types/api/binance/index.d.ts +143 -143
  143. package/lib/types/api/binance/index.js +1 -1
  144. package/lib/types/api/bitcoin/index.d.ts +11 -11
  145. package/lib/types/api/bitcoin/index.js +1 -1
  146. package/lib/types/api/blockchainEvmRpcCall.d.ts +4 -0
  147. package/lib/types/api/{checkFirmwareAuthenticity.js → blockchainEvmRpcCall.js} +1 -1
  148. package/lib/types/api/cancelCoinjoinAuthorization.d.ts +1 -1
  149. package/lib/types/api/cardano/index.d.ts +507 -507
  150. package/lib/types/api/changeLanguage.d.ts +6 -6
  151. package/lib/types/api/cipherKeyValue.d.ts +8 -8
  152. package/lib/types/api/cipherKeyValue.js +1 -1
  153. package/lib/types/api/composeTransaction.d.ts +13 -7
  154. package/lib/types/api/eos/index.d.ts +525 -525
  155. package/lib/types/api/eos/index.js +1 -1
  156. package/lib/types/api/ethereum/index.d.ts +100 -100
  157. package/lib/types/api/firmwareUpdate.d.ts +5 -5
  158. package/lib/types/api/getAccountDescriptor.d.ts +4 -4
  159. package/lib/types/api/getAddress.d.ts +32 -32
  160. package/lib/types/api/getOwnershipId.d.ts +24 -24
  161. package/lib/types/api/getOwnershipProof.d.ts +28 -28
  162. package/lib/types/api/getPublicKey.d.ts +24 -24
  163. package/lib/types/api/getPublicKey.js +1 -1
  164. package/lib/types/api/index.d.ts +4 -8
  165. package/lib/types/api/init.d.ts +4 -2
  166. package/lib/types/api/loadDevice.d.ts +4 -0
  167. package/lib/types/api/loadDevice.js +3 -0
  168. package/lib/types/api/nem/index.d.ts +612 -612
  169. package/lib/types/api/nem/index.js +1 -1
  170. package/lib/types/api/nemGetAddress.d.ts +6 -6
  171. package/lib/types/api/pushTransaction.d.ts +3 -3
  172. package/lib/types/api/recoveryDevice.d.ts +9 -9
  173. package/lib/types/api/requestLogin.d.ts +25 -25
  174. package/lib/types/api/ripple/index.d.ts +21 -21
  175. package/lib/types/api/ripple/index.js +1 -1
  176. package/lib/types/api/solana/index.d.ts +23 -23
  177. package/lib/types/api/solana/index.js +1 -1
  178. package/lib/types/api/stellar/index.d.ts +582 -582
  179. package/lib/types/api/stellar/index.js +1 -1
  180. package/lib/types/api/tezos/index.d.ts +120 -120
  181. package/lib/types/api/tezos/index.js +1 -1
  182. package/lib/types/api/unlockPath.d.ts +2 -2
  183. package/lib/types/coinInfo.d.ts +231 -224
  184. package/lib/types/device.d.ts +13 -1
  185. package/lib/types/device.js +3 -1
  186. package/lib/types/fees.d.ts +19 -19
  187. package/lib/types/firmware.d.ts +1 -1
  188. package/lib/types/params.d.ts +21 -18
  189. package/lib/types/settings.d.ts +15 -9
  190. package/lib/types/utils.d.ts +1 -0
  191. package/lib/types/utils.js +3 -0
  192. package/lib/utils/addressUtils.js +2 -2
  193. package/lib/utils/assetUtils.js +3 -3
  194. package/lib/utils/deviceFeaturesUtils.js +1 -1
  195. package/lib/utils/uiPromiseManager.d.ts +2 -1
  196. package/lib/utils/uiPromiseManager.js +3 -3
  197. package/package.json +13 -13
  198. package/lib/api/checkFirmwareAuthenticity.d.ts +0 -11
  199. package/lib/api/checkFirmwareAuthenticity.js +0 -63
  200. package/lib/types/api/checkFirmwareAuthenticity.d.ts +0 -11
@@ -1,3 +1,4 @@
1
+ import { Descriptor } from '@trezor/transport';
1
2
  import type { PROTO } from '../constants';
2
3
  import type { ReleaseInfo } from './firmware';
3
4
  export type DeviceStatus = 'available' | 'occupied' | 'used';
@@ -12,6 +13,7 @@ export type StaticSessionId = `${string}@${string}:${number}`;
12
13
  export type DeviceState = {
13
14
  sessionId?: string;
14
15
  staticSessionId?: StaticSessionId;
16
+ deriveCardano?: boolean;
15
17
  };
16
18
  export type UnavailableCapabilities = {
17
19
  [key: string]: UnavailableCapability;
@@ -30,8 +32,12 @@ export type FirmwareHashCheckResult = {
30
32
  success: false;
31
33
  error: FirmwareHashCheckError;
32
34
  };
35
+ export type DeviceUniquePath = string & {
36
+ __type: 'DeviceUniquePath';
37
+ };
38
+ export declare const DeviceUniquePath: (id: string) => DeviceUniquePath;
33
39
  type BaseDevice = {
34
- path: string;
40
+ path: DeviceUniquePath;
35
41
  name: string;
36
42
  };
37
43
  export type KnownDevice = BaseDevice & {
@@ -54,6 +60,8 @@ export type KnownDevice = BaseDevice & {
54
60
  firmwareRevision: FirmwareRevisionCheckResult | null;
55
61
  firmwareHash: FirmwareHashCheckResult | null;
56
62
  };
63
+ transportSessionOwner?: undefined;
64
+ transportDescriptorType?: typeof undefined;
57
65
  };
58
66
  export type UnknownDevice = BaseDevice & {
59
67
  type: 'unacquired';
@@ -71,6 +79,8 @@ export type UnknownDevice = BaseDevice & {
71
79
  state?: typeof undefined;
72
80
  unavailableCapabilities?: typeof undefined;
73
81
  availableTranslations?: typeof undefined;
82
+ transportSessionOwner?: string;
83
+ transportDescriptorType?: typeof undefined;
74
84
  };
75
85
  export type UnreadableDevice = BaseDevice & {
76
86
  type: 'unreadable';
@@ -88,6 +98,8 @@ export type UnreadableDevice = BaseDevice & {
88
98
  state?: typeof undefined;
89
99
  unavailableCapabilities?: typeof undefined;
90
100
  availableTranslations?: typeof undefined;
101
+ transportSessionOwner?: undefined;
102
+ transportDescriptorType: Descriptor['type'];
91
103
  };
92
104
  export type Device = KnownDevice | UnknownDevice | UnreadableDevice;
93
105
  export type Features = PROTO.Features;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DeviceModelInternal = exports.FirmwareType = void 0;
3
+ exports.DeviceModelInternal = exports.DeviceUniquePath = exports.FirmwareType = void 0;
4
4
  var FirmwareType;
5
5
  (function (FirmwareType) {
6
6
  FirmwareType["BitcoinOnly"] = "bitcoin-only";
7
7
  FirmwareType["Regular"] = "regular";
8
8
  })(FirmwareType || (exports.FirmwareType = FirmwareType = {}));
9
+ const DeviceUniquePath = (id) => id;
10
+ exports.DeviceUniquePath = DeviceUniquePath;
9
11
  var protobuf_1 = require("@trezor/protobuf");
10
12
  Object.defineProperty(exports, "DeviceModelInternal", { enumerable: true, get: function () { return protobuf_1.DeviceModelInternal; } });
11
13
  //# sourceMappingURL=device.js.map
@@ -1,30 +1,30 @@
1
1
  import { Static } from '@trezor/schema-utils';
2
2
  export type FeeInfo = Static<typeof FeeInfo>;
3
3
  export declare const FeeInfo: import("@trezor/schema-utils").TObject<{
4
- blockTime: import("@sinclair/typebox").TNumber;
5
- minFee: import("@sinclair/typebox").TNumber;
6
- maxFee: import("@sinclair/typebox").TNumber;
7
- dustLimit: import("@sinclair/typebox").TNumber;
4
+ blockTime: import("@trezor/schema-utils").TNumber;
5
+ minFee: import("@trezor/schema-utils").TNumber;
6
+ maxFee: import("@trezor/schema-utils").TNumber;
7
+ dustLimit: import("@trezor/schema-utils").TNumber;
8
8
  }>;
9
9
  export type FeeLevel = Static<typeof FeeLevel>;
10
10
  export declare const FeeLevel: import("@trezor/schema-utils").TObject<{
11
- label: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"normal">, import("@sinclair/typebox").TLiteral<"economy">, import("@sinclair/typebox").TLiteral<"low">, import("@sinclair/typebox").TLiteral<"custom">]>;
12
- feePerUnit: import("@sinclair/typebox").TString;
13
- blocks: import("@sinclair/typebox").TNumber;
14
- feeLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
15
- feePerTx: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
+ label: import("@trezor/schema-utils").TUnion<[import("@trezor/schema-utils").TLiteral<"high">, import("@trezor/schema-utils").TLiteral<"normal">, import("@trezor/schema-utils").TLiteral<"economy">, import("@trezor/schema-utils").TLiteral<"low">, import("@trezor/schema-utils").TLiteral<"custom">]>;
12
+ feePerUnit: import("@trezor/schema-utils").TString;
13
+ blocks: import("@trezor/schema-utils").TNumber;
14
+ feeLimit: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TString>;
15
+ feePerTx: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TString>;
16
16
  }>;
17
17
  export type SelectFeeLevel = Static<typeof SelectFeeLevel>;
18
- export declare const SelectFeeLevel: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils").TObject<{
19
- name: import("@sinclair/typebox").TString;
20
- fee: import("@sinclair/typebox").TLiteral<"0">;
21
- feePerByte: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
22
- disabled: import("@sinclair/typebox").TLiteral<true>;
18
+ export declare const SelectFeeLevel: import("@trezor/schema-utils").TUnion<[import("@trezor/schema-utils").TObject<{
19
+ name: import("@trezor/schema-utils").TString;
20
+ fee: import("@trezor/schema-utils").TLiteral<"0">;
21
+ feePerByte: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TUndefined>;
22
+ disabled: import("@trezor/schema-utils").TLiteral<true>;
23
23
  }>, import("@trezor/schema-utils").TObject<{
24
- name: import("@sinclair/typebox").TString;
25
- fee: import("@sinclair/typebox").TString;
26
- feePerByte: import("@sinclair/typebox").TString;
27
- minutes: import("@sinclair/typebox").TNumber;
28
- total: import("@sinclair/typebox").TString;
24
+ name: import("@trezor/schema-utils").TString;
25
+ fee: import("@trezor/schema-utils").TString;
26
+ feePerByte: import("@trezor/schema-utils").TString;
27
+ minutes: import("@trezor/schema-utils").TNumber;
28
+ total: import("@trezor/schema-utils").TString;
29
29
  }>]>;
30
30
  //# sourceMappingURL=fees.d.ts.map
@@ -21,7 +21,7 @@ export type FirmwareRelease = {
21
21
  translations?: string[];
22
22
  };
23
23
  export type IntermediaryVersion = 1 | 2 | 3;
24
- export declare const IntermediaryVersion: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<1>, import("@sinclair/typebox").TLiteral<2>, import("@sinclair/typebox").TLiteral<3>]>;
24
+ export declare const IntermediaryVersion: import("@trezor/schema-utils").TUnion<[import("@trezor/schema-utils").TLiteral<1>, import("@trezor/schema-utils").TLiteral<2>, import("@trezor/schema-utils").TLiteral<3>]>;
25
25
  export type ReleaseInfo = {
26
26
  changelog: FirmwareRelease[] | null;
27
27
  release: FirmwareRelease;
@@ -1,13 +1,15 @@
1
1
  import { TSchema, Static } from '@trezor/schema-utils';
2
- import { DeviceState } from './device';
2
+ import { DeviceState, DeviceUniquePath } from './device';
3
3
  import { ErrorCode } from '../constants/errors';
4
4
  export interface DeviceIdentity {
5
- path?: string;
6
- state?: string | DeviceState;
5
+ path?: DeviceUniquePath;
6
+ state?: DeviceState;
7
7
  instance?: number;
8
8
  }
9
9
  export interface CommonParams {
10
- device?: DeviceIdentity;
10
+ device?: DeviceIdentity & {
11
+ state?: DeviceState | string;
12
+ };
11
13
  useEmptyPassphrase?: boolean;
12
14
  useEventListener?: boolean;
13
15
  allowSeedlessDevice?: boolean;
@@ -16,6 +18,7 @@ export interface CommonParams {
16
18
  skipFinalReload?: boolean;
17
19
  useCardanoDerivation?: boolean;
18
20
  chunkify?: boolean;
21
+ __info?: boolean;
19
22
  }
20
23
  export type Params<T> = CommonParams & T & {
21
24
  bundle?: undefined;
@@ -24,7 +27,7 @@ interface Bundle<T> {
24
27
  bundle: T[];
25
28
  }
26
29
  export declare const Bundle: <T extends TSchema>(type: T) => import("@trezor/schema-utils").TObject<{
27
- bundle: import("@sinclair/typebox").TArray<T>;
30
+ bundle: import("@trezor/schema-utils").TArray<T>;
28
31
  }>;
29
32
  export type BundledParams<T> = CommonParams & Bundle<T>;
30
33
  export interface CommonParamsWithCoin extends CommonParams {
@@ -47,7 +50,7 @@ export interface SuccessWithDevice<T> extends Success<T> {
47
50
  }
48
51
  export type Response<T> = Promise<SuccessWithDevice<T> | Unsuccessful>;
49
52
  export type DerivationPath = string | number[];
50
- export declare const DerivationPath: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>;
53
+ export declare const DerivationPath: import("@trezor/schema-utils").TUnion<[import("@trezor/schema-utils").TString, import("@trezor/schema-utils").TArray<import("@trezor/schema-utils").TNumber>]>;
51
54
  type ProtoWithExtendedAddressN<T, A, R> = Omit<Extract<T, {
52
55
  address_n: A;
53
56
  }>, 'address_n'> & {
@@ -60,11 +63,11 @@ export type ProtoWithDerivationPath<T> = ProtoWithoutAddressN<T, number[]> | Pro
60
63
  export type ProtoWithAddressN<P extends ProtoWithDerivationPath<any>> = P extends ProtoWithDerivationPath<infer T> ? T : unknown;
61
64
  export type GetAddress = Static<typeof GetAddress>;
62
65
  export declare const GetAddress: import("@trezor/schema-utils").TObject<{
63
- path: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>;
64
- address: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
65
- showOnTrezor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
66
- chunkify: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
67
- useEventListener: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
66
+ path: import("@trezor/schema-utils").TUnion<[import("@trezor/schema-utils").TString, import("@trezor/schema-utils").TArray<import("@trezor/schema-utils").TNumber>]>;
67
+ address: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TString>;
68
+ showOnTrezor: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TBoolean>;
69
+ chunkify: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TBoolean>;
70
+ useEventListener: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TBoolean>;
68
71
  }>;
69
72
  export interface Address {
70
73
  address: string;
@@ -73,16 +76,16 @@ export interface Address {
73
76
  }
74
77
  export type GetPublicKey = Static<typeof GetPublicKey>;
75
78
  export declare const GetPublicKey: import("@trezor/schema-utils").TObject<{
76
- path: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>;
77
- showOnTrezor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
78
- suppressBackupWarning: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
79
- chunkify: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
79
+ path: import("@trezor/schema-utils").TUnion<[import("@trezor/schema-utils").TString, import("@trezor/schema-utils").TArray<import("@trezor/schema-utils").TNumber>]>;
80
+ showOnTrezor: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TBoolean>;
81
+ suppressBackupWarning: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TBoolean>;
82
+ chunkify: import("@trezor/schema-utils").TOptional<import("@trezor/schema-utils").TBoolean>;
80
83
  }>;
81
84
  export type PublicKey = Static<typeof PublicKey>;
82
85
  export declare const PublicKey: import("@trezor/schema-utils").TObject<{
83
- publicKey: import("@sinclair/typebox").TString;
84
- path: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>;
85
- serializedPath: import("@sinclair/typebox").TString;
86
+ publicKey: import("@trezor/schema-utils").TString;
87
+ path: import("@trezor/schema-utils").TArray<import("@trezor/schema-utils").TNumber>;
88
+ serializedPath: import("@trezor/schema-utils").TString;
86
89
  }>;
87
90
  export {};
88
91
  //# sourceMappingURL=params.d.ts.map
@@ -10,22 +10,16 @@ export interface ConnectSettingsPublic {
10
10
  manifest?: Manifest;
11
11
  connectSrc?: string;
12
12
  debug?: boolean;
13
- hostLabel?: string;
14
- hostIcon?: string;
15
13
  popup?: boolean;
16
14
  transportReconnect?: boolean;
17
- webusb?: boolean;
18
15
  transports?: (Transport['name'] | Transport | (new (...args: any[]) => Transport))[];
19
16
  pendingTransportEvent?: boolean;
20
17
  lazyLoad?: boolean;
21
18
  interactionTimeout?: number;
22
19
  trustedHost: boolean;
23
- coreMode?: 'auto' | 'popup' | 'iframe';
24
- _extendWebextensionLifetime?: boolean;
25
- _sessionsBackgroundUrl?: string;
26
- deeplinkOpen?: (url: string) => void;
27
- deeplinkCallbackUrl?: string;
20
+ _sessionsBackgroundUrl?: null | string;
28
21
  binFilesBaseUrl?: string;
22
+ enableFirmwareHashCheck?: boolean;
29
23
  }
30
24
  export interface ConnectSettingsInternal {
31
25
  origin?: string;
@@ -41,7 +35,19 @@ export interface ConnectSettingsInternal {
41
35
  proxy?: Proxy;
42
36
  sharedLogger?: boolean;
43
37
  useCoreInPopup?: boolean;
38
+ }
39
+ export interface ConnectSettingsWeb {
40
+ hostLabel?: string;
41
+ hostIcon?: string;
42
+ coreMode?: 'auto' | 'popup' | 'iframe' | 'deeplink';
43
+ }
44
+ export interface ConnectSettingsWebextension {
45
+ _extendWebextensionLifetime?: boolean;
46
+ }
47
+ export interface ConnectSettingsMobile {
44
48
  deeplinkUrl: string;
49
+ deeplinkOpen?: (url: string) => void;
50
+ deeplinkCallbackUrl?: string;
45
51
  }
46
- export type ConnectSettings = ConnectSettingsPublic & ConnectSettingsInternal;
52
+ export type ConnectSettings = ConnectSettingsPublic & ConnectSettingsInternal & ConnectSettingsWeb & ConnectSettingsWebextension & ConnectSettingsMobile;
47
53
  //# sourceMappingURL=settings.d.ts.map
@@ -12,4 +12,5 @@ export type MessageFactoryFn<Group, Event> = UnionToIntersection<Event extends {
12
12
  type: Event['type'];
13
13
  payload: undefined;
14
14
  } : never>;
15
+ export declare const typedObjectKeys: <T extends Record<any, any>>(obj: T) => Array<keyof T>;
15
16
  //# sourceMappingURL=utils.d.ts.map
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typedObjectKeys = void 0;
4
+ const typedObjectKeys = (obj) => Object.keys(obj);
5
+ exports.typedObjectKeys = typedObjectKeys;
3
6
  //# sourceMappingURL=utils.js.map
@@ -9,7 +9,7 @@ const isValidBase58Address = (address, network) => {
9
9
  return false;
10
10
  }
11
11
  }
12
- catch (e) {
12
+ catch {
13
13
  return false;
14
14
  }
15
15
  return true;
@@ -21,7 +21,7 @@ const isValidBech32Address = (address, network) => {
21
21
  return false;
22
22
  }
23
23
  }
24
- catch (e) {
24
+ catch {
25
25
  return false;
26
26
  }
27
27
  return true;
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryLocalAssetRequire = void 0;
4
+ const utils_1 = require("@trezor/utils");
4
5
  const types_1 = require("../types");
5
- const isDeviceModel = (model) => {
6
- return Object.values(types_1.DeviceModelInternal).includes(model);
7
- };
6
+ const isDeviceModel = (model) => (0, utils_1.isArrayMember)(model, Object.values(types_1.DeviceModelInternal));
8
7
  const firmwareAssets = {
9
8
  [types_1.DeviceModelInternal.T1B1]: require('@trezor/connect-common/files/firmware/t1b1/releases.json'),
10
9
  [types_1.DeviceModelInternal.T2T1]: require('@trezor/connect-common/files/firmware/t2t1/releases.json'),
11
10
  [types_1.DeviceModelInternal.T2B1]: require('@trezor/connect-common/files/firmware/t2b1/releases.json'),
12
11
  [types_1.DeviceModelInternal.T3B1]: require('@trezor/connect-common/files/firmware/t3b1/releases.json'),
13
12
  [types_1.DeviceModelInternal.T3T1]: require('@trezor/connect-common/files/firmware/t3t1/releases.json'),
13
+ [types_1.DeviceModelInternal.T3W1]: require('@trezor/connect-common/files/firmware/t3w1/releases.json'),
14
14
  };
15
15
  const tryLocalAssetRequire = (url) => {
16
16
  const fileUrl = url.split('?')[0];
@@ -88,7 +88,7 @@ const getUnavailableCapabilities = (features, coins) => {
88
88
  if (info.shortcut === 'SOL' || info.shortcut === 'DSOL') {
89
89
  return !capabilities.includes('Capability_Solana');
90
90
  }
91
- return !capabilities.includes(`Capability_${info.name}`);
91
+ return !(0, utils_1.isArrayMember)(`Capability_${info.name}`, capabilities);
92
92
  });
93
93
  unavailable.forEach(info => {
94
94
  list[info.shortcut.toLowerCase()] = 'no-capability';
@@ -1,10 +1,11 @@
1
1
  import { UiPromiseCreator, UiPromiseResponse } from '../events';
2
+ import { DeviceUniquePath } from '../types/device';
2
3
  export declare const createUiPromiseManager: (interactionTimeout: () => void) => {
3
4
  exists: (type: UiPromiseResponse["type"]) => boolean;
4
5
  create: UiPromiseCreator;
5
6
  resolve: (event: UiPromiseResponse) => boolean;
6
7
  rejectAll: (error: Error) => void;
7
- disconnected: (devicePath: string) => boolean;
8
+ disconnected: (devicePath: DeviceUniquePath) => boolean;
8
9
  get: <T extends UiPromiseResponse["type"]>(type: T) => Promise<Extract<import("../events").UiResponsePopupHandshake, {
9
10
  type: T;
10
11
  }> | Extract<import("../events").UiResponsePermission, {
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createUiPromiseManager = void 0;
4
- const events_1 = require("../events");
5
4
  const utils_1 = require("@trezor/utils");
5
+ const events_1 = require("../events");
6
6
  const createUiPromiseManager = (interactionTimeout) => {
7
7
  let _uiPromises = [];
8
8
  const exists = (type) => _uiPromises.some(p => p.id === type);
@@ -28,10 +28,10 @@ const createUiPromiseManager = (interactionTimeout) => {
28
28
  _uiPromises = [];
29
29
  };
30
30
  const disconnected = (devicePath) => {
31
- const [toResolve, toKeep] = (0, utils_1.arrayPartition)(_uiPromises, (p) => { var _a; return ((_a = p.device) === null || _a === void 0 ? void 0 : _a.getDevicePath()) === devicePath && p.id === events_1.DEVICE.DISCONNECT; });
31
+ const [toResolve, toKeep] = (0, utils_1.arrayPartition)(_uiPromises, (p) => { var _a; return ((_a = p.device) === null || _a === void 0 ? void 0 : _a.getUniquePath()) === devicePath && p.id === events_1.DEVICE.DISCONNECT; });
32
32
  toResolve.forEach(p => p.resolve({ type: events_1.DEVICE.DISCONNECT }));
33
33
  _uiPromises = toKeep;
34
- return !!toResolve.length || toKeep.some(p => { var _a; return ((_a = p.device) === null || _a === void 0 ? void 0 : _a.getDevicePath()) === devicePath; });
34
+ return !!toResolve.length || toKeep.some(p => { var _a; return ((_a = p.device) === null || _a === void 0 ? void 0 : _a.getUniquePath()) === devicePath; });
35
35
  };
36
36
  const get = (type) => {
37
37
  var _a;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trezor/connect",
3
- "version": "9.4.3-beta.1",
3
+ "version": "9.4.3",
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.",
@@ -70,19 +70,19 @@
70
70
  },
71
71
  "dependencies": {
72
72
  "@babel/preset-typescript": "^7.24.7",
73
- "@ethereumjs/common": "^4.3.0",
74
- "@ethereumjs/tx": "^5.3.0",
73
+ "@ethereumjs/common": "^4.4.0",
74
+ "@ethereumjs/tx": "^5.4.0",
75
75
  "@fivebinaries/coin-selection": "2.2.1",
76
- "@trezor/blockchain-link": "2.3.2-beta.1",
77
- "@trezor/blockchain-link-types": "1.2.2-beta.1",
78
- "@trezor/connect-analytics": "1.2.1",
79
- "@trezor/connect-common": "0.2.3-beta.1",
80
- "@trezor/protobuf": "1.2.3-beta.1",
76
+ "@trezor/blockchain-link": "2.3.2",
77
+ "@trezor/blockchain-link-types": "1.2.2",
78
+ "@trezor/connect-analytics": "1.2.2",
79
+ "@trezor/connect-common": "0.2.3",
80
+ "@trezor/protobuf": "1.2.3",
81
81
  "@trezor/protocol": "1.2.1",
82
- "@trezor/schema-utils": "1.2.1",
83
- "@trezor/transport": "1.3.3-beta.1",
84
- "@trezor/utils": "9.2.2-beta.1",
85
- "@trezor/utxo-lib": "2.2.1",
82
+ "@trezor/schema-utils": "1.2.2",
83
+ "@trezor/transport": "1.3.3",
84
+ "@trezor/utils": "9.2.2",
85
+ "@trezor/utxo-lib": "2.2.2",
86
86
  "blakejs": "^1.2.1",
87
87
  "bs58": "^6.0.0",
88
88
  "bs58check": "^4.0.0",
@@ -103,7 +103,7 @@
103
103
  "node-libs-browser": "^2.2.1",
104
104
  "ts-node": "^10.9.1",
105
105
  "tsx": "^4.16.3",
106
- "webpack": "^5.94.0",
106
+ "webpack": "^5.96.1",
107
107
  "ws": "^8.18.0"
108
108
  },
109
109
  "peerDependencies": {
@@ -1,11 +0,0 @@
1
- import { AbstractMethod } from '../core/AbstractMethod';
2
- import { CheckFirmwareAuthenticityParams } from '../types/api/checkFirmwareAuthenticity';
3
- export default class CheckFirmwareAuthenticity extends AbstractMethod<'checkFirmwareAuthenticity', CheckFirmwareAuthenticityParams> {
4
- init(): void;
5
- run(): Promise<{
6
- expectedFirmwareHash: string;
7
- actualFirmwareHash: string;
8
- valid: boolean;
9
- }>;
10
- }
11
- //# sourceMappingURL=checkFirmwareAuthenticity.d.ts.map
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("crypto");
4
- const utils_1 = require("@trezor/utils");
5
- const AbstractMethod_1 = require("../core/AbstractMethod");
6
- const firmware_1 = require("./firmware");
7
- const firmwareInfo_1 = require("../data/firmwareInfo");
8
- const constants_1 = require("../constants");
9
- const types_1 = require("../types");
10
- const paramsValidator_1 = require("./common/paramsValidator");
11
- class CheckFirmwareAuthenticity extends AbstractMethod_1.AbstractMethod {
12
- init() {
13
- this.useEmptyPassphrase = true;
14
- this.requiredPermissions = ['management'];
15
- this.useDeviceState = false;
16
- const { payload } = this;
17
- (0, paramsValidator_1.validateParams)(payload, [{ name: 'baseUrl', type: 'string' }]);
18
- this.params = { baseUrl: payload.baseUrl };
19
- }
20
- async run() {
21
- var _a, _b;
22
- const { device } = this;
23
- if (!device.firmwareRelease) {
24
- throw constants_1.ERRORS.TypedError('Runtime', 'device.firmwareRelease is not set');
25
- }
26
- const btcOnly = device.firmwareType === types_1.FirmwareType.BitcoinOnly;
27
- try {
28
- const version = device.getVersion();
29
- const release = (0, firmwareInfo_1.getReleases)((_a = device.features) === null || _a === void 0 ? void 0 : _a.internal_model).find(r => version &&
30
- utils_1.versionUtils.isVersionArray(version) &&
31
- utils_1.versionUtils.isEqual(r.version, version));
32
- if (!release) {
33
- throw constants_1.ERRORS.TypedError('Runtime', 'no firmware found for this device');
34
- }
35
- const fw = await (0, firmware_1.getBinary)({
36
- baseUrl: (_b = this.params.baseUrl) !== null && _b !== void 0 ? _b : 'https://data.trezor.io',
37
- release,
38
- btcOnly,
39
- });
40
- if (!fw) {
41
- throw constants_1.ERRORS.TypedError('Runtime', 'checkFirmwareAuthenticity: firmware binary not found');
42
- }
43
- const { hash: expectedFirmwareHash, challenge } = (0, firmware_1.calculateFirmwareHash)(device.features.major_version, (0, firmware_1.stripFwHeaders)(fw), (0, crypto_1.randomBytes)(32));
44
- const result = await this.device
45
- .getCommands()
46
- .typedCall('GetFirmwareHash', 'FirmwareHash', {
47
- challenge,
48
- });
49
- const { message } = result;
50
- const { hash: actualFirmwareHash } = message;
51
- return {
52
- expectedFirmwareHash,
53
- actualFirmwareHash,
54
- valid: actualFirmwareHash === expectedFirmwareHash,
55
- };
56
- }
57
- catch (e) {
58
- throw constants_1.ERRORS.TypedError('Runtime', `${e}`);
59
- }
60
- }
61
- }
62
- exports.default = CheckFirmwareAuthenticity;
63
- //# sourceMappingURL=checkFirmwareAuthenticity.js.map
@@ -1,11 +0,0 @@
1
- import type { Response, CommonParams } from '../params';
2
- export interface CheckFirmwareAuthenticityResponse {
3
- expectedFirmwareHash: string;
4
- actualFirmwareHash: string;
5
- valid: boolean;
6
- }
7
- export type CheckFirmwareAuthenticityParams = CommonParams & {
8
- baseUrl?: string;
9
- };
10
- export declare function checkFirmwareAuthenticity(params: CheckFirmwareAuthenticityParams): Response<CheckFirmwareAuthenticityResponse>;
11
- //# sourceMappingURL=checkFirmwareAuthenticity.d.ts.map