@ledgerhq/device-signer-kit-bitcoin 0.0.0-device-id-20251125171501 → 0.0.0-dmk-lifi-20260106144650

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 (144) hide show
  1. package/README.md +157 -11
  2. package/lib/cjs/api/SignerBtc.js +1 -1
  3. package/lib/cjs/api/SignerBtc.js.map +1 -1
  4. package/lib/cjs/api/app-binder/GetMasterFingerprintDeviceActionTypes.js +2 -0
  5. package/lib/cjs/api/app-binder/GetMasterFingerprintDeviceActionTypes.js.map +7 -0
  6. package/lib/cjs/api/app-binder/RegisterWalletDeviceActionTypes.js +2 -0
  7. package/lib/cjs/api/app-binder/RegisterWalletDeviceActionTypes.js.map +7 -0
  8. package/lib/cjs/api/index.js +1 -1
  9. package/lib/cjs/api/index.js.map +2 -2
  10. package/lib/cjs/api/model/MasterFingerprintOptions.js +2 -0
  11. package/lib/cjs/api/model/MasterFingerprintOptions.js.map +7 -0
  12. package/lib/cjs/api/model/RegisterWalletOptions.js +2 -0
  13. package/lib/cjs/api/model/RegisterWalletOptions.js.map +7 -0
  14. package/lib/cjs/internal/DefaultSignerBtc.js +1 -1
  15. package/lib/cjs/internal/DefaultSignerBtc.js.map +2 -2
  16. package/lib/cjs/internal/DefaultSignerBtc.test.js +1 -1
  17. package/lib/cjs/internal/DefaultSignerBtc.test.js.map +3 -3
  18. package/lib/cjs/internal/app-binder/BtcAppBinder.js +1 -1
  19. package/lib/cjs/internal/app-binder/BtcAppBinder.js.map +3 -3
  20. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js +1 -1
  21. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  22. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.js +1 -1
  23. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.js.map +3 -3
  24. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  25. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  26. package/lib/cjs/internal/app-binder/task/RegisterWalletTask.js +2 -0
  27. package/lib/cjs/internal/app-binder/task/RegisterWalletTask.js.map +7 -0
  28. package/lib/cjs/internal/app-binder/task/RegisterWalletTask.test.js +2 -0
  29. package/lib/cjs/internal/app-binder/task/RegisterWalletTask.test.js.map +7 -0
  30. package/lib/cjs/internal/use-cases/di/useCasesModule.js +1 -1
  31. package/lib/cjs/internal/use-cases/di/useCasesModule.js.map +3 -3
  32. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js +1 -1
  33. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  34. package/lib/cjs/internal/use-cases/di/useCasesTypes.js +1 -1
  35. package/lib/cjs/internal/use-cases/di/useCasesTypes.js.map +2 -2
  36. package/lib/cjs/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.js +2 -0
  37. package/lib/cjs/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.js.map +7 -0
  38. package/lib/cjs/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.test.js +2 -0
  39. package/lib/cjs/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.test.js.map +7 -0
  40. package/lib/cjs/internal/use-cases/register-wallet/RegisterWalletUseCase.js +2 -0
  41. package/lib/cjs/internal/use-cases/register-wallet/RegisterWalletUseCase.js.map +7 -0
  42. package/lib/cjs/internal/use-cases/register-wallet/RegisterWalletUseCase.test.js +2 -0
  43. package/lib/cjs/internal/use-cases/register-wallet/RegisterWalletUseCase.test.js.map +7 -0
  44. package/lib/cjs/internal/utils/BtcCommandUtils.js +1 -1
  45. package/lib/cjs/internal/utils/BtcCommandUtils.js.map +3 -3
  46. package/lib/cjs/internal/utils/BtcCommandUtils.test.js +1 -1
  47. package/lib/cjs/internal/utils/BtcCommandUtils.test.js.map +3 -3
  48. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js +1 -1
  49. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js.map +3 -3
  50. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  51. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js.map +3 -3
  52. package/lib/cjs/internal/wallet/service/WalletBuilder.js +1 -1
  53. package/lib/cjs/internal/wallet/service/WalletBuilder.js.map +1 -1
  54. package/lib/cjs/package.json +43 -39
  55. package/lib/esm/api/app-binder/GetMasterFingerprintDeviceActionTypes.js +1 -0
  56. package/lib/esm/api/app-binder/GetMasterFingerprintDeviceActionTypes.js.map +7 -0
  57. package/lib/esm/api/app-binder/RegisterWalletDeviceActionTypes.js +1 -0
  58. package/lib/esm/api/app-binder/RegisterWalletDeviceActionTypes.js.map +7 -0
  59. package/lib/esm/api/index.js +1 -1
  60. package/lib/esm/api/index.js.map +3 -3
  61. package/lib/esm/api/model/MasterFingerprintOptions.js +1 -0
  62. package/lib/esm/api/model/MasterFingerprintOptions.js.map +7 -0
  63. package/lib/esm/api/model/RegisterWalletOptions.js +1 -0
  64. package/lib/esm/api/model/RegisterWalletOptions.js.map +7 -0
  65. package/lib/esm/internal/DefaultSignerBtc.js +1 -1
  66. package/lib/esm/internal/DefaultSignerBtc.js.map +2 -2
  67. package/lib/esm/internal/DefaultSignerBtc.test.js +1 -1
  68. package/lib/esm/internal/DefaultSignerBtc.test.js.map +3 -3
  69. package/lib/esm/internal/app-binder/BtcAppBinder.js +1 -1
  70. package/lib/esm/internal/app-binder/BtcAppBinder.js.map +3 -3
  71. package/lib/esm/internal/app-binder/BtcAppBinder.test.js +1 -1
  72. package/lib/esm/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  73. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.js +1 -1
  74. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.js.map +3 -3
  75. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  76. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +3 -3
  77. package/lib/esm/internal/app-binder/task/RegisterWalletTask.js +2 -0
  78. package/lib/esm/internal/app-binder/task/RegisterWalletTask.js.map +7 -0
  79. package/lib/esm/internal/app-binder/task/RegisterWalletTask.test.js +2 -0
  80. package/lib/esm/internal/app-binder/task/RegisterWalletTask.test.js.map +7 -0
  81. package/lib/esm/internal/use-cases/di/useCasesModule.js +1 -1
  82. package/lib/esm/internal/use-cases/di/useCasesModule.js.map +3 -3
  83. package/lib/esm/internal/use-cases/di/useCasesModule.test.js +1 -1
  84. package/lib/esm/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  85. package/lib/esm/internal/use-cases/di/useCasesTypes.js +1 -1
  86. package/lib/esm/internal/use-cases/di/useCasesTypes.js.map +2 -2
  87. package/lib/esm/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.js +2 -0
  88. package/lib/esm/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.js.map +7 -0
  89. package/lib/esm/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.test.js +2 -0
  90. package/lib/esm/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.test.js.map +7 -0
  91. package/lib/esm/internal/use-cases/register-wallet/RegisterWalletUseCase.js +2 -0
  92. package/lib/esm/internal/use-cases/register-wallet/RegisterWalletUseCase.js.map +7 -0
  93. package/lib/esm/internal/use-cases/register-wallet/RegisterWalletUseCase.test.js +2 -0
  94. package/lib/esm/internal/use-cases/register-wallet/RegisterWalletUseCase.test.js.map +7 -0
  95. package/lib/esm/internal/utils/BtcCommandUtils.js +1 -1
  96. package/lib/esm/internal/utils/BtcCommandUtils.js.map +3 -3
  97. package/lib/esm/internal/utils/BtcCommandUtils.test.js +1 -1
  98. package/lib/esm/internal/utils/BtcCommandUtils.test.js.map +3 -3
  99. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js +1 -1
  100. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js.map +3 -3
  101. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  102. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js.map +3 -3
  103. package/lib/esm/package.json +43 -39
  104. package/lib/types/api/SignerBtc.d.ts +7 -1
  105. package/lib/types/api/SignerBtc.d.ts.map +1 -1
  106. package/lib/types/api/app-binder/GetMasterFingerprintDeviceActionTypes.d.ts +14 -0
  107. package/lib/types/api/app-binder/GetMasterFingerprintDeviceActionTypes.d.ts.map +1 -0
  108. package/lib/types/api/app-binder/RegisterWalletDeviceActionTypes.d.ts +16 -0
  109. package/lib/types/api/app-binder/RegisterWalletDeviceActionTypes.d.ts.map +1 -0
  110. package/lib/types/api/index.d.ts +3 -1
  111. package/lib/types/api/index.d.ts.map +1 -1
  112. package/lib/types/api/model/MasterFingerprintOptions.d.ts +4 -0
  113. package/lib/types/api/model/MasterFingerprintOptions.d.ts.map +1 -0
  114. package/lib/types/api/model/RegisterWalletOptions.d.ts +4 -0
  115. package/lib/types/api/model/RegisterWalletOptions.d.ts.map +1 -0
  116. package/lib/types/internal/DefaultSignerBtc.d.ts +5 -1
  117. package/lib/types/internal/DefaultSignerBtc.d.ts.map +1 -1
  118. package/lib/types/internal/app-binder/BtcAppBinder.d.ts +4 -0
  119. package/lib/types/internal/app-binder/BtcAppBinder.d.ts.map +1 -1
  120. package/lib/types/internal/app-binder/command/RegisterWalletAddressCommand.d.ts +2 -5
  121. package/lib/types/internal/app-binder/command/RegisterWalletAddressCommand.d.ts.map +1 -1
  122. package/lib/types/internal/app-binder/task/RegisterWalletTask.d.ts +23 -0
  123. package/lib/types/internal/app-binder/task/RegisterWalletTask.d.ts.map +1 -0
  124. package/lib/types/internal/app-binder/task/RegisterWalletTask.test.d.ts +2 -0
  125. package/lib/types/internal/app-binder/task/RegisterWalletTask.test.d.ts.map +1 -0
  126. package/lib/types/internal/use-cases/di/useCasesModule.d.ts.map +1 -1
  127. package/lib/types/internal/use-cases/di/useCasesTypes.d.ts +2 -0
  128. package/lib/types/internal/use-cases/di/useCasesTypes.d.ts.map +1 -1
  129. package/lib/types/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.d.ts +9 -0
  130. package/lib/types/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.d.ts.map +1 -0
  131. package/lib/types/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.test.d.ts +2 -0
  132. package/lib/types/internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase.test.d.ts.map +1 -0
  133. package/lib/types/internal/use-cases/register-wallet/RegisterWalletUseCase.d.ts +8 -0
  134. package/lib/types/internal/use-cases/register-wallet/RegisterWalletUseCase.d.ts.map +1 -0
  135. package/lib/types/internal/use-cases/register-wallet/RegisterWalletUseCase.test.d.ts +2 -0
  136. package/lib/types/internal/use-cases/register-wallet/RegisterWalletUseCase.test.d.ts.map +1 -0
  137. package/lib/types/internal/utils/BtcCommandUtils.d.ts +5 -0
  138. package/lib/types/internal/utils/BtcCommandUtils.d.ts.map +1 -1
  139. package/lib/types/internal/wallet/service/DefaultWalletBuilder.d.ts +2 -1
  140. package/lib/types/internal/wallet/service/DefaultWalletBuilder.d.ts.map +1 -1
  141. package/lib/types/internal/wallet/service/WalletBuilder.d.ts +2 -1
  142. package/lib/types/internal/wallet/service/WalletBuilder.d.ts.map +1 -1
  143. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  144. package/package.json +33 -29
package/README.md CHANGED
@@ -1,11 +1,13 @@
1
- # Ledger Bitcoin Signer
1
+ # Bitcoin Signer Kit
2
2
 
3
3
  This module provides the implementation of the Ledger Bitcoin signer of the Device Management Kit. It enables interaction with the Bitcoin application on a Ledger device including:
4
4
 
5
- - Retrieving the Bitcoin public key using a given address index;
5
+ - Retrieving the Bitcoin extended public key and master fingerprint;
6
6
  - Signing a message displayed on a Ledger device;
7
7
  - Signing a Bitcoin partially signed transaction (PSBT);
8
8
  - Signing a Bitcoin transaction;
9
+ - Retrieving wallet addresses;
10
+ - Registering custom wallet policies (e.g., multisig wallets);
9
11
 
10
12
  ## 🔹 Index
11
13
 
@@ -14,10 +16,12 @@ This module provides the implementation of the Ledger Bitcoin signer of the Devi
14
16
  3. [Initialisation](#-initialisation)
15
17
  4. [Use Cases](#-use-cases)
16
18
  - [Get Extended Public Key](#use-case-1-get-extended-public-key)
17
- - [Sign Message](#use-case-2-sign-message)
18
- - [Sign Partially Signed Transaction (PSBT)](#use-case-3-sign-psbt)
19
- - [Sign Transaction](#use-case-4-sign-transaction)
20
- - [Get Wallet address](#use-case-5-get-wallet-address)
19
+ - [Get Master Fingerprint](#use-case-2-get-master-fingerprint)
20
+ - [Sign Message](#use-case-3-sign-message)
21
+ - [Sign Partially Signed Transaction (PSBT)](#use-case-4-sign-psbt)
22
+ - [Sign Transaction](#use-case-5-sign-transaction)
23
+ - [Get Wallet address](#use-case-6-get-wallet-address)
24
+ - [Register Wallet](#use-case-7-register-wallet)
21
25
  5. [Observable Behavior](#-observable-behavior)
22
26
  6. [Example](#-example)
23
27
 
@@ -46,7 +50,7 @@ const signerBitcoin = new SignerBtcBuilder({ sdk, sessionId }).build();
46
50
 
47
51
  ## 🔹 Use Cases
48
52
 
49
- The `SignerBtcBuilder.build()` method will return a `SignerBitcoin` instance that exposes 5 dedicated methods, each of which calls an independent use case. Each use case will return an object that contains an observable and a method called `cancel`.
53
+ The `SignerBtcBuilder.build()` method will return a `SignerBitcoin` instance that exposes 7 dedicated methods, each of which calls an independent use case. Each use case will return an object that contains an observable and a method called `cancel`.
50
54
 
51
55
  ---
52
56
 
@@ -96,7 +100,44 @@ type GetAddressCommandResponse = {
96
100
 
97
101
  ---
98
102
 
99
- ### Use Case 2: Sign message
103
+ ### Use Case 2: Get master fingerprint
104
+
105
+ This method allows users to retrieve the master fingerprint of the wallet. The master fingerprint is a 4-byte identifier derived from the master public key, commonly used in BIP32 derivation paths and PSBTs.
106
+
107
+ ```typescript
108
+ const { observable, cancel } = signerBitcoin.getMasterFingerprint(options);
109
+ ```
110
+
111
+ #### **Parameters**
112
+
113
+ - `options`
114
+
115
+ - Optional
116
+ - Type: `MasterFingerprintOptions`
117
+
118
+ ```typescript
119
+ type MasterFingerprintOptions = {
120
+ skipOpenApp?: boolean;
121
+ };
122
+ ```
123
+
124
+ - `skipOpenApp`: An optional boolean indicating whether to skip opening the Bitcoin app automatically (`true`) or not (`false`).
125
+
126
+ #### **Returns**
127
+
128
+ - `observable` Emits DeviceActionState updates, including the following details:
129
+
130
+ ```typescript
131
+ type GetMasterFingerprintCommandResponse = {
132
+ masterFingerprint: Uint8Array; // 4-byte master fingerprint
133
+ };
134
+ ```
135
+
136
+ - `cancel` A function to cancel the action on the Ledger device.
137
+
138
+ ---
139
+
140
+ ### Use Case 3: Sign message
100
141
 
101
142
  This method allows users to sign a text string that is displayed on Ledger devices.
102
143
 
@@ -137,7 +178,7 @@ type Signature = {
137
178
 
138
179
  ---
139
180
 
140
- ### Use Case 3: Sign PSBT
181
+ ### Use Case 4: Sign PSBT
141
182
 
142
183
  This method allows users to sign a partially signed transaction.
143
184
 
@@ -217,7 +258,7 @@ type PsbtSignature = PartialSignature | MusigPartialSignature | MusigPubNonce;
217
258
 
218
259
  ---
219
260
 
220
- ### Use Case 4: Sign transaction
261
+ ### Use Case 5: Sign transaction
221
262
 
222
263
  This method allows users to sign a Bitcoin transaction.
223
264
 
@@ -272,7 +313,7 @@ type TransactionHash = `0x${string}`;
272
313
 
273
314
  - `cancel` A function to cancel the action on the Ledger device.
274
315
 
275
- ### Use Case 5: Get wallet address
316
+ ### Use Case 6: Get wallet address
276
317
 
277
318
  This method allows users to get the wallet address linked to a Ledger device.
278
319
 
@@ -324,6 +365,104 @@ type WalletAddress = {
324
365
 
325
366
  ---
326
367
 
368
+ ### Use Case 7: Register wallet
369
+
370
+ This method allows users to register a custom wallet policy on the Ledger device. Wallet policies describe complex wallet setups like multisig wallets. Once registered, the device returns an HMAC that must be stored and provided for future operations (signing, address generation) with this wallet.
371
+
372
+ ```typescript
373
+ const { observable, cancel } = signerBitcoin.registerWallet(
374
+ walletPolicy,
375
+ options,
376
+ );
377
+ ```
378
+
379
+ #### **Parameters**
380
+
381
+ - `walletPolicy`
382
+
383
+ - **Required**
384
+ - **Type:** `WalletPolicy`
385
+
386
+ ```typescript
387
+ class WalletPolicy {
388
+ constructor(
389
+ public name: string, // Human-readable wallet name (displayed on device)
390
+ public descriptorTemplate: string, // Descriptor template (e.g., "wsh(sortedmulti(2,@0/**,@1/**))")
391
+ public keys: string[], // Array of key origin info + xpubs
392
+ ) {}
393
+ }
394
+ ```
395
+
396
+ - `name`: A human-readable name for the wallet (max 64 characters), displayed on the device during registration.
397
+ - `descriptorTemplate`: A Bitcoin descriptor template using placeholders like `@0`, `@1` for keys. See [wallet policies documentation](https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/wallet.md).
398
+ - `keys`: Array of extended public keys with key origin info in the format `[fingerprint/derivation/path]xpub...`.
399
+
400
+ - `options`
401
+
402
+ - Optional
403
+ - Type: `RegisterWalletOptions`
404
+
405
+ ```typescript
406
+ type RegisterWalletOptions = {
407
+ skipOpenApp?: boolean;
408
+ };
409
+ ```
410
+
411
+ - `skipOpenApp`: An optional boolean indicating whether to skip opening the Bitcoin app automatically.
412
+
413
+ #### **Returns**
414
+
415
+ - `observable` Emits DeviceActionState updates, including the following details:
416
+
417
+ ```typescript
418
+ class RegisteredWallet {
419
+ constructor(
420
+ public name: string,
421
+ public descriptorTemplate: string,
422
+ public keys: string[],
423
+ public hmac: Uint8Array, // 32-byte HMAC to store for future operations
424
+ ) {}
425
+ }
426
+ ```
427
+
428
+ The returned `RegisteredWallet` includes the HMAC which must be stored securely. This HMAC is required for any subsequent operations with this wallet (signing transactions, generating addresses).
429
+
430
+ - `cancel` A function to cancel the action on the Ledger device.
431
+
432
+ #### **Example**
433
+
434
+ ```typescript
435
+ import {
436
+ WalletPolicy,
437
+ RegisteredWallet,
438
+ } from "@ledgerhq/device-signer-kit-bitcoin";
439
+
440
+ // Define a 2-of-2 multisig wallet policy
441
+ const walletPolicy = new WalletPolicy(
442
+ "My Multisig",
443
+ "wsh(sortedmulti(2,@0/**,@1/**))",
444
+ [
445
+ "[76223a6e/48'/1'/0'/2']tpubDE7NQymr4AFtewpAsWtnreyq9ghkzQBXpCZjWLFVRAvnbf7vya2eMTvT2fPapNqL8SuVvLQdbUbMfWLVDCZKnsEBqp6UK93QEzL8Ck23AwF",
446
+ "[f5acc2fd/48'/1'/0'/2']tpubDFAqEGNyad35aBCKUAXbQGDjdVhNueno5ZZVEn3sQbW5ci457gLR7HyTmHBg93oourBssgUxuWz1jX5uhc1qaqFo9VsybY1J5FuedLfm4dK",
447
+ ],
448
+ );
449
+
450
+ // Register the wallet
451
+ const { observable } = signerBitcoin.registerWallet(walletPolicy);
452
+
453
+ observable.subscribe({
454
+ next: (state) => {
455
+ if (state.status === DeviceActionStatus.Completed) {
456
+ const registeredWallet: RegisteredWallet = state.output;
457
+ // Store the HMAC securely for future use
458
+ console.log("Wallet registered! HMAC:", registeredWallet.hmac);
459
+ }
460
+ },
461
+ });
462
+ ```
463
+
464
+ ---
465
+
327
466
  ## 🔹 Observable Behavior
328
467
 
329
468
  Each method returns an [Observable](https://rxjs.dev/guide/observable) emitting updates structured as [`DeviceActionState`](https://github.com/LedgerHQ/device-sdk-ts/blob/develop/packages/device-management-kit/src/api/device-action/model/DeviceActionState.ts). These updates reflect the operation’s progress and status:
@@ -419,6 +558,13 @@ switch (requiredUserInteraction) {
419
558
  console.log("The user needs to confirm on the device to open the app.");
420
559
  break;
421
560
  }
561
+ case UserInteractionRequired.RegisterWallet: {
562
+ // User needs to review and approve the wallet policy on the device
563
+ console.log(
564
+ "The user needs to review and approve the wallet policy on the device.",
565
+ );
566
+ break;
567
+ }
422
568
  default:
423
569
  // Type guard to ensure all cases are handled
424
570
  const uncaughtUserInteraction: never = requiredUserInteraction;
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of o(t))!a.call(e,s)&&s!==i&&n(e,s,{get:()=>t[s],enumerable:!(r=p(t,s))||r.enumerable});return e};var d=e=>l(n({},"__esModule",{value:!0}),e);var m={};module.exports=d(m);
1
+ "use strict";var i=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var a=(e,t,p,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of o(t))!l.call(e,r)&&r!==p&&i(e,r,{get:()=>t[r],enumerable:!(s=n(t,r))||s.enumerable});return e};var y=e=>a(i({},"__esModule",{value:!0}),e);var g={};module.exports=y(g);
2
2
  //# sourceMappingURL=SignerBtc.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/SignerBtc.ts"],
4
- "sourcesContent": ["import { type GetExtendedPublicKeyDAReturnType } from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nimport { type SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type SignPsbtDAReturnType } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type Psbt } from \"@api/model/Psbt\";\nimport { type PsbtOptions } from \"@api/model/PsbtOptions\";\nimport { type Wallet } from \"@api/model/Wallet\";\n\nimport { type GetWalletAddressDAReturnType } from \"./app-binder/GetWalletAddressDeviceActionTypes\";\nimport { type WalletAddressOptions } from \"./model/WalletAddressOptions\";\n\nexport interface SignerBtc {\n getExtendedPublicKey: (\n derivationPath: string,\n options?: AddressOptions,\n ) => GetExtendedPublicKeyDAReturnType;\n signMessage: (\n derivationPath: string,\n message: string,\n options?: MessageOptions,\n ) => SignMessageDAReturnType;\n signPsbt: (\n wallet: Wallet,\n psbt: Psbt,\n options?: PsbtOptions,\n ) => SignPsbtDAReturnType;\n signTransaction: (\n wallet: Wallet,\n psbt: Psbt,\n options?: PsbtOptions,\n ) => SignTransactionDAReturnType;\n getWalletAddress: (\n wallet: Wallet,\n addressIndex: number,\n options?: WalletAddressOptions,\n ) => GetWalletAddressDAReturnType;\n}\n"],
4
+ "sourcesContent": ["import { type GetExtendedPublicKeyDAReturnType } from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nimport { type GetMasterFingerprintDAReturnType } from \"@api/app-binder/GetMasterFingerprintDeviceActionTypes\";\nimport { type RegisterWalletDAReturnType } from \"@api/app-binder/RegisterWalletDeviceActionTypes\";\nimport { type SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type SignPsbtDAReturnType } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type MasterFingerprintOptions } from \"@api/model/MasterFingerprintOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type Psbt } from \"@api/model/Psbt\";\nimport { type PsbtOptions } from \"@api/model/PsbtOptions\";\nimport { type RegisterWalletOptions } from \"@api/model/RegisterWalletOptions\";\nimport { type Wallet, type WalletPolicy } from \"@api/model/Wallet\";\n\nimport { type GetWalletAddressDAReturnType } from \"./app-binder/GetWalletAddressDeviceActionTypes\";\nimport { type WalletAddressOptions } from \"./model/WalletAddressOptions\";\n\nexport interface SignerBtc {\n getExtendedPublicKey: (\n derivationPath: string,\n options?: AddressOptions,\n ) => GetExtendedPublicKeyDAReturnType;\n getMasterFingerprint: (\n options?: MasterFingerprintOptions,\n ) => GetMasterFingerprintDAReturnType;\n registerWallet: (\n wallet: WalletPolicy,\n options?: RegisterWalletOptions,\n ) => RegisterWalletDAReturnType;\n signMessage: (\n derivationPath: string,\n message: string,\n options?: MessageOptions,\n ) => SignMessageDAReturnType;\n signPsbt: (\n wallet: Wallet,\n psbt: Psbt,\n options?: PsbtOptions,\n ) => SignPsbtDAReturnType;\n signTransaction: (\n wallet: Wallet,\n psbt: Psbt,\n options?: PsbtOptions,\n ) => SignTransactionDAReturnType;\n getWalletAddress: (\n wallet: Wallet,\n addressIndex: number,\n options?: WalletAddressOptions,\n ) => GetWalletAddressDAReturnType;\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["SignerBtc_exports", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var p=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var d=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of a(e))!A.call(t,r)&&r!==i&&p(t,r,{get:()=>e[r],enumerable:!(n=o(e,r))||n.enumerable});return t};var u=t=>d(p({},"__esModule",{value:!0}),t);var m={};module.exports=u(m);
2
+ //# sourceMappingURL=GetMasterFingerprintDeviceActionTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/app-binder/GetMasterFingerprintDeviceActionTypes.ts"],
4
+ "sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type SendCommandInAppDAError,\n type SendCommandInAppDAIntermediateValue,\n type SendCommandInAppDAOutput,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\n\ntype GetMasterFingerprintDARequiredInteraction = UserInteractionRequired.None;\n\nexport type GetMasterFingerprintDAOutput = SendCommandInAppDAOutput<{\n masterFingerprint: Uint8Array;\n}>;\n\nexport type GetMasterFingerprintDAError =\n SendCommandInAppDAError<BtcErrorCodes>;\n\nexport type GetMasterFingerprintDAIntermediateValue =\n SendCommandInAppDAIntermediateValue<GetMasterFingerprintDARequiredInteraction>;\n\nexport type GetMasterFingerprintDAInput = {\n skipOpenApp: boolean;\n};\n\nexport type GetMasterFingerprintDAReturnType = ExecuteDeviceActionReturnType<\n GetMasterFingerprintDAOutput,\n GetMasterFingerprintDAError,\n GetMasterFingerprintDAIntermediateValue\n>;\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["GetMasterFingerprintDeviceActionTypes_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var R=(t,e,l,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of a(e))!n.call(t,r)&&r!==l&&i(t,r,{get:()=>e[r],enumerable:!(p=o(e,r))||p.enumerable});return t};var s=t=>R(i({},"__esModule",{value:!0}),t);var u={};module.exports=s(u);
2
+ //# sourceMappingURL=RegisterWalletDeviceActionTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/app-binder/RegisterWalletDeviceActionTypes.ts"],
4
+ "sourcesContent": ["import {\n type CommandErrorResult,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type RegisteredWallet, type WalletPolicy } from \"@api/model/Wallet\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\n\ntype RegisterWalletDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.RegisterWallet;\n\nexport type RegisterWalletDAOutput = RegisteredWallet;\n\nexport type RegisterWalletDAError =\n | OpenAppDAError\n | CommandErrorResult<BtcErrorCodes>[\"error\"];\n\nexport type RegisterWalletDAIntermediateValue = {\n requiredUserInteraction: RegisterWalletDARequiredInteraction;\n};\n\nexport type RegisterWalletDAInput = {\n wallet: WalletPolicy;\n skipOpenApp: boolean;\n};\n\nexport type RegisterWalletDAReturnType = ExecuteDeviceActionReturnType<\n RegisterWalletDAOutput,\n RegisterWalletDAError,\n RegisterWalletDAIntermediateValue\n>;\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["RegisterWalletDeviceActionTypes_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var D=(t,e)=>{for(var p in e)l(t,p,{get:e[p],enumerable:!0})},x=(t,e,p,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of u(e))!B.call(t,f)&&f!==p&&l(t,f,{get:()=>e[f],enumerable:!(a=c(e,f))||a.enumerable});return t},o=(t,e,p)=>(x(t,e,"default"),p&&x(p,e,"default"));var g=t=>x(l({},"__esModule",{value:!0}),t);var r={};D(r,{DefaultDescriptorTemplate:()=>m.DefaultDescriptorTemplate,DefaultWallet:()=>m.DefaultWallet,SignerBtcBuilder:()=>i.SignerBtcBuilder});module.exports=g(r);var i=require("./SignerBtcBuilder");o(r,require("./app-binder/GetExtendedPublicKeyDeviceActionTypes"),module.exports);o(r,require("./app-binder/GetWalletAddressDeviceActionTypes"),module.exports);o(r,require("./app-binder/SignMessageDeviceActionTypes"),module.exports);o(r,require("./app-binder/SignPsbtDeviceActionTypes"),module.exports);o(r,require("./app-binder/SignTransactionDeviceActionTypes"),module.exports);var m=require("./model/Wallet");o(r,require("./SignerBtc"),module.exports);o(r,require("./SignerBtcBuilder"),module.exports);0&&(module.exports={DefaultDescriptorTemplate,DefaultWallet,SignerBtcBuilder,...require("./app-binder/GetExtendedPublicKeyDeviceActionTypes"),...require("./app-binder/GetWalletAddressDeviceActionTypes"),...require("./app-binder/SignMessageDeviceActionTypes"),...require("./app-binder/SignPsbtDeviceActionTypes"),...require("./app-binder/SignTransactionDeviceActionTypes"),...require("./SignerBtc"),...require("./SignerBtcBuilder")});
1
+ "use strict";var l=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var B=(t,o)=>{for(var f in o)l(t,f,{get:o[f],enumerable:!0})},x=(t,o,f,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let m of g(o))!u.call(t,m)&&m!==f&&l(t,m,{get:()=>o[m],enumerable:!(a=c(o,m))||a.enumerable});return t},e=(t,o,f)=>(x(t,o,"default"),f&&x(f,o,"default"));var D=t=>x(l({},"__esModule",{value:!0}),t);var r={};B(r,{DefaultDescriptorTemplate:()=>p.DefaultDescriptorTemplate,DefaultWallet:()=>p.DefaultWallet,RegisteredWallet:()=>p.RegisteredWallet,SignerBtcBuilder:()=>i.SignerBtcBuilder,WalletPolicy:()=>p.WalletPolicy});module.exports=D(r);var i=require("./SignerBtcBuilder");e(r,require("./app-binder/GetExtendedPublicKeyDeviceActionTypes"),module.exports);e(r,require("./app-binder/GetMasterFingerprintDeviceActionTypes"),module.exports);e(r,require("./app-binder/GetWalletAddressDeviceActionTypes"),module.exports);e(r,require("./app-binder/RegisterWalletDeviceActionTypes"),module.exports);e(r,require("./app-binder/SignMessageDeviceActionTypes"),module.exports);e(r,require("./app-binder/SignPsbtDeviceActionTypes"),module.exports);e(r,require("./app-binder/SignTransactionDeviceActionTypes"),module.exports);var p=require("./model/Wallet");e(r,require("./SignerBtc"),module.exports);e(r,require("./SignerBtcBuilder"),module.exports);0&&(module.exports={DefaultDescriptorTemplate,DefaultWallet,RegisteredWallet,SignerBtcBuilder,WalletPolicy,...require("./app-binder/GetExtendedPublicKeyDeviceActionTypes"),...require("./app-binder/GetMasterFingerprintDeviceActionTypes"),...require("./app-binder/GetWalletAddressDeviceActionTypes"),...require("./app-binder/RegisterWalletDeviceActionTypes"),...require("./app-binder/SignMessageDeviceActionTypes"),...require("./app-binder/SignPsbtDeviceActionTypes"),...require("./app-binder/SignTransactionDeviceActionTypes"),...require("./SignerBtc"),...require("./SignerBtcBuilder")});
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/index.ts"],
4
- "sourcesContent": ["export { type SignerBtc } from \"./SignerBtc\";\nexport { SignerBtcBuilder } from \"./SignerBtcBuilder\";\nexport * from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nexport * from \"@api/app-binder/GetWalletAddressDeviceActionTypes\";\nexport * from \"@api/app-binder/SignMessageDeviceActionTypes\";\nexport * from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nexport * from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport { DefaultDescriptorTemplate, DefaultWallet } from \"@api/model/Wallet\";\nexport * from \"@api/SignerBtc\";\nexport * from \"@api/SignerBtcBuilder\";\n"],
5
- "mappings": "2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sJAAAE,EAAAF,GACA,IAAAG,EAAiC,8BACjCC,EAAAJ,EAAc,iEAFd,gBAGAI,EAAAJ,EAAc,6DAHd,gBAIAI,EAAAJ,EAAc,wDAJd,gBAKAI,EAAAJ,EAAc,qDALd,gBAMAI,EAAAJ,EAAc,4DANd,gBAOA,IAAAK,EAAyD,6BACzDD,EAAAJ,EAAc,0BARd,gBASAI,EAAAJ,EAAc,iCATd",
4
+ "sourcesContent": ["export { type SignerBtc } from \"./SignerBtc\";\nexport { SignerBtcBuilder } from \"./SignerBtcBuilder\";\nexport * from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nexport * from \"@api/app-binder/GetMasterFingerprintDeviceActionTypes\";\nexport * from \"@api/app-binder/GetWalletAddressDeviceActionTypes\";\nexport * from \"@api/app-binder/RegisterWalletDeviceActionTypes\";\nexport * from \"@api/app-binder/SignMessageDeviceActionTypes\";\nexport * from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nexport * from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport {\n DefaultDescriptorTemplate,\n DefaultWallet,\n RegisteredWallet,\n WalletPolicy,\n} from \"@api/model/Wallet\";\nexport * from \"@api/SignerBtc\";\nexport * from \"@api/SignerBtcBuilder\";\n"],
5
+ "mappings": "2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8NAAAE,EAAAF,GACA,IAAAG,EAAiC,8BACjCC,EAAAJ,EAAc,iEAFd,gBAGAI,EAAAJ,EAAc,iEAHd,gBAIAI,EAAAJ,EAAc,6DAJd,gBAKAI,EAAAJ,EAAc,2DALd,gBAMAI,EAAAJ,EAAc,wDANd,gBAOAI,EAAAJ,EAAc,qDAPd,gBAQAI,EAAAJ,EAAc,4DARd,gBASA,IAAAK,EAKO,6BACPD,EAAAJ,EAAc,0BAfd,gBAgBAI,EAAAJ,EAAc,iCAhBd",
6
6
  "names": ["api_exports", "__export", "__toCommonJS", "import_SignerBtcBuilder", "__reExport", "import_Wallet"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var O=(e,p,o,t)=>{if(p&&typeof p=="object"||typeof p=="function")for(let n of s(p))!a.call(e,n)&&n!==o&&i(e,n,{get:()=>p[n],enumerable:!(t=r(p,n))||t.enumerable});return e};var b=e=>O(i({},"__esModule",{value:!0}),e);var g={};module.exports=b(g);
2
+ //# sourceMappingURL=MasterFingerprintOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/model/MasterFingerprintOptions.ts"],
4
+ "sourcesContent": ["export type MasterFingerprintOptions = {\n skipOpenApp?: boolean;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["MasterFingerprintOptions_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var r=(p,e,l,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of s(e))!a.call(p,t)&&t!==l&&i(p,t,{get:()=>e[t],enumerable:!(o=n(e,t))||o.enumerable});return p};var O=p=>r(i({},"__esModule",{value:!0}),p);var b={};module.exports=O(b);
2
+ //# sourceMappingURL=RegisterWalletOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/model/RegisterWalletOptions.ts"],
4
+ "sourcesContent": ["export type RegisterWalletOptions = {\n skipOpenApp?: boolean;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["RegisterWalletOptions_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var m=(n,e)=>{for(var t in e)a(n,t,{get:e[t],enumerable:!0})},l=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of c(e))!g.call(n,r)&&r!==t&&a(n,r,{get:()=>e[r],enumerable:!(s=o(e,r))||s.enumerable});return n};var d=n=>l(a({},"__esModule",{value:!0}),n);var y={};m(y,{DefaultSignerBtc:()=>f});module.exports=d(y);var i=require("./use-cases/di/useCasesTypes"),p=require("./di");class f{_container;constructor({dmk:e,sessionId:t}){this._container=(0,p.makeContainer)({dmk:e,sessionId:t})}getWalletAddress(e,t,s){return this._container.get(i.useCasesTypes.GetWalletAddressUseCase).execute(s?.checkOnDevice??!1,e,s?.change??!1,t,s?.skipOpenApp??!1)}signPsbt(e,t,s){return this._container.get(i.useCasesTypes.SignPsbtUseCase).execute(e,t,s?.skipOpenApp??!1)}getExtendedPublicKey(e,t){return this._container.get(i.useCasesTypes.GetExtendedPublicKeyUseCase).execute(e,{checkOnDevice:t?.checkOnDevice??!1,skipOpenApp:t?.skipOpenApp??!1})}signMessage(e,t,s){return this._container.get(i.useCasesTypes.SignMessageUseCase).execute(e,t,s?.skipOpenApp??!1)}signTransaction(e,t,s){return this._container.get(i.useCasesTypes.SignTransactionUseCase).execute(e,t,s?.skipOpenApp??!1)}}0&&(module.exports={DefaultSignerBtc});
1
+ "use strict";var p=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var c=(r,e)=>{for(var t in e)p(r,t,{get:e[t],enumerable:!0})},m=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!g.call(r,n)&&n!==t&&p(r,n,{get:()=>e[n],enumerable:!(s=o(e,n))||s.enumerable});return r};var f=r=>m(p({},"__esModule",{value:!0}),r);var d={};c(d,{DefaultSignerBtc:()=>y});module.exports=f(d);var i=require("./use-cases/di/useCasesTypes"),a=require("./di");class y{_container;constructor({dmk:e,sessionId:t}){this._container=(0,a.makeContainer)({dmk:e,sessionId:t})}getWalletAddress(e,t,s){return this._container.get(i.useCasesTypes.GetWalletAddressUseCase).execute(s?.checkOnDevice??!1,e,s?.change??!1,t,s?.skipOpenApp??!1)}signPsbt(e,t,s){return this._container.get(i.useCasesTypes.SignPsbtUseCase).execute(e,t,s?.skipOpenApp??!1)}getExtendedPublicKey(e,t){return this._container.get(i.useCasesTypes.GetExtendedPublicKeyUseCase).execute(e,{checkOnDevice:t?.checkOnDevice??!1,skipOpenApp:t?.skipOpenApp??!1})}getMasterFingerprint(e){return this._container.get(i.useCasesTypes.GetMasterFingerprintUseCase).execute({skipOpenApp:e?.skipOpenApp??!1})}registerWallet(e,t){return this._container.get(i.useCasesTypes.RegisterWalletUseCase).execute(e,t?.skipOpenApp??!1)}signMessage(e,t,s){return this._container.get(i.useCasesTypes.SignMessageUseCase).execute(e,t,s?.skipOpenApp??!1)}signTransaction(e,t,s){return this._container.get(i.useCasesTypes.SignTransactionUseCase).execute(e,t,s?.skipOpenApp??!1)}}0&&(module.exports={DefaultSignerBtc});
2
2
  //# sourceMappingURL=DefaultSignerBtc.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/DefaultSignerBtc.ts"],
4
- "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type Psbt } from \"@api/model/Psbt\";\nimport { type PsbtOptions } from \"@api/model/PsbtOptions\";\nimport { type Wallet } from \"@api/model/Wallet\";\nimport { type WalletAddressOptions } from \"@api/model/WalletAddressOptions\";\nimport { type SignerBtc } from \"@api/SignerBtc\";\nimport { useCasesTypes } from \"@internal/use-cases/di/useCasesTypes\";\nimport { type GetExtendedPublicKeyUseCase } from \"@internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase\";\nimport { type SignPsbtUseCase } from \"@internal/use-cases/sign-psbt/SignPsbtUseCase\";\nimport { type SignTransactionUseCase } from \"@internal/use-cases/sign-transaction/SignTransactionUseCase\";\n\nimport { type GetWalletAddressUseCase } from \"./use-cases/get-wallet-address/GetWalletAddressUseCase\";\nimport { type SignMessageUseCase } from \"./use-cases/sign-message/SignMessageUseCase\";\nimport { makeContainer } from \"./di\";\n\ntype DefaultSignerBtcConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerBtc implements SignerBtc {\n private readonly _container: Container;\n\n constructor({ dmk, sessionId }: DefaultSignerBtcConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId });\n }\n\n getWalletAddress(\n wallet: Wallet,\n addressIndex: number,\n options?: WalletAddressOptions,\n ) {\n return this._container\n .get<GetWalletAddressUseCase>(useCasesTypes.GetWalletAddressUseCase)\n .execute(\n options?.checkOnDevice ?? false,\n wallet,\n options?.change ?? false,\n addressIndex,\n options?.skipOpenApp ?? false,\n );\n }\n\n signPsbt(wallet: Wallet, psbt: Psbt, options?: PsbtOptions) {\n return this._container\n .get<SignPsbtUseCase>(useCasesTypes.SignPsbtUseCase)\n .execute(wallet, psbt, options?.skipOpenApp ?? false);\n }\n\n getExtendedPublicKey(derivationPath: string, options?: AddressOptions) {\n return this._container\n .get<GetExtendedPublicKeyUseCase>(\n useCasesTypes.GetExtendedPublicKeyUseCase,\n )\n .execute(derivationPath, {\n checkOnDevice: options?.checkOnDevice ?? false,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n\n signMessage(\n derivationPath: string,\n message: string,\n options?: MessageOptions,\n ): SignMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(useCasesTypes.SignMessageUseCase)\n .execute(derivationPath, message, options?.skipOpenApp ?? false);\n }\n\n signTransaction(wallet: Wallet, psbt: Psbt, options?: PsbtOptions) {\n return this._container\n .get<SignTransactionUseCase>(useCasesTypes.SignTransactionUseCase)\n .execute(wallet, psbt, options?.skipOpenApp ?? false);\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAcA,IAAAI,EAA8B,gDAO9BC,EAA8B,gBAOvB,MAAMH,CAAsC,CAChC,WAEjB,YAAY,CAAE,IAAAI,EAAK,UAAAC,CAAU,EAAoC,CAC/D,KAAK,cAAa,iBAAc,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,iBACEC,EACAC,EACAC,EACA,CACA,OAAO,KAAK,WACT,IAA6B,gBAAc,uBAAuB,EAClE,QACCA,GAAS,eAAiB,GAC1BF,EACAE,GAAS,QAAU,GACnBD,EACAC,GAAS,aAAe,EAC1B,CACJ,CAEA,SAASF,EAAgBG,EAAYD,EAAuB,CAC1D,OAAO,KAAK,WACT,IAAqB,gBAAc,eAAe,EAClD,QAAQF,EAAQG,EAAMD,GAAS,aAAe,EAAK,CACxD,CAEA,qBAAqBE,EAAwBF,EAA0B,CACrE,OAAO,KAAK,WACT,IACC,gBAAc,2BAChB,EACC,QAAQE,EAAgB,CACvB,cAAeF,GAAS,eAAiB,GACzC,YAAaA,GAAS,aAAe,EACvC,CAAC,CACL,CAEA,YACEE,EACAC,EACAH,EACyB,CACzB,OAAO,KAAK,WACT,IAAwB,gBAAc,kBAAkB,EACxD,QAAQE,EAAgBC,EAASH,GAAS,aAAe,EAAK,CACnE,CAEA,gBAAgBF,EAAgBG,EAAYD,EAAuB,CACjE,OAAO,KAAK,WACT,IAA4B,gBAAc,sBAAsB,EAChE,QAAQF,EAAQG,EAAMD,GAAS,aAAe,EAAK,CACxD,CACF",
4
+ "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type MasterFingerprintOptions } from \"@api/model/MasterFingerprintOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type Psbt } from \"@api/model/Psbt\";\nimport { type PsbtOptions } from \"@api/model/PsbtOptions\";\nimport { type RegisterWalletOptions } from \"@api/model/RegisterWalletOptions\";\nimport { type Wallet, type WalletPolicy } from \"@api/model/Wallet\";\nimport { type WalletAddressOptions } from \"@api/model/WalletAddressOptions\";\nimport { type SignerBtc } from \"@api/SignerBtc\";\nimport { useCasesTypes } from \"@internal/use-cases/di/useCasesTypes\";\nimport { type GetExtendedPublicKeyUseCase } from \"@internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase\";\nimport { type GetMasterFingerprintUseCase } from \"@internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase\";\nimport { type RegisterWalletUseCase } from \"@internal/use-cases/register-wallet/RegisterWalletUseCase\";\nimport { type SignPsbtUseCase } from \"@internal/use-cases/sign-psbt/SignPsbtUseCase\";\nimport { type SignTransactionUseCase } from \"@internal/use-cases/sign-transaction/SignTransactionUseCase\";\n\nimport { type GetWalletAddressUseCase } from \"./use-cases/get-wallet-address/GetWalletAddressUseCase\";\nimport { type SignMessageUseCase } from \"./use-cases/sign-message/SignMessageUseCase\";\nimport { makeContainer } from \"./di\";\n\ntype DefaultSignerBtcConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerBtc implements SignerBtc {\n private readonly _container: Container;\n\n constructor({ dmk, sessionId }: DefaultSignerBtcConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId });\n }\n\n getWalletAddress(\n wallet: Wallet,\n addressIndex: number,\n options?: WalletAddressOptions,\n ) {\n return this._container\n .get<GetWalletAddressUseCase>(useCasesTypes.GetWalletAddressUseCase)\n .execute(\n options?.checkOnDevice ?? false,\n wallet,\n options?.change ?? false,\n addressIndex,\n options?.skipOpenApp ?? false,\n );\n }\n\n signPsbt(wallet: Wallet, psbt: Psbt, options?: PsbtOptions) {\n return this._container\n .get<SignPsbtUseCase>(useCasesTypes.SignPsbtUseCase)\n .execute(wallet, psbt, options?.skipOpenApp ?? false);\n }\n\n getExtendedPublicKey(derivationPath: string, options?: AddressOptions) {\n return this._container\n .get<GetExtendedPublicKeyUseCase>(\n useCasesTypes.GetExtendedPublicKeyUseCase,\n )\n .execute(derivationPath, {\n checkOnDevice: options?.checkOnDevice ?? false,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n\n getMasterFingerprint(options?: MasterFingerprintOptions) {\n return this._container\n .get<GetMasterFingerprintUseCase>(\n useCasesTypes.GetMasterFingerprintUseCase,\n )\n .execute({\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n\n registerWallet(wallet: WalletPolicy, options?: RegisterWalletOptions) {\n return this._container\n .get<RegisterWalletUseCase>(useCasesTypes.RegisterWalletUseCase)\n .execute(wallet, options?.skipOpenApp ?? false);\n }\n\n signMessage(\n derivationPath: string,\n message: string,\n options?: MessageOptions,\n ): SignMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(useCasesTypes.SignMessageUseCase)\n .execute(derivationPath, message, options?.skipOpenApp ?? false);\n }\n\n signTransaction(wallet: Wallet, psbt: Psbt, options?: PsbtOptions) {\n return this._container\n .get<SignTransactionUseCase>(useCasesTypes.SignTransactionUseCase)\n .execute(wallet, psbt, options?.skipOpenApp ?? false);\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAgBA,IAAAI,EAA8B,gDAS9BC,EAA8B,gBAOvB,MAAMH,CAAsC,CAChC,WAEjB,YAAY,CAAE,IAAAI,EAAK,UAAAC,CAAU,EAAoC,CAC/D,KAAK,cAAa,iBAAc,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,iBACEC,EACAC,EACAC,EACA,CACA,OAAO,KAAK,WACT,IAA6B,gBAAc,uBAAuB,EAClE,QACCA,GAAS,eAAiB,GAC1BF,EACAE,GAAS,QAAU,GACnBD,EACAC,GAAS,aAAe,EAC1B,CACJ,CAEA,SAASF,EAAgBG,EAAYD,EAAuB,CAC1D,OAAO,KAAK,WACT,IAAqB,gBAAc,eAAe,EAClD,QAAQF,EAAQG,EAAMD,GAAS,aAAe,EAAK,CACxD,CAEA,qBAAqBE,EAAwBF,EAA0B,CACrE,OAAO,KAAK,WACT,IACC,gBAAc,2BAChB,EACC,QAAQE,EAAgB,CACvB,cAAeF,GAAS,eAAiB,GACzC,YAAaA,GAAS,aAAe,EACvC,CAAC,CACL,CAEA,qBAAqBA,EAAoC,CACvD,OAAO,KAAK,WACT,IACC,gBAAc,2BAChB,EACC,QAAQ,CACP,YAAaA,GAAS,aAAe,EACvC,CAAC,CACL,CAEA,eAAeF,EAAsBE,EAAiC,CACpE,OAAO,KAAK,WACT,IAA2B,gBAAc,qBAAqB,EAC9D,QAAQF,EAAQE,GAAS,aAAe,EAAK,CAClD,CAEA,YACEE,EACAC,EACAH,EACyB,CACzB,OAAO,KAAK,WACT,IAAwB,gBAAc,kBAAkB,EACxD,QAAQE,EAAgBC,EAASH,GAAS,aAAe,EAAK,CACnE,CAEA,gBAAgBF,EAAgBG,EAAYD,EAAuB,CACjE,OAAO,KAAK,WACT,IAA4B,gBAAc,sBAAsB,EAChE,QAAQF,EAAQG,EAAMD,GAAS,aAAe,EAAK,CACxD,CACF",
6
6
  "names": ["DefaultSignerBtc_exports", "__export", "DefaultSignerBtc", "__toCommonJS", "import_useCasesTypes", "import_di", "dmk", "sessionId", "wallet", "addressIndex", "options", "psbt", "derivationPath", "message"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("../api/model/Wallet"),n=require("./DefaultSignerBtc"),o=require("./use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase"),a=require("./use-cases/sign-psbt/SignPsbtUseCase"),c=require("./use-cases/sign-transaction/SignTransactionUseCase"),p=require("./use-cases/sign-message/SignMessageUseCase");describe("DefaultSignerBtc",()=>{it("should be defined",()=>{const e=new n.DefaultSignerBtc({dmk:{},sessionId:"session-id"});expect(e).toBeDefined()}),it("should call getExtendedPublicKeyUseCase",()=>{vi.spyOn(o.GetExtendedPublicKeyUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new n.DefaultSignerBtc({dmk:s,sessionId:e}).getExtendedPublicKey("44'/0'/0'/0/0",{checkOnDevice:!0}),expect(o.GetExtendedPublicKeyUseCase.prototype.execute).toHaveBeenCalled()}),it("should call signMessageUseCase",()=>{vi.spyOn(p.SignMessageUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new n.DefaultSignerBtc({dmk:s,sessionId:e}).signMessage("44'/0'/0'/0/0","message",{skipOpenApp:!1}),expect(p.SignMessageUseCase.prototype.execute).toHaveBeenCalled()}),it("should call signPsbtUseCase",()=>{vi.spyOn(a.SignPsbtUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new n.DefaultSignerBtc({dmk:s,sessionId:e}).signPsbt(new t.DefaultWallet("44'/0'/0'",t.DefaultDescriptorTemplate.NATIVE_SEGWIT),"",{skipOpenApp:!1}),expect(a.SignPsbtUseCase.prototype.execute).toHaveBeenCalled()}),it("should call signTransactionUseCase",()=>{vi.spyOn(c.SignTransactionUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new n.DefaultSignerBtc({dmk:s,sessionId:e}).signTransaction(new t.DefaultWallet("44'/0'/0'",t.DefaultDescriptorTemplate.NATIVE_SEGWIT),"",{skipOpenApp:!1}),expect(c.SignTransactionUseCase.prototype.execute).toHaveBeenCalled()})});
1
+ "use strict";var n=require("../api/model/Wallet"),t=require("./DefaultSignerBtc"),o=require("./use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase"),a=require("./use-cases/get-master-fingerprint/GetMasterFingerprintUseCase"),c=require("./use-cases/register-wallet/RegisterWalletUseCase"),p=require("./use-cases/sign-psbt/SignPsbtUseCase"),r=require("./use-cases/sign-transaction/SignTransactionUseCase"),l=require("./use-cases/sign-message/SignMessageUseCase");describe("DefaultSignerBtc",()=>{it("should be defined",()=>{const e=new t.DefaultSignerBtc({dmk:{},sessionId:"session-id"});expect(e).toBeDefined()}),it("should call getExtendedPublicKeyUseCase",()=>{vi.spyOn(o.GetExtendedPublicKeyUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t.DefaultSignerBtc({dmk:s,sessionId:e}).getExtendedPublicKey("44'/0'/0'/0/0",{checkOnDevice:!0}),expect(o.GetExtendedPublicKeyUseCase.prototype.execute).toHaveBeenCalled()}),it("should call getMasterFingerprintUseCase",()=>{vi.spyOn(a.GetMasterFingerprintUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t.DefaultSignerBtc({dmk:s,sessionId:e}).getMasterFingerprint({skipOpenApp:!1}),expect(a.GetMasterFingerprintUseCase.prototype.execute).toHaveBeenCalled()}),it("should call registerWalletUseCase",()=>{vi.spyOn(c.RegisterWalletUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()},i=new t.DefaultSignerBtc({dmk:s,sessionId:e}),d=new n.WalletPolicy("My Multisig","wsh(sortedmulti(2,@0/**,@1/**))",["[f5acc2fd/48'/1'/0'/2']tpubXXX","tpubYYY"]);i.registerWallet(d,{skipOpenApp:!1}),expect(c.RegisterWalletUseCase.prototype.execute).toHaveBeenCalled()}),it("should call signMessageUseCase",()=>{vi.spyOn(l.SignMessageUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t.DefaultSignerBtc({dmk:s,sessionId:e}).signMessage("44'/0'/0'/0/0","message",{skipOpenApp:!1}),expect(l.SignMessageUseCase.prototype.execute).toHaveBeenCalled()}),it("should call signPsbtUseCase",()=>{vi.spyOn(p.SignPsbtUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t.DefaultSignerBtc({dmk:s,sessionId:e}).signPsbt(new n.DefaultWallet("44'/0'/0'",n.DefaultDescriptorTemplate.NATIVE_SEGWIT),"",{skipOpenApp:!1}),expect(p.SignPsbtUseCase.prototype.execute).toHaveBeenCalled()}),it("should call signTransactionUseCase",()=>{vi.spyOn(r.SignTransactionUseCase.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new t.DefaultSignerBtc({dmk:s,sessionId:e}).signTransaction(new n.DefaultWallet("44'/0'/0'",n.DefaultDescriptorTemplate.NATIVE_SEGWIT),"",{skipOpenApp:!1}),expect(r.SignTransactionUseCase.prototype.execute).toHaveBeenCalled()})});
2
2
  //# sourceMappingURL=DefaultSignerBtc.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/DefaultSignerBtc.test.ts"],
4
- "sourcesContent": ["import { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultDescriptorTemplate, DefaultWallet } from \"@api/model/Wallet\";\nimport { DefaultSignerBtc } from \"@internal/DefaultSignerBtc\";\nimport { GetExtendedPublicKeyUseCase } from \"@internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase\";\nimport { SignPsbtUseCase } from \"@internal/use-cases/sign-psbt/SignPsbtUseCase\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/sign-transaction/SignTransactionUseCase\";\n\nimport { SignMessageUseCase } from \"./use-cases/sign-message/SignMessageUseCase\";\n\ndescribe(\"DefaultSignerBtc\", () => {\n it(\"should be defined\", () => {\n const signer = new DefaultSignerBtc({\n dmk: {} as DeviceManagementKit,\n sessionId: \"session-id\",\n });\n expect(signer).toBeDefined();\n });\n\n it(\"should call getExtendedPublicKeyUseCase\", () => {\n vi.spyOn(GetExtendedPublicKeyUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.getExtendedPublicKey(\"44'/0'/0'/0/0\", {\n checkOnDevice: true,\n });\n expect(GetExtendedPublicKeyUseCase.prototype.execute).toHaveBeenCalled();\n });\n\n it(\"should call signMessageUseCase\", () => {\n vi.spyOn(SignMessageUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const derivationPath = \"44'/0'/0'/0/0\";\n const message = \"message\";\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signMessage(derivationPath, message, { skipOpenApp: false });\n expect(SignMessageUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signPsbtUseCase\", () => {\n vi.spyOn(SignPsbtUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signPsbt(\n new DefaultWallet(\"44'/0'/0'\", DefaultDescriptorTemplate.NATIVE_SEGWIT),\n \"\",\n { skipOpenApp: false },\n );\n expect(SignPsbtUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signTransactionUseCase\", () => {\n vi.spyOn(SignTransactionUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signTransaction(\n new DefaultWallet(\"44'/0'/0'\", DefaultDescriptorTemplate.NATIVE_SEGWIT),\n \"\",\n { skipOpenApp: false },\n );\n expect(SignTransactionUseCase.prototype.execute).toHaveBeenCalled();\n });\n});\n"],
5
- "mappings": "aAEA,IAAAA,EAAyD,6BACzDC,EAAiC,sCACjCC,EAA4C,mFAC5CC,EAAgC,yDAChCC,EAAuC,uEAEvCC,EAAmC,uDAEnC,SAAS,mBAAoB,IAAM,CACjC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAI,mBAAiB,CAClC,IAAK,CAAC,EACN,UAAW,YACb,CAAC,EACD,OAAOA,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,GAAG,MAAM,8BAA4B,UAAW,SAAS,EACzD,MAAMC,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,qBAAqB,gBAAiB,CAC3C,cAAe,EACjB,CAAC,EACD,OAAO,8BAA4B,UAAU,OAAO,EAAE,iBAAiB,CACzE,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,GAAG,MAAM,qBAAmB,UAAW,SAAS,EAChD,MAAMA,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EAGe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,YAHgB,gBACP,UAE4B,CAAE,YAAa,EAAM,CAAC,EAClE,OAAO,qBAAmB,UAAU,OAAO,EAAE,iBAAiB,CAChE,CAAC,EACD,GAAG,8BAA+B,IAAM,CACtC,GAAG,MAAM,kBAAgB,UAAW,SAAS,EAC7C,MAAMA,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,SACL,IAAI,gBAAc,YAAa,4BAA0B,aAAa,EACtE,GACA,CAAE,YAAa,EAAM,CACvB,EACA,OAAO,kBAAgB,UAAU,OAAO,EAAE,iBAAiB,CAC7D,CAAC,EACD,GAAG,qCAAsC,IAAM,CAC7C,GAAG,MAAM,yBAAuB,UAAW,SAAS,EACpD,MAAMA,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,gBACL,IAAI,gBAAc,YAAa,4BAA0B,aAAa,EACtE,GACA,CAAE,YAAa,EAAM,CACvB,EACA,OAAO,yBAAuB,UAAU,OAAO,EAAE,iBAAiB,CACpE,CAAC,CACH,CAAC",
6
- "names": ["import_Wallet", "import_DefaultSignerBtc", "import_GetExtendedPublicKeyUseCase", "import_SignPsbtUseCase", "import_SignTransactionUseCase", "import_SignMessageUseCase", "signer", "sessionId", "dmk"]
4
+ "sourcesContent": ["import { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport {\n DefaultDescriptorTemplate,\n DefaultWallet,\n WalletPolicy,\n} from \"@api/model/Wallet\";\nimport { DefaultSignerBtc } from \"@internal/DefaultSignerBtc\";\nimport { GetExtendedPublicKeyUseCase } from \"@internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase\";\nimport { GetMasterFingerprintUseCase } from \"@internal/use-cases/get-master-fingerprint/GetMasterFingerprintUseCase\";\nimport { RegisterWalletUseCase } from \"@internal/use-cases/register-wallet/RegisterWalletUseCase\";\nimport { SignPsbtUseCase } from \"@internal/use-cases/sign-psbt/SignPsbtUseCase\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/sign-transaction/SignTransactionUseCase\";\n\nimport { SignMessageUseCase } from \"./use-cases/sign-message/SignMessageUseCase\";\n\ndescribe(\"DefaultSignerBtc\", () => {\n it(\"should be defined\", () => {\n const signer = new DefaultSignerBtc({\n dmk: {} as DeviceManagementKit,\n sessionId: \"session-id\",\n });\n expect(signer).toBeDefined();\n });\n\n it(\"should call getExtendedPublicKeyUseCase\", () => {\n vi.spyOn(GetExtendedPublicKeyUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.getExtendedPublicKey(\"44'/0'/0'/0/0\", {\n checkOnDevice: true,\n });\n expect(GetExtendedPublicKeyUseCase.prototype.execute).toHaveBeenCalled();\n });\n\n it(\"should call getMasterFingerprintUseCase\", () => {\n vi.spyOn(GetMasterFingerprintUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.getMasterFingerprint({ skipOpenApp: false });\n expect(GetMasterFingerprintUseCase.prototype.execute).toHaveBeenCalled();\n });\n\n it(\"should call registerWalletUseCase\", () => {\n vi.spyOn(RegisterWalletUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n const walletPolicy = new WalletPolicy(\n \"My Multisig\",\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n [\"[f5acc2fd/48'/1'/0'/2']tpubXXX\", \"tpubYYY\"],\n );\n signer.registerWallet(walletPolicy, { skipOpenApp: false });\n expect(RegisterWalletUseCase.prototype.execute).toHaveBeenCalled();\n });\n\n it(\"should call signMessageUseCase\", () => {\n vi.spyOn(SignMessageUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const derivationPath = \"44'/0'/0'/0/0\";\n const message = \"message\";\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signMessage(derivationPath, message, { skipOpenApp: false });\n expect(SignMessageUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signPsbtUseCase\", () => {\n vi.spyOn(SignPsbtUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signPsbt(\n new DefaultWallet(\"44'/0'/0'\", DefaultDescriptorTemplate.NATIVE_SEGWIT),\n \"\",\n { skipOpenApp: false },\n );\n expect(SignPsbtUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signTransactionUseCase\", () => {\n vi.spyOn(SignTransactionUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const signer = new DefaultSignerBtc({ dmk, sessionId });\n signer.signTransaction(\n new DefaultWallet(\"44'/0'/0'\", DefaultDescriptorTemplate.NATIVE_SEGWIT),\n \"\",\n { skipOpenApp: false },\n );\n expect(SignTransactionUseCase.prototype.execute).toHaveBeenCalled();\n });\n});\n"],
5
+ "mappings": "aAEA,IAAAA,EAIO,6BACPC,EAAiC,sCACjCC,EAA4C,mFAC5CC,EAA4C,kFAC5CC,EAAsC,qEACtCC,EAAgC,yDAChCC,EAAuC,uEAEvCC,EAAmC,uDAEnC,SAAS,mBAAoB,IAAM,CACjC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAI,mBAAiB,CAClC,IAAK,CAAC,EACN,UAAW,YACb,CAAC,EACD,OAAOA,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,GAAG,MAAM,8BAA4B,UAAW,SAAS,EACzD,MAAMC,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,qBAAqB,gBAAiB,CAC3C,cAAe,EACjB,CAAC,EACD,OAAO,8BAA4B,UAAU,OAAO,EAAE,iBAAiB,CACzE,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,GAAG,MAAM,8BAA4B,UAAW,SAAS,EACzD,MAAMA,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,qBAAqB,CAAE,YAAa,EAAM,CAAC,EAClD,OAAO,8BAA4B,UAAU,OAAO,EAAE,iBAAiB,CACzE,CAAC,EAED,GAAG,oCAAqC,IAAM,CAC5C,GAAG,MAAM,wBAAsB,UAAW,SAAS,EACnD,MAAMA,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMF,EAAS,IAAI,mBAAiB,CAAE,IAAAE,EAAK,UAAAD,CAAU,CAAC,EAChDE,EAAe,IAAI,eACvB,cACA,kCACA,CAAC,iCAAkC,SAAS,CAC9C,EACAH,EAAO,eAAeG,EAAc,CAAE,YAAa,EAAM,CAAC,EAC1D,OAAO,wBAAsB,UAAU,OAAO,EAAE,iBAAiB,CACnE,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,GAAG,MAAM,qBAAmB,UAAW,SAAS,EAChD,MAAMF,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EAGe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,YAHgB,gBACP,UAE4B,CAAE,YAAa,EAAM,CAAC,EAClE,OAAO,qBAAmB,UAAU,OAAO,EAAE,iBAAiB,CAChE,CAAC,EACD,GAAG,8BAA+B,IAAM,CACtC,GAAG,MAAM,kBAAgB,UAAW,SAAS,EAC7C,MAAMA,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,SACL,IAAI,gBAAc,YAAa,4BAA0B,aAAa,EACtE,GACA,CAAE,YAAa,EAAM,CACvB,EACA,OAAO,kBAAgB,UAAU,OAAO,EAAE,iBAAiB,CAC7D,CAAC,EACD,GAAG,qCAAsC,IAAM,CAC7C,GAAG,MAAM,yBAAuB,UAAW,SAAS,EACpD,MAAMA,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAI,mBAAiB,CAAE,IAAAA,EAAK,UAAAD,CAAU,CAAC,EAC/C,gBACL,IAAI,gBAAc,YAAa,4BAA0B,aAAa,EACtE,GACA,CAAE,YAAa,EAAM,CACvB,EACA,OAAO,yBAAuB,UAAU,OAAO,EAAE,iBAAiB,CACpE,CAAC,CACH,CAAC",
6
+ "names": ["import_Wallet", "import_DefaultSignerBtc", "import_GetExtendedPublicKeyUseCase", "import_GetMasterFingerprintUseCase", "import_RegisterWalletUseCase", "import_SignPsbtUseCase", "import_SignTransactionUseCase", "import_SignMessageUseCase", "signer", "sessionId", "dmk", "walletPolicy"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var f=(i,e)=>{for(var r in e)d(i,r,{get:e[r],enumerable:!0})},I=(i,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of k(e))!P.call(i,t)&&t!==r&&d(i,t,{get:()=>e[t],enumerable:!(a=S(e,t))||a.enumerable});return i};var T=i=>I(d({},"__esModule",{value:!0}),i),A=(i,e,r,a)=>{for(var t=a>1?void 0:a?S(e,r):e,o=i.length-1,c;o>=0;o--)(c=i[o])&&(t=(a?c(e,r,t):c(t))||t);return a&&t&&d(e,r,t),t},s=(i,e)=>(r,a)=>e(r,a,i);var O={};f(O,{BtcAppBinder:()=>l});module.exports=T(O);var p=require("@ledgerhq/device-management-kit"),n=require("inversify"),b=require("../app-binder/command/GetExtendedPublicKeyCommand"),y=require("../app-binder/device-action/SignPsbt/SignPsbtDeviceAction"),D=require("../app-binder/device-action/SignTransaction/SignTransactionDeviceAction"),w=require("../app-binder/task/SignMessageTask"),h=require("../data-store/di/dataStoreTypes"),m=require("../externalTypes"),u=require("../psbt/di/psbtTypes"),v=require("../wallet/di/walletTypes"),_=require("./device-action/GetWalletAddress/GetWalletAddressDeviceAction");let l=class{constructor(e,r,a,t,o,c,g){this._dmk=e;this._sessionId=r;this._walletBuilder=a;this._walletSerializer=t;this._dataStoreService=o;this._psbtMapper=c;this._valueParser=g}getExtendedPublicKey(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new p.SendCommandInAppDeviceAction({input:{command:new b.GetExtendedPublicKeyCommand(e),appName:"Bitcoin",requiredUserInteraction:e.checkOnDevice?p.UserInteractionRequired.VerifyAddress:p.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp}})})}signMessage(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new p.CallTaskInAppDeviceAction({input:{task:async r=>new w.SendSignMessageTask(r,e,this._dataStoreService).run(),appName:"Bitcoin",requiredUserInteraction:p.UserInteractionRequired.SignPersonalMessage,skipOpenApp:e.skipOpenApp}})})}signPsbt(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new y.SignPsbtDeviceAction({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser,skipOpenApp:e.skipOpenApp}})})}getWalletAddress(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new _.GetWalletAddressDeviceAction({input:{wallet:e.wallet,skipOpenApp:e.skipOpenApp,checkOnDevice:e.checkOnDevice,change:e.change,addressIndex:e.addressIndex,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService}})})}signTransaction(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new D.SignTransactionDeviceAction({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser,skipOpenApp:e.skipOpenApp}})})}};l=A([(0,n.injectable)(),s(0,(0,n.inject)(m.externalTypes.Dmk)),s(1,(0,n.inject)(m.externalTypes.SessionId)),s(2,(0,n.inject)(v.walletTypes.WalletBuilder)),s(3,(0,n.inject)(v.walletTypes.WalletSerializer)),s(4,(0,n.inject)(h.dataStoreTypes.DataStoreService)),s(5,(0,n.inject)(u.psbtTypes.PsbtMapper)),s(6,(0,n.inject)(u.psbtTypes.ValueParser))],l);0&&(module.exports={BtcAppBinder});
1
+ "use strict";var d=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var f=(r,e)=>{for(var t in e)d(r,t,{get:e[t],enumerable:!0})},T=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of g(e))!P.call(r,i)&&i!==t&&d(r,i,{get:()=>e[i],enumerable:!(s=v(e,i))||s.enumerable});return r};var W=r=>T(d({},"__esModule",{value:!0}),r),S=(r,e,t,s)=>{for(var i=s>1?void 0:s?v(e,t):e,o=r.length-1,c;o>=0;o--)(c=r[o])&&(i=(s?c(e,t,i):c(i))||i);return s&&i&&d(e,t,i),i},p=(r,e)=>(t,s)=>e(t,s,r);var M={};f(M,{BtcAppBinder:()=>l});module.exports=W(M);var n=require("@ledgerhq/device-management-kit"),a=require("inversify"),D=require("../app-binder/command/GetExtendedPublicKeyCommand"),w=require("../app-binder/command/GetMasterFingerprintCommand"),y=require("../app-binder/device-action/SignPsbt/SignPsbtDeviceAction"),b=require("../app-binder/device-action/SignTransaction/SignTransactionDeviceAction"),h=require("../app-binder/task/RegisterWalletTask"),_=require("../app-binder/task/SignMessageTask"),k=require("../data-store/di/dataStoreTypes"),m=require("../externalTypes"),u=require("../psbt/di/psbtTypes"),A=require("../wallet/di/walletTypes"),I=require("./device-action/GetWalletAddress/GetWalletAddressDeviceAction");let l=class{constructor(e,t,s,i,o,c,O){this._dmk=e;this._sessionId=t;this._walletBuilder=s;this._walletSerializer=i;this._dataStoreService=o;this._psbtMapper=c;this._valueParser=O}getExtendedPublicKey(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new D.GetExtendedPublicKeyCommand(e),appName:"Bitcoin",requiredUserInteraction:e.checkOnDevice?n.UserInteractionRequired.VerifyAddress:n.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp}})})}getMasterFingerprint(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new w.GetMasterFingerprintCommand,appName:"Bitcoin",requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp}})})}signMessage(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new n.CallTaskInAppDeviceAction({input:{task:async t=>new _.SendSignMessageTask(t,e,this._dataStoreService).run(),appName:"Bitcoin",requiredUserInteraction:n.UserInteractionRequired.SignPersonalMessage,skipOpenApp:e.skipOpenApp}})})}signPsbt(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new y.SignPsbtDeviceAction({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser,skipOpenApp:e.skipOpenApp}})})}getWalletAddress(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new I.GetWalletAddressDeviceAction({input:{wallet:e.wallet,skipOpenApp:e.skipOpenApp,checkOnDevice:e.checkOnDevice,change:e.change,addressIndex:e.addressIndex,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService}})})}signTransaction(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new b.SignTransactionDeviceAction({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser,skipOpenApp:e.skipOpenApp}})})}registerWallet(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new n.CallTaskInAppDeviceAction({input:{task:async t=>new h.RegisterWalletTask(t,{walletPolicy:e.wallet},this._walletBuilder,this._walletSerializer,this._dataStoreService).run(),appName:"Bitcoin",requiredUserInteraction:n.UserInteractionRequired.RegisterWallet,skipOpenApp:e.skipOpenApp}})})}};l=S([(0,a.injectable)(),p(0,(0,a.inject)(m.externalTypes.Dmk)),p(1,(0,a.inject)(m.externalTypes.SessionId)),p(2,(0,a.inject)(A.walletTypes.WalletBuilder)),p(3,(0,a.inject)(A.walletTypes.WalletSerializer)),p(4,(0,a.inject)(k.dataStoreTypes.DataStoreService)),p(5,(0,a.inject)(u.psbtTypes.PsbtMapper)),p(6,(0,a.inject)(u.psbtTypes.ValueParser))],l);0&&(module.exports={BtcAppBinder});
2
2
  //# sourceMappingURL=BtcAppBinder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/BtcAppBinder.ts"],
4
- "sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport {\n GetExtendedPublicKeyDAInput,\n GetExtendedPublicKeyDAReturnType,\n} from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { SignPsbtDAReturnType } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { GetWalletAddressDAReturnType } from \"@api/index\";\nimport { Psbt } from \"@api/model/Psbt\";\nimport { Wallet } from \"@api/model/Wallet\";\nimport { GetExtendedPublicKeyCommand } from \"@internal/app-binder/command/GetExtendedPublicKeyCommand\";\nimport { SignPsbtDeviceAction } from \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\";\nimport { SignTransactionDeviceAction } from \"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { SendSignMessageTask } from \"@internal/app-binder/task/SignMessageTask\";\nimport { dataStoreTypes } from \"@internal/data-store/di/dataStoreTypes\";\nimport type { DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { psbtTypes } from \"@internal/psbt/di/psbtTypes\";\nimport type { PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport type { ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { walletTypes } from \"@internal/wallet/di/walletTypes\";\nimport type { WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport type { WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { GetWalletAddressDeviceAction } from \"./device-action/GetWalletAddress/GetWalletAddressDeviceAction\";\n\n@injectable()\nexport class BtcAppBinder {\n constructor(\n @inject(externalTypes.Dmk)\n private readonly _dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId)\n private readonly _sessionId: DeviceSessionId,\n @inject(walletTypes.WalletBuilder)\n private readonly _walletBuilder: WalletBuilder,\n @inject(walletTypes.WalletSerializer)\n private readonly _walletSerializer: WalletSerializer,\n @inject(dataStoreTypes.DataStoreService)\n private readonly _dataStoreService: DataStoreService,\n @inject(psbtTypes.PsbtMapper)\n private readonly _psbtMapper: PsbtMapper,\n @inject(psbtTypes.ValueParser)\n private readonly _valueParser: ValueParser,\n ) {}\n\n getExtendedPublicKey(\n args: GetExtendedPublicKeyDAInput,\n ): GetExtendedPublicKeyDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetExtendedPublicKeyCommand(args),\n appName: \"Bitcoin\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signMessage(args: {\n derivationPath: string;\n message: string;\n skipOpenApp: boolean;\n }): SignMessageDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignMessageTask(\n internalApi,\n args,\n this._dataStoreService,\n ).run(),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signPsbt(args: {\n psbt: Psbt;\n wallet: Wallet;\n skipOpenApp: boolean;\n }): SignPsbtDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignPsbtDeviceAction({\n input: {\n psbt: args.psbt,\n wallet: args.wallet,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n psbtMapper: this._psbtMapper,\n valueParser: this._valueParser,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n getWalletAddress(args: {\n checkOnDevice: boolean;\n wallet: Wallet;\n change: boolean;\n addressIndex: number;\n skipOpenApp: boolean;\n }): GetWalletAddressDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new GetWalletAddressDeviceAction({\n input: {\n wallet: args.wallet,\n skipOpenApp: args.skipOpenApp,\n checkOnDevice: args.checkOnDevice,\n change: args.change,\n addressIndex: args.addressIndex,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n },\n }),\n });\n }\n\n signTransaction(args: {\n psbt: Psbt;\n wallet: Wallet;\n skipOpenApp: boolean;\n }): SignTransactionDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n psbt: args.psbt,\n wallet: args.wallet,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n psbtMapper: this._psbtMapper,\n valueParser: this._valueParser,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAMO,2CACPC,EAAmC,qBAYnCC,EAA4C,oEAC5CC,EAAqC,4EACrCC,EAA4C,0FAC5CC,EAAoC,qDACpCC,EAA+B,kDAE/BC,EAA8B,mCAC9BC,EAA0B,uCAG1BC,EAA4B,2CAI5BC,EAA6C,yEAGtC,IAAMC,EAAN,KAAmB,CACxB,YAEmBC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EACjB,CAbiB,UAAAN,EAEA,gBAAAC,EAEA,oBAAAC,EAEA,uBAAAC,EAEA,uBAAAC,EAEA,iBAAAC,EAEA,kBAAAC,CAChB,CAEH,qBACEC,EACkC,CAClC,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,8BAA4BA,CAAI,EAC7C,QAAS,UACT,wBAAyBA,EAAK,cAC1B,0BAAwB,cACxB,0BAAwB,KAC5B,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,YAAYA,EAIgB,CAC1B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAI,sBACFA,EACAD,EACA,KAAK,iBACP,EAAE,IAAI,EACR,QAAS,UACT,wBAAyB,0BAAwB,oBACjD,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,SAASA,EAIgB,CACvB,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,uBAAqB,CACrC,MAAO,CACL,KAAMA,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,kBACvB,WAAY,KAAK,YACjB,YAAa,KAAK,aAClB,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,iBAAiBA,EAMgB,CAC/B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,OAAQA,EAAK,OACb,YAAaA,EAAK,YAClB,cAAeA,EAAK,cACpB,OAAQA,EAAK,OACb,aAAcA,EAAK,aACnB,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,iBACzB,CACF,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBA,EAIgB,CAC9B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,8BAA4B,CAC5C,MAAO,CACL,KAAMA,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,kBACvB,WAAY,KAAK,YACjB,YAAa,KAAK,aAClB,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CACF,EA9HaR,EAANU,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GAExBA,EAAA,eAAO,gBAAc,SAAS,GAE9BA,EAAA,eAAO,cAAY,aAAa,GAEhCA,EAAA,eAAO,cAAY,gBAAgB,GAEnCA,EAAA,eAAO,iBAAe,gBAAgB,GAEtCA,EAAA,eAAO,YAAU,UAAU,GAE3BA,EAAA,eAAO,YAAU,WAAW,IAdpBX",
6
- "names": ["BtcAppBinder_exports", "__export", "BtcAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_GetExtendedPublicKeyCommand", "import_SignPsbtDeviceAction", "import_SignTransactionDeviceAction", "import_SignMessageTask", "import_dataStoreTypes", "import_externalTypes", "import_psbtTypes", "import_walletTypes", "import_GetWalletAddressDeviceAction", "BtcAppBinder", "_dmk", "_sessionId", "_walletBuilder", "_walletSerializer", "_dataStoreService", "_psbtMapper", "_valueParser", "args", "internalApi", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport {\n GetExtendedPublicKeyDAInput,\n GetExtendedPublicKeyDAReturnType,\n} from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nimport {\n GetMasterFingerprintDAInput,\n GetMasterFingerprintDAReturnType,\n} from \"@api/app-binder/GetMasterFingerprintDeviceActionTypes\";\nimport {\n RegisterWalletDAInput,\n RegisterWalletDAReturnType,\n} from \"@api/app-binder/RegisterWalletDeviceActionTypes\";\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { SignPsbtDAReturnType } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { GetWalletAddressDAReturnType } from \"@api/index\";\nimport { Psbt } from \"@api/model/Psbt\";\nimport { Wallet } from \"@api/model/Wallet\";\nimport { GetExtendedPublicKeyCommand } from \"@internal/app-binder/command/GetExtendedPublicKeyCommand\";\nimport { GetMasterFingerprintCommand } from \"@internal/app-binder/command/GetMasterFingerprintCommand\";\nimport { SignPsbtDeviceAction } from \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\";\nimport { SignTransactionDeviceAction } from \"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { RegisterWalletTask } from \"@internal/app-binder/task/RegisterWalletTask\";\nimport { SendSignMessageTask } from \"@internal/app-binder/task/SignMessageTask\";\nimport { dataStoreTypes } from \"@internal/data-store/di/dataStoreTypes\";\nimport type { DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { psbtTypes } from \"@internal/psbt/di/psbtTypes\";\nimport type { PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport type { ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { walletTypes } from \"@internal/wallet/di/walletTypes\";\nimport type { WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport type { WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { GetWalletAddressDeviceAction } from \"./device-action/GetWalletAddress/GetWalletAddressDeviceAction\";\n\n@injectable()\nexport class BtcAppBinder {\n constructor(\n @inject(externalTypes.Dmk)\n private readonly _dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId)\n private readonly _sessionId: DeviceSessionId,\n @inject(walletTypes.WalletBuilder)\n private readonly _walletBuilder: WalletBuilder,\n @inject(walletTypes.WalletSerializer)\n private readonly _walletSerializer: WalletSerializer,\n @inject(dataStoreTypes.DataStoreService)\n private readonly _dataStoreService: DataStoreService,\n @inject(psbtTypes.PsbtMapper)\n private readonly _psbtMapper: PsbtMapper,\n @inject(psbtTypes.ValueParser)\n private readonly _valueParser: ValueParser,\n ) {}\n\n getExtendedPublicKey(\n args: GetExtendedPublicKeyDAInput,\n ): GetExtendedPublicKeyDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetExtendedPublicKeyCommand(args),\n appName: \"Bitcoin\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n getMasterFingerprint(\n args: GetMasterFingerprintDAInput,\n ): GetMasterFingerprintDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetMasterFingerprintCommand(),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signMessage(args: {\n derivationPath: string;\n message: string;\n skipOpenApp: boolean;\n }): SignMessageDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignMessageTask(\n internalApi,\n args,\n this._dataStoreService,\n ).run(),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signPsbt(args: {\n psbt: Psbt;\n wallet: Wallet;\n skipOpenApp: boolean;\n }): SignPsbtDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignPsbtDeviceAction({\n input: {\n psbt: args.psbt,\n wallet: args.wallet,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n psbtMapper: this._psbtMapper,\n valueParser: this._valueParser,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n getWalletAddress(args: {\n checkOnDevice: boolean;\n wallet: Wallet;\n change: boolean;\n addressIndex: number;\n skipOpenApp: boolean;\n }): GetWalletAddressDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new GetWalletAddressDeviceAction({\n input: {\n wallet: args.wallet,\n skipOpenApp: args.skipOpenApp,\n checkOnDevice: args.checkOnDevice,\n change: args.change,\n addressIndex: args.addressIndex,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n },\n }),\n });\n }\n\n signTransaction(args: {\n psbt: Psbt;\n wallet: Wallet;\n skipOpenApp: boolean;\n }): SignTransactionDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n psbt: args.psbt,\n wallet: args.wallet,\n walletBuilder: this._walletBuilder,\n walletSerializer: this._walletSerializer,\n dataStoreService: this._dataStoreService,\n psbtMapper: this._psbtMapper,\n valueParser: this._valueParser,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n registerWallet(args: RegisterWalletDAInput): RegisterWalletDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new RegisterWalletTask(\n internalApi,\n { walletPolicy: args.wallet },\n this._walletBuilder,\n this._walletSerializer,\n this._dataStoreService,\n ).run(),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.RegisterWallet,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAMO,2CACPC,EAAmC,qBAoBnCC,EAA4C,oEAC5CC,EAA4C,oEAC5CC,EAAqC,4EACrCC,EAA4C,0FAC5CC,EAAmC,wDACnCC,EAAoC,qDACpCC,EAA+B,kDAE/BC,EAA8B,mCAC9BC,EAA0B,uCAG1BC,EAA4B,2CAI5BC,EAA6C,yEAGtC,IAAMC,EAAN,KAAmB,CACxB,YAEmBC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EACjB,CAbiB,UAAAN,EAEA,gBAAAC,EAEA,oBAAAC,EAEA,uBAAAC,EAEA,uBAAAC,EAEA,iBAAAC,EAEA,kBAAAC,CAChB,CAEH,qBACEC,EACkC,CAClC,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,8BAA4BA,CAAI,EAC7C,QAAS,UACT,wBAAyBA,EAAK,cAC1B,0BAAwB,cACxB,0BAAwB,KAC5B,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,qBACEA,EACkC,CAClC,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,8BACb,QAAS,UACT,wBAAyB,0BAAwB,KACjD,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,YAAYA,EAIgB,CAC1B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAI,sBACFA,EACAD,EACA,KAAK,iBACP,EAAE,IAAI,EACR,QAAS,UACT,wBAAyB,0BAAwB,oBACjD,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,SAASA,EAIgB,CACvB,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,uBAAqB,CACrC,MAAO,CACL,KAAMA,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,kBACvB,WAAY,KAAK,YACjB,YAAa,KAAK,aAClB,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,iBAAiBA,EAMgB,CAC/B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,OAAQA,EAAK,OACb,YAAaA,EAAK,YAClB,cAAeA,EAAK,cACpB,OAAQA,EAAK,OACb,aAAcA,EAAK,aACnB,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,iBACzB,CACF,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBA,EAIgB,CAC9B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,8BAA4B,CAC5C,MAAO,CACL,KAAMA,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,kBACvB,WAAY,KAAK,YACjB,YAAa,KAAK,aAClB,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,eAAeA,EAAyD,CACtE,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAI,qBACFA,EACA,CAAE,aAAcD,EAAK,MAAO,EAC5B,KAAK,eACL,KAAK,kBACL,KAAK,iBACP,EAAE,IAAI,EACR,QAAS,UACT,wBAAyB,0BAAwB,eACjD,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CACF,EAnKaR,EAANU,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GAExBA,EAAA,eAAO,gBAAc,SAAS,GAE9BA,EAAA,eAAO,cAAY,aAAa,GAEhCA,EAAA,eAAO,cAAY,gBAAgB,GAEnCA,EAAA,eAAO,iBAAe,gBAAgB,GAEtCA,EAAA,eAAO,YAAU,UAAU,GAE3BA,EAAA,eAAO,YAAU,WAAW,IAdpBX",
6
+ "names": ["BtcAppBinder_exports", "__export", "BtcAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_GetExtendedPublicKeyCommand", "import_GetMasterFingerprintCommand", "import_SignPsbtDeviceAction", "import_SignTransactionDeviceAction", "import_RegisterWalletTask", "import_SignMessageTask", "import_dataStoreTypes", "import_externalTypes", "import_psbtTypes", "import_walletTypes", "import_GetWalletAddressDeviceAction", "BtcAppBinder", "_dmk", "_sessionId", "_walletBuilder", "_walletSerializer", "_dataStoreService", "_psbtMapper", "_valueParser", "args", "internalApi", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("@ledgerhq/device-management-kit"),l=require("rxjs"),c=require("../app-binder/BtcAppBinder"),u=require("../app-binder/command/GetExtendedPublicKeyCommand");describe("BtcAppBinder",()=>{const a={sendCommand:vi.fn(),executeDeviceAction:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const s=new c.BtcAppBinder({},{},{},{},{},{},{});expect(s).toBeDefined()}),describe("getExtendedPublicKey",()=>{let s;afterEach(()=>{s&&s.unsubscribe()}),it("should return the pub key",()=>new Promise((r,n)=>{const i="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,l.from)([{status:t.DeviceActionStatus.Completed,output:{extendedPublicKey:i}}]),cancel:vi.fn()});const o=new c.BtcAppBinder(a,"sessionId",{},{},{},{},{}),{observable:d}=o.getExtendedPublicKey({derivationPath:"44'/501'",checkOnDevice:!1,skipOpenApp:!1}),p=[];s=d.subscribe({next:e=>{p.push(e)},error:e=>{n(e)},complete:()=>{try{expect(p).toEqual([{status:t.DeviceActionStatus.Completed,output:{extendedPublicKey:i}}]),r()}catch(e){n(e)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const r={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1,skipOpenApp:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const i={...r,checkOnDevice:!0};new c.BtcAppBinder(a,"sessionId",{},{},{},{},{}).getExtendedPublicKey(i),expect(a.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new t.SendCommandInAppDeviceAction({input:{command:new u.GetExtendedPublicKeyCommand(i),appName:"Bitcoin",requiredUserInteraction:t.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const i={...r,checkOnDevice:!1};new c.BtcAppBinder(a,"sessionId",{},{},{},{},{}).getExtendedPublicKey(i),expect(a.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new t.SendCommandInAppDeviceAction({input:{command:new u.GetExtendedPublicKeyCommand(i),appName:"Bitcoin",requiredUserInteraction:t.UserInteractionRequired.None,skipOpenApp:!1}})})})})}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((s,r)=>{const n={r:"0xDEF1",s:"0xAFAF",v:0},i="Hello, World!";vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,l.from)([{status:t.DeviceActionStatus.Completed,output:n}]),cancel:vi.fn()});const o=new c.BtcAppBinder(a,"sessionId",{},{},{},{},{}),{observable:d}=o.signMessage({derivationPath:"44'/60'/3'/2/1",message:i,skipOpenApp:!1}),p=[];d.subscribe({next:e=>{p.push(e)},error:e=>{r(e)},complete:()=>{try{expect(p).toEqual([{status:t.DeviceActionStatus.Completed,output:n}]),s()}catch(e){r(e)}}})}))})});
1
+ "use strict";var t=require("@ledgerhq/device-management-kit"),d=require("rxjs"),m=require("../../api/model/Wallet"),o=require("../app-binder/BtcAppBinder"),A=require("../app-binder/command/GetExtendedPublicKeyCommand"),D=require("../app-binder/command/GetMasterFingerprintCommand");describe("BtcAppBinder",()=>{const r={sendCommand:vi.fn(),executeDeviceAction:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const n=new o.BtcAppBinder({},{},{},{},{},{},{});expect(n).toBeDefined()}),describe("getExtendedPublicKey",()=>{let n;afterEach(()=>{n&&n.unsubscribe()}),it("should return the pub key",()=>new Promise((a,s)=>{const i="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:(0,d.from)([{status:t.DeviceActionStatus.Completed,output:{extendedPublicKey:i}}]),cancel:vi.fn()});const c=new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}),{observable:l}=c.getExtendedPublicKey({derivationPath:"44'/501'",checkOnDevice:!1,skipOpenApp:!1}),p=[];n=l.subscribe({next:e=>{p.push(e)},error:e=>{s(e)},complete:()=>{try{expect(p).toEqual([{status:t.DeviceActionStatus.Completed,output:{extendedPublicKey:i}}]),a()}catch(e){s(e)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const a={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1,skipOpenApp:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const i={...a,checkOnDevice:!0};new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}).getExtendedPublicKey(i),expect(r.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new t.SendCommandInAppDeviceAction({input:{command:new A.GetExtendedPublicKeyCommand(i),appName:"Bitcoin",requiredUserInteraction:t.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const i={...a,checkOnDevice:!1};new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}).getExtendedPublicKey(i),expect(r.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new t.SendCommandInAppDeviceAction({input:{command:new A.GetExtendedPublicKeyCommand(i),appName:"Bitcoin",requiredUserInteraction:t.UserInteractionRequired.None,skipOpenApp:!1}})})})})}),describe("getMasterFingerprint",()=>{let n;afterEach(()=>{n&&n.unsubscribe()}),it("should return the master fingerprint",()=>new Promise((a,s)=>{const i=Uint8Array.from([130,141,194,243]);vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:(0,d.from)([{status:t.DeviceActionStatus.Completed,output:{masterFingerprint:i}}]),cancel:vi.fn()});const c=new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}),{observable:l}=c.getMasterFingerprint({skipOpenApp:!1}),p=[];n=l.subscribe({next:e=>{p.push(e)},error:e=>{s(e)},complete:()=>{try{expect(p).toEqual([{status:t.DeviceActionStatus.Completed,output:{masterFingerprint:i}}]),a()}catch(e){s(e)}}})})),it("should call executeDeviceAction with the correct params",()=>{const a={skipOpenApp:!1};new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}).getMasterFingerprint(a),expect(r.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new t.SendCommandInAppDeviceAction({input:{command:new D.GetMasterFingerprintCommand,appName:"Bitcoin",requiredUserInteraction:t.UserInteractionRequired.None,skipOpenApp:!1}})})}),it("should pass skipOpenApp option correctly",()=>{const a={skipOpenApp:!0};new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}).getMasterFingerprint(a),expect(r.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new t.SendCommandInAppDeviceAction({input:{command:new D.GetMasterFingerprintCommand,appName:"Bitcoin",requiredUserInteraction:t.UserInteractionRequired.None,skipOpenApp:!0}})})})}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((n,a)=>{const s={r:"0xDEF1",s:"0xAFAF",v:0},i="Hello, World!";vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:(0,d.from)([{status:t.DeviceActionStatus.Completed,output:s}]),cancel:vi.fn()});const c=new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}),{observable:l}=c.signMessage({derivationPath:"44'/60'/3'/2/1",message:i,skipOpenApp:!1}),p=[];l.subscribe({next:e=>{p.push(e)},error:e=>{a(e)},complete:()=>{try{expect(p).toEqual([{status:t.DeviceActionStatus.Completed,output:s}]),n()}catch(e){a(e)}}})}))}),describe("registerWallet",()=>{let n;afterEach(()=>{n&&n.unsubscribe()}),it("should return the registered wallet with hmac",()=>new Promise((a,s)=>{const i=new m.WalletPolicy("My Multisig","wsh(sortedmulti(2,@0/**,@1/**))",["[f5acc2fd/48'/1'/0'/2']tpubXXX","tpubYYY"]),c=new m.RegisteredWallet(i.name,i.descriptorTemplate,i.keys,Uint8Array.from(new Array(32).fill(66)));vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:(0,d.from)([{status:t.DeviceActionStatus.Completed,output:c}]),cancel:vi.fn()});const l=new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}),{observable:p}=l.registerWallet({wallet:i,skipOpenApp:!1}),e=[];n=p.subscribe({next:u=>{e.push(u)},error:u=>{s(u)},complete:()=>{try{expect(e).toEqual([{status:t.DeviceActionStatus.Completed,output:c}]),a()}catch(u){s(u)}}})})),it("should call executeDeviceAction",()=>{const a=new m.WalletPolicy("My Multisig","wsh(sortedmulti(2,@0/**,@1/**))",["[f5acc2fd/48'/1'/0'/2']tpubXXX","tpubYYY"]);new o.BtcAppBinder(r,"sessionId",{},{},{},{},{}).registerWallet({wallet:a,skipOpenApp:!1}),expect(r.executeDeviceAction).toHaveBeenCalled()})})});
2
2
  //# sourceMappingURL=BtcAppBinder.test.js.map