@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/device-signer-kit-bitcoin",
3
- "version": "0.0.0-signer-eth-20250122093657",
3
+ "version": "0.0.0-transaction-unfunded-20250917151052",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "types": "lib/cjs/index.d.ts",
@@ -21,42 +21,42 @@
21
21
  "./lib"
22
22
  ],
23
23
  "dependencies": {
24
- "@types/crypto-js": "^4.2.2",
24
+ "@types/crypto-js": "^4.2.0",
25
25
  "crypto-js": "^4.2.0",
26
- "inversify": "^6.2.1",
27
- "inversify-logger-middleware": "^3.1.0",
28
- "purify-ts": "^2.1.0",
29
- "reflect-metadata": "^0.2.2",
30
- "xstate": "^5.19.2"
26
+ "inversify": "7.5.1",
27
+ "purify-ts": "2.1.0",
28
+ "reflect-metadata": "0.2.2",
29
+ "xstate": "5.19.2"
31
30
  },
32
31
  "devDependencies": {
33
32
  "bitcoinjs-lib": "^6.1.6",
34
- "rxjs": "^7.8.1",
35
- "ts-node": "^10.9.2",
36
- "@ledgerhq/device-management-kit": "0.0.0-signer-eth-20250122093657",
37
- "@ledgerhq/esbuild-tools": "0.0.2",
33
+ "rxjs": "7.8.2",
34
+ "ts-node": "10.9.2",
35
+ "@ledgerhq/device-management-kit": "0.0.0-transaction-unfunded-20250917151052",
38
36
  "@ledgerhq/eslint-config-dsdk": "0.0.2",
39
- "@ledgerhq/jest-config-dsdk": "1.0.1",
37
+ "@ledgerhq/ldmk-tool": "0.0.1",
40
38
  "@ledgerhq/prettier-config-dsdk": "0.0.2",
41
- "@ledgerhq/signer-utils": "0.0.0-signer-eth-20250122093657",
42
- "@ledgerhq/tsconfig-dsdk": "1.0.1"
39
+ "@ledgerhq/tsconfig-dsdk": "1.0.1",
40
+ "@ledgerhq/signer-utils": "0.0.0-transaction-unfunded-20250917151052",
41
+ "@ledgerhq/vitest-config-dmk": "0.0.0"
43
42
  },
44
43
  "peerDependencies": {
45
44
  "bitcoinjs-lib": "^6.1.6",
46
- "@ledgerhq/device-management-kit": "0.0.0-signer-eth-20250122093657"
45
+ "@ledgerhq/device-management-kit": "0.0.0-transaction-unfunded-20250917151052"
47
46
  },
48
47
  "scripts": {
49
48
  "prebuild": "rimraf lib",
50
- "build": "pnpm lmdk-build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
49
+ "build": "pnpm ldmk-tool build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
51
50
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
52
- "watch:builds": "pnpm lmdk-watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
51
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
53
52
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
54
53
  "lint": "eslint",
55
54
  "lint:fix": "pnpm lint --fix",
56
55
  "prettier": "prettier . --check",
57
56
  "prettier:fix": "prettier . --write",
58
57
  "typecheck": "tsc --noEmit",
59
- "test": "jest --passWithNoTests",
60
- "test:coverage": "pnpm test -- --coverage"
58
+ "test": "vitest run",
59
+ "test:watch": "vitest",
60
+ "test:coverage": "vitest run --coverage"
61
61
  }
62
62
  }
@@ -1,2 +0,0 @@
1
- "use strict";var g=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var d=(i,t)=>{for(var s in t)g(i,s,{get:t[s],enumerable:!0})},A=(i,t,s,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of l(t))!M.call(i,a)&&a!==s&&g(i,a,{get:()=>t[a],enumerable:!(e=u(t,a))||e.enumerable});return i};var m=i=>A(g({},"__esModule",{value:!0}),i);var y={};d(y,{SignMessageDeviceAction:()=>D});module.exports=m(y);var n=require("@ledgerhq/device-management-kit"),o=require("purify-ts"),r=require("xstate"),p=require("../../../app-binder/task/SignMessageTask");class D extends n.XStateDeviceAction{makeStateMachine(t){const{signMessage:s}=this.extractDependencies(t);return(0,r.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new n.OpenAppDeviceAction({input:{appName:"Bitcoin"}}).makeStateMachine(t),signMessage:(0,r.fromPromise)(s)},guards:{noInternalError:({context:e})=>e._internalState.error===null},actions:{assignErrorFromEvent:(0,r.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"SignMessageDeviceAction",initial:"OpenAppDeviceAction",context:({input:e})=>({input:e,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},_internalState:{error:null,signature:null}}),states:{OpenAppDeviceAction:{exit:(0,r.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Bitcoin"},src:"openAppStateMachine",onSnapshot:{actions:(0,r.assign)({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{actions:(0,r.assign)({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:a=>({...e.context._internalState,error:a})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"SignMessage",guard:"noInternalError"},"Error"]},SignMessage:{entry:(0,r.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.SignPersonalMessage}}),exit:(0,r.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}}),invoke:{id:"signMessage",src:"signMessage",input:({context:e})=>({derivationPath:e.input.derivationPath,message:e.input.message,dataStoreService:e.input.dataStoreService}),onDone:{target:"SignMessageResultCheck",actions:[(0,r.assign)({_internalState:({event:e,context:a})=>(0,n.isSuccessCommandResult)(e.output)?{...a._internalState,signature:e.output.data}:{...a._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignMessageResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.signature?(0,o.Right)(e._internalState.signature):(0,o.Left)(e._internalState.error||new n.UnknownDAError("No error in final state"))})}extractDependencies(t){return{signMessage:async e=>{const{input:{derivationPath:a,message:c,dataStoreService:S}}=e;return new p.SendSignMessageTask(t,{derivationPath:a,message:c},S).run()}}}}0&&(module.exports={SignMessageDeviceAction});
2
- //# sourceMappingURL=SignMessageDeviceAction.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.ts"],
4
- "sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignMessageDAError,\n type SignMessageDAInput,\n type SignMessageDAIntermediateValue,\n type SignMessageDAInternalState,\n type SignMessageDAOutput,\n} from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n SendSignMessageTask,\n type SendSignMessageTaskArgs,\n} from \"@internal/app-binder/task/SignMessageTask\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\n\nexport type MachineDependencies = {\n readonly signMessage: (arg0: {\n input: SendSignMessageTaskArgs & { dataStoreService: DataStoreService };\n }) => Promise<CommandResult<Signature, BtcErrorCodes>>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class SignMessageDeviceAction extends XStateDeviceAction<\n SignMessageDAOutput,\n SignMessageDAInput,\n SignMessageDAError,\n SignMessageDAIntermediateValue,\n SignMessageDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignMessageDAOutput,\n SignMessageDAInput,\n SignMessageDAError,\n SignMessageDAIntermediateValue,\n SignMessageDAInternalState\n > {\n type types = StateMachineTypes<\n SignMessageDAOutput,\n SignMessageDAInput,\n SignMessageDAError,\n SignMessageDAIntermediateValue,\n SignMessageDAInternalState\n >;\n\n const { signMessage } = this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n }).makeStateMachine(internalApi),\n signMessage: fromPromise(signMessage),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"SignMessageDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n signature: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Bitcoin\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignMessageDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"SignMessage\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n SignMessage: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signMessage\",\n src: \"signMessage\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n message: context.input.message,\n dataStoreService: context.input.dataStoreService,\n }),\n onDone: {\n target: \"SignMessageResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signature: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignMessageResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.signature\n ? Right(context._internalState.signature)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const signMessage = async (arg0: {\n input: {\n derivationPath: string;\n message: string;\n dataStoreService: DataStoreService;\n };\n }) => {\n const {\n input: { derivationPath, message, dataStoreService },\n } = arg0;\n return new SendSignMessageTask(\n internalApi,\n { derivationPath, message },\n dataStoreService,\n ).run();\n };\n\n return {\n signMessage,\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["SignMessageDeviceAction_exports", "__export", "SignMessageDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_SignMessageTask", "internalApi", "signMessage", "context", "_", "input", "error", "event", "arg0", "derivationPath", "message", "dataStoreService"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),l=require("@ledgerhq/device-management-kit"),u=require("@ledgerhq/device-management-kit"),i=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),s=require("../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock"),o=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),c=require("./SignMessageDeviceAction");jest.mock("@ledgerhq/device-management-kit",()=>({...jest.requireActual("@ledgerhq/device-management-kit"),OpenAppDeviceAction:jest.fn(()=>({makeStateMachine:jest.fn()}))}));describe("SignMessageDeviceAction",()=>{const n=jest.fn();function d(){return{signMessage:n}}afterEach(()=>{jest.resetAllMocks()}),describe("Success case",()=>{it("should call external dependencies with the correct parameters",r=>{(0,s.setupOpenAppDAMock)();const t=new c.SignMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),n.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}));const a=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignPersonalMessage},status:e.DeviceActionStatus.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.DeviceActionStatus.Completed}],{observable:S}=(0,o.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r);S.subscribe({complete:()=>{expect(n).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}}))}})})}),describe("error cases",()=>{it("Error if the 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 c.SignMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});(0,o.testDeviceActionStates)(a,t,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if the signPersonalMessage fails",r=>{(0,s.setupOpenAppDAMock)();const t=new c.SignMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),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.SignPersonalMessage}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,o.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if the signPersonalMessage throws an exception",r=>{(0,s.setupOpenAppDAMock)();const t=new c.SignMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),n.mockRejectedValueOnce(new u.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.SignPersonalMessage}},{status:e.DeviceActionStatus.Error,error:new u.InvalidStatusWordError("Mocked error")}];(0,o.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)}),it("Error if signPersonalMessage return an error",r=>{(0,s.setupOpenAppDAMock)();const t=new c.SignMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),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.SignPersonalMessage}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,o.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 c.SignMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),n.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.SignPersonalMessage}},{status:e.DeviceActionStatus.Error,error:new l.UnknownDAError("No error in final state")}];(0,o.testDeviceActionStates)(t,a,(0,i.makeDeviceActionInternalApiMock)(),r)})})});
2
- //# sourceMappingURL=SignMessageDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.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 SignMessageDAState } from \"@api/index\";\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 DataStoreService } from \"@internal/data-store/service/DataStoreService\";\n\nimport { SignMessageDeviceAction } from \"./SignMessageDeviceAction\";\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(\"SignMessageDeviceAction\", () => {\n const signPersonalMessageMock = jest.fn();\n\n function extractDependenciesMock() {\n return {\n signMessage: signPersonalMessageMock,\n };\n }\n\n afterEach(() => {\n jest.resetAllMocks();\n });\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\n },\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> BuildContext -> ProvideContext -> SignTypedData\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\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(signPersonalMessageMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\",\n },\n }),\n );\n },\n });\n });\n });\n\n describe(\"error cases\", () => {\n it(\"Error if the open app fails\", (done) => {\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignMessageDAState> = [\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 SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if the signPersonalMessage fails\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\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 the signPersonalMessage throws an exception\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockRejectedValueOnce(\n new InvalidStatusWordError(\"Mocked error\"),\n );\n\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\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(\"Error if signPersonalMessage return an error\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\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(\"Return a Left if the final state has no signature\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: undefined,\n }),\n );\n\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\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_SignMessageDeviceAction", "signPersonalMessageMock", "extractDependenciesMock", "done", "deviceAction", "expectedStates", "observable"]
7
- }
@@ -1,2 +0,0 @@
1
- import{isSuccessCommandResult as g,OpenAppDeviceAction as p,UnknownDAError as c,UserInteractionRequired as r,XStateDeviceAction as S}from"@ledgerhq/device-management-kit";import{Left as u,Right as l}from"purify-ts";import{assign as t,fromPromise as M,setup as d}from"xstate";import{SendSignMessageTask as A}from"../../../app-binder/task/SignMessageTask";class I extends S{makeStateMachine(a){const{signMessage:i}=this.extractDependencies(a);return d({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new p({input:{appName:"Bitcoin"}}).makeStateMachine(a),signMessage:M(i)},guards:{noInternalError:({context:e})=>e._internalState.error===null},actions:{assignErrorFromEvent:t({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"SignMessageDeviceAction",initial:"OpenAppDeviceAction",context:({input:e})=>({input:e,intermediateValue:{requiredUserInteraction:r.None},_internalState:{error:null,signature:null}}),states:{OpenAppDeviceAction:{exit:t({intermediateValue:{requiredUserInteraction:r.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Bitcoin"},src:"openAppStateMachine",onSnapshot:{actions:t({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{actions:t({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:n=>({...e.context._internalState,error:n})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"SignMessage",guard:"noInternalError"},"Error"]},SignMessage:{entry:t({intermediateValue:{requiredUserInteraction:r.SignPersonalMessage}}),exit:t({intermediateValue:{requiredUserInteraction:r.None}}),invoke:{id:"signMessage",src:"signMessage",input:({context:e})=>({derivationPath:e.input.derivationPath,message:e.input.message,dataStoreService:e.input.dataStoreService}),onDone:{target:"SignMessageResultCheck",actions:[t({_internalState:({event:e,context:n})=>g(e.output)?{...n._internalState,signature:e.output.data}:{...n._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignMessageResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.signature?l(e._internalState.signature):u(e._internalState.error||new c("No error in final state"))})}extractDependencies(a){return{signMessage:async e=>{const{input:{derivationPath:n,message:s,dataStoreService:o}}=e;return new A(a,{derivationPath:n,message:s},o).run()}}}}export{I as SignMessageDeviceAction};
2
- //# sourceMappingURL=SignMessageDeviceAction.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.ts"],
4
- "sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignMessageDAError,\n type SignMessageDAInput,\n type SignMessageDAIntermediateValue,\n type SignMessageDAInternalState,\n type SignMessageDAOutput,\n} from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport {\n SendSignMessageTask,\n type SendSignMessageTaskArgs,\n} from \"@internal/app-binder/task/SignMessageTask\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\n\nexport type MachineDependencies = {\n readonly signMessage: (arg0: {\n input: SendSignMessageTaskArgs & { dataStoreService: DataStoreService };\n }) => Promise<CommandResult<Signature, BtcErrorCodes>>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class SignMessageDeviceAction extends XStateDeviceAction<\n SignMessageDAOutput,\n SignMessageDAInput,\n SignMessageDAError,\n SignMessageDAIntermediateValue,\n SignMessageDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignMessageDAOutput,\n SignMessageDAInput,\n SignMessageDAError,\n SignMessageDAIntermediateValue,\n SignMessageDAInternalState\n > {\n type types = StateMachineTypes<\n SignMessageDAOutput,\n SignMessageDAInput,\n SignMessageDAError,\n SignMessageDAIntermediateValue,\n SignMessageDAInternalState\n >;\n\n const { signMessage } = this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n }).makeStateMachine(internalApi),\n signMessage: fromPromise(signMessage),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"SignMessageDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n signature: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: { appName: \"Bitcoin\" },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignMessageDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"SignMessage\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n SignMessage: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signMessage\",\n src: \"signMessage\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n message: context.input.message,\n dataStoreService: context.input.dataStoreService,\n }),\n onDone: {\n target: \"SignMessageResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signature: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignMessageResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.signature\n ? Right(context._internalState.signature)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const signMessage = async (arg0: {\n input: {\n derivationPath: string;\n message: string;\n dataStoreService: DataStoreService;\n };\n }) => {\n const {\n input: { derivationPath, message, dataStoreService },\n } = arg0;\n return new SendSignMessageTask(\n internalApi,\n { derivationPath, message },\n dataStoreService,\n ).run();\n };\n\n return {\n signMessage,\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["isSuccessCommandResult", "OpenAppDeviceAction", "UnknownDAError", "UserInteractionRequired", "XStateDeviceAction", "Left", "Right", "assign", "fromPromise", "setup", "SendSignMessageTask", "SignMessageDeviceAction", "internalApi", "signMessage", "context", "_", "input", "error", "event", "arg0", "derivationPath", "message", "dataStoreService"]
7
- }
@@ -1,2 +0,0 @@
1
- import{CommandResultFactory as S,DeviceActionStatus as e,UnknownDeviceExchangeError as s,UserInteractionRequired as t}from"@ledgerhq/device-management-kit";import{UnknownDAError as g}from"@ledgerhq/device-management-kit";import{InvalidStatusWordError as p}from"@ledgerhq/device-management-kit";import{makeDeviceActionInternalApiMock as o}from"../../../app-binder/device-action/__test-utils__/makeInternalApi";import{setupOpenAppDAMock as c}from"../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock";import{testDeviceActionStates as d}from"../../../app-binder/device-action/__test-utils__/testDeviceActionStates";import{SignMessageDeviceAction as u}from"./SignMessageDeviceAction";jest.mock("@ledgerhq/device-management-kit",()=>({...jest.requireActual("@ledgerhq/device-management-kit"),OpenAppDeviceAction:jest.fn(()=>({makeStateMachine:jest.fn()}))}));describe("SignMessageDeviceAction",()=>{const i=jest.fn();function l(){return{signMessage:i}}afterEach(()=>{jest.resetAllMocks()}),describe("Success case",()=>{it("should call external dependencies with the correct parameters",a=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),i.mockResolvedValueOnce(S({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}));const n=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignPersonalMessage},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}],{observable:m}=d(r,n,o(),a);m.subscribe({complete:()=>{expect(i).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}}))}})})}),describe("error cases",()=>{it("Error if the open app fails",a=>{c(new s("Mocked error"));const r=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Error,error:new s("Mocked error")}],n=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});d(n,r,o(),a)}),it("Error if the signPersonalMessage fails",a=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),i.mockResolvedValueOnce(S({error:new s("Mocked error")}));const n=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignPersonalMessage}},{status:e.Error,error:new s("Mocked error")}];d(r,n,o(),a)}),it("Error if the signPersonalMessage throws an exception",a=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),i.mockRejectedValueOnce(new p("Mocked error"));const n=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignPersonalMessage}},{status:e.Error,error:new p("Mocked error")}];d(r,n,o(),a)}),it("Error if signPersonalMessage return an error",a=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),i.mockResolvedValueOnce(S({error:new s("Mocked error")}));const n=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignPersonalMessage}},{status:e.Error,error:new s("Mocked error")}];d(r,n,o(),a)}),it("Return a Left if the final state has no signature",a=>{c();const r=new u({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world",dataStoreService:"DataStoreService"}});jest.spyOn(r,"extractDependencies").mockReturnValue(l()),i.mockResolvedValueOnce(S({data:void 0}));const n=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.SignPersonalMessage}},{status:e.Error,error:new g("No error in final state")}];d(r,n,o(),a)})})});
2
- //# sourceMappingURL=SignMessageDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.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 SignMessageDAState } from \"@api/index\";\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 DataStoreService } from \"@internal/data-store/service/DataStoreService\";\n\nimport { SignMessageDeviceAction } from \"./SignMessageDeviceAction\";\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(\"SignMessageDeviceAction\", () => {\n const signPersonalMessageMock = jest.fn();\n\n function extractDependenciesMock() {\n return {\n signMessage: signPersonalMessageMock,\n };\n }\n\n afterEach(() => {\n jest.resetAllMocks();\n });\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\n },\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> BuildContext -> ProvideContext -> SignTypedData\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\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(signPersonalMessageMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\",\n },\n }),\n );\n },\n });\n });\n });\n\n describe(\"error cases\", () => {\n it(\"Error if the open app fails\", (done) => {\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignMessageDAState> = [\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 SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if the signPersonalMessage fails\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\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 the signPersonalMessage throws an exception\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockRejectedValueOnce(\n new InvalidStatusWordError(\"Mocked error\"),\n );\n\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\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(\"Error if signPersonalMessage return an error\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\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(\"Return a Left if the final state has no signature\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n dataStoreService: \"DataStoreService\" as unknown as DataStoreService,\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: undefined,\n }),\n );\n\n const expectedStates: Array<SignMessageDAState> = [\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:\n UserInteractionRequired.SignPersonalMessage,\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": ["CommandResultFactory", "DeviceActionStatus", "UnknownDeviceExchangeError", "UserInteractionRequired", "UnknownDAError", "InvalidStatusWordError", "makeDeviceActionInternalApiMock", "setupOpenAppDAMock", "testDeviceActionStates", "SignMessageDeviceAction", "signPersonalMessageMock", "extractDependenciesMock", "done", "deviceAction", "expectedStates", "observable"]
7
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SignerBtcBuiilder.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignerBtcBuiilder.test.d.ts","sourceRoot":"","sources":["../../../src/api/SignerBtcBuiilder.test.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import { type CommandResult, type DeviceActionStateMachine, type InternalApi, XStateDeviceAction } from "@ledgerhq/device-management-kit";
2
- import { type SignMessageDAError, type SignMessageDAInput, type SignMessageDAIntermediateValue, type SignMessageDAInternalState, type SignMessageDAOutput } from "../../../../api/app-binder/SignMessageDeviceActionTypes";
3
- import { type Signature } from "../../../../api/model/Signature";
4
- import { type BtcErrorCodes } from "../../../app-binder/command/utils/bitcoinAppErrors";
5
- import { type SendSignMessageTaskArgs } from "../../../app-binder/task/SignMessageTask";
6
- import { type DataStoreService } from "../../../data-store/service/DataStoreService";
7
- export type MachineDependencies = {
8
- readonly signMessage: (arg0: {
9
- input: SendSignMessageTaskArgs & {
10
- dataStoreService: DataStoreService;
11
- };
12
- }) => Promise<CommandResult<Signature, BtcErrorCodes>>;
13
- };
14
- export type ExtractMachineDependencies = (internalApi: InternalApi) => MachineDependencies;
15
- export declare class SignMessageDeviceAction extends XStateDeviceAction<SignMessageDAOutput, SignMessageDAInput, SignMessageDAError, SignMessageDAIntermediateValue, SignMessageDAInternalState> {
16
- makeStateMachine(internalApi: InternalApi): DeviceActionStateMachine<SignMessageDAOutput, SignMessageDAInput, SignMessageDAError, SignMessageDAIntermediateValue, SignMessageDAInternalState>;
17
- extractDependencies(internalApi: InternalApi): MachineDependencies;
18
- }
19
- //# sourceMappingURL=SignMessageDeviceAction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignMessageDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAMhB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACzB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAEtF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;QAC3B,KAAK,EAAE,uBAAuB,GAAG;YAAE,gBAAgB,EAAE,gBAAgB,CAAA;SAAE,CAAC;KACzE,KAAK,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,CACvC,WAAW,EAAE,WAAW,KACrB,mBAAmB,CAAC;AAEzB,qBAAa,uBAAwB,SAAQ,kBAAkB,CAC7D,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,0BAA0B,CAC3B;IACC,gBAAgB,CACd,WAAW,EAAE,WAAW,GACvB,wBAAwB,CACzB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,0BAA0B,CAC3B;IAgKD,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;CAsBnE"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SignMessageDeviceAction.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignMessageDeviceAction.test.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.ts"],"names":[],"mappings":""}