@ledgerhq/device-signer-kit-bitcoin 0.0.0-signer-eth-20250122093657 → 0.0.0-transaction-unfunded-20250917151052

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 (361) hide show
  1. package/README.md +100 -32
  2. package/lib/cjs/api/SignerBtc.js +1 -1
  3. package/lib/cjs/api/SignerBtc.js.map +1 -1
  4. package/lib/cjs/api/{SignerBtcBuiilder.test.js → SignerBtcBuilder.test.js} +1 -1
  5. package/lib/cjs/api/{SignerBtcBuiilder.test.js.map → SignerBtcBuilder.test.js.map} +1 -1
  6. package/lib/cjs/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.js +1 -1
  7. package/lib/cjs/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.js.map +1 -1
  8. package/lib/cjs/api/app-binder/GetWalletAddressDeviceActionTypes.js.map +1 -1
  9. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js +1 -1
  10. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js.map +1 -1
  11. package/lib/cjs/api/app-binder/SignPsbtDeviceActionTypes.js +1 -1
  12. package/lib/cjs/api/app-binder/SignPsbtDeviceActionTypes.js.map +1 -1
  13. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  14. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +1 -1
  15. package/lib/cjs/api/model/AddressOptions.js +1 -1
  16. package/lib/cjs/api/model/AddressOptions.js.map +1 -1
  17. package/lib/cjs/api/model/MessageOptions.js +2 -0
  18. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  19. package/lib/cjs/api/model/PsbtOptions.js +2 -0
  20. package/lib/cjs/api/model/PsbtOptions.js.map +7 -0
  21. package/lib/cjs/api/model/WalletAddressOptions.js +1 -1
  22. package/lib/cjs/api/model/WalletAddressOptions.js.map +1 -1
  23. package/lib/cjs/index.js.map +1 -1
  24. package/lib/cjs/internal/DefaultSignerBtc.js +1 -1
  25. package/lib/cjs/internal/DefaultSignerBtc.js.map +3 -3
  26. package/lib/cjs/internal/DefaultSignerBtc.test.js +1 -1
  27. package/lib/cjs/internal/DefaultSignerBtc.test.js.map +2 -2
  28. package/lib/cjs/internal/app-binder/BtcAppBinder.js +1 -1
  29. package/lib/cjs/internal/app-binder/BtcAppBinder.js.map +3 -3
  30. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js +1 -1
  31. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  32. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  33. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
  34. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
  35. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
  36. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  37. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  38. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
  39. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
  40. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
  41. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
  42. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
  43. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
  44. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
  45. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
  46. package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
  47. package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
  48. package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
  49. package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
  50. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
  51. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +2 -2
  52. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
  53. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
  54. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
  55. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +2 -2
  56. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
  57. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js.map +3 -3
  58. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  59. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  60. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  61. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  62. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  63. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  64. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
  65. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
  66. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  67. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  68. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  69. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  70. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js +1 -1
  71. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  72. package/lib/cjs/internal/app-binder/di/appBinderTypes.js +1 -1
  73. package/lib/cjs/internal/app-binder/di/appBinderTypes.js.map +2 -2
  74. package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
  75. package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
  76. package/lib/cjs/internal/app-binder/task/ContinueTask.test.js +1 -1
  77. package/lib/cjs/internal/app-binder/task/ContinueTask.test.js.map +2 -2
  78. package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
  79. package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
  80. package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
  81. package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
  82. package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js +1 -1
  83. package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
  84. package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js +1 -1
  85. package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
  86. package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
  87. package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
  88. package/lib/cjs/internal/data-store/di/dataStoreModule.js +1 -1
  89. package/lib/cjs/internal/data-store/di/dataStoreModule.js.map +3 -3
  90. package/lib/cjs/internal/data-store/di/dataStoreModule.test.js +1 -1
  91. package/lib/cjs/internal/data-store/di/dataStoreModule.test.js.map +2 -2
  92. package/lib/cjs/internal/data-store/model/DataStore.test.js +1 -1
  93. package/lib/cjs/internal/data-store/model/DataStore.test.js.map +2 -2
  94. package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
  95. package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
  96. package/lib/cjs/internal/di.js +1 -1
  97. package/lib/cjs/internal/di.js.map +2 -2
  98. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.js +1 -1
  99. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.js.map +3 -3
  100. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.test.js +1 -1
  101. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.test.js.map +2 -2
  102. package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
  103. package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
  104. package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
  105. package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
  106. package/lib/cjs/internal/psbt/di/psbtModule.js +1 -1
  107. package/lib/cjs/internal/psbt/di/psbtModule.js.map +3 -3
  108. package/lib/cjs/internal/psbt/di/psbtModule.test.js +1 -1
  109. package/lib/cjs/internal/psbt/di/psbtModule.test.js.map +2 -2
  110. package/lib/cjs/internal/psbt/model/Key.js +1 -1
  111. package/lib/cjs/internal/psbt/model/Key.js.map +2 -2
  112. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  113. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  114. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtSerializer.js +1 -1
  115. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtSerializer.js.map +2 -2
  116. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js +1 -1
  117. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js.map +2 -2
  118. package/lib/cjs/internal/use-cases/di/useCasesModule.js +1 -1
  119. package/lib/cjs/internal/use-cases/di/useCasesModule.js.map +3 -3
  120. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js +1 -1
  121. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  122. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js +1 -1
  123. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js.map +2 -2
  124. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
  125. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
  126. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js +1 -1
  127. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js.map +3 -3
  128. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
  129. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +3 -3
  130. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.js +1 -1
  131. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.js.map +3 -3
  132. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
  133. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
  134. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.js +1 -1
  135. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.js.map +3 -3
  136. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
  137. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +3 -3
  138. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.js +1 -1
  139. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.js.map +3 -3
  140. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
  141. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +3 -3
  142. package/lib/cjs/internal/wallet/di/walletModule.js +1 -1
  143. package/lib/cjs/internal/wallet/di/walletModule.js.map +3 -3
  144. package/lib/cjs/internal/wallet/di/walletModule.test.js +1 -1
  145. package/lib/cjs/internal/wallet/di/walletModule.test.js.map +2 -2
  146. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js +1 -1
  147. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js.map +2 -2
  148. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  149. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
  150. package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
  151. package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
  152. package/lib/cjs/package.json +17 -17
  153. package/lib/esm/api/{SignerBtcBuiilder.test.js → SignerBtcBuilder.test.js} +1 -1
  154. package/lib/esm/api/{SignerBtcBuiilder.test.js.map → SignerBtcBuilder.test.js.map} +1 -1
  155. package/lib/esm/api/model/MessageOptions.js +1 -0
  156. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  157. package/lib/esm/api/model/PsbtOptions.js +1 -0
  158. package/lib/esm/api/model/PsbtOptions.js.map +7 -0
  159. package/lib/esm/internal/DefaultSignerBtc.js +1 -1
  160. package/lib/esm/internal/DefaultSignerBtc.js.map +3 -3
  161. package/lib/esm/internal/DefaultSignerBtc.test.js +1 -1
  162. package/lib/esm/internal/DefaultSignerBtc.test.js.map +2 -2
  163. package/lib/esm/internal/app-binder/BtcAppBinder.js +1 -1
  164. package/lib/esm/internal/app-binder/BtcAppBinder.js.map +3 -3
  165. package/lib/esm/internal/app-binder/BtcAppBinder.test.js +1 -1
  166. package/lib/esm/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  167. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  168. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
  169. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
  170. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
  171. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  172. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  173. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
  174. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
  175. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
  176. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
  177. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
  178. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
  179. package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
  180. package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
  181. package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
  182. package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
  183. package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
  184. package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
  185. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
  186. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +2 -2
  187. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
  188. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
  189. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
  190. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +2 -2
  191. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
  192. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js.map +3 -3
  193. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  194. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  195. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  196. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  197. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  198. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  199. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
  200. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
  201. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  202. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  203. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  204. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  205. package/lib/esm/internal/app-binder/di/appBinderModule.test.js +1 -1
  206. package/lib/esm/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  207. package/lib/esm/internal/app-binder/di/appBinderTypes.js +1 -1
  208. package/lib/esm/internal/app-binder/di/appBinderTypes.js.map +2 -2
  209. package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
  210. package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
  211. package/lib/esm/internal/app-binder/task/ContinueTask.test.js +1 -1
  212. package/lib/esm/internal/app-binder/task/ContinueTask.test.js.map +2 -2
  213. package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
  214. package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
  215. package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
  216. package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
  217. package/lib/esm/internal/app-binder/task/SignMessageTask.test.js +1 -1
  218. package/lib/esm/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
  219. package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js +1 -1
  220. package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
  221. package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
  222. package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
  223. package/lib/esm/internal/data-store/di/dataStoreModule.js +1 -1
  224. package/lib/esm/internal/data-store/di/dataStoreModule.js.map +3 -3
  225. package/lib/esm/internal/data-store/di/dataStoreModule.test.js +1 -1
  226. package/lib/esm/internal/data-store/di/dataStoreModule.test.js.map +2 -2
  227. package/lib/esm/internal/data-store/model/DataStore.test.js +1 -1
  228. package/lib/esm/internal/data-store/model/DataStore.test.js.map +2 -2
  229. package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
  230. package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
  231. package/lib/esm/internal/di.js +1 -1
  232. package/lib/esm/internal/di.js.map +2 -2
  233. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.js +1 -1
  234. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.js.map +3 -3
  235. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.test.js +1 -1
  236. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.test.js.map +2 -2
  237. package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
  238. package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
  239. package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
  240. package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
  241. package/lib/esm/internal/psbt/di/psbtModule.js +1 -1
  242. package/lib/esm/internal/psbt/di/psbtModule.js.map +3 -3
  243. package/lib/esm/internal/psbt/di/psbtModule.test.js +1 -1
  244. package/lib/esm/internal/psbt/di/psbtModule.test.js.map +2 -2
  245. package/lib/esm/internal/psbt/model/Key.js +1 -1
  246. package/lib/esm/internal/psbt/model/Key.js.map +2 -2
  247. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  248. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  249. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtSerializer.js +1 -1
  250. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtSerializer.js.map +2 -2
  251. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js +1 -1
  252. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js.map +2 -2
  253. package/lib/esm/internal/use-cases/di/useCasesModule.js +1 -1
  254. package/lib/esm/internal/use-cases/di/useCasesModule.js.map +3 -3
  255. package/lib/esm/internal/use-cases/di/useCasesModule.test.js +1 -1
  256. package/lib/esm/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  257. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js +1 -1
  258. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js.map +2 -2
  259. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
  260. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
  261. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js +1 -1
  262. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js.map +3 -3
  263. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
  264. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +3 -3
  265. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.js +1 -1
  266. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.js.map +3 -3
  267. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
  268. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
  269. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.js +1 -1
  270. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.js.map +3 -3
  271. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
  272. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +3 -3
  273. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.js +1 -1
  274. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.js.map +3 -3
  275. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
  276. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +3 -3
  277. package/lib/esm/internal/wallet/di/walletModule.js +1 -1
  278. package/lib/esm/internal/wallet/di/walletModule.js.map +3 -3
  279. package/lib/esm/internal/wallet/di/walletModule.test.js +1 -1
  280. package/lib/esm/internal/wallet/di/walletModule.test.js.map +2 -2
  281. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js +1 -1
  282. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js.map +2 -2
  283. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  284. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
  285. package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
  286. package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
  287. package/lib/esm/package.json +17 -17
  288. package/lib/types/api/SignerBtc.d.ts +7 -5
  289. package/lib/types/api/SignerBtc.d.ts.map +1 -1
  290. package/lib/types/api/SignerBtcBuilder.test.d.ts +2 -0
  291. package/lib/types/api/SignerBtcBuilder.test.d.ts.map +1 -0
  292. package/lib/types/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.d.ts +3 -1
  293. package/lib/types/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.d.ts.map +1 -1
  294. package/lib/types/api/app-binder/GetWalletAddressDeviceActionTypes.d.ts +1 -0
  295. package/lib/types/api/app-binder/GetWalletAddressDeviceActionTypes.d.ts.map +1 -1
  296. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts +1 -12
  297. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts.map +1 -1
  298. package/lib/types/api/app-binder/SignPsbtDeviceActionTypes.d.ts +1 -0
  299. package/lib/types/api/app-binder/SignPsbtDeviceActionTypes.d.ts.map +1 -1
  300. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +1 -0
  301. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  302. package/lib/types/api/model/AddressOptions.d.ts +1 -0
  303. package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
  304. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  305. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  306. package/lib/types/api/model/PsbtOptions.d.ts +4 -0
  307. package/lib/types/api/model/PsbtOptions.d.ts.map +1 -0
  308. package/lib/types/api/model/Signature.d.ts.map +1 -1
  309. package/lib/types/api/model/WalletAddressOptions.d.ts +1 -0
  310. package/lib/types/api/model/WalletAddressOptions.d.ts.map +1 -1
  311. package/lib/types/internal/DefaultSignerBtc.d.ts +7 -5
  312. package/lib/types/internal/DefaultSignerBtc.d.ts.map +1 -1
  313. package/lib/types/internal/app-binder/BtcAppBinder.d.ts +4 -0
  314. package/lib/types/internal/app-binder/BtcAppBinder.d.ts.map +1 -1
  315. package/lib/types/internal/app-binder/command/utils/bitcoinAppErrors.d.ts.map +1 -1
  316. package/lib/types/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.d.ts.map +1 -1
  317. package/lib/types/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.d.ts.map +1 -1
  318. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
  319. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  320. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  321. package/lib/types/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.d.ts.map +1 -1
  322. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
  323. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  324. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  325. package/lib/types/internal/app-binder/di/appBinderTypes.d.ts +0 -1
  326. package/lib/types/internal/app-binder/di/appBinderTypes.d.ts.map +1 -1
  327. package/lib/types/internal/app-binder/task/GetWalletAddressTask.d.ts.map +1 -1
  328. package/lib/types/internal/app-binder/task/SignMessageTask.d.ts.map +1 -1
  329. package/lib/types/internal/app-binder/task/SignPsbtTask.d.ts.map +1 -1
  330. package/lib/types/internal/data-store/di/dataStoreModule.d.ts.map +1 -1
  331. package/lib/types/internal/di.d.ts.map +1 -1
  332. package/lib/types/internal/merkle-tree/di/merkleTreeModule.d.ts.map +1 -1
  333. package/lib/types/internal/psbt/di/psbtModule.d.ts.map +1 -1
  334. package/lib/types/internal/use-cases/di/useCasesModule.d.ts.map +1 -1
  335. package/lib/types/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.d.ts +1 -0
  336. package/lib/types/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.d.ts.map +1 -1
  337. package/lib/types/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.d.ts +1 -1
  338. package/lib/types/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.d.ts.map +1 -1
  339. package/lib/types/internal/use-cases/sign-message/SignMessageUseCase.d.ts +1 -1
  340. package/lib/types/internal/use-cases/sign-message/SignMessageUseCase.d.ts.map +1 -1
  341. package/lib/types/internal/use-cases/sign-psbt/SignPsbtUseCase.d.ts +1 -1
  342. package/lib/types/internal/use-cases/sign-psbt/SignPsbtUseCase.d.ts.map +1 -1
  343. package/lib/types/internal/use-cases/sign-transaction/SignTransactionUseCase.d.ts +1 -1
  344. package/lib/types/internal/use-cases/sign-transaction/SignTransactionUseCase.d.ts.map +1 -1
  345. package/lib/types/internal/wallet/di/walletModule.d.ts.map +1 -1
  346. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  347. package/package.json +19 -19
  348. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
  349. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
  350. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
  351. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
  352. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
  353. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
  354. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
  355. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
  356. package/lib/types/api/SignerBtcBuiilder.test.d.ts +0 -2
  357. package/lib/types/api/SignerBtcBuiilder.test.d.ts.map +0 -1
  358. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts +0 -19
  359. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts.map +0 -1
  360. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts +0 -2
  361. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/wallet/di/walletModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { walletModuleFactory } from \"./walletModule\";\n\ndescribe(\"WalletModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof walletModuleFactory>;\n beforeEach(() => {\n mod = walletModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the wallet service module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAAoC,0BAEpC,SAAS,sBAAuB,IAAM,CACpC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,uBAAoB,EAC1BD,EAAY,IAAI,YAChBA,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { walletModuleFactory } from \"./walletModule\";\n\ndescribe(\"WalletModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof walletModuleFactory>;\n beforeEach(() => {\n mod = walletModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the wallet service module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAAoC,0BAEpC,SAAS,sBAAuB,IAAM,CACpC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,uBAAoB,EAC1BD,EAAY,IAAI,YAChBA,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_inversify", "import_walletModule", "container", "mod"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var g=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},x=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of B(e))!M.call(n,r)&&r!==t&&s(n,r,{get:()=>e[r],enumerable:!(i=c(e,r))||i.enumerable});return n};var W=n=>x(s({},"__esModule",{value:!0}),n),p=(n,e,t,i)=>{for(var r=i>1?void 0:i?c(e,t):e,l=n.length-1,o;l>=0;l--)(o=n[l])&&(r=(i?o(e,t,r):o(r))||r);return i&&r&&s(e,t,r),r},f=(n,e)=>(t,i)=>e(t,i,n);var v={};g(v,{DefaultWalletBuilder:()=>m});module.exports=W(v);var k=require("@ledgerhq/device-management-kit"),a=require("inversify"),d=require("../../../api/model/Wallet"),T=require("../../merkle-tree/di/merkleTreeTypes"),y=require("../../wallet/model/Wallet");let m=class{constructor(e){this.merkleTreeBuilder=e}fromRegisteredWallet(e){const t=new TextEncoder,i=e.keys.map(o=>t.encode(o)),r=this.merkleTreeBuilder.build(i),l=t.encode(e.descriptorTemplate);return new y.Wallet({name:e.name,descriptorTemplate:e.descriptorTemplate,keys:e.keys,hmac:e.hmac,keysTree:r,descriptorBuffer:l})}fromDefaultWallet(e,t,i){const o=`${`[${(0,k.bufferToHexaString)(e).slice(2)}/${i.derivationPath}]`}${t}`,u="",h=new Uint8Array(32).fill(0);return this.fromRegisteredWallet(new d.RegisteredWallet(u,i.template,[o],h))}};m=p([(0,a.injectable)(),f(0,(0,a.inject)(T.merkleTreeTypes.MerkleTreeBuilder))],m);0&&(module.exports={DefaultWalletBuilder});
1
+ "use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var g=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},x=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of B(e))!M.call(n,r)&&r!==t&&s(n,r,{get:()=>e[r],enumerable:!(i=c(e,r))||i.enumerable});return n};var W=n=>x(s({},"__esModule",{value:!0}),n),p=(n,e,t,i)=>{for(var r=i>1?void 0:i?c(e,t):e,l=n.length-1,o;l>=0;l--)(o=n[l])&&(r=(i?o(e,t,r):o(r))||r);return i&&r&&s(e,t,r),r},f=(n,e)=>(t,i)=>e(t,i,n);var v={};g(v,{DefaultWalletBuilder:()=>m});module.exports=W(v);var k=require("@ledgerhq/device-management-kit"),a=require("inversify"),d=require("../../../api/model/Wallet"),T=require("../../merkle-tree/di/merkleTreeTypes"),y=require("../../wallet/model/Wallet");let m=class{constructor(e){this.merkleTreeBuilder=e}fromRegisteredWallet(e){const t=new TextEncoder,i=e.keys.map(o=>t.encode(o)),r=this.merkleTreeBuilder.build(i),l=t.encode(e.descriptorTemplate);return new y.Wallet({name:e.name,descriptorTemplate:e.descriptorTemplate,keys:e.keys,hmac:e.hmac,keysTree:r,descriptorBuffer:l})}fromDefaultWallet(e,t,i){const o=`${`[${(0,k.bufferToHexaString)(e,!1)}/${i.derivationPath}]`}${t}`,u="",h=new Uint8Array(32).fill(0);return this.fromRegisteredWallet(new d.RegisteredWallet(u,i.template,[o],h))}};m=p([(0,a.injectable)(),f(0,(0,a.inject)(T.merkleTreeTypes.MerkleTreeBuilder))],m);0&&(module.exports={DefaultWalletBuilder});
2
2
  //# sourceMappingURL=DefaultWalletBuilder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/wallet/service/DefaultWalletBuilder.ts"],
4
- "sourcesContent": ["import { bufferToHexaString } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { DefaultWallet, RegisteredWallet } from \"@api/model/Wallet\";\nimport { merkleTreeTypes } from \"@internal/merkle-tree/di/merkleTreeTypes\";\nimport type { MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\nimport { Wallet } from \"@internal/wallet/model/Wallet\";\nimport type { WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\n\n@injectable()\nexport class DefaultWalletBuilder implements WalletBuilder {\n constructor(\n @inject(merkleTreeTypes.MerkleTreeBuilder)\n private merkleTreeBuilder: MerkleTreeBuilder,\n ) {}\n\n fromRegisteredWallet(registeredWallet: RegisteredWallet): Wallet {\n const encoder = new TextEncoder();\n const keyBuffers = registeredWallet.keys.map((key) => encoder.encode(key));\n const keysTree = this.merkleTreeBuilder.build(keyBuffers);\n const descriptorBuffer = encoder.encode(\n registeredWallet.descriptorTemplate,\n );\n return new Wallet({\n name: registeredWallet.name,\n descriptorTemplate: registeredWallet.descriptorTemplate,\n keys: registeredWallet.keys,\n hmac: registeredWallet.hmac,\n keysTree: keysTree,\n descriptorBuffer,\n });\n }\n\n fromDefaultWallet(\n masterFingerprint: Uint8Array,\n extendedPublicKey: string,\n wallet: DefaultWallet,\n ): Wallet {\n // For internal keys, the xpub should be put after key origin informations\n // https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/wallet.md#keys-information-vector\n const hexMasterFingerprint = bufferToHexaString(masterFingerprint).slice(2);\n const keyOrigin = `[${hexMasterFingerprint}/${wallet.derivationPath}]`;\n const key = `${keyOrigin}${extendedPublicKey}`;\n // Empty name for default wallets\n const name = \"\";\n // Default wallets hmac should be exactly 32 zeros as described here:\n // https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#get_wallet_address\n const hmac = new Uint8Array(32).fill(0);\n\n return this.fromRegisteredWallet(\n new RegisteredWallet(name, wallet.template, [key], hmac),\n );\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,2CACnCC,EAAmC,qBAEnCC,EAAgD,6BAChDC,EAAgC,oDAEhCD,EAAuB,yCAIhB,IAAME,EAAN,KAAoD,CACzD,YAEUC,EACR,CADQ,uBAAAA,CACP,CAEH,qBAAqBC,EAA4C,CAC/D,MAAMC,EAAU,IAAI,YACdC,EAAaF,EAAiB,KAAK,IAAKG,GAAQF,EAAQ,OAAOE,CAAG,CAAC,EACnEC,EAAW,KAAK,kBAAkB,MAAMF,CAAU,EAClDG,EAAmBJ,EAAQ,OAC/BD,EAAiB,kBACnB,EACA,OAAO,IAAI,SAAO,CAChB,KAAMA,EAAiB,KACvB,mBAAoBA,EAAiB,mBACrC,KAAMA,EAAiB,KACvB,KAAMA,EAAiB,KACvB,SAAUI,EACV,iBAAAC,CACF,CAAC,CACH,CAEA,kBACEC,EACAC,EACAC,EACQ,CAKR,MAAML,EAAM,GADM,OADW,sBAAmBG,CAAiB,EAAE,MAAM,CAAC,CAChC,IAAIE,EAAO,cAAc,GAC3C,GAAGD,CAAiB,GAEtCE,EAAO,GAGPC,EAAO,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,EAEtC,OAAO,KAAK,qBACV,IAAI,mBAAiBD,EAAMD,EAAO,SAAU,CAACL,CAAG,EAAGO,CAAI,CACzD,CACF,CACF,EA3CaZ,EAANa,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,kBAAgB,iBAAiB,IAFhCd",
4
+ "sourcesContent": ["import { bufferToHexaString } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { DefaultWallet, RegisteredWallet } from \"@api/model/Wallet\";\nimport { merkleTreeTypes } from \"@internal/merkle-tree/di/merkleTreeTypes\";\nimport type { MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\nimport { Wallet } from \"@internal/wallet/model/Wallet\";\nimport type { WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\n\n@injectable()\nexport class DefaultWalletBuilder implements WalletBuilder {\n constructor(\n @inject(merkleTreeTypes.MerkleTreeBuilder)\n private merkleTreeBuilder: MerkleTreeBuilder,\n ) {}\n\n fromRegisteredWallet(registeredWallet: RegisteredWallet): Wallet {\n const encoder = new TextEncoder();\n const keyBuffers = registeredWallet.keys.map((key) => encoder.encode(key));\n const keysTree = this.merkleTreeBuilder.build(keyBuffers);\n const descriptorBuffer = encoder.encode(\n registeredWallet.descriptorTemplate,\n );\n return new Wallet({\n name: registeredWallet.name,\n descriptorTemplate: registeredWallet.descriptorTemplate,\n keys: registeredWallet.keys,\n hmac: registeredWallet.hmac,\n keysTree: keysTree,\n descriptorBuffer,\n });\n }\n\n fromDefaultWallet(\n masterFingerprint: Uint8Array,\n extendedPublicKey: string,\n wallet: DefaultWallet,\n ): Wallet {\n // For internal keys, the xpub should be put after key origin informations\n // https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/wallet.md#keys-information-vector\n const hexMasterFingerprint = bufferToHexaString(masterFingerprint, false);\n const keyOrigin = `[${hexMasterFingerprint}/${wallet.derivationPath}]`;\n const key = `${keyOrigin}${extendedPublicKey}`;\n // Empty name for default wallets\n const name = \"\";\n // Default wallets hmac should be exactly 32 zeros as described here:\n // https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#get_wallet_address\n const hmac = new Uint8Array(32).fill(0);\n\n return this.fromRegisteredWallet(\n new RegisteredWallet(name, wallet.template, [key], hmac),\n );\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,2CACnCC,EAAmC,qBAEnCC,EAAgD,6BAChDC,EAAgC,oDAEhCD,EAAuB,yCAIhB,IAAME,EAAN,KAAoD,CACzD,YAEUC,EACR,CADQ,uBAAAA,CACP,CAEH,qBAAqBC,EAA4C,CAC/D,MAAMC,EAAU,IAAI,YACdC,EAAaF,EAAiB,KAAK,IAAKG,GAAQF,EAAQ,OAAOE,CAAG,CAAC,EACnEC,EAAW,KAAK,kBAAkB,MAAMF,CAAU,EAClDG,EAAmBJ,EAAQ,OAC/BD,EAAiB,kBACnB,EACA,OAAO,IAAI,SAAO,CAChB,KAAMA,EAAiB,KACvB,mBAAoBA,EAAiB,mBACrC,KAAMA,EAAiB,KACvB,KAAMA,EAAiB,KACvB,SAAUI,EACV,iBAAAC,CACF,CAAC,CACH,CAEA,kBACEC,EACAC,EACAC,EACQ,CAKR,MAAML,EAAM,GADM,OADW,sBAAmBG,EAAmB,EAAK,CAC9B,IAAIE,EAAO,cAAc,GAC3C,GAAGD,CAAiB,GAEtCE,EAAO,GAGPC,EAAO,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,EAEtC,OAAO,KAAK,qBACV,IAAI,mBAAiBD,EAAMD,EAAO,SAAU,CAACL,CAAG,EAAGO,CAAI,CACzD,CACF,CACF,EA3CaZ,EAANa,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,kBAAgB,iBAAiB,IAFhCd",
6
6
  "names": ["DefaultWalletBuilder_exports", "__export", "DefaultWalletBuilder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_Wallet", "import_merkleTreeTypes", "DefaultWalletBuilder", "merkleTreeBuilder", "registeredWallet", "encoder", "keyBuffers", "key", "keysTree", "descriptorBuffer", "masterFingerprint", "extendedPublicKey", "wallet", "name", "hmac", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=require("@ledgerhq/device-management-kit"),o=require("../../../api/model/Wallet"),i=require("../../merkle-tree/model/Leaf"),u=require("../../merkle-tree/model/MerkleTree"),s=require("./DefaultWalletBuilder");describe("DefaultWalletBuilder tests",()=>{const l=jest.fn(),d={build:l};it("Create registered wallet",()=>{const c=new s.DefaultWalletBuilder(d),a=new o.RegisteredWallet("Cold storage","wsh(sortedmulti(2,@0/**,@1/**))",["key1","key2"],new Uint8Array(32).fill(42)),n=new u.MerkleTree(new i.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]);l.mockReturnValueOnce(n);const e=c.fromRegisteredWallet(a),t=new TextEncoder;expect(l).toHaveBeenCalledWith([t.encode("key1"),t.encode("key2")]),expect(e.name).toStrictEqual("Cold storage"),expect(e.hmac).toStrictEqual(new Uint8Array(32).fill(42)),expect(e.descriptorTemplate).toStrictEqual("wsh(sortedmulti(2,@0/**,@1/**))"),expect(e.descriptorBuffer).toStrictEqual(t.encode("wsh(sortedmulti(2,@0/**,@1/**))")),expect(e.keys).toStrictEqual(["key1","key2"]),expect(e.keysTree).toStrictEqual(n)}),it("Create default wallet",()=>{const c=new s.DefaultWalletBuilder(d),a=new o.DefaultWallet("48'/1'/0'/0'",o.DefaultDescriptorTemplate.NATIVE_SEGWIT),n=(0,p.hexaStringToBuffer)("5c9e228d"),e="tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW",t=new u.MerkleTree(new i.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]);l.mockReturnValueOnce(t);const r=c.fromDefaultWallet(n,e,a),m=new TextEncoder;expect(l).toHaveBeenCalledWith([m.encode("[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW")]),expect(r.name).toStrictEqual(""),expect(r.hmac).toStrictEqual(new Uint8Array(32).fill(0)),expect(r.descriptorTemplate).toStrictEqual("wpkh(@0/**)"),expect(r.descriptorBuffer).toStrictEqual(m.encode("wpkh(@0/**)")),expect(r.keys).toStrictEqual(["[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW"]),expect(r.keysTree).toStrictEqual(t)})});
1
+ "use strict";var p=require("@ledgerhq/device-management-kit"),o=require("../../../api/model/Wallet"),i=require("../../merkle-tree/model/Leaf"),u=require("../../merkle-tree/model/MerkleTree"),s=require("./DefaultWalletBuilder");describe("DefaultWalletBuilder tests",()=>{const l=vi.fn(),d={build:l};it("Create registered wallet",()=>{const c=new s.DefaultWalletBuilder(d),a=new o.RegisteredWallet("Cold storage","wsh(sortedmulti(2,@0/**,@1/**))",["key1","key2"],new Uint8Array(32).fill(42)),n=new u.MerkleTree(new i.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]);l.mockReturnValueOnce(n);const e=c.fromRegisteredWallet(a),t=new TextEncoder;expect(l).toHaveBeenCalledWith([t.encode("key1"),t.encode("key2")]),expect(e.name).toStrictEqual("Cold storage"),expect(e.hmac).toStrictEqual(new Uint8Array(32).fill(42)),expect(e.descriptorTemplate).toStrictEqual("wsh(sortedmulti(2,@0/**,@1/**))"),expect(e.descriptorBuffer).toStrictEqual(t.encode("wsh(sortedmulti(2,@0/**,@1/**))")),expect(e.keys).toStrictEqual(["key1","key2"]),expect(e.keysTree).toStrictEqual(n)}),it("Create default wallet",()=>{const c=new s.DefaultWalletBuilder(d),a=new o.DefaultWallet("48'/1'/0'/0'",o.DefaultDescriptorTemplate.NATIVE_SEGWIT),n=(0,p.hexaStringToBuffer)("5c9e228d"),e="tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW",t=new u.MerkleTree(new i.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]);l.mockReturnValueOnce(t);const r=c.fromDefaultWallet(n,e,a),m=new TextEncoder;expect(l).toHaveBeenCalledWith([m.encode("[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW")]),expect(r.name).toStrictEqual(""),expect(r.hmac).toStrictEqual(new Uint8Array(32).fill(0)),expect(r.descriptorTemplate).toStrictEqual("wpkh(@0/**)"),expect(r.descriptorBuffer).toStrictEqual(m.encode("wpkh(@0/**)")),expect(r.keys).toStrictEqual(["[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW"]),expect(r.keysTree).toStrictEqual(t)})});
2
2
  //# sourceMappingURL=DefaultWalletBuilder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/wallet/service/DefaultWalletBuilder.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport {\n DefaultDescriptorTemplate,\n DefaultWallet,\n RegisteredWallet,\n} from \"@api/model/Wallet\";\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\nimport { type MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\n\nimport { DefaultWalletBuilder } from \"./DefaultWalletBuilder\";\n\ndescribe(\"DefaultWalletBuilder tests\", () => {\n const mockCreateMerkleTree = jest.fn();\n const mockMerkleTree = {\n build: mockCreateMerkleTree,\n } as unknown as MerkleTreeBuilder;\n\n it(\"Create registered wallet\", () => {\n // Given\n const builder = new DefaultWalletBuilder(mockMerkleTree);\n const registeredWallet = new RegisteredWallet(\n \"Cold storage\",\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n [\"key1\", \"key2\"],\n new Uint8Array(32).fill(42),\n );\n const keysTree = new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n );\n\n // When\n mockCreateMerkleTree.mockReturnValueOnce(keysTree);\n const wallet = builder.fromRegisteredWallet(registeredWallet);\n\n // Then\n const encoder = new TextEncoder();\n expect(mockCreateMerkleTree).toHaveBeenCalledWith([\n encoder.encode(\"key1\"),\n encoder.encode(\"key2\"),\n ]);\n expect(wallet.name).toStrictEqual(\"Cold storage\");\n expect(wallet.hmac).toStrictEqual(new Uint8Array(32).fill(42));\n expect(wallet.descriptorTemplate).toStrictEqual(\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n );\n expect(wallet.descriptorBuffer).toStrictEqual(\n encoder.encode(\"wsh(sortedmulti(2,@0/**,@1/**))\"),\n );\n expect(wallet.keys).toStrictEqual([\"key1\", \"key2\"]);\n expect(wallet.keysTree).toStrictEqual(keysTree);\n });\n\n it(\"Create default wallet\", () => {\n // Given\n const builder = new DefaultWalletBuilder(mockMerkleTree);\n const defaultWallet = new DefaultWallet(\n \"48'/1'/0'/0'\",\n DefaultDescriptorTemplate.NATIVE_SEGWIT,\n );\n const masterFingerprint = hexaStringToBuffer(\"5c9e228d\")!;\n const extendedPublicKey =\n \"tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\";\n const keysTree = new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n );\n\n // When\n mockCreateMerkleTree.mockReturnValueOnce(keysTree);\n const wallet = builder.fromDefaultWallet(\n masterFingerprint,\n extendedPublicKey,\n defaultWallet,\n );\n\n // Then\n const encoder = new TextEncoder();\n expect(mockCreateMerkleTree).toHaveBeenCalledWith([\n encoder.encode(\n \"[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\",\n ),\n ]);\n expect(wallet.name).toStrictEqual(\"\");\n expect(wallet.hmac).toStrictEqual(new Uint8Array(32).fill(0));\n expect(wallet.descriptorTemplate).toStrictEqual(\"wpkh(@0/**)\");\n expect(wallet.descriptorBuffer).toStrictEqual(\n encoder.encode(\"wpkh(@0/**)\"),\n );\n expect(wallet.keys).toStrictEqual([\n \"[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\",\n ]);\n expect(wallet.keysTree).toStrictEqual(keysTree);\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAAmC,2CAEnCC,EAIO,6BACPC,EAAqB,4CACrBC,EAA2B,kDAG3BC,EAAqC,kCAErC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAuB,KAAK,GAAG,EAC/BC,EAAiB,CACrB,MAAOD,CACT,EAEA,GAAG,2BAA4B,IAAM,CAEnC,MAAME,EAAU,IAAI,uBAAqBD,CAAc,EACjDE,EAAmB,IAAI,mBAC3B,eACA,kCACA,CAAC,OAAQ,MAAM,EACf,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC5B,EACMC,EAAW,IAAI,aACnB,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAJ,EAAqB,oBAAoBI,CAAQ,EACjD,MAAMC,EAASH,EAAQ,qBAAqBC,CAAgB,EAGtDG,EAAU,IAAI,YACpB,OAAON,CAAoB,EAAE,qBAAqB,CAChDM,EAAQ,OAAO,MAAM,EACrBA,EAAQ,OAAO,MAAM,CACvB,CAAC,EACD,OAAOD,EAAO,IAAI,EAAE,cAAc,cAAc,EAChD,OAAOA,EAAO,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAC7D,OAAOA,EAAO,kBAAkB,EAAE,cAChC,iCACF,EACA,OAAOA,EAAO,gBAAgB,EAAE,cAC9BC,EAAQ,OAAO,iCAAiC,CAClD,EACA,OAAOD,EAAO,IAAI,EAAE,cAAc,CAAC,OAAQ,MAAM,CAAC,EAClD,OAAOA,EAAO,QAAQ,EAAE,cAAcD,CAAQ,CAChD,CAAC,EAED,GAAG,wBAAyB,IAAM,CAEhC,MAAMF,EAAU,IAAI,uBAAqBD,CAAc,EACjDM,EAAgB,IAAI,gBACxB,eACA,4BAA0B,aAC5B,EACMC,KAAoB,sBAAmB,UAAU,EACjDC,EACJ,kHACIL,EAAW,IAAI,aACnB,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAJ,EAAqB,oBAAoBI,CAAQ,EACjD,MAAMC,EAASH,EAAQ,kBACrBM,EACAC,EACAF,CACF,EAGMD,EAAU,IAAI,YACpB,OAAON,CAAoB,EAAE,qBAAqB,CAChDM,EAAQ,OACN,wIACF,CACF,CAAC,EACD,OAAOD,EAAO,IAAI,EAAE,cAAc,EAAE,EACpC,OAAOA,EAAO,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EAC5D,OAAOA,EAAO,kBAAkB,EAAE,cAAc,aAAa,EAC7D,OAAOA,EAAO,gBAAgB,EAAE,cAC9BC,EAAQ,OAAO,aAAa,CAC9B,EACA,OAAOD,EAAO,IAAI,EAAE,cAAc,CAChC,wIACF,CAAC,EACD,OAAOA,EAAO,QAAQ,EAAE,cAAcD,CAAQ,CAChD,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport {\n DefaultDescriptorTemplate,\n DefaultWallet,\n RegisteredWallet,\n} from \"@api/model/Wallet\";\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\nimport { type MerkleTreeBuilder } from \"@internal/merkle-tree/service/MerkleTreeBuilder\";\n\nimport { DefaultWalletBuilder } from \"./DefaultWalletBuilder\";\n\ndescribe(\"DefaultWalletBuilder tests\", () => {\n const mockCreateMerkleTree = vi.fn();\n const mockMerkleTree = {\n build: mockCreateMerkleTree,\n } as unknown as MerkleTreeBuilder;\n\n it(\"Create registered wallet\", () => {\n // Given\n const builder = new DefaultWalletBuilder(mockMerkleTree);\n const registeredWallet = new RegisteredWallet(\n \"Cold storage\",\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n [\"key1\", \"key2\"],\n new Uint8Array(32).fill(42),\n );\n const keysTree = new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n );\n\n // When\n mockCreateMerkleTree.mockReturnValueOnce(keysTree);\n const wallet = builder.fromRegisteredWallet(registeredWallet);\n\n // Then\n const encoder = new TextEncoder();\n expect(mockCreateMerkleTree).toHaveBeenCalledWith([\n encoder.encode(\"key1\"),\n encoder.encode(\"key2\"),\n ]);\n expect(wallet.name).toStrictEqual(\"Cold storage\");\n expect(wallet.hmac).toStrictEqual(new Uint8Array(32).fill(42));\n expect(wallet.descriptorTemplate).toStrictEqual(\n \"wsh(sortedmulti(2,@0/**,@1/**))\",\n );\n expect(wallet.descriptorBuffer).toStrictEqual(\n encoder.encode(\"wsh(sortedmulti(2,@0/**,@1/**))\"),\n );\n expect(wallet.keys).toStrictEqual([\"key1\", \"key2\"]);\n expect(wallet.keysTree).toStrictEqual(keysTree);\n });\n\n it(\"Create default wallet\", () => {\n // Given\n const builder = new DefaultWalletBuilder(mockMerkleTree);\n const defaultWallet = new DefaultWallet(\n \"48'/1'/0'/0'\",\n DefaultDescriptorTemplate.NATIVE_SEGWIT,\n );\n const masterFingerprint = hexaStringToBuffer(\"5c9e228d\")!;\n const extendedPublicKey =\n \"tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\";\n const keysTree = new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n );\n\n // When\n mockCreateMerkleTree.mockReturnValueOnce(keysTree);\n const wallet = builder.fromDefaultWallet(\n masterFingerprint,\n extendedPublicKey,\n defaultWallet,\n );\n\n // Then\n const encoder = new TextEncoder();\n expect(mockCreateMerkleTree).toHaveBeenCalledWith([\n encoder.encode(\n \"[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\",\n ),\n ]);\n expect(wallet.name).toStrictEqual(\"\");\n expect(wallet.hmac).toStrictEqual(new Uint8Array(32).fill(0));\n expect(wallet.descriptorTemplate).toStrictEqual(\"wpkh(@0/**)\");\n expect(wallet.descriptorBuffer).toStrictEqual(\n encoder.encode(\"wpkh(@0/**)\"),\n );\n expect(wallet.keys).toStrictEqual([\n \"[5c9e228d/48'/1'/0'/0']tpubDEGquuorgFNb8bjh5kNZQMPtABJzoWwNm78FUmeoPkfRtoPF7JLrtoZeT3J3ybq1HmC3Rn1Q8wFQ8J5usanzups5rj7PJoQLNyvq8QbJruW\",\n ]);\n expect(wallet.keysTree).toStrictEqual(keysTree);\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAmC,2CAEnCC,EAIO,6BACPC,EAAqB,4CACrBC,EAA2B,kDAG3BC,EAAqC,kCAErC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAuB,GAAG,GAAG,EAC7BC,EAAiB,CACrB,MAAOD,CACT,EAEA,GAAG,2BAA4B,IAAM,CAEnC,MAAME,EAAU,IAAI,uBAAqBD,CAAc,EACjDE,EAAmB,IAAI,mBAC3B,eACA,kCACA,CAAC,OAAQ,MAAM,EACf,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAC5B,EACMC,EAAW,IAAI,aACnB,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAJ,EAAqB,oBAAoBI,CAAQ,EACjD,MAAMC,EAASH,EAAQ,qBAAqBC,CAAgB,EAGtDG,EAAU,IAAI,YACpB,OAAON,CAAoB,EAAE,qBAAqB,CAChDM,EAAQ,OAAO,MAAM,EACrBA,EAAQ,OAAO,MAAM,CACvB,CAAC,EACD,OAAOD,EAAO,IAAI,EAAE,cAAc,cAAc,EAChD,OAAOA,EAAO,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAC7D,OAAOA,EAAO,kBAAkB,EAAE,cAChC,iCACF,EACA,OAAOA,EAAO,gBAAgB,EAAE,cAC9BC,EAAQ,OAAO,iCAAiC,CAClD,EACA,OAAOD,EAAO,IAAI,EAAE,cAAc,CAAC,OAAQ,MAAM,CAAC,EAClD,OAAOA,EAAO,QAAQ,EAAE,cAAcD,CAAQ,CAChD,CAAC,EAED,GAAG,wBAAyB,IAAM,CAEhC,MAAMF,EAAU,IAAI,uBAAqBD,CAAc,EACjDM,EAAgB,IAAI,gBACxB,eACA,4BAA0B,aAC5B,EACMC,KAAoB,sBAAmB,UAAU,EACjDC,EACJ,kHACIL,EAAW,IAAI,aACnB,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EAGAJ,EAAqB,oBAAoBI,CAAQ,EACjD,MAAMC,EAASH,EAAQ,kBACrBM,EACAC,EACAF,CACF,EAGMD,EAAU,IAAI,YACpB,OAAON,CAAoB,EAAE,qBAAqB,CAChDM,EAAQ,OACN,wIACF,CACF,CAAC,EACD,OAAOD,EAAO,IAAI,EAAE,cAAc,EAAE,EACpC,OAAOA,EAAO,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EAC5D,OAAOA,EAAO,kBAAkB,EAAE,cAAc,aAAa,EAC7D,OAAOA,EAAO,gBAAgB,EAAE,cAC9BC,EAAQ,OAAO,aAAa,CAC9B,EACA,OAAOD,EAAO,IAAI,EAAE,cAAc,CAChC,wIACF,CAAC,EACD,OAAOA,EAAO,QAAQ,EAAE,cAAcD,CAAQ,CAChD,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_Wallet", "import_Leaf", "import_MerkleTree", "import_DefaultWalletBuilder", "mockCreateMerkleTree", "mockMerkleTree", "builder", "registeredWallet", "keysTree", "wallet", "encoder", "defaultWallet", "masterFingerprint", "extendedPublicKey"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("@ledgerhq/device-management-kit"),t=require("../../merkle-tree/model/Leaf"),i=require("../../merkle-tree/model/MerkleTree"),l=require("../../wallet/model/Wallet"),o=require("./DefaultWalletSerializer");describe("DefaultWalletSerializer tests",()=>{const e=jest.fn(),n={hash:e};it("Serialize a wallet",()=>{const s=new o.DefaultWalletSerializer(n),a=new Uint8Array(31).fill(16),c=new l.Wallet({name:"Cold storage",descriptorTemplate:"wsh(sortedmulti(2,@0/**,@1/**))",keys:["key1","key2"],hmac:new Uint8Array,keysTree:new i.MerkleTree(new t.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]),descriptorBuffer:a});e.mockReturnValueOnce(new Uint8Array(32).fill(42));const f=s.serialize(c);expect(e).toHaveBeenCalledWith(a),expect(f).toStrictEqual((0,r.hexaStringToBuffer)("020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707"))})});
1
+ "use strict";var r=require("@ledgerhq/device-management-kit"),t=require("../../merkle-tree/model/Leaf"),i=require("../../merkle-tree/model/MerkleTree"),l=require("../../wallet/model/Wallet"),o=require("./DefaultWalletSerializer");describe("DefaultWalletSerializer tests",()=>{const e=vi.fn(),n={hash:e};it("Serialize a wallet",()=>{const s=new o.DefaultWalletSerializer(n),a=new Uint8Array(31).fill(16),c=new l.Wallet({name:"Cold storage",descriptorTemplate:"wsh(sortedmulti(2,@0/**,@1/**))",keys:["key1","key2"],hmac:new Uint8Array,keysTree:new i.MerkleTree(new t.Leaf(new Uint8Array,new Uint8Array(32).fill(7)),[]),descriptorBuffer:a});e.mockReturnValueOnce(new Uint8Array(32).fill(42));const f=s.serialize(c);expect(e).toHaveBeenCalledWith(a),expect(f).toStrictEqual((0,r.hexaStringToBuffer)("020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707"))})});
2
2
  //# sourceMappingURL=DefaultWalletSerializer.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/wallet/service/DefaultWalletSerializer.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\nimport { type HasherService } from \"@internal/merkle-tree/service/HasherService\";\nimport { Wallet } from \"@internal/wallet/model/Wallet\";\n\nimport { DefaultWalletSerializer } from \"./DefaultWalletSerializer\";\n\ndescribe(\"DefaultWalletSerializer tests\", () => {\n const mockHash = jest.fn();\n const mockHasherService: HasherService = {\n hash: mockHash,\n };\n\n it(\"Serialize a wallet\", () => {\n // Given\n const walletSerializer = new DefaultWalletSerializer(mockHasherService);\n const descriptorBuffer = new Uint8Array(31).fill(16);\n const wallet = new Wallet({\n name: \"Cold storage\",\n descriptorTemplate: \"wsh(sortedmulti(2,@0/**,@1/**))\",\n keys: [\"key1\", \"key2\"],\n hmac: new Uint8Array(),\n keysTree: new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n ),\n descriptorBuffer,\n });\n\n // When\n mockHash.mockReturnValueOnce(new Uint8Array(32).fill(42));\n const serialized = walletSerializer.serialize(wallet);\n\n // Then\n expect(mockHash).toHaveBeenCalledWith(descriptorBuffer);\n expect(serialized).toStrictEqual(\n hexaStringToBuffer(\n \"020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707\",\n )!,\n );\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAAmC,2CAEnCC,EAAqB,4CACrBC,EAA2B,kDAE3BC,EAAuB,yCAEvBC,EAAwC,qCAExC,SAAS,gCAAiC,IAAM,CAC9C,MAAMC,EAAW,KAAK,GAAG,EACnBC,EAAmC,CACvC,KAAMD,CACR,EAEA,GAAG,qBAAsB,IAAM,CAE7B,MAAME,EAAmB,IAAI,0BAAwBD,CAAiB,EAChEE,EAAmB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,EAC7CC,EAAS,IAAI,SAAO,CACxB,KAAM,eACN,mBAAoB,kCACpB,KAAM,CAAC,OAAQ,MAAM,EACrB,KAAM,IAAI,WACV,SAAU,IAAI,aACZ,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAAD,CACF,CAAC,EAGDH,EAAS,oBAAoB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EACxD,MAAMK,EAAaH,EAAiB,UAAUE,CAAM,EAGpD,OAAOJ,CAAQ,EAAE,qBAAqBG,CAAgB,EACtD,OAAOE,CAAU,EAAE,iBACjB,sBACE,kKACF,CACF,CACF,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport { Leaf } from \"@internal/merkle-tree/model/Leaf\";\nimport { MerkleTree } from \"@internal/merkle-tree/model/MerkleTree\";\nimport { type HasherService } from \"@internal/merkle-tree/service/HasherService\";\nimport { Wallet } from \"@internal/wallet/model/Wallet\";\n\nimport { DefaultWalletSerializer } from \"./DefaultWalletSerializer\";\n\ndescribe(\"DefaultWalletSerializer tests\", () => {\n const mockHash = vi.fn();\n const mockHasherService: HasherService = {\n hash: mockHash,\n };\n\n it(\"Serialize a wallet\", () => {\n // Given\n const walletSerializer = new DefaultWalletSerializer(mockHasherService);\n const descriptorBuffer = new Uint8Array(31).fill(16);\n const wallet = new Wallet({\n name: \"Cold storage\",\n descriptorTemplate: \"wsh(sortedmulti(2,@0/**,@1/**))\",\n keys: [\"key1\", \"key2\"],\n hmac: new Uint8Array(),\n keysTree: new MerkleTree(\n new Leaf(new Uint8Array(), new Uint8Array(32).fill(7)),\n [],\n ),\n descriptorBuffer,\n });\n\n // When\n mockHash.mockReturnValueOnce(new Uint8Array(32).fill(42));\n const serialized = walletSerializer.serialize(wallet);\n\n // Then\n expect(mockHash).toHaveBeenCalledWith(descriptorBuffer);\n expect(serialized).toStrictEqual(\n hexaStringToBuffer(\n \"020c436f6c642073746f726167651f2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a020707070707070707070707070707070707070707070707070707070707070707\",\n )!,\n );\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAmC,2CAEnCC,EAAqB,4CACrBC,EAA2B,kDAE3BC,EAAuB,yCAEvBC,EAAwC,qCAExC,SAAS,gCAAiC,IAAM,CAC9C,MAAMC,EAAW,GAAG,GAAG,EACjBC,EAAmC,CACvC,KAAMD,CACR,EAEA,GAAG,qBAAsB,IAAM,CAE7B,MAAME,EAAmB,IAAI,0BAAwBD,CAAiB,EAChEE,EAAmB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,EAC7CC,EAAS,IAAI,SAAO,CACxB,KAAM,eACN,mBAAoB,kCACpB,KAAM,CAAC,OAAQ,MAAM,EACrB,KAAM,IAAI,WACV,SAAU,IAAI,aACZ,IAAI,OAAK,IAAI,WAAc,IAAI,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,EACrD,CAAC,CACH,EACA,iBAAAD,CACF,CAAC,EAGDH,EAAS,oBAAoB,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EACxD,MAAMK,EAAaH,EAAiB,UAAUE,CAAM,EAGpD,OAAOJ,CAAQ,EAAE,qBAAqBG,CAAgB,EACtD,OAAOE,CAAU,EAAE,iBACjB,sBACE,kKACF,CACF,CACF,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_Leaf", "import_MerkleTree", "import_Wallet", "import_DefaultWalletSerializer", "mockHash", "mockHasherService", "walletSerializer", "descriptorBuffer", "wallet", "serialized"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/device-signer-kit-bitcoin",
3
- "version": "0.0.1",
3
+ "version": "1.0.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "types": "lib/cjs/index.d.ts",
@@ -22,9 +22,9 @@
22
22
  ],
23
23
  "scripts": {
24
24
  "prebuild": "rimraf lib",
25
- "build": "pnpm lmdk-build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
25
+ "build": "pnpm ldmk-tool build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
26
26
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
27
- "watch:builds": "pnpm lmdk-watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
27
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
28
28
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
29
29
  "lint": "eslint",
30
30
  "lint:fix": "pnpm lint --fix",
@@ -32,29 +32,29 @@
32
32
  "prettier": "prettier . --check",
33
33
  "prettier:fix": "prettier . --write",
34
34
  "typecheck": "tsc --noEmit",
35
- "test": "jest --passWithNoTests",
36
- "test:coverage": "pnpm test -- --coverage"
35
+ "test": "vitest run",
36
+ "test:watch": "vitest",
37
+ "test:coverage": "vitest run --coverage"
37
38
  },
38
39
  "dependencies": {
39
- "@types/crypto-js": "^4.2.2",
40
- "crypto-js": "^4.2.0",
41
- "inversify": "^6.2.1",
42
- "inversify-logger-middleware": "^3.1.0",
43
- "purify-ts": "^2.1.0",
44
- "reflect-metadata": "^0.2.2",
45
- "xstate": "^5.19.2"
40
+ "@types/crypto-js": "catalog:",
41
+ "crypto-js": "catalog:",
42
+ "inversify": "catalog:",
43
+ "purify-ts": "catalog:",
44
+ "reflect-metadata": "catalog:",
45
+ "xstate": "catalog:"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@ledgerhq/device-management-kit": "workspace:*",
49
- "@ledgerhq/esbuild-tools": "workspace:*",
49
+ "@ledgerhq/ldmk-tool": "workspace:*",
50
50
  "@ledgerhq/eslint-config-dsdk": "workspace:*",
51
- "@ledgerhq/jest-config-dsdk": "workspace:*",
52
51
  "@ledgerhq/prettier-config-dsdk": "workspace:*",
53
52
  "@ledgerhq/signer-utils": "workspace:*",
54
53
  "@ledgerhq/tsconfig-dsdk": "workspace:*",
55
- "bitcoinjs-lib": "^6.1.6",
56
- "rxjs": "^7.8.1",
57
- "ts-node": "^10.9.2"
54
+ "@ledgerhq/vitest-config-dmk": "workspace:*",
55
+ "bitcoinjs-lib": "catalog:",
56
+ "rxjs": "catalog:",
57
+ "ts-node": "catalog:"
58
58
  },
59
59
  "peerDependencies": {
60
60
  "@ledgerhq/device-management-kit": "workspace:*",
@@ -1,2 +1,2 @@
1
1
  import{SignerBtcBuilder as t}from"./SignerBtcBuilder";describe("SignerBtcBuilder",()=>{const i={};test("should be an instance of SignerBtc",()=>{const e=new t({dmk:i,sessionId:""});e.build(),expect(e).toBeInstanceOf(t)})});
2
- //# sourceMappingURL=SignerBtcBuiilder.test.js.map
2
+ //# sourceMappingURL=SignerBtcBuilder.test.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/api/SignerBtcBuiilder.test.ts"],
3
+ "sources": ["../../../src/api/SignerBtcBuilder.test.ts"],
4
4
  "sourcesContent": ["import { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { SignerBtcBuilder } from \"@api/SignerBtcBuilder\";\n\ndescribe(\"SignerBtcBuilder\", () => {\n const dmk: DeviceManagementKit = {} as DeviceManagementKit;\n\n test(\"should be an instance of SignerBtc\", () => {\n // GIVEN\n const builder = new SignerBtcBuilder({ dmk, sessionId: \"\" });\n\n // WHEN\n builder.build();\n\n // THEN\n expect(builder).toBeInstanceOf(SignerBtcBuilder);\n });\n});\n"],
5
5
  "mappings": "AAEA,OAAS,oBAAAA,MAAwB,wBAEjC,SAAS,mBAAoB,IAAM,CACjC,MAAMC,EAA2B,CAAC,EAElC,KAAK,qCAAsC,IAAM,CAE/C,MAAMC,EAAU,IAAIF,EAAiB,CAAE,IAAAC,EAAK,UAAW,EAAG,CAAC,EAG3DC,EAAQ,MAAM,EAGd,OAAOA,CAAO,EAAE,eAAeF,CAAgB,CACjD,CAAC,CACH,CAAC",
6
6
  "names": ["SignerBtcBuilder", "dmk", "builder"]
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=MessageOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=PsbtOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,2 +1,2 @@
1
- import{useCasesTypes as s}from"./use-cases/di/useCasesTypes";import{makeContainer as i}from"./di";class g{_container;constructor({dmk:e,sessionId:t}){this._container=i({dmk:e,sessionId:t})}getWalletAddress(e,t,{checkOnDevice:r=!1,change:n=!1}){return this._container.get(s.GetWalletAddressUseCase).execute(r,e,n,t)}signPsbt(e,t){return this._container.get(s.SignPsbtUseCase).execute(e,t)}getExtendedPublicKey(e,{checkOnDevice:t=!1}){return this._container.get(s.GetExtendedPublicKeyUseCase).execute(e,{checkOnDevice:t})}signMessage(e,t){return this._container.get(s.SignMessageUseCase).execute(e,t)}signTransaction(e,t){return this._container.get(s.SignTransactionUseCase).execute(e,t)}}export{g as DefaultSignerBtc};
1
+ import{useCasesTypes as n}from"./use-cases/di/useCasesTypes";import{makeContainer as i}from"./di";class o{_container;constructor({dmk:t,sessionId:e}){this._container=i({dmk:t,sessionId:e})}getWalletAddress(t,e,s){return this._container.get(n.GetWalletAddressUseCase).execute(s?.checkOnDevice??!1,t,s?.change??!1,e,s?.skipOpenApp??!1)}signPsbt(t,e,s){return this._container.get(n.SignPsbtUseCase).execute(t,e,s?.skipOpenApp??!1)}getExtendedPublicKey(t,e){return this._container.get(n.GetExtendedPublicKeyUseCase).execute(t,{checkOnDevice:e?.checkOnDevice??!1,skipOpenApp:e?.skipOpenApp??!1})}signMessage(t,e,s){return this._container.get(n.SignMessageUseCase).execute(t,e,s?.skipOpenApp??!1)}signTransaction(t,e,s){return this._container.get(n.SignTransactionUseCase).execute(t,e,s?.skipOpenApp??!1)}}export{o as 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 Psbt } from \"@api/model/Psbt\";\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 { checkOnDevice = false, change = false }: WalletAddressOptions,\n ) {\n return this._container\n .get<GetWalletAddressUseCase>(useCasesTypes.GetWalletAddressUseCase)\n .execute(checkOnDevice, wallet, change, addressIndex);\n }\n\n signPsbt(wallet: Wallet, psbt: Psbt) {\n return this._container\n .get<SignPsbtUseCase>(useCasesTypes.SignPsbtUseCase)\n .execute(wallet, psbt);\n }\n\n getExtendedPublicKey(\n derivationPath: string,\n { checkOnDevice = false }: AddressOptions,\n ) {\n return this._container\n .get<GetExtendedPublicKeyUseCase>(\n useCasesTypes.GetExtendedPublicKeyUseCase,\n )\n .execute(derivationPath, { checkOnDevice });\n }\n\n signMessage(\n derivationPath: string,\n message: string,\n ): SignMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(useCasesTypes.SignMessageUseCase)\n .execute(derivationPath, message);\n }\n\n signTransaction(wallet: Wallet, psbt: Psbt) {\n return this._container\n .get<SignTransactionUseCase>(useCasesTypes.SignTransactionUseCase)\n .execute(wallet, psbt);\n }\n}\n"],
5
- "mappings": "AAYA,OAAS,iBAAAA,MAAqB,uCAO9B,OAAS,iBAAAC,MAAqB,OAOvB,MAAMC,CAAsC,CAChC,WAEjB,YAAY,CAAE,IAAAC,EAAK,UAAAC,CAAU,EAAoC,CAC/D,KAAK,WAAaH,EAAc,CAAE,IAAAE,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,iBACEC,EACAC,EACA,CAAE,cAAAC,EAAgB,GAAO,OAAAC,EAAS,EAAM,EACxC,CACA,OAAO,KAAK,WACT,IAA6BR,EAAc,uBAAuB,EAClE,QAAQO,EAAeF,EAAQG,EAAQF,CAAY,CACxD,CAEA,SAASD,EAAgBI,EAAY,CACnC,OAAO,KAAK,WACT,IAAqBT,EAAc,eAAe,EAClD,QAAQK,EAAQI,CAAI,CACzB,CAEA,qBACEC,EACA,CAAE,cAAAH,EAAgB,EAAM,EACxB,CACA,OAAO,KAAK,WACT,IACCP,EAAc,2BAChB,EACC,QAAQU,EAAgB,CAAE,cAAAH,CAAc,CAAC,CAC9C,CAEA,YACEG,EACAC,EACyB,CACzB,OAAO,KAAK,WACT,IAAwBX,EAAc,kBAAkB,EACxD,QAAQU,EAAgBC,CAAO,CACpC,CAEA,gBAAgBN,EAAgBI,EAAY,CAC1C,OAAO,KAAK,WACT,IAA4BT,EAAc,sBAAsB,EAChE,QAAQK,EAAQI,CAAI,CACzB,CACF",
6
- "names": ["useCasesTypes", "makeContainer", "DefaultSignerBtc", "dmk", "sessionId", "wallet", "addressIndex", "checkOnDevice", "change", "psbt", "derivationPath", "message"]
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": "AAcA,OAAS,iBAAAA,MAAqB,uCAO9B,OAAS,iBAAAC,MAAqB,OAOvB,MAAMC,CAAsC,CAChC,WAEjB,YAAY,CAAE,IAAAC,EAAK,UAAAC,CAAU,EAAoC,CAC/D,KAAK,WAAaH,EAAc,CAAE,IAAAE,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,iBACEC,EACAC,EACAC,EACA,CACA,OAAO,KAAK,WACT,IAA6BP,EAAc,uBAAuB,EAClE,QACCO,GAAS,eAAiB,GAC1BF,EACAE,GAAS,QAAU,GACnBD,EACAC,GAAS,aAAe,EAC1B,CACJ,CAEA,SAASF,EAAgBG,EAAYD,EAAuB,CAC1D,OAAO,KAAK,WACT,IAAqBP,EAAc,eAAe,EAClD,QAAQK,EAAQG,EAAMD,GAAS,aAAe,EAAK,CACxD,CAEA,qBAAqBE,EAAwBF,EAA0B,CACrE,OAAO,KAAK,WACT,IACCP,EAAc,2BAChB,EACC,QAAQS,EAAgB,CACvB,cAAeF,GAAS,eAAiB,GACzC,YAAaA,GAAS,aAAe,EACvC,CAAC,CACL,CAEA,YACEE,EACAC,EACAH,EACyB,CACzB,OAAO,KAAK,WACT,IAAwBP,EAAc,kBAAkB,EACxD,QAAQS,EAAgBC,EAASH,GAAS,aAAe,EAAK,CACnE,CAEA,gBAAgBF,EAAgBG,EAAYD,EAAuB,CACjE,OAAO,KAAK,WACT,IAA4BP,EAAc,sBAAsB,EAChE,QAAQK,EAAQG,EAAMD,GAAS,aAAe,EAAK,CACxD,CACF",
6
+ "names": ["useCasesTypes", "makeContainer", "DefaultSignerBtc", "dmk", "sessionId", "wallet", "addressIndex", "options", "psbt", "derivationPath", "message"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DefaultDescriptorTemplate as i,DefaultWallet as o}from"../api/model/Wallet";import{DefaultSignerBtc as t}from"./DefaultSignerBtc";import{GetExtendedPublicKeyUseCase as a}from"./use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase";import{SignPsbtUseCase as c}from"./use-cases/sign-psbt/SignPsbtUseCase";import{SignTransactionUseCase as r}from"./use-cases/sign-transaction/SignTransactionUseCase";import{SignMessageUseCase as d}from"./use-cases/sign-message/SignMessageUseCase";describe("DefaultSignerBtc",()=>{it("should be defined",()=>{const e=new t({dmk:{},sessionId:"session-id"});expect(e).toBeDefined()}),it("should call getExtendedPublicKeyUseCase",()=>{jest.spyOn(a.prototype,"execute");const e="session-id",s={executeDeviceAction:jest.fn()};new t({dmk:s,sessionId:e}).getExtendedPublicKey("44'/0'/0'/0/0",{checkOnDevice:!0}),expect(a.prototype.execute).toHaveBeenCalled()}),it("should call signMessageUseCase",()=>{jest.spyOn(d.prototype,"execute");const e="session-id",s={executeDeviceAction:jest.fn()};new t({dmk:s,sessionId:e}).signMessage("44'/0'/0'/0/0","message"),expect(d.prototype.execute).toHaveBeenCalled()}),it("should call signPsbtUseCase",()=>{jest.spyOn(c.prototype,"execute");const e="session-id",s={executeDeviceAction:jest.fn()};new t({dmk:s,sessionId:e}).signPsbt(new o("44'/0'/0'",i.NATIVE_SEGWIT),""),expect(c.prototype.execute).toHaveBeenCalled()}),it("should call signTransactionUseCase",()=>{jest.spyOn(r.prototype,"execute");const e="session-id",s={executeDeviceAction:jest.fn()};new t({dmk:s,sessionId:e}).signTransaction(new o("44'/0'/0'",i.NATIVE_SEGWIT),""),expect(r.prototype.execute).toHaveBeenCalled()})});
1
+ import{DefaultDescriptorTemplate as i,DefaultWallet as o}from"../api/model/Wallet";import{DefaultSignerBtc as n}from"./DefaultSignerBtc";import{GetExtendedPublicKeyUseCase as a}from"./use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase";import{SignPsbtUseCase as c}from"./use-cases/sign-psbt/SignPsbtUseCase";import{SignTransactionUseCase as p}from"./use-cases/sign-transaction/SignTransactionUseCase";import{SignMessageUseCase as r}from"./use-cases/sign-message/SignMessageUseCase";describe("DefaultSignerBtc",()=>{it("should be defined",()=>{const e=new n({dmk:{},sessionId:"session-id"});expect(e).toBeDefined()}),it("should call getExtendedPublicKeyUseCase",()=>{vi.spyOn(a.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new n({dmk:s,sessionId:e}).getExtendedPublicKey("44'/0'/0'/0/0",{checkOnDevice:!0}),expect(a.prototype.execute).toHaveBeenCalled()}),it("should call signMessageUseCase",()=>{vi.spyOn(r.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new n({dmk:s,sessionId:e}).signMessage("44'/0'/0'/0/0","message",{skipOpenApp:!1}),expect(r.prototype.execute).toHaveBeenCalled()}),it("should call signPsbtUseCase",()=>{vi.spyOn(c.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new n({dmk:s,sessionId:e}).signPsbt(new o("44'/0'/0'",i.NATIVE_SEGWIT),"",{skipOpenApp:!1}),expect(c.prototype.execute).toHaveBeenCalled()}),it("should call signTransactionUseCase",()=>{vi.spyOn(p.prototype,"execute");const e="session-id",s={executeDeviceAction:vi.fn()};new n({dmk:s,sessionId:e}).signTransaction(new o("44'/0'/0'",i.NATIVE_SEGWIT),"",{skipOpenApp:!1}),expect(p.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 jest.spyOn(GetExtendedPublicKeyUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: jest.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 jest.spyOn(SignMessageUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: jest.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);\n expect(SignMessageUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signPsbtUseCase\", () => {\n jest.spyOn(SignPsbtUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: jest.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 );\n expect(SignPsbtUseCase.prototype.execute).toHaveBeenCalled();\n });\n it(\"should call signTransactionUseCase\", () => {\n jest.spyOn(SignTransactionUseCase.prototype, \"execute\");\n const sessionId = \"session-id\";\n const dmk = {\n executeDeviceAction: jest.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 );\n expect(SignTransactionUseCase.prototype.execute).toHaveBeenCalled();\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,6BAAAA,EAA2B,iBAAAC,MAAqB,oBACzD,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,+BAAAC,MAAmC,0EAC5C,OAAS,mBAAAC,MAAuB,gDAChC,OAAS,0BAAAC,MAA8B,8DAEvC,OAAS,sBAAAC,MAA0B,8CAEnC,SAAS,mBAAoB,IAAM,CACjC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAIL,EAAiB,CAClC,IAAK,CAAC,EACN,UAAW,YACb,CAAC,EACD,OAAOK,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,KAAK,MAAMJ,EAA4B,UAAW,SAAS,EAC3D,MAAMK,EAAY,aACZC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,qBAAqB,gBAAiB,CAC3C,cAAe,EACjB,CAAC,EACD,OAAOL,EAA4B,UAAU,OAAO,EAAE,iBAAiB,CACzE,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,KAAK,MAAMG,EAAmB,UAAW,SAAS,EAClD,MAAME,EAAY,aACZC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EAGe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,YAHgB,gBACP,SAE0B,EAC1C,OAAOF,EAAmB,UAAU,OAAO,EAAE,iBAAiB,CAChE,CAAC,EACD,GAAG,8BAA+B,IAAM,CACtC,KAAK,MAAMF,EAAgB,UAAW,SAAS,EAC/C,MAAMI,EAAY,aACZC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,SACL,IAAIP,EAAc,YAAaD,EAA0B,aAAa,EACtE,EACF,EACA,OAAOI,EAAgB,UAAU,OAAO,EAAE,iBAAiB,CAC7D,CAAC,EACD,GAAG,qCAAsC,IAAM,CAC7C,KAAK,MAAMC,EAAuB,UAAW,SAAS,EACtD,MAAMG,EAAY,aACZC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,gBACL,IAAIP,EAAc,YAAaD,EAA0B,aAAa,EACtE,EACF,EACA,OAAOK,EAAuB,UAAU,OAAO,EAAE,iBAAiB,CACpE,CAAC,CACH,CAAC",
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,OAAS,6BAAAA,EAA2B,iBAAAC,MAAqB,oBACzD,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,+BAAAC,MAAmC,0EAC5C,OAAS,mBAAAC,MAAuB,gDAChC,OAAS,0BAAAC,MAA8B,8DAEvC,OAAS,sBAAAC,MAA0B,8CAEnC,SAAS,mBAAoB,IAAM,CACjC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAIL,EAAiB,CAClC,IAAK,CAAC,EACN,UAAW,YACb,CAAC,EACD,OAAOK,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,GAAG,MAAMJ,EAA4B,UAAW,SAAS,EACzD,MAAMK,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,qBAAqB,gBAAiB,CAC3C,cAAe,EACjB,CAAC,EACD,OAAOL,EAA4B,UAAU,OAAO,EAAE,iBAAiB,CACzE,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,GAAG,MAAMG,EAAmB,UAAW,SAAS,EAChD,MAAME,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EAGe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,YAHgB,gBACP,UAE4B,CAAE,YAAa,EAAM,CAAC,EAClE,OAAOF,EAAmB,UAAU,OAAO,EAAE,iBAAiB,CAChE,CAAC,EACD,GAAG,8BAA+B,IAAM,CACtC,GAAG,MAAMF,EAAgB,UAAW,SAAS,EAC7C,MAAMI,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,SACL,IAAIP,EAAc,YAAaD,EAA0B,aAAa,EACtE,GACA,CAAE,YAAa,EAAM,CACvB,EACA,OAAOI,EAAgB,UAAU,OAAO,EAAE,iBAAiB,CAC7D,CAAC,EACD,GAAG,qCAAsC,IAAM,CAC7C,GAAG,MAAMC,EAAuB,UAAW,SAAS,EACpD,MAAMG,EAAY,aACZC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACe,IAAIP,EAAiB,CAAE,IAAAO,EAAK,UAAAD,CAAU,CAAC,EAC/C,gBACL,IAAIP,EAAc,YAAaD,EAA0B,aAAa,EACtE,GACA,CAAE,YAAa,EAAM,CACvB,EACA,OAAOK,EAAuB,UAAU,OAAO,EAAE,iBAAiB,CACpE,CAAC,CACH,CAAC",
6
6
  "names": ["DefaultDescriptorTemplate", "DefaultWallet", "DefaultSignerBtc", "GetExtendedPublicKeyUseCase", "SignPsbtUseCase", "SignTransactionUseCase", "SignMessageUseCase", "signer", "sessionId", "dmk"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var S=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var p=(l,e,s,r)=>{for(var t=r>1?void 0:r?b(e,s):e,n=l.length-1,o;n>=0;n--)(o=l[n])&&(t=(r?o(e,s,t):o(t))||t);return r&&t&&S(e,s,t),t},i=(l,e)=>(s,r)=>e(s,r,l);import{SendCommandInAppDeviceAction as D,UserInteractionRequired as c}from"@ledgerhq/device-management-kit";import{inject as a,injectable as h}from"inversify";import{GetExtendedPublicKeyCommand as y}from"../app-binder/command/GetExtendedPublicKeyCommand";import{SignPsbtDeviceAction as w}from"../app-binder/device-action/SignPsbt/SignPsbtDeviceAction";import{SignTransactionDeviceAction as _}from"../app-binder/device-action/SignTransaction/SignTransactionDeviceAction";import{dataStoreTypes as A}from"../data-store/di/dataStoreTypes";import{externalTypes as m}from"../externalTypes";import{psbtTypes as u}from"../psbt/di/psbtTypes";import{walletTypes as v}from"../wallet/di/walletTypes";import{GetWalletAddressDeviceAction as P}from"./device-action/GetWalletAddress/GetWalletAddressDeviceAction";import{SignMessageDeviceAction as f}from"./device-action/SignMessage/SignMessageDeviceAction";let d=class{constructor(e,s,r,t,n,o,I){this._dmk=e;this._sessionId=s;this._walletBuilder=r;this._walletSerializer=t;this._dataStoreService=n;this._psbtMapper=o;this._valueParser=I}getExtendedPublicKey(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new D({input:{command:new y(e),appName:"Bitcoin",requiredUserInteraction:e.checkOnDevice?c.VerifyAddress:c.None}})})}signMessage(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new f({input:{derivationPath:e.derivationPath,message:e.message,dataStoreService:this._dataStoreService}})})}signPsbt(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new w({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser}})})}getWalletAddress(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new P({input:{wallet:e.wallet,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 _({input:{psbt:e.psbt,wallet:e.wallet,walletBuilder:this._walletBuilder,walletSerializer:this._walletSerializer,dataStoreService:this._dataStoreService,psbtMapper:this._psbtMapper,valueParser:this._valueParser}})})}};d=p([h(),i(0,a(m.Dmk)),i(1,a(m.SessionId)),i(2,a(v.WalletBuilder)),i(3,a(v.WalletSerializer)),i(4,a(A.DataStoreService)),i(5,a(u.PsbtMapper)),i(6,a(u.ValueParser))],d);export{d as BtcAppBinder};
1
+ var S=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var d=(s,e,t,a)=>{for(var i=a>1?void 0:a?A(e,t):e,p=s.length-1,l;p>=0;p--)(l=s[p])&&(i=(a?l(e,t,i):l(i))||i);return a&&i&&S(e,t,i),i},r=(s,e)=>(t,a)=>e(t,a,s);import{CallTaskInAppDeviceAction as b,SendCommandInAppDeviceAction as y,UserInteractionRequired as c}from"@ledgerhq/device-management-kit";import{inject as n,injectable as D}from"inversify";import{GetExtendedPublicKeyCommand as w}from"../app-binder/command/GetExtendedPublicKeyCommand";import{SignPsbtDeviceAction as h}from"../app-binder/device-action/SignPsbt/SignPsbtDeviceAction";import{SignTransactionDeviceAction as _}from"../app-binder/device-action/SignTransaction/SignTransactionDeviceAction";import{SendSignMessageTask as k}from"../app-binder/task/SignMessageTask";import{dataStoreTypes as P}from"../data-store/di/dataStoreTypes";import{externalTypes as m}from"../externalTypes";import{psbtTypes as u}from"../psbt/di/psbtTypes";import{walletTypes as v}from"../wallet/di/walletTypes";import{GetWalletAddressDeviceAction as f}from"./device-action/GetWalletAddress/GetWalletAddressDeviceAction";let o=class{constructor(e,t,a,i,p,l,I){this._dmk=e;this._sessionId=t;this._walletBuilder=a;this._walletSerializer=i;this._dataStoreService=p;this._psbtMapper=l;this._valueParser=I}getExtendedPublicKey(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new y({input:{command:new w(e),appName:"Bitcoin",requiredUserInteraction:e.checkOnDevice?c.VerifyAddress:c.None,skipOpenApp:e.skipOpenApp}})})}signMessage(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new b({input:{task:async t=>new k(t,e,this._dataStoreService).run(),appName:"Bitcoin",requiredUserInteraction:c.SignPersonalMessage,skipOpenApp:e.skipOpenApp}})})}signPsbt(e){return this._dmk.executeDeviceAction({sessionId:this._sessionId,deviceAction:new h({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 f({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 _({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}})})}};o=d([D(),r(0,n(m.Dmk)),r(1,n(m.SessionId)),r(2,n(v.WalletBuilder)),r(3,n(v.WalletSerializer)),r(4,n(P.DataStoreService)),r(5,n(u.PsbtMapper)),r(6,n(u.ValueParser))],o);export{o as 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 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 { 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\";\nimport { SignMessageDeviceAction } from \"./device-action/SignMessage/SignMessageDeviceAction\";\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 },\n }),\n });\n }\n\n signMessage(args: {\n derivationPath: string;\n message: string;\n }): SignMessageDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new SignMessageDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n message: args.message,\n dataStoreService: this._dataStoreService,\n },\n }),\n });\n }\n\n signPsbt(args: { psbt: Psbt; wallet: Wallet }): 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 },\n }),\n });\n }\n\n getWalletAddress(args: {\n checkOnDevice: boolean;\n wallet: Wallet;\n change: boolean;\n addressIndex: number;\n }): GetWalletAddressDAReturnType {\n return this._dmk.executeDeviceAction({\n sessionId: this._sessionId,\n deviceAction: new GetWalletAddressDeviceAction({\n input: {\n wallet: args.wallet,\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 }): 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 },\n }),\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAGE,gCAAAA,EACA,2BAAAC,MACK,kCACP,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YAYnC,OAAS,+BAAAC,MAAmC,2DAC5C,OAAS,wBAAAC,MAA4B,mEACrC,OAAS,+BAAAC,MAAmC,iFAC5C,OAAS,kBAAAC,MAAsB,yCAE/B,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,aAAAC,MAAiB,8BAG1B,OAAS,eAAAC,MAAmB,kCAI5B,OAAS,gCAAAC,MAAoC,gEAC7C,OAAS,2BAAAC,MAA+B,sDAGjC,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,IAAIC,EAA6B,CAC7C,MAAO,CACL,QAAS,IAAIC,EAA4BF,CAAI,EAC7C,QAAS,UACT,wBAAyBA,EAAK,cAC1BG,EAAwB,cACxBA,EAAwB,IAC9B,CACF,CAAC,CACH,CAAC,CACH,CAEA,YAAYH,EAGgB,CAC1B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAII,EAAwB,CACxC,MAAO,CACL,eAAgBJ,EAAK,eACrB,QAASA,EAAK,QACd,iBAAkB,KAAK,iBACzB,CACF,CAAC,CACH,CAAC,CACH,CAEA,SAASA,EAA4D,CACnE,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIK,EAAqB,CACrC,MAAO,CACL,KAAML,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,kBACvB,WAAY,KAAK,YACjB,YAAa,KAAK,YACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,iBAAiBA,EAKgB,CAC/B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIM,EAA6B,CAC7C,MAAO,CACL,OAAQN,EAAK,OACb,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,EAGgB,CAC9B,OAAO,KAAK,KAAK,oBAAoB,CACnC,UAAW,KAAK,WAChB,aAAc,IAAIO,EAA4B,CAC5C,MAAO,CACL,KAAMP,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,eACpB,iBAAkB,KAAK,kBACvB,iBAAkB,KAAK,kBACvB,WAAY,KAAK,YACjB,YAAa,KAAK,YACpB,CACF,CAAC,CACH,CAAC,CACH,CACF,EA7GaR,EAANgB,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAc,GAAG,GAExBF,EAAA,EAAAC,EAAOC,EAAc,SAAS,GAE9BF,EAAA,EAAAC,EAAOE,EAAY,aAAa,GAEhCH,EAAA,EAAAC,EAAOE,EAAY,gBAAgB,GAEnCH,EAAA,EAAAC,EAAOG,EAAe,gBAAgB,GAEtCJ,EAAA,EAAAC,EAAOI,EAAU,UAAU,GAE3BL,EAAA,EAAAC,EAAOI,EAAU,WAAW,IAdpBvB",
6
- "names": ["SendCommandInAppDeviceAction", "UserInteractionRequired", "inject", "injectable", "GetExtendedPublicKeyCommand", "SignPsbtDeviceAction", "SignTransactionDeviceAction", "dataStoreTypes", "externalTypes", "psbtTypes", "walletTypes", "GetWalletAddressDeviceAction", "SignMessageDeviceAction", "BtcAppBinder", "_dmk", "_sessionId", "_walletBuilder", "_walletSerializer", "_dataStoreService", "_psbtMapper", "_valueParser", "args", "SendCommandInAppDeviceAction", "GetExtendedPublicKeyCommand", "UserInteractionRequired", "SignMessageDeviceAction", "SignPsbtDeviceAction", "GetWalletAddressDeviceAction", "SignTransactionDeviceAction", "__decorateClass", "injectable", "__decorateParam", "inject", "externalTypes", "walletTypes", "dataStoreTypes", "psbtTypes"]
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": "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",
6
+ "names": ["CallTaskInAppDeviceAction", "SendCommandInAppDeviceAction", "UserInteractionRequired", "inject", "injectable", "GetExtendedPublicKeyCommand", "SignPsbtDeviceAction", "SignTransactionDeviceAction", "SendSignMessageTask", "dataStoreTypes", "externalTypes", "psbtTypes", "walletTypes", "GetWalletAddressDeviceAction", "BtcAppBinder", "_dmk", "_sessionId", "_walletBuilder", "_walletSerializer", "_dataStoreService", "_psbtMapper", "_valueParser", "args", "SendCommandInAppDeviceAction", "GetExtendedPublicKeyCommand", "UserInteractionRequired", "CallTaskInAppDeviceAction", "internalApi", "SendSignMessageTask", "SignPsbtDeviceAction", "GetWalletAddressDeviceAction", "SignTransactionDeviceAction", "__decorateClass", "injectable", "__decorateParam", "inject", "externalTypes", "walletTypes", "dataStoreTypes", "psbtTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DeviceActionStatus as u,SendCommandInAppDeviceAction as d,UserInteractionRequired as l}from"@ledgerhq/device-management-kit";import{from as p}from"rxjs";import{BtcAppBinder as o}from"../app-binder/BtcAppBinder";import{GetExtendedPublicKeyCommand as m}from"../app-binder/command/GetExtendedPublicKeyCommand";describe("BtcAppBinder",()=>{const s={sendCommand:jest.fn(),executeDeviceAction:jest.fn()};beforeEach(()=>{jest.clearAllMocks()}),it("should be defined",()=>{const t=new o({},{},{},{},{},{},{});expect(t).toBeDefined()}),describe("getExtendedPublicKey",()=>{let t;afterEach(()=>{t&&t.unsubscribe()}),it("should return the pub key",a=>{const r="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";jest.spyOn(s,"executeDeviceAction").mockReturnValue({observable:p([{status:u.Completed,output:{extendedPublicKey:r}}]),cancel:jest.fn()});const i=new o(s,"sessionId",{},{},{},{},{}),{observable:n}=i.getExtendedPublicKey({derivationPath:"44'/501'",checkOnDevice:!1}),c=[];t=n.subscribe({next:e=>{c.push(e)},error:e=>{a(e)},complete:()=>{try{expect(c).toEqual([{status:u.Completed,output:{extendedPublicKey:r}}]),a()}catch(e){a(e)}}})}),describe("calls of executeDeviceAction with the correct params",()=>{const a={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const i={...a,checkOnDevice:!0};new o(s,"sessionId",{},{},{},{},{}).getExtendedPublicKey(i),expect(s.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new d({input:{command:new m(i),appName:"Bitcoin",requiredUserInteraction:l.VerifyAddress}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const i={...a,checkOnDevice:!1};new o(s,"sessionId",{},{},{},{},{}).getExtendedPublicKey(i),expect(s.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new d({input:{command:new m(i),appName:"Bitcoin",requiredUserInteraction:l.None}})})})})}),describe("signMessage",()=>{it("should return the signature",t=>{const a={r:"0xDEF1",s:"0xAFAF",v:0},r="Hello, World!";jest.spyOn(s,"executeDeviceAction").mockReturnValue({observable:p([{status:u.Completed,output:a}]),cancel:jest.fn()});const i=new o(s,"sessionId",{},{},{},{},{}),{observable:n}=i.signMessage({derivationPath:"44'/60'/3'/2/1",message:r}),c=[];n.subscribe({next:e=>{c.push(e)},error:e=>{t(e)},complete:()=>{try{expect(c).toEqual([{status:u.Completed,output:a}]),t()}catch(e){t(e)}}})})})});
1
+ import{DeviceActionStatus as p,SendCommandInAppDeviceAction as l,UserInteractionRequired as u}from"@ledgerhq/device-management-kit";import{from as m}from"rxjs";import{BtcAppBinder as o}from"../app-binder/BtcAppBinder";import{GetExtendedPublicKeyCommand as D}from"../app-binder/command/GetExtendedPublicKeyCommand";describe("BtcAppBinder",()=>{const i={sendCommand:vi.fn(),executeDeviceAction:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const a=new o({},{},{},{},{},{},{});expect(a).toBeDefined()}),describe("getExtendedPublicKey",()=>{let a;afterEach(()=>{a&&a.unsubscribe()}),it("should return the pub key",()=>new Promise((s,r)=>{const t="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:m([{status:p.Completed,output:{extendedPublicKey:t}}]),cancel:vi.fn()});const n=new o(i,"sessionId",{},{},{},{},{}),{observable:d}=n.getExtendedPublicKey({derivationPath:"44'/501'",checkOnDevice:!1,skipOpenApp:!1}),c=[];a=d.subscribe({next:e=>{c.push(e)},error:e=>{r(e)},complete:()=>{try{expect(c).toEqual([{status:p.Completed,output:{extendedPublicKey:t}}]),s()}catch(e){r(e)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const s={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1,skipOpenApp:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const t={...s,checkOnDevice:!0};new o(i,"sessionId",{},{},{},{},{}).getExtendedPublicKey(t),expect(i.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new l({input:{command:new D(t),appName:"Bitcoin",requiredUserInteraction:u.VerifyAddress,skipOpenApp:!1}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const t={...s,checkOnDevice:!1};new o(i,"sessionId",{},{},{},{},{}).getExtendedPublicKey(t),expect(i.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new l({input:{command:new D(t),appName:"Bitcoin",requiredUserInteraction:u.None,skipOpenApp:!1}})})})})}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((a,s)=>{const r={r:"0xDEF1",s:"0xAFAF",v:0},t="Hello, World!";vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:m([{status:p.Completed,output:r}]),cancel:vi.fn()});const n=new o(i,"sessionId",{},{},{},{},{}),{observable:d}=n.signMessage({derivationPath:"44'/60'/3'/2/1",message:t,skipOpenApp:!1}),c=[];d.subscribe({next:e=>{c.push(e)},error:e=>{s(e)},complete:()=>{try{expect(c).toEqual([{status:p.Completed,output:r}]),a()}catch(e){s(e)}}})}))})});
2
2
  //# sourceMappingURL=BtcAppBinder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/BtcAppBinder.test.ts"],
4
- "sourcesContent": ["import {\n type DeviceActionState,\n DeviceActionStatus,\n type DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { from, type Subscription } from \"rxjs\";\n\nimport {\n type GetExtendedDAIntermediateValue,\n type GetExtendedPublicKeyDAError,\n type GetExtendedPublicKeyDAOutput,\n} from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nimport {\n type SignMessageDAError,\n type SignMessageDAIntermediateValue,\n type SignMessageDAOutput,\n} from \"@api/index\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { GetExtendedPublicKeyCommand } from \"@internal/app-binder/command/GetExtendedPublicKeyCommand\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\ndescribe(\"BtcAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: jest.fn(),\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it(\"should be defined\", () => {\n const binder = new BtcAppBinder(\n {} as DeviceManagementKit,\n {} as DeviceSessionId,\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n expect(binder).toBeDefined();\n });\n\n describe(\"getExtendedPublicKey\", () => {\n let subscription: Subscription;\n afterEach(() => {\n if (subscription) {\n subscription.unsubscribe();\n }\n });\n it(\"should return the pub key\", (done) => {\n // GIVEN\n const extendedPublicKey = \"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5\";\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: { extendedPublicKey },\n } as DeviceActionState<\n GetExtendedPublicKeyDAOutput,\n GetExtendedPublicKeyDAError,\n GetExtendedDAIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new BtcAppBinder(\n mockedDmk,\n \"sessionId\",\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n const { observable } = appBinder.getExtendedPublicKey({\n derivationPath: \"44'/501'\",\n checkOnDevice: false,\n });\n\n // THEN\n const states: DeviceActionState<\n GetExtendedPublicKeyDAOutput,\n GetExtendedPublicKeyDAError,\n GetExtendedDAIntermediateValue\n >[] = [];\n subscription = observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: { extendedPublicKey },\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n };\n\n it(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new BtcAppBinder(\n mockedDmk,\n \"sessionId\",\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n appBinder.getExtendedPublicKey(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetExtendedPublicKeyCommand(params),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n }),\n });\n });\n\n it(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new BtcAppBinder(\n mockedDmk,\n \"sessionId\",\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n appBinder.getExtendedPublicKey(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetExtendedPublicKeyCommand(params),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signature\", (done) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEF1`,\n s: `0xAFAF`,\n v: 0,\n };\n const message = \"Hello, World!\";\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignMessageDAOutput,\n SignMessageDAError,\n SignMessageDAIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new BtcAppBinder(\n mockedDmk,\n \"sessionId\",\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n const { observable } = appBinder.signMessage({\n derivationPath: \"44'/60'/3'/2/1\",\n message,\n });\n\n // THEN\n const states: DeviceActionState<\n SignMessageDAOutput,\n SignMessageDAError,\n SignMessageDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["DeviceActionStatus", "SendCommandInAppDeviceAction", "UserInteractionRequired", "from", "BtcAppBinder", "GetExtendedPublicKeyCommand", "mockedDmk", "binder", "subscription", "done", "extendedPublicKey", "appBinder", "observable", "states", "state", "err", "baseParams", "params", "signature", "message"]
4
+ "sourcesContent": ["import {\n type DeviceActionState,\n DeviceActionStatus,\n type DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { from, type Subscription } from \"rxjs\";\n\nimport {\n type GetExtendedDAIntermediateValue,\n type GetExtendedPublicKeyDAError,\n type GetExtendedPublicKeyDAOutput,\n} from \"@api/app-binder/GetExtendedPublicKeyDeviceActionTypes\";\nimport {\n type SignMessageDAError,\n type SignMessageDAIntermediateValue,\n type SignMessageDAOutput,\n} from \"@api/index\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { GetExtendedPublicKeyCommand } from \"@internal/app-binder/command/GetExtendedPublicKeyCommand\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\ndescribe(\"BtcAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: vi.fn(),\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should be defined\", () => {\n const binder = new BtcAppBinder(\n {} as DeviceManagementKit,\n {} as DeviceSessionId,\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n expect(binder).toBeDefined();\n });\n\n describe(\"getExtendedPublicKey\", () => {\n let subscription: Subscription;\n afterEach(() => {\n if (subscription) {\n subscription.unsubscribe();\n }\n });\n it(\"should return the pub key\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const extendedPublicKey =\n \"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: { extendedPublicKey },\n } as DeviceActionState<\n GetExtendedPublicKeyDAOutput,\n GetExtendedPublicKeyDAError,\n GetExtendedDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new BtcAppBinder(\n mockedDmk,\n \"sessionId\",\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n const { observable } = appBinder.getExtendedPublicKey({\n derivationPath: \"44'/501'\",\n checkOnDevice: false,\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n GetExtendedPublicKeyDAOutput,\n GetExtendedPublicKeyDAError,\n GetExtendedDAIntermediateValue\n >[] = [];\n subscription = observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: { extendedPublicKey },\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n skipOpenApp: false,\n };\n\n it(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new BtcAppBinder(\n mockedDmk,\n \"sessionId\",\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n appBinder.getExtendedPublicKey(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetExtendedPublicKeyCommand(params),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n }),\n });\n });\n\n it(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new BtcAppBinder(\n mockedDmk,\n \"sessionId\",\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n appBinder.getExtendedPublicKey(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetExtendedPublicKeyCommand(params),\n appName: \"Bitcoin\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEF1`,\n s: `0xAFAF`,\n v: 0,\n };\n const message = \"Hello, World!\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignMessageDAOutput,\n SignMessageDAError,\n SignMessageDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new BtcAppBinder(\n mockedDmk,\n \"sessionId\",\n {} as WalletBuilder,\n {} as WalletSerializer,\n {} as DataStoreService,\n {} as PsbtMapper,\n {} as ValueParser,\n );\n const { observable } = appBinder.signMessage({\n derivationPath: \"44'/60'/3'/2/1\",\n message,\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n SignMessageDAOutput,\n SignMessageDAError,\n SignMessageDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["DeviceActionStatus", "SendCommandInAppDeviceAction", "UserInteractionRequired", "from", "BtcAppBinder", "GetExtendedPublicKeyCommand", "mockedDmk", "binder", "subscription", "resolve", "reject", "extendedPublicKey", "appBinder", "observable", "states", "state", "err", "baseParams", "params", "signature", "message"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduResponse as s,CommandResultFactory as a,isSuccessCommandResult as n}from"@ledgerhq/device-management-kit";import{InvalidStatusWordError as i}from"@ledgerhq/device-management-kit";import{GetMasterFingerprintCommand as p}from"./GetMasterFingerprintCommand";const c=new Uint8Array([225,5,0,0,0]),o=new Uint8Array([130,141,194,243]);describe("GetMasterFingerprintCommand",()=>{let t;beforeEach(()=>{t=new p}),describe("getApdu",()=>{it("returns the correct APDU",()=>{const e=t.getApdu();expect(e.getRawApdu()).toEqual(c)})}),describe("parseResponse",()=>{it("should return the master fingerprint",()=>{const e=new s({data:o,statusCode:new Uint8Array([144,0])}),r=t.parseResponse(e);expect(r).toEqual(a({data:{masterFingerprint:Uint8Array.from([130,141,194,243])}}))}),it("should return an error if the response is not successful",()=>{const e=new s({statusCode:Uint8Array.from([109,0]),data:new Uint8Array(0)}),r=t.parseResponse(e);expect(n(r)).toBe(!1)}),it("should return an error if the response is too short",()=>{const e=new s({data:o.slice(0,2),statusCode:new Uint8Array([144,0])}),r=t.parseResponse(e);n(r)?fail("Expected an error, but the result was successful"):expect(r.error).toEqual(new i("Master fingerprint is missing"))})})});
1
+ import{ApduResponse as s,CommandResultFactory as a,isSuccessCommandResult as n}from"@ledgerhq/device-management-kit";import{InvalidStatusWordError as i}from"@ledgerhq/device-management-kit";import{GetMasterFingerprintCommand as p}from"./GetMasterFingerprintCommand";const c=new Uint8Array([225,5,0,0,0]),o=new Uint8Array([130,141,194,243]);describe("GetMasterFingerprintCommand",()=>{let t;beforeEach(()=>{t=new p}),describe("getApdu",()=>{it("returns the correct APDU",()=>{const e=t.getApdu();expect(e.getRawApdu()).toEqual(c)})}),describe("parseResponse",()=>{it("should return the master fingerprint",()=>{const e=new s({data:o,statusCode:new Uint8Array([144,0])}),r=t.parseResponse(e);expect(r).toEqual(a({data:{masterFingerprint:Uint8Array.from([130,141,194,243])}}))}),it("should return an error if the response is not successful",()=>{const e=new s({statusCode:Uint8Array.from([109,0]),data:new Uint8Array(0)}),r=t.parseResponse(e);expect(n(r)).toBe(!1)}),it("should return an error if the response is too short",()=>{const e=new s({data:o.slice(0,2),statusCode:new Uint8Array([144,0])}),r=t.parseResponse(e);n(r)?assert.fail("Expected an error, but the result was successful"):expect(r.error).toEqual(new i("Master fingerprint is missing"))})})});
2
2
  //# sourceMappingURL=GetMasterFingerprintCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetMasterFingerprintCommand.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { InvalidStatusWordError } from \"@ledgerhq/device-management-kit\";\n\nimport { GetMasterFingerprintCommand } from \"./GetMasterFingerprintCommand\";\n\nconst GET_MASTER_FINGERPRINT_APDU = new Uint8Array([\n 0xe1, 0x05, 0x00, 0x00, 0x00,\n]);\n\nconst GET_MASTER_FINGERPRINT_RESPONSE = new Uint8Array([\n 0x82, 0x8d, 0xc2, 0xf3,\n]);\n\ndescribe(\"GetMasterFingerprintCommand\", () => {\n let command: GetMasterFingerprintCommand;\n\n beforeEach(() => {\n command = new GetMasterFingerprintCommand();\n });\n\n describe(\"getApdu\", () => {\n it(\"returns the correct APDU\", () => {\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toEqual(GET_MASTER_FINGERPRINT_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the master fingerprint\", () => {\n // GIVEN\n const response = new ApduResponse({\n data: GET_MASTER_FINGERPRINT_RESPONSE,\n statusCode: new Uint8Array([0x90, 0x00]),\n });\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n expect(result).toEqual(\n CommandResultFactory({\n data: {\n masterFingerprint: Uint8Array.from([0x82, 0x8d, 0xc2, 0xf3]),\n },\n }),\n );\n });\n\n it(\"should return an error if the response is not successful\", () => {\n // GIVEN\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6d, 0x00]),\n data: new Uint8Array(0),\n });\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return an error if the response is too short\", () => {\n // GIVEN\n const response = new ApduResponse({\n data: GET_MASTER_FINGERPRINT_RESPONSE.slice(0, 2),\n statusCode: new Uint8Array([0x90, 0x00]),\n });\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toEqual(\n new InvalidStatusWordError(\"Master fingerprint is missing\"),\n );\n } else {\n fail(\"Expected an error, but the result was successful\");\n }\n });\n });\n});\n"],
5
- "mappings": "AAAA,OACE,gBAAAA,EACA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,0BAAAC,MAA8B,kCAEvC,OAAS,+BAAAC,MAAmC,gCAE5C,MAAMC,EAA8B,IAAI,WAAW,CACjD,IAAM,EAAM,EAAM,EAAM,CAC1B,CAAC,EAEKC,EAAkC,IAAI,WAAW,CACrD,IAAM,IAAM,IAAM,GACpB,CAAC,EAED,SAAS,8BAA+B,IAAM,CAC5C,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAIH,CAChB,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,2BAA4B,IAAM,CAEnC,MAAMI,EAAOD,EAAQ,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,QAAQH,CAA2B,CAC/D,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,uCAAwC,IAAM,CAE/C,MAAMI,EAAW,IAAIT,EAAa,CAChC,KAAMM,EACN,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,CACzC,CAAC,EAGKI,EAASH,EAAQ,cAAcE,CAAQ,EAG7C,OAAOC,CAAM,EAAE,QACbT,EAAqB,CACnB,KAAM,CACJ,kBAAmB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,CAC7D,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,2DAA4D,IAAM,CAEnE,MAAMQ,EAAW,IAAIT,EAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CACxB,CAAC,EAGKU,EAASH,EAAQ,cAAcE,CAAQ,EAG7C,OAAOP,EAAuBQ,CAAM,CAAC,EAAE,KAAK,EAAK,CACnD,CAAC,EAED,GAAG,sDAAuD,IAAM,CAE9D,MAAMD,EAAW,IAAIT,EAAa,CAChC,KAAMM,EAAgC,MAAM,EAAG,CAAC,EAChD,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,CACzC,CAAC,EAGKI,EAASH,EAAQ,cAAcE,CAAQ,EAGxCP,EAAuBQ,CAAM,EAKhC,KAAK,kDAAkD,EAJvD,OAAOA,EAAO,KAAK,EAAE,QACnB,IAAIP,EAAuB,+BAA+B,CAC5D,CAIJ,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { InvalidStatusWordError } from \"@ledgerhq/device-management-kit\";\n\nimport { GetMasterFingerprintCommand } from \"./GetMasterFingerprintCommand\";\n\nconst GET_MASTER_FINGERPRINT_APDU = new Uint8Array([\n 0xe1, 0x05, 0x00, 0x00, 0x00,\n]);\n\nconst GET_MASTER_FINGERPRINT_RESPONSE = new Uint8Array([\n 0x82, 0x8d, 0xc2, 0xf3,\n]);\n\ndescribe(\"GetMasterFingerprintCommand\", () => {\n let command: GetMasterFingerprintCommand;\n\n beforeEach(() => {\n command = new GetMasterFingerprintCommand();\n });\n\n describe(\"getApdu\", () => {\n it(\"returns the correct APDU\", () => {\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toEqual(GET_MASTER_FINGERPRINT_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the master fingerprint\", () => {\n // GIVEN\n const response = new ApduResponse({\n data: GET_MASTER_FINGERPRINT_RESPONSE,\n statusCode: new Uint8Array([0x90, 0x00]),\n });\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n expect(result).toEqual(\n CommandResultFactory({\n data: {\n masterFingerprint: Uint8Array.from([0x82, 0x8d, 0xc2, 0xf3]),\n },\n }),\n );\n });\n\n it(\"should return an error if the response is not successful\", () => {\n // GIVEN\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6d, 0x00]),\n data: new Uint8Array(0),\n });\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return an error if the response is too short\", () => {\n // GIVEN\n const response = new ApduResponse({\n data: GET_MASTER_FINGERPRINT_RESPONSE.slice(0, 2),\n statusCode: new Uint8Array([0x90, 0x00]),\n });\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toEqual(\n new InvalidStatusWordError(\"Master fingerprint is missing\"),\n );\n } else {\n assert.fail(\"Expected an error, but the result was successful\");\n }\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OACE,gBAAAA,EACA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,0BAAAC,MAA8B,kCAEvC,OAAS,+BAAAC,MAAmC,gCAE5C,MAAMC,EAA8B,IAAI,WAAW,CACjD,IAAM,EAAM,EAAM,EAAM,CAC1B,CAAC,EAEKC,EAAkC,IAAI,WAAW,CACrD,IAAM,IAAM,IAAM,GACpB,CAAC,EAED,SAAS,8BAA+B,IAAM,CAC5C,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAIH,CAChB,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,2BAA4B,IAAM,CAEnC,MAAMI,EAAOD,EAAQ,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,QAAQH,CAA2B,CAC/D,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,uCAAwC,IAAM,CAE/C,MAAMI,EAAW,IAAIT,EAAa,CAChC,KAAMM,EACN,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,CACzC,CAAC,EAGKI,EAASH,EAAQ,cAAcE,CAAQ,EAG7C,OAAOC,CAAM,EAAE,QACbT,EAAqB,CACnB,KAAM,CACJ,kBAAmB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,CAC7D,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,2DAA4D,IAAM,CAEnE,MAAMQ,EAAW,IAAIT,EAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CACxB,CAAC,EAGKU,EAASH,EAAQ,cAAcE,CAAQ,EAG7C,OAAOP,EAAuBQ,CAAM,CAAC,EAAE,KAAK,EAAK,CACnD,CAAC,EAED,GAAG,sDAAuD,IAAM,CAE9D,MAAMD,EAAW,IAAIT,EAAa,CAChC,KAAMM,EAAgC,MAAM,EAAG,CAAC,EAChD,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,CACzC,CAAC,EAGKI,EAASH,EAAQ,cAAcE,CAAQ,EAGxCP,EAAuBQ,CAAM,EAKhC,OAAO,KAAK,kDAAkD,EAJ9D,OAAOA,EAAO,KAAK,EAAE,QACnB,IAAIP,EAAuB,+BAA+B,CAC5D,CAIJ,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["ApduResponse", "CommandResultFactory", "isSuccessCommandResult", "InvalidStatusWordError", "GetMasterFingerprintCommand", "GET_MASTER_FINGERPRINT_APDU", "GET_MASTER_FINGERPRINT_RESPONSE", "command", "apdu", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduResponse as o,CommandResultFactory as n,isSuccessCommandResult as d}from"@ledgerhq/device-management-kit";import{SW_INTERRUPTED_EXECUTION as A}from"./utils/constants";import{GetWalletAddressCommand as c}from"./GetWalletAddressCommand";const u=new Uint8Array([144,0]),p=new Uint8Array([105,133]);describe("GetWalletAddressCommand",()=>{let s;const l={checkOnDevice:!0,walletId:Uint8Array.from("walletIdBuffer",e=>e.charCodeAt(0)),walletHmac:Uint8Array.from("walletHmacBuffer",e=>e.charCodeAt(0)),change:!1,addressIndex:0};beforeEach(()=>{s=new c(l),jest.clearAllMocks(),jest.requireActual("@ledgerhq/device-management-kit")}),describe("getApdu",()=>{it("should return correct APDU for default arguments",()=>{const e=s.getApdu(),t=Uint8Array.from([225,3,0,1,36,1,...Uint8Array.from("walletIdBuffer",r=>r.charCodeAt(0)),...Uint8Array.from("walletHmacBuffer",r=>r.charCodeAt(0)),0,0,0,0,0]);expect(e.getRawApdu()).toEqual(t)}),it("should return correct APDU for different arguments",()=>{const e={checkOnDevice:!1,walletId:Uint8Array.from("anotherWalletId",a=>a.charCodeAt(0)),walletHmac:Uint8Array.from("anotherWalletHmac",a=>a.charCodeAt(0)),change:!0,addressIndex:5};s=new c(e);const t=s.getApdu(),r=Uint8Array.from([225,3,0,1,38,0,...Uint8Array.from("anotherWalletId",a=>a.charCodeAt(0)),...Uint8Array.from("anotherWalletHmac",a=>a.charCodeAt(0)),1,0,0,0,5]);expect(t.getRawApdu()).toEqual(r)})}),describe("parseResponse",()=>{it("should return the APDU response if it's a continue response",()=>{const e=new Uint8Array([1,2,3,4]),t=new o({statusCode:A,data:e}),r=s.parseResponse(t);expect(r).toStrictEqual(n({data:t}))}),it("should return an error if user denied the operation",()=>{const e=new o({statusCode:p,data:new Uint8Array([])}),t=s.parseResponse(e);expect(d(t)).toBe(!1),d(t)||expect(t.error).toBeDefined()}),it("should return correct data when response is not empty",()=>{const e=Uint8Array.from("addressData",a=>a.charCodeAt(0)),t=new o({statusCode:u,data:e}),r=s.parseResponse(t);expect(r).toStrictEqual(n({data:t}))})})});
1
+ import{ApduResponse as o,CommandResultFactory as n,isSuccessCommandResult as d}from"@ledgerhq/device-management-kit";import{SW_INTERRUPTED_EXECUTION as A}from"./utils/constants";import{GetWalletAddressCommand as c}from"./GetWalletAddressCommand";const p=new Uint8Array([144,0]),i=new Uint8Array([105,133]);describe("GetWalletAddressCommand",()=>{let s;const l={checkOnDevice:!0,walletId:Uint8Array.from("walletIdBuffer",e=>e.charCodeAt(0)),walletHmac:Uint8Array.from("walletHmacBuffer",e=>e.charCodeAt(0)),change:!1,addressIndex:0};beforeEach(()=>{s=new c(l),vi.clearAllMocks(),vi.importActual("@ledgerhq/device-management-kit")}),describe("getApdu",()=>{it("should return correct APDU for default arguments",()=>{const e=s.getApdu(),t=Uint8Array.from([225,3,0,1,36,1,...Uint8Array.from("walletIdBuffer",r=>r.charCodeAt(0)),...Uint8Array.from("walletHmacBuffer",r=>r.charCodeAt(0)),0,0,0,0,0]);expect(e.getRawApdu()).toEqual(t)}),it("should return correct APDU for different arguments",()=>{const e={checkOnDevice:!1,walletId:Uint8Array.from("anotherWalletId",a=>a.charCodeAt(0)),walletHmac:Uint8Array.from("anotherWalletHmac",a=>a.charCodeAt(0)),change:!0,addressIndex:5};s=new c(e);const t=s.getApdu(),r=Uint8Array.from([225,3,0,1,38,0,...Uint8Array.from("anotherWalletId",a=>a.charCodeAt(0)),...Uint8Array.from("anotherWalletHmac",a=>a.charCodeAt(0)),1,0,0,0,5]);expect(t.getRawApdu()).toEqual(r)})}),describe("parseResponse",()=>{it("should return the APDU response if it's a continue response",()=>{const e=new Uint8Array([1,2,3,4]),t=new o({statusCode:A,data:e}),r=s.parseResponse(t);expect(r).toStrictEqual(n({data:t}))}),it("should return an error if user denied the operation",()=>{const e=new o({statusCode:i,data:new Uint8Array([])}),t=s.parseResponse(e);expect(d(t)).toBe(!1),d(t)||expect(t.error).toBeDefined()}),it("should return correct data when response is not empty",()=>{const e=Uint8Array.from("addressData",a=>a.charCodeAt(0)),t=new o({statusCode:p,data:e}),r=s.parseResponse(t);expect(r).toStrictEqual(n({data:t}))})})});
2
2
  //# sourceMappingURL=GetWalletAddressCommand.test.js.map