@cardano-sdk/hardware-trezor 0.7.25 → 0.7.27

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/README.md CHANGED
@@ -1 +1,356 @@
1
1
  # Cardano JS SDK | Hardware | Trezor
2
+
3
+ Hardware wallet integration for Trezor devices in the Cardano ecosystem. This package provides secure key management and transaction signing capabilities for Trezor hardware wallets.
4
+
5
+ ## Features
6
+
7
+ - 🔐 **Secure Key Management** - Private keys never leave the Trezor device
8
+ - 🔄 **Multiple Master Key Generation Schemes** - Support for ICARUS, ICARUS_TREZOR, and LEDGER master key generation algorithms
9
+ - 📝 **Transaction Signing** - Sign Cardano transactions securely on hardware
10
+ - 🏗️ **TypeScript Support** - Full type safety and IntelliSense support
11
+ - 🔌 **Trezor Connect Integration** - Built on the official Trezor Connect library
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ npm install @cardano-sdk/hardware-trezor
17
+ # or
18
+ yarn add @cardano-sdk/hardware-trezor
19
+ ```
20
+
21
+ ## Prerequisites
22
+
23
+ - **Trezor Device** - Model T, One, or newer
24
+ - **Trezor Bridge** - Required for USB communication
25
+ - **Node.js** - Version 16.20.1 or higher
26
+
27
+ ### Quick Setup
28
+
29
+ For automated setup of the Trezor testing environment:
30
+
31
+ ```bash
32
+ # Set up Trezor testing environment (from wallet package)
33
+ ./packages/wallet/scripts/setup-hw-testing.sh
34
+
35
+ # Or install Trezor Bridge only
36
+ ./packages/wallet/scripts/install-trezor-bridge.sh
37
+ ```
38
+
39
+ ## Quick Start
40
+
41
+ ### Basic Usage
42
+
43
+ ```typescript
44
+ import { TrezorKeyAgent } from '@cardano-sdk/hardware-trezor';
45
+ import { Cardano, CommunicationType } from '@cardano-sdk/core';
46
+
47
+ // Create a key agent with default settings
48
+ const keyAgent = await TrezorKeyAgent.createWithDevice({
49
+ chainId: Cardano.ChainIds.Mainnet,
50
+ trezorConfig: {
51
+ communicationType: CommunicationType.Node,
52
+ manifest: {
53
+ appUrl: 'https://your-app.com',
54
+ email: 'contact@your-app.com'
55
+ }
56
+ }
57
+ }, dependencies);
58
+ ```
59
+
60
+ ### With Custom Derivation Type
61
+
62
+ ```typescript
63
+ import { TrezorKeyAgent } from '@cardano-sdk/hardware-trezor';
64
+ import { Cardano, CommunicationType } from '@cardano-sdk/core';
65
+
66
+ // Create a key agent with specific derivation type
67
+ const keyAgent = await TrezorKeyAgent.createWithDevice({
68
+ chainId: Cardano.ChainIds.Mainnet,
69
+ trezorConfig: {
70
+ communicationType: CommunicationType.Node,
71
+ derivationType: 'ICARUS', // or 'ICARUS_TREZOR', 'LEDGER'
72
+ manifest: {
73
+ appUrl: 'https://your-app.com',
74
+ email: 'contact@your-app.com'
75
+ }
76
+ }
77
+ }, dependencies);
78
+ ```
79
+
80
+ ## Master Key Generation Schemes
81
+
82
+ The package supports three master key generation algorithms for compatibility with different wallet types:
83
+
84
+ ### ICARUS (Baseline - Software Wallets)
85
+ - **Value**: `'ICARUS'`
86
+ - **Use Case**: Software wallets
87
+ - **Algorithm**: Standard CIP-3 (BIP-39 → Ed25519-BIP32)
88
+ - **Technical Flow**: `Mnemonic → entropy → BIP-39 seed (using PBKDF2-HMAC-SHA512, with optional passphrase) → ed25519-bip32 master key (CIP-3 spec)`
89
+
90
+ ### ICARUS_TREZOR (Trezor Hardware Compatibility)
91
+ - **Value**: `'ICARUS_TREZOR'`
92
+ - **Use Case**: Trezor hardware wallets
93
+ - **Algorithm**: Trezor's variant of CIP-3 with different PRF for 24-word mnemonics
94
+ - **Technical Details**: Trezor historically diverged in how it turned the BIP-39 seed into the root master key when dealing with 24-word mnemonics. Instead of doing a direct Icarus (CIP-3) root generation, firmware used a slightly different PRF step when expanding the seed into the Ed25519-BIP32 master key.
95
+
96
+ ### LEDGER (Ledger Hardware Wallet)
97
+ - **Value**: `'LEDGER'`
98
+ - **Use Case**: Ledger hardware wallets
99
+ - **Algorithm**: Ledger's CIP-3 implementation
100
+
101
+ ## Key Difference: ICARUS vs ICARUS_TREZOR
102
+
103
+ **Behavior:**
104
+ - **12/18-word mnemonics**: `ICARUS` and `ICARUS_TREZOR` produce identical keys
105
+ - **24-word mnemonics**: `ICARUS` and `ICARUS_TREZOR` produce different keys
106
+
107
+ > **⚠️ Important**: When restoring a Trezor wallet, use `ICARUS_TREZOR` for 24-word mnemonics that originated from Trezor devices, otherwise you'll get wrong addresses.
108
+
109
+ **Why it matters:**
110
+ If you're writing code to restore a Trezor wallet, you must select the correct derivation scheme (`ICARUS_TREZOR`) if the mnemonic came from a Trezor, otherwise you'll get a completely different xpub tree and addresses won't match.
111
+
112
+ ### Usage Examples
113
+
114
+ ```typescript
115
+ // Software wallet compatibility
116
+ const softwareWallet = await TrezorKeyAgent.createWithDevice({
117
+ chainId: Cardano.ChainIds.Mainnet,
118
+ trezorConfig: { derivationType: 'ICARUS' }
119
+ });
120
+
121
+ // Trezor wallet (uses internal default)
122
+ const trezorWallet = await TrezorKeyAgent.createWithDevice({
123
+ chainId: Cardano.ChainIds.Mainnet,
124
+ trezorConfig: { /* no derivationType */ }
125
+ });
126
+
127
+ // Ledger wallet migration
128
+ const ledgerWallet = await TrezorKeyAgent.createWithDevice({
129
+ chainId: Cardano.ChainIds.Mainnet,
130
+ trezorConfig: { derivationType: 'LEDGER' }
131
+ });
132
+ ```
133
+
134
+ ## Configuration
135
+
136
+ ### TrezorConfig Interface
137
+
138
+ ```typescript
139
+ interface TrezorConfig {
140
+ communicationType: CommunicationType;
141
+ derivationType?: 'ICARUS' | 'ICARUS_TREZOR' | 'LEDGER'; // Master key generation scheme
142
+ manifest: {
143
+ appUrl: string;
144
+ email: string;
145
+ };
146
+ shouldHandlePassphrase?: boolean;
147
+ }
148
+ ```
149
+
150
+ ### Communication Types
151
+
152
+ - **`CommunicationType.Node`** - USB communication via Trezor Bridge (recommended for Node.js)
153
+ - **`CommunicationType.Web`** - Web-based communication (for browser environments)
154
+
155
+ ## API Reference
156
+
157
+ ### TrezorKeyAgent
158
+
159
+ #### `createWithDevice(options, dependencies)`
160
+
161
+ Creates a new TrezorKeyAgent instance with a connected Trezor device.
162
+
163
+ **Parameters:**
164
+ - `options.chainId` - Cardano chain ID (Mainnet, Preprod, etc.)
165
+ - `options.trezorConfig` - Trezor configuration object
166
+ - `dependencies` - Required dependencies (crypto, logger, etc.)
167
+
168
+ **Returns:** `Promise<TrezorKeyAgent>`
169
+
170
+ #### `getXpub(props)`
171
+
172
+ Retrieves the extended public key from the Trezor device.
173
+
174
+ **Parameters:**
175
+ - `props.purpose` - Key purpose (Payment, Stake, etc.)
176
+ - `props.accountIndex` - Account index
177
+ - `props.derivationType` - Optional master key generation scheme override
178
+
179
+ **Returns:** `Promise<Bip32PublicKeyHex>`
180
+
181
+ #### `signTransaction(txBody, context)`
182
+
183
+ Signs a Cardano transaction using the Trezor device.
184
+
185
+ **Parameters:**
186
+ - `txBody` - Transaction body to sign
187
+ - `context` - Signing context (addresses, key paths, etc.)
188
+
189
+ **Returns:** `Promise<CardanoTxWitnesses>`
190
+
191
+ ## Error Handling
192
+
193
+ The package provides comprehensive error handling for common scenarios:
194
+
195
+ ```typescript
196
+ import { TrezorKeyAgent } from '@cardano-sdk/hardware-trezor';
197
+
198
+ try {
199
+ const keyAgent = await TrezorKeyAgent.createWithDevice(config, deps);
200
+ } catch (error) {
201
+ if (error.message.includes('Trezor transport failed')) {
202
+ // Handle device connection issues
203
+ console.error('Please ensure your Trezor device is connected and unlocked');
204
+ } else if (error.message.includes('Authentication failure')) {
205
+ // Handle authentication issues
206
+ console.error('Please check your Trezor device and try again');
207
+ }
208
+ }
209
+ ```
210
+
211
+ ## Troubleshooting
212
+
213
+ ### Common Issues
214
+
215
+ 1. **"Trezor transport failed"**
216
+ - Ensure Trezor Bridge is installed and running
217
+ - Check USB connection
218
+ - Verify device is unlocked
219
+
220
+ 2. **"Authentication failure"**
221
+ - Unlock your Trezor device
222
+ - Close other applications using the device
223
+ - Try reconnecting the device
224
+
225
+ 3. **Wrong master key generation scheme**
226
+ - Verify the master key generation scheme matches your wallet's origin
227
+ - Check the MASTER_KEY_GENERATION.md for detailed guidance
228
+
229
+ ### Device Setup
230
+
231
+ 1. **Install Trezor Bridge**
232
+ ```bash
233
+ # Download from https://suite.trezor.io/trezor-bridge
234
+ # Or install via package manager
235
+ ```
236
+
237
+ 2. **Connect and Unlock Device**
238
+ - Connect your Trezor device via USB
239
+ - Unlock the device using your PIN
240
+ - Ensure no other applications are using the device
241
+
242
+ ## Examples
243
+
244
+ ### Complete Wallet Integration
245
+
246
+ ```typescript
247
+ import { TrezorKeyAgent } from '@cardano-sdk/hardware-trezor';
248
+ import { createPersonalWallet } from '@cardano-sdk/wallet';
249
+ import { Cardano, CommunicationType } from '@cardano-sdk/core';
250
+
251
+ async function createTrezorWallet() {
252
+ // Create key agent
253
+ const keyAgent = await TrezorKeyAgent.createWithDevice({
254
+ chainId: Cardano.ChainIds.Mainnet,
255
+ trezorConfig: {
256
+ communicationType: CommunicationType.Node,
257
+ derivationType: 'ICARUS_TREZOR', // or omit to use Trezor's internal default
258
+ manifest: {
259
+ appUrl: 'https://my-cardano-app.com',
260
+ email: 'support@my-cardano-app.com'
261
+ }
262
+ }
263
+ }, dependencies);
264
+
265
+ // Create wallet
266
+ const wallet = createPersonalWallet(
267
+ { name: 'My Trezor Wallet' },
268
+ {
269
+ keyAgent,
270
+ // ... other providers
271
+ }
272
+ );
273
+
274
+ return wallet;
275
+ }
276
+ ```
277
+
278
+ ## Development
279
+
280
+ ### Running Tests
281
+
282
+ ```bash
283
+ # Run all tests
284
+ yarn test
285
+
286
+ # Run with coverage
287
+ yarn test --coverage
288
+
289
+ # Run specific test file
290
+ yarn test TrezorKeyAgent.test.ts
291
+ ```
292
+
293
+ ### Building
294
+
295
+ ```bash
296
+ # Build the package
297
+ yarn build
298
+
299
+ # Build and watch for changes
300
+ yarn build --watch
301
+ ```
302
+
303
+ ## Implementation Details
304
+
305
+ ### Default Behavior
306
+ When no `derivationType` is specified in the `TrezorConfig`, the SDK passes no derivation type to Trezor, allowing Trezor to use its own internal default:
307
+
308
+ ```typescript
309
+ const trezorConfig: TrezorConfig = {
310
+ communicationType: CommunicationType.Node,
311
+ manifest: {
312
+ appUrl: 'https://your.application.com',
313
+ email: 'email@developer.com'
314
+ }
315
+ // No derivationType specified - Trezor uses its internal default
316
+ };
317
+
318
+ ## Troubleshooting
319
+
320
+ ### Common Issues
321
+
322
+ 1. **Wrong addresses when restoring Trezor wallet**: Use `ICARUS_TREZOR` for 24-word mnemonics that originated from Trezor devices
323
+ 2. **Same keys for different schemes**: This is expected for 12/18-word seeds with `ICARUS` and `ICARUS_TREZOR`
324
+ 3. **Test failures**: Ensure tests account for both 12/18 and 24-word seed scenarios
325
+
326
+ ### Debugging
327
+
328
+ To determine which scenario you're dealing with:
329
+
330
+ ```typescript
331
+ const defaultXPub = defaultKeyAgent.extendedAccountPublicKey;
332
+ const icarusXPub = icarusKeyAgent.extendedAccountPublicKey;
333
+
334
+ if (defaultXPub === icarusXPub) {
335
+ console.log('12/18 word seed detected - ICARUS and ICARUS_TREZOR master key generation schemes are identical');
336
+ } else {
337
+ console.log('24 word seed detected - ICARUS and ICARUS_TREZOR master key generation schemes are different');
338
+ }
339
+ ```
340
+
341
+ ## Related Documentation
342
+
343
+ - [Cardano JS SDK Documentation](https://github.com/input-output-hk/cardano-js-sdk)
344
+ - [Trezor Connect Documentation](https://docs.trezor.io/trezor-connect/)
345
+ - [CIP-1852: HD Wallets for Cardano](https://cips.cardano.org/cips/cip1852/)
346
+ - [CIP-3: Wallet Key Generation](https://cips.cardano.org/cips/cip3/)
347
+
348
+ ## License
349
+
350
+ This project is licensed under the Apache License 2.0 - see the [LICENSE](./LICENSE) file for details.
351
+
352
+ ## Support
353
+
354
+ For issues and questions:
355
+ - [GitHub Issues](https://github.com/input-output-hk/cardano-js-sdk/issues)
356
+ - [Cardano Community](https://cardano.org/community)
@@ -1,7 +1,7 @@
1
1
  import * as Crypto from '@cardano-sdk/crypto';
2
2
  import * as Trezor from '@trezor/connect';
3
3
  import { Cardano, Serialization } from '@cardano-sdk/core';
4
- import { CommunicationType, KeyAgentBase, KeyAgentDependencies, KeyPurpose, SerializableTrezorKeyAgentData, SignBlobResult, SignTransactionContext, TrezorConfig } from '@cardano-sdk/key-management';
4
+ import { CommunicationType, KeyAgentBase, KeyAgentDependencies, KeyPurpose, MasterKeyGeneration, SerializableTrezorKeyAgentData, SignBlobResult, SignTransactionContext, TrezorConfig } from '@cardano-sdk/key-management';
5
5
  import { Cip30DataSignature } from '@cardano-sdk/dapp-connector';
6
6
  declare const TrezorConnectNode: Trezor.TrezorConnect;
7
7
  declare const TrezorConnectWeb: Trezor.TrezorConnect;
@@ -12,6 +12,7 @@ export interface GetTrezorXpubProps {
12
12
  accountIndex: number;
13
13
  communicationType: CommunicationType;
14
14
  purpose: KeyPurpose;
15
+ derivationType?: MasterKeyGeneration;
15
16
  }
16
17
  export interface CreateTrezorKeyAgentProps {
17
18
  chainId: Cardano.ChainId;
@@ -24,9 +25,10 @@ export declare class TrezorKeyAgent extends KeyAgentBase {
24
25
  #private;
25
26
  readonly isTrezorInitialized: Promise<boolean>;
26
27
  constructor({ isTrezorInitialized, ...serializableData }: TrezorKeyAgentProps, dependencies: KeyAgentDependencies);
28
+ get trezorConfig(): TrezorConfig;
27
29
  static initializeTrezorTransport({ manifest, communicationType, silentMode, lazyLoad, shouldHandlePassphrase }: TrezorConfig): Promise<boolean>;
28
30
  static checkDeviceConnection(communicationType: CommunicationType): Promise<Trezor.Features>;
29
- static getXpub({ accountIndex, communicationType, purpose }: GetTrezorXpubProps): Promise<Crypto.Bip32PublicKeyHex>;
31
+ static getXpub({ accountIndex, communicationType, purpose, derivationType }: GetTrezorXpubProps): Promise<Crypto.Bip32PublicKeyHex>;
30
32
  static createWithDevice({ chainId, accountIndex, trezorConfig, purpose }: CreateTrezorKeyAgentProps, dependencies: KeyAgentDependencies): Promise<TrezorKeyAgent>;
31
33
  static matchSigningMode(tx: Omit<Trezor.CardanoSignTransaction, 'signingMode'>): Trezor.PROTO.CardanoTxSigningMode;
32
34
  signTransaction(txBody: Serialization.TransactionBody, { knownAddresses, txInKeyPathMap, scripts }: SignTransactionContext): Promise<Cardano.Signatures>;
@@ -1 +1 @@
1
- {"version":3,"file":"TrezorKeyAgent.d.ts","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAuB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAEL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EAEpB,UAAU,EAEV,8BAA8B,EAC9B,cAAc,EACd,sBAAsB,EACtB,YAAY,EAGb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjE,QAAA,MAAM,iBAAiB,sBAAiB,CAAC;AACzC,QAAA,MAAM,gBAAgB,sBAED,CAAC;AAQtB,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC;IAC7F,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,oBAAY,yBAAyB,GAAG,OAAO,iBAAiB,GAAG,OAAO,gBAAgB,CAAC;AAuC3F,qBAAa,cAAe,SAAQ,YAAY;;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAGnC,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB;WAQpG,yBAAyB,CAAC,EACrC,QAAQ,EACR,iBAAiB,EACjB,UAAkB,EAClB,QAAgB,EAChB,sBAA8B,EAC/B,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;WAuCrB,qBAAqB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;WAarF,OAAO,CAAC,EACnB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACR,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;WAkB5C,gBAAgB,CAC3B,EAAE,OAAO,EAAE,YAAgB,EAAE,YAAY,EAAE,OAA6B,EAAE,EAAE,yBAAyB,EACrG,YAAY,EAAE,oBAAoB;IA0BpC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,oBAAoB;IA2B5G,eAAe,CACnB,MAAM,EAAE,aAAa,CAAC,eAAe,EACrC,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,sBAAsB,GAClE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAyExB,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAInC,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI3C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;CAGjE"}
1
+ {"version":3,"file":"TrezorKeyAgent.d.ts","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAuB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAEL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EAEpB,UAAU,EAEV,mBAAmB,EACnB,8BAA8B,EAC9B,cAAc,EACd,sBAAsB,EACtB,YAAY,EAGb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjE,QAAA,MAAM,iBAAiB,sBAAiB,CAAC;AACzC,QAAA,MAAM,gBAAgB,sBAED,CAAC;AAQtB,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC;IAC7F,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC;IACpB,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,oBAAY,yBAAyB,GAAG,OAAO,iBAAiB,GAAG,OAAO,gBAAgB,CAAC;AAqD3F,qBAAa,cAAe,SAAQ,YAAY;;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAInC,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB;IASjH,IAAI,YAAY,IAAI,YAAY,CAE/B;WAEY,yBAAyB,CAAC,EACrC,QAAQ,EACR,iBAAiB,EACjB,UAAkB,EAClB,QAAgB,EAChB,sBAA8B,EAC/B,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;WAuCrB,qBAAqB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;WAarF,OAAO,CAAC,EACnB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,cAAc,EACf,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;WAuB5C,gBAAgB,CAC3B,EAAE,OAAO,EAAE,YAAgB,EAAE,YAAY,EAAE,OAA6B,EAAE,EAAE,yBAAyB,EACrG,YAAY,EAAE,oBAAoB;IA2BpC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,oBAAoB;IA2B5G,eAAe,CACnB,MAAM,EAAE,aAAa,CAAC,eAAe,EACrC,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,sBAAsB,GAClE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IA8ExB,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAInC,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI3C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;CAGjE"}
@@ -36,7 +36,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
36
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
39
- var _TrezorKeyAgent_communicationType;
39
+ var _TrezorKeyAgent_communicationType, _TrezorKeyAgent_trezorConfig;
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
41
  exports.TrezorKeyAgent = void 0;
42
42
  const Crypto = __importStar(require("@cardano-sdk/crypto"));
@@ -52,6 +52,18 @@ const TrezorConnectWeb = connect_web_1.default.default
52
52
  : connect_web_1.default;
53
53
  const transportTypedError = (error) => new key_management_1.errors.AuthenticationError('Trezor transport failed', new key_management_1.errors.TransportError('Trezor transport failed', error));
54
54
  const getTrezorConnect = (communicationType) => communicationType === key_management_1.CommunicationType.Node ? TrezorConnectNode : TrezorConnectWeb;
55
+ const mapDerivationType = (derivationType) => {
56
+ switch (derivationType) {
57
+ case 'ICARUS':
58
+ return Trezor.PROTO.CardanoDerivationType.ICARUS;
59
+ case 'ICARUS_TREZOR':
60
+ return Trezor.PROTO.CardanoDerivationType.ICARUS_TREZOR;
61
+ case 'LEDGER':
62
+ return Trezor.PROTO.CardanoDerivationType.LEDGER;
63
+ default:
64
+ throw new Error(`Unsupported derivation type: ${derivationType}`);
65
+ }
66
+ };
55
67
  const stakeCredentialCert = (certificateType) => certificateType === Trezor.PROTO.CardanoCertificateType.STAKE_REGISTRATION ||
56
68
  certificateType === Trezor.PROTO.CardanoCertificateType.STAKE_DEREGISTRATION ||
57
69
  certificateType === Trezor.PROTO.CardanoCertificateType.STAKE_DELEGATION;
@@ -82,10 +94,15 @@ class TrezorKeyAgent extends key_management_1.KeyAgentBase {
82
94
  constructor({ isTrezorInitialized, ...serializableData }, dependencies) {
83
95
  super({ ...serializableData, __typename: key_management_1.KeyAgentType.Trezor }, dependencies);
84
96
  _TrezorKeyAgent_communicationType.set(this, void 0);
97
+ _TrezorKeyAgent_trezorConfig.set(this, void 0);
85
98
  if (!isTrezorInitialized) {
86
99
  this.isTrezorInitialized = TrezorKeyAgent.initializeTrezorTransport(serializableData.trezorConfig);
87
100
  }
88
101
  __classPrivateFieldSet(this, _TrezorKeyAgent_communicationType, serializableData.trezorConfig.communicationType, "f");
102
+ __classPrivateFieldSet(this, _TrezorKeyAgent_trezorConfig, serializableData.trezorConfig, "f");
103
+ }
104
+ get trezorConfig() {
105
+ return __classPrivateFieldGet(this, _TrezorKeyAgent_trezorConfig, "f");
89
106
  }
90
107
  static async initializeTrezorTransport({ manifest, communicationType, silentMode = false, lazyLoad = false, shouldHandlePassphrase = false }) {
91
108
  const trezorConnect = getTrezorConnect(communicationType);
@@ -130,14 +147,18 @@ class TrezorKeyAgent extends key_management_1.KeyAgentBase {
130
147
  throw transportTypedError(error);
131
148
  }
132
149
  }
133
- static async getXpub({ accountIndex, communicationType, purpose }) {
150
+ static async getXpub({ accountIndex, communicationType, purpose, derivationType }) {
134
151
  try {
135
152
  await TrezorKeyAgent.checkDeviceConnection(communicationType);
136
153
  const derivationPath = `m/${purpose}'/${key_management_1.CardanoKeyConst.COIN_TYPE}'/${accountIndex}'`;
137
154
  const trezorConnect = getTrezorConnect(communicationType);
155
+ const trezorDerivationType = derivationType ? mapDerivationType(derivationType) : undefined;
138
156
  const extendedPublicKey = await trezorConnect.cardanoGetPublicKey({
139
157
  path: derivationPath,
140
- showOnTrezor: true
158
+ showOnTrezor: true,
159
+ ...(derivationType && {
160
+ derivationType: trezorDerivationType
161
+ })
141
162
  });
142
163
  if (!extendedPublicKey.success) {
143
164
  throw new key_management_1.errors.TransportError('Failed to export extended account public key', extendedPublicKey.payload);
@@ -153,6 +174,7 @@ class TrezorKeyAgent extends key_management_1.KeyAgentBase {
153
174
  const extendedAccountPublicKey = await TrezorKeyAgent.getXpub({
154
175
  accountIndex,
155
176
  communicationType: trezorConfig.communicationType,
177
+ derivationType: trezorConfig.derivationType,
156
178
  purpose
157
179
  });
158
180
  return new TrezorKeyAgent({
@@ -209,7 +231,12 @@ class TrezorKeyAgent extends key_management_1.KeyAgentBase {
209
231
  ...(signingMode === Trezor.PROTO.CardanoTxSigningMode.MULTISIG_TRANSACTION && {
210
232
  additionalWitnessRequests: multiSigWitnessPaths
211
233
  }),
212
- signingMode
234
+ signingMode,
235
+ ...(this.trezorConfig.derivationType
236
+ ? {
237
+ derivationType: mapDerivationType(this.trezorConfig.derivationType)
238
+ }
239
+ : {})
213
240
  });
214
241
  const expectedPublicKeys = await Promise.all(key_management_1.util
215
242
  .ownSignatureKeyPaths(body, knownAddresses, txInKeyPathMap, undefined, scripts)
@@ -247,5 +274,5 @@ class TrezorKeyAgent extends key_management_1.KeyAgentBase {
247
274
  }
248
275
  }
249
276
  exports.TrezorKeyAgent = TrezorKeyAgent;
250
- _TrezorKeyAgent_communicationType = new WeakMap();
277
+ _TrezorKeyAgent_communicationType = new WeakMap(), _TrezorKeyAgent_trezorConfig = new WeakMap();
251
278
  //# sourceMappingURL=TrezorKeyAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TrezorKeyAgent.js","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrezorKeyAgent.js","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"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"}