@ledgerhq/device-signer-kit-bitcoin 1.0.0 → 1.0.2

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 (418) hide show
  1. package/lib/cjs/api/SignerBtc.js +1 -1
  2. package/lib/cjs/api/SignerBtc.js.map +1 -1
  3. package/lib/cjs/api/{SignerBtcBuiilder.test.js → SignerBtcBuilder.test.js} +1 -1
  4. package/lib/cjs/api/{SignerBtcBuiilder.test.js.map → SignerBtcBuilder.test.js.map} +1 -1
  5. package/lib/cjs/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.js +1 -1
  6. package/lib/cjs/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.js.map +1 -1
  7. package/lib/cjs/api/app-binder/GetWalletAddressDeviceActionTypes.js.map +1 -1
  8. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js +1 -1
  9. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js.map +1 -1
  10. package/lib/cjs/api/app-binder/SignPsbtDeviceActionTypes.js +1 -1
  11. package/lib/cjs/api/app-binder/SignPsbtDeviceActionTypes.js.map +1 -1
  12. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  13. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +1 -1
  14. package/lib/cjs/api/model/AddressOptions.js +1 -1
  15. package/lib/cjs/api/model/AddressOptions.js.map +1 -1
  16. package/lib/cjs/api/model/MessageOptions.js +2 -0
  17. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  18. package/lib/cjs/api/model/PsbtOptions.js +2 -0
  19. package/lib/cjs/api/model/PsbtOptions.js.map +7 -0
  20. package/lib/cjs/api/model/WalletAddressOptions.js +1 -1
  21. package/lib/cjs/api/model/WalletAddressOptions.js.map +1 -1
  22. package/lib/cjs/index.js.map +1 -1
  23. package/lib/cjs/internal/DefaultSignerBtc.js +1 -1
  24. package/lib/cjs/internal/DefaultSignerBtc.js.map +3 -3
  25. package/lib/cjs/internal/DefaultSignerBtc.test.js +1 -1
  26. package/lib/cjs/internal/DefaultSignerBtc.test.js.map +2 -2
  27. package/lib/cjs/internal/app-binder/BtcAppBinder.js +1 -1
  28. package/lib/cjs/internal/app-binder/BtcAppBinder.js.map +3 -3
  29. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js +1 -1
  30. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  31. package/lib/cjs/internal/app-binder/command/ContinueCommand.js +1 -1
  32. package/lib/cjs/internal/app-binder/command/ContinueCommand.js.map +2 -2
  33. package/lib/cjs/internal/app-binder/command/ContinueCommand.test.js +1 -1
  34. package/lib/cjs/internal/app-binder/command/ContinueCommand.test.js.map +3 -3
  35. package/lib/cjs/internal/app-binder/command/GetExtendedPublicKeyCommand.js +1 -1
  36. package/lib/cjs/internal/app-binder/command/GetExtendedPublicKeyCommand.js.map +2 -2
  37. package/lib/cjs/internal/app-binder/command/GetExtendedPublicKeyCommand.test.js +1 -1
  38. package/lib/cjs/internal/app-binder/command/GetExtendedPublicKeyCommand.test.js.map +2 -2
  39. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.js +1 -1
  40. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.js.map +2 -2
  41. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  42. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
  43. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.js +1 -1
  44. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.js.map +2 -2
  45. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
  46. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
  47. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.js +1 -1
  48. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.js.map +2 -2
  49. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  50. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  51. package/lib/cjs/internal/app-binder/command/SignMessageCommand.js +1 -1
  52. package/lib/cjs/internal/app-binder/command/SignMessageCommand.js.map +2 -2
  53. package/lib/cjs/internal/app-binder/command/SignMessageCommand.test.js +1 -1
  54. package/lib/cjs/internal/app-binder/command/SignMessageCommand.test.js.map +3 -3
  55. package/lib/cjs/internal/app-binder/command/SignPsbtCommand.js +1 -1
  56. package/lib/cjs/internal/app-binder/command/SignPsbtCommand.js.map +2 -2
  57. package/lib/cjs/internal/app-binder/command/SignPsbtCommand.test.js +1 -1
  58. package/lib/cjs/internal/app-binder/command/SignPsbtCommand.test.js.map +2 -2
  59. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
  60. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
  61. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
  62. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
  63. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
  64. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
  65. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
  66. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
  67. package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
  68. package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
  69. package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
  70. package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
  71. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
  72. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +2 -2
  73. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
  74. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
  75. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
  76. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +2 -2
  77. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
  78. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js.map +3 -3
  79. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  80. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  81. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  82. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  83. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  84. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  85. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
  86. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
  87. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  88. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  89. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  90. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  91. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js +1 -1
  92. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  93. package/lib/cjs/internal/app-binder/di/appBinderTypes.js +1 -1
  94. package/lib/cjs/internal/app-binder/di/appBinderTypes.js.map +2 -2
  95. package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
  96. package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
  97. package/lib/cjs/internal/app-binder/task/ContinueTask.test.js +1 -1
  98. package/lib/cjs/internal/app-binder/task/ContinueTask.test.js.map +2 -2
  99. package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
  100. package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
  101. package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
  102. package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
  103. package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js +1 -1
  104. package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
  105. package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js +1 -1
  106. package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
  107. package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
  108. package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
  109. package/lib/cjs/internal/data-store/di/dataStoreModule.js +1 -1
  110. package/lib/cjs/internal/data-store/di/dataStoreModule.js.map +3 -3
  111. package/lib/cjs/internal/data-store/di/dataStoreModule.test.js +1 -1
  112. package/lib/cjs/internal/data-store/di/dataStoreModule.test.js.map +2 -2
  113. package/lib/cjs/internal/data-store/model/DataStore.test.js +1 -1
  114. package/lib/cjs/internal/data-store/model/DataStore.test.js.map +2 -2
  115. package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
  116. package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
  117. package/lib/cjs/internal/di.js +1 -1
  118. package/lib/cjs/internal/di.js.map +2 -2
  119. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.js +1 -1
  120. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.js.map +3 -3
  121. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.test.js +1 -1
  122. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.test.js.map +2 -2
  123. package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
  124. package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
  125. package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
  126. package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
  127. package/lib/cjs/internal/psbt/di/psbtModule.js +1 -1
  128. package/lib/cjs/internal/psbt/di/psbtModule.js.map +3 -3
  129. package/lib/cjs/internal/psbt/di/psbtModule.test.js +1 -1
  130. package/lib/cjs/internal/psbt/di/psbtModule.test.js.map +2 -2
  131. package/lib/cjs/internal/psbt/model/Key.js +1 -1
  132. package/lib/cjs/internal/psbt/model/Key.js.map +2 -2
  133. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  134. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  135. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtSerializer.js +1 -1
  136. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtSerializer.js.map +2 -2
  137. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js +1 -1
  138. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js.map +2 -2
  139. package/lib/cjs/internal/use-cases/di/useCasesModule.js +1 -1
  140. package/lib/cjs/internal/use-cases/di/useCasesModule.js.map +3 -3
  141. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js +1 -1
  142. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  143. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js +1 -1
  144. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js.map +2 -2
  145. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
  146. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
  147. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js +1 -1
  148. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js.map +3 -3
  149. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
  150. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +3 -3
  151. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.js +1 -1
  152. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.js.map +3 -3
  153. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
  154. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
  155. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.js +1 -1
  156. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.js.map +3 -3
  157. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
  158. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +3 -3
  159. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.js +1 -1
  160. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.js.map +3 -3
  161. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
  162. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +3 -3
  163. package/lib/cjs/internal/wallet/di/walletModule.js +1 -1
  164. package/lib/cjs/internal/wallet/di/walletModule.js.map +3 -3
  165. package/lib/cjs/internal/wallet/di/walletModule.test.js +1 -1
  166. package/lib/cjs/internal/wallet/di/walletModule.test.js.map +2 -2
  167. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js +1 -1
  168. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js.map +2 -2
  169. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  170. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
  171. package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
  172. package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
  173. package/lib/cjs/package.json +17 -17
  174. package/lib/esm/api/{SignerBtcBuiilder.test.js → SignerBtcBuilder.test.js} +1 -1
  175. package/lib/esm/api/{SignerBtcBuiilder.test.js.map → SignerBtcBuilder.test.js.map} +1 -1
  176. package/lib/esm/api/model/MessageOptions.js +1 -0
  177. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  178. package/lib/esm/api/model/PsbtOptions.js +1 -0
  179. package/lib/esm/api/model/PsbtOptions.js.map +7 -0
  180. package/lib/esm/internal/DefaultSignerBtc.js +1 -1
  181. package/lib/esm/internal/DefaultSignerBtc.js.map +3 -3
  182. package/lib/esm/internal/DefaultSignerBtc.test.js +1 -1
  183. package/lib/esm/internal/DefaultSignerBtc.test.js.map +2 -2
  184. package/lib/esm/internal/app-binder/BtcAppBinder.js +1 -1
  185. package/lib/esm/internal/app-binder/BtcAppBinder.js.map +3 -3
  186. package/lib/esm/internal/app-binder/BtcAppBinder.test.js +1 -1
  187. package/lib/esm/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  188. package/lib/esm/internal/app-binder/command/ContinueCommand.js +1 -1
  189. package/lib/esm/internal/app-binder/command/ContinueCommand.js.map +2 -2
  190. package/lib/esm/internal/app-binder/command/ContinueCommand.test.js +1 -1
  191. package/lib/esm/internal/app-binder/command/ContinueCommand.test.js.map +3 -3
  192. package/lib/esm/internal/app-binder/command/GetExtendedPublicKeyCommand.js +1 -1
  193. package/lib/esm/internal/app-binder/command/GetExtendedPublicKeyCommand.js.map +2 -2
  194. package/lib/esm/internal/app-binder/command/GetExtendedPublicKeyCommand.test.js +1 -1
  195. package/lib/esm/internal/app-binder/command/GetExtendedPublicKeyCommand.test.js.map +2 -2
  196. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.js +1 -1
  197. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.js.map +2 -2
  198. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  199. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
  200. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.js +1 -1
  201. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.js.map +2 -2
  202. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
  203. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
  204. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.js +1 -1
  205. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.js.map +2 -2
  206. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  207. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  208. package/lib/esm/internal/app-binder/command/SignMessageCommand.js +1 -1
  209. package/lib/esm/internal/app-binder/command/SignMessageCommand.js.map +2 -2
  210. package/lib/esm/internal/app-binder/command/SignMessageCommand.test.js +1 -1
  211. package/lib/esm/internal/app-binder/command/SignMessageCommand.test.js.map +3 -3
  212. package/lib/esm/internal/app-binder/command/SignPsbtCommand.js +1 -1
  213. package/lib/esm/internal/app-binder/command/SignPsbtCommand.js.map +2 -2
  214. package/lib/esm/internal/app-binder/command/SignPsbtCommand.test.js +1 -1
  215. package/lib/esm/internal/app-binder/command/SignPsbtCommand.test.js.map +2 -2
  216. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
  217. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
  218. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
  219. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
  220. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
  221. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
  222. package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
  223. package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
  224. package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
  225. package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
  226. package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
  227. package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
  228. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
  229. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +2 -2
  230. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
  231. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
  232. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
  233. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +2 -2
  234. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
  235. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js.map +3 -3
  236. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  237. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  238. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  239. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  240. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  241. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  242. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
  243. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
  244. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  245. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  246. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  247. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  248. package/lib/esm/internal/app-binder/di/appBinderModule.test.js +1 -1
  249. package/lib/esm/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  250. package/lib/esm/internal/app-binder/di/appBinderTypes.js +1 -1
  251. package/lib/esm/internal/app-binder/di/appBinderTypes.js.map +2 -2
  252. package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
  253. package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
  254. package/lib/esm/internal/app-binder/task/ContinueTask.test.js +1 -1
  255. package/lib/esm/internal/app-binder/task/ContinueTask.test.js.map +2 -2
  256. package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
  257. package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
  258. package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
  259. package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
  260. package/lib/esm/internal/app-binder/task/SignMessageTask.test.js +1 -1
  261. package/lib/esm/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
  262. package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js +1 -1
  263. package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
  264. package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
  265. package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
  266. package/lib/esm/internal/data-store/di/dataStoreModule.js +1 -1
  267. package/lib/esm/internal/data-store/di/dataStoreModule.js.map +3 -3
  268. package/lib/esm/internal/data-store/di/dataStoreModule.test.js +1 -1
  269. package/lib/esm/internal/data-store/di/dataStoreModule.test.js.map +2 -2
  270. package/lib/esm/internal/data-store/model/DataStore.test.js +1 -1
  271. package/lib/esm/internal/data-store/model/DataStore.test.js.map +2 -2
  272. package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
  273. package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
  274. package/lib/esm/internal/di.js +1 -1
  275. package/lib/esm/internal/di.js.map +2 -2
  276. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.js +1 -1
  277. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.js.map +3 -3
  278. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.test.js +1 -1
  279. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.test.js.map +2 -2
  280. package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
  281. package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
  282. package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
  283. package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
  284. package/lib/esm/internal/psbt/di/psbtModule.js +1 -1
  285. package/lib/esm/internal/psbt/di/psbtModule.js.map +3 -3
  286. package/lib/esm/internal/psbt/di/psbtModule.test.js +1 -1
  287. package/lib/esm/internal/psbt/di/psbtModule.test.js.map +2 -2
  288. package/lib/esm/internal/psbt/model/Key.js +1 -1
  289. package/lib/esm/internal/psbt/model/Key.js.map +2 -2
  290. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  291. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  292. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtSerializer.js +1 -1
  293. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtSerializer.js.map +2 -2
  294. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js +1 -1
  295. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js.map +2 -2
  296. package/lib/esm/internal/use-cases/di/useCasesModule.js +1 -1
  297. package/lib/esm/internal/use-cases/di/useCasesModule.js.map +3 -3
  298. package/lib/esm/internal/use-cases/di/useCasesModule.test.js +1 -1
  299. package/lib/esm/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  300. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js +1 -1
  301. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js.map +2 -2
  302. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
  303. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
  304. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js +1 -1
  305. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js.map +3 -3
  306. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
  307. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +3 -3
  308. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.js +1 -1
  309. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.js.map +3 -3
  310. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
  311. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
  312. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.js +1 -1
  313. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.js.map +3 -3
  314. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
  315. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +3 -3
  316. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.js +1 -1
  317. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.js.map +3 -3
  318. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
  319. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +3 -3
  320. package/lib/esm/internal/wallet/di/walletModule.js +1 -1
  321. package/lib/esm/internal/wallet/di/walletModule.js.map +3 -3
  322. package/lib/esm/internal/wallet/di/walletModule.test.js +1 -1
  323. package/lib/esm/internal/wallet/di/walletModule.test.js.map +2 -2
  324. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js +1 -1
  325. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js.map +2 -2
  326. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  327. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
  328. package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
  329. package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
  330. package/lib/esm/package.json +17 -17
  331. package/lib/types/api/SignerBtc.d.ts +7 -5
  332. package/lib/types/api/SignerBtc.d.ts.map +1 -1
  333. package/lib/types/api/SignerBtcBuilder.test.d.ts +2 -0
  334. package/lib/types/api/SignerBtcBuilder.test.d.ts.map +1 -0
  335. package/lib/types/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.d.ts +3 -1
  336. package/lib/types/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.d.ts.map +1 -1
  337. package/lib/types/api/app-binder/GetWalletAddressDeviceActionTypes.d.ts +1 -0
  338. package/lib/types/api/app-binder/GetWalletAddressDeviceActionTypes.d.ts.map +1 -1
  339. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts +1 -12
  340. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts.map +1 -1
  341. package/lib/types/api/app-binder/SignPsbtDeviceActionTypes.d.ts +1 -0
  342. package/lib/types/api/app-binder/SignPsbtDeviceActionTypes.d.ts.map +1 -1
  343. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +1 -0
  344. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  345. package/lib/types/api/model/AddressOptions.d.ts +1 -0
  346. package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
  347. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  348. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  349. package/lib/types/api/model/PsbtOptions.d.ts +4 -0
  350. package/lib/types/api/model/PsbtOptions.d.ts.map +1 -0
  351. package/lib/types/api/model/Signature.d.ts.map +1 -1
  352. package/lib/types/api/model/WalletAddressOptions.d.ts +1 -0
  353. package/lib/types/api/model/WalletAddressOptions.d.ts.map +1 -1
  354. package/lib/types/internal/DefaultSignerBtc.d.ts +7 -5
  355. package/lib/types/internal/DefaultSignerBtc.d.ts.map +1 -1
  356. package/lib/types/internal/app-binder/BtcAppBinder.d.ts +4 -0
  357. package/lib/types/internal/app-binder/BtcAppBinder.d.ts.map +1 -1
  358. package/lib/types/internal/app-binder/command/ContinueCommand.d.ts +1 -0
  359. package/lib/types/internal/app-binder/command/ContinueCommand.d.ts.map +1 -1
  360. package/lib/types/internal/app-binder/command/GetExtendedPublicKeyCommand.d.ts +1 -0
  361. package/lib/types/internal/app-binder/command/GetExtendedPublicKeyCommand.d.ts.map +1 -1
  362. package/lib/types/internal/app-binder/command/GetMasterFingerprintCommand.d.ts +1 -0
  363. package/lib/types/internal/app-binder/command/GetMasterFingerprintCommand.d.ts.map +1 -1
  364. package/lib/types/internal/app-binder/command/GetWalletAddressCommand.d.ts +1 -0
  365. package/lib/types/internal/app-binder/command/GetWalletAddressCommand.d.ts.map +1 -1
  366. package/lib/types/internal/app-binder/command/RegisterWalletAddressCommand.d.ts +1 -0
  367. package/lib/types/internal/app-binder/command/RegisterWalletAddressCommand.d.ts.map +1 -1
  368. package/lib/types/internal/app-binder/command/SignMessageCommand.d.ts +1 -0
  369. package/lib/types/internal/app-binder/command/SignMessageCommand.d.ts.map +1 -1
  370. package/lib/types/internal/app-binder/command/SignPsbtCommand.d.ts +1 -0
  371. package/lib/types/internal/app-binder/command/SignPsbtCommand.d.ts.map +1 -1
  372. package/lib/types/internal/app-binder/command/utils/bitcoinAppErrors.d.ts.map +1 -1
  373. package/lib/types/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.d.ts.map +1 -1
  374. package/lib/types/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.d.ts.map +1 -1
  375. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
  376. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  377. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  378. package/lib/types/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.d.ts.map +1 -1
  379. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
  380. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  381. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  382. package/lib/types/internal/app-binder/di/appBinderTypes.d.ts +0 -1
  383. package/lib/types/internal/app-binder/di/appBinderTypes.d.ts.map +1 -1
  384. package/lib/types/internal/app-binder/task/GetWalletAddressTask.d.ts.map +1 -1
  385. package/lib/types/internal/app-binder/task/SignMessageTask.d.ts.map +1 -1
  386. package/lib/types/internal/app-binder/task/SignPsbtTask.d.ts.map +1 -1
  387. package/lib/types/internal/data-store/di/dataStoreModule.d.ts.map +1 -1
  388. package/lib/types/internal/di.d.ts.map +1 -1
  389. package/lib/types/internal/merkle-tree/di/merkleTreeModule.d.ts.map +1 -1
  390. package/lib/types/internal/psbt/di/psbtModule.d.ts.map +1 -1
  391. package/lib/types/internal/use-cases/di/useCasesModule.d.ts.map +1 -1
  392. package/lib/types/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.d.ts +1 -0
  393. package/lib/types/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.d.ts.map +1 -1
  394. package/lib/types/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.d.ts +1 -1
  395. package/lib/types/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.d.ts.map +1 -1
  396. package/lib/types/internal/use-cases/sign-message/SignMessageUseCase.d.ts +1 -1
  397. package/lib/types/internal/use-cases/sign-message/SignMessageUseCase.d.ts.map +1 -1
  398. package/lib/types/internal/use-cases/sign-psbt/SignPsbtUseCase.d.ts +1 -1
  399. package/lib/types/internal/use-cases/sign-psbt/SignPsbtUseCase.d.ts.map +1 -1
  400. package/lib/types/internal/use-cases/sign-transaction/SignTransactionUseCase.d.ts +1 -1
  401. package/lib/types/internal/use-cases/sign-transaction/SignTransactionUseCase.d.ts.map +1 -1
  402. package/lib/types/internal/wallet/di/walletModule.d.ts.map +1 -1
  403. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  404. package/package.json +18 -18
  405. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
  406. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
  407. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
  408. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
  409. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
  410. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
  411. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
  412. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
  413. package/lib/types/api/SignerBtcBuiilder.test.d.ts +0 -2
  414. package/lib/types/api/SignerBtcBuiilder.test.d.ts.map +0 -1
  415. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts +0 -19
  416. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts.map +0 -1
  417. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts +0 -2
  418. 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/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{ApduBuilder as e,CommandResultFactory as r}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as n}from"@ledgerhq/signer-utils";import{Maybe as t}from"purify-ts";import{BTC_APP_ERRORS as m,BtcAppCommandErrorFactory as p}from"../../app-binder/command/utils/bitcoinAppErrors";import{BtcCommandUtils as a}from"../../utils/BtcCommandUtils";class R{constructor(o,d=new n(m,p,a.isSuccessResponse)){this._args=o;this._errorHelper=d}getApdu(){return new e({cla:248,ins:1,p1:0,p2:0}).addBufferToData(this._args.payload).build()}parseResponse(o){return t.fromNullable(this._errorHelper.getError(o)).orDefault(r({data:o}))}}export{R as ContinueCommand};
1
+ import{ApduBuilder as o,CommandResultFactory as r}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as n}from"@ledgerhq/signer-utils";import{Maybe as t}from"purify-ts";import{BTC_APP_ERRORS as m,BtcAppCommandErrorFactory as p}from"../../app-binder/command/utils/bitcoinAppErrors";import{BtcCommandUtils as a}from"../../utils/BtcCommandUtils";class c{constructor(e,d=new n(m,p,a.isSuccessResponse)){this._args=e;this._errorHelper=d}name="continue";getApdu(){return new o({cla:248,ins:1,p1:0,p2:0}).addBufferToData(this._args.payload).build()}parseResponse(e){return t.fromNullable(this._errorHelper.getError(e)).orDefault(r({data:e}))}}export{c as ContinueCommand};
2
2
  //# sourceMappingURL=ContinueCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/ContinueCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n type BtcErrorCodes,\n} from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { BtcCommandUtils } from \"@internal/utils/BtcCommandUtils\";\n\nexport type ContinueCommandArgs = {\n payload: Uint8Array;\n};\n\nexport type ContinueCommandResponse = ApduResponse;\n\nexport class ContinueCommand\n implements\n Command<ContinueCommandResponse, ContinueCommandArgs, BtcErrorCodes>\n{\n constructor(\n private readonly _args: ContinueCommandArgs,\n private readonly _errorHelper = new CommandErrorHelper<\n ContinueCommandResponse,\n BtcErrorCodes\n >(\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n BtcCommandUtils.isSuccessResponse,\n ),\n ) {}\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xf8,\n ins: 0x01,\n p1: 0x00,\n p2: 0x00,\n })\n .addBufferToData(this._args.payload)\n .build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<ContinueCommandResponse, BtcErrorCodes> {\n return Maybe.fromNullable(this._errorHelper.getError(response)).orDefault(\n CommandResultFactory({\n data: response,\n }),\n );\n }\n}\n"],
5
- "mappings": "AAAA,OAEE,eAAAA,EAIA,wBAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,sDACP,OAAS,mBAAAC,MAAuB,kCAQzB,MAAMC,CAGb,CACE,YACmBC,EACAC,EAAe,IAAIP,EAIlCE,EACAC,EACAC,EAAgB,iBAClB,EACA,CATiB,WAAAE,EACA,kBAAAC,CAQhB,CAEH,SAAgB,CACd,OAAO,IAAIT,EAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EACE,gBAAgB,KAAK,MAAM,OAAO,EAClC,MAAM,CACX,CAEA,cACEU,EACuD,CACvD,OAAOP,EAAM,aAAa,KAAK,aAAa,SAASO,CAAQ,CAAC,EAAE,UAC9DT,EAAqB,CACnB,KAAMS,CACR,CAAC,CACH,CACF,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n type BtcErrorCodes,\n} from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { BtcCommandUtils } from \"@internal/utils/BtcCommandUtils\";\n\nexport type ContinueCommandArgs = {\n payload: Uint8Array;\n};\n\nexport type ContinueCommandResponse = ApduResponse;\n\nexport class ContinueCommand\n implements\n Command<ContinueCommandResponse, ContinueCommandArgs, BtcErrorCodes>\n{\n readonly name = \"continue\";\n constructor(\n private readonly _args: ContinueCommandArgs,\n private readonly _errorHelper = new CommandErrorHelper<\n ContinueCommandResponse,\n BtcErrorCodes\n >(\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n BtcCommandUtils.isSuccessResponse,\n ),\n ) {}\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xf8,\n ins: 0x01,\n p1: 0x00,\n p2: 0x00,\n })\n .addBufferToData(this._args.payload)\n .build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<ContinueCommandResponse, BtcErrorCodes> {\n return Maybe.fromNullable(this._errorHelper.getError(response)).orDefault(\n CommandResultFactory({\n data: response,\n }),\n );\n }\n}\n"],
5
+ "mappings": "AAAA,OAEE,eAAAA,EAIA,wBAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,sDACP,OAAS,mBAAAC,MAAuB,kCAQzB,MAAMC,CAGb,CAEE,YACmBC,EACAC,EAAe,IAAIP,EAIlCE,EACAC,EACAC,EAAgB,iBAClB,EACA,CATiB,WAAAE,EACA,kBAAAC,CAQhB,CAXM,KAAO,WAahB,SAAgB,CACd,OAAO,IAAIT,EAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EACE,gBAAgB,KAAK,MAAM,OAAO,EAClC,MAAM,CACX,CAEA,cACEU,EACuD,CACvD,OAAOP,EAAM,aAAa,KAAK,aAAa,SAASO,CAAQ,CAAC,EAAE,UAC9DT,EAAqB,CACnB,KAAMS,CACR,CAAC,CACH,CACF,CACF",
6
6
  "names": ["ApduBuilder", "CommandResultFactory", "CommandErrorHelper", "Maybe", "BTC_APP_ERRORS", "BtcAppCommandErrorFactory", "BtcCommandUtils", "ContinueCommand", "_args", "_errorHelper", "response"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduResponse as d,CommandResultFactory as c}from"@ledgerhq/device-management-kit";import{SW_INTERRUPTED_EXECUTION as p}from"../../app-binder/command/utils/constants";import{ContinueCommand as s}from"./ContinueCommand";describe("ContinueCommand",()=>{const t={payload:new Uint8Array([222,173,190,239])},a=new Uint8Array([248,1,0,0,4,222,173,190,239]);describe("getApdu",()=>{it("should return correct APDU for given payload",()=>{const e=new s(t).getApdu();expect(e.getRawApdu()).toStrictEqual(a)})}),describe("parseResponse",()=>{it("should return the APDU response if it's a continue response",()=>{const o=new s(t),e=new Uint8Array([1,2,3,4]),n=new d({statusCode:p,data:e}),r=o.parseResponse(n);expect(r).toStrictEqual(c({data:n}))})})});
1
+ import{ApduResponse as d,CommandResultFactory as c}from"@ledgerhq/device-management-kit";import{SW_INTERRUPTED_EXECUTION as i}from"../../app-binder/command/utils/constants";import{ContinueCommand as o}from"./ContinueCommand";describe("ContinueCommand",()=>{const n={payload:new Uint8Array([222,173,190,239])},a=new Uint8Array([248,1,0,0,4,222,173,190,239]);describe("name",()=>{it("should be 'continue'",()=>{const e=new o(n);expect(e.name).toBe("continue")})}),describe("getApdu",()=>{it("should return correct APDU for given payload",()=>{const t=new o(n).getApdu();expect(t.getRawApdu()).toStrictEqual(a)})}),describe("parseResponse",()=>{it("should return the APDU response if it's a continue response",()=>{const e=new o(n),t=new Uint8Array([1,2,3,4]),s=new d({statusCode:i,data:t}),r=e.parseResponse(s);expect(r).toStrictEqual(c({data:s}))})})});
2
2
  //# sourceMappingURL=ContinueCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/ContinueCommand.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { SW_INTERRUPTED_EXECUTION } from \"@internal/app-binder/command/utils/constants\";\n\nimport { ContinueCommand } from \"./ContinueCommand\";\n\ndescribe(\"ContinueCommand\", (): void => {\n const defaultArgs = {\n payload: new Uint8Array([0xde, 0xad, 0xbe, 0xef]),\n };\n\n const EXPECTED_APDU = new Uint8Array([\n 0xf8, // CLA\n 0x01, // INS\n 0x00, // P1\n 0x00, // P2\n 0x04, // Lc\n 0xde,\n 0xad,\n 0xbe,\n 0xef, // Payload data\n ]);\n\n describe(\"getApdu\", () => {\n it(\"should return correct APDU for given payload\", () => {\n // given\n const command = new ContinueCommand(defaultArgs);\n // when\n const apdu = command.getApdu();\n // then\n expect(apdu.getRawApdu()).toStrictEqual(EXPECTED_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the APDU response if it's a continue response\", () => {\n // given\n const command = new ContinueCommand(defaultArgs);\n const continueResponseData = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n const apduResponse = new ApduResponse({\n statusCode: SW_INTERRUPTED_EXECUTION,\n data: continueResponseData,\n });\n\n // when\n const response = command.parseResponse(apduResponse);\n\n // then\n expect(response).toStrictEqual(\n CommandResultFactory({\n data: apduResponse,\n }),\n );\n });\n });\n});\n"],
5
- "mappings": "AAAA,OACE,gBAAAA,EACA,wBAAAC,MACK,kCAEP,OAAS,4BAAAC,MAAgC,+CAEzC,OAAS,mBAAAC,MAAuB,oBAEhC,SAAS,kBAAmB,IAAY,CACtC,MAAMC,EAAc,CAClB,QAAS,IAAI,WAAW,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,CAClD,EAEMC,EAAgB,IAAI,WAAW,CACnC,IACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACF,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,+CAAgD,IAAM,CAIvD,MAAMC,EAFU,IAAIH,EAAgBC,CAAW,EAE1B,QAAQ,EAE7B,OAAOE,EAAK,WAAW,CAAC,EAAE,cAAcD,CAAa,CACvD,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,8DAA+D,IAAM,CAEtE,MAAME,EAAU,IAAIJ,EAAgBC,CAAW,EACzCI,EAAuB,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EAC9DC,EAAe,IAAIT,EAAa,CACpC,WAAYE,EACZ,KAAMM,CACR,CAAC,EAGKE,EAAWH,EAAQ,cAAcE,CAAY,EAGnD,OAAOC,CAAQ,EAAE,cACfT,EAAqB,CACnB,KAAMQ,CACR,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["ApduResponse", "CommandResultFactory", "SW_INTERRUPTED_EXECUTION", "ContinueCommand", "defaultArgs", "EXPECTED_APDU", "apdu", "command", "continueResponseData", "apduResponse", "response"]
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { SW_INTERRUPTED_EXECUTION } from \"@internal/app-binder/command/utils/constants\";\n\nimport { ContinueCommand } from \"./ContinueCommand\";\n\ndescribe(\"ContinueCommand\", (): void => {\n const defaultArgs = {\n payload: new Uint8Array([0xde, 0xad, 0xbe, 0xef]),\n };\n\n const EXPECTED_APDU = new Uint8Array([\n 0xf8, // CLA\n 0x01, // INS\n 0x00, // P1\n 0x00, // P2\n 0x04, // Lc\n 0xde,\n 0xad,\n 0xbe,\n 0xef, // Payload data\n ]);\n\n describe(\"name\", () => {\n it(\"should be 'continue'\", () => {\n const command = new ContinueCommand(defaultArgs);\n expect(command.name).toBe(\"continue\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return correct APDU for given payload\", () => {\n // given\n const command = new ContinueCommand(defaultArgs);\n // when\n const apdu = command.getApdu();\n // then\n expect(apdu.getRawApdu()).toStrictEqual(EXPECTED_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the APDU response if it's a continue response\", () => {\n // given\n const command = new ContinueCommand(defaultArgs);\n const continueResponseData = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n const apduResponse = new ApduResponse({\n statusCode: SW_INTERRUPTED_EXECUTION,\n data: continueResponseData,\n });\n\n // when\n const response = command.parseResponse(apduResponse);\n\n // then\n expect(response).toStrictEqual(\n CommandResultFactory({\n data: apduResponse,\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OACE,gBAAAA,EACA,wBAAAC,MACK,kCAEP,OAAS,4BAAAC,MAAgC,+CAEzC,OAAS,mBAAAC,MAAuB,oBAEhC,SAAS,kBAAmB,IAAY,CACtC,MAAMC,EAAc,CAClB,QAAS,IAAI,WAAW,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,CAClD,EAEMC,EAAgB,IAAI,WAAW,CACnC,IACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACF,CAAC,EAED,SAAS,OAAQ,IAAM,CACrB,GAAG,uBAAwB,IAAM,CAC/B,MAAMC,EAAU,IAAIH,EAAgBC,CAAW,EAC/C,OAAOE,EAAQ,IAAI,EAAE,KAAK,UAAU,CACtC,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,+CAAgD,IAAM,CAIvD,MAAMC,EAFU,IAAIJ,EAAgBC,CAAW,EAE1B,QAAQ,EAE7B,OAAOG,EAAK,WAAW,CAAC,EAAE,cAAcF,CAAa,CACvD,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,8DAA+D,IAAM,CAEtE,MAAMC,EAAU,IAAIH,EAAgBC,CAAW,EACzCI,EAAuB,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EAC9DC,EAAe,IAAIT,EAAa,CACpC,WAAYE,EACZ,KAAMM,CACR,CAAC,EAGKE,EAAWJ,EAAQ,cAAcG,CAAY,EAGnD,OAAOC,CAAQ,EAAE,cACfT,EAAqB,CACnB,KAAMQ,CACR,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["ApduResponse", "CommandResultFactory", "SW_INTERRUPTED_EXECUTION", "ContinueCommand", "defaultArgs", "EXPECTED_APDU", "command", "apdu", "continueResponseData", "apduResponse", "response"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduBuilder as s,ApduParser as i,CommandResultFactory as d,InvalidStatusWordError as p}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as m,DerivationPathUtils as c}from"@ledgerhq/signer-utils";import{Maybe as l}from"purify-ts";import{BTC_APP_ERRORS as u,BtcAppCommandErrorFactory as y}from"../../app-binder/command/utils/bitcoinAppErrors";import{BtcCommandUtils as g}from"../../utils/BtcCommandUtils";class h{constructor(t,e=new m(u,y,g.isSuccessResponse)){this._args=t;this._errorHelper=e}getApdu(){const{checkOnDevice:t,derivationPath:e}=this._args,o={cla:225,ins:0,p1:0,p2:0},r=new s(o).add8BitUIntToData(t?1:0),n=c.splitPath(e);return r.add8BitUIntToData(n.length),n.forEach(a=>{r.add32BitUIntToData(a)}),r.build()}parseResponse(t){return l.fromNullable(this._errorHelper.getError(t)).orDefaultLazy(()=>{const e=new i(t),o=e.getUnparsedRemainingLength();if(o<=0)return d({error:new p("Invalid response length")});const r=e.encodeToString(e.extractFieldByLength(o));return d({data:{extendedPublicKey:r}})})}}export{h as GetExtendedPublicKeyCommand};
1
+ import{ApduBuilder as s,ApduParser as i,CommandResultFactory as d,InvalidStatusWordError as p}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as m,DerivationPathUtils as l}from"@ledgerhq/signer-utils";import{Maybe as c}from"purify-ts";import{BTC_APP_ERRORS as u,BtcAppCommandErrorFactory as y}from"../../app-binder/command/utils/bitcoinAppErrors";import{BtcCommandUtils as g}from"../../utils/BtcCommandUtils";class h{constructor(t,e=new m(u,y,g.isSuccessResponse)){this._args=t;this._errorHelper=e}name="getExtendedPublicKey";getApdu(){const{checkOnDevice:t,derivationPath:e}=this._args,n={cla:225,ins:0,p1:0,p2:0},r=new s(n).add8BitUIntToData(t?1:0),o=l.splitPath(e);return r.add8BitUIntToData(o.length),o.forEach(a=>{r.add32BitUIntToData(a)}),r.build()}parseResponse(t){return c.fromNullable(this._errorHelper.getError(t)).orDefaultLazy(()=>{const e=new i(t),n=e.getUnparsedRemainingLength();if(n<=0)return d({error:new p("Invalid response length")});const r=e.encodeToString(e.extractFieldByLength(n));return d({data:{extendedPublicKey:r}})})}}export{h as GetExtendedPublicKeyCommand};
2
2
  //# sourceMappingURL=GetExtendedPublicKeyCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetExtendedPublicKeyCommand.ts"],
4
- "sourcesContent": ["// https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#get_extended_pubkey\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CommandErrorHelper,\n DerivationPathUtils,\n} from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n type BtcErrorCodes,\n} from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { BtcCommandUtils } from \"@internal/utils/BtcCommandUtils\";\n\nexport type GetExtendedPublicKeyCommandArgs = {\n checkOnDevice: boolean;\n derivationPath: string;\n};\n\nexport type GetExtendedPublicKeyCommandResponse = {\n extendedPublicKey: string;\n};\n\nexport class GetExtendedPublicKeyCommand\n implements\n Command<\n GetExtendedPublicKeyCommandResponse,\n GetExtendedPublicKeyCommandArgs,\n BtcErrorCodes\n >\n{\n constructor(\n private readonly _args: GetExtendedPublicKeyCommandArgs,\n private readonly _errorHelper = new CommandErrorHelper<\n GetExtendedPublicKeyCommandResponse,\n BtcErrorCodes\n >(\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n BtcCommandUtils.isSuccessResponse,\n ),\n ) {}\n\n getApdu(): Apdu {\n const { checkOnDevice, derivationPath } = this._args;\n\n const getExtendedPublicKeyArgs: ApduBuilderArgs = {\n cla: 0xe1,\n ins: 0x00,\n p1: 0x00,\n p2: 0x00,\n };\n const builder = new ApduBuilder(getExtendedPublicKeyArgs).add8BitUIntToData(\n checkOnDevice ? 0x01 : 0x00,\n );\n\n const path = DerivationPathUtils.splitPath(derivationPath);\n builder.add8BitUIntToData(path.length);\n path.forEach((element) => {\n builder.add32BitUIntToData(element);\n });\n\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<GetExtendedPublicKeyCommandResponse, BtcErrorCodes> {\n return Maybe.fromNullable(\n this._errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n const length = parser.getUnparsedRemainingLength();\n\n if (length <= 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response length\"),\n });\n }\n\n const extendedPublicKey = parser.encodeToString(\n parser.extractFieldByLength(length),\n );\n\n return CommandResultFactory({\n data: {\n extendedPublicKey,\n },\n });\n });\n }\n}\n"],
5
- "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OACE,sBAAAC,EACA,uBAAAC,MACK,yBACP,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,sDACP,OAAS,mBAAAC,MAAuB,kCAWzB,MAAMC,CAOb,CACE,YACmBC,EACAC,EAAe,IAAIR,EAIlCG,EACAC,EACAC,EAAgB,iBAClB,EACA,CATiB,WAAAE,EACA,kBAAAC,CAQhB,CAEH,SAAgB,CACd,KAAM,CAAE,cAAAC,EAAe,eAAAC,CAAe,EAAI,KAAK,MAEzCC,EAA4C,CAChD,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EACMC,EAAU,IAAIhB,EAAYe,CAAwB,EAAE,kBACxDF,EAAgB,EAAO,CACzB,EAEMI,EAAOZ,EAAoB,UAAUS,CAAc,EACzD,OAAAE,EAAQ,kBAAkBC,EAAK,MAAM,EACrCA,EAAK,QAASC,GAAY,CACxBF,EAAQ,mBAAmBE,CAAO,CACpC,CAAC,EAEMF,EAAQ,MAAM,CACvB,CAEA,cACEG,EACmE,CACnE,OAAOb,EAAM,aACX,KAAK,aAAa,SAASa,CAAQ,CACrC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAInB,EAAWkB,CAAQ,EAChCE,EAASD,EAAO,2BAA2B,EAEjD,GAAIC,GAAU,EACZ,OAAOnB,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,yBAAyB,CAC7D,CAAC,EAGH,MAAMmB,EAAoBF,EAAO,eAC/BA,EAAO,qBAAqBC,CAAM,CACpC,EAEA,OAAOnB,EAAqB,CAC1B,KAAM,CACJ,kBAAAoB,CACF,CACF,CAAC,CACH,CAAC,CACH,CACF",
4
+ "sourcesContent": ["// https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#get_extended_pubkey\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CommandErrorHelper,\n DerivationPathUtils,\n} from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n type BtcErrorCodes,\n} from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { BtcCommandUtils } from \"@internal/utils/BtcCommandUtils\";\n\nexport type GetExtendedPublicKeyCommandArgs = {\n checkOnDevice: boolean;\n derivationPath: string;\n};\n\nexport type GetExtendedPublicKeyCommandResponse = {\n extendedPublicKey: string;\n};\n\nexport class GetExtendedPublicKeyCommand\n implements\n Command<\n GetExtendedPublicKeyCommandResponse,\n GetExtendedPublicKeyCommandArgs,\n BtcErrorCodes\n >\n{\n readonly name = \"getExtendedPublicKey\";\n constructor(\n private readonly _args: GetExtendedPublicKeyCommandArgs,\n private readonly _errorHelper = new CommandErrorHelper<\n GetExtendedPublicKeyCommandResponse,\n BtcErrorCodes\n >(\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n BtcCommandUtils.isSuccessResponse,\n ),\n ) {}\n\n getApdu(): Apdu {\n const { checkOnDevice, derivationPath } = this._args;\n\n const getExtendedPublicKeyArgs: ApduBuilderArgs = {\n cla: 0xe1,\n ins: 0x00,\n p1: 0x00,\n p2: 0x00,\n };\n const builder = new ApduBuilder(getExtendedPublicKeyArgs).add8BitUIntToData(\n checkOnDevice ? 0x01 : 0x00,\n );\n\n const path = DerivationPathUtils.splitPath(derivationPath);\n builder.add8BitUIntToData(path.length);\n path.forEach((element) => {\n builder.add32BitUIntToData(element);\n });\n\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<GetExtendedPublicKeyCommandResponse, BtcErrorCodes> {\n return Maybe.fromNullable(\n this._errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n const length = parser.getUnparsedRemainingLength();\n\n if (length <= 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response length\"),\n });\n }\n\n const extendedPublicKey = parser.encodeToString(\n parser.extractFieldByLength(length),\n );\n\n return CommandResultFactory({\n data: {\n extendedPublicKey,\n },\n });\n });\n }\n}\n"],
5
+ "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OACE,sBAAAC,EACA,uBAAAC,MACK,yBACP,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,sDACP,OAAS,mBAAAC,MAAuB,kCAWzB,MAAMC,CAOb,CAEE,YACmBC,EACAC,EAAe,IAAIR,EAIlCG,EACAC,EACAC,EAAgB,iBAClB,EACA,CATiB,WAAAE,EACA,kBAAAC,CAQhB,CAXM,KAAO,uBAahB,SAAgB,CACd,KAAM,CAAE,cAAAC,EAAe,eAAAC,CAAe,EAAI,KAAK,MAEzCC,EAA4C,CAChD,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EACMC,EAAU,IAAIhB,EAAYe,CAAwB,EAAE,kBACxDF,EAAgB,EAAO,CACzB,EAEMI,EAAOZ,EAAoB,UAAUS,CAAc,EACzD,OAAAE,EAAQ,kBAAkBC,EAAK,MAAM,EACrCA,EAAK,QAASC,GAAY,CACxBF,EAAQ,mBAAmBE,CAAO,CACpC,CAAC,EAEMF,EAAQ,MAAM,CACvB,CAEA,cACEG,EACmE,CACnE,OAAOb,EAAM,aACX,KAAK,aAAa,SAASa,CAAQ,CACrC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAInB,EAAWkB,CAAQ,EAChCE,EAASD,EAAO,2BAA2B,EAEjD,GAAIC,GAAU,EACZ,OAAOnB,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,yBAAyB,CAC7D,CAAC,EAGH,MAAMmB,EAAoBF,EAAO,eAC/BA,EAAO,qBAAqBC,CAAM,CACpC,EAEA,OAAOnB,EAAqB,CAC1B,KAAM,CACJ,kBAAAoB,CACF,CACF,CAAC,CACH,CAAC,CACH,CACF",
6
6
  "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "InvalidStatusWordError", "CommandErrorHelper", "DerivationPathUtils", "Maybe", "BTC_APP_ERRORS", "BtcAppCommandErrorFactory", "BtcCommandUtils", "GetExtendedPublicKeyCommand", "_args", "_errorHelper", "checkOnDevice", "derivationPath", "getExtendedPublicKeyArgs", "builder", "path", "element", "response", "parser", "length", "extendedPublicKey"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduResponse as o,CommandResultFactory as a,InvalidStatusWordError as s}from"@ledgerhq/device-management-kit";import{BTC_APP_ERRORS as d,BtcAppCommandErrorFactory as c}from"../../app-binder/command/utils/bitcoinAppErrors";import{GetExtendedPublicKeyCommand as r}from"./GetExtendedPublicKeyCommand";const u=new Uint8Array([225,0,0,0,14,1,3,128,0,0,84,128,0,0,0,128,0,0,0]),i=new Uint8Array([225,0,0,0,14,0,3,128,0,0,84,128,0,0,0,128,0,0,0]),p=new Uint8Array([225,0,0,0,18,1,4,128,0,0,49,128,0,0,0,128,0,0,0,0,0,0,0]),E=new Uint8Array([120,112,117,98,54,68,57,80,112,52,114,70,118,119,84,71,120,56,56,89,68,52,67,68,97,49,110,66,69,112,99,75,69,90,84,67,78,70,122,67,70,55,103,86,80,122,54,84,104,57,66,97,86,104,104,80,74,68,117,103,57,89,89,70,80,89,109,107,83,72,76,102,82,49,86,81,89,106,53,106,97,121,113,119,83,89,65,82,110,117,66,74,105,80,83,68,97,98,121,121,84,105,67,68,55,66,51,99,106,80,113]);describe("GetExtendedPublicKeyCommand",()=>{let x;const t={checkOnDevice:!0,derivationPath:"84'/0'/0'"};beforeEach(()=>{}),describe("getApdu",()=>{it("should return the correct APDU",()=>{x=new r(t);const e=x.getApdu();expect(e.getRawApdu()).toEqual(u)}),it("should return the correct APDU without checkOnDevice",()=>{x=new r({...t,checkOnDevice:!1});const e=x.getApdu();expect(e.getRawApdu()).toEqual(i)}),it("should return the correct APDU with different derivation path",()=>{x=new r({...t,derivationPath:"49'/0'/0'/0"});const e=x.getApdu();expect(e.getRawApdu()).toEqual(p)})}),describe("parseResponse",()=>{it("should return the extended public key",()=>{x=new r(t);const e=new o({data:E,statusCode:new Uint8Array([144,0])}),n=x.parseResponse(e);expect(n).toEqual(a({data:{extendedPublicKey:"xpub6D9Pp4rFvwTGx88YD4CDa1nBEpcKEZTCNFzCF7gVPz6Th9BaVhhPJDug9YYFPYmkSHLfR1VQYj5jayqwSYARnuBJiPSDabyyTiCD7B3cjPq"}}))}),it("should return an error if the response is not successful",()=>{x=new r(t);const e=new o({statusCode:Uint8Array.from([109,0]),data:new Uint8Array(0)}),n=x.parseResponse(e);expect(n).toStrictEqual(a({error:c({...d["6d00"],errorCode:"6d00"})}))}),it("should return an error if the response is too short",()=>{x=new r(t);const e=new o({data:Uint8Array.from([]),statusCode:new Uint8Array([144,0])}),n=x.parseResponse(e);expect(n).toStrictEqual(a({error:new s("Invalid response length")}))})})});
1
+ import{ApduResponse as o,CommandResultFactory as a,InvalidStatusWordError as s}from"@ledgerhq/device-management-kit";import{BTC_APP_ERRORS as d,BtcAppCommandErrorFactory as c}from"../../app-binder/command/utils/bitcoinAppErrors";import{GetExtendedPublicKeyCommand as r}from"./GetExtendedPublicKeyCommand";const u=new Uint8Array([225,0,0,0,14,1,3,128,0,0,84,128,0,0,0,128,0,0,0]),i=new Uint8Array([225,0,0,0,14,0,3,128,0,0,84,128,0,0,0,128,0,0,0]),p=new Uint8Array([225,0,0,0,18,1,4,128,0,0,49,128,0,0,0,128,0,0,0,0,0,0,0]),E=new Uint8Array([120,112,117,98,54,68,57,80,112,52,114,70,118,119,84,71,120,56,56,89,68,52,67,68,97,49,110,66,69,112,99,75,69,90,84,67,78,70,122,67,70,55,103,86,80,122,54,84,104,57,66,97,86,104,104,80,74,68,117,103,57,89,89,70,80,89,109,107,83,72,76,102,82,49,86,81,89,106,53,106,97,121,113,119,83,89,65,82,110,117,66,74,105,80,83,68,97,98,121,121,84,105,67,68,55,66,51,99,106,80,113]);describe("GetExtendedPublicKeyCommand",()=>{let x;const t={checkOnDevice:!0,derivationPath:"84'/0'/0'"};beforeEach(()=>{}),describe("name",()=>{it("should be 'getExtendedPublicKey'",()=>{x=new r(t),expect(x.name).toBe("getExtendedPublicKey")})}),describe("getApdu",()=>{it("should return the correct APDU",()=>{x=new r(t);const e=x.getApdu();expect(e.getRawApdu()).toEqual(u)}),it("should return the correct APDU without checkOnDevice",()=>{x=new r({...t,checkOnDevice:!1});const e=x.getApdu();expect(e.getRawApdu()).toEqual(i)}),it("should return the correct APDU with different derivation path",()=>{x=new r({...t,derivationPath:"49'/0'/0'/0"});const e=x.getApdu();expect(e.getRawApdu()).toEqual(p)})}),describe("parseResponse",()=>{it("should return the extended public key",()=>{x=new r(t);const e=new o({data:E,statusCode:new Uint8Array([144,0])}),n=x.parseResponse(e);expect(n).toEqual(a({data:{extendedPublicKey:"xpub6D9Pp4rFvwTGx88YD4CDa1nBEpcKEZTCNFzCF7gVPz6Th9BaVhhPJDug9YYFPYmkSHLfR1VQYj5jayqwSYARnuBJiPSDabyyTiCD7B3cjPq"}}))}),it("should return an error if the response is not successful",()=>{x=new r(t);const e=new o({statusCode:Uint8Array.from([109,0]),data:new Uint8Array(0)}),n=x.parseResponse(e);expect(n).toStrictEqual(a({error:c({...d["6d00"],errorCode:"6d00"})}))}),it("should return an error if the response is too short",()=>{x=new r(t);const e=new o({data:Uint8Array.from([]),statusCode:new Uint8Array([144,0])}),n=x.parseResponse(e);expect(n).toStrictEqual(a({error:new s("Invalid response length")}))})})});
2
2
  //# sourceMappingURL=GetExtendedPublicKeyCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetExtendedPublicKeyCommand.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n} from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\n\nimport {\n GetExtendedPublicKeyCommand,\n type GetExtendedPublicKeyCommandArgs,\n} from \"./GetExtendedPublicKeyCommand\";\n\nconst GET_EXTENDED_PUBLIC_KEY_APDU_WITH_DISPLAY = new Uint8Array([\n 0xe1, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x03, 0x80, 0x00, 0x00, 0x54, 0x80, 0x00,\n 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,\n]);\n\nconst GET_EXTENDED_PUBLIC_KEY_APDU_WITHOUT_DISPLAY = new Uint8Array([\n 0xe1, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x80, 0x00, 0x00, 0x54, 0x80, 0x00,\n 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,\n]);\n\nconst GET_EXTENDED_PUBLIC_KEY_APDU_WITH_OTHER_DERIVATION_PATH = new Uint8Array([\n 0xe1, 0x00, 0x00, 0x00, 0x12, 0x01, 0x04, 0x80, 0x00, 0x00, 0x31, 0x80, 0x00,\n 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n]);\n\nconst GET_EXTENDED_PUBLIC_KEY_VALID_RESPONSE = new Uint8Array([\n 0x78, 0x70, 0x75, 0x62, 0x36, 0x44, 0x39, 0x50, 0x70, 0x34, 0x72, 0x46, 0x76,\n 0x77, 0x54, 0x47, 0x78, 0x38, 0x38, 0x59, 0x44, 0x34, 0x43, 0x44, 0x61, 0x31,\n 0x6e, 0x42, 0x45, 0x70, 0x63, 0x4b, 0x45, 0x5a, 0x54, 0x43, 0x4e, 0x46, 0x7a,\n 0x43, 0x46, 0x37, 0x67, 0x56, 0x50, 0x7a, 0x36, 0x54, 0x68, 0x39, 0x42, 0x61,\n 0x56, 0x68, 0x68, 0x50, 0x4a, 0x44, 0x75, 0x67, 0x39, 0x59, 0x59, 0x46, 0x50,\n 0x59, 0x6d, 0x6b, 0x53, 0x48, 0x4c, 0x66, 0x52, 0x31, 0x56, 0x51, 0x59, 0x6a,\n 0x35, 0x6a, 0x61, 0x79, 0x71, 0x77, 0x53, 0x59, 0x41, 0x52, 0x6e, 0x75, 0x42,\n 0x4a, 0x69, 0x50, 0x53, 0x44, 0x61, 0x62, 0x79, 0x79, 0x54, 0x69, 0x43, 0x44,\n 0x37, 0x42, 0x33, 0x63, 0x6a, 0x50, 0x71,\n]);\n\ndescribe(\"GetExtendedPublicKeyCommand\", () => {\n let command: GetExtendedPublicKeyCommand;\n const defaultArgs: GetExtendedPublicKeyCommandArgs = {\n checkOnDevice: true,\n derivationPath: \"84'/0'/0'\",\n };\n\n beforeEach(() => {});\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand(defaultArgs);\n\n // WHEN\n const apdu = command.getApdu();\n\n //THEN\n expect(apdu.getRawApdu()).toEqual(\n GET_EXTENDED_PUBLIC_KEY_APDU_WITH_DISPLAY,\n );\n });\n\n it(\"should return the correct APDU without checkOnDevice\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand({\n ...defaultArgs,\n checkOnDevice: false,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n //THEN\n expect(apdu.getRawApdu()).toEqual(\n GET_EXTENDED_PUBLIC_KEY_APDU_WITHOUT_DISPLAY,\n );\n });\n\n it(\"should return the correct APDU with different derivation path\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand({\n ...defaultArgs,\n derivationPath: \"49'/0'/0'/0\",\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n //THEN\n expect(apdu.getRawApdu()).toEqual(\n GET_EXTENDED_PUBLIC_KEY_APDU_WITH_OTHER_DERIVATION_PATH,\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the extended public key\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand(defaultArgs);\n const response = new ApduResponse({\n data: GET_EXTENDED_PUBLIC_KEY_VALID_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 extendedPublicKey:\n \"xpub6D9Pp4rFvwTGx88YD4CDa1nBEpcKEZTCNFzCF7gVPz6Th9BaVhhPJDug9YYFPYmkSHLfR1VQYj5jayqwSYARnuBJiPSDabyyTiCD7B3cjPq\",\n },\n }),\n );\n });\n\n it(\"should return an error if the response is not successful\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand(defaultArgs);\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(result).toStrictEqual(\n CommandResultFactory({\n error: BtcAppCommandErrorFactory({\n ...BTC_APP_ERRORS[\"6d00\"],\n errorCode: \"6d00\",\n }),\n }),\n );\n });\n\n it(\"should return an error if the response is too short\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand(defaultArgs);\n const response = new ApduResponse({\n data: Uint8Array.from([]),\n statusCode: new Uint8Array([0x90, 0x00]),\n });\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response length\"),\n }),\n );\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n} from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\n\nimport {\n GetExtendedPublicKeyCommand,\n type GetExtendedPublicKeyCommandArgs,\n} from \"./GetExtendedPublicKeyCommand\";\n\nconst GET_EXTENDED_PUBLIC_KEY_APDU_WITH_DISPLAY = new Uint8Array([\n 0xe1, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x03, 0x80, 0x00, 0x00, 0x54, 0x80, 0x00,\n 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,\n]);\n\nconst GET_EXTENDED_PUBLIC_KEY_APDU_WITHOUT_DISPLAY = new Uint8Array([\n 0xe1, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x80, 0x00, 0x00, 0x54, 0x80, 0x00,\n 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,\n]);\n\nconst GET_EXTENDED_PUBLIC_KEY_APDU_WITH_OTHER_DERIVATION_PATH = new Uint8Array([\n 0xe1, 0x00, 0x00, 0x00, 0x12, 0x01, 0x04, 0x80, 0x00, 0x00, 0x31, 0x80, 0x00,\n 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n]);\n\nconst GET_EXTENDED_PUBLIC_KEY_VALID_RESPONSE = new Uint8Array([\n 0x78, 0x70, 0x75, 0x62, 0x36, 0x44, 0x39, 0x50, 0x70, 0x34, 0x72, 0x46, 0x76,\n 0x77, 0x54, 0x47, 0x78, 0x38, 0x38, 0x59, 0x44, 0x34, 0x43, 0x44, 0x61, 0x31,\n 0x6e, 0x42, 0x45, 0x70, 0x63, 0x4b, 0x45, 0x5a, 0x54, 0x43, 0x4e, 0x46, 0x7a,\n 0x43, 0x46, 0x37, 0x67, 0x56, 0x50, 0x7a, 0x36, 0x54, 0x68, 0x39, 0x42, 0x61,\n 0x56, 0x68, 0x68, 0x50, 0x4a, 0x44, 0x75, 0x67, 0x39, 0x59, 0x59, 0x46, 0x50,\n 0x59, 0x6d, 0x6b, 0x53, 0x48, 0x4c, 0x66, 0x52, 0x31, 0x56, 0x51, 0x59, 0x6a,\n 0x35, 0x6a, 0x61, 0x79, 0x71, 0x77, 0x53, 0x59, 0x41, 0x52, 0x6e, 0x75, 0x42,\n 0x4a, 0x69, 0x50, 0x53, 0x44, 0x61, 0x62, 0x79, 0x79, 0x54, 0x69, 0x43, 0x44,\n 0x37, 0x42, 0x33, 0x63, 0x6a, 0x50, 0x71,\n]);\n\ndescribe(\"GetExtendedPublicKeyCommand\", () => {\n let command: GetExtendedPublicKeyCommand;\n const defaultArgs: GetExtendedPublicKeyCommandArgs = {\n checkOnDevice: true,\n derivationPath: \"84'/0'/0'\",\n };\n\n beforeEach(() => {});\n\n describe(\"name\", () => {\n it(\"should be 'getExtendedPublicKey'\", () => {\n command = new GetExtendedPublicKeyCommand(defaultArgs);\n expect(command.name).toBe(\"getExtendedPublicKey\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand(defaultArgs);\n\n // WHEN\n const apdu = command.getApdu();\n\n //THEN\n expect(apdu.getRawApdu()).toEqual(\n GET_EXTENDED_PUBLIC_KEY_APDU_WITH_DISPLAY,\n );\n });\n\n it(\"should return the correct APDU without checkOnDevice\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand({\n ...defaultArgs,\n checkOnDevice: false,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n //THEN\n expect(apdu.getRawApdu()).toEqual(\n GET_EXTENDED_PUBLIC_KEY_APDU_WITHOUT_DISPLAY,\n );\n });\n\n it(\"should return the correct APDU with different derivation path\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand({\n ...defaultArgs,\n derivationPath: \"49'/0'/0'/0\",\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n //THEN\n expect(apdu.getRawApdu()).toEqual(\n GET_EXTENDED_PUBLIC_KEY_APDU_WITH_OTHER_DERIVATION_PATH,\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the extended public key\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand(defaultArgs);\n const response = new ApduResponse({\n data: GET_EXTENDED_PUBLIC_KEY_VALID_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 extendedPublicKey:\n \"xpub6D9Pp4rFvwTGx88YD4CDa1nBEpcKEZTCNFzCF7gVPz6Th9BaVhhPJDug9YYFPYmkSHLfR1VQYj5jayqwSYARnuBJiPSDabyyTiCD7B3cjPq\",\n },\n }),\n );\n });\n\n it(\"should return an error if the response is not successful\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand(defaultArgs);\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(result).toStrictEqual(\n CommandResultFactory({\n error: BtcAppCommandErrorFactory({\n ...BTC_APP_ERRORS[\"6d00\"],\n errorCode: \"6d00\",\n }),\n }),\n );\n });\n\n it(\"should return an error if the response is too short\", () => {\n // GIVEN\n command = new GetExtendedPublicKeyCommand(defaultArgs);\n const response = new ApduResponse({\n data: Uint8Array.from([]),\n statusCode: new Uint8Array([0x90, 0x00]),\n });\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response length\"),\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["ApduResponse", "CommandResultFactory", "InvalidStatusWordError", "BTC_APP_ERRORS", "BtcAppCommandErrorFactory", "GetExtendedPublicKeyCommand", "GET_EXTENDED_PUBLIC_KEY_APDU_WITH_DISPLAY", "GET_EXTENDED_PUBLIC_KEY_APDU_WITHOUT_DISPLAY", "GET_EXTENDED_PUBLIC_KEY_APDU_WITH_OTHER_DERIVATION_PATH", "GET_EXTENDED_PUBLIC_KEY_VALID_RESPONSE", "command", "defaultArgs", "apdu", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduBuilder as o,ApduParser as n,CommandResultFactory as t,InvalidStatusWordError as s}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as p}from"@ledgerhq/signer-utils";import{Maybe as a}from"purify-ts";import{BTC_APP_ERRORS as m,BtcAppCommandErrorFactory as i}from"../../app-binder/command/utils/bitcoinAppErrors";import{BtcCommandUtils as d}from"../../utils/BtcCommandUtils";const u=4;class E{constructor(r=new p(m,i,d.isSuccessResponse)){this._errorHelper=r}getApdu(){const r={cla:225,ins:5,p1:0,p2:0};return new o(r).build()}parseResponse(r){return a.fromNullable(this._errorHelper.getError(r)).orDefaultLazy(()=>{const e=new n(r).extractFieldByLength(u);return e?t({data:{masterFingerprint:e}}):t({error:new s("Master fingerprint is missing")})})}}export{E as GetMasterFingerprintCommand};
1
+ import{ApduBuilder as n,ApduParser as o,CommandResultFactory as t,InvalidStatusWordError as s}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as p}from"@ledgerhq/signer-utils";import{Maybe as a}from"purify-ts";import{BTC_APP_ERRORS as i,BtcAppCommandErrorFactory as m}from"../../app-binder/command/utils/bitcoinAppErrors";import{BtcCommandUtils as d}from"../../utils/BtcCommandUtils";const u=4;class F{constructor(r=new p(i,m,d.isSuccessResponse)){this._errorHelper=r}name="getMasterFingerprint";getApdu(){const r={cla:225,ins:5,p1:0,p2:0};return new n(r).build()}parseResponse(r){return a.fromNullable(this._errorHelper.getError(r)).orDefaultLazy(()=>{const e=new o(r).extractFieldByLength(u);return e?t({data:{masterFingerprint:e}}):t({error:new s("Master fingerprint is missing")})})}}export{F as GetMasterFingerprintCommand};
2
2
  //# sourceMappingURL=GetMasterFingerprintCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetMasterFingerprintCommand.ts"],
4
- "sourcesContent": ["// https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#get_master_fingerprint\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n type BtcErrorCodes,\n} from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { BtcCommandUtils } from \"@internal/utils/BtcCommandUtils\";\n\nconst MASTER_FINGERPRINT_LENGTH = 4;\n\ntype GetMasterFingerprintCommandResponse = {\n masterFingerprint: Uint8Array;\n};\n\nexport class GetMasterFingerprintCommand\n implements Command<GetMasterFingerprintCommandResponse, void, BtcErrorCodes>\n{\n constructor(\n private readonly _errorHelper = new CommandErrorHelper<\n GetMasterFingerprintCommandResponse,\n BtcErrorCodes\n >(\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n BtcCommandUtils.isSuccessResponse,\n ),\n ) {}\n getApdu(): Apdu {\n const getMasterFingerprintArgs: ApduBuilderArgs = {\n cla: 0xe1,\n ins: 0x05,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(getMasterFingerprintArgs).build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<GetMasterFingerprintCommandResponse, BtcErrorCodes> {\n return Maybe.fromNullable(\n this._errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n\n const masterFingerprint = parser.extractFieldByLength(\n MASTER_FINGERPRINT_LENGTH,\n );\n if (!masterFingerprint) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Master fingerprint is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: {\n masterFingerprint,\n },\n });\n });\n }\n}\n"],
5
- "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,sDACP,OAAS,mBAAAC,MAAuB,kCAEhC,MAAMC,EAA4B,EAM3B,MAAMC,CAEb,CACE,YACmBC,EAAe,IAAIP,EAIlCE,EACAC,EACAC,EAAgB,iBAClB,EACA,CARiB,kBAAAG,CAQhB,CACH,SAAgB,CACd,MAAMC,EAA4C,CAChD,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EACA,OAAO,IAAIZ,EAAYY,CAAwB,EAAE,MAAM,CACzD,CAEA,cACEC,EACmE,CACnE,OAAOR,EAAM,aACX,KAAK,aAAa,SAASQ,CAAQ,CACrC,EAAE,cAAc,IAAM,CAGpB,MAAMC,EAFS,IAAIb,EAAWY,CAAQ,EAEL,qBAC/BJ,CACF,EACA,OAAKK,EAMEZ,EAAqB,CAC1B,KAAM,CACJ,kBAAAY,CACF,CACF,CAAC,EATQZ,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,+BAA+B,CACnE,CAAC,CAQL,CAAC,CACH,CACF",
4
+ "sourcesContent": ["// https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#get_master_fingerprint\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n type BtcErrorCodes,\n} from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { BtcCommandUtils } from \"@internal/utils/BtcCommandUtils\";\n\nconst MASTER_FINGERPRINT_LENGTH = 4;\n\ntype GetMasterFingerprintCommandResponse = {\n masterFingerprint: Uint8Array;\n};\n\nexport class GetMasterFingerprintCommand\n implements Command<GetMasterFingerprintCommandResponse, void, BtcErrorCodes>\n{\n readonly name = \"getMasterFingerprint\";\n constructor(\n private readonly _errorHelper = new CommandErrorHelper<\n GetMasterFingerprintCommandResponse,\n BtcErrorCodes\n >(\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n BtcCommandUtils.isSuccessResponse,\n ),\n ) {}\n getApdu(): Apdu {\n const getMasterFingerprintArgs: ApduBuilderArgs = {\n cla: 0xe1,\n ins: 0x05,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(getMasterFingerprintArgs).build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<GetMasterFingerprintCommandResponse, BtcErrorCodes> {\n return Maybe.fromNullable(\n this._errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n\n const masterFingerprint = parser.extractFieldByLength(\n MASTER_FINGERPRINT_LENGTH,\n );\n if (!masterFingerprint) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Master fingerprint is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: {\n masterFingerprint,\n },\n });\n });\n }\n}\n"],
5
+ "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,sDACP,OAAS,mBAAAC,MAAuB,kCAEhC,MAAMC,EAA4B,EAM3B,MAAMC,CAEb,CAEE,YACmBC,EAAe,IAAIP,EAIlCE,EACAC,EACAC,EAAgB,iBAClB,EACA,CARiB,kBAAAG,CAQhB,CAVM,KAAO,uBAWhB,SAAgB,CACd,MAAMC,EAA4C,CAChD,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EACA,OAAO,IAAIZ,EAAYY,CAAwB,EAAE,MAAM,CACzD,CAEA,cACEC,EACmE,CACnE,OAAOR,EAAM,aACX,KAAK,aAAa,SAASQ,CAAQ,CACrC,EAAE,cAAc,IAAM,CAGpB,MAAMC,EAFS,IAAIb,EAAWY,CAAQ,EAEL,qBAC/BJ,CACF,EACA,OAAKK,EAMEZ,EAAqB,CAC1B,KAAM,CACJ,kBAAAY,CACF,CACF,CAAC,EATQZ,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,+BAA+B,CACnE,CAAC,CAQL,CAAC,CACH,CACF",
6
6
  "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "InvalidStatusWordError", "CommandErrorHelper", "Maybe", "BTC_APP_ERRORS", "BtcAppCommandErrorFactory", "BtcCommandUtils", "MASTER_FINGERPRINT_LENGTH", "GetMasterFingerprintCommand", "_errorHelper", "getMasterFingerprintArgs", "response", "masterFingerprint"]
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("name",()=>{it("should be 'getMasterFingerprint'",()=>{expect(t.name).toBe("getMasterFingerprint")})}),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(\"name\", () => {\n it(\"should be 'getMasterFingerprint'\", () => {\n expect(command.name).toBe(\"getMasterFingerprint\");\n });\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,OAAQ,IAAM,CACrB,GAAG,mCAAoC,IAAM,CAC3C,OAAOG,EAAQ,IAAI,EAAE,KAAK,sBAAsB,CAClD,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,2BAA4B,IAAM,CAEnC,MAAMC,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{ApduBuilder as r,CommandResultFactory as a}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as o}from"@ledgerhq/signer-utils";import{Maybe as t}from"purify-ts";import{PROTOCOL_VERSION as d}from"../../app-binder/command/utils/constants";import{BtcCommandUtils as s}from"../../utils/BtcCommandUtils";import{BTC_APP_ERRORS as n,BtcAppCommandErrorFactory as m}from"./utils/bitcoinAppErrors";class f{constructor(e,p=new o(n,m,s.isSuccessResponse)){this.args=e;this._errorHelper=p}getApdu(){return new r({cla:225,ins:3,p1:0,p2:d}).addBufferToData(Uint8Array.from([this.args.checkOnDevice?1:0])).addBufferToData(this.args.walletId).addBufferToData(this.args.walletHmac).addBufferToData(Uint8Array.from([this.args.change?1:0])).add32BitUIntToData(this.args.addressIndex).build()}parseResponse(e){return t.fromNullable(this._errorHelper.getError(e)).orDefault(a({data:e}))}}export{f as GetWalletAddressCommand};
1
+ import{ApduBuilder as r,CommandResultFactory as a}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as o}from"@ledgerhq/signer-utils";import{Maybe as t}from"purify-ts";import{PROTOCOL_VERSION as d}from"../../app-binder/command/utils/constants";import{BtcCommandUtils as s}from"../../utils/BtcCommandUtils";import{BTC_APP_ERRORS as n,BtcAppCommandErrorFactory as m}from"./utils/bitcoinAppErrors";class f{constructor(e,p=new o(n,m,s.isSuccessResponse)){this.args=e;this._errorHelper=p}name="getWalletAddress";getApdu(){return new r({cla:225,ins:3,p1:0,p2:d}).addBufferToData(Uint8Array.from([this.args.checkOnDevice?1:0])).addBufferToData(this.args.walletId).addBufferToData(this.args.walletHmac).addBufferToData(Uint8Array.from([this.args.change?1:0])).add32BitUIntToData(this.args.addressIndex).build()}parseResponse(e){return t.fromNullable(this._errorHelper.getError(e)).orDefault(a({data:e}))}}export{f as GetWalletAddressCommand};
2
2
  //# sourceMappingURL=GetWalletAddressCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetWalletAddressCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { PROTOCOL_VERSION } from \"@internal/app-binder/command/utils/constants\";\nimport { BtcCommandUtils } from \"@internal/utils/BtcCommandUtils\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n type BtcErrorCodes,\n} from \"./utils/bitcoinAppErrors\";\n\nexport type GetWalletAddressCommandResponse = ApduResponse;\n\nexport type GetWalletAddressCommandArgs = {\n readonly checkOnDevice: boolean;\n readonly walletId: Uint8Array;\n readonly walletHmac: Uint8Array;\n readonly change: boolean;\n readonly addressIndex: number;\n};\n\nexport class GetWalletAddressCommand\n implements\n Command<\n GetWalletAddressCommandResponse,\n GetWalletAddressCommandArgs,\n BtcErrorCodes\n >\n{\n constructor(\n private readonly args: GetWalletAddressCommandArgs,\n private readonly _errorHelper = new CommandErrorHelper<\n GetWalletAddressCommandResponse,\n BtcErrorCodes\n >(\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n BtcCommandUtils.isSuccessResponse,\n ),\n ) {}\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xe1,\n ins: 0x03,\n p1: 0x00,\n p2: PROTOCOL_VERSION,\n })\n .addBufferToData(Uint8Array.from([this.args.checkOnDevice ? 1 : 0]))\n .addBufferToData(this.args.walletId)\n .addBufferToData(this.args.walletHmac)\n .addBufferToData(Uint8Array.from([this.args.change ? 1 : 0]))\n .add32BitUIntToData(this.args.addressIndex)\n .build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<ApduResponse, BtcErrorCodes> {\n return Maybe.fromNullable(this._errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: response }),\n );\n }\n}\n"],
5
- "mappings": "AAAA,OAEE,eAAAA,EAIA,wBAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OAAS,oBAAAC,MAAwB,+CACjC,OAAS,mBAAAC,MAAuB,kCAEhC,OACE,kBAAAC,EACA,6BAAAC,MAEK,2BAYA,MAAMC,CAOb,CACE,YACmBC,EACAC,EAAe,IAAIR,EAIlCI,EACAC,EACAF,EAAgB,iBAClB,EACA,CATiB,UAAAI,EACA,kBAAAC,CAQhB,CAEH,SAAgB,CACd,OAAO,IAAIV,EAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAII,CACN,CAAC,EACE,gBAAgB,WAAW,KAAK,CAAC,KAAK,KAAK,cAAgB,EAAI,CAAC,CAAC,CAAC,EAClE,gBAAgB,KAAK,KAAK,QAAQ,EAClC,gBAAgB,KAAK,KAAK,UAAU,EACpC,gBAAgB,WAAW,KAAK,CAAC,KAAK,KAAK,OAAS,EAAI,CAAC,CAAC,CAAC,EAC3D,mBAAmB,KAAK,KAAK,YAAY,EACzC,MAAM,CACX,CAEA,cACEO,EAC4C,CAC5C,OAAOR,EAAM,aAAa,KAAK,aAAa,SAASQ,CAAQ,CAAC,EAAE,UAC9DV,EAAqB,CAAE,KAAMU,CAAS,CAAC,CACzC,CACF,CACF",
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { PROTOCOL_VERSION } from \"@internal/app-binder/command/utils/constants\";\nimport { BtcCommandUtils } from \"@internal/utils/BtcCommandUtils\";\n\nimport {\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n type BtcErrorCodes,\n} from \"./utils/bitcoinAppErrors\";\n\nexport type GetWalletAddressCommandResponse = ApduResponse;\n\nexport type GetWalletAddressCommandArgs = {\n readonly checkOnDevice: boolean;\n readonly walletId: Uint8Array;\n readonly walletHmac: Uint8Array;\n readonly change: boolean;\n readonly addressIndex: number;\n};\n\nexport class GetWalletAddressCommand\n implements\n Command<\n GetWalletAddressCommandResponse,\n GetWalletAddressCommandArgs,\n BtcErrorCodes\n >\n{\n readonly name = \"getWalletAddress\";\n constructor(\n private readonly args: GetWalletAddressCommandArgs,\n private readonly _errorHelper = new CommandErrorHelper<\n GetWalletAddressCommandResponse,\n BtcErrorCodes\n >(\n BTC_APP_ERRORS,\n BtcAppCommandErrorFactory,\n BtcCommandUtils.isSuccessResponse,\n ),\n ) {}\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xe1,\n ins: 0x03,\n p1: 0x00,\n p2: PROTOCOL_VERSION,\n })\n .addBufferToData(Uint8Array.from([this.args.checkOnDevice ? 1 : 0]))\n .addBufferToData(this.args.walletId)\n .addBufferToData(this.args.walletHmac)\n .addBufferToData(Uint8Array.from([this.args.change ? 1 : 0]))\n .add32BitUIntToData(this.args.addressIndex)\n .build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<ApduResponse, BtcErrorCodes> {\n return Maybe.fromNullable(this._errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: response }),\n );\n }\n}\n"],
5
+ "mappings": "AAAA,OAEE,eAAAA,EAIA,wBAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OAAS,oBAAAC,MAAwB,+CACjC,OAAS,mBAAAC,MAAuB,kCAEhC,OACE,kBAAAC,EACA,6BAAAC,MAEK,2BAYA,MAAMC,CAOb,CAEE,YACmBC,EACAC,EAAe,IAAIR,EAIlCI,EACAC,EACAF,EAAgB,iBAClB,EACA,CATiB,UAAAI,EACA,kBAAAC,CAQhB,CAXM,KAAO,mBAahB,SAAgB,CACd,OAAO,IAAIV,EAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAII,CACN,CAAC,EACE,gBAAgB,WAAW,KAAK,CAAC,KAAK,KAAK,cAAgB,EAAI,CAAC,CAAC,CAAC,EAClE,gBAAgB,KAAK,KAAK,QAAQ,EAClC,gBAAgB,KAAK,KAAK,UAAU,EACpC,gBAAgB,WAAW,KAAK,CAAC,KAAK,KAAK,OAAS,EAAI,CAAC,CAAC,CAAC,EAC3D,mBAAmB,KAAK,KAAK,YAAY,EACzC,MAAM,CACX,CAEA,cACEO,EAC4C,CAC5C,OAAOR,EAAM,aAAa,KAAK,aAAa,SAASQ,CAAQ,CAAC,EAAE,UAC9DV,EAAqB,CAAE,KAAMU,CAAS,CAAC,CACzC,CACF,CACF",
6
6
  "names": ["ApduBuilder", "CommandResultFactory", "CommandErrorHelper", "Maybe", "PROTOCOL_VERSION", "BtcCommandUtils", "BTC_APP_ERRORS", "BtcAppCommandErrorFactory", "GetWalletAddressCommand", "args", "_errorHelper", "response"]
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 i=new Uint8Array([144,0]),m=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("name",()=>{it("should be 'getWalletAddress'",()=>{expect(s.name).toBe("getWalletAddress")})}),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:m,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:i,data:e}),r=s.parseResponse(t);expect(r).toStrictEqual(n({data:t}))})})});
2
2
  //# sourceMappingURL=GetWalletAddressCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetWalletAddressCommand.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { SW_INTERRUPTED_EXECUTION } from \"./utils/constants\";\nimport {\n GetWalletAddressCommand,\n type GetWalletAddressCommandArgs,\n} from \"./GetWalletAddressCommand\";\n\nconst SUCCESS_STATUS = new Uint8Array([0x90, 0x00]);\nconst USER_DENIED_STATUS = new Uint8Array([0x69, 0x85]);\n\ndescribe(\"GetWalletAddressCommand\", () => {\n let command: GetWalletAddressCommand;\n const defaultArgs: GetWalletAddressCommandArgs = {\n checkOnDevice: true,\n walletId: Uint8Array.from(\"walletIdBuffer\", (c) => c.charCodeAt(0)),\n walletHmac: Uint8Array.from(\"walletHmacBuffer\", (c) => c.charCodeAt(0)),\n change: false,\n addressIndex: 0x00000000,\n };\n\n beforeEach(() => {\n command = new GetWalletAddressCommand(defaultArgs);\n jest.clearAllMocks();\n jest.requireActual(\"@ledgerhq/device-management-kit\");\n });\n\n describe(\"getApdu\", () => {\n it(\"should return correct APDU for default arguments\", () => {\n const apdu = command.getApdu();\n const expectedApdu = Uint8Array.from([\n 0xe1, // CLA\n 0x03, // INS\n 0x00, // P1\n 0x01, // P2\n 0x24, // Length of data: 36 bytes\n 0x01, // checkOnDevice: true\n ...Uint8Array.from(\"walletIdBuffer\", (c) => c.charCodeAt(0)),\n ...Uint8Array.from(\"walletHmacBuffer\", (c) => c.charCodeAt(0)),\n 0x00, // change: false\n 0x00,\n 0x00,\n 0x00,\n 0x00, // addressIndex: 0x00000000\n ]);\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n\n it(\"should return correct APDU for different arguments\", () => {\n const args: GetWalletAddressCommandArgs = {\n checkOnDevice: false,\n walletId: Uint8Array.from(\"anotherWalletId\", (c) => c.charCodeAt(0)),\n walletHmac: Uint8Array.from(\"anotherWalletHmac\", (c) =>\n c.charCodeAt(0),\n ),\n change: true,\n addressIndex: 0x00000005,\n };\n command = new GetWalletAddressCommand(args);\n const apdu = command.getApdu();\n const expectedApdu = Uint8Array.from([\n 0xe1, // CLA\n 0x03, // INS\n 0x00, // P1\n 0x01, // P2\n 0x26, // Length of data\n 0x00, // checkOnDevice: false\n ...Uint8Array.from(\"anotherWalletId\", (c) => c.charCodeAt(0)),\n ...Uint8Array.from(\"anotherWalletHmac\", (c) => c.charCodeAt(0)),\n 0x01, // change: true\n 0x00,\n 0x00,\n 0x00,\n 0x05, // addressIndex: 0x00000005\n ]);\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the APDU response if it's a continue response\", () => {\n // given\n const continueResponseData = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n\n const apduResponse = new ApduResponse({\n statusCode: SW_INTERRUPTED_EXECUTION,\n data: continueResponseData,\n });\n\n // when\n const response = command.parseResponse(apduResponse);\n\n // then\n expect(response).toStrictEqual(\n CommandResultFactory({\n data: apduResponse,\n }),\n );\n });\n\n it(\"should return an error if user denied the operation\", () => {\n // given\n const apduResponse = new ApduResponse({\n statusCode: USER_DENIED_STATUS,\n data: new Uint8Array([]),\n });\n\n // when\n const response = command.parseResponse(apduResponse);\n\n // then\n expect(isSuccessCommandResult(response)).toBe(false);\n if (!isSuccessCommandResult(response)) {\n expect(response.error).toBeDefined();\n }\n });\n\n it(\"should return correct data when response is not empty\", () => {\n // given\n const responseData = Uint8Array.from(\"addressData\", (c) =>\n c.charCodeAt(0),\n );\n\n const apduResponse = new ApduResponse({\n statusCode: SUCCESS_STATUS,\n data: responseData,\n });\n\n // when\n const response = command.parseResponse(apduResponse);\n\n // then\n expect(response).toStrictEqual(\n CommandResultFactory({ data: apduResponse }),\n );\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { SW_INTERRUPTED_EXECUTION } from \"./utils/constants\";\nimport {\n GetWalletAddressCommand,\n type GetWalletAddressCommandArgs,\n} from \"./GetWalletAddressCommand\";\n\nconst SUCCESS_STATUS = new Uint8Array([0x90, 0x00]);\nconst USER_DENIED_STATUS = new Uint8Array([0x69, 0x85]);\n\ndescribe(\"GetWalletAddressCommand\", () => {\n let command: GetWalletAddressCommand;\n const defaultArgs: GetWalletAddressCommandArgs = {\n checkOnDevice: true,\n walletId: Uint8Array.from(\"walletIdBuffer\", (c) => c.charCodeAt(0)),\n walletHmac: Uint8Array.from(\"walletHmacBuffer\", (c) => c.charCodeAt(0)),\n change: false,\n addressIndex: 0x00000000,\n };\n\n beforeEach(() => {\n command = new GetWalletAddressCommand(defaultArgs);\n vi.clearAllMocks();\n vi.importActual(\"@ledgerhq/device-management-kit\");\n });\n\n describe(\"name\", () => {\n it(\"should be 'getWalletAddress'\", () => {\n expect(command.name).toBe(\"getWalletAddress\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return correct APDU for default arguments\", () => {\n const apdu = command.getApdu();\n const expectedApdu = Uint8Array.from([\n 0xe1, // CLA\n 0x03, // INS\n 0x00, // P1\n 0x01, // P2\n 0x24, // Length of data: 36 bytes\n 0x01, // checkOnDevice: true\n ...Uint8Array.from(\"walletIdBuffer\", (c) => c.charCodeAt(0)),\n ...Uint8Array.from(\"walletHmacBuffer\", (c) => c.charCodeAt(0)),\n 0x00, // change: false\n 0x00,\n 0x00,\n 0x00,\n 0x00, // addressIndex: 0x00000000\n ]);\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n\n it(\"should return correct APDU for different arguments\", () => {\n const args: GetWalletAddressCommandArgs = {\n checkOnDevice: false,\n walletId: Uint8Array.from(\"anotherWalletId\", (c) => c.charCodeAt(0)),\n walletHmac: Uint8Array.from(\"anotherWalletHmac\", (c) =>\n c.charCodeAt(0),\n ),\n change: true,\n addressIndex: 0x00000005,\n };\n command = new GetWalletAddressCommand(args);\n const apdu = command.getApdu();\n const expectedApdu = Uint8Array.from([\n 0xe1, // CLA\n 0x03, // INS\n 0x00, // P1\n 0x01, // P2\n 0x26, // Length of data\n 0x00, // checkOnDevice: false\n ...Uint8Array.from(\"anotherWalletId\", (c) => c.charCodeAt(0)),\n ...Uint8Array.from(\"anotherWalletHmac\", (c) => c.charCodeAt(0)),\n 0x01, // change: true\n 0x00,\n 0x00,\n 0x00,\n 0x05, // addressIndex: 0x00000005\n ]);\n expect(apdu.getRawApdu()).toEqual(expectedApdu);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the APDU response if it's a continue response\", () => {\n // given\n const continueResponseData = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n\n const apduResponse = new ApduResponse({\n statusCode: SW_INTERRUPTED_EXECUTION,\n data: continueResponseData,\n });\n\n // when\n const response = command.parseResponse(apduResponse);\n\n // then\n expect(response).toStrictEqual(\n CommandResultFactory({\n data: apduResponse,\n }),\n );\n });\n\n it(\"should return an error if user denied the operation\", () => {\n // given\n const apduResponse = new ApduResponse({\n statusCode: USER_DENIED_STATUS,\n data: new Uint8Array([]),\n });\n\n // when\n const response = command.parseResponse(apduResponse);\n\n // then\n expect(isSuccessCommandResult(response)).toBe(false);\n if (!isSuccessCommandResult(response)) {\n expect(response.error).toBeDefined();\n }\n });\n\n it(\"should return correct data when response is not empty\", () => {\n // given\n const responseData = Uint8Array.from(\"addressData\", (c) =>\n c.charCodeAt(0),\n );\n\n const apduResponse = new ApduResponse({\n statusCode: SUCCESS_STATUS,\n data: responseData,\n });\n\n // when\n const response = command.parseResponse(apduResponse);\n\n // then\n expect(response).toStrictEqual(\n CommandResultFactory({ data: apduResponse }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["ApduResponse", "CommandResultFactory", "isSuccessCommandResult", "SW_INTERRUPTED_EXECUTION", "GetWalletAddressCommand", "SUCCESS_STATUS", "USER_DENIED_STATUS", "command", "defaultArgs", "c", "apdu", "expectedApdu", "args", "continueResponseData", "apduResponse", "response", "responseData"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduBuilder as d,ApduParser as l,CommandResultFactory as o,InvalidStatusWordError as m}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as n}from"@ledgerhq/signer-utils";import{Maybe as p}from"purify-ts";import{BTC_APP_ERRORS as i,BtcAppCommandErrorFactory as c}from"../../app-binder/command/utils/bitcoinAppErrors";import{PROTOCOL_VERSION as R}from"../../app-binder/command/utils/constants";import{BtcCommandUtils as C}from"../../utils/BtcCommandUtils";const a=32;class w{constructor(e,r=new n(i,c,C.isSuccessResponse)){this._args=e;this._errorHelper=r}getApdu(){const e=new d({cla:225,ins:2,p1:0,p2:R}),{walletPolicy:r}=this._args;return e.addBufferToData(r).build()}parseResponse(e){return p.fromNullable(this._errorHelper.getError(e)).orDefaultLazy(()=>{const r=new l(e),t=r.extractFieldByLength(a),s=r.extractFieldByLength(a);return!t||!s?o({error:new m("Data mismatch")}):o({data:{walletId:t,walletHmac:s}})})}}export{w as RegisterWalletAddressCommand};
1
+ import{ApduBuilder as d,ApduParser as l,CommandResultFactory as o,InvalidStatusWordError as m}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as n}from"@ledgerhq/signer-utils";import{Maybe as p}from"purify-ts";import{BTC_APP_ERRORS as i,BtcAppCommandErrorFactory as c}from"../../app-binder/command/utils/bitcoinAppErrors";import{PROTOCOL_VERSION as R}from"../../app-binder/command/utils/constants";import{BtcCommandUtils as A}from"../../utils/BtcCommandUtils";const a=32;class w{constructor(e,r=new n(i,c,A.isSuccessResponse)){this._args=e;this._errorHelper=r}name="registerWalletAddress";getApdu(){const e=new d({cla:225,ins:2,p1:0,p2:R}),{walletPolicy:r}=this._args;return e.addBufferToData(r).build()}parseResponse(e){return p.fromNullable(this._errorHelper.getError(e)).orDefaultLazy(()=>{const r=new l(e),t=r.extractFieldByLength(a),s=r.extractFieldByLength(a);return!t||!s?o({error:new m("Data mismatch")}):o({data:{walletId:t,walletHmac:s}})})}}export{w as RegisterWalletAddressCommand};
2
2
  //# sourceMappingURL=RegisterWalletAddressCommand.js.map