@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"),s=require("purify-ts"),o=require("../../app-binder/task/ContinueTask");describe("ContinueTask",()=>{const a={getClientCommandPayload:jest.fn(()=>(0,s.Right)(Uint8Array.from([])))},t={sendCommand:jest.fn()},m=Math.floor(Math.random()*10+2);afterEach(()=>{jest.clearAllMocks()}),it(`should call ${m} times client interpreter and return success`,async()=>{new Array(m).fill(0).forEach(d=>{t.sendCommand.mockReturnValueOnce((0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([224,0]),data:Uint8Array.from([])})}))}),t.sendCommand.mockReturnValueOnce((0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:Uint8Array.from([])})}));const r=(0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([224,0]),data:Uint8Array.from([])})});await new o.ContinueTask(t,{},a).run(r),expect(a.getClientCommandPayload).toHaveBeenCalledTimes(m+1)}),it("should return an error if the client interpreter fails",async()=>{const r=new e.UnknownDeviceExchangeError("Failed");a.getClientCommandPayload.mockReturnValueOnce((0,s.Left)(r));const n=(0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([224,0]),data:Uint8Array.from([])})}),i=await new o.ContinueTask(t,{},a).run(n);expect(t.sendCommand).toHaveBeenCalledTimes(0),expect(i).toStrictEqual((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError(r)}))}),it("should return an error if send command fails",async()=>{const r=new e.UnknownDeviceExchangeError("Failed");t.sendCommand.mockReturnValueOnce((0,e.CommandResultFactory)({error:r}));const n=(0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([224,0]),data:Uint8Array.from([])})}),i=await new o.ContinueTask(t,{},a).run(n);expect(a.getClientCommandPayload).toHaveBeenCalledTimes(1),expect(i).toStrictEqual((0,e.CommandResultFactory)({error:r}))})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),s=require("purify-ts"),o=require("../../app-binder/task/ContinueTask");describe("ContinueTask",()=>{const a={getClientCommandPayload:vi.fn(()=>(0,s.Right)(Uint8Array.from([])))},t={sendCommand:vi.fn()},i=Math.floor(Math.random()*10+2);afterEach(()=>{vi.clearAllMocks()}),it(`should call ${i} times client interpreter and return success`,async()=>{new Array(i).fill(0).forEach(d=>{t.sendCommand.mockReturnValueOnce((0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([224,0]),data:Uint8Array.from([])})}))}),t.sendCommand.mockReturnValueOnce((0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:Uint8Array.from([])})}));const r=(0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([224,0]),data:Uint8Array.from([])})});await new o.ContinueTask(t,{},a).run(r),expect(a.getClientCommandPayload).toHaveBeenCalledTimes(i+1)}),it("should return an error if the client interpreter fails",async()=>{const r=new e.UnknownDeviceExchangeError("Failed");a.getClientCommandPayload.mockReturnValueOnce((0,s.Left)(r));const n=(0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([224,0]),data:Uint8Array.from([])})}),m=await new o.ContinueTask(t,{},a).run(n);expect(t.sendCommand).toHaveBeenCalledTimes(0),expect(m).toStrictEqual((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError(r)}))}),it("should return an error if send command fails",async()=>{const r=new e.UnknownDeviceExchangeError("Failed");t.sendCommand.mockReturnValueOnce((0,e.CommandResultFactory)({error:r}));const n=(0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:Uint8Array.from([224,0]),data:Uint8Array.from([])})}),m=await new o.ContinueTask(t,{},a).run(n);expect(a.getClientCommandPayload).toHaveBeenCalledTimes(1),expect(m).toStrictEqual((0,e.CommandResultFactory)({error:r}))})});
2
2
  //# sourceMappingURL=ContinueTask.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/ContinueTask.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n type DmkError,\n type InternalApi,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, Left, Right } from \"purify-ts\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { ContinueTask } from \"@internal/app-binder/task/ContinueTask\";\nimport { type DataStore } from \"@internal/data-store/model/DataStore\";\n\ndescribe(\"ContinueTask\", () => {\n const clientCommandInterpreter = {\n getClientCommandPayload: jest.fn(\n () => Right(Uint8Array.from([])) as Either<DmkError, Uint8Array>,\n ),\n };\n const api = {\n sendCommand: jest.fn(),\n };\n const randomNumberOfClientCalls = Math.floor(Math.random() * 10 + 2);\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n it(`should call ${randomNumberOfClientCalls} times client interpreter and return success`, async () => {\n // given\n new Array(randomNumberOfClientCalls).fill(0).forEach((_) => {\n api.sendCommand.mockReturnValueOnce(\n CommandResultFactory({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0xe0, 0x00]),\n data: Uint8Array.from([]),\n }),\n }),\n );\n });\n api.sendCommand.mockReturnValueOnce(\n CommandResultFactory({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([]),\n }),\n }),\n );\n const fromResult = CommandResultFactory<ApduResponse, BtcErrorCodes>({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0xe0, 0x00]),\n data: Uint8Array.from([]),\n }),\n });\n // when\n const task = new ContinueTask(\n api as unknown as InternalApi,\n {} as DataStore,\n clientCommandInterpreter,\n );\n await task.run(fromResult);\n // then\n expect(\n clientCommandInterpreter.getClientCommandPayload,\n ).toHaveBeenCalledTimes(randomNumberOfClientCalls + 1);\n });\n\n it(\"should return an error if the client interpreter fails\", async () => {\n // given\n const error = new UnknownDeviceExchangeError(\"Failed\");\n clientCommandInterpreter.getClientCommandPayload.mockReturnValueOnce(\n Left(error),\n );\n const fromResult = CommandResultFactory<ApduResponse, BtcErrorCodes>({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0xe0, 0x00]),\n data: Uint8Array.from([]),\n }),\n });\n // when\n const task = new ContinueTask(\n api as unknown as InternalApi,\n {} as DataStore,\n clientCommandInterpreter,\n );\n const result = await task.run(fromResult);\n // then\n expect(api.sendCommand).toHaveBeenCalledTimes(0);\n expect(result).toStrictEqual(\n CommandResultFactory({ error: new UnknownDeviceExchangeError(error) }),\n );\n });\n it(\"should return an error if send command fails\", async () => {\n // given\n const error = new UnknownDeviceExchangeError(\"Failed\");\n api.sendCommand.mockReturnValueOnce(CommandResultFactory({ error }));\n const fromResult = CommandResultFactory<ApduResponse, BtcErrorCodes>({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0xe0, 0x00]),\n data: Uint8Array.from([]),\n }),\n });\n // when\n const task = new ContinueTask(\n api as unknown as InternalApi,\n {} as DataStore,\n clientCommandInterpreter,\n );\n const result = await task.run(fromResult);\n // then\n expect(\n clientCommandInterpreter.getClientCommandPayload,\n ).toHaveBeenCalledTimes(1);\n expect(result).toStrictEqual(CommandResultFactory({ error }));\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAMO,2CACPC,EAAyC,qBAGzCC,EAA6B,kDAG7B,SAAS,eAAgB,IAAM,CAC7B,MAAMC,EAA2B,CAC/B,wBAAyB,KAAK,GAC5B,OAAM,SAAM,WAAW,KAAK,CAAC,CAAC,CAAC,CACjC,CACF,EACMC,EAAM,CACV,YAAa,KAAK,GAAG,CACvB,EACMC,EAA4B,KAAK,MAAM,KAAK,OAAO,EAAI,GAAK,CAAC,EAEnE,UAAU,IAAM,CACd,KAAK,cAAc,CACrB,CAAC,EAED,GAAG,eAAeA,CAAyB,+CAAgD,SAAY,CAErG,IAAI,MAAMA,CAAyB,EAAE,KAAK,CAAC,EAAE,QAASC,GAAM,CAC1DF,EAAI,YAAY,uBACd,wBAAqB,CACnB,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,CACH,CACF,CAAC,EACDA,EAAI,YAAY,uBACd,wBAAqB,CACnB,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,CACH,EACA,MAAMG,KAAa,wBAAkD,CACnE,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,EAOD,MALa,IAAI,eACfH,EACA,CAAC,EACDD,CACF,EACW,IAAII,CAAU,EAEzB,OACEJ,EAAyB,uBAC3B,EAAE,sBAAsBE,EAA4B,CAAC,CACvD,CAAC,EAED,GAAG,yDAA0D,SAAY,CAEvE,MAAMG,EAAQ,IAAI,6BAA2B,QAAQ,EACrDL,EAAyB,wBAAwB,uBAC/C,QAAKK,CAAK,CACZ,EACA,MAAMD,KAAa,wBAAkD,CACnE,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,EAOKE,EAAS,MALF,IAAI,eACfL,EACA,CAAC,EACDD,CACF,EAC0B,IAAII,CAAU,EAExC,OAAOH,EAAI,WAAW,EAAE,sBAAsB,CAAC,EAC/C,OAAOK,CAAM,EAAE,iBACb,wBAAqB,CAAE,MAAO,IAAI,6BAA2BD,CAAK,CAAE,CAAC,CACvE,CACF,CAAC,EACD,GAAG,+CAAgD,SAAY,CAE7D,MAAMA,EAAQ,IAAI,6BAA2B,QAAQ,EACrDJ,EAAI,YAAY,uBAAoB,wBAAqB,CAAE,MAAAI,CAAM,CAAC,CAAC,EACnE,MAAMD,KAAa,wBAAkD,CACnE,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,EAOKE,EAAS,MALF,IAAI,eACfL,EACA,CAAC,EACDD,CACF,EAC0B,IAAII,CAAU,EAExC,OACEJ,EAAyB,uBAC3B,EAAE,sBAAsB,CAAC,EACzB,OAAOM,CAAM,EAAE,iBAAc,wBAAqB,CAAE,MAAAD,CAAM,CAAC,CAAC,CAC9D,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n type DmkError,\n type InternalApi,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, Left, Right } from \"purify-ts\";\n\nimport { type BtcErrorCodes } from \"@internal/app-binder/command/utils/bitcoinAppErrors\";\nimport { ContinueTask } from \"@internal/app-binder/task/ContinueTask\";\nimport { type DataStore } from \"@internal/data-store/model/DataStore\";\n\ndescribe(\"ContinueTask\", () => {\n const clientCommandInterpreter = {\n getClientCommandPayload: vi.fn(\n () => Right(Uint8Array.from([])) as Either<DmkError, Uint8Array>,\n ),\n };\n const api = {\n sendCommand: vi.fn(),\n };\n const randomNumberOfClientCalls = Math.floor(Math.random() * 10 + 2);\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(`should call ${randomNumberOfClientCalls} times client interpreter and return success`, async () => {\n // given\n new Array(randomNumberOfClientCalls).fill(0).forEach((_) => {\n api.sendCommand.mockReturnValueOnce(\n CommandResultFactory({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0xe0, 0x00]),\n data: Uint8Array.from([]),\n }),\n }),\n );\n });\n api.sendCommand.mockReturnValueOnce(\n CommandResultFactory({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([]),\n }),\n }),\n );\n const fromResult = CommandResultFactory<ApduResponse, BtcErrorCodes>({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0xe0, 0x00]),\n data: Uint8Array.from([]),\n }),\n });\n // when\n const task = new ContinueTask(\n api as unknown as InternalApi,\n {} as DataStore,\n clientCommandInterpreter,\n );\n await task.run(fromResult);\n // then\n expect(\n clientCommandInterpreter.getClientCommandPayload,\n ).toHaveBeenCalledTimes(randomNumberOfClientCalls + 1);\n });\n\n it(\"should return an error if the client interpreter fails\", async () => {\n // given\n const error = new UnknownDeviceExchangeError(\"Failed\");\n clientCommandInterpreter.getClientCommandPayload.mockReturnValueOnce(\n Left(error),\n );\n const fromResult = CommandResultFactory<ApduResponse, BtcErrorCodes>({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0xe0, 0x00]),\n data: Uint8Array.from([]),\n }),\n });\n // when\n const task = new ContinueTask(\n api as unknown as InternalApi,\n {} as DataStore,\n clientCommandInterpreter,\n );\n const result = await task.run(fromResult);\n // then\n expect(api.sendCommand).toHaveBeenCalledTimes(0);\n expect(result).toStrictEqual(\n CommandResultFactory({ error: new UnknownDeviceExchangeError(error) }),\n );\n });\n it(\"should return an error if send command fails\", async () => {\n // given\n const error = new UnknownDeviceExchangeError(\"Failed\");\n api.sendCommand.mockReturnValueOnce(CommandResultFactory({ error }));\n const fromResult = CommandResultFactory<ApduResponse, BtcErrorCodes>({\n data: new ApduResponse({\n statusCode: Uint8Array.from([0xe0, 0x00]),\n data: Uint8Array.from([]),\n }),\n });\n // when\n const task = new ContinueTask(\n api as unknown as InternalApi,\n {} as DataStore,\n clientCommandInterpreter,\n );\n const result = await task.run(fromResult);\n // then\n expect(\n clientCommandInterpreter.getClientCommandPayload,\n ).toHaveBeenCalledTimes(1);\n expect(result).toStrictEqual(CommandResultFactory({ error }));\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAMO,2CACPC,EAAyC,qBAGzCC,EAA6B,kDAG7B,SAAS,eAAgB,IAAM,CAC7B,MAAMC,EAA2B,CAC/B,wBAAyB,GAAG,GAC1B,OAAM,SAAM,WAAW,KAAK,CAAC,CAAC,CAAC,CACjC,CACF,EACMC,EAAM,CACV,YAAa,GAAG,GAAG,CACrB,EACMC,EAA4B,KAAK,MAAM,KAAK,OAAO,EAAI,GAAK,CAAC,EAEnE,UAAU,IAAM,CACd,GAAG,cAAc,CACnB,CAAC,EAED,GAAG,eAAeA,CAAyB,+CAAgD,SAAY,CAErG,IAAI,MAAMA,CAAyB,EAAE,KAAK,CAAC,EAAE,QAASC,GAAM,CAC1DF,EAAI,YAAY,uBACd,wBAAqB,CACnB,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,CACH,CACF,CAAC,EACDA,EAAI,YAAY,uBACd,wBAAqB,CACnB,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,CACH,EACA,MAAMG,KAAa,wBAAkD,CACnE,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,EAOD,MALa,IAAI,eACfH,EACA,CAAC,EACDD,CACF,EACW,IAAII,CAAU,EAEzB,OACEJ,EAAyB,uBAC3B,EAAE,sBAAsBE,EAA4B,CAAC,CACvD,CAAC,EAED,GAAG,yDAA0D,SAAY,CAEvE,MAAMG,EAAQ,IAAI,6BAA2B,QAAQ,EACrDL,EAAyB,wBAAwB,uBAC/C,QAAKK,CAAK,CACZ,EACA,MAAMD,KAAa,wBAAkD,CACnE,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,EAOKE,EAAS,MALF,IAAI,eACfL,EACA,CAAC,EACDD,CACF,EAC0B,IAAII,CAAU,EAExC,OAAOH,EAAI,WAAW,EAAE,sBAAsB,CAAC,EAC/C,OAAOK,CAAM,EAAE,iBACb,wBAAqB,CAAE,MAAO,IAAI,6BAA2BD,CAAK,CAAE,CAAC,CACvE,CACF,CAAC,EACD,GAAG,+CAAgD,SAAY,CAE7D,MAAMA,EAAQ,IAAI,6BAA2B,QAAQ,EACrDJ,EAAI,YAAY,uBAAoB,wBAAqB,CAAE,MAAAI,CAAM,CAAC,CAAC,EACnE,MAAMD,KAAa,wBAAkD,CACnE,KAAM,IAAI,eAAa,CACrB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAC,CAC1B,CAAC,CACH,CAAC,EAOKE,EAAS,MALF,IAAI,eACfL,EACA,CAAC,EACDD,CACF,EAC0B,IAAII,CAAU,EAExC,OACEJ,EAAyB,uBAC3B,EAAE,sBAAsB,CAAC,EACzB,OAAOM,CAAM,EAAE,iBAAc,wBAAqB,CAAE,MAAAD,CAAM,CAAC,CAAC,CAC9D,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_purify_ts", "import_ContinueTask", "clientCommandInterpreter", "api", "randomNumberOfClientCalls", "_", "fromResult", "error", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),l=require("./GetWalletAddressTask");describe("GetWalletAddressTask",()=>{describe("run",()=>{it("should return a wallet address successfully",async()=>{const t={sendCommand:jest.fn().mockResolvedValueOnce((0,e.CommandResultFactory)({data:Uint8Array.from([1,2,3])}))},a={hmac:Uint8Array.from([4])},n={getId:jest.fn().mockReturnValue(Uint8Array.from([5]))},r={merklizeWallet:jest.fn()},s=()=>({run:jest.fn().mockResolvedValue((0,e.CommandResultFactory)({data:{data:Uint8Array.from([52,86,120,154,188,222,241])}}))}),o=jest.fn().mockReturnValue((0,e.CommandResultFactory)({data:{address:"some address"}})),i=await new l.GetWalletAddressTask(t,{checkOnDevice:!0,wallet:a,change:!1,addressIndex:0},n,r,s,o).run();expect(n.getId).toHaveBeenCalledWith(a),expect(i).toStrictEqual((0,e.CommandResultFactory)({data:{address:"some address"}}))}),it("should fail if ContinueTask fails",async()=>{const t={sendCommand:jest.fn()},a={hmac:Uint8Array.from([4])},n={getId:jest.fn().mockReturnValue(Uint8Array.from([5]))},r={merklizeWallet:jest.fn()},s=()=>({run:jest.fn().mockResolvedValue((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("ContinueTask failed")}))}),o=await new l.GetWalletAddressTask(t,{checkOnDevice:!0,wallet:a,change:!1,addressIndex:0},n,r,s).run();expect(o).toStrictEqual((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("ContinueTask failed")}))}),it("should fail with an invalid device response",async()=>{const t={sendCommand:jest.fn().mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response from the device")}))},a={hmac:Uint8Array.from([4])},n={getId:jest.fn().mockReturnValue(Uint8Array.from([5]))},r={merklizeWallet:jest.fn()},s=()=>({run:jest.fn().mockResolvedValue((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response from the device")}))}),o=await new l.GetWalletAddressTask(t,{checkOnDevice:!0,wallet:a,change:!1,addressIndex:0},n,r,s).run();expect(o).toStrictEqual((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response from the device")}))})})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),l=require("./GetWalletAddressTask");describe("GetWalletAddressTask",()=>{describe("run",()=>{it("should return a wallet address successfully",async()=>{const t={sendCommand:vi.fn().mockResolvedValueOnce((0,e.CommandResultFactory)({data:Uint8Array.from([1,2,3])}))},a={hmac:Uint8Array.from([4])},n={getId:vi.fn().mockReturnValue(Uint8Array.from([5]))},r={merklizeWallet:vi.fn()},s=()=>({run:vi.fn().mockResolvedValue((0,e.CommandResultFactory)({data:{data:Uint8Array.from([52,86,120,154,188,222,241])}}))}),o=vi.fn().mockReturnValue((0,e.CommandResultFactory)({data:{address:"some address"}})),i=await new l.GetWalletAddressTask(t,{checkOnDevice:!0,wallet:a,change:!1,addressIndex:0},n,r,s,o).run();expect(n.getId).toHaveBeenCalledWith(a),expect(i).toStrictEqual((0,e.CommandResultFactory)({data:{address:"some address"}}))}),it("should fail if ContinueTask fails",async()=>{const t={sendCommand:vi.fn()},a={hmac:Uint8Array.from([4])},n={getId:vi.fn().mockReturnValue(Uint8Array.from([5]))},r={merklizeWallet:vi.fn()},s=()=>({run:vi.fn().mockResolvedValue((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("ContinueTask failed")}))}),o=await new l.GetWalletAddressTask(t,{checkOnDevice:!0,wallet:a,change:!1,addressIndex:0},n,r,s).run();expect(o).toStrictEqual((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("ContinueTask failed")}))}),it("should fail with an invalid device response",async()=>{const t={sendCommand:vi.fn().mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response from the device")}))},a={hmac:Uint8Array.from([4])},n={getId:vi.fn().mockReturnValue(Uint8Array.from([5]))},r={merklizeWallet:vi.fn()},s=()=>({run:vi.fn().mockResolvedValue((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response from the device")}))}),o=await new l.GetWalletAddressTask(t,{checkOnDevice:!0,wallet:a,change:!1,addressIndex:0},n,r,s).run();expect(o).toStrictEqual((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response from the device")}))})})});
2
2
  //# sourceMappingURL=GetWalletAddressTask.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/GetWalletAddressTask.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { type ContinueTask } from \"./ContinueTask\";\nimport { GetWalletAddressTask } from \"./GetWalletAddressTask\";\n\ndescribe(\"GetWalletAddressTask\", () => {\n describe(\"run\", () => {\n it(\"should return a wallet address successfully\", async () => {\n // given\n const api = {\n sendCommand: jest.fn().mockResolvedValueOnce(\n CommandResultFactory({\n data: Uint8Array.from([0x01, 0x02, 0x03]),\n }),\n ),\n } as unknown as InternalApi;\n\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as unknown as InternalWallet;\n\n const walletSerializer = {\n getId: jest.fn().mockReturnValue(Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n\n const dataStoreService = {\n merklizeWallet: jest.fn(),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockResolvedValue(\n CommandResultFactory({\n data: {\n data: Uint8Array.from([\n 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf1,\n ]),\n },\n }),\n ),\n }) as unknown as ContinueTask;\n\n const mockGetAddress = jest.fn().mockReturnValue(\n CommandResultFactory({\n data: { address: \"some address\" },\n }),\n );\n\n // when\n const result = await new GetWalletAddressTask(\n api,\n {\n checkOnDevice: true,\n wallet,\n change: false,\n addressIndex: 0,\n },\n walletSerializer,\n dataStoreService,\n continueTaskFactory,\n mockGetAddress,\n ).run();\n\n // then\n expect(walletSerializer.getId).toHaveBeenCalledWith(wallet);\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: {\n address: \"some address\",\n },\n }),\n );\n });\n\n it(\"should fail if ContinueTask fails\", async () => {\n // given\n const api = {\n sendCommand: jest.fn(),\n } as unknown as InternalApi;\n\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as unknown as InternalWallet;\n\n const walletSerializer = {\n getId: jest.fn().mockReturnValue(Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n\n const dataStoreService = {\n merklizeWallet: jest.fn(),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"ContinueTask failed\"),\n }),\n ),\n }) as unknown as ContinueTask;\n\n // when\n const result = await new GetWalletAddressTask(\n api,\n {\n checkOnDevice: true,\n wallet,\n change: false,\n addressIndex: 0,\n },\n walletSerializer,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"ContinueTask failed\"),\n }),\n );\n });\n\n it(\"should fail with an invalid device response\", async () => {\n // given\n const api = {\n sendCommand: jest.fn().mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Invalid response from the device\",\n ),\n }),\n ),\n } as unknown as InternalApi;\n\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as unknown as InternalWallet;\n\n const walletSerializer = {\n getId: jest.fn().mockReturnValue(Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n\n const dataStoreService = {\n merklizeWallet: jest.fn(),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Invalid response from the device\",\n ),\n }),\n ),\n }) as unknown as ContinueTask;\n\n // when\n const result = await new GetWalletAddressTask(\n api,\n {\n checkOnDevice: true,\n wallet,\n change: false,\n addressIndex: 0,\n },\n walletSerializer,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response from the device\"),\n }),\n );\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAIO,2CAOPC,EAAqC,kCAErC,SAAS,uBAAwB,IAAM,CACrC,SAAS,MAAO,IAAM,CACpB,GAAG,8CAA+C,SAAY,CAE5D,MAAMC,EAAM,CACV,YAAa,KAAK,GAAG,EAAE,yBACrB,wBAAqB,CACnB,KAAM,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,CAC1C,CAAC,CACH,CACF,EAEMC,EAAS,CACb,KAAM,WAAW,KAAK,CAAC,CAAI,CAAC,CAC9B,EAEMC,EAAmB,CACvB,MAAO,KAAK,GAAG,EAAE,gBAAgB,WAAW,KAAK,CAAC,CAAI,CAAC,CAAC,CAC1D,EAEMC,EAAmB,CACvB,eAAgB,KAAK,GAAG,CAC1B,EAEMC,EAAsB,KACzB,CACC,IAAK,KAAK,GAAG,EAAE,qBACb,wBAAqB,CACnB,KAAM,CACJ,KAAM,WAAW,KAAK,CACpB,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GACtC,CAAC,CACH,CACF,CAAC,CACH,CACF,GAEIC,EAAiB,KAAK,GAAG,EAAE,mBAC/B,wBAAqB,CACnB,KAAM,CAAE,QAAS,cAAe,CAClC,CAAC,CACH,EAGMC,EAAS,MAAM,IAAI,uBACvBN,EACA,CACE,cAAe,GACf,OAAAC,EACA,OAAQ,GACR,aAAc,CAChB,EACAC,EACAC,EACAC,EACAC,CACF,EAAE,IAAI,EAGN,OAAOH,EAAiB,KAAK,EAAE,qBAAqBD,CAAM,EAC1D,OAAOK,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,QAAS,cACX,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,oCAAqC,SAAY,CAElD,MAAMN,EAAM,CACV,YAAa,KAAK,GAAG,CACvB,EAEMC,EAAS,CACb,KAAM,WAAW,KAAK,CAAC,CAAI,CAAC,CAC9B,EAEMC,EAAmB,CACvB,MAAO,KAAK,GAAG,EAAE,gBAAgB,WAAW,KAAK,CAAC,CAAI,CAAC,CAAC,CAC1D,EAEMC,EAAmB,CACvB,eAAgB,KAAK,GAAG,CAC1B,EAEMC,EAAsB,KACzB,CACC,IAAK,KAAK,GAAG,EAAE,qBACb,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,qBAAqB,CACzD,CAAC,CACH,CACF,GAGIE,EAAS,MAAM,IAAI,uBACvBN,EACA,CACE,cAAe,GACf,OAAAC,EACA,OAAQ,GACR,aAAc,CAChB,EACAC,EACAC,EACAC,CACF,EAAE,IAAI,EAGN,OAAOE,CAAM,EAAE,iBACb,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,qBAAqB,CACzD,CAAC,CACH,CACF,CAAC,EAED,GAAG,8CAA+C,SAAY,CAE5D,MAAMN,EAAM,CACV,YAAa,KAAK,GAAG,EAAE,yBACrB,wBAAqB,CACnB,MAAO,IAAI,yBACT,kCACF,CACF,CAAC,CACH,CACF,EAEMC,EAAS,CACb,KAAM,WAAW,KAAK,CAAC,CAAI,CAAC,CAC9B,EAEMC,EAAmB,CACvB,MAAO,KAAK,GAAG,EAAE,gBAAgB,WAAW,KAAK,CAAC,CAAI,CAAC,CAAC,CAC1D,EAEMC,EAAmB,CACvB,eAAgB,KAAK,GAAG,CAC1B,EAEMC,EAAsB,KACzB,CACC,IAAK,KAAK,GAAG,EAAE,qBACb,wBAAqB,CACnB,MAAO,IAAI,yBACT,kCACF,CACF,CAAC,CACH,CACF,GAGIE,EAAS,MAAM,IAAI,uBACvBN,EACA,CACE,cAAe,GACf,OAAAC,EACA,OAAQ,GACR,aAAc,CAChB,EACAC,EACAC,EACAC,CACF,EAAE,IAAI,EAGN,OAAOE,CAAM,EAAE,iBACb,wBAAqB,CACnB,MAAO,IAAI,yBAAuB,kCAAkC,CACtE,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\nimport { type Wallet as InternalWallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nimport { type ContinueTask } from \"./ContinueTask\";\nimport { GetWalletAddressTask } from \"./GetWalletAddressTask\";\n\ndescribe(\"GetWalletAddressTask\", () => {\n describe(\"run\", () => {\n it(\"should return a wallet address successfully\", async () => {\n // given\n const api = {\n sendCommand: vi.fn().mockResolvedValueOnce(\n CommandResultFactory({\n data: Uint8Array.from([0x01, 0x02, 0x03]),\n }),\n ),\n } as unknown as InternalApi;\n\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as unknown as InternalWallet;\n\n const walletSerializer = {\n getId: vi.fn().mockReturnValue(Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n\n const dataStoreService = {\n merklizeWallet: vi.fn(),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockResolvedValue(\n CommandResultFactory({\n data: {\n data: Uint8Array.from([\n 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf1,\n ]),\n },\n }),\n ),\n }) as unknown as ContinueTask;\n\n const mockGetAddress = vi.fn().mockReturnValue(\n CommandResultFactory({\n data: { address: \"some address\" },\n }),\n );\n\n // when\n const result = await new GetWalletAddressTask(\n api,\n {\n checkOnDevice: true,\n wallet,\n change: false,\n addressIndex: 0,\n },\n walletSerializer,\n dataStoreService,\n continueTaskFactory,\n mockGetAddress,\n ).run();\n\n // then\n expect(walletSerializer.getId).toHaveBeenCalledWith(wallet);\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: {\n address: \"some address\",\n },\n }),\n );\n });\n\n it(\"should fail if ContinueTask fails\", async () => {\n // given\n const api = {\n sendCommand: vi.fn(),\n } as unknown as InternalApi;\n\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as unknown as InternalWallet;\n\n const walletSerializer = {\n getId: vi.fn().mockReturnValue(Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n\n const dataStoreService = {\n merklizeWallet: vi.fn(),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"ContinueTask failed\"),\n }),\n ),\n }) as unknown as ContinueTask;\n\n // when\n const result = await new GetWalletAddressTask(\n api,\n {\n checkOnDevice: true,\n wallet,\n change: false,\n addressIndex: 0,\n },\n walletSerializer,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"ContinueTask failed\"),\n }),\n );\n });\n\n it(\"should fail with an invalid device response\", async () => {\n // given\n const api = {\n sendCommand: vi.fn().mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Invalid response from the device\",\n ),\n }),\n ),\n } as unknown as InternalApi;\n\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as unknown as InternalWallet;\n\n const walletSerializer = {\n getId: vi.fn().mockReturnValue(Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n\n const dataStoreService = {\n merklizeWallet: vi.fn(),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Invalid response from the device\",\n ),\n }),\n ),\n }) as unknown as ContinueTask;\n\n // when\n const result = await new GetWalletAddressTask(\n api,\n {\n checkOnDevice: true,\n wallet,\n change: false,\n addressIndex: 0,\n },\n walletSerializer,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response from the device\"),\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "import_GetWalletAddressTask", "api", "wallet", "walletSerializer", "dataStoreService", "continueTaskFactory", "mockGetAddress", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),l=require("../../../api/model/Wallet"),s=require("../../app-binder/task/PrepareWalletPolicyTask");const c=jest.fn(),d=jest.fn();describe("PrepareWalletPolicyTask",()=>{let t;const i={fromDefaultWallet:c,fromRegisteredWallet:d};beforeEach(()=>{t={sendCommand:jest.fn()}}),afterEach(()=>{jest.resetAllMocks()}),it("should return a builded wallet from a default one",async()=>{const n=new l.DefaultWallet("49'/0'/0'",l.DefaultDescriptorTemplate.LEGACY),o=new s.PrepareWalletPolicyTask(t,{wallet:n},i);t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{extendedPublicKey:"xPublicKey"}}))),t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{masterFingerprint:Uint8Array.from([66,33,18,36])}})));const a={};c.mockReturnValue(a);const r=await o.run();expect(c).toHaveBeenCalledWith(Uint8Array.from([66,33,18,36]),"xPublicKey",n),expect(r).toStrictEqual((0,e.CommandResultFactory)({data:a}))}),it("should return a builded wallet from a registered one",async()=>{const n=new l.RegisteredWallet("walletName",l.DefaultDescriptorTemplate.LEGACY,["key0","key1"],Uint8Array.from([42])),o=new s.PrepareWalletPolicyTask(t,{wallet:n},i);t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{extendedPublicKey:"xPublicKey"}}))),t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{masterFingerprint:Uint8Array.from([66,33,18,36])}})));const a={};d.mockReturnValue(a);const r=await o.run();expect(d).toHaveBeenCalledWith(n),expect(r).toStrictEqual((0,e.CommandResultFactory)({data:a}))}),it("should return an error if getMasterFingerprint failed",async()=>{const n=new l.DefaultWallet("49'/0'/0'",l.DefaultDescriptorTemplate.LEGACY),o=new s.PrepareWalletPolicyTask(t,{wallet:n},i),a=new e.UnknownDeviceExchangeError("Failed");t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({error:a})));const r=await o.run();expect(r).toStrictEqual((0,e.CommandResultFactory)({error:a}))}),it("should return an error if getExtendedPublicKey failed",async()=>{const n=new l.DefaultWallet("49'/0'/0'",l.DefaultDescriptorTemplate.LEGACY),o=new s.PrepareWalletPolicyTask(t,{wallet:n},i),a=new e.UnknownDeviceExchangeError("Failed");t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{masterFingerprint:Uint8Array.from([66,33,18,36])}}))),t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({error:a})));const r=await o.run();expect(r).toStrictEqual((0,e.CommandResultFactory)({error:a})),expect(r).toStrictEqual((0,e.CommandResultFactory)({error:a}))})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),l=require("../../../api/model/Wallet"),s=require("../../app-binder/task/PrepareWalletPolicyTask");const c=vi.fn(),d=vi.fn();describe("PrepareWalletPolicyTask",()=>{let t;const i={fromDefaultWallet:c,fromRegisteredWallet:d};beforeEach(()=>{t={sendCommand:vi.fn()}}),afterEach(()=>{vi.resetAllMocks()}),it("should return a builded wallet from a default one",async()=>{const n=new l.DefaultWallet("49'/0'/0'",l.DefaultDescriptorTemplate.LEGACY),o=new s.PrepareWalletPolicyTask(t,{wallet:n},i);t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{extendedPublicKey:"xPublicKey"}}))),t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{masterFingerprint:Uint8Array.from([66,33,18,36])}})));const a={};c.mockReturnValue(a);const r=await o.run();expect(c).toHaveBeenCalledWith(Uint8Array.from([66,33,18,36]),"xPublicKey",n),expect(r).toStrictEqual((0,e.CommandResultFactory)({data:a}))}),it("should return a builded wallet from a registered one",async()=>{const n=new l.RegisteredWallet("walletName",l.DefaultDescriptorTemplate.LEGACY,["key0","key1"],Uint8Array.from([42])),o=new s.PrepareWalletPolicyTask(t,{wallet:n},i);t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{extendedPublicKey:"xPublicKey"}}))),t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{masterFingerprint:Uint8Array.from([66,33,18,36])}})));const a={};d.mockReturnValue(a);const r=await o.run();expect(d).toHaveBeenCalledWith(n),expect(r).toStrictEqual((0,e.CommandResultFactory)({data:a}))}),it("should return an error if getMasterFingerprint failed",async()=>{const n=new l.DefaultWallet("49'/0'/0'",l.DefaultDescriptorTemplate.LEGACY),o=new s.PrepareWalletPolicyTask(t,{wallet:n},i),a=new e.UnknownDeviceExchangeError("Failed");t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({error:a})));const r=await o.run();expect(r).toStrictEqual((0,e.CommandResultFactory)({error:a}))}),it("should return an error if getExtendedPublicKey failed",async()=>{const n=new l.DefaultWallet("49'/0'/0'",l.DefaultDescriptorTemplate.LEGACY),o=new s.PrepareWalletPolicyTask(t,{wallet:n},i),a=new e.UnknownDeviceExchangeError("Failed");t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({data:{masterFingerprint:Uint8Array.from([66,33,18,36])}}))),t.sendCommand.mockResolvedValueOnce(Promise.resolve((0,e.CommandResultFactory)({error:a})));const r=await o.run();expect(r).toStrictEqual((0,e.CommandResultFactory)({error:a})),expect(r).toStrictEqual((0,e.CommandResultFactory)({error:a}))})});
2
2
  //# sourceMappingURL=PrepareWalletPolicyTask.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/PrepareWalletPolicyTask.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n type InternalApi,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n DefaultDescriptorTemplate,\n DefaultWallet,\n RegisteredWallet,\n type Wallet,\n} from \"@api/model/Wallet\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nconst fromDefaultWalletMock = jest.fn();\nconst fromRegisteredWalletMock = jest.fn();\n\ndescribe(\"PrepareWalletPolicyTask\", () => {\n let internalApi: { sendCommand: jest.Mock };\n const walletBuilder = {\n fromDefaultWallet: fromDefaultWalletMock,\n fromRegisteredWallet: fromRegisteredWalletMock,\n } as unknown as WalletBuilder;\n beforeEach(() => {\n internalApi = {\n sendCommand: jest.fn(),\n };\n });\n afterEach(() => {\n jest.resetAllMocks();\n });\n\n it(\"should return a builded wallet from a default one\", async () => {\n // given\n const defaultWallet = new DefaultWallet(\n \"49'/0'/0'\",\n DefaultDescriptorTemplate.LEGACY,\n );\n const task = new PrepareWalletPolicyTask(\n internalApi as unknown as InternalApi,\n { wallet: defaultWallet },\n walletBuilder,\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n extendedPublicKey: \"xPublicKey\",\n },\n }),\n ),\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n masterFingerprint: Uint8Array.from([0x42, 0x21, 0x12, 0x24]),\n },\n }),\n ),\n );\n const wallet = {} as Wallet;\n fromDefaultWalletMock.mockReturnValue(wallet);\n // when\n const result = await task.run();\n // then\n expect(fromDefaultWalletMock).toHaveBeenCalledWith(\n Uint8Array.from([0x42, 0x21, 0x12, 0x24]),\n \"xPublicKey\",\n defaultWallet,\n );\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: wallet,\n }),\n );\n });\n\n it(\"should return a builded wallet from a registered one\", async () => {\n // given\n const registeredWallet = new RegisteredWallet(\n \"walletName\",\n DefaultDescriptorTemplate.LEGACY,\n [\"key0\", \"key1\"],\n Uint8Array.from([42]),\n );\n const task = new PrepareWalletPolicyTask(\n internalApi as unknown as InternalApi,\n { wallet: registeredWallet },\n walletBuilder,\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n extendedPublicKey: \"xPublicKey\",\n },\n }),\n ),\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n masterFingerprint: Uint8Array.from([0x42, 0x21, 0x12, 0x24]),\n },\n }),\n ),\n );\n const wallet = {} as Wallet;\n fromRegisteredWalletMock.mockReturnValue(wallet);\n // when\n const result = await task.run();\n // then\n expect(fromRegisteredWalletMock).toHaveBeenCalledWith(registeredWallet);\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: wallet,\n }),\n );\n });\n\n it(\"should return an error if getMasterFingerprint failed\", async () => {\n // given\n const defaultWallet = new DefaultWallet(\n \"49'/0'/0'\",\n DefaultDescriptorTemplate.LEGACY,\n );\n const task = new PrepareWalletPolicyTask(\n internalApi as unknown as InternalApi,\n { wallet: defaultWallet },\n walletBuilder,\n );\n const error = new UnknownDeviceExchangeError(\"Failed\");\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n error,\n }),\n ),\n );\n // when\n const result = await task.run();\n // then\n expect(result).toStrictEqual(CommandResultFactory({ error }));\n });\n\n it(\"should return an error if getExtendedPublicKey failed\", async () => {\n // given\n const defaultWallet = new DefaultWallet(\n \"49'/0'/0'\",\n DefaultDescriptorTemplate.LEGACY,\n );\n const task = new PrepareWalletPolicyTask(\n internalApi as unknown as InternalApi,\n { wallet: defaultWallet },\n walletBuilder,\n );\n const error = new UnknownDeviceExchangeError(\"Failed\");\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n masterFingerprint: Uint8Array.from([0x42, 0x21, 0x12, 0x24]),\n },\n }),\n ),\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n error,\n }),\n ),\n );\n // when\n const result = await task.run();\n // then\n expect(result).toStrictEqual(CommandResultFactory({ error }));\n expect(result).toStrictEqual(\n CommandResultFactory({\n error,\n }),\n );\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n type InternalApi,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Mock } from \"vitest\";\n\nimport {\n DefaultDescriptorTemplate,\n DefaultWallet,\n RegisteredWallet,\n type Wallet,\n} from \"@api/model/Wallet\";\nimport { PrepareWalletPolicyTask } from \"@internal/app-binder/task/PrepareWalletPolicyTask\";\nimport { type WalletBuilder } from \"@internal/wallet/service/WalletBuilder\";\nconst fromDefaultWalletMock = vi.fn();\nconst fromRegisteredWalletMock = vi.fn();\n\ndescribe(\"PrepareWalletPolicyTask\", () => {\n let internalApi: { sendCommand: Mock };\n const walletBuilder = {\n fromDefaultWallet: fromDefaultWalletMock,\n fromRegisteredWallet: fromRegisteredWalletMock,\n } as unknown as WalletBuilder;\n beforeEach(() => {\n internalApi = {\n sendCommand: vi.fn(),\n };\n });\n afterEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should return a builded wallet from a default one\", async () => {\n // given\n const defaultWallet = new DefaultWallet(\n \"49'/0'/0'\",\n DefaultDescriptorTemplate.LEGACY,\n );\n const task = new PrepareWalletPolicyTask(\n internalApi as unknown as InternalApi,\n { wallet: defaultWallet },\n walletBuilder,\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n extendedPublicKey: \"xPublicKey\",\n },\n }),\n ),\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n masterFingerprint: Uint8Array.from([0x42, 0x21, 0x12, 0x24]),\n },\n }),\n ),\n );\n const wallet = {} as Wallet;\n fromDefaultWalletMock.mockReturnValue(wallet);\n // when\n const result = await task.run();\n // then\n expect(fromDefaultWalletMock).toHaveBeenCalledWith(\n Uint8Array.from([0x42, 0x21, 0x12, 0x24]),\n \"xPublicKey\",\n defaultWallet,\n );\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: wallet,\n }),\n );\n });\n\n it(\"should return a builded wallet from a registered one\", async () => {\n // given\n const registeredWallet = new RegisteredWallet(\n \"walletName\",\n DefaultDescriptorTemplate.LEGACY,\n [\"key0\", \"key1\"],\n Uint8Array.from([42]),\n );\n const task = new PrepareWalletPolicyTask(\n internalApi as unknown as InternalApi,\n { wallet: registeredWallet },\n walletBuilder,\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n extendedPublicKey: \"xPublicKey\",\n },\n }),\n ),\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n masterFingerprint: Uint8Array.from([0x42, 0x21, 0x12, 0x24]),\n },\n }),\n ),\n );\n const wallet = {} as Wallet;\n fromRegisteredWalletMock.mockReturnValue(wallet);\n // when\n const result = await task.run();\n // then\n expect(fromRegisteredWalletMock).toHaveBeenCalledWith(registeredWallet);\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: wallet,\n }),\n );\n });\n\n it(\"should return an error if getMasterFingerprint failed\", async () => {\n // given\n const defaultWallet = new DefaultWallet(\n \"49'/0'/0'\",\n DefaultDescriptorTemplate.LEGACY,\n );\n const task = new PrepareWalletPolicyTask(\n internalApi as unknown as InternalApi,\n { wallet: defaultWallet },\n walletBuilder,\n );\n const error = new UnknownDeviceExchangeError(\"Failed\");\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n error,\n }),\n ),\n );\n // when\n const result = await task.run();\n // then\n expect(result).toStrictEqual(CommandResultFactory({ error }));\n });\n\n it(\"should return an error if getExtendedPublicKey failed\", async () => {\n // given\n const defaultWallet = new DefaultWallet(\n \"49'/0'/0'\",\n DefaultDescriptorTemplate.LEGACY,\n );\n const task = new PrepareWalletPolicyTask(\n internalApi as unknown as InternalApi,\n { wallet: defaultWallet },\n walletBuilder,\n );\n const error = new UnknownDeviceExchangeError(\"Failed\");\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n data: {\n masterFingerprint: Uint8Array.from([0x42, 0x21, 0x12, 0x24]),\n },\n }),\n ),\n );\n internalApi.sendCommand.mockResolvedValueOnce(\n Promise.resolve(\n CommandResultFactory({\n error,\n }),\n ),\n );\n // when\n const result = await task.run();\n // then\n expect(result).toStrictEqual(CommandResultFactory({ error }));\n expect(result).toStrictEqual(\n CommandResultFactory({\n error,\n }),\n );\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "import_Wallet", "import_PrepareWalletPolicyTask", "fromDefaultWalletMock", "fromRegisteredWalletMock", "internalApi", "walletBuilder", "defaultWallet", "task", "wallet", "result", "registeredWallet", "error"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),s=require("../../app-binder/command/utils/constants"),u=require("../../data-store/model/DataStore"),o=require("./SignMessageTask");const f="a".repeat(s.CHUNK_SIZE),k="a".repeat(s.CHUNK_SIZE*2),x="44'/0'/0'/0/0",i=new Uint8Array(s.SHA256_SIZE).fill(1),d={v:27,r:"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e",s:"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce"},S=new Uint8Array([27,151,164,202,143,105,70,51,89,38,1,245,162,62,11,204,85,60,157,10,144,211,163,66,45,87,85,8,169,40,152,185,110,105,80,208,46,116,233,193,2,193,100,162,37,83,48,130,202,189,216,144,239,196,99,246,127,96,206,254,140,63,135,207,206]);describe("SignMessageTask",()=>{const l=(0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:new Uint8Array([144,0]),data:S})}),c={sendCommand:jest.fn()};afterEach(()=>{jest.resetAllMocks()}),describe("run",()=>{it("should correctly chunk a message that fits in 1 chunk",async()=>{const a={derivationPath:x,message:f},t={merklizeChunks:jest.fn().mockReturnValue(i)},n=()=>({run:jest.fn().mockReturnValue(l)}),r=await new o.SendSignMessageTask(c,a,t,n).run();expect(t.merklizeChunks).toHaveBeenCalledWith(expect.any(u.DataStore),[Uint8Array.from(new Array(64).fill(97))]),expect(r).toStrictEqual((0,e.CommandResultFactory)({data:d}))}),it("should correctly chunk a message that fits in 2 chunks",async()=>{const a={derivationPath:x,message:k},t={merklizeChunks:jest.fn().mockReturnValue(i)},n=()=>({run:jest.fn().mockReturnValue(l)}),r=await new o.SendSignMessageTask(c,a,t,n).run();expect(t.merklizeChunks).toHaveBeenCalledWith(expect.any(u.DataStore),[Uint8Array.from(new Array(64).fill(97)),Uint8Array.from(new Array(64).fill(97))]),expect(r).toStrictEqual((0,e.CommandResultFactory)({data:d}))}),it("should return an error if the initial SignMessageCommand fails",async()=>{const a={derivationPath:x,message:f},t=(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("error")}),n={merklizeChunks:jest.fn().mockReturnValue(i)},r=()=>({run:jest.fn().mockReturnValue(t)}),m=await new o.SendSignMessageTask(c,a,n,r).run();expect(m).toStrictEqual((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("error")}))})})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),o=require("../../app-binder/command/utils/constants"),u=require("../../data-store/model/DataStore"),s=require("./SignMessageTask");const f="a".repeat(o.CHUNK_SIZE),k="a".repeat(o.CHUNK_SIZE*2),i="44'/0'/0'/0/0",x=new Uint8Array(o.SHA256_SIZE).fill(1),d={v:27,r:"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e",s:"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce"},S=new Uint8Array([27,151,164,202,143,105,70,51,89,38,1,245,162,62,11,204,85,60,157,10,144,211,163,66,45,87,85,8,169,40,152,185,110,105,80,208,46,116,233,193,2,193,100,162,37,83,48,130,202,189,216,144,239,196,99,246,127,96,206,254,140,63,135,207,206]);describe("SignMessageTask",()=>{const l=(0,e.CommandResultFactory)({data:new e.ApduResponse({statusCode:new Uint8Array([144,0]),data:S})}),c={sendCommand:vi.fn()};afterEach(()=>{vi.resetAllMocks()}),describe("run",()=>{it("should correctly chunk a message that fits in 1 chunk",async()=>{const t={derivationPath:i,message:f},a={merklizeChunks:vi.fn().mockReturnValue(x)},n=()=>({run:vi.fn().mockReturnValue(l)}),r=await new s.SendSignMessageTask(c,t,a,n).run();expect(a.merklizeChunks).toHaveBeenCalledWith(expect.any(u.DataStore),[Uint8Array.from(new Array(64).fill(97))]),expect(r).toStrictEqual((0,e.CommandResultFactory)({data:d}))}),it("should correctly chunk a message that fits in 2 chunks",async()=>{const t={derivationPath:i,message:k},a={merklizeChunks:vi.fn().mockReturnValue(x)},n=()=>({run:vi.fn().mockReturnValue(l)}),r=await new s.SendSignMessageTask(c,t,a,n).run();expect(a.merklizeChunks).toHaveBeenCalledWith(expect.any(u.DataStore),[Uint8Array.from(new Array(64).fill(97)),Uint8Array.from(new Array(64).fill(97))]),expect(r).toStrictEqual((0,e.CommandResultFactory)({data:d}))}),it("should return an error if the initial SignMessageCommand fails",async()=>{const t={derivationPath:i,message:f},a=(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("error")}),n={merklizeChunks:vi.fn().mockReturnValue(x)},r=()=>({run:vi.fn().mockReturnValue(a)}),m=await new s.SendSignMessageTask(c,t,n,r).run();expect(m).toStrictEqual((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("error")}))})})});
2
2
  //# sourceMappingURL=SignMessageTask.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/SignMessageTask.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\nimport {\n CHUNK_SIZE,\n SHA256_SIZE,\n} from \"@internal/app-binder/command/utils/constants\";\nimport { type ContinueTask } from \"@internal/app-binder/task/ContinueTask\";\nimport { DataStore } from \"@internal/data-store/model/DataStore\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\n\nimport { SendSignMessageTask } from \"./SignMessageTask\";\n\nconst EXACT_ONE_CHUNK_MESSAGE = \"a\".repeat(CHUNK_SIZE);\nconst EXACT_TWO_CHUNKS_MESSAGE = \"a\".repeat(CHUNK_SIZE * 2);\nconst DERIVATION_PATH = \"44'/0'/0'/0/0\";\nconst MERKLE_ROOT = new Uint8Array(SHA256_SIZE).fill(0x01);\n\nconst SIGNATURE: Signature = {\n v: 27,\n r: \"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e\",\n s: \"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce\",\n};\n\nconst SIGNATURE_APDU = new Uint8Array([\n 0x1b, 0x97, 0xa4, 0xca, 0x8f, 0x69, 0x46, 0x33, 0x59, 0x26, 0x01, 0xf5, 0xa2,\n 0x3e, 0x0b, 0xcc, 0x55, 0x3c, 0x9d, 0x0a, 0x90, 0xd3, 0xa3, 0x42, 0x2d, 0x57,\n 0x55, 0x08, 0xa9, 0x28, 0x98, 0xb9, 0x6e, 0x69, 0x50, 0xd0, 0x2e, 0x74, 0xe9,\n 0xc1, 0x02, 0xc1, 0x64, 0xa2, 0x25, 0x53, 0x30, 0x82, 0xca, 0xbd, 0xd8, 0x90,\n 0xef, 0xc4, 0x63, 0xf6, 0x7f, 0x60, 0xce, 0xfe, 0x8c, 0x3f, 0x87, 0xcf, 0xce,\n]);\n\ndescribe(\"SignMessageTask\", () => {\n const signatureResult = CommandResultFactory<ApduResponse, void>({\n data: new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: SIGNATURE_APDU,\n }),\n });\n const apiMock = {\n sendCommand: jest.fn(),\n } as unknown as InternalApi;\n\n afterEach(() => {\n jest.resetAllMocks();\n });\n\n describe(\"run\", () => {\n it(\"should correctly chunk a message that fits in 1 chunk\", async () => {\n // GIVEN\n const args = {\n derivationPath: DERIVATION_PATH,\n message: EXACT_ONE_CHUNK_MESSAGE,\n };\n\n const dataStoreService = {\n merklizeChunks: jest.fn().mockReturnValue(MERKLE_ROOT),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockReturnValue(signatureResult),\n }) as unknown as ContinueTask;\n\n // WHEN\n const result = await new SendSignMessageTask(\n apiMock,\n args,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // THEN\n expect(dataStoreService.merklizeChunks).toHaveBeenCalledWith(\n expect.any(DataStore),\n [Uint8Array.from(new Array(64).fill(0x61))],\n );\n expect(result).toStrictEqual(CommandResultFactory({ data: SIGNATURE }));\n });\n\n it(\"should correctly chunk a message that fits in 2 chunks\", async () => {\n // GIVEN\n const args = {\n derivationPath: DERIVATION_PATH,\n message: EXACT_TWO_CHUNKS_MESSAGE,\n };\n\n const dataStoreService = {\n merklizeChunks: jest.fn().mockReturnValue(MERKLE_ROOT),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockReturnValue(signatureResult),\n }) as unknown as ContinueTask;\n\n // WHEN\n const result = await new SendSignMessageTask(\n apiMock,\n args,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // THEN\n expect(dataStoreService.merklizeChunks).toHaveBeenCalledWith(\n expect.any(DataStore),\n [\n Uint8Array.from(new Array(64).fill(0x61)),\n Uint8Array.from(new Array(64).fill(0x61)),\n ],\n );\n expect(result).toStrictEqual(CommandResultFactory({ data: SIGNATURE }));\n });\n\n it(\"should return an error if the initial SignMessageCommand fails\", async () => {\n // GIVEN\n const args = {\n derivationPath: DERIVATION_PATH,\n message: EXACT_ONE_CHUNK_MESSAGE,\n };\n\n const resultError = CommandResultFactory<Signature, void>({\n error: new InvalidStatusWordError(\"error\"),\n });\n const dataStoreService = {\n merklizeChunks: jest.fn().mockReturnValue(MERKLE_ROOT),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockReturnValue(resultError),\n }) as unknown as ContinueTask;\n\n // WHEN\n const result = await new SendSignMessageTask(\n apiMock,\n args,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"error\"),\n }),\n );\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\nimport {\n CHUNK_SIZE,\n SHA256_SIZE,\n} from \"@internal/app-binder/command/utils/constants\";\nimport { type ContinueTask } from \"@internal/app-binder/task/ContinueTask\";\nimport { DataStore } from \"@internal/data-store/model/DataStore\";\nimport { type DataStoreService } from \"@internal/data-store/service/DataStoreService\";\n\nimport { SendSignMessageTask } from \"./SignMessageTask\";\n\nconst EXACT_ONE_CHUNK_MESSAGE = \"a\".repeat(CHUNK_SIZE);\nconst EXACT_TWO_CHUNKS_MESSAGE = \"a\".repeat(CHUNK_SIZE * 2);\nconst DERIVATION_PATH = \"44'/0'/0'/0/0\";\nconst MERKLE_ROOT = new Uint8Array(SHA256_SIZE).fill(0x01);\n\nconst SIGNATURE: Signature = {\n v: 27,\n r: \"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e\",\n s: \"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce\",\n};\n\nconst SIGNATURE_APDU = new Uint8Array([\n 0x1b, 0x97, 0xa4, 0xca, 0x8f, 0x69, 0x46, 0x33, 0x59, 0x26, 0x01, 0xf5, 0xa2,\n 0x3e, 0x0b, 0xcc, 0x55, 0x3c, 0x9d, 0x0a, 0x90, 0xd3, 0xa3, 0x42, 0x2d, 0x57,\n 0x55, 0x08, 0xa9, 0x28, 0x98, 0xb9, 0x6e, 0x69, 0x50, 0xd0, 0x2e, 0x74, 0xe9,\n 0xc1, 0x02, 0xc1, 0x64, 0xa2, 0x25, 0x53, 0x30, 0x82, 0xca, 0xbd, 0xd8, 0x90,\n 0xef, 0xc4, 0x63, 0xf6, 0x7f, 0x60, 0xce, 0xfe, 0x8c, 0x3f, 0x87, 0xcf, 0xce,\n]);\n\ndescribe(\"SignMessageTask\", () => {\n const signatureResult = CommandResultFactory<ApduResponse, void>({\n data: new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: SIGNATURE_APDU,\n }),\n });\n const apiMock = {\n sendCommand: vi.fn(),\n } as unknown as InternalApi;\n\n afterEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"run\", () => {\n it(\"should correctly chunk a message that fits in 1 chunk\", async () => {\n // GIVEN\n const args = {\n derivationPath: DERIVATION_PATH,\n message: EXACT_ONE_CHUNK_MESSAGE,\n };\n\n const dataStoreService = {\n merklizeChunks: vi.fn().mockReturnValue(MERKLE_ROOT),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockReturnValue(signatureResult),\n }) as unknown as ContinueTask;\n\n // WHEN\n const result = await new SendSignMessageTask(\n apiMock,\n args,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // THEN\n expect(dataStoreService.merklizeChunks).toHaveBeenCalledWith(\n expect.any(DataStore),\n [Uint8Array.from(new Array(64).fill(0x61))],\n );\n expect(result).toStrictEqual(CommandResultFactory({ data: SIGNATURE }));\n });\n\n it(\"should correctly chunk a message that fits in 2 chunks\", async () => {\n // GIVEN\n const args = {\n derivationPath: DERIVATION_PATH,\n message: EXACT_TWO_CHUNKS_MESSAGE,\n };\n\n const dataStoreService = {\n merklizeChunks: vi.fn().mockReturnValue(MERKLE_ROOT),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockReturnValue(signatureResult),\n }) as unknown as ContinueTask;\n\n // WHEN\n const result = await new SendSignMessageTask(\n apiMock,\n args,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // THEN\n expect(dataStoreService.merklizeChunks).toHaveBeenCalledWith(\n expect.any(DataStore),\n [\n Uint8Array.from(new Array(64).fill(0x61)),\n Uint8Array.from(new Array(64).fill(0x61)),\n ],\n );\n expect(result).toStrictEqual(CommandResultFactory({ data: SIGNATURE }));\n });\n\n it(\"should return an error if the initial SignMessageCommand fails\", async () => {\n // GIVEN\n const args = {\n derivationPath: DERIVATION_PATH,\n message: EXACT_ONE_CHUNK_MESSAGE,\n };\n\n const resultError = CommandResultFactory<Signature, void>({\n error: new InvalidStatusWordError(\"error\"),\n });\n const dataStoreService = {\n merklizeChunks: vi.fn().mockReturnValue(MERKLE_ROOT),\n } as unknown as DataStoreService;\n\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockReturnValue(resultError),\n }) as unknown as ContinueTask;\n\n // WHEN\n const result = await new SendSignMessageTask(\n apiMock,\n args,\n dataStoreService,\n continueTaskFactory,\n ).run();\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"error\"),\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "import_constants", "import_DataStore", "import_SignMessageTask", "EXACT_ONE_CHUNK_MESSAGE", "EXACT_TWO_CHUNKS_MESSAGE", "DERIVATION_PATH", "MERKLE_ROOT", "SIGNATURE", "SIGNATURE_APDU", "signatureResult", "apiMock", "args", "dataStoreService", "continueTaskFactory", "result", "resultError"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var x=require("@ledgerhq/device-management-kit"),e=require("purify-ts"),m=require("../../app-binder/command/SignPsbtCommand"),c=require("../../app-binder/task/SignPsbtTask");const l=Uint8Array.from([0,32,241,232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210]),b=Uint8Array.from([255,254,255,255,255,0,0,0,0,0,232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210,254,238,51,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60]),u=Uint8Array.from([255,255,255,255,255,0,0,0,0,0,232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,1,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210,254,238,51,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60]);describe("SignPsbtTask",()=>{describe("run",()=>{it("should return partial signatures",async()=>{const a={sendCommand:jest.fn()},t={getGlobalValue:()=>e.Maybe.of(Uint8Array.from([3]))},n={hmac:Uint8Array.from([4])},r={globalCommitment:Uint8Array.from([3]),inputsRoot:Uint8Array.from([1]),outputsRoot:Uint8Array.from([2])},o={},s={getId:jest.fn(()=>Uint8Array.from([5]))},f={getVarint:jest.fn(()=>e.Maybe.of(42))},i=()=>({run:jest.fn().mockResolvedValue((0,x.CommandResultFactory)({data:[]})),getYieldedResults:()=>[l]}),d=await new c.SignPsbtTask(a,{psbt:t,wallet:n,psbtCommitment:r,dataStore:o},s,f,i).run();expect(a.sendCommand).toHaveBeenCalledWith(new m.SignPsbtCommand({globalCommitment:Uint8Array.from([3]),inputsCount:42,inputsRoot:Uint8Array.from([1]),outputsCount:42,outputsRoot:Uint8Array.from([2]),walletId:Uint8Array.from([5]),walletHmac:Uint8Array.from([4])})),expect(d).toStrictEqual((0,x.CommandResultFactory)({data:[{inputIndex:0,pubkey:Uint8Array.from([241,232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95]),signature:Uint8Array.from([18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210])}]}))}),it("should return musig partial signatures",async()=>{const a={sendCommand:jest.fn()},t={getGlobalValue:()=>e.Maybe.of(Uint8Array.from([3]))},n={hmac:Uint8Array.from([4])},r={globalCommitment:Uint8Array.from([3]),inputsRoot:Uint8Array.from([1]),outputsRoot:Uint8Array.from([2])},o={},s={getId:jest.fn(()=>Uint8Array.from([5]))},f={getVarint:jest.fn(()=>e.Maybe.of(42))},i=()=>({run:jest.fn().mockResolvedValue((0,x.CommandResultFactory)({data:[]})),getYieldedResults:()=>[b]}),d=await new c.SignPsbtTask(a,{psbt:t,wallet:n,psbtCommitment:r,dataStore:o},s,f,i).run();expect(a.sendCommand).toHaveBeenCalledWith(new m.SignPsbtCommand({globalCommitment:Uint8Array.from([3]),inputsCount:42,inputsRoot:Uint8Array.from([1]),outputsCount:42,outputsRoot:Uint8Array.from([2]),walletId:Uint8Array.from([5]),walletHmac:Uint8Array.from([4])})),expect(d).toStrictEqual((0,x.CommandResultFactory)({data:[{inputIndex:0,partialSignature:Uint8Array.from([232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18]),participantPubkey:Uint8Array.from([77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89]),aggregatedPubkey:Uint8Array.from([89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210,254,238,51]),tapleafHash:Uint8Array.from([77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60])}]}))}),it("should return musig pub nonce",async()=>{const a={sendCommand:jest.fn()},t={getGlobalValue:()=>e.Maybe.of(Uint8Array.from([3]))},n={hmac:Uint8Array.from([4])},r={globalCommitment:Uint8Array.from([3]),inputsRoot:Uint8Array.from([1]),outputsRoot:Uint8Array.from([2])},o={},s={getId:jest.fn(()=>Uint8Array.from([5]))},f={getVarint:jest.fn(()=>e.Maybe.of(42))},i=()=>({run:jest.fn().mockResolvedValue((0,x.CommandResultFactory)({data:[]})),getYieldedResults:()=>[u]}),d=await new c.SignPsbtTask(a,{psbt:t,wallet:n,psbtCommitment:r,dataStore:o},s,f,i).run();expect(a.sendCommand).toHaveBeenCalledWith(new m.SignPsbtCommand({globalCommitment:Uint8Array.from([3]),inputsCount:42,inputsRoot:Uint8Array.from([1]),outputsCount:42,outputsRoot:Uint8Array.from([2]),walletId:Uint8Array.from([5]),walletHmac:Uint8Array.from([4])})),expect(d).toStrictEqual((0,x.CommandResultFactory)({data:[{inputIndex:0,pubnonce:Uint8Array.from([232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,1]),participantPubkey:Uint8Array.from([77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89]),aggregatedPubkey:Uint8Array.from([89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210,254,238,51]),tapleafHash:Uint8Array.from([77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60])}]}))})}),describe("errors",()=>{it("should return an error if continue task fails",async()=>{const a={sendCommand:jest.fn()},t={getGlobalValue:jest.fn(()=>e.Nothing)},n={},r={},o={},s={getId:jest.fn(()=>Uint8Array.from([5]))},f={getVarint:jest.fn(()=>e.Maybe.of(42))},i=()=>({run:jest.fn().mockResolvedValue((0,x.CommandResultFactory)({error:new x.UnknownDeviceExchangeError("Failed")}))}),d=await new c.SignPsbtTask(a,{psbt:t,wallet:n,psbtCommitment:r,dataStore:o},s,f,i).run();expect(d).toStrictEqual((0,x.CommandResultFactory)({error:new x.UnknownDeviceExchangeError("Failed")}))})})});
1
+ "use strict";var x=require("@ledgerhq/device-management-kit"),e=require("purify-ts"),m=require("../../app-binder/command/SignPsbtCommand"),c=require("../../app-binder/task/SignPsbtTask");const l=Uint8Array.from([0,32,241,232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210]),b=Uint8Array.from([255,254,255,255,255,0,0,0,0,0,232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210,254,238,51,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60]),u=Uint8Array.from([255,255,255,255,255,0,0,0,0,0,232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,1,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210,254,238,51,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60]);describe("SignPsbtTask",()=>{describe("run",()=>{it("should return partial signatures",async()=>{const a={sendCommand:vi.fn()},t={getGlobalValue:()=>e.Maybe.of(Uint8Array.from([3]))},n={hmac:Uint8Array.from([4])},r={globalCommitment:Uint8Array.from([3]),inputsRoot:Uint8Array.from([1]),outputsRoot:Uint8Array.from([2])},o={},f={getId:vi.fn(()=>Uint8Array.from([5]))},s={getVarint:vi.fn(()=>e.Maybe.of(42))},i=()=>({run:vi.fn().mockResolvedValue((0,x.CommandResultFactory)({data:[]})),getYieldedResults:()=>[l]}),d=await new c.SignPsbtTask(a,{psbt:t,wallet:n,psbtCommitment:r,dataStore:o},f,s,i).run();expect(a.sendCommand).toHaveBeenCalledWith(new m.SignPsbtCommand({globalCommitment:Uint8Array.from([3]),inputsCount:42,inputsRoot:Uint8Array.from([1]),outputsCount:42,outputsRoot:Uint8Array.from([2]),walletId:Uint8Array.from([5]),walletHmac:Uint8Array.from([4])})),expect(d).toStrictEqual((0,x.CommandResultFactory)({data:[{inputIndex:0,pubkey:Uint8Array.from([241,232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95]),signature:Uint8Array.from([18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210])}]}))}),it("should return musig partial signatures",async()=>{const a={sendCommand:vi.fn()},t={getGlobalValue:()=>e.Maybe.of(Uint8Array.from([3]))},n={hmac:Uint8Array.from([4])},r={globalCommitment:Uint8Array.from([3]),inputsRoot:Uint8Array.from([1]),outputsRoot:Uint8Array.from([2])},o={},f={getId:vi.fn(()=>Uint8Array.from([5]))},s={getVarint:vi.fn(()=>e.Maybe.of(42))},i=()=>({run:vi.fn().mockResolvedValue((0,x.CommandResultFactory)({data:[]})),getYieldedResults:()=>[b]}),d=await new c.SignPsbtTask(a,{psbt:t,wallet:n,psbtCommitment:r,dataStore:o},f,s,i).run();expect(a.sendCommand).toHaveBeenCalledWith(new m.SignPsbtCommand({globalCommitment:Uint8Array.from([3]),inputsCount:42,inputsRoot:Uint8Array.from([1]),outputsCount:42,outputsRoot:Uint8Array.from([2]),walletId:Uint8Array.from([5]),walletHmac:Uint8Array.from([4])})),expect(d).toStrictEqual((0,x.CommandResultFactory)({data:[{inputIndex:0,partialSignature:Uint8Array.from([232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18]),participantPubkey:Uint8Array.from([77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89]),aggregatedPubkey:Uint8Array.from([89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210,254,238,51]),tapleafHash:Uint8Array.from([77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60])}]}))}),it("should return musig pub nonce",async()=>{const a={sendCommand:vi.fn()},t={getGlobalValue:()=>e.Maybe.of(Uint8Array.from([3]))},n={hmac:Uint8Array.from([4])},r={globalCommitment:Uint8Array.from([3]),inputsRoot:Uint8Array.from([1]),outputsRoot:Uint8Array.from([2])},o={},f={getId:vi.fn(()=>Uint8Array.from([5]))},s={getVarint:vi.fn(()=>e.Maybe.of(42))},i=()=>({run:vi.fn().mockResolvedValue((0,x.CommandResultFactory)({data:[]})),getYieldedResults:()=>[u]}),d=await new c.SignPsbtTask(a,{psbt:t,wallet:n,psbtCommitment:r,dataStore:o},f,s,i).run();expect(a.sendCommand).toHaveBeenCalledWith(new m.SignPsbtCommand({globalCommitment:Uint8Array.from([3]),inputsCount:42,inputsRoot:Uint8Array.from([1]),outputsCount:42,outputsRoot:Uint8Array.from([2]),walletId:Uint8Array.from([5]),walletHmac:Uint8Array.from([4])})),expect(d).toStrictEqual((0,x.CommandResultFactory)({data:[{inputIndex:0,pubnonce:Uint8Array.from([232,66,68,127,174,123,28,110,183,168,167,133,247,118,250,25,169,58,185,108,193,238,238,233,71,193,113,19,56,95,95,18,77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89,1]),participantPubkey:Uint8Array.from([77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60,89]),aggregatedPubkey:Uint8Array.from([89,65,19,229,113,0,6,61,157,204,215,143,179,147,130,219,248,10,143,17,80,253,89,217,254,183,158,37,59,210,254,238,51]),tapleafHash:Uint8Array.from([77,99,92,242,82,174,38,166,123,226,119,113,46,173,7,180,72,150,223,176,22,252,157,3,163,233,34,189,154,1,102,60])}]}))})}),describe("errors",()=>{it("should return an error if continue task fails",async()=>{const a={sendCommand:vi.fn()},t={getGlobalValue:vi.fn(()=>e.Nothing)},n={},r={},o={},f={getId:vi.fn(()=>Uint8Array.from([5]))},s={getVarint:vi.fn(()=>e.Maybe.of(42))},i=()=>({run:vi.fn().mockResolvedValue((0,x.CommandResultFactory)({error:new x.UnknownDeviceExchangeError("Failed")}))}),d=await new c.SignPsbtTask(a,{psbt:t,wallet:n,psbtCommitment:r,dataStore:o},f,s,i).run();expect(d).toStrictEqual((0,x.CommandResultFactory)({error:new x.UnknownDeviceExchangeError("Failed")}))})})});
2
2
  //# sourceMappingURL=SignPsbtTask.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/SignPsbtTask.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n type InternalApi,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Maybe, Nothing } from \"purify-ts\";\n\nimport { SignPsbtCommand } from \"@internal/app-binder/command/SignPsbtCommand\";\nimport { type ContinueTask } from \"@internal/app-binder/task/ContinueTask\";\nimport { SignPsbtTask } from \"@internal/app-binder/task/SignPsbtTask\";\nimport { type DataStore } from \"@internal/data-store/model/DataStore\";\nimport type { PsbtCommitment } from \"@internal/data-store/service/DataStoreService\";\nimport { type Psbt } from \"@internal/psbt/model/Psbt\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type Wallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nconst SIGN_PSBT_YIELD_PARIAL_SIG_RESULT = Uint8Array.from([\n 0x00, 0x20, 0xf1, 0xe8, 0x42, 0x44, 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8,\n 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19, 0xa9, 0x3a, 0xb9, 0x6c, 0xc1, 0xee, 0xee,\n 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38, 0x5f, 0x5f, 0x12, 0x4d, 0x63, 0x5c, 0xf2,\n 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48,\n 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c, 0x59, 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00, 0x06, 0x3d, 0x9d, 0xcc,\n 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb, 0xf8, 0x0a, 0x8f, 0x11, 0x50, 0xfd, 0x59,\n 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b, 0xd2,\n]);\n\nconst SIGN_PSBT_YIELD_MUSIG_PARIAL_SIG_RESULT = Uint8Array.from([\n 0xff, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x42, 0x44,\n 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8, 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19,\n 0xa9, 0x3a, 0xb9, 0x6c, 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38,\n 0x5f, 0x5f, 0x12, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d,\n 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01, 0x66, 0x3c, 0x59, 0x59, 0x41, 0x13,\n 0xe5, 0x71, 0x00, 0x06, 0x3d, 0x9d, 0xcc, 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb,\n 0xf8, 0x0a, 0x8f, 0x11, 0x50, 0xfd, 0x59, 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b,\n 0xd2, 0xfe, 0xee, 0x33, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b,\n 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc,\n 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01, 0x66, 0x3c,\n]);\n\nconst SIGN_PSBT_YIELD_MUSIG_PUB_NONCE_RESULT = Uint8Array.from([\n 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x42, 0x44,\n 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8, 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19,\n 0xa9, 0x3a, 0xb9, 0x6c, 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38,\n 0x5f, 0x5f, 0x12, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d,\n 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01, 0x66, 0x3c, 0x59, 0x01, 0x4d, 0x63,\n 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07,\n 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd,\n 0x9a, 0x01, 0x66, 0x3c, 0x59, 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00, 0x06, 0x3d,\n 0x9d, 0xcc, 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb, 0xf8, 0x0a, 0x8f, 0x11, 0x50,\n 0xfd, 0x59, 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b, 0xd2, 0xfe, 0xee, 0x33, 0x4d,\n 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2, 0x77, 0x71, 0x2e, 0xad,\n 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22,\n 0xbd, 0x9a, 0x01, 0x66, 0x3c,\n]);\n\ndescribe(\"SignPsbtTask\", () => {\n describe(\"run\", () => {\n it(\"should return partial signatures\", async () => {\n // given\n const api = {\n sendCommand: jest.fn(),\n } as unknown as InternalApi;\n const psbt = {\n getGlobalValue: () => Maybe.of(Uint8Array.from([0x03])),\n } as unknown as Psbt;\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as Wallet;\n const psbtCommitment = {\n globalCommitment: Uint8Array.from([0x03]),\n inputsRoot: Uint8Array.from([0x01]),\n outputsRoot: Uint8Array.from([0x02]),\n } as PsbtCommitment;\n const dataStore = {} as DataStore;\n const walletSerializer = {\n getId: jest.fn(() => Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n const valueParser = {\n getVarint: jest.fn(() => Maybe.of(42)),\n } as unknown as ValueParser;\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockResolvedValue(\n CommandResultFactory({\n data: [],\n }),\n ),\n getYieldedResults: () => [SIGN_PSBT_YIELD_PARIAL_SIG_RESULT],\n }) as unknown as ContinueTask;\n\n // when\n const signatures = await new SignPsbtTask(\n api,\n {\n psbt,\n wallet,\n psbtCommitment,\n dataStore,\n },\n walletSerializer,\n valueParser,\n continueTaskFactory,\n ).run();\n // then\n expect(api.sendCommand).toHaveBeenCalledWith(\n new SignPsbtCommand({\n globalCommitment: Uint8Array.from([0x03]),\n inputsCount: 42,\n inputsRoot: Uint8Array.from([0x01]),\n outputsCount: 42,\n outputsRoot: Uint8Array.from([0x02]),\n walletId: Uint8Array.from([0x05]),\n walletHmac: Uint8Array.from([0x04]),\n }),\n );\n expect(signatures).toStrictEqual(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([\n 0xf1, 0xe8, 0x42, 0x44, 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7,\n 0xa8, 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19, 0xa9, 0x3a, 0xb9,\n 0x6c, 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38,\n 0x5f, 0x5f,\n ]),\n signature: Uint8Array.from([\n 0x12, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b,\n 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf,\n 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a,\n 0x01, 0x66, 0x3c, 0x59, 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00,\n 0x06, 0x3d, 0x9d, 0xcc, 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb,\n 0xf8, 0x0a, 0x8f, 0x11, 0x50, 0xfd, 0x59, 0xd9, 0xfe, 0xb7,\n 0x9e, 0x25, 0x3b, 0xd2,\n ]),\n },\n ],\n }),\n );\n });\n it(\"should return musig partial signatures\", async () => {\n // given\n const api = {\n sendCommand: jest.fn(),\n } as unknown as InternalApi;\n const psbt = {\n getGlobalValue: () => Maybe.of(Uint8Array.from([0x03])),\n } as unknown as Psbt;\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as Wallet;\n const psbtCommitment = {\n globalCommitment: Uint8Array.from([0x03]),\n inputsRoot: Uint8Array.from([0x01]),\n outputsRoot: Uint8Array.from([0x02]),\n } as PsbtCommitment;\n const dataStore = {} as DataStore;\n const walletSerializer = {\n getId: jest.fn(() => Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n const valueParser = {\n getVarint: jest.fn(() => Maybe.of(42)),\n } as unknown as ValueParser;\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockResolvedValue(\n CommandResultFactory({\n data: [],\n }),\n ),\n getYieldedResults: () => [SIGN_PSBT_YIELD_MUSIG_PARIAL_SIG_RESULT],\n }) as unknown as ContinueTask;\n\n // when\n const signatures = await new SignPsbtTask(\n api,\n {\n psbt,\n wallet,\n psbtCommitment,\n dataStore,\n },\n walletSerializer,\n valueParser,\n continueTaskFactory,\n ).run();\n // then\n expect(api.sendCommand).toHaveBeenCalledWith(\n new SignPsbtCommand({\n globalCommitment: Uint8Array.from([0x03]),\n inputsCount: 42,\n inputsRoot: Uint8Array.from([0x01]),\n outputsCount: 42,\n outputsRoot: Uint8Array.from([0x02]),\n walletId: Uint8Array.from([0x05]),\n walletHmac: Uint8Array.from([0x04]),\n }),\n );\n expect(signatures).toStrictEqual(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n partialSignature: Uint8Array.from([\n 0xe8, 0x42, 0x44, 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8,\n 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19, 0xa9, 0x3a, 0xb9, 0x6c,\n 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38, 0x5f,\n 0x5f, 0x12,\n ]),\n participantPubkey: Uint8Array.from([\n 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0,\n 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c, 0x59,\n ]),\n aggregatedPubkey: Uint8Array.from([\n 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00, 0x06, 0x3d, 0x9d, 0xcc,\n 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb, 0xf8, 0x0a, 0x8f, 0x11,\n 0x50, 0xfd, 0x59, 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b, 0xd2,\n 0xfe, 0xee, 0x33,\n ]),\n tapleafHash: Uint8Array.from([\n 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0,\n 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c,\n ]),\n },\n ],\n }),\n );\n });\n it(\"should return musig pub nonce\", async () => {\n // given\n const api = {\n sendCommand: jest.fn(),\n } as unknown as InternalApi;\n const psbt = {\n getGlobalValue: () => Maybe.of(Uint8Array.from([0x03])),\n } as unknown as Psbt;\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as Wallet;\n const psbtCommitment = {\n globalCommitment: Uint8Array.from([0x03]),\n inputsRoot: Uint8Array.from([0x01]),\n outputsRoot: Uint8Array.from([0x02]),\n } as PsbtCommitment;\n const dataStore = {} as DataStore;\n const walletSerializer = {\n getId: jest.fn(() => Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n const valueParser = {\n getVarint: jest.fn(() => Maybe.of(42)),\n } as unknown as ValueParser;\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockResolvedValue(\n CommandResultFactory({\n data: [],\n }),\n ),\n getYieldedResults: () => [SIGN_PSBT_YIELD_MUSIG_PUB_NONCE_RESULT],\n }) as unknown as ContinueTask;\n\n // when\n const signatures = await new SignPsbtTask(\n api,\n {\n psbt,\n wallet,\n psbtCommitment,\n dataStore,\n },\n walletSerializer,\n valueParser,\n continueTaskFactory,\n ).run();\n // then\n expect(api.sendCommand).toHaveBeenCalledWith(\n new SignPsbtCommand({\n globalCommitment: Uint8Array.from([0x03]),\n inputsCount: 42,\n inputsRoot: Uint8Array.from([0x01]),\n outputsCount: 42,\n outputsRoot: Uint8Array.from([0x02]),\n walletId: Uint8Array.from([0x05]),\n walletHmac: Uint8Array.from([0x04]),\n }),\n );\n expect(signatures).toStrictEqual(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubnonce: Uint8Array.from([\n 0xe8, 0x42, 0x44, 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8,\n 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19, 0xa9, 0x3a, 0xb9, 0x6c,\n 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38, 0x5f,\n 0x5f, 0x12, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6,\n 0x7b, 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96,\n 0xdf, 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd,\n 0x9a, 0x01, 0x66, 0x3c, 0x59, 0x01,\n ]),\n participantPubkey: Uint8Array.from([\n 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0,\n 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c, 0x59,\n ]),\n aggregatedPubkey: Uint8Array.from([\n 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00, 0x06, 0x3d, 0x9d, 0xcc,\n 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb, 0xf8, 0x0a, 0x8f, 0x11,\n 0x50, 0xfd, 0x59, 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b, 0xd2,\n 0xfe, 0xee, 0x33,\n ]),\n tapleafHash: Uint8Array.from([\n 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0,\n 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c,\n ]),\n },\n ],\n }),\n );\n });\n });\n describe(\"errors\", () => {\n it(\"should return an error if continue task fails\", async () => {\n // given\n const api = {\n sendCommand: jest.fn(),\n } as unknown as InternalApi;\n const psbt = {\n getGlobalValue: jest.fn(() => Nothing),\n } as unknown as Psbt;\n const wallet = {} as Wallet;\n const psbtCommitment = {} as PsbtCommitment;\n const dataStore = {} as DataStore;\n const walletSerializer = {\n getId: jest.fn(() => Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n const valueParser = {\n getVarint: jest.fn(() => Maybe.of(42)),\n } as unknown as ValueParser;\n const continueTaskFactory = () =>\n ({\n run: jest.fn().mockResolvedValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Failed\"),\n }),\n ),\n }) as unknown as ContinueTask;\n // when\n const result = await new SignPsbtTask(\n api,\n {\n psbt,\n wallet,\n psbtCommitment,\n dataStore,\n },\n walletSerializer,\n valueParser,\n continueTaskFactory,\n ).run();\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Failed\"),\n }),\n );\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n type InternalApi,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Maybe, Nothing } from \"purify-ts\";\n\nimport { SignPsbtCommand } from \"@internal/app-binder/command/SignPsbtCommand\";\nimport { type ContinueTask } from \"@internal/app-binder/task/ContinueTask\";\nimport { SignPsbtTask } from \"@internal/app-binder/task/SignPsbtTask\";\nimport { type DataStore } from \"@internal/data-store/model/DataStore\";\nimport type { PsbtCommitment } from \"@internal/data-store/service/DataStoreService\";\nimport { type Psbt } from \"@internal/psbt/model/Psbt\";\nimport { type ValueParser } from \"@internal/psbt/service/value/ValueParser\";\nimport { type Wallet } from \"@internal/wallet/model/Wallet\";\nimport { type WalletSerializer } from \"@internal/wallet/service/WalletSerializer\";\n\nconst SIGN_PSBT_YIELD_PARIAL_SIG_RESULT = Uint8Array.from([\n 0x00, 0x20, 0xf1, 0xe8, 0x42, 0x44, 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8,\n 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19, 0xa9, 0x3a, 0xb9, 0x6c, 0xc1, 0xee, 0xee,\n 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38, 0x5f, 0x5f, 0x12, 0x4d, 0x63, 0x5c, 0xf2,\n 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48,\n 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c, 0x59, 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00, 0x06, 0x3d, 0x9d, 0xcc,\n 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb, 0xf8, 0x0a, 0x8f, 0x11, 0x50, 0xfd, 0x59,\n 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b, 0xd2,\n]);\n\nconst SIGN_PSBT_YIELD_MUSIG_PARIAL_SIG_RESULT = Uint8Array.from([\n 0xff, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x42, 0x44,\n 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8, 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19,\n 0xa9, 0x3a, 0xb9, 0x6c, 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38,\n 0x5f, 0x5f, 0x12, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d,\n 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01, 0x66, 0x3c, 0x59, 0x59, 0x41, 0x13,\n 0xe5, 0x71, 0x00, 0x06, 0x3d, 0x9d, 0xcc, 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb,\n 0xf8, 0x0a, 0x8f, 0x11, 0x50, 0xfd, 0x59, 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b,\n 0xd2, 0xfe, 0xee, 0x33, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b,\n 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc,\n 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01, 0x66, 0x3c,\n]);\n\nconst SIGN_PSBT_YIELD_MUSIG_PUB_NONCE_RESULT = Uint8Array.from([\n 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x42, 0x44,\n 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8, 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19,\n 0xa9, 0x3a, 0xb9, 0x6c, 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38,\n 0x5f, 0x5f, 0x12, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d,\n 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01, 0x66, 0x3c, 0x59, 0x01, 0x4d, 0x63,\n 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07,\n 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd,\n 0x9a, 0x01, 0x66, 0x3c, 0x59, 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00, 0x06, 0x3d,\n 0x9d, 0xcc, 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb, 0xf8, 0x0a, 0x8f, 0x11, 0x50,\n 0xfd, 0x59, 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b, 0xd2, 0xfe, 0xee, 0x33, 0x4d,\n 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2, 0x77, 0x71, 0x2e, 0xad,\n 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22,\n 0xbd, 0x9a, 0x01, 0x66, 0x3c,\n]);\n\ndescribe(\"SignPsbtTask\", () => {\n describe(\"run\", () => {\n it(\"should return partial signatures\", async () => {\n // given\n const api = {\n sendCommand: vi.fn(),\n } as unknown as InternalApi;\n const psbt = {\n getGlobalValue: () => Maybe.of(Uint8Array.from([0x03])),\n } as unknown as Psbt;\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as Wallet;\n const psbtCommitment = {\n globalCommitment: Uint8Array.from([0x03]),\n inputsRoot: Uint8Array.from([0x01]),\n outputsRoot: Uint8Array.from([0x02]),\n } as PsbtCommitment;\n const dataStore = {} as DataStore;\n const walletSerializer = {\n getId: vi.fn(() => Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n const valueParser = {\n getVarint: vi.fn(() => Maybe.of(42)),\n } as unknown as ValueParser;\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockResolvedValue(\n CommandResultFactory({\n data: [],\n }),\n ),\n getYieldedResults: () => [SIGN_PSBT_YIELD_PARIAL_SIG_RESULT],\n }) as unknown as ContinueTask;\n\n // when\n const signatures = await new SignPsbtTask(\n api,\n {\n psbt,\n wallet,\n psbtCommitment,\n dataStore,\n },\n walletSerializer,\n valueParser,\n continueTaskFactory,\n ).run();\n // then\n expect(api.sendCommand).toHaveBeenCalledWith(\n new SignPsbtCommand({\n globalCommitment: Uint8Array.from([0x03]),\n inputsCount: 42,\n inputsRoot: Uint8Array.from([0x01]),\n outputsCount: 42,\n outputsRoot: Uint8Array.from([0x02]),\n walletId: Uint8Array.from([0x05]),\n walletHmac: Uint8Array.from([0x04]),\n }),\n );\n expect(signatures).toStrictEqual(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubkey: Uint8Array.from([\n 0xf1, 0xe8, 0x42, 0x44, 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7,\n 0xa8, 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19, 0xa9, 0x3a, 0xb9,\n 0x6c, 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38,\n 0x5f, 0x5f,\n ]),\n signature: Uint8Array.from([\n 0x12, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b,\n 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf,\n 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a,\n 0x01, 0x66, 0x3c, 0x59, 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00,\n 0x06, 0x3d, 0x9d, 0xcc, 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb,\n 0xf8, 0x0a, 0x8f, 0x11, 0x50, 0xfd, 0x59, 0xd9, 0xfe, 0xb7,\n 0x9e, 0x25, 0x3b, 0xd2,\n ]),\n },\n ],\n }),\n );\n });\n it(\"should return musig partial signatures\", async () => {\n // given\n const api = {\n sendCommand: vi.fn(),\n } as unknown as InternalApi;\n const psbt = {\n getGlobalValue: () => Maybe.of(Uint8Array.from([0x03])),\n } as unknown as Psbt;\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as Wallet;\n const psbtCommitment = {\n globalCommitment: Uint8Array.from([0x03]),\n inputsRoot: Uint8Array.from([0x01]),\n outputsRoot: Uint8Array.from([0x02]),\n } as PsbtCommitment;\n const dataStore = {} as DataStore;\n const walletSerializer = {\n getId: vi.fn(() => Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n const valueParser = {\n getVarint: vi.fn(() => Maybe.of(42)),\n } as unknown as ValueParser;\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockResolvedValue(\n CommandResultFactory({\n data: [],\n }),\n ),\n getYieldedResults: () => [SIGN_PSBT_YIELD_MUSIG_PARIAL_SIG_RESULT],\n }) as unknown as ContinueTask;\n\n // when\n const signatures = await new SignPsbtTask(\n api,\n {\n psbt,\n wallet,\n psbtCommitment,\n dataStore,\n },\n walletSerializer,\n valueParser,\n continueTaskFactory,\n ).run();\n // then\n expect(api.sendCommand).toHaveBeenCalledWith(\n new SignPsbtCommand({\n globalCommitment: Uint8Array.from([0x03]),\n inputsCount: 42,\n inputsRoot: Uint8Array.from([0x01]),\n outputsCount: 42,\n outputsRoot: Uint8Array.from([0x02]),\n walletId: Uint8Array.from([0x05]),\n walletHmac: Uint8Array.from([0x04]),\n }),\n );\n expect(signatures).toStrictEqual(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n partialSignature: Uint8Array.from([\n 0xe8, 0x42, 0x44, 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8,\n 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19, 0xa9, 0x3a, 0xb9, 0x6c,\n 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38, 0x5f,\n 0x5f, 0x12,\n ]),\n participantPubkey: Uint8Array.from([\n 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0,\n 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c, 0x59,\n ]),\n aggregatedPubkey: Uint8Array.from([\n 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00, 0x06, 0x3d, 0x9d, 0xcc,\n 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb, 0xf8, 0x0a, 0x8f, 0x11,\n 0x50, 0xfd, 0x59, 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b, 0xd2,\n 0xfe, 0xee, 0x33,\n ]),\n tapleafHash: Uint8Array.from([\n 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0,\n 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c,\n ]),\n },\n ],\n }),\n );\n });\n it(\"should return musig pub nonce\", async () => {\n // given\n const api = {\n sendCommand: vi.fn(),\n } as unknown as InternalApi;\n const psbt = {\n getGlobalValue: () => Maybe.of(Uint8Array.from([0x03])),\n } as unknown as Psbt;\n const wallet = {\n hmac: Uint8Array.from([0x04]),\n } as Wallet;\n const psbtCommitment = {\n globalCommitment: Uint8Array.from([0x03]),\n inputsRoot: Uint8Array.from([0x01]),\n outputsRoot: Uint8Array.from([0x02]),\n } as PsbtCommitment;\n const dataStore = {} as DataStore;\n const walletSerializer = {\n getId: vi.fn(() => Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n const valueParser = {\n getVarint: vi.fn(() => Maybe.of(42)),\n } as unknown as ValueParser;\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockResolvedValue(\n CommandResultFactory({\n data: [],\n }),\n ),\n getYieldedResults: () => [SIGN_PSBT_YIELD_MUSIG_PUB_NONCE_RESULT],\n }) as unknown as ContinueTask;\n\n // when\n const signatures = await new SignPsbtTask(\n api,\n {\n psbt,\n wallet,\n psbtCommitment,\n dataStore,\n },\n walletSerializer,\n valueParser,\n continueTaskFactory,\n ).run();\n // then\n expect(api.sendCommand).toHaveBeenCalledWith(\n new SignPsbtCommand({\n globalCommitment: Uint8Array.from([0x03]),\n inputsCount: 42,\n inputsRoot: Uint8Array.from([0x01]),\n outputsCount: 42,\n outputsRoot: Uint8Array.from([0x02]),\n walletId: Uint8Array.from([0x05]),\n walletHmac: Uint8Array.from([0x04]),\n }),\n );\n expect(signatures).toStrictEqual(\n CommandResultFactory({\n data: [\n {\n inputIndex: 0,\n pubnonce: Uint8Array.from([\n 0xe8, 0x42, 0x44, 0x7f, 0xae, 0x7b, 0x1c, 0x6e, 0xb7, 0xa8,\n 0xa7, 0x85, 0xf7, 0x76, 0xfa, 0x19, 0xa9, 0x3a, 0xb9, 0x6c,\n 0xc1, 0xee, 0xee, 0xe9, 0x47, 0xc1, 0x71, 0x13, 0x38, 0x5f,\n 0x5f, 0x12, 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6,\n 0x7b, 0xe2, 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96,\n 0xdf, 0xb0, 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd,\n 0x9a, 0x01, 0x66, 0x3c, 0x59, 0x01,\n ]),\n participantPubkey: Uint8Array.from([\n 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0,\n 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c, 0x59,\n ]),\n aggregatedPubkey: Uint8Array.from([\n 0x59, 0x41, 0x13, 0xe5, 0x71, 0x00, 0x06, 0x3d, 0x9d, 0xcc,\n 0xd7, 0x8f, 0xb3, 0x93, 0x82, 0xdb, 0xf8, 0x0a, 0x8f, 0x11,\n 0x50, 0xfd, 0x59, 0xd9, 0xfe, 0xb7, 0x9e, 0x25, 0x3b, 0xd2,\n 0xfe, 0xee, 0x33,\n ]),\n tapleafHash: Uint8Array.from([\n 0x4d, 0x63, 0x5c, 0xf2, 0x52, 0xae, 0x26, 0xa6, 0x7b, 0xe2,\n 0x77, 0x71, 0x2e, 0xad, 0x07, 0xb4, 0x48, 0x96, 0xdf, 0xb0,\n 0x16, 0xfc, 0x9d, 0x03, 0xa3, 0xe9, 0x22, 0xbd, 0x9a, 0x01,\n 0x66, 0x3c,\n ]),\n },\n ],\n }),\n );\n });\n });\n describe(\"errors\", () => {\n it(\"should return an error if continue task fails\", async () => {\n // given\n const api = {\n sendCommand: vi.fn(),\n } as unknown as InternalApi;\n const psbt = {\n getGlobalValue: vi.fn(() => Nothing),\n } as unknown as Psbt;\n const wallet = {} as Wallet;\n const psbtCommitment = {} as PsbtCommitment;\n const dataStore = {} as DataStore;\n const walletSerializer = {\n getId: vi.fn(() => Uint8Array.from([0x05])),\n } as unknown as WalletSerializer;\n const valueParser = {\n getVarint: vi.fn(() => Maybe.of(42)),\n } as unknown as ValueParser;\n const continueTaskFactory = () =>\n ({\n run: vi.fn().mockResolvedValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Failed\"),\n }),\n ),\n }) as unknown as ContinueTask;\n // when\n const result = await new SignPsbtTask(\n api,\n {\n psbt,\n wallet,\n psbtCommitment,\n dataStore,\n },\n walletSerializer,\n valueParser,\n continueTaskFactory,\n ).run();\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Failed\"),\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "import_purify_ts", "import_SignPsbtCommand", "import_SignPsbtTask", "SIGN_PSBT_YIELD_PARIAL_SIG_RESULT", "SIGN_PSBT_YIELD_MUSIG_PARIAL_SIG_RESULT", "SIGN_PSBT_YIELD_MUSIG_PUB_NONCE_RESULT", "api", "psbt", "wallet", "psbtCommitment", "dataStore", "walletSerializer", "valueParser", "continueTaskFactory", "signatures", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var w=require("@ledgerhq/device-management-kit"),s=require("purify-ts"),x=require("../../app-binder/task/UpdatePsbtTask"),t=require("../../psbt/model/Key"),n=require("../../psbt/model/Psbt"),r=require("../../psbt/model/Value"),p=require("../../psbt/service/value/DefaultValueParser");describe("UpdatePsbtTask",()=>{it("should update taproot psbt with signatures",async()=>{const e=Uint8Array.from(new Array(64).fill(100)),a={inputIndex:0,signature:e,pubkey:Uint8Array.from([33])},o=new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.of(1))]]),[new Map([[new t.Key(n.PsbtIn.TAP_BIP32_DERIVATION,Uint8Array.from([1,3,4,17])).toHexaString(),new r.Value(Uint8Array.from([16,18]))],[new t.Key(n.PsbtIn.NON_WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))]])]),i={map:jest.fn(()=>(0,s.Right)(o))},S=await new x.UpdatePsbtTask({psbt:"",signatures:[a]},new p.DefaultValueParser,i).run();expect(S).toStrictEqual((0,w.CommandResultFactory)({data:new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.from([1]))]]),[new Map([[new t.Key(n.PsbtIn.NON_WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))],[new t.Key(n.PsbtIn.FINAL_SCRIPTWITNESS).toHexaString(),new r.Value(Uint8Array.from([1,64,...e]))]])])}))}),it("should update legacy psbt with signatures",async()=>{const e={inputIndex:0,signature:Uint8Array.from([66]),pubkey:Uint8Array.from([33])},a=new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.of(1))]]),[new Map([[new t.Key(n.PsbtIn.BIP32_DERIVATION,Uint8Array.from([1,2])).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.NON_WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))]])]),o={map:jest.fn(()=>(0,s.Right)(a))},i=await new x.UpdatePsbtTask({psbt:"",signatures:[e]},new p.DefaultValueParser,o).run();expect(i).toStrictEqual((0,w.CommandResultFactory)({data:new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.from([1]))]]),[new Map([[new t.Key(n.PsbtIn.NON_WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))],[new t.Key(n.PsbtIn.FINAL_SCRIPTSIG).toHexaString(),new r.Value(Uint8Array.from([1,66,1,33]))]])])}))}),it("should update legacy segwit psbt with signatures",async()=>{const e={inputIndex:0,signature:Uint8Array.from([66]),pubkey:Uint8Array.from([33])},a=new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.of(1))]]),[new Map([[new t.Key(n.PsbtIn.BIP32_DERIVATION,Uint8Array.from([1,2])).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))]])]),o={map:jest.fn(()=>(0,s.Right)(a))},i=await new x.UpdatePsbtTask({psbt:"",signatures:[e]},new p.DefaultValueParser,o).run();expect(i).toStrictEqual((0,w.CommandResultFactory)({data:new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.from([1]))]]),[new Map([[new t.Key(n.PsbtIn.WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))],[new t.Key(n.PsbtIn.FINAL_SCRIPTWITNESS).toHexaString(),new r.Value(Uint8Array.from([2,1,66,1,33]))],[new t.Key(n.PsbtIn.FINAL_SCRIPTSIG).toHexaString(),new r.Value(Uint8Array.from([2,9,153]))]])])}))})});
1
+ "use strict";var w=require("@ledgerhq/device-management-kit"),s=require("purify-ts"),x=require("../../app-binder/task/UpdatePsbtTask"),t=require("../../psbt/model/Key"),n=require("../../psbt/model/Psbt"),r=require("../../psbt/model/Value"),p=require("../../psbt/service/value/DefaultValueParser");describe("UpdatePsbtTask",()=>{it("should update taproot psbt with signatures",async()=>{const e=Uint8Array.from(new Array(64).fill(100)),a={inputIndex:0,signature:e,pubkey:Uint8Array.from([33])},o=new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.of(1))]]),[new Map([[new t.Key(n.PsbtIn.TAP_BIP32_DERIVATION,Uint8Array.from([1,3,4,17])).toHexaString(),new r.Value(Uint8Array.from([16,18]))],[new t.Key(n.PsbtIn.NON_WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))]])]),i={map:vi.fn(()=>(0,s.Right)(o))},S=await new x.UpdatePsbtTask({psbt:"",signatures:[a]},new p.DefaultValueParser,i).run();expect(S).toStrictEqual((0,w.CommandResultFactory)({data:new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.from([1]))]]),[new Map([[new t.Key(n.PsbtIn.NON_WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))],[new t.Key(n.PsbtIn.FINAL_SCRIPTWITNESS).toHexaString(),new r.Value(Uint8Array.from([1,64,...e]))]])])}))}),it("should update legacy psbt with signatures",async()=>{const e={inputIndex:0,signature:Uint8Array.from([66]),pubkey:Uint8Array.from([33])},a=new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.of(1))]]),[new Map([[new t.Key(n.PsbtIn.BIP32_DERIVATION,Uint8Array.from([1,2])).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.NON_WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))]])]),o={map:vi.fn(()=>(0,s.Right)(a))},i=await new x.UpdatePsbtTask({psbt:"",signatures:[e]},new p.DefaultValueParser,o).run();expect(i).toStrictEqual((0,w.CommandResultFactory)({data:new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.from([1]))]]),[new Map([[new t.Key(n.PsbtIn.NON_WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))],[new t.Key(n.PsbtIn.FINAL_SCRIPTSIG).toHexaString(),new r.Value(Uint8Array.from([1,66,1,33]))]])])}))}),it("should update legacy segwit psbt with signatures",async()=>{const e={inputIndex:0,signature:Uint8Array.from([66]),pubkey:Uint8Array.from([33])},a=new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.of(1))]]),[new Map([[new t.Key(n.PsbtIn.BIP32_DERIVATION,Uint8Array.from([1,2])).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))]])]),o={map:vi.fn(()=>(0,s.Right)(a))},i=await new x.UpdatePsbtTask({psbt:"",signatures:[e]},new p.DefaultValueParser,o).run();expect(i).toStrictEqual((0,w.CommandResultFactory)({data:new n.Psbt(new Map([[new t.Key(n.PsbtGlobal.INPUT_COUNT).toHexaString(),new r.Value(Uint8Array.from([1]))]]),[new Map([[new t.Key(n.PsbtIn.WITNESS_UTXO).toHexaString(),new r.Value(Uint8Array.from([]))],[new t.Key(n.PsbtIn.REDEEM_SCRIPT).toHexaString(),new r.Value(Uint8Array.from([9,153]))],[new t.Key(n.PsbtIn.FINAL_SCRIPTWITNESS).toHexaString(),new r.Value(Uint8Array.from([2,1,66,1,33]))],[new t.Key(n.PsbtIn.FINAL_SCRIPTSIG).toHexaString(),new r.Value(Uint8Array.from([2,9,153]))]])])}))})});
2
2
  //# sourceMappingURL=UpdatePsbtTask.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/UpdatePsbtTask.test.ts"],
4
- "sourcesContent": ["import { CommandResultFactory } from \"@ledgerhq/device-management-kit\";\nimport { Right } from \"purify-ts\";\n\nimport { UpdatePsbtTask } from \"@internal/app-binder/task/UpdatePsbtTask\";\nimport { Key } from \"@internal/psbt/model/Key\";\nimport { Psbt, PsbtGlobal, PsbtIn } from \"@internal/psbt/model/Psbt\";\nimport { Value } from \"@internal/psbt/model/Value\";\nimport { type PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport { DefaultValueParser } from \"@internal/psbt/service/value/DefaultValueParser\";\n\ndescribe(\"UpdatePsbtTask\", () => {\n it(\"should update taproot psbt with signatures\", async () => {\n // given\n const schnorr = Uint8Array.from(new Array(64).fill(0x64));\n const signature = {\n inputIndex: 0,\n signature: schnorr,\n pubkey: Uint8Array.from([0x21]),\n };\n\n const fakePsbt = new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.of(1)),\n ],\n ]),\n [\n new Map([\n [\n new Key(\n PsbtIn.TAP_BIP32_DERIVATION,\n Uint8Array.from([0x01, 0x03, 0x04, 0x11]),\n ).toHexaString(),\n new Value(Uint8Array.from([0x10, 0x12])),\n ],\n [\n new Key(PsbtIn.NON_WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n ]),\n ],\n );\n\n const psbtMapperMock = {\n map: jest.fn(() => Right(fakePsbt)),\n } as unknown as PsbtMapper;\n\n // when\n const result = await new UpdatePsbtTask(\n {\n psbt: \"\",\n signatures: [signature],\n },\n new DefaultValueParser(),\n psbtMapperMock,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.from([1])),\n ],\n ]),\n [\n new Map([\n [\n new Key(PsbtIn.NON_WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n [\n new Key(PsbtIn.FINAL_SCRIPTWITNESS).toHexaString(),\n new Value(Uint8Array.from([0x01, 0x40, ...schnorr])),\n ],\n ]),\n ],\n ),\n }),\n );\n });\n it(\"should update legacy psbt with signatures\", async () => {\n // given\n const signature = {\n inputIndex: 0,\n signature: Uint8Array.from([0x42]),\n pubkey: Uint8Array.from([0x21]),\n };\n\n const fakePsbt = new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.of(1)),\n ],\n ]),\n [\n new Map([\n [\n new Key(\n PsbtIn.BIP32_DERIVATION,\n Uint8Array.from([0x01, 0x02]),\n ).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.NON_WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n ]),\n ],\n );\n\n const psbtMapperMock = {\n map: jest.fn(() => Right(fakePsbt)),\n } as unknown as PsbtMapper;\n\n // when\n const result = await new UpdatePsbtTask(\n {\n psbt: \"\",\n signatures: [signature],\n },\n new DefaultValueParser(),\n psbtMapperMock,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.from([1])),\n ],\n ]),\n [\n new Map([\n [\n new Key(PsbtIn.NON_WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n [\n new Key(PsbtIn.FINAL_SCRIPTSIG).toHexaString(),\n new Value(Uint8Array.from([0x01, 0x42, 0x01, 0x21])),\n ],\n ]),\n ],\n ),\n }),\n );\n });\n it(\"should update legacy segwit psbt with signatures\", async () => {\n // given\n const signature = {\n inputIndex: 0,\n signature: Uint8Array.from([0x42]),\n pubkey: Uint8Array.from([0x21]),\n };\n\n const fakePsbt = new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.of(1)),\n ],\n ]),\n [\n new Map([\n [\n new Key(\n PsbtIn.BIP32_DERIVATION,\n Uint8Array.from([0x01, 0x02]),\n ).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n ]),\n ],\n );\n\n const psbtMapperMock = {\n map: jest.fn(() => Right(fakePsbt)),\n } as unknown as PsbtMapper;\n\n // when\n const result = await new UpdatePsbtTask(\n {\n psbt: \"\",\n signatures: [signature],\n },\n new DefaultValueParser(),\n psbtMapperMock,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.from([1])),\n ],\n ]),\n [\n new Map([\n [\n new Key(PsbtIn.WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n [\n new Key(PsbtIn.FINAL_SCRIPTWITNESS).toHexaString(),\n new Value(Uint8Array.from([0x02, 0x01, 0x42, 0x01, 0x21])),\n ],\n [\n new Key(PsbtIn.FINAL_SCRIPTSIG).toHexaString(),\n new Value(Uint8Array.from([0x02, 0x09, 0x99])),\n ],\n ]),\n ],\n ),\n }),\n );\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { CommandResultFactory } from \"@ledgerhq/device-management-kit\";\nimport { Right } from \"purify-ts\";\n\nimport { UpdatePsbtTask } from \"@internal/app-binder/task/UpdatePsbtTask\";\nimport { Key } from \"@internal/psbt/model/Key\";\nimport { Psbt, PsbtGlobal, PsbtIn } from \"@internal/psbt/model/Psbt\";\nimport { Value } from \"@internal/psbt/model/Value\";\nimport { type PsbtMapper } from \"@internal/psbt/service/psbt/PsbtMapper\";\nimport { DefaultValueParser } from \"@internal/psbt/service/value/DefaultValueParser\";\n\ndescribe(\"UpdatePsbtTask\", () => {\n it(\"should update taproot psbt with signatures\", async () => {\n // given\n const schnorr = Uint8Array.from(new Array(64).fill(0x64));\n const signature = {\n inputIndex: 0,\n signature: schnorr,\n pubkey: Uint8Array.from([0x21]),\n };\n\n const fakePsbt = new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.of(1)),\n ],\n ]),\n [\n new Map([\n [\n new Key(\n PsbtIn.TAP_BIP32_DERIVATION,\n Uint8Array.from([0x01, 0x03, 0x04, 0x11]),\n ).toHexaString(),\n new Value(Uint8Array.from([0x10, 0x12])),\n ],\n [\n new Key(PsbtIn.NON_WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n ]),\n ],\n );\n\n const psbtMapperMock = {\n map: vi.fn(() => Right(fakePsbt)),\n } as unknown as PsbtMapper;\n\n // when\n const result = await new UpdatePsbtTask(\n {\n psbt: \"\",\n signatures: [signature],\n },\n new DefaultValueParser(),\n psbtMapperMock,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.from([1])),\n ],\n ]),\n [\n new Map([\n [\n new Key(PsbtIn.NON_WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n [\n new Key(PsbtIn.FINAL_SCRIPTWITNESS).toHexaString(),\n new Value(Uint8Array.from([0x01, 0x40, ...schnorr])),\n ],\n ]),\n ],\n ),\n }),\n );\n });\n it(\"should update legacy psbt with signatures\", async () => {\n // given\n const signature = {\n inputIndex: 0,\n signature: Uint8Array.from([0x42]),\n pubkey: Uint8Array.from([0x21]),\n };\n\n const fakePsbt = new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.of(1)),\n ],\n ]),\n [\n new Map([\n [\n new Key(\n PsbtIn.BIP32_DERIVATION,\n Uint8Array.from([0x01, 0x02]),\n ).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.NON_WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n ]),\n ],\n );\n\n const psbtMapperMock = {\n map: vi.fn(() => Right(fakePsbt)),\n } as unknown as PsbtMapper;\n\n // when\n const result = await new UpdatePsbtTask(\n {\n psbt: \"\",\n signatures: [signature],\n },\n new DefaultValueParser(),\n psbtMapperMock,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.from([1])),\n ],\n ]),\n [\n new Map([\n [\n new Key(PsbtIn.NON_WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n [\n new Key(PsbtIn.FINAL_SCRIPTSIG).toHexaString(),\n new Value(Uint8Array.from([0x01, 0x42, 0x01, 0x21])),\n ],\n ]),\n ],\n ),\n }),\n );\n });\n it(\"should update legacy segwit psbt with signatures\", async () => {\n // given\n const signature = {\n inputIndex: 0,\n signature: Uint8Array.from([0x42]),\n pubkey: Uint8Array.from([0x21]),\n };\n\n const fakePsbt = new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.of(1)),\n ],\n ]),\n [\n new Map([\n [\n new Key(\n PsbtIn.BIP32_DERIVATION,\n Uint8Array.from([0x01, 0x02]),\n ).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n ]),\n ],\n );\n\n const psbtMapperMock = {\n map: vi.fn(() => Right(fakePsbt)),\n } as unknown as PsbtMapper;\n\n // when\n const result = await new UpdatePsbtTask(\n {\n psbt: \"\",\n signatures: [signature],\n },\n new DefaultValueParser(),\n psbtMapperMock,\n ).run();\n\n // then\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: new Psbt(\n new Map([\n [\n new Key(PsbtGlobal.INPUT_COUNT).toHexaString(),\n new Value(Uint8Array.from([1])),\n ],\n ]),\n [\n new Map([\n [\n new Key(PsbtIn.WITNESS_UTXO).toHexaString(),\n new Value(Uint8Array.from([])),\n ],\n [\n new Key(PsbtIn.REDEEM_SCRIPT).toHexaString(),\n new Value(Uint8Array.from([0x09, 0x99])),\n ],\n [\n new Key(PsbtIn.FINAL_SCRIPTWITNESS).toHexaString(),\n new Value(Uint8Array.from([0x02, 0x01, 0x42, 0x01, 0x21])),\n ],\n [\n new Key(PsbtIn.FINAL_SCRIPTSIG).toHexaString(),\n new Value(Uint8Array.from([0x02, 0x09, 0x99])),\n ],\n ]),\n ],\n ),\n }),\n );\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "import_purify_ts", "import_UpdatePsbtTask", "import_Key", "import_Psbt", "import_Value", "import_DefaultValueParser", "schnorr", "signature", "fakePsbt", "psbtMapperMock", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var _=(t,o)=>{for(var r in o)a(t,r,{get:o[r],enumerable:!0})},p=(t,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of u(o))!S.call(t,e)&&e!==r&&a(t,e,{get:()=>o[e],enumerable:!(n=m(o,e))||n.enumerable});return t};var f=t=>p(a({},"__esModule",{value:!0}),t);var v={};_(v,{dataStoreModuleFactory:()=>s});module.exports=f(v);var i=require("inversify"),d=require("../../data-store/di/dataStoreTypes"),c=require("../../data-store/service/DefaultDataStoreService");const s=()=>new i.ContainerModule((t,o,r,n,e,D,b)=>{t(d.dataStoreTypes.DataStoreService).to(c.DefaultDataStoreService)});0&&(module.exports={dataStoreModuleFactory});
1
+ "use strict";var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var n=(o,t)=>{for(var r in t)a(o,r,{get:t[r],enumerable:!0})},l=(o,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of d(t))!f.call(o,e)&&e!==r&&a(o,e,{get:()=>t[e],enumerable:!(i=c(t,e))||i.enumerable});return o};var u=o=>l(a({},"__esModule",{value:!0}),o);var s={};n(s,{dataStoreModuleFactory:()=>D});module.exports=u(s);var m=require("inversify"),S=require("../../data-store/di/dataStoreTypes"),p=require("../../data-store/service/DefaultDataStoreService");const D=()=>new m.ContainerModule(({bind:o})=>{o(S.dataStoreTypes.DataStoreService).to(p.DefaultDataStoreService)});0&&(module.exports={dataStoreModuleFactory});
2
2
  //# sourceMappingURL=dataStoreModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/data-store/di/dataStoreModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { dataStoreTypes } from \"@internal/data-store/di/dataStoreTypes\";\nimport { DefaultDataStoreService } from \"@internal/data-store/service/DefaultDataStoreService\";\n\nexport const dataStoreModuleFactory = () =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n _rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind(dataStoreTypes.DataStoreService).to(DefaultDataStoreService);\n },\n );\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA+B,kDAC/BC,EAAwC,gEAEjC,MAAMJ,EAAyB,IACpC,IAAI,kBACF,CACEK,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EAAK,iBAAe,gBAAgB,EAAE,GAAG,yBAAuB,CAClE,CACF",
6
- "names": ["dataStoreModule_exports", "__export", "dataStoreModuleFactory", "__toCommonJS", "import_inversify", "import_dataStoreTypes", "import_DefaultDataStoreService", "bind", "_unbind", "_isBound", "_rebind", "_unbindAsync", "_onActivation", "_onDeactivation"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { dataStoreTypes } from \"@internal/data-store/di/dataStoreTypes\";\nimport { DefaultDataStoreService } from \"@internal/data-store/service/DefaultDataStoreService\";\n\nexport const dataStoreModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(dataStoreTypes.DataStoreService).to(DefaultDataStoreService);\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA+B,kDAC/BC,EAAwC,gEAEjC,MAAMJ,EAAyB,IACpC,IAAI,kBAAgB,CAAC,CAAE,KAAAK,CAAK,IAAM,CAChCA,EAAK,iBAAe,gBAAgB,EAAE,GAAG,yBAAuB,CAClE,CAAC",
6
+ "names": ["dataStoreModule_exports", "__export", "dataStoreModuleFactory", "__toCommonJS", "import_inversify", "import_dataStoreTypes", "import_DefaultDataStoreService", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var o=require("inversify"),r=require("./dataStoreModule");describe("DataStoreModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=(0,r.dataStoreModuleFactory)(),t=new o.Container,t.load(e)}),it("should return the data store service module",()=>{expect(e).toBeDefined()})})});
1
+ "use strict";var o=require("inversify"),r=require("./dataStoreModule");describe("DataStoreModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=(0,r.dataStoreModuleFactory)(),t=new o.Container,t.loadSync(e)}),it("should return the data store service module",()=>{expect(e).toBeDefined()})})});
2
2
  //# sourceMappingURL=dataStoreModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/data-store/di/dataStoreModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { dataStoreModuleFactory } from \"./dataStoreModule\";\n\ndescribe(\"DataStoreModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof dataStoreModuleFactory>;\n beforeEach(() => {\n mod = dataStoreModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the data store service module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAAuC,6BAEvC,SAAS,yBAA0B,IAAM,CACvC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,0BAAuB,EAC7BD,EAAY,IAAI,YAChBA,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,8CAA+C,IAAM,CACtD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { dataStoreModuleFactory } from \"./dataStoreModule\";\n\ndescribe(\"DataStoreModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof dataStoreModuleFactory>;\n beforeEach(() => {\n mod = dataStoreModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the data store service module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAAuC,6BAEvC,SAAS,yBAA0B,IAAM,CACvC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,0BAAuB,EAC7BD,EAAY,IAAI,YAChBA,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,8CAA+C,IAAM,CACtD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_inversify", "import_dataStoreModule", "container", "mod"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=require("@ledgerhq/device-management-kit"),f=require("purify-ts"),r=require("../../merkle-tree/model/Leaf"),k=require("./DataStore");const o={leaves:[new r.Leaf(Uint8Array.from([0,0]),Uint8Array.from([42])),new r.Leaf(Uint8Array.from([0,1]),Uint8Array.from([43])),new r.Leaf(Uint8Array.from([0,2]),Uint8Array.from([44])),new r.Leaf(Uint8Array.from([0,3]),Uint8Array.from([45]))],proof:[Uint8Array.from([9,8,7,6]),Uint8Array.from([5,4,3,2])],root:(0,c.hexaStringToBuffer)("9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb")},t={leaves:[new r.Leaf(Uint8Array.from([1,0]),Uint8Array.from([80])),new r.Leaf(Uint8Array.from([2,0]),Uint8Array.from([81])),new r.Leaf(Uint8Array.from([3,0]),Uint8Array.from([82])),new r.Leaf(Uint8Array.from([4,0]),Uint8Array.from([83])),new r.Leaf(Uint8Array.from([5,0]),Uint8Array.from([84])),new r.Leaf(Uint8Array.from([6,0]),Uint8Array.from([85])),new r.Leaf(Uint8Array.from([7,0]),Uint8Array.from([86])),new r.Leaf(Uint8Array.from([8,0]),Uint8Array.from([87])),new r.Leaf(Uint8Array.from([9,0]),Uint8Array.from([88])),new r.Leaf(Uint8Array.from([10,0]),Uint8Array.from([89]))],proof:[Uint8Array.from([255,254,253]),Uint8Array.from([1,2,3,4]),Uint8Array.from([170,187,204]),Uint8Array.from([7,6,5,4])],root:(0,c.hexaStringToBuffer)("e177ad5a8a17108dad67c70a51266681aa02b9e2b7ad6a0357585ba4289982ac")};describe("DataStore",()=>{const d=()=>({size:jest.fn(),getRoot:jest.fn(),getLeaves:jest.fn(),getLeafHash:jest.fn(),getProof:jest.fn()});beforeEach(()=>{jest.resetAllMocks()}),it("Add preimages, then get it",()=>{const l=(0,c.hexaStringToBuffer)("deadbeef1"),a=(0,c.hexaStringToBuffer)("deadbeef2"),n=(0,c.hexaStringToBuffer)("42ff1"),e=(0,c.hexaStringToBuffer)("42ff2"),i=(0,c.hexaStringToBuffer)("42ff3"),s=new k.DataStore;s.addPreimage(n,l),s.addPreimage(e,a);const u=s.getPreimage(n);expect(u.isJust()).toStrictEqual(!0),expect(u.unsafeCoerce()).toStrictEqual(l);const m=s.getPreimage(e);expect(m.isJust()).toStrictEqual(!0),expect(m.unsafeCoerce()).toStrictEqual(a);const p=s.getPreimage(i);expect(p.isJust()).toStrictEqual(!1)}),it("Add merkletrees, then get index",()=>{const l=(0,c.hexaStringToBuffer)("deadbeef"),a=d(),n=d(),e=new k.DataStore;a.getRoot.mockReturnValueOnce(o.root),a.getLeaves.mockReturnValueOnce(o.leaves).mockReturnValueOnce(o.leaves),n.getRoot.mockReturnValueOnce(t.root),n.getLeaves.mockReturnValueOnce(t.leaves).mockReturnValueOnce(t.leaves).mockReturnValueOnce(t.leaves),e.addMerkleTree(a),e.addMerkleTree(n);const i=e.getMerkleLeafIndex(o.root,o.leaves[2].hash);expect(i.isJust()).toStrictEqual(!0),expect(i.unsafeCoerce()).toStrictEqual(2);const s=e.getMerkleLeafIndex(t.root,t.leaves[7].hash);expect(s.isJust()).toStrictEqual(!0),expect(s.unsafeCoerce()).toStrictEqual(7);const u=e.getMerkleLeafIndex(t.root,o.leaves[2].hash);expect(u.isJust()).toStrictEqual(!1);const m=e.getMerkleLeafIndex(l,l);expect(m.isJust()).toStrictEqual(!1)}),it("Add merkletrees, then get proof",()=>{const l=(0,c.hexaStringToBuffer)("deadbeef"),a=d(),n=d(),e=new k.DataStore;a.getRoot.mockReturnValueOnce(o.root),a.getLeaves.mockReturnValueOnce(o.leaves),a.getLeafHash.mockReturnValueOnce((0,f.Just)(o.leaves[1].hash)),a.getProof.mockReturnValueOnce((0,f.Just)(o.proof)),n.getRoot.mockReturnValueOnce(t.root),n.getLeaves.mockReturnValueOnce(t.leaves),n.getLeafHash.mockReturnValueOnce((0,f.Just)(t.leaves[5].hash)).mockReturnValueOnce(f.Nothing).mockReturnValueOnce((0,f.Just)(t.leaves[5].hash)),n.getProof.mockReturnValueOnce((0,f.Just)(t.proof)).mockReturnValueOnce(f.Nothing),e.addMerkleTree(a),e.addMerkleTree(n);const i=e.getMerkleProof(o.root,1);expect(i.isJust()).toStrictEqual(!0),expect(i.unsafeCoerce().leafHash).toStrictEqual(o.leaves[1].hash),expect(i.unsafeCoerce().proof).toStrictEqual(o.proof);const s=e.getMerkleProof(t.root,5);expect(s.isJust()).toStrictEqual(!0),expect(s.unsafeCoerce().leafHash).toStrictEqual(t.leaves[5].hash),expect(s.unsafeCoerce().proof).toStrictEqual(t.proof);const u=e.getMerkleProof(t.root,5);expect(u.isJust()).toStrictEqual(!1);const m=e.getMerkleProof(t.root,5);expect(m.isJust()).toStrictEqual(!1);const p=e.getMerkleProof(l,0);expect(p.isJust()).toStrictEqual(!1)})});
1
+ "use strict";var s=require("@ledgerhq/device-management-kit"),f=require("purify-ts"),r=require("../../merkle-tree/model/Leaf"),k=require("./DataStore");const o={leaves:[new r.Leaf(Uint8Array.from([0,0]),Uint8Array.from([42])),new r.Leaf(Uint8Array.from([0,1]),Uint8Array.from([43])),new r.Leaf(Uint8Array.from([0,2]),Uint8Array.from([44])),new r.Leaf(Uint8Array.from([0,3]),Uint8Array.from([45]))],proof:[Uint8Array.from([9,8,7,6]),Uint8Array.from([5,4,3,2])],root:(0,s.hexaStringToBuffer)("9bcd51240af4005168f033121ba85be5a6ed4f0e6a5fac262066729b8fbfdecb")},t={leaves:[new r.Leaf(Uint8Array.from([1,0]),Uint8Array.from([80])),new r.Leaf(Uint8Array.from([2,0]),Uint8Array.from([81])),new r.Leaf(Uint8Array.from([3,0]),Uint8Array.from([82])),new r.Leaf(Uint8Array.from([4,0]),Uint8Array.from([83])),new r.Leaf(Uint8Array.from([5,0]),Uint8Array.from([84])),new r.Leaf(Uint8Array.from([6,0]),Uint8Array.from([85])),new r.Leaf(Uint8Array.from([7,0]),Uint8Array.from([86])),new r.Leaf(Uint8Array.from([8,0]),Uint8Array.from([87])),new r.Leaf(Uint8Array.from([9,0]),Uint8Array.from([88])),new r.Leaf(Uint8Array.from([10,0]),Uint8Array.from([89]))],proof:[Uint8Array.from([255,254,253]),Uint8Array.from([1,2,3,4]),Uint8Array.from([170,187,204]),Uint8Array.from([7,6,5,4])],root:(0,s.hexaStringToBuffer)("e177ad5a8a17108dad67c70a51266681aa02b9e2b7ad6a0357585ba4289982ac")};describe("DataStore",()=>{const d=()=>({size:vi.fn(),getRoot:vi.fn(),getLeaves:vi.fn(),getLeafHash:vi.fn(),getProof:vi.fn()});beforeEach(()=>{vi.resetAllMocks()}),it("Add preimages, then get it",()=>{const l=(0,s.hexaStringToBuffer)("deadbeef1"),a=(0,s.hexaStringToBuffer)("deadbeef2"),n=(0,s.hexaStringToBuffer)("42ff1"),e=(0,s.hexaStringToBuffer)("42ff2"),i=(0,s.hexaStringToBuffer)("42ff3"),c=new k.DataStore;c.addPreimage(n,l),c.addPreimage(e,a);const u=c.getPreimage(n);expect(u.isJust()).toStrictEqual(!0),expect(u.unsafeCoerce()).toStrictEqual(l);const m=c.getPreimage(e);expect(m.isJust()).toStrictEqual(!0),expect(m.unsafeCoerce()).toStrictEqual(a);const p=c.getPreimage(i);expect(p.isJust()).toStrictEqual(!1)}),it("Add merkletrees, then get index",()=>{const l=(0,s.hexaStringToBuffer)("deadbeef"),a=d(),n=d(),e=new k.DataStore;a.getRoot.mockReturnValueOnce(o.root),a.getLeaves.mockReturnValueOnce(o.leaves).mockReturnValueOnce(o.leaves),n.getRoot.mockReturnValueOnce(t.root),n.getLeaves.mockReturnValueOnce(t.leaves).mockReturnValueOnce(t.leaves).mockReturnValueOnce(t.leaves),e.addMerkleTree(a),e.addMerkleTree(n);const i=e.getMerkleLeafIndex(o.root,o.leaves[2].hash);expect(i.isJust()).toStrictEqual(!0),expect(i.unsafeCoerce()).toStrictEqual(2);const c=e.getMerkleLeafIndex(t.root,t.leaves[7].hash);expect(c.isJust()).toStrictEqual(!0),expect(c.unsafeCoerce()).toStrictEqual(7);const u=e.getMerkleLeafIndex(t.root,o.leaves[2].hash);expect(u.isJust()).toStrictEqual(!1);const m=e.getMerkleLeafIndex(l,l);expect(m.isJust()).toStrictEqual(!1)}),it("Add merkletrees, then get proof",()=>{const l=(0,s.hexaStringToBuffer)("deadbeef"),a=d(),n=d(),e=new k.DataStore;a.getRoot.mockReturnValueOnce(o.root),a.getLeaves.mockReturnValueOnce(o.leaves),a.getLeafHash.mockReturnValueOnce((0,f.Just)(o.leaves[1].hash)),a.getProof.mockReturnValueOnce((0,f.Just)(o.proof)),n.getRoot.mockReturnValueOnce(t.root),n.getLeaves.mockReturnValueOnce(t.leaves),n.getLeafHash.mockReturnValueOnce((0,f.Just)(t.leaves[5].hash)).mockReturnValueOnce(f.Nothing).mockReturnValueOnce((0,f.Just)(t.leaves[5].hash)),n.getProof.mockReturnValueOnce((0,f.Just)(t.proof)).mockReturnValueOnce(f.Nothing),e.addMerkleTree(a),e.addMerkleTree(n);const i=e.getMerkleProof(o.root,1);expect(i.isJust()).toStrictEqual(!0),expect(i.unsafeCoerce().leafHash).toStrictEqual(o.leaves[1].hash),expect(i.unsafeCoerce().proof).toStrictEqual(o.proof);const c=e.getMerkleProof(t.root,5);expect(c.isJust()).toStrictEqual(!0),expect(c.unsafeCoerce().leafHash).toStrictEqual(t.leaves[5].hash),expect(c.unsafeCoerce().proof).toStrictEqual(t.proof);const u=e.getMerkleProof(t.root,5);expect(u.isJust()).toStrictEqual(!1);const m=e.getMerkleProof(t.root,5);expect(m.isJust()).toStrictEqual(!1);const p=e.getMerkleProof(l,0);expect(p.isJust()).toStrictEqual(!1)})});
2
2
  //# sourceMappingURL=DataStore.test.js.map