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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/README.md +100 -32
  2. package/lib/cjs/api/SignerBtc.js +1 -1
  3. package/lib/cjs/api/SignerBtc.js.map +1 -1
  4. package/lib/cjs/api/{SignerBtcBuiilder.test.js → SignerBtcBuilder.test.js} +1 -1
  5. package/lib/cjs/api/{SignerBtcBuiilder.test.js.map → SignerBtcBuilder.test.js.map} +1 -1
  6. package/lib/cjs/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.js +1 -1
  7. package/lib/cjs/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.js.map +1 -1
  8. package/lib/cjs/api/app-binder/GetWalletAddressDeviceActionTypes.js.map +1 -1
  9. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js +1 -1
  10. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js.map +1 -1
  11. package/lib/cjs/api/app-binder/SignPsbtDeviceActionTypes.js +1 -1
  12. package/lib/cjs/api/app-binder/SignPsbtDeviceActionTypes.js.map +1 -1
  13. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  14. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +1 -1
  15. package/lib/cjs/api/model/AddressOptions.js +1 -1
  16. package/lib/cjs/api/model/AddressOptions.js.map +1 -1
  17. package/lib/cjs/api/model/MessageOptions.js +2 -0
  18. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  19. package/lib/cjs/api/model/PsbtOptions.js +2 -0
  20. package/lib/cjs/api/model/PsbtOptions.js.map +7 -0
  21. package/lib/cjs/api/model/WalletAddressOptions.js +1 -1
  22. package/lib/cjs/api/model/WalletAddressOptions.js.map +1 -1
  23. package/lib/cjs/index.js.map +1 -1
  24. package/lib/cjs/internal/DefaultSignerBtc.js +1 -1
  25. package/lib/cjs/internal/DefaultSignerBtc.js.map +3 -3
  26. package/lib/cjs/internal/DefaultSignerBtc.test.js +1 -1
  27. package/lib/cjs/internal/DefaultSignerBtc.test.js.map +2 -2
  28. package/lib/cjs/internal/app-binder/BtcAppBinder.js +1 -1
  29. package/lib/cjs/internal/app-binder/BtcAppBinder.js.map +3 -3
  30. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js +1 -1
  31. package/lib/cjs/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  32. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  33. package/lib/cjs/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
  34. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
  35. package/lib/cjs/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
  36. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  37. package/lib/cjs/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  38. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
  39. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
  40. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
  41. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
  42. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
  43. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
  44. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
  45. package/lib/cjs/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
  46. package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
  47. package/lib/cjs/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
  48. package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
  49. package/lib/cjs/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
  50. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
  51. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +2 -2
  52. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
  53. package/lib/cjs/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
  54. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
  55. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +2 -2
  56. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
  57. package/lib/cjs/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js.map +3 -3
  58. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  59. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  60. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  61. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  62. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  63. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  64. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
  65. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
  66. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  67. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  68. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  69. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  70. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js +1 -1
  71. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  72. package/lib/cjs/internal/app-binder/di/appBinderTypes.js +1 -1
  73. package/lib/cjs/internal/app-binder/di/appBinderTypes.js.map +2 -2
  74. package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
  75. package/lib/cjs/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
  76. package/lib/cjs/internal/app-binder/task/ContinueTask.test.js +1 -1
  77. package/lib/cjs/internal/app-binder/task/ContinueTask.test.js.map +2 -2
  78. package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
  79. package/lib/cjs/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
  80. package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
  81. package/lib/cjs/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
  82. package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js +1 -1
  83. package/lib/cjs/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
  84. package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js +1 -1
  85. package/lib/cjs/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
  86. package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
  87. package/lib/cjs/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
  88. package/lib/cjs/internal/data-store/di/dataStoreModule.js +1 -1
  89. package/lib/cjs/internal/data-store/di/dataStoreModule.js.map +3 -3
  90. package/lib/cjs/internal/data-store/di/dataStoreModule.test.js +1 -1
  91. package/lib/cjs/internal/data-store/di/dataStoreModule.test.js.map +2 -2
  92. package/lib/cjs/internal/data-store/model/DataStore.test.js +1 -1
  93. package/lib/cjs/internal/data-store/model/DataStore.test.js.map +2 -2
  94. package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
  95. package/lib/cjs/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
  96. package/lib/cjs/internal/di.js +1 -1
  97. package/lib/cjs/internal/di.js.map +2 -2
  98. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.js +1 -1
  99. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.js.map +3 -3
  100. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.test.js +1 -1
  101. package/lib/cjs/internal/merkle-tree/di/merkleTreeModule.test.js.map +2 -2
  102. package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
  103. package/lib/cjs/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
  104. package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
  105. package/lib/cjs/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
  106. package/lib/cjs/internal/psbt/di/psbtModule.js +1 -1
  107. package/lib/cjs/internal/psbt/di/psbtModule.js.map +3 -3
  108. package/lib/cjs/internal/psbt/di/psbtModule.test.js +1 -1
  109. package/lib/cjs/internal/psbt/di/psbtModule.test.js.map +2 -2
  110. package/lib/cjs/internal/psbt/model/Key.js +1 -1
  111. package/lib/cjs/internal/psbt/model/Key.js.map +2 -2
  112. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  113. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  114. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtSerializer.js +1 -1
  115. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtSerializer.js.map +2 -2
  116. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js +1 -1
  117. package/lib/cjs/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js.map +2 -2
  118. package/lib/cjs/internal/use-cases/di/useCasesModule.js +1 -1
  119. package/lib/cjs/internal/use-cases/di/useCasesModule.js.map +3 -3
  120. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js +1 -1
  121. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  122. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js +1 -1
  123. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js.map +2 -2
  124. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
  125. package/lib/cjs/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
  126. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js +1 -1
  127. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js.map +3 -3
  128. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
  129. package/lib/cjs/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +3 -3
  130. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.js +1 -1
  131. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.js.map +3 -3
  132. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
  133. package/lib/cjs/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
  134. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.js +1 -1
  135. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.js.map +3 -3
  136. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
  137. package/lib/cjs/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +3 -3
  138. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.js +1 -1
  139. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.js.map +3 -3
  140. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
  141. package/lib/cjs/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +3 -3
  142. package/lib/cjs/internal/wallet/di/walletModule.js +1 -1
  143. package/lib/cjs/internal/wallet/di/walletModule.js.map +3 -3
  144. package/lib/cjs/internal/wallet/di/walletModule.test.js +1 -1
  145. package/lib/cjs/internal/wallet/di/walletModule.test.js.map +2 -2
  146. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js +1 -1
  147. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.js.map +2 -2
  148. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  149. package/lib/cjs/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
  150. package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
  151. package/lib/cjs/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
  152. package/lib/cjs/package.json +17 -17
  153. package/lib/esm/api/{SignerBtcBuiilder.test.js → SignerBtcBuilder.test.js} +1 -1
  154. package/lib/esm/api/{SignerBtcBuiilder.test.js.map → SignerBtcBuilder.test.js.map} +1 -1
  155. package/lib/esm/api/model/MessageOptions.js +1 -0
  156. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  157. package/lib/esm/api/model/PsbtOptions.js +1 -0
  158. package/lib/esm/api/model/PsbtOptions.js.map +7 -0
  159. package/lib/esm/internal/DefaultSignerBtc.js +1 -1
  160. package/lib/esm/internal/DefaultSignerBtc.js.map +3 -3
  161. package/lib/esm/internal/DefaultSignerBtc.test.js +1 -1
  162. package/lib/esm/internal/DefaultSignerBtc.test.js.map +2 -2
  163. package/lib/esm/internal/app-binder/BtcAppBinder.js +1 -1
  164. package/lib/esm/internal/app-binder/BtcAppBinder.js.map +3 -3
  165. package/lib/esm/internal/app-binder/BtcAppBinder.test.js +1 -1
  166. package/lib/esm/internal/app-binder/BtcAppBinder.test.js.map +3 -3
  167. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js +1 -1
  168. package/lib/esm/internal/app-binder/command/GetMasterFingerprintCommand.test.js.map +2 -2
  169. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js +1 -1
  170. package/lib/esm/internal/app-binder/command/GetWalletAddressCommand.test.js.map +2 -2
  171. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js +1 -1
  172. package/lib/esm/internal/app-binder/command/RegisterWalletAddressCommand.test.js.map +2 -2
  173. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js +1 -1
  174. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafIndexCommandHandler.test.js.map +2 -2
  175. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js +1 -1
  176. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMerkleLeafProofCommandHandler.test.js.map +3 -3
  177. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js +1 -1
  178. package/lib/esm/internal/app-binder/command/client-command-handlers/GetMoreElementsCommandHandler.test.js.map +2 -2
  179. package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js +1 -1
  180. package/lib/esm/internal/app-binder/command/client-command-handlers/GetPreimageCommandHandler.test.js.map +2 -2
  181. package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js +1 -1
  182. package/lib/esm/internal/app-binder/command/service/ClientCommandInterpreter.test.js.map +2 -2
  183. package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js +1 -1
  184. package/lib/esm/internal/app-binder/command/utils/bitcoinAppError.test.js.map +2 -2
  185. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js +1 -1
  186. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.js.map +2 -2
  187. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js +1 -1
  188. package/lib/esm/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.test.js.map +3 -3
  189. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js +1 -1
  190. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.js.map +2 -2
  191. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js +1 -1
  192. package/lib/esm/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.js.map +3 -3
  193. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  194. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  195. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  196. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  197. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  198. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  199. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js +1 -1
  200. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.js.map +2 -2
  201. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  202. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  203. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  204. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  205. package/lib/esm/internal/app-binder/di/appBinderModule.test.js +1 -1
  206. package/lib/esm/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  207. package/lib/esm/internal/app-binder/di/appBinderTypes.js +1 -1
  208. package/lib/esm/internal/app-binder/di/appBinderTypes.js.map +2 -2
  209. package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js +1 -1
  210. package/lib/esm/internal/app-binder/task/BuildPsbtTask.test.js.map +2 -2
  211. package/lib/esm/internal/app-binder/task/ContinueTask.test.js +1 -1
  212. package/lib/esm/internal/app-binder/task/ContinueTask.test.js.map +2 -2
  213. package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js +1 -1
  214. package/lib/esm/internal/app-binder/task/GetWalletAddressTask.test.js.map +2 -2
  215. package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js +1 -1
  216. package/lib/esm/internal/app-binder/task/PrepareWalletPolicyTask.test.js.map +2 -2
  217. package/lib/esm/internal/app-binder/task/SignMessageTask.test.js +1 -1
  218. package/lib/esm/internal/app-binder/task/SignMessageTask.test.js.map +2 -2
  219. package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js +1 -1
  220. package/lib/esm/internal/app-binder/task/SignPsbtTask.test.js.map +2 -2
  221. package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js +1 -1
  222. package/lib/esm/internal/app-binder/task/UpdatePsbtTask.test.js.map +2 -2
  223. package/lib/esm/internal/data-store/di/dataStoreModule.js +1 -1
  224. package/lib/esm/internal/data-store/di/dataStoreModule.js.map +3 -3
  225. package/lib/esm/internal/data-store/di/dataStoreModule.test.js +1 -1
  226. package/lib/esm/internal/data-store/di/dataStoreModule.test.js.map +2 -2
  227. package/lib/esm/internal/data-store/model/DataStore.test.js +1 -1
  228. package/lib/esm/internal/data-store/model/DataStore.test.js.map +2 -2
  229. package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js +1 -1
  230. package/lib/esm/internal/data-store/service/DefaultDataStoreService.test.js.map +2 -2
  231. package/lib/esm/internal/di.js +1 -1
  232. package/lib/esm/internal/di.js.map +2 -2
  233. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.js +1 -1
  234. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.js.map +3 -3
  235. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.test.js +1 -1
  236. package/lib/esm/internal/merkle-tree/di/merkleTreeModule.test.js.map +2 -2
  237. package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js +1 -1
  238. package/lib/esm/internal/merkle-tree/service/MerkleMapBuilder.test.js.map +2 -2
  239. package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js +1 -1
  240. package/lib/esm/internal/merkle-tree/service/MerkleTreeBuilder.test.js.map +2 -2
  241. package/lib/esm/internal/psbt/di/psbtModule.js +1 -1
  242. package/lib/esm/internal/psbt/di/psbtModule.js.map +3 -3
  243. package/lib/esm/internal/psbt/di/psbtModule.test.js +1 -1
  244. package/lib/esm/internal/psbt/di/psbtModule.test.js.map +2 -2
  245. package/lib/esm/internal/psbt/model/Key.js +1 -1
  246. package/lib/esm/internal/psbt/model/Key.js.map +2 -2
  247. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js +1 -1
  248. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtMapper.test.js.map +2 -2
  249. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtSerializer.js +1 -1
  250. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtSerializer.js.map +2 -2
  251. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js +1 -1
  252. package/lib/esm/internal/psbt/service/psbt/DefaultPsbtV2Normalizer.js.map +2 -2
  253. package/lib/esm/internal/use-cases/di/useCasesModule.js +1 -1
  254. package/lib/esm/internal/use-cases/di/useCasesModule.js.map +3 -3
  255. package/lib/esm/internal/use-cases/di/useCasesModule.test.js +1 -1
  256. package/lib/esm/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  257. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js +1 -1
  258. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.js.map +2 -2
  259. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js +1 -1
  260. package/lib/esm/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.test.js.map +2 -2
  261. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js +1 -1
  262. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.js.map +3 -3
  263. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js +1 -1
  264. package/lib/esm/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.test.js.map +3 -3
  265. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.js +1 -1
  266. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.js.map +3 -3
  267. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js +1 -1
  268. package/lib/esm/internal/use-cases/sign-message/SignMessageUseCase.test.js.map +2 -2
  269. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.js +1 -1
  270. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.js.map +3 -3
  271. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js +1 -1
  272. package/lib/esm/internal/use-cases/sign-psbt/SignPsbtUseCase.test.js.map +3 -3
  273. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.js +1 -1
  274. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.js.map +3 -3
  275. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js +1 -1
  276. package/lib/esm/internal/use-cases/sign-transaction/SignTransactionUseCase.test.js.map +3 -3
  277. package/lib/esm/internal/wallet/di/walletModule.js +1 -1
  278. package/lib/esm/internal/wallet/di/walletModule.js.map +3 -3
  279. package/lib/esm/internal/wallet/di/walletModule.test.js +1 -1
  280. package/lib/esm/internal/wallet/di/walletModule.test.js.map +2 -2
  281. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js +1 -1
  282. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.js.map +2 -2
  283. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js +1 -1
  284. package/lib/esm/internal/wallet/service/DefaultWalletBuilder.test.js.map +2 -2
  285. package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js +1 -1
  286. package/lib/esm/internal/wallet/service/DefaultWalletSerializer.test.js.map +2 -2
  287. package/lib/esm/package.json +17 -17
  288. package/lib/types/api/SignerBtc.d.ts +7 -5
  289. package/lib/types/api/SignerBtc.d.ts.map +1 -1
  290. package/lib/types/api/SignerBtcBuilder.test.d.ts +2 -0
  291. package/lib/types/api/SignerBtcBuilder.test.d.ts.map +1 -0
  292. package/lib/types/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.d.ts +3 -1
  293. package/lib/types/api/app-binder/GetExtendedPublicKeyDeviceActionTypes.d.ts.map +1 -1
  294. package/lib/types/api/app-binder/GetWalletAddressDeviceActionTypes.d.ts +1 -0
  295. package/lib/types/api/app-binder/GetWalletAddressDeviceActionTypes.d.ts.map +1 -1
  296. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts +1 -12
  297. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts.map +1 -1
  298. package/lib/types/api/app-binder/SignPsbtDeviceActionTypes.d.ts +1 -0
  299. package/lib/types/api/app-binder/SignPsbtDeviceActionTypes.d.ts.map +1 -1
  300. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +1 -0
  301. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  302. package/lib/types/api/model/AddressOptions.d.ts +1 -0
  303. package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
  304. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  305. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  306. package/lib/types/api/model/PsbtOptions.d.ts +4 -0
  307. package/lib/types/api/model/PsbtOptions.d.ts.map +1 -0
  308. package/lib/types/api/model/Signature.d.ts.map +1 -1
  309. package/lib/types/api/model/WalletAddressOptions.d.ts +1 -0
  310. package/lib/types/api/model/WalletAddressOptions.d.ts.map +1 -1
  311. package/lib/types/internal/DefaultSignerBtc.d.ts +7 -5
  312. package/lib/types/internal/DefaultSignerBtc.d.ts.map +1 -1
  313. package/lib/types/internal/app-binder/BtcAppBinder.d.ts +4 -0
  314. package/lib/types/internal/app-binder/BtcAppBinder.d.ts.map +1 -1
  315. package/lib/types/internal/app-binder/command/utils/bitcoinAppErrors.d.ts.map +1 -1
  316. package/lib/types/internal/app-binder/device-action/GetWalletAddress/GetWalletAddressDeviceAction.d.ts.map +1 -1
  317. package/lib/types/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.d.ts.map +1 -1
  318. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
  319. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  320. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  321. package/lib/types/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.d.ts.map +1 -1
  322. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
  323. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  324. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  325. package/lib/types/internal/app-binder/di/appBinderTypes.d.ts +0 -1
  326. package/lib/types/internal/app-binder/di/appBinderTypes.d.ts.map +1 -1
  327. package/lib/types/internal/app-binder/task/GetWalletAddressTask.d.ts.map +1 -1
  328. package/lib/types/internal/app-binder/task/SignMessageTask.d.ts.map +1 -1
  329. package/lib/types/internal/app-binder/task/SignPsbtTask.d.ts.map +1 -1
  330. package/lib/types/internal/data-store/di/dataStoreModule.d.ts.map +1 -1
  331. package/lib/types/internal/di.d.ts.map +1 -1
  332. package/lib/types/internal/merkle-tree/di/merkleTreeModule.d.ts.map +1 -1
  333. package/lib/types/internal/psbt/di/psbtModule.d.ts.map +1 -1
  334. package/lib/types/internal/use-cases/di/useCasesModule.d.ts.map +1 -1
  335. package/lib/types/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.d.ts +1 -0
  336. package/lib/types/internal/use-cases/get-extended-public-key/GetExtendedPublicKeyUseCase.d.ts.map +1 -1
  337. package/lib/types/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.d.ts +1 -1
  338. package/lib/types/internal/use-cases/get-wallet-address/GetWalletAddressUseCase.d.ts.map +1 -1
  339. package/lib/types/internal/use-cases/sign-message/SignMessageUseCase.d.ts +1 -1
  340. package/lib/types/internal/use-cases/sign-message/SignMessageUseCase.d.ts.map +1 -1
  341. package/lib/types/internal/use-cases/sign-psbt/SignPsbtUseCase.d.ts +1 -1
  342. package/lib/types/internal/use-cases/sign-psbt/SignPsbtUseCase.d.ts.map +1 -1
  343. package/lib/types/internal/use-cases/sign-transaction/SignTransactionUseCase.d.ts +1 -1
  344. package/lib/types/internal/use-cases/sign-transaction/SignTransactionUseCase.d.ts.map +1 -1
  345. package/lib/types/internal/wallet/di/walletModule.d.ts.map +1 -1
  346. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  347. package/package.json +19 -19
  348. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
  349. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
  350. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
  351. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
  352. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
  353. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
  354. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
  355. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
  356. package/lib/types/api/SignerBtcBuiilder.test.d.ts +0 -2
  357. package/lib/types/api/SignerBtcBuiilder.test.d.ts.map +0 -1
  358. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts +0 -19
  359. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts.map +0 -1
  360. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts +0 -2
  361. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/device-management-kit"),i=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),s=require("../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock"),l=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),o=require("./SignPsbtDeviceAction");jest.mock("@ledgerhq/device-management-kit",()=>({...jest.requireActual("@ledgerhq/device-management-kit"),OpenAppDeviceAction:jest.fn(()=>({makeStateMachine:jest.fn()}))}));describe("SignPsbtDeviceAction",()=>{const d=jest.fn(),n=jest.fn(),u=jest.fn();function c(){return{signPsbt:d,prepareWalletPolicy:n,buildPsbt:u}}describe("Success case",()=>{it("should call external dependencies with the correct parameters",r=>{(0,s.setupOpenAppDAMock)();const t=new o.SignPsbtDeviceAction({input:{wallet:"ApiWallet",psbt:"Hello world",walletBuilder:"WalletBuilder",walletSerializer:"WalletSerializer",dataStoreService:"DataStoreService",psbtMapper:"PsbtMapper",valueParser:"ValueParser"}});jest.spyOn(t,"extractDependencies").mockReturnValue(c()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"Wallet"})),u.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"BuildPsbtResult"})),d.mockResolvedValueOnce((0,e.CommandResultFactory)({data:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}]}));const a=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction},status:e.DeviceActionStatus.Pending},{output:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}],status:e.DeviceActionStatus.Completed}],{observable:S}=(0,l.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r);S.subscribe({complete:()=>{expect(n).toHaveBeenCalledWith(expect.objectContaining({input:{wallet:"ApiWallet",walletBuilder:"WalletBuilder"}})),expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{psbt:"Hello world",wallet:"Wallet",dataStoreService:"DataStoreService",psbtMapper:"PsbtMapper"}})),expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{wallet:"Wallet",buildPsbtResult:"BuildPsbtResult",walletSerializer:"WalletSerializer",valueParser:"ValueParser"}}))}})})}),describe("error cases",()=>{beforeEach(()=>{jest.resetAllMocks()}),it("Error if open app fails",r=>{(0,s.setupOpenAppDAMock)(new e.UnknownDeviceExchangeError("Mocked error"));const t=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}],a=new o.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});(0,l.testDeviceActionStates)(a,t,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if prepareWallet fails",r=>{(0,s.setupOpenAppDAMock)();const t=new o.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});jest.spyOn(t,"extractDependencies").mockReturnValue(c()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,l.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if buildPsbt fails",r=>{(0,s.setupOpenAppDAMock)();const t=new o.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});jest.spyOn(t,"extractDependencies").mockReturnValue(c()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),u.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,l.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if signPsbt fails",r=>{(0,s.setupOpenAppDAMock)();const t=new o.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});jest.spyOn(t,"extractDependencies").mockReturnValue(c()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),u.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),d.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,l.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if signPsbt throws an exception",r=>{(0,s.setupOpenAppDAMock)();const t=new o.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});jest.spyOn(t,"extractDependencies").mockReturnValue(c()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),u.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),d.mockRejectedValueOnce(new p.InvalidStatusWordError("Mocked error"));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Error,error:new p.InvalidStatusWordError("Mocked error")}];(0,l.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Return a Left if the final state has no signature",r=>{(0,s.setupOpenAppDAMock)();const t=new o.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});jest.spyOn(t,"extractDependencies").mockReturnValue(c()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),u.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),d.mockResolvedValueOnce((0,e.CommandResultFactory)({data:void 0}));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Error,error:new m.UnknownDAError("No error in final state")}];(0,l.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)})})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),P=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/device-management-kit"),l=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),o=require("../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock"),u=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),d=require("./SignPsbtDeviceAction");vi.mock("@ledgerhq/device-management-kit",async s=>({...await s(),OpenAppDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("SignPsbtDeviceAction",()=>{const s=vi.fn(),i=vi.fn(),c=vi.fn();function p(){return{signPsbt:s,prepareWalletPolicy:i,buildPsbt:c}}describe("Success case",()=>{it("should call external dependencies with the correct parameters",()=>new Promise((r,a)=>{(0,o.setupOpenAppDAMock)();const t=new d.SignPsbtDeviceAction({input:{wallet:"ApiWallet",psbt:"Hello world",walletBuilder:"WalletBuilder",walletSerializer:"WalletSerializer",dataStoreService:"DataStoreService",psbtMapper:"PsbtMapper",valueParser:"ValueParser",skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"Wallet"})),c.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"BuildPsbtResult"})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({data:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}]}));const n=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction},status:e.DeviceActionStatus.Pending},{output:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}],status:e.DeviceActionStatus.Completed}];(0,u.testDeviceActionStates)(t,n,(0,l.makeDeviceActionInternalApiMock)(),{onDone:()=>{expect(i).toHaveBeenCalledWith(expect.objectContaining({input:{wallet:"ApiWallet",walletBuilder:"WalletBuilder"}})),expect(c).toHaveBeenCalledWith(expect.objectContaining({input:{psbt:"Hello world",wallet:"Wallet",dataStoreService:"DataStoreService",psbtMapper:"PsbtMapper"}})),expect(s).toHaveBeenCalledWith(expect.objectContaining({input:{wallet:"Wallet",buildPsbtResult:"BuildPsbtResult",walletSerializer:"WalletSerializer",valueParser:"ValueParser"}})),r()},onError:a})})),it("should be successful while skipping OpenApp",()=>new Promise((r,a)=>{(0,o.setupOpenAppDAMock)();const t=new d.SignPsbtDeviceAction({input:{wallet:"ApiWallet",psbt:"Hello world",walletBuilder:"WalletBuilder",walletSerializer:"WalletSerializer",dataStoreService:"DataStoreService",psbtMapper:"PsbtMapper",valueParser:"ValueParser",skipOpenApp:!0}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"Wallet"})),c.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"BuildPsbtResult"})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({data:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}]}));const n=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction},status:e.DeviceActionStatus.Pending},{output:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}],status:e.DeviceActionStatus.Completed}];(0,u.testDeviceActionStates)(t,n,(0,l.makeDeviceActionInternalApiMock)(),{onDone:r,onError:a})}))}),describe("error cases",()=>{beforeEach(()=>{vi.resetAllMocks()}),it("Error if open app fails",()=>new Promise((r,a)=>{(0,o.setupOpenAppDAMock)(new e.UnknownDeviceExchangeError("Mocked error"));const t=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}],n=new d.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});(0,u.testDeviceActionStates)(n,t,(0,l.makeDeviceActionInternalApiMock)(),{onDone:r,onError:a})})),it("Error if prepareWallet fails",()=>new Promise((r,a)=>{(0,o.setupOpenAppDAMock)();const t=new d.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,u.testDeviceActionStates)(t,n,(0,l.makeDeviceActionInternalApiMock)(),{onDone:r,onError:a})})),it("Error if buildPsbt fails",()=>new Promise((r,a)=>{(0,o.setupOpenAppDAMock)();const t=new d.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),c.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,u.testDeviceActionStates)(t,n,(0,l.makeDeviceActionInternalApiMock)(),{onDone:r,onError:a})})),it("Error if signPsbt fails",()=>new Promise((r,a)=>{(0,o.setupOpenAppDAMock)();const t=new d.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),c.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,u.testDeviceActionStates)(t,n,(0,l.makeDeviceActionInternalApiMock)(),{onDone:r,onError:a})})),it("Error if signPsbt throws an exception",()=>new Promise((r,a)=>{(0,o.setupOpenAppDAMock)();const t=new d.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),c.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),s.mockRejectedValueOnce(new m.InvalidStatusWordError("Mocked error"));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Error,error:new m.InvalidStatusWordError("Mocked error")}];(0,u.testDeviceActionStates)(t,n,(0,l.makeDeviceActionInternalApiMock)(),{onDone:r,onError:a})})),it("Return a Left if the final state has no signature",()=>new Promise((r,a)=>{(0,o.setupOpenAppDAMock)();const t=new d.SignPsbtDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),i.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),c.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{}})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({data:void 0}));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Error,error:new P.UnknownDAError("No error in final state")}];(0,u.testDeviceActionStates)(t,n,(0,l.makeDeviceActionInternalApiMock)(),{onDone:r,onError:a})}))})});
2
2
  //# sourceMappingURL=SignPsbtDeviceAction.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { UnknownDAError } from \"@ledgerhq/device-management-kit\";\nimport { InvalidStatusWordError } from \"@ledgerhq/device-management-kit\";\n\nimport { type SignPsbtDAState } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type RegisteredWallet } from \"@api/model/Wallet\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport { type BuildPsbtTaskResult } from \"@internal/app-binder/task/BuildPsbtTask\";\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 Wallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { SignPsbtDeviceAction } from \"./SignPsbtDeviceAction\";\n\njest.mock(\n \"@ledgerhq/device-management-kit\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n () => ({\n ...jest.requireActual(\"@ledgerhq/device-management-kit\"),\n OpenAppDeviceAction: jest.fn(() => ({\n makeStateMachine: jest.fn(),\n })),\n }),\n);\n\ndescribe(\"SignPsbtDeviceAction\", () => {\n const signPsbtMock = jest.fn();\n const prepareWalletPolicyMock = jest.fn();\n const buildPsbtMock = jest.fn();\n\n function extractDependenciesMock() {\n return {\n signPsbt: signPsbtMock,\n prepareWalletPolicy: prepareWalletPolicyMock,\n buildPsbt: buildPsbtMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Wallet\" as unknown as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"BuildPsbtResult\" as unknown as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> PrepareWalletPolicy -> BuildPsbt -> SignPsbt\n const expectedStates: Array<SignPsbtDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n status: DeviceActionStatus.Completed,\n },\n ];\n\n const { observable } = testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n\n // @todo Put this in a onDone handle of testDeviceActionStates\n observable.subscribe({\n complete: () => {\n expect(prepareWalletPolicyMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: { wallet: \"ApiWallet\", walletBuilder: \"WalletBuilder\" },\n }),\n );\n expect(buildPsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Hello world\",\n wallet: \"Wallet\",\n dataStoreService: \"DataStoreService\",\n psbtMapper: \"PsbtMapper\",\n },\n }),\n );\n expect(signPsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n wallet: \"Wallet\",\n buildPsbtResult: \"BuildPsbtResult\",\n walletSerializer: \"WalletSerializer\",\n valueParser: \"ValueParser\",\n },\n }),\n );\n },\n });\n });\n });\n\n describe(\"error cases\", () => {\n beforeEach(() => {\n jest.resetAllMocks();\n });\n it(\"Error if open app fails\", (done) => {\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if prepareWallet fails\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if buildPsbt fails\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if signPsbt fails\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if signPsbt throws an exception\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({ data: {} as Wallet }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({ data: {} as BuildPsbtTaskResult }),\n );\n signPsbtMock.mockRejectedValueOnce(\n new InvalidStatusWordError(\"Mocked error\"),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Return a Left if the final state has no signature\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: undefined,\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"No error in final state\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_device_management_kit", "import_makeInternalApi", "import_setupOpenAppDAMock", "import_testDeviceActionStates", "import_SignPsbtDeviceAction", "signPsbtMock", "prepareWalletPolicyMock", "buildPsbtMock", "extractDependenciesMock", "done", "deviceAction", "expectedStates", "observable"]
4
+ "sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports: off */\nimport {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { UnknownDAError } from \"@ledgerhq/device-management-kit\";\nimport { InvalidStatusWordError } from \"@ledgerhq/device-management-kit\";\n\nimport { type SignPsbtDAState } from \"@api/app-binder/SignPsbtDeviceActionTypes\";\nimport { type RegisteredWallet } from \"@api/model/Wallet\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport { type BuildPsbtTaskResult } from \"@internal/app-binder/task/BuildPsbtTask\";\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 Wallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { SignPsbtDeviceAction } from \"./SignPsbtDeviceAction\";\n\nvi.mock(\"@ledgerhq/device-management-kit\", async (importOriginal) => {\n const original =\n await importOriginal<typeof import(\"@ledgerhq/device-management-kit\")>();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n});\n\ndescribe(\"SignPsbtDeviceAction\", () => {\n const signPsbtMock = vi.fn();\n const prepareWalletPolicyMock = vi.fn();\n const buildPsbtMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n signPsbt: signPsbtMock,\n prepareWalletPolicy: prepareWalletPolicyMock,\n buildPsbt: buildPsbtMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Wallet\" as unknown as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"BuildPsbtResult\" as unknown as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> PrepareWalletPolicy -> BuildPsbt -> SignPsbt\n const expectedStates: Array<SignPsbtDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n expect(prepareWalletPolicyMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n wallet: \"ApiWallet\",\n walletBuilder: \"WalletBuilder\",\n },\n }),\n );\n\n expect(buildPsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Hello world\",\n wallet: \"Wallet\",\n dataStoreService: \"DataStoreService\",\n psbtMapper: \"PsbtMapper\",\n },\n }),\n );\n\n expect(signPsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n wallet: \"Wallet\",\n buildPsbtResult: \"BuildPsbtResult\",\n walletSerializer: \"WalletSerializer\",\n valueParser: \"ValueParser\",\n },\n }),\n );\n resolve();\n },\n onError: reject,\n },\n );\n }));\n\n it(\"should be successful while skipping OpenApp\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n skipOpenApp: true,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Wallet\" as unknown as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"BuildPsbtResult\" as unknown as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> PrepareWalletPolicy -> BuildPsbt -> SignPsbt\n const expectedStates: Array<SignPsbtDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n beforeEach(() => {\n vi.resetAllMocks();\n });\n it(\"Error if open app fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if prepareWallet fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if buildPsbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if signPsbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if signPsbt throws an exception\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({ data: {} as Wallet }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({ data: {} as BuildPsbtTaskResult }),\n );\n signPsbtMock.mockRejectedValueOnce(\n new InvalidStatusWordError(\"Mocked error\"),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Return a Left if the final state has no signature\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPsbtDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n prepareWalletPolicyMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as Wallet,\n }),\n );\n buildPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {} as BuildPsbtTaskResult,\n }),\n );\n signPsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: undefined,\n }),\n );\n\n const expectedStates: Array<SignPsbtDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"No error in final state\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_makeInternalApi", "import_setupOpenAppDAMock", "import_testDeviceActionStates", "import_SignPsbtDeviceAction", "importOriginal", "signPsbtMock", "prepareWalletPolicyMock", "buildPsbtMock", "extractDependenciesMock", "resolve", "reject", "deviceAction", "expectedStates"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),i=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),s=require("../../../app-binder/device-action/__test-utils__/setupSignPsbtDAMock"),o=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),l=require("./SignTransactionDeviceAction");jest.mock("@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction",()=>({...jest.requireActual("@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction"),SignPsbtDeviceAction:jest.fn(()=>({makeStateMachine:jest.fn()}))}));describe("SignTransactionDeviceAction",()=>{const n=jest.fn(),c=jest.fn();function u(){return{updatePsbt:n,extractTransaction:c}}describe("Success case",()=>{it("should call external dependencies with the correct parameters",r=>{(0,s.setupSignPsbtDAMock)([{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}]);const t=new l.SignTransactionDeviceAction({input:{wallet:"ApiWallet",psbt:"Hello world",walletBuilder:"WalletBuilder",walletSerializer:"WalletSerializer",dataStoreService:"DataStoreService",psbtMapper:"PsbtMapper",valueParser:"ValueParser"}});jest.spyOn(t,"extractDependencies").mockReturnValue(u()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"Psbt"})),c.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"0x42"}));const a=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:"0x42",status:e.DeviceActionStatus.Completed}],{observable:d}=(0,o.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r);d.subscribe({complete:()=>{expect(n).toHaveBeenCalledWith(expect.objectContaining({input:{psbt:"Hello world",psbtMapper:"PsbtMapper",signatures:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}],valueParser:"ValueParser"}})),expect(c).toHaveBeenCalledWith(expect.objectContaining({input:{psbt:"Psbt",valueParser:"ValueParser"}}))}})})}),describe("error cases",()=>{beforeEach(()=>{jest.resetAllMocks()}),it("Error if sign psbt fails",r=>{(0,s.setupSignPsbtDAMock)([],new e.UnknownDeviceExchangeError("Mocked error"));const t=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}],a=new l.SignTransactionDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});(0,o.testDeviceActionStates)(a,t,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if update psbt fails",r=>{(0,s.setupSignPsbtDAMock)();const t=new l.SignTransactionDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});jest.spyOn(t,"extractDependencies").mockReturnValue(u()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,o.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if extract transaction fails",r=>{(0,s.setupSignPsbtDAMock)();const t=new l.SignTransactionDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{}}});jest.spyOn(t,"extractDependencies").mockReturnValue(u()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"Psbt"})),c.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,o.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)})})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),o=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),l=require("../../../app-binder/device-action/__test-utils__/setupSignPsbtDAMock"),c=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),u=require("./SignTransactionDeviceAction");vi.mock("@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction",async r=>({...await r(),SignPsbtDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("SignTransactionDeviceAction",()=>{const r=vi.fn(),s=vi.fn();function p(){return{updatePsbt:r,extractTransaction:s}}describe("Success case",()=>{it("should call external dependencies with the correct parameters",()=>new Promise((a,n)=>{(0,l.setupSignPsbtDAMock)([{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}]);const t=new u.SignTransactionDeviceAction({input:{wallet:"ApiWallet",psbt:"Hello world",walletBuilder:"WalletBuilder",walletSerializer:"WalletSerializer",dataStoreService:"DataStoreService",psbtMapper:"PsbtMapper",valueParser:"ValueParser",skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),r.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"Psbt"})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"0x42"}));const i=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:"0x42",status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(t,i,(0,o.makeDeviceActionInternalApiMock)(),{onDone:()=>{expect(r).toHaveBeenCalledWith(expect.objectContaining({input:{psbt:"Hello world",psbtMapper:"PsbtMapper",signatures:[{inputIndex:0,pubkey:Uint8Array.from([4,5,6]),signature:Uint8Array.from([1,2,3])}],valueParser:"ValueParser"}})),expect(s).toHaveBeenCalledWith(expect.objectContaining({input:{psbt:"Psbt",valueParser:"ValueParser"}})),a()},onError:n})}))}),describe("error cases",()=>{beforeEach(()=>{vi.resetAllMocks()}),it("Error if sign psbt fails",()=>new Promise((a,n)=>{(0,l.setupSignPsbtDAMock)([],new e.UnknownDeviceExchangeError("Mocked error"));const t=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}],i=new u.SignTransactionDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});(0,c.testDeviceActionStates)(i,t,(0,o.makeDeviceActionInternalApiMock)(),{onDone:a,onError:n})})),it("Error if update psbt fails",()=>new Promise((a,n)=>{(0,l.setupSignPsbtDAMock)();const t=new u.SignTransactionDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),r.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const i=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,c.testDeviceActionStates)(t,i,(0,o.makeDeviceActionInternalApiMock)(),{onDone:a,onError:n})})),it("Error if extract transaction fails",()=>new Promise((a,n)=>{(0,l.setupSignPsbtDAMock)();const t=new u.SignTransactionDeviceAction({input:{wallet:{},psbt:"Hello world",walletBuilder:{},walletSerializer:{},dataStoreService:{},psbtMapper:{},valueParser:{},skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockReturnValue(p()),r.mockResolvedValueOnce((0,e.CommandResultFactory)({data:"Psbt"})),s.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const i=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,c.testDeviceActionStates)(t,i,(0,o.makeDeviceActionInternalApiMock)(),{onDone:a,onError:n})}))})});
2
2
  //# sourceMappingURL=SignTransactionDeviceAction.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type SignTransactionDAState } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type RegisteredWallet } from \"@api/model/Wallet\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupSignPsbtDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Psbt as InternalPsbt } from \"@internal/psbt/model/Psbt\";\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\nimport { SignTransactionDeviceAction } from \"./SignTransactionDeviceAction\";\n\njest.mock(\n \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\",\n () => ({\n ...jest.requireActual(\n \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\",\n ),\n SignPsbtDeviceAction: jest.fn(() => ({\n makeStateMachine: jest.fn(),\n })),\n }),\n);\n\ndescribe(\"SignTransactionDeviceAction\", () => {\n const updatePsbtMock = jest.fn();\n const extractTransactionMock = jest.fn();\n\n function extractDependenciesMock() {\n return {\n updatePsbt: updatePsbtMock,\n extractTransaction: extractTransactionMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", (done) => {\n setupSignPsbtDAMock([\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ]);\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Psbt\" as unknown as InternalPsbt,\n }),\n );\n extractTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"0x42\",\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n const expectedStates: Array<SignTransactionDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: \"0x42\",\n status: DeviceActionStatus.Completed,\n },\n ];\n\n const { observable } = testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n\n // @todo Put this in a onDone handle of testDeviceActionStates\n observable.subscribe({\n complete: () => {\n expect(updatePsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Hello world\",\n psbtMapper: \"PsbtMapper\",\n signatures: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n valueParser: \"ValueParser\",\n },\n }),\n );\n expect(extractTransactionMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Psbt\",\n valueParser: \"ValueParser\",\n },\n }),\n );\n },\n });\n });\n });\n\n describe(\"error cases\", () => {\n beforeEach(() => {\n jest.resetAllMocks();\n });\n it(\"Error if sign psbt fails\", (done) => {\n setupSignPsbtDAMock([], new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n it(\"Error if update psbt fails\", (done) => {\n setupSignPsbtDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n it(\"Error if extract transaction fails\", (done) => {\n setupSignPsbtDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Psbt\" as unknown as InternalPsbt,\n }),\n );\n extractTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_device_management_kit", "import_makeInternalApi", "import_setupSignPsbtDAMock", "import_testDeviceActionStates", "import_SignTransactionDeviceAction", "updatePsbtMock", "extractTransactionMock", "extractDependenciesMock", "done", "deviceAction", "expectedStates", "observable"]
4
+ "sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports: off */\nimport {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type SignTransactionDAState } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type RegisteredWallet } from \"@api/model/Wallet\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupSignPsbtDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Psbt as InternalPsbt } from \"@internal/psbt/model/Psbt\";\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\nimport { SignTransactionDeviceAction } from \"./SignTransactionDeviceAction\";\n\nvi.mock(\n \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\",\n async (importOriginal) => {\n const original =\n await importOriginal<\n typeof import(\"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\")\n >();\n return {\n ...original,\n SignPsbtDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n },\n);\n\ndescribe(\"SignTransactionDeviceAction\", () => {\n const updatePsbtMock = vi.fn();\n const extractTransactionMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n updatePsbt: updatePsbtMock,\n extractTransaction: extractTransactionMock,\n };\n }\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock([\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ]);\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: \"ApiWallet\" as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: \"WalletBuilder\" as unknown as WalletBuilder,\n walletSerializer: \"WalletSerializer\" as unknown as WalletSerializer,\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n psbtMapper: \"PsbtMapper\" as unknown as PsbtMapper,\n valueParser: \"ValueParser\" as unknown as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Psbt\" as unknown as InternalPsbt,\n }),\n );\n extractTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"0x42\",\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n const expectedStates: Array<SignTransactionDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: \"0x42\",\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n expect(updatePsbtMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Hello world\",\n psbtMapper: \"PsbtMapper\",\n signatures: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([0x04, 0x05, 0x06]),\n signature: Uint8Array.from([0x01, 0x02, 0x03]),\n },\n ],\n valueParser: \"ValueParser\",\n },\n }),\n );\n expect(extractTransactionMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n psbt: \"Psbt\",\n valueParser: \"ValueParser\",\n },\n }),\n );\n resolve();\n },\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n beforeEach(() => {\n vi.resetAllMocks();\n });\n it(\"Error if sign psbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock([], new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if update psbt fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"Error if extract transaction fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupSignPsbtDAMock();\n\n const deviceAction = new SignTransactionDeviceAction({\n input: {\n wallet: {} as unknown as RegisteredWallet,\n psbt: \"Hello world\",\n walletBuilder: {} as WalletBuilder,\n walletSerializer: {} as WalletSerializer,\n dataStoreService: {} as DataStoreService,\n psbtMapper: {} as PsbtMapper,\n valueParser: {} as ValueParser,\n skipOpenApp: false,\n },\n });\n\n // Mock the dependencies to return some sample data\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n updatePsbtMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: \"Psbt\" as unknown as InternalPsbt,\n }),\n );\n extractTransactionMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignTransactionDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_makeInternalApi", "import_setupSignPsbtDAMock", "import_testDeviceActionStates", "import_SignTransactionDeviceAction", "importOriginal", "updatePsbtMock", "extractTransactionMock", "extractDependenciesMock", "resolve", "reject", "deviceAction", "expectedStates"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var S=(t,e)=>{for(var s in e)i(t,s,{get:e[s],enumerable:!0})},v=(t,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of a(e))!r.call(t,n)&&n!==s&&i(t,n,{get:()=>e[n],enumerable:!(o=c(e,n))||o.enumerable});return t};var p=t=>v(i({},"__esModule",{value:!0}),t);var j={};S(j,{makeDeviceActionInternalApiMock:()=>g});module.exports=p(j);const M=jest.fn(),k=jest.fn(),f=jest.fn(),m=jest.fn(),D=jest.fn();function g(){return{sendCommand:M,getDeviceSessionState:k,getDeviceSessionStateObservable:f,setDeviceSessionState:m,getManagerApiService:D}}0&&(module.exports={makeDeviceActionInternalApiMock});
1
+ "use strict";var c=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var v=(n,e)=>{for(var i in e)c(n,i,{get:e[i],enumerable:!0})},S=(n,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!r.call(n,t)&&t!==i&&c(n,t,{get:()=>e[t],enumerable:!(o=s(e,t))||o.enumerable});return n};var M=n=>S(c({},"__esModule",{value:!0}),n);var u={};v(u,{makeDeviceActionInternalApiMock:()=>b});module.exports=M(u);const p=vi.fn(),d=vi.fn(),f=vi.fn(),k=vi.fn(),l=vi.fn(),g=vi.fn(),m=vi.fn(),D=vi.fn(),A=vi.fn();function b(){return{sendApdu:p,sendCommand:d,getDeviceModel:f,getDeviceSessionState:k,getDeviceSessionStateObservable:l,setDeviceSessionState:g,getManagerApiService:m,getSecureChannelService:D,disableRefresher:A}}0&&(module.exports={makeDeviceActionInternalApiMock});
2
2
  //# sourceMappingURL=makeInternalApi.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/makeInternalApi.ts"],
4
- "sourcesContent": ["import { type InternalApi } from \"@ledgerhq/device-management-kit\";\n\nconst sendCommandMock = jest.fn();\nconst apiGetDeviceSessionStateMock = jest.fn();\nconst apiGetDeviceSessionStateObservableMock = jest.fn();\nconst setDeviceSessionStateMock = jest.fn();\nconst getManagerApiServiceMock = jest.fn();\n\nexport function makeDeviceActionInternalApiMock(): jest.Mocked<InternalApi> {\n return {\n sendCommand: sendCommandMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n getDeviceSessionStateObservable: apiGetDeviceSessionStateObservableMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n getManagerApiService: getManagerApiServiceMock,\n };\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qCAAAE,IAAA,eAAAC,EAAAH,GAEA,MAAMI,EAAkB,KAAK,GAAG,EAC1BC,EAA+B,KAAK,GAAG,EACvCC,EAAyC,KAAK,GAAG,EACjDC,EAA4B,KAAK,GAAG,EACpCC,EAA2B,KAAK,GAAG,EAElC,SAASN,GAA4D,CAC1E,MAAO,CACL,YAAaE,EACb,sBAAuBC,EACvB,gCAAiCC,EACjC,sBAAuBC,EACvB,qBAAsBC,CACxB,CACF",
6
- "names": ["makeInternalApi_exports", "__export", "makeDeviceActionInternalApiMock", "__toCommonJS", "sendCommandMock", "apiGetDeviceSessionStateMock", "apiGetDeviceSessionStateObservableMock", "setDeviceSessionStateMock", "getManagerApiServiceMock"]
4
+ "sourcesContent": ["import { type InternalApi } from \"@ledgerhq/device-management-kit\";\nimport { type Mocked } from \"vitest\";\n\nconst sendApduMock = vi.fn();\nconst sendCommandMock = vi.fn();\nconst apiGetDeviceModelMock = vi.fn();\nconst apiGetDeviceSessionStateMock = vi.fn();\nconst apiGetDeviceSessionStateObservableMock = vi.fn();\nconst setDeviceSessionStateMock = vi.fn();\nconst getManagerApiServiceMock = vi.fn();\nconst getSecureChannelServiceMock = vi.fn();\nconst disableRefresherMock = vi.fn();\n\nexport function makeDeviceActionInternalApiMock(): Mocked<InternalApi> {\n return {\n sendApdu: sendApduMock,\n sendCommand: sendCommandMock,\n getDeviceModel: apiGetDeviceModelMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n getDeviceSessionStateObservable: apiGetDeviceSessionStateObservableMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n getManagerApiService: getManagerApiServiceMock,\n getSecureChannelService: getSecureChannelServiceMock,\n disableRefresher: disableRefresherMock,\n };\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qCAAAE,IAAA,eAAAC,EAAAH,GAGA,MAAMI,EAAe,GAAG,GAAG,EACrBC,EAAkB,GAAG,GAAG,EACxBC,EAAwB,GAAG,GAAG,EAC9BC,EAA+B,GAAG,GAAG,EACrCC,EAAyC,GAAG,GAAG,EAC/CC,EAA4B,GAAG,GAAG,EAClCC,EAA2B,GAAG,GAAG,EACjCC,EAA8B,GAAG,GAAG,EACpCC,EAAuB,GAAG,GAAG,EAE5B,SAASV,GAAuD,CACrE,MAAO,CACL,SAAUE,EACV,YAAaC,EACb,eAAgBC,EAChB,sBAAuBC,EACvB,gCAAiCC,EACjC,sBAAuBC,EACvB,qBAAsBC,EACtB,wBAAyBC,EACzB,iBAAkBC,CACpB,CACF",
6
+ "names": ["makeInternalApi_exports", "__export", "makeDeviceActionInternalApiMock", "__toCommonJS", "sendApduMock", "sendCommandMock", "apiGetDeviceModelMock", "apiGetDeviceSessionStateMock", "apiGetDeviceSessionStateObservableMock", "setDeviceSessionStateMock", "getManagerApiServiceMock", "getSecureChannelServiceMock", "disableRefresherMock"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var f=(e,n)=>{for(var i in n)r(e,i,{get:n[i],enumerable:!0})},u=(e,n,i,m)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of s(n))!d.call(e,t)&&t!==i&&r(e,t,{get:()=>n[t],enumerable:!(m=c(n,t))||m.enumerable});return e};var k=e=>u(r({},"__esModule",{value:!0}),e);var A={};f(A,{setupOpenAppDAMock:()=>l});module.exports=k(A);var o=require("@ledgerhq/device-management-kit"),p=require("purify-ts"),a=require("xstate");const l=e=>{o.OpenAppDeviceAction.mockImplementation(()=>({makeStateMachine:jest.fn().mockImplementation(()=>(0,a.createMachine)({initial:"pending",states:{pending:{entry:(0,a.assign)({intermediateValue:{requiredUserInteraction:o.UserInteractionRequired.ConfirmOpenApp}}),after:{0:"done"}},done:{type:"final"}},output:()=>e?(0,p.Left)(e):(0,p.Right)(void 0)}))}))};0&&(module.exports={setupOpenAppDAMock});
1
+ "use strict";var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var s=(e,n)=>{for(var i in n)a(e,i,{get:n[i],enumerable:!0})},u=(e,n,i,m)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of f(n))!d.call(e,t)&&t!==i&&a(e,t,{get:()=>n[t],enumerable:!(m=c(n,t))||m.enumerable});return e};var k=e=>u(a({},"__esModule",{value:!0}),e);var A={};s(A,{setupOpenAppDAMock:()=>l});module.exports=k(A);var o=require("@ledgerhq/device-management-kit"),p=require("purify-ts"),r=require("xstate");const l=e=>{o.OpenAppDeviceAction.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>(0,r.createMachine)({initial:"pending",states:{pending:{entry:(0,r.assign)({intermediateValue:{requiredUserInteraction:o.UserInteractionRequired.ConfirmOpenApp}}),after:{0:"done"}},done:{type:"final"}},output:()=>e?(0,p.Left)(e):(0,p.Right)(void 0)}))}))};0&&(module.exports={setupOpenAppDAMock});
2
2
  //# sourceMappingURL=setupOpenAppDAMock.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.ts"],
4
- "sourcesContent": ["import {\n OpenAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, createMachine } from \"xstate\";\n\nexport const setupOpenAppDAMock = (error?: unknown) => {\n (OpenAppDeviceAction as jest.Mock).mockImplementation(() => ({\n makeStateMachine: jest.fn().mockImplementation(() =>\n createMachine({\n initial: \"pending\",\n states: {\n pending: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n }),\n after: {\n 0: \"done\",\n },\n },\n done: {\n type: \"final\",\n },\n },\n output: () => (error ? Left(error) : Right(undefined)),\n }),\n ),\n }));\n};\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAGO,2CACPC,EAA4B,qBAC5BC,EAAsC,kBAE/B,MAAMJ,EAAsBK,GAAoB,CACpD,sBAAkC,mBAAmB,KAAO,CAC3D,iBAAkB,KAAK,GAAG,EAAE,mBAAmB,OAC7C,iBAAc,CACZ,QAAS,UACT,OAAQ,CACN,QAAS,CACP,SAAO,UAAO,CACZ,kBAAmB,CACjB,wBAAyB,0BAAwB,cACnD,CACF,CAAC,EACD,MAAO,CACL,EAAG,MACL,CACF,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQ,IAAOA,KAAQ,QAAKA,CAAK,KAAI,SAAM,MAAS,CACtD,CAAC,CACH,CACF,EAAE,CACJ",
4
+ "sourcesContent": ["import {\n OpenAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { type Mock } from \"vitest\";\nimport { assign, createMachine } from \"xstate\";\n\nexport const setupOpenAppDAMock = (error?: unknown) => {\n (OpenAppDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n initial: \"pending\",\n states: {\n pending: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n }),\n after: {\n 0: \"done\",\n },\n },\n done: {\n type: \"final\",\n },\n },\n output: () => (error ? Left(error) : Right(undefined)),\n }),\n ),\n }));\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAGO,2CACPC,EAA4B,qBAE5BC,EAAsC,kBAE/B,MAAMJ,EAAsBK,GAAoB,CACpD,sBAA6B,mBAAmB,KAAO,CACtD,iBAAkB,GAAG,GAAG,EAAE,mBAAmB,OAC3C,iBAAc,CACZ,QAAS,UACT,OAAQ,CACN,QAAS,CACP,SAAO,UAAO,CACZ,kBAAmB,CACjB,wBAAyB,0BAAwB,cACnD,CACF,CAAC,EACD,MAAO,CACL,EAAG,MACL,CACF,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQ,IAAOA,KAAQ,QAAKA,CAAK,KAAI,SAAM,MAAS,CACtD,CAAC,CACH,CACF,EAAE,CACJ",
6
6
  "names": ["setupOpenAppDAMock_exports", "__export", "setupOpenAppDAMock", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "error"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var u=(e,t)=>{for(var i in t)a(e,i,{get:t[i],enumerable:!0})},d=(e,t,i,m)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of f(t))!g.call(e,n)&&n!==i&&a(e,n,{get:()=>t[n],enumerable:!(m=c(t,n))||m.enumerable});return e};var k=e=>d(a({},"__esModule",{value:!0}),e);var l={};u(l,{setupSignPsbtDAMock:()=>S});module.exports=k(l);var s=require("@ledgerhq/device-management-kit"),o=require("purify-ts"),r=require("xstate"),p=require("../../../app-binder/device-action/SignPsbt/SignPsbtDeviceAction");const S=(e=[],t)=>{p.SignPsbtDeviceAction.mockImplementation(()=>({makeStateMachine:jest.fn().mockImplementation(()=>(0,r.createMachine)({initial:"pending",states:{pending:{entry:(0,r.assign)({intermediateValue:{requiredUserInteraction:s.UserInteractionRequired.SignTransaction}}),after:{0:"done"}},done:{type:"final"}},output:()=>t?(0,o.Left)(t):(0,o.Right)(e)}))}))};0&&(module.exports={setupSignPsbtDAMock});
1
+ "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var u=(e,t)=>{for(var i in t)a(e,i,{get:t[i],enumerable:!0})},d=(e,t,i,m)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of f(t))!g.call(e,n)&&n!==i&&a(e,n,{get:()=>t[n],enumerable:!(m=s(t,n))||m.enumerable});return e};var k=e=>d(a({},"__esModule",{value:!0}),e);var l={};u(l,{setupSignPsbtDAMock:()=>S});module.exports=k(l);var p=require("@ledgerhq/device-management-kit"),o=require("purify-ts"),r=require("xstate"),c=require("../../../app-binder/device-action/SignPsbt/SignPsbtDeviceAction");const S=(e=[],t)=>{c.SignPsbtDeviceAction.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>(0,r.createMachine)({initial:"pending",states:{pending:{entry:(0,r.assign)({intermediateValue:{requiredUserInteraction:p.UserInteractionRequired.SignTransaction}}),after:{0:"done"}},done:{type:"final"}},output:()=>t?(0,o.Left)(t):(0,o.Right)(e)}))}))};0&&(module.exports={setupSignPsbtDAMock});
2
2
  //# sourceMappingURL=setupSignPsbtDAMock.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/setupSignPsbtDAMock.ts"],
4
- "sourcesContent": ["import { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, createMachine } from \"xstate\";\n\nimport { type PsbtSignature } from \"@api/model/Signature\";\nimport { SignPsbtDeviceAction } from \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\";\n\nexport const setupSignPsbtDAMock = (\n sigs: PsbtSignature[] = [],\n error?: unknown,\n) => {\n // setupOpenAppDAMock();\n (SignPsbtDeviceAction as jest.Mock).mockImplementation(() => ({\n makeStateMachine: jest.fn().mockImplementation(() =>\n createMachine({\n initial: \"pending\",\n states: {\n pending: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignTransaction,\n },\n }),\n after: {\n 0: \"done\",\n },\n },\n done: {\n type: \"final\",\n },\n },\n output: () => (error ? Left(error) : Right(sigs)),\n }),\n ),\n }));\n};\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAwC,2CACxCC,EAA4B,qBAC5BC,EAAsC,kBAGtCC,EAAqC,4EAE9B,MAAML,EAAsB,CACjCM,EAAwB,CAAC,EACzBC,IACG,CAEF,uBAAmC,mBAAmB,KAAO,CAC5D,iBAAkB,KAAK,GAAG,EAAE,mBAAmB,OAC7C,iBAAc,CACZ,QAAS,UACT,OAAQ,CACN,QAAS,CACP,SAAO,UAAO,CACZ,kBAAmB,CACjB,wBACE,0BAAwB,eAC5B,CACF,CAAC,EACD,MAAO,CACL,EAAG,MACL,CACF,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQ,IAAOA,KAAQ,QAAKA,CAAK,KAAI,SAAMD,CAAI,CACjD,CAAC,CACH,CACF,EAAE,CACJ",
4
+ "sourcesContent": ["import { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { type Mock } from \"vitest\";\nimport { assign, createMachine } from \"xstate\";\n\nimport { type PsbtSignature } from \"@api/model/Signature\";\nimport { SignPsbtDeviceAction } from \"@internal/app-binder/device-action/SignPsbt/SignPsbtDeviceAction\";\n\nexport const setupSignPsbtDAMock = (\n sigs: PsbtSignature[] = [],\n error?: unknown,\n) => {\n // setupOpenAppDAMock();\n (SignPsbtDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n initial: \"pending\",\n states: {\n pending: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignTransaction,\n },\n }),\n after: {\n 0: \"done\",\n },\n },\n done: {\n type: \"final\",\n },\n },\n output: () => (error ? Left(error) : Right(sigs)),\n }),\n ),\n }));\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAwC,2CACxCC,EAA4B,qBAE5BC,EAAsC,kBAGtCC,EAAqC,4EAE9B,MAAML,EAAsB,CACjCM,EAAwB,CAAC,EACzBC,IACG,CAEF,uBAA8B,mBAAmB,KAAO,CACvD,iBAAkB,GAAG,GAAG,EAAE,mBAAmB,OAC3C,iBAAc,CACZ,QAAS,UACT,OAAQ,CACN,QAAS,CACP,SAAO,UAAO,CACZ,kBAAmB,CACjB,wBACE,0BAAwB,eAC5B,CACF,CAAC,EACD,MAAO,CACL,EAAG,MACL,CACF,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQ,IAAOA,KAAQ,QAAKA,CAAK,KAAI,SAAMD,CAAI,CACjD,CAAC,CACH,CACF,EAAE,CACJ",
6
6
  "names": ["setupSignPsbtDAMock_exports", "__export", "setupSignPsbtDAMock", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_SignPsbtDeviceAction", "sigs", "error"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var A=(t,e)=>{for(var c in e)n(t,c,{get:e[c],enumerable:!0})},m=(t,e,c,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of l(e))!s.call(t,i)&&i!==c&&n(t,i,{get:()=>e[i],enumerable:!(r=p(e,i))||r.enumerable});return t};var D=t=>m(n({},"__esModule",{value:!0}),t);var I={};A(I,{testDeviceActionStates:()=>v});module.exports=D(I);function v(t,e,c,r){const i=[],{observable:u,cancel:o}=t._execute(c);return u.subscribe({next:a=>{i.push(a)},error:a=>{r&&r(a)},complete:()=>{try{expect(i).toEqual(e),r&&r()}catch(a){r&&r(a)}}}),{observable:u,cancel:o}}0&&(module.exports={testDeviceActionStates});
1
+ "use strict";var c=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var A=(t,e)=>{for(var o in e)c(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!v.call(t,r)&&r!==o&&c(t,r,{get:()=>e[r],enumerable:!(i=s(e,r))||i.enumerable});return t};var m=t=>d(c({},"__esModule",{value:!0}),t);var I={};A(I,{testDeviceActionStates:()=>D});module.exports=m(I);function D(t,e,o,{onDone:i,onError:r}){const a=[],{observable:u,cancel:p}=t._execute(o);return u.subscribe({next:n=>{a.push(n)},error:n=>{r(n)},complete:()=>{try{expect(a).toEqual(e),i()}catch(n){r(n)}}}),{observable:u,cancel:p}}0&&(module.exports={testDeviceActionStates});
2
2
  //# sourceMappingURL=testDeviceActionStates.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.ts"],
4
- "sourcesContent": ["import {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type DeviceActionState,\n type DmkError,\n type InternalApi,\n} from \"@ledgerhq/device-management-kit\";\n\n/**\n * Test that the states emitted by a device action match the expected states.\n * @param deviceAction The device action to test.\n * @param expectedStates The expected states.\n * @param done The Jest done callback.\n */\nexport function testDeviceActionStates<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n>(\n deviceAction: DeviceAction<Output, Input, Error, IntermediateValue>,\n expectedStates: Array<DeviceActionState<Output, Error, IntermediateValue>>,\n internalApi: InternalApi,\n done?: jest.DoneCallback,\n) {\n const observedStates: Array<\n DeviceActionState<Output, Error, IntermediateValue>\n > = [];\n\n const { observable, cancel } = deviceAction._execute(internalApi);\n observable.subscribe({\n next: (state) => {\n observedStates.push(state);\n },\n error: (error) => {\n if (done) done(error);\n },\n complete: () => {\n try {\n expect(observedStates).toEqual(expectedStates);\n if (done) done();\n } catch (e) {\n if (done) done(e);\n }\n },\n });\n return { observable, cancel };\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAcO,SAASE,EAMdE,EACAC,EACAC,EACAC,EACA,CACA,MAAMC,EAEF,CAAC,EAEC,CAAE,WAAAC,EAAY,OAAAC,CAAO,EAAIN,EAAa,SAASE,CAAW,EAChE,OAAAG,EAAW,UAAU,CACnB,KAAOE,GAAU,CACfH,EAAe,KAAKG,CAAK,CAC3B,EACA,MAAQC,GAAU,CACZL,GAAMA,EAAKK,CAAK,CACtB,EACA,SAAU,IAAM,CACd,GAAI,CACF,OAAOJ,CAAc,EAAE,QAAQH,CAAc,EACzCE,GAAMA,EAAK,CACjB,OAASM,EAAG,CACNN,GAAMA,EAAKM,CAAC,CAClB,CACF,CACF,CAAC,EACM,CAAE,WAAAJ,EAAY,OAAAC,CAAO,CAC9B",
6
- "names": ["testDeviceActionStates_exports", "__export", "testDeviceActionStates", "__toCommonJS", "deviceAction", "expectedStates", "internalApi", "done", "observedStates", "observable", "cancel", "state", "error", "e"]
4
+ "sourcesContent": ["import {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type DeviceActionState,\n type DmkError,\n type InternalApi,\n} from \"@ledgerhq/device-management-kit\";\n\n/**\n * Test that the states emitted by a device action match the expected states.\n * @param deviceAction The device action to test.\n * @param expectedStates The expected states.\n * @param callbacks { onDone, onError } The callbacks to call when the test is done or an error occurs.\n */\nexport function testDeviceActionStates<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n>(\n deviceAction: DeviceAction<Output, Input, Error, IntermediateValue>,\n expectedStates: Array<DeviceActionState<Output, Error, IntermediateValue>>,\n internalApi: InternalApi,\n {\n onDone,\n onError,\n }: {\n onDone: () => void;\n onError: (error: Error) => void;\n },\n) {\n const observedStates: Array<\n DeviceActionState<Output, Error, IntermediateValue>\n > = [];\n\n const { observable, cancel } = deviceAction._execute(internalApi);\n observable.subscribe({\n next: (state) => {\n observedStates.push(state);\n },\n error: (error) => {\n onError(error);\n },\n complete: () => {\n try {\n expect(observedStates).toEqual(expectedStates);\n onDone();\n } catch (e) {\n onError(e as Error);\n }\n },\n });\n return { observable, cancel };\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAcO,SAASE,EAMdE,EACAC,EACAC,EACA,CACE,OAAAC,EACA,QAAAC,CACF,EAIA,CACA,MAAMC,EAEF,CAAC,EAEC,CAAE,WAAAC,EAAY,OAAAC,CAAO,EAAIP,EAAa,SAASE,CAAW,EAChE,OAAAI,EAAW,UAAU,CACnB,KAAOE,GAAU,CACfH,EAAe,KAAKG,CAAK,CAC3B,EACA,MAAQC,GAAU,CAChBL,EAAQK,CAAK,CACf,EACA,SAAU,IAAM,CACd,GAAI,CACF,OAAOJ,CAAc,EAAE,QAAQJ,CAAc,EAC7CE,EAAO,CACT,OAASO,EAAG,CACVN,EAAQM,CAAU,CACpB,CACF,CACF,CAAC,EACM,CAAE,WAAAJ,EAAY,OAAAC,CAAO,CAC9B",
6
+ "names": ["testDeviceActionStates_exports", "__export", "testDeviceActionStates", "__toCommonJS", "deviceAction", "expectedStates", "internalApi", "onDone", "onError", "observedStates", "observable", "cancel", "state", "error", "e"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var _=(o,n)=>{for(var t in n)p(o,t,{get:n[t],enumerable:!0})},u=(o,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of c(n))!B.call(o,i)&&i!==t&&p(o,i,{get:()=>n[i],enumerable:!(r=s(n,i))||r.enumerable});return o};var b=o=>u(p({},"__esModule",{value:!0}),o);var A={};_(A,{appBinderModuleFactory:()=>f});module.exports=b(A);var a=require("inversify"),d=require("../../app-binder/BtcAppBinder"),e=require("../../app-binder/di/appBinderTypes"),m=require("../../app-binder/task/SignPsbtTask");const f=()=>new a.ContainerModule((o,n,t,r,i,y,T)=>{o(e.appBinderTypes.AppBinder).to(d.BtcAppBinder),o(e.appBinderTypes.SignPsbtTask).to(m.SignPsbtTask)});0&&(module.exports={appBinderModuleFactory});
1
+ "use strict";var t=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var f=(o,p)=>{for(var e in p)t(o,e,{get:p[e],enumerable:!0})},l=(o,p,e,i)=>{if(p&&typeof p=="object"||typeof p=="function")for(let r of a(p))!c.call(o,r)&&r!==e&&t(o,r,{get:()=>p[r],enumerable:!(i=B(p,r))||i.enumerable});return o};var s=o=>l(t({},"__esModule",{value:!0}),o);var y={};f(y,{appBinderModuleFactory:()=>u});module.exports=s(y);var n=require("inversify"),d=require("../../app-binder/BtcAppBinder"),m=require("../../app-binder/di/appBinderTypes");const u=()=>new n.ContainerModule(({bind:o})=>{o(m.appBinderTypes.AppBinder).to(d.BtcAppBinder)});0&&(module.exports={appBinderModuleFactory});
2
2
  //# sourceMappingURL=appBinderModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/di/appBinderModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SignPsbtTask } from \"@internal/app-binder/task/SignPsbtTask\";\n\nexport const appBinderModuleFactory = () =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n _rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind(appBinderTypes.AppBinder).to(BtcAppBinder);\n bind(appBinderTypes.SignPsbtTask).to(SignPsbtTask);\n },\n );\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA6B,6CAC7BC,EAA+B,kDAC/BC,EAA6B,kDAEtB,MAAML,EAAyB,IACpC,IAAI,kBACF,CACEM,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EAAK,iBAAe,SAAS,EAAE,GAAG,cAAY,EAC9CA,EAAK,iBAAe,YAAY,EAAE,GAAG,cAAY,CACnD,CACF",
6
- "names": ["appBinderModule_exports", "__export", "appBinderModuleFactory", "__toCommonJS", "import_inversify", "import_BtcAppBinder", "import_appBinderTypes", "import_SignPsbtTask", "bind", "_unbind", "_isBound", "_rebind", "_unbindAsync", "_onActivation", "_onDeactivation"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { BtcAppBinder } from \"@internal/app-binder/BtcAppBinder\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\n\nexport const appBinderModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(appBinderTypes.AppBinder).to(BtcAppBinder);\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA6B,6CAC7BC,EAA+B,kDAExB,MAAMJ,EAAyB,IACpC,IAAI,kBAAgB,CAAC,CAAE,KAAAK,CAAK,IAAM,CAChCA,EAAK,iBAAe,SAAS,EAAE,GAAG,cAAY,CAChD,CAAC",
6
+ "names": ["appBinderModule_exports", "__export", "appBinderModuleFactory", "__toCommonJS", "import_inversify", "import_BtcAppBinder", "import_appBinderTypes", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("inversify"),t=require("./appBinderModule");describe("appBinderModule",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=(0,t.appBinderModuleFactory)(),o=new r.Container,o.load(e)}),it("should return appBinder module",()=>{expect(e).toBeDefined()})})});
1
+ "use strict";var r=require("inversify"),t=require("./appBinderModule");describe("appBinderModule",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=(0,t.appBinderModuleFactory)(),o=new r.Container,o.loadSync(e)}),it("should return appBinder module",()=>{expect(e).toBeDefined()})})});
2
2
  //# sourceMappingURL=appBinderModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/di/appBinderModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { appBinderModuleFactory } from \"./appBinderModule\";\n\ndescribe(\"appBinderModule\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof appBinderModuleFactory>;\n beforeEach(() => {\n mod = appBinderModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return appBinder module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAAuC,6BAEvC,SAAS,kBAAmB,IAAM,CAChC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,0BAAuB,EAC7BD,EAAY,IAAI,YAChBA,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { appBinderModuleFactory } from \"./appBinderModule\";\n\ndescribe(\"appBinderModule\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof appBinderModuleFactory>;\n beforeEach(() => {\n mod = appBinderModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return appBinder module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAAuC,6BAEvC,SAAS,kBAAmB,IAAM,CAChC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,0BAAuB,EAC7BD,EAAY,IAAI,YAChBA,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_inversify", "import_appBinderModule", "container", "mod"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var t=Object.prototype.hasOwnProperty;var S=(n,p)=>{for(var r in p)s(n,r,{get:p[r],enumerable:!0})},a=(n,p,r,e)=>{if(p&&typeof p=="object"||typeof p=="function")for(let o of b(p))!t.call(n,o)&&o!==r&&s(n,o,{get:()=>p[o],enumerable:!(e=i(p,o))||e.enumerable});return n};var d=n=>a(s({},"__esModule",{value:!0}),n);var B={};S(B,{appBinderTypes:()=>y});module.exports=d(B);const y={AppBinder:Symbol.for("AppBinder"),SignPsbtTask:Symbol.for("SignPsbtTask")};0&&(module.exports={appBinderTypes});
1
+ "use strict";var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var t=(e,p)=>{for(var n in p)o(e,n,{get:p[n],enumerable:!0})},y=(e,p,n,d)=>{if(p&&typeof p=="object"||typeof p=="function")for(let r of B(p))!s.call(e,r)&&r!==n&&o(e,r,{get:()=>p[r],enumerable:!(d=i(p,r))||d.enumerable});return e};var A=e=>y(o({},"__esModule",{value:!0}),e);var b={};t(b,{appBinderTypes:()=>a});module.exports=A(b);const a={AppBinder:Symbol.for("AppBinder")};0&&(module.exports={appBinderTypes});
2
2
  //# sourceMappingURL=appBinderTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/di/appBinderTypes.ts"],
4
- "sourcesContent": ["export const appBinderTypes = {\n AppBinder: Symbol.for(\"AppBinder\"),\n SignPsbtTask: Symbol.for(\"SignPsbtTask\"),\n};\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAiB,CAC5B,UAAW,OAAO,IAAI,WAAW,EACjC,aAAc,OAAO,IAAI,cAAc,CACzC",
4
+ "sourcesContent": ["export const appBinderTypes = {\n AppBinder: Symbol.for(\"AppBinder\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAiB,CAC5B,UAAW,OAAO,IAAI,WAAW,CACnC",
6
6
  "names": ["appBinderTypes_exports", "__export", "appBinderTypes", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("@ledgerhq/device-management-kit"),s=require("purify-ts"),o=require("../../app-binder/task/BuildPsbtTask"),i=require("../../data-store/model/DataStore");describe("BuildPsbtTask",()=>{it("should build psbt and fill datastore",async()=>{const a={map:jest.fn(()=>(0,s.Right)("InternalPsbt"))},t={merklizeWallet:jest.fn(),merklizePsbt:jest.fn(()=>(0,s.Right)("PsbtCommitment"))},e=new i.DataStore,r=await new o.BuildPsbtTask({wallet:"Wallet",psbt:"ApiPsbt"},t,a,()=>e).run();expect(a.map).toHaveBeenCalledWith("ApiPsbt"),expect(t.merklizePsbt).toHaveBeenCalledWith(e,"InternalPsbt"),expect(t.merklizeWallet).toHaveBeenCalledWith(e,"Wallet"),expect(r).toStrictEqual((0,n.CommandResultFactory)({data:{psbtCommitment:"PsbtCommitment",dataStore:e,psbt:"InternalPsbt"}}))}),it("should return an error if datastore fails",async()=>{const a={map:jest.fn(()=>(0,s.Right)({}))},t=new Error("Failed"),e={merklizeWallet:jest.fn(),merklizePsbt:jest.fn(()=>(0,s.Left)(t)),merklizeChunks:jest.fn()},r=await new o.BuildPsbtTask({wallet:{},psbt:{}},e,a).run();expect(r).toStrictEqual((0,n.CommandResultFactory)({error:new n.UnknownDeviceExchangeError({error:t})}))}),it("should return an error if datastore fails",async()=>{const a=new Error("Failed"),t={map:jest.fn(()=>(0,s.Left)(a))},e={merklizeWallet:jest.fn(),merklizePsbt:jest.fn(()=>(0,s.Right)({})),merklizeChunks:jest.fn()},r=await new o.BuildPsbtTask({wallet:{},psbt:{}},e,t).run();expect(r).toStrictEqual((0,n.CommandResultFactory)({error:new n.UnknownDeviceExchangeError({error:a})}))})});
1
+ "use strict";var s=require("@ledgerhq/device-management-kit"),a=require("purify-ts"),o=require("../../app-binder/task/BuildPsbtTask"),l=require("../../data-store/model/DataStore");describe("BuildPsbtTask",()=>{it("should build psbt and fill datastore",async()=>{const n={map:vi.fn(()=>(0,a.Right)("InternalPsbt"))},t={merklizeWallet:vi.fn(),merklizePsbt:vi.fn(()=>(0,a.Right)("PsbtCommitment"))},e=new l.DataStore,r=await new o.BuildPsbtTask({wallet:"Wallet",psbt:"ApiPsbt"},t,n,()=>e).run();expect(n.map).toHaveBeenCalledWith("ApiPsbt"),expect(t.merklizePsbt).toHaveBeenCalledWith(e,"InternalPsbt"),expect(t.merklizeWallet).toHaveBeenCalledWith(e,"Wallet"),expect(r).toStrictEqual((0,s.CommandResultFactory)({data:{psbtCommitment:"PsbtCommitment",dataStore:e,psbt:"InternalPsbt"}}))}),it("should return an error if datastore fails",async()=>{const n={map:vi.fn(()=>(0,a.Right)({}))},t=new Error("Failed"),e={merklizeWallet:vi.fn(),merklizePsbt:vi.fn(()=>(0,a.Left)(t)),merklizeChunks:vi.fn()},r=await new o.BuildPsbtTask({wallet:{},psbt:{}},e,n).run();expect(r).toStrictEqual((0,s.CommandResultFactory)({error:new s.UnknownDeviceExchangeError({error:t})}))}),it("should return an error if datastore fails",async()=>{const n=new Error("Failed"),t={map:vi.fn(()=>(0,a.Left)(n))},e={merklizeWallet:vi.fn(),merklizePsbt:vi.fn(()=>(0,a.Right)({})),merklizeChunks:vi.fn()},r=await new o.BuildPsbtTask({wallet:{},psbt:{}},e,t).run();expect(r).toStrictEqual((0,s.CommandResultFactory)({error:new s.UnknownDeviceExchangeError({error:n})}))})});
2
2
  //# sourceMappingURL=BuildPsbtTask.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/BuildPsbtTask.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type Psbt } from \"@api/model/Psbt\";\nimport { BuildPsbtTask } from \"@internal/app-binder/task/BuildPsbtTask\";\nimport { DataStore } from \"@internal/data-store/model/DataStore\";\nimport {\n type DataStoreService,\n type PsbtCommitment,\n} from \"@internal/data-store/service/DataStoreService\";\nimport { type Psbt as InternalPsbt } from \"@internal/psbt/model/Psbt\";\nimport { type Wallet } from \"@internal/wallet/model/Wallet\";\n\ndescribe(\"BuildPsbtTask\", () => {\n it(\"should build psbt and fill datastore\", async () => {\n // given\n const psbtMapper = {\n map: jest.fn(() => Right(\"InternalPsbt\" as unknown as InternalPsbt)),\n };\n const dataStoreService = {\n merklizeWallet: jest.fn(),\n merklizePsbt: jest.fn(() =>\n Right(\"PsbtCommitment\" as unknown as PsbtCommitment),\n ),\n } as unknown as DataStoreService;\n const dataStore = new DataStore();\n const task = new BuildPsbtTask(\n {\n wallet: \"Wallet\" as unknown as Wallet,\n psbt: \"ApiPsbt\" as unknown as Psbt,\n },\n dataStoreService,\n psbtMapper,\n () => dataStore,\n );\n // when\n const result = await task.run();\n // then\n expect(psbtMapper.map).toHaveBeenCalledWith(\"ApiPsbt\");\n expect(dataStoreService.merklizePsbt).toHaveBeenCalledWith(\n dataStore,\n \"InternalPsbt\",\n );\n expect(dataStoreService.merklizeWallet).toHaveBeenCalledWith(\n dataStore,\n \"Wallet\",\n );\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: {\n psbtCommitment: \"PsbtCommitment\",\n dataStore,\n psbt: \"InternalPsbt\",\n },\n }),\n );\n });\n it(\"should return an error if datastore fails\", async () => {\n // given\n const psbtMapper = {\n map: jest.fn(() => Right({} as InternalPsbt)),\n };\n const error = new Error(\"Failed\");\n const dataStoreService = {\n merklizeWallet: jest.fn(),\n merklizePsbt: jest.fn(() => Left(error)),\n merklizeChunks: jest.fn(),\n };\n const task = new BuildPsbtTask(\n {\n wallet: {} as unknown as Wallet,\n psbt: {} as unknown as Psbt,\n },\n dataStoreService,\n psbtMapper,\n );\n // when\n const result = await task.run();\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError({ error }),\n }),\n );\n });\n it(\"should return an error if datastore fails\", async () => {\n // given\n const error = new Error(\"Failed\");\n const psbtMapper = {\n map: jest.fn(() => Left(error)),\n };\n const dataStoreService = {\n merklizeWallet: jest.fn(),\n merklizePsbt: jest.fn(() => Right({} as PsbtCommitment)),\n merklizeChunks: jest.fn(),\n };\n const task = new BuildPsbtTask(\n {\n wallet: {} as unknown as Wallet,\n psbt: {} as unknown as Psbt,\n },\n dataStoreService,\n psbtMapper,\n );\n // when\n const result = await task.run();\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError({ error }),\n }),\n );\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAGO,2CACPC,EAA4B,qBAG5BC,EAA8B,mDAC9BC,EAA0B,gDAQ1B,SAAS,gBAAiB,IAAM,CAC9B,GAAG,uCAAwC,SAAY,CAErD,MAAMC,EAAa,CACjB,IAAK,KAAK,GAAG,OAAM,SAAM,cAAyC,CAAC,CACrE,EACMC,EAAmB,CACvB,eAAgB,KAAK,GAAG,EACxB,aAAc,KAAK,GAAG,OACpB,SAAM,gBAA6C,CACrD,CACF,EACMC,EAAY,IAAI,YAWhBC,EAAS,MAVF,IAAI,gBACf,CACE,OAAQ,SACR,KAAM,SACR,EACAF,EACAD,EACA,IAAME,CACR,EAE0B,IAAI,EAE9B,OAAOF,EAAW,GAAG,EAAE,qBAAqB,SAAS,EACrD,OAAOC,EAAiB,YAAY,EAAE,qBACpCC,EACA,cACF,EACA,OAAOD,EAAiB,cAAc,EAAE,qBACtCC,EACA,QACF,EACA,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,eAAgB,iBAChB,UAAAD,EACA,KAAM,cACR,CACF,CAAC,CACH,CACF,CAAC,EACD,GAAG,4CAA6C,SAAY,CAE1D,MAAMF,EAAa,CACjB,IAAK,KAAK,GAAG,OAAM,SAAM,CAAC,CAAiB,CAAC,CAC9C,EACMI,EAAQ,IAAI,MAAM,QAAQ,EAC1BH,EAAmB,CACvB,eAAgB,KAAK,GAAG,EACxB,aAAc,KAAK,GAAG,OAAM,QAAKG,CAAK,CAAC,EACvC,eAAgB,KAAK,GAAG,CAC1B,EAUMD,EAAS,MATF,IAAI,gBACf,CACE,OAAQ,CAAC,EACT,KAAM,CAAC,CACT,EACAF,EACAD,CACF,EAE0B,IAAI,EAE9B,OAAOG,CAAM,EAAE,iBACb,wBAAqB,CACnB,MAAO,IAAI,6BAA2B,CAAE,MAAAC,CAAM,CAAC,CACjD,CAAC,CACH,CACF,CAAC,EACD,GAAG,4CAA6C,SAAY,CAE1D,MAAMA,EAAQ,IAAI,MAAM,QAAQ,EAC1BJ,EAAa,CACjB,IAAK,KAAK,GAAG,OAAM,QAAKI,CAAK,CAAC,CAChC,EACMH,EAAmB,CACvB,eAAgB,KAAK,GAAG,EACxB,aAAc,KAAK,GAAG,OAAM,SAAM,CAAC,CAAmB,CAAC,EACvD,eAAgB,KAAK,GAAG,CAC1B,EAUME,EAAS,MATF,IAAI,gBACf,CACE,OAAQ,CAAC,EACT,KAAM,CAAC,CACT,EACAF,EACAD,CACF,EAE0B,IAAI,EAE9B,OAAOG,CAAM,EAAE,iBACb,wBAAqB,CACnB,MAAO,IAAI,6BAA2B,CAAE,MAAAC,CAAM,CAAC,CACjD,CAAC,CACH,CACF,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type Psbt } from \"@api/model/Psbt\";\nimport { BuildPsbtTask } from \"@internal/app-binder/task/BuildPsbtTask\";\nimport { DataStore } from \"@internal/data-store/model/DataStore\";\nimport {\n type DataStoreService,\n type PsbtCommitment,\n} from \"@internal/data-store/service/DataStoreService\";\nimport { type Psbt as InternalPsbt } from \"@internal/psbt/model/Psbt\";\nimport { type Wallet } from \"@internal/wallet/model/Wallet\";\n\ndescribe(\"BuildPsbtTask\", () => {\n it(\"should build psbt and fill datastore\", async () => {\n // given\n const psbtMapper = {\n map: vi.fn(() => Right(\"InternalPsbt\" as unknown as InternalPsbt)),\n };\n const dataStoreService = {\n merklizeWallet: vi.fn(),\n merklizePsbt: vi.fn(() =>\n Right(\"PsbtCommitment\" as unknown as PsbtCommitment),\n ),\n } as unknown as DataStoreService;\n const dataStore = new DataStore();\n const task = new BuildPsbtTask(\n {\n wallet: \"Wallet\" as unknown as Wallet,\n psbt: \"ApiPsbt\" as unknown as Psbt,\n },\n dataStoreService,\n psbtMapper,\n () => dataStore,\n );\n // when\n const result = await task.run();\n // then\n expect(psbtMapper.map).toHaveBeenCalledWith(\"ApiPsbt\");\n expect(dataStoreService.merklizePsbt).toHaveBeenCalledWith(\n dataStore,\n \"InternalPsbt\",\n );\n expect(dataStoreService.merklizeWallet).toHaveBeenCalledWith(\n dataStore,\n \"Wallet\",\n );\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: {\n psbtCommitment: \"PsbtCommitment\",\n dataStore,\n psbt: \"InternalPsbt\",\n },\n }),\n );\n });\n it(\"should return an error if datastore fails\", async () => {\n // given\n const psbtMapper = {\n map: vi.fn(() => Right({} as InternalPsbt)),\n };\n const error = new Error(\"Failed\");\n const dataStoreService = {\n merklizeWallet: vi.fn(),\n merklizePsbt: vi.fn(() => Left(error)),\n merklizeChunks: vi.fn(),\n };\n const task = new BuildPsbtTask(\n {\n wallet: {} as unknown as Wallet,\n psbt: {} as unknown as Psbt,\n },\n dataStoreService,\n psbtMapper,\n );\n // when\n const result = await task.run();\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError({ error }),\n }),\n );\n });\n it(\"should return an error if datastore fails\", async () => {\n // given\n const error = new Error(\"Failed\");\n const psbtMapper = {\n map: vi.fn(() => Left(error)),\n };\n const dataStoreService = {\n merklizeWallet: vi.fn(),\n merklizePsbt: vi.fn(() => Right({} as PsbtCommitment)),\n merklizeChunks: vi.fn(),\n };\n const task = new BuildPsbtTask(\n {\n wallet: {} as unknown as Wallet,\n psbt: {} as unknown as Psbt,\n },\n dataStoreService,\n psbtMapper,\n );\n // when\n const result = await task.run();\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError({ error }),\n }),\n );\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,2CACPC,EAA4B,qBAG5BC,EAA8B,mDAC9BC,EAA0B,gDAQ1B,SAAS,gBAAiB,IAAM,CAC9B,GAAG,uCAAwC,SAAY,CAErD,MAAMC,EAAa,CACjB,IAAK,GAAG,GAAG,OAAM,SAAM,cAAyC,CAAC,CACnE,EACMC,EAAmB,CACvB,eAAgB,GAAG,GAAG,EACtB,aAAc,GAAG,GAAG,OAClB,SAAM,gBAA6C,CACrD,CACF,EACMC,EAAY,IAAI,YAWhBC,EAAS,MAVF,IAAI,gBACf,CACE,OAAQ,SACR,KAAM,SACR,EACAF,EACAD,EACA,IAAME,CACR,EAE0B,IAAI,EAE9B,OAAOF,EAAW,GAAG,EAAE,qBAAqB,SAAS,EACrD,OAAOC,EAAiB,YAAY,EAAE,qBACpCC,EACA,cACF,EACA,OAAOD,EAAiB,cAAc,EAAE,qBACtCC,EACA,QACF,EACA,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,eAAgB,iBAChB,UAAAD,EACA,KAAM,cACR,CACF,CAAC,CACH,CACF,CAAC,EACD,GAAG,4CAA6C,SAAY,CAE1D,MAAMF,EAAa,CACjB,IAAK,GAAG,GAAG,OAAM,SAAM,CAAC,CAAiB,CAAC,CAC5C,EACMI,EAAQ,IAAI,MAAM,QAAQ,EAC1BH,EAAmB,CACvB,eAAgB,GAAG,GAAG,EACtB,aAAc,GAAG,GAAG,OAAM,QAAKG,CAAK,CAAC,EACrC,eAAgB,GAAG,GAAG,CACxB,EAUMD,EAAS,MATF,IAAI,gBACf,CACE,OAAQ,CAAC,EACT,KAAM,CAAC,CACT,EACAF,EACAD,CACF,EAE0B,IAAI,EAE9B,OAAOG,CAAM,EAAE,iBACb,wBAAqB,CACnB,MAAO,IAAI,6BAA2B,CAAE,MAAAC,CAAM,CAAC,CACjD,CAAC,CACH,CACF,CAAC,EACD,GAAG,4CAA6C,SAAY,CAE1D,MAAMA,EAAQ,IAAI,MAAM,QAAQ,EAC1BJ,EAAa,CACjB,IAAK,GAAG,GAAG,OAAM,QAAKI,CAAK,CAAC,CAC9B,EACMH,EAAmB,CACvB,eAAgB,GAAG,GAAG,EACtB,aAAc,GAAG,GAAG,OAAM,SAAM,CAAC,CAAmB,CAAC,EACrD,eAAgB,GAAG,GAAG,CACxB,EAUME,EAAS,MATF,IAAI,gBACf,CACE,OAAQ,CAAC,EACT,KAAM,CAAC,CACT,EACAF,EACAD,CACF,EAE0B,IAAI,EAE9B,OAAOG,CAAM,EAAE,iBACb,wBAAqB,CACnB,MAAO,IAAI,6BAA2B,CAAE,MAAAC,CAAM,CAAC,CACjD,CAAC,CACH,CACF,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_purify_ts", "import_BuildPsbtTask", "import_DataStore", "psbtMapper", "dataStoreService", "dataStore", "result", "error"]
7
7
  }