@trezor/connect 10.0.0-beta.3 → 10.0.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 +61 -62
- package/README.md +2 -2
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,69 +1,28 @@
|
|
|
1
1
|
> **Upgrading from Connect 9?**
|
|
2
2
|
>
|
|
3
|
-
> - [Migration guide: Connect 9 → 10](https://connect.trezor.io/10.0.
|
|
4
|
-
> - [New Connect flow in Trezor Suite](https://connect.trezor.io/10.0.
|
|
3
|
+
> - [Migration guide: Connect 9 → 10](https://connect.trezor.io/10.0.1/guides/migrating-to-connect-10) — what you need to change in your code, as a checklist.
|
|
4
|
+
> - [New Connect flow in Trezor Suite](https://connect.trezor.io/10.0.1/guides/new-connect-flow-in-trezor-suite) — how the Suite-hosted flow works and why.
|
|
5
5
|
|
|
6
|
-
| Package | Stable |
|
|
7
|
-
| :------------------------------: | :----: |
|
|
8
|
-
| npm @trezor/connect |
|
|
9
|
-
| npm @trezor/connect-web |
|
|
10
|
-
| npm @trezor/connect-webextension |
|
|
11
|
-
| npm @trezor/connect-mobile |
|
|
6
|
+
| Package | Stable | Canary |
|
|
7
|
+
| :------------------------------: | :----: | :----: |
|
|
8
|
+
| npm @trezor/connect | 10.0.1 | - |
|
|
9
|
+
| npm @trezor/connect-web | 10.0.1 | - |
|
|
10
|
+
| npm @trezor/connect-webextension | 10.0.1 | - |
|
|
11
|
+
| npm @trezor/connect-mobile | 10.0.1 | - |
|
|
12
12
|
|
|
13
|
-
| Deployment | Stable |
|
|
14
|
-
| :----------------: | :----: |
|
|
15
|
-
| connect.trezor.io/ |
|
|
13
|
+
| Deployment | Stable | Canary |
|
|
14
|
+
| :----------------: | :----: | :----: |
|
|
15
|
+
| connect.trezor.io/ | 10.0.1 | - |
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Use [connect.trezor.io/10.0.1](https://connect.trezor.io/10.0.1/) to access this release of Connect Explorer. The persistent link [connect.trezor.io/10](https://connect.trezor.io/10/) points to the latest stable version.
|
|
18
18
|
|
|
19
|
-
# 10.0.
|
|
19
|
+
# 10.0.1
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Fixes communication between `@trezor/connect-webextension` and Suite Web due to message channel ID mismatch in version 10.0.0
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- **`sendTransaction`** — new Bitcoin method that composes, signs and (optionally, `push`) broadcasts a transaction in one call. This is the replacement for `composeTransaction`'s old signing overload (see Breaking). (919967d6a43)
|
|
26
|
-
- **`composePsbt`** — new device-less method that composes a Bitcoin transaction from PSBT data plus account addresses/UTXOs, returning a precomposed result with `version` and `locktime` (no permissions required). (019eada6052)
|
|
27
|
-
- **`solanaSignMessage`** — new method to sign Solana off-chain messages (OCMS v1): plain text plus optional signer public keys, with the device serializing the envelope. (1611924b04b)
|
|
28
|
-
- **EIP-7702 signing.** `ethereumSignTransaction` now signs EIP-7702 set-code (type-4) transactions — pass `authorizationList` on an EIP-1559 transaction, and the parsed `authorizationList` is returned on the result. (6aeeda9b667)
|
|
29
|
-
- **Stellar Soroban.** `stellarSignTransaction` now supports the `InvokeHostFunction` operation (auth entries, `SorobanTransactionData` extension, full sint64 nonce precision), gated on firmware 2.12.4. (ea9b52e4402)
|
|
30
|
-
- **Node entry point.** `@trezor/connect` now ships a Node build (on top of `@trezor/connect-core`) that injects Bridge and NodeUSB transports by default, so a Node consumer can install only `@trezor/connect` and talk to a device over bridge or USB. Browser (`[bridge, WebUSB]`) and react-native (`[bridge]`) defaults are unchanged. (ce5690f82a7)
|
|
31
|
-
- **`FIRMWARE_TYPE_CHANGED`** — new UI event (payload `{ device }`) emitted during a firmware update when the installed firmware type changes. (c2e11a9572b)
|
|
32
|
-
- `signMessage` accepts an optional `scriptType` param that overrides the script type inferred from the derivation path (e.g. for custom purpose-45 paths). (390fdd4c819)
|
|
33
|
-
- `getAccountInfo` and `discoverAccounts` now accept index-less **root** derivation paths (min path length 2) for single-account coin types, e.g. the Solana root path. (31fe1d9f725)
|
|
34
|
-
- `getAccountInfo` and `blockchainEstimateFee` accept a new optional `privatePending` param (in-flight nonces/txids) for EVM blockbook discovery. (754da40740d)
|
|
35
|
-
- `@trezor/connect-common` now exports `GRANTABLE_PERMISSIONS`, the canonical allowlist of upfront-grantable permission scopes for building `requestedPermissions` UIs. (5a8804c06f9)
|
|
36
|
-
- New `test-unsigned-nightly` value on the public `FirmwareChannel` type (a nightly/dev release channel). (fe1eb6ac0ed)
|
|
37
|
-
|
|
38
|
-
## Behavior & fixes
|
|
39
|
-
|
|
40
|
-
- **Named EVM inputs resolve to hex.** `getAccountInfo` now returns the backend-resolved hex address in `descriptor` for named EVM inputs (e.g. `.eth`), instead of echoing the name back. (de776b8cc76)
|
|
41
|
-
- **Pending BTC tx size.** The optimistic pending Bitcoin transaction now reports `size` in bytes (`byteLength`) instead of weight units (~4×), matching blockbook's byte-valued `size`. (2ec843049c0)
|
|
42
|
-
- **EVM slip44.** `getCoinInfo` now returns `slip44: 60` for every EVM network except ETC (61), rather than per-chain registry values — e.g. RHC and HYPE change from 4663/999 to 60. (8c4cbf2bf44)
|
|
43
|
-
- **`selectAccount` unsupported coins.** A Connect-valid but Suite-unmodeled coin (dash, dgb, xtz, testnets, …) is now rejected up front with the distinct `Method_UnsupportedCoinForHost` error instead of a generic modal. (2877a16d71d)
|
|
44
|
-
- **Manifest name sanitizing.** `manifest.appName` (and THP `hostName`) are sanitized — control chars stripped, whitespace runs collapsed, trimmed; a name that becomes empty is rejected. `appName` is also now strictly required at manifest parse (as beta.1 announced). (c6a11d3a93b, fe8e15c7fe7)
|
|
45
|
-
- **Solana.** `solanaSignTransaction` no longer fails precompose for transactions using address lookup tables (467c4002c3f), and rejects unsupported v1 transactions upfront with `Method_InvalidParameter` (d24fa8a5d8c). `solanaComposeTransaction` now returns token metadata (`newAccountProgramName`, `tokenAccountInfo`) in `additionalInfo` for pre-serialized token transfers, fixing Solana token trades. (bb7502fedc8)
|
|
46
|
-
- **Backend reconnect back-off.** A dropped blockchain backend no longer triggers a tight reconnect loop / Solana reconnect storm — reconnect delay is clamped to 1–20s, the attempt counter resets only after a connection holds for 30s, and back-off attempts reject with `Backend_Disconnected` rather than forcing an immediate re-sync (explicit reconnects still bypass the wait). (f02219132e6, d1fc98016c3)
|
|
47
|
-
- **TRON.** Default fee info now exposes real `minFee=1` / `maxFee=15,000,000,000` SUN instead of the `-1`/unknown placeholders (f124fe96ceb), and TRX/tTRX block notifications are throttled together with EVM at ~12s per block event (2524bc4d2ca).
|
|
48
|
-
- `ethereumSignTypedData` no longer requires the `eip712-domain-only` firmware capability for `EIP712Domain`-only payloads. (d4ead6f1780)
|
|
49
|
-
- **BTC custom-fee fallback** now composes a single transaction at the coin's `minFee` instead of scanning fees down from the top level, changing which custom fee is offered when no standard level is affordable. (7988531569c)
|
|
50
|
-
- **Firmware rollout bucketing** no longer permanently excludes the ~1% of devices that hash into the top bucket, even at 100% rollout. (3debf109035)
|
|
51
|
-
- On THP devices, the PIN matrix is now requested **before** the passphrase entry. (b2c3d73ce4c)
|
|
52
|
-
|
|
53
|
-
## Breaking since beta.1
|
|
54
|
-
|
|
55
|
-
These mostly affect **custom-UI and host (Suite-style) integrations**; a couple touch public method/result shapes.
|
|
56
|
-
|
|
57
|
-
- **`UI_EVENT` split.** The public `UI_REQUEST` constant map is split into `UI_EVENTS` (fire-and-forget notifications) and `UI_REQUESTS` (messages needing a `UI_RESPONSE`), a new `UI_REQUEST`/`UI_REQUESTS` event channel is added, and several members are renamed (e.g. `TRANSPORT`→`TRANSPORT_MISSING`, `INVALID_PIN`→`PIN_INVALID`). The event payloads were also reshaped: `requestId` was removed from `UI_EVENT` payloads (`callId` remains) and is now emitted on standalone `UI_REQUEST` payloads. Migrate `UI_REQUEST.*` references to `UI_EVENTS.*` / `UI_REQUESTS.*`. (8d5768be292, b372b090361, f26a6147e01)
|
|
58
|
-
- **`composeTransaction` is precompose-only.** Its signing/broadcast overload (`ComposeParams` → `SignedTransaction`, including `push`) is removed — migrate signing+push flows to the new `sendTransaction`. (919967d6a43)
|
|
59
|
-
- **`ethereumGetPublicKey.displayablePublicKey`** is now the hex-encoded compressed public key (byte-identical to `publicKey`, matching what firmware shows on screen) instead of the xpub. (a508e4ab6e4)
|
|
60
|
-
- **`blockchainEvmRpcGetChainId`** (formerly `blockchainValidateEvmRpcUrl` in beta.1) now takes only `{ url }` and returns `{ chainId }`, instead of validating a supplied chainId and returning `{ valid, actualChainId }`. (39fa982888d)
|
|
61
|
-
- **`SELECT_FEE` event** payload now carries `feeLevels` as `FeeLevel[]` (only composable/valid levels), and the `SelectFeeLevel` type is removed from `@trezor/connect-common`. (a300e1be087)
|
|
62
|
-
- **`RECEIVE_FEE` response** payload is restructured: use `{ type: 'select-fee', value }` and `{ type: 'select-fee-custom', value }` (replacing `'compose-custom'` / `'send'`). (eedb2fdde5f)
|
|
63
|
-
- **`UPDATE_CUSTOM_FEE` UI event removed.** The `ui-update_custom_fee` member of the `UI_REQUEST` map and its `UpdateCustomFee` type are removed from `@trezor/connect-common`; custom-UI code that listened for it should drop the handler. (4f5b240fcb0)
|
|
64
|
-
- **`KnownDevice.availableTranslations`** now maps language codes to `TranslationMetadata` objects instead of plain strings. (26f0cd334c5)
|
|
23
|
+
# 10.0.0
|
|
65
24
|
|
|
66
|
-
|
|
25
|
+
This core ships in `@trezor/connect` 10.0.0 for Node, in Trezor Suite 26.9.2 for web and desktop, and in Trezor Suite Lite 26.8.1 for mobile.
|
|
67
26
|
|
|
68
27
|
Connect 10 moves the Connect core out of the self-hosted iframe + popup and into **Trezor Suite**, which now hosts the core and renders every approval, PIN, passphrase and confirmation screen. Your app stays a thin client calling the same `TrezorConnect` methods — nothing to install, and it works whether or not Suite desktop is running. Alongside the move, the SDK gains a privacy-friendly account picker (`selectAccount`), granular per-coin permissions, and much smaller ESM-only client packages.
|
|
69
28
|
|
|
@@ -81,7 +40,7 @@ We strongly recommend keeping the default **`coreMode: 'auto'`**: users who have
|
|
|
81
40
|
|
|
82
41
|
The web flow relies on a bootstrap iframe + popup to exchange messages with Suite Web, so integrator pages must ship the right headers for that channel to work: a Content-Security-Policy that permits embedding the Suite Web origin (`frame-src`/`child-src` for `https://suite.trezor.io`), and a `Cross-Origin-Opener-Policy` that does not sever the popup's `window.opener` (avoid `same-origin` on the hosting page — use `same-origin-allow-popups` or `unsafe-none`). Missing or over-strict headers surface as a handshake timeout when the popup opens.
|
|
83
42
|
|
|
84
|
-
Because the active device is chosen and unlocked **in Suite**, users no longer pick a device or re-enter a passphrase per request as they did in the old popup — passphrase handling is centralized in Suite's device management (see the [passphrases & hidden wallets guide](https://trezor.io/guides/backups-recovery/advanced-wallets/passphrases-and-hidden-wallets) and the [New Connect flow in Trezor Suite guide](https://connect.trezor.io/10.0.0
|
|
43
|
+
Because the active device is chosen and unlocked **in Suite**, users no longer pick a device or re-enter a passphrase per request as they did in the old popup — passphrase handling is centralized in Suite's device management (see the [passphrases & hidden wallets guide](https://trezor.io/guides/backups-recovery/advanced-wallets/passphrases-and-hidden-wallets) and the [New Connect flow in Trezor Suite guide](https://connect.trezor.io/10.0.0/guides/new-connect-flow-in-trezor-suite)).
|
|
85
44
|
|
|
86
45
|
**Required manifest change:** `manifest.appName` is now **required**, and an optional `manifest.appIcon` (URL, sized for a 64px circle) is shown in Suite's permission prompt.
|
|
87
46
|
|
|
@@ -112,16 +71,43 @@ Permissions are no longer coarse read/write grants. Each method requires narrow
|
|
|
112
71
|
|
|
113
72
|
Because the Connect core now lives in Trezor Suite, the packages that third-party apps install (`@trezor/connect-web`, `-webextension`, `-mobile`) are thin clients that just route calls to Suite. They no longer bundle the core's heavy dependencies (transports, crypto, coin logic), so installs and bundles are dramatically smaller. As part of this, coin-family code has been reorganized into per-network packages (the former `@trezor/coins-*` are renamed to `@trezor/network-*`) that load their heavier dependencies on demand.
|
|
114
73
|
|
|
115
|
-
|
|
74
|
+
## New & improved
|
|
116
75
|
|
|
117
76
|
- **Tron** support (`tronGetAddress`, `tronSignTransaction`), backed by the new `@trezor/network-tron` package.
|
|
77
|
+
- **`sendTransaction`** — new Bitcoin method that composes, signs and (optionally, `push`) broadcasts a transaction in one call. This is the replacement for `composeTransaction`'s old signing overload (see Breaking). (919967d6a43)
|
|
78
|
+
- **`composePsbt`** — new device-less method that composes a Bitcoin transaction from PSBT data plus account addresses/UTXOs, returning a precomposed result with `version` and `locktime` (no permissions required). (019eada6052)
|
|
79
|
+
- **`solanaSignMessage`** — new method to sign Solana off-chain messages (OCMS v1): plain text plus optional signer public keys, with the device serializing the envelope. (1611924b04b)
|
|
80
|
+
- **EIP-7702 signing.** `ethereumSignTransaction` now signs EIP-7702 set-code (type-4) transactions — pass `authorizationList` on an EIP-1559 transaction, and the parsed `authorizationList` is returned on the result. (6aeeda9b667)
|
|
81
|
+
- **Stellar Soroban.** `stellarSignTransaction` now supports the `InvokeHostFunction` operation (auth entries, `SorobanTransactionData` extension, full sint64 nonce precision), gated on firmware 2.12.4. (ea9b52e4402)
|
|
82
|
+
- **Node entry point.** `@trezor/connect` now ships a Node build (on top of `@trezor/connect-core`) that injects Bridge and NodeUSB transports by default, so a Node consumer can install only `@trezor/connect` and talk to a device over bridge or USB. Browser (`[bridge, WebUSB]`) and react-native (`[bridge]`) defaults are unchanged. (ce5690f82a7)
|
|
83
|
+
- **`FIRMWARE_TYPE_CHANGED`** — new UI event (payload `{ device }`) emitted during a firmware update when the installed firmware type changes. (c2e11a9572b)
|
|
84
|
+
- `signMessage` accepts an optional `scriptType` param that overrides the script type inferred from the derivation path (e.g. for custom purpose-45 paths). (390fdd4c819)
|
|
118
85
|
- `solanaSignTransaction` accepts a `chunkify` flag that renders addresses on the device in 4-character chunks, matching `solanaGetAddress` and other coins' sign flows (requires firmware with chunked-address support in the Solana `SignTx` flow).
|
|
86
|
+
- `getAccountInfo` and `discoverAccounts` now accept index-less **root** derivation paths (min path length 2) for single-account coin types, e.g. the Solana root path. (31fe1d9f725)
|
|
87
|
+
- `getAccountInfo` and `blockchainEstimateFee` accept a new optional `privatePending` param (in-flight nonces/txids) for EVM blockbook discovery. (754da40740d)
|
|
119
88
|
- `ethereumSignTypedData` now computes the required hashes internally for T1B1 firmware, so callers no longer need `@trezor/connect-plugin-ethereum` to pre-compute them — passing only `data` works on all models (caller-provided hashes still take precedence).
|
|
120
89
|
- The `*GetPublicKey` methods (`getPublicKey`, `ethereumGetPublicKey`, `cardanoGetPublicKey`, …) now share a **unified response shape** across coins, including a canonical `displayablePublicKey` string that any consumer can render without per-coin branching. This unification is also why the dedicated `getAccountDescriptor` method could be removed (see Breaking changes).
|
|
90
|
+
- `@trezor/connect-common` now exports `GRANTABLE_PERMISSIONS`, the canonical allowlist of upfront-grantable permission scopes for building `requestedPermissions` UIs. (5a8804c06f9)
|
|
91
|
+
- New `test-unsigned-nightly` value on the public `FirmwareChannel` type (a nightly/dev release channel). (fe1eb6ac0ed)
|
|
92
|
+
|
|
93
|
+
## Behavior & fixes
|
|
94
|
+
|
|
95
|
+
- **Named EVM inputs resolve to hex.** `getAccountInfo` now returns the backend-resolved hex address in `descriptor` for named EVM inputs (e.g. `.eth`), instead of echoing the name back. (de776b8cc76)
|
|
96
|
+
- **Pending BTC tx size.** The optimistic pending Bitcoin transaction now reports `size` in bytes (`byteLength`) instead of weight units (~4×), matching blockbook's byte-valued `size`. (2ec843049c0)
|
|
97
|
+
- **EVM slip44.** `getCoinInfo` now returns `slip44: 60` for every EVM network except ETC (61), rather than per-chain registry values — e.g. RHC and HYPE change from 4663/999 to 60. (8c4cbf2bf44)
|
|
98
|
+
- **`selectAccount` unsupported coins.** A Connect-valid but Suite-unmodeled coin (dash, dgb, xtz, testnets, …) is now rejected up front with the distinct `Method_UnsupportedCoinForHost` error instead of a generic modal. (2877a16d71d)
|
|
99
|
+
- **Manifest name sanitizing.** `manifest.appName` (and THP `hostName`) are sanitized — control chars stripped, whitespace runs collapsed, trimmed; a name that becomes empty is rejected. `appName` is also now strictly required at manifest parse. (c6a11d3a93b, fe8e15c7fe7)
|
|
100
|
+
- **Solana.** `solanaSignTransaction` no longer fails precompose for transactions using address lookup tables (467c4002c3f), and rejects unsupported v1 transactions upfront with `Method_InvalidParameter` (d24fa8a5d8c). `solanaComposeTransaction` now returns token metadata (`newAccountProgramName`, `tokenAccountInfo`) in `additionalInfo` for pre-serialized token transfers, fixing Solana token trades. (bb7502fedc8)
|
|
101
|
+
- **Backend reconnect back-off.** A dropped blockchain backend no longer triggers a tight reconnect loop / Solana reconnect storm — reconnect delay is clamped to 1–20s, the attempt counter resets only after a connection holds for 30s, and back-off attempts reject with `Backend_Disconnected` rather than forcing an immediate re-sync (explicit reconnects still bypass the wait). (f02219132e6, d1fc98016c3)
|
|
102
|
+
- **TRON.** Default fee info now exposes real `minFee=1` / `maxFee=15,000,000,000` SUN instead of the `-1`/unknown placeholders (f124fe96ceb), and TRX/tTRX block notifications are throttled together with EVM at ~12s per block event (2524bc4d2ca).
|
|
103
|
+
- `ethereumSignTypedData` no longer requires the `eip712-domain-only` firmware capability for `EIP712Domain`-only payloads. (d4ead6f1780)
|
|
104
|
+
- **BTC custom-fee fallback** now composes a single transaction at the coin's `minFee` instead of scanning fees down from the top level, changing which custom fee is offered when no standard level is affordable. (7988531569c)
|
|
105
|
+
- **Firmware rollout bucketing** no longer permanently excludes the ~1% of devices that hash into the top bucket, even at 100% rollout. (3debf109035)
|
|
106
|
+
- On THP devices, the PIN matrix is now requested **before** the passphrase entry. (b2c3d73ce4c)
|
|
121
107
|
|
|
122
108
|
## Breaking changes
|
|
123
109
|
|
|
124
|
-
The [migration guide](https://connect.trezor.io/10.0.0
|
|
110
|
+
The [migration guide](https://connect.trezor.io/10.0.0/guides/migrating-to-connect-10) turns the changes below into a step-by-step checklist with before/after code.
|
|
125
111
|
|
|
126
112
|
### Integration & packaging
|
|
127
113
|
|
|
@@ -134,12 +120,25 @@ The [migration guide](https://connect.trezor.io/10.0.0-beta.1/guides/migrating-t
|
|
|
134
120
|
|
|
135
121
|
### Methods & parameters
|
|
136
122
|
|
|
137
|
-
- **`coin` accepts the coin shortcut only** (the `CoinSymbol` set — e.g. `btc`, `bch`, `ada`), narrowed from `string`. Network **names** and **labels** (e.g. `'Bitcoin'`, `'Bitcoin Cash'`) are no longer accepted and now fail both at compile time and at runtime. The shortcut itself is still matched case-insensitively at runtime, so `coin: 'BTC'` works — but the `CoinSymbol` type lists the canonical lowercase forms, so TypeScript users should pass lowercase to type-check. Resolution is uniform across all coin families. Migrate names/labels to the shortcut: `'Bitcoin' → 'btc'`, `'Bitcoin Cash' → 'bch'`, `'cardano' → 'ada'`, etc. Path-taking methods (`getAddress`, `getPublicKey`, …) derive the network from `path` when given a former name/label; methods without a path fallback (`getAccountInfo`, `selectAccount`, `verifyMessage`, `composeTransaction`, `signTransaction`, `signMessage`, `getOwnershipId`, `getOwnershipProof`, the `blockchain*` family) throw `Method_UnknownCoin`. Full list: [supported coins](https://connect.trezor.io/10.0.0
|
|
123
|
+
- **`coin` accepts the coin shortcut only** (the `CoinSymbol` set — e.g. `btc`, `bch`, `ada`), narrowed from `string`. Network **names** and **labels** (e.g. `'Bitcoin'`, `'Bitcoin Cash'`) are no longer accepted and now fail both at compile time and at runtime. The shortcut itself is still matched case-insensitively at runtime, so `coin: 'BTC'` works — but the `CoinSymbol` type lists the canonical lowercase forms, so TypeScript users should pass lowercase to type-check. Resolution is uniform across all coin families. Migrate names/labels to the shortcut: `'Bitcoin' → 'btc'`, `'Bitcoin Cash' → 'bch'`, `'cardano' → 'ada'`, etc. Path-taking methods (`getAddress`, `getPublicKey`, …) derive the network from `path` when given a former name/label; methods without a path fallback (`getAccountInfo`, `selectAccount`, `verifyMessage`, `composeTransaction`, `signTransaction`, `signMessage`, `getOwnershipId`, `getOwnershipProof`, the `blockchain*` family) throw `Method_UnknownCoin`. Full list: [supported coins](https://connect.trezor.io/10.0.0/details/coins).
|
|
138
124
|
- **`getPublicKey` is restricted to bitcoin-like coins.** In v9, a non-bitcoin `coin` (e.g. `'eth'`) silently fell back to Bitcoin and returned a btc xpub. Now the network must resolve to a bitcoin-like coin — from `coin`, or failing that from the derivation `path` — otherwise the call throws `Method_UnknownCoin`. Use the per-coin methods (`ethereumGetPublicKey`, `cardanoGetPublicKey`, …) for other networks.
|
|
139
125
|
- **`getAccountDescriptor` removed.** The per-coin `*GetPublicKey` methods now return the same fields. Field mapping: `payload.descriptor` → Bitcoin `result.descriptor` (non-Bitcoin coins: use `result.displayablePublicKey`); `payload.path` → `result.serializedPath` on every `*GetPublicKey`; generic consumers should read `result.displayablePublicKey`.
|
|
140
126
|
- **`getAccountInfo` no longer performs on-device discovery.** Calling it without `path` or `descriptor` now throws `Method_InvalidParameter` (`path or descriptor is required`) instead of opening a device-driven selection popup. Provide `path` (derive on device, then query backend) or `descriptor` (backend-only). For the old discovery behavior, use `discoverAccounts` — or `selectAccount` for user-facing selection.
|
|
127
|
+
- **`composeTransaction` is precompose-only.** Its signing/broadcast overload (`ComposeParams` → `SignedTransaction`, including `push`) is removed — migrate signing+push flows to the new `sendTransaction`. (919967d6a43)
|
|
128
|
+
- **`ethereumGetPublicKey.displayablePublicKey`** is now the hex-encoded compressed public key (byte-identical to `publicKey`, matching what firmware shows on screen) instead of the xpub. (a508e4ab6e4)
|
|
141
129
|
- **`cardanoGetPublicKey`:** `publicKey` is now the raw 32-byte key in hex (consistent with other coins); the Cardano extended public key moved to the new explicit `xpub` field (also available via `displayablePublicKey`).
|
|
130
|
+
- **`blockchainEvmRpcGetChainId`** (formerly `blockchainValidateEvmRpcUrl`) now takes only `{ url }` and returns `{ chainId }`, instead of validating a supplied chainId and returning `{ valid, actualChainId }`. (39fa982888d)
|
|
142
131
|
- **`useCardanoDerivation` removed.** Cardano session derivation is now driven by an app-level `enabledNetworks` declaration passed to `TrezorConnect.init({ enabledNetworks: [{ coin: 'ada' }] })` (or `updateConnectSettings` for in-process Core hosts). Note: `enabledNetworks` is honored only by the in-process `@trezor/connect`; on the thin packages, Cardano availability follows the host Suite wallet's enabled coins.
|
|
132
|
+
- **`KnownDevice.availableTranslations`** now maps language codes to `TranslationMetadata` objects instead of plain strings. (26f0cd334c5)
|
|
133
|
+
|
|
134
|
+
### UI events & fee selection
|
|
135
|
+
|
|
136
|
+
These mostly affect **custom-UI and host (Suite-style) integrations**.
|
|
137
|
+
|
|
138
|
+
- **`UI_EVENT` split.** The public `UI_REQUEST` constant map is split into `UI_EVENTS` (fire-and-forget notifications) and `UI_REQUESTS` (messages needing a `UI_RESPONSE`), a new `UI_REQUEST`/`UI_REQUESTS` event channel is added, and several members are renamed (e.g. `TRANSPORT`→`TRANSPORT_MISSING`, `INVALID_PIN`→`PIN_INVALID`). The event payloads were also reshaped: `requestId` was removed from `UI_EVENT` payloads (`callId` remains) and is now emitted on standalone `UI_REQUEST` payloads. Migrate `UI_REQUEST.*` references to `UI_EVENTS.*` / `UI_REQUESTS.*`. (8d5768be292, b372b090361, f26a6147e01)
|
|
139
|
+
- **`SELECT_FEE` event** payload now carries `feeLevels` as `FeeLevel[]` (only composable/valid levels), and the `SelectFeeLevel` type is removed from `@trezor/connect-common`. (a300e1be087)
|
|
140
|
+
- **`RECEIVE_FEE` response** payload is restructured: use `{ type: 'select-fee', value }` and `{ type: 'select-fee-custom', value }` (replacing `'compose-custom'` / `'send'`). (eedb2fdde5f)
|
|
141
|
+
- **`UPDATE_CUSTOM_FEE` UI event removed.** The `ui-update_custom_fee` member of the `UI_REQUEST` map and its `UpdateCustomFee` type are removed from `@trezor/connect-common`; custom-UI code that listened for it should drop the handler. (4f5b240fcb0)
|
|
143
142
|
|
|
144
143
|
### Transports
|
|
145
144
|
|
|
@@ -151,7 +150,7 @@ These mostly affect apps that run their own Connect core (`@trezor/connect`); mo
|
|
|
151
150
|
|
|
152
151
|
## Removed & deprecated
|
|
153
152
|
|
|
154
|
-
- **Removed coin support.** Coins that no current device supports have been dropped from the coin definitions. [Supported coins](https://connect.trezor.io/10.0.0
|
|
153
|
+
- **Removed coin support.** Coins that no current device supports have been dropped from the coin definitions. [Supported coins](https://connect.trezor.io/10.0.0/details/coins) is the current list — if your integration names a coin that is not on it, remove that support.
|
|
155
154
|
- **`@trezor/connect-plugin-ethereum` deprecated.** Its logic is inlined into `@trezor/connect`. Drop the direct dependency and remove manual `transformTypedData` calls. The 10.x plugin is a stub that throws a deprecation error pointing at the migration.
|
|
156
155
|
|
|
157
156
|
## Previous versions
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @trezor/connect
|
|
2
2
|
|
|
3
|
-
API version 10.0.
|
|
3
|
+
API version 10.0.1
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.org/package/@trezor/connect)
|
|
6
6
|
|
|
@@ -42,7 +42,7 @@ For more instructions [refer to this document](https://github.com/trezor/trezor-
|
|
|
42
42
|
|
|
43
43
|
## Versioning
|
|
44
44
|
|
|
45
|
-
Version 10 is the current major version
|
|
45
|
+
Version 10 is the current major version. New major versions are released when there are breaking API changes.
|
|
46
46
|
|
|
47
47
|
## Docs
|
|
48
48
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trezor/connect",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Trezor <info@trezor.io>",
|
|
6
6
|
"homepage": "https://github.com/trezor/trezor-suite/tree/develop/packages/connect",
|
|
@@ -65,11 +65,11 @@
|
|
|
65
65
|
"lint:js": "yarn g:eslint '**/*.{ts,tsx,js}'"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@trezor/connect-common": "10.0.
|
|
69
|
-
"@trezor/connect-core": "10.0.
|
|
70
|
-
"@trezor/transport": "10.0.
|
|
71
|
-
"@trezor/transport-common": "10.0.
|
|
72
|
-
"@trezor/transport-web": "10.0.
|
|
68
|
+
"@trezor/connect-common": "10.0.1",
|
|
69
|
+
"@trezor/connect-core": "10.0.1",
|
|
70
|
+
"@trezor/transport": "10.0.1",
|
|
71
|
+
"@trezor/transport-common": "10.0.1",
|
|
72
|
+
"@trezor/transport-web": "10.0.1"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
75
|
"@trezor/eslint": "1.0.0",
|