@ledgerhq/device-signer-kit-solana 0.0.0-signer-eth-plugin-fix-20250331141239 → 0.0.0-solana-signer-20251204160729

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 (377) hide show
  1. package/README.md +116 -23
  2. package/lib/cjs/api/SignerSolana.js +1 -1
  3. package/lib/cjs/api/SignerSolana.js.map +1 -1
  4. package/lib/cjs/api/SignerSolanaBuilder.js +1 -1
  5. package/lib/cjs/api/SignerSolanaBuilder.js.map +3 -3
  6. package/lib/cjs/api/SolanaTools.js +2 -0
  7. package/lib/cjs/api/SolanaTools.js.map +7 -0
  8. package/lib/cjs/api/SolanaToolsBuilder.js +2 -0
  9. package/lib/cjs/api/SolanaToolsBuilder.js.map +7 -0
  10. package/lib/cjs/api/app-binder/GenerateTransactionDeviceActionTypes.js +2 -0
  11. package/lib/cjs/api/app-binder/GenerateTransactionDeviceActionTypes.js.map +7 -0
  12. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.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 +3 -3
  15. package/lib/cjs/api/index.js +1 -1
  16. package/lib/cjs/api/index.js.map +3 -3
  17. package/lib/cjs/api/model/AddressOption.js +1 -1
  18. package/lib/cjs/api/model/AddressOption.js.map +1 -1
  19. package/lib/cjs/api/model/MessageOptions.js +2 -0
  20. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  21. package/lib/cjs/api/model/SolanaTransactionOptionalConfig.js +2 -0
  22. package/lib/cjs/api/model/SolanaTransactionOptionalConfig.js.map +7 -0
  23. package/lib/cjs/api/model/TransactionResolutionContext.js +2 -0
  24. package/lib/cjs/api/model/TransactionResolutionContext.js.map +7 -0
  25. package/lib/cjs/internal/DefaultSignerSolana.js +1 -1
  26. package/lib/cjs/internal/DefaultSignerSolana.js.map +3 -3
  27. package/lib/cjs/internal/DefaultSignerSolana.test.js +1 -1
  28. package/lib/cjs/internal/DefaultSignerSolana.test.js.map +3 -3
  29. package/lib/cjs/internal/DefaultSolanaTools.js +2 -0
  30. package/lib/cjs/internal/DefaultSolanaTools.js.map +7 -0
  31. package/lib/cjs/internal/DefaultSolanaTools.test.js +2 -0
  32. package/lib/cjs/internal/DefaultSolanaTools.test.js.map +7 -0
  33. package/lib/cjs/internal/app-binder/SolanaAppBinder.js +1 -1
  34. package/lib/cjs/internal/app-binder/SolanaAppBinder.js.map +3 -3
  35. package/lib/cjs/internal/app-binder/SolanaAppBinder.test.js +1 -1
  36. package/lib/cjs/internal/app-binder/SolanaAppBinder.test.js.map +3 -3
  37. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
  38. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +2 -2
  39. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
  40. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
  41. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js +2 -0
  42. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js.map +7 -0
  43. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js +2 -0
  44. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js.map +7 -0
  45. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.js +1 -1
  46. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.js.map +3 -3
  47. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.test.js +1 -1
  48. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.test.js.map +2 -2
  49. package/lib/cjs/internal/app-binder/command/ProvideTLVDescriptorCommand.js +2 -0
  50. package/lib/cjs/internal/app-binder/command/ProvideTLVDescriptorCommand.js.map +7 -0
  51. package/lib/cjs/internal/app-binder/command/ProvideTLVDescriptorCommand.test.js +2 -0
  52. package/lib/cjs/internal/app-binder/command/ProvideTLVDescriptorCommand.test.js.map +7 -0
  53. package/lib/cjs/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.js +2 -0
  54. package/lib/cjs/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.js.map +7 -0
  55. package/lib/cjs/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.js +2 -0
  56. package/lib/cjs/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.js.map +7 -0
  57. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.js +1 -1
  58. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.js.map +3 -3
  59. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.test.js +1 -1
  60. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.test.js.map +3 -3
  61. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js +1 -1
  62. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js.map +3 -3
  63. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  64. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +3 -3
  65. package/lib/cjs/internal/app-binder/device-action/GenerateTransactionDeviceAction.js +2 -0
  66. package/lib/cjs/internal/app-binder/device-action/GenerateTransactionDeviceAction.js.map +7 -0
  67. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js +1 -1
  68. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +3 -3
  69. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
  70. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +3 -3
  71. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  72. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  73. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  74. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  75. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js +1 -1
  76. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  77. package/lib/cjs/internal/app-binder/services/ApplicationChecker.js +2 -0
  78. package/lib/cjs/internal/app-binder/services/ApplicationChecker.js.map +7 -0
  79. package/lib/cjs/internal/app-binder/services/ApplicationChecker.test.js +2 -0
  80. package/lib/cjs/internal/app-binder/services/ApplicationChecker.test.js.map +7 -0
  81. package/lib/cjs/internal/app-binder/services/GenerateSolanaTransaction.js +2 -0
  82. package/lib/cjs/internal/app-binder/services/GenerateSolanaTransaction.js.map +7 -0
  83. package/lib/cjs/internal/app-binder/services/GenerateSolanaTransaction.test.js +2 -0
  84. package/lib/cjs/internal/app-binder/services/GenerateSolanaTransaction.test.js.map +7 -0
  85. package/lib/cjs/internal/app-binder/services/TransactionInspector.js +2 -0
  86. package/lib/cjs/internal/app-binder/services/TransactionInspector.js.map +7 -0
  87. package/lib/cjs/internal/app-binder/services/TransactionInspector.test.js +2 -0
  88. package/lib/cjs/internal/app-binder/services/TransactionInspector.test.js.map +7 -0
  89. package/lib/cjs/internal/app-binder/services/bs58Encoder.js +2 -0
  90. package/lib/cjs/internal/app-binder/services/bs58Encoder.js.map +7 -0
  91. package/lib/cjs/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.js +2 -0
  92. package/lib/cjs/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.js.map +7 -0
  93. package/lib/cjs/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.js +2 -0
  94. package/lib/cjs/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.js.map +7 -0
  95. package/lib/cjs/internal/app-binder/services/utils/transactionDecoders.js +2 -0
  96. package/lib/cjs/internal/app-binder/services/utils/transactionDecoders.js.map +7 -0
  97. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +2 -0
  98. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +7 -0
  99. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +2 -0
  100. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +7 -0
  101. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +2 -0
  102. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +7 -0
  103. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +2 -0
  104. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +7 -0
  105. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.js +1 -1
  106. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.js.map +3 -3
  107. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.test.js +3 -1
  108. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.test.js.map +3 -3
  109. package/lib/cjs/internal/di.js +1 -1
  110. package/lib/cjs/internal/di.js.map +3 -3
  111. package/lib/cjs/internal/externalTypes.js +1 -1
  112. package/lib/cjs/internal/externalTypes.js.map +2 -2
  113. package/lib/cjs/internal/use-cases/address/GetAddressUseCase.js +1 -1
  114. package/lib/cjs/internal/use-cases/address/GetAddressUseCase.js.map +2 -2
  115. package/lib/cjs/internal/use-cases/address/GetAddressUseCase.test.js +1 -1
  116. package/lib/cjs/internal/use-cases/address/GetAddressUseCase.test.js.map +2 -2
  117. package/lib/cjs/internal/use-cases/di/useCasesModule.js +1 -1
  118. package/lib/cjs/internal/use-cases/di/useCasesModule.js.map +3 -3
  119. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js +1 -1
  120. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  121. package/lib/cjs/internal/use-cases/di/useCasesTypes.js +1 -1
  122. package/lib/cjs/internal/use-cases/di/useCasesTypes.js.map +2 -2
  123. package/lib/cjs/internal/use-cases/generateTransaction/GenerateTransactionUseCase.js +2 -0
  124. package/lib/cjs/internal/use-cases/generateTransaction/GenerateTransactionUseCase.js.map +7 -0
  125. package/lib/cjs/internal/use-cases/generateTransaction/GenerateTransactionUseCase.test.js +2 -0
  126. package/lib/cjs/internal/use-cases/generateTransaction/GenerateTransactionUseCase.test.js.map +7 -0
  127. package/lib/cjs/internal/use-cases/message/SignMessageUseCase.js +1 -1
  128. package/lib/cjs/internal/use-cases/message/SignMessageUseCase.js.map +3 -3
  129. package/lib/cjs/internal/use-cases/message/SignMessageUseCase.test.js +1 -1
  130. package/lib/cjs/internal/use-cases/message/SignMessageUseCase.test.js.map +2 -2
  131. package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.js +1 -1
  132. package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.js.map +3 -3
  133. package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.test.js +1 -1
  134. package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.test.js.map +3 -3
  135. package/lib/cjs/package.json +45 -36
  136. package/lib/esm/api/SignerSolanaBuilder.js +1 -1
  137. package/lib/esm/api/SignerSolanaBuilder.js.map +3 -3
  138. package/lib/esm/api/SolanaTools.js +1 -0
  139. package/lib/esm/api/SolanaToolsBuilder.js +2 -0
  140. package/lib/esm/api/SolanaToolsBuilder.js.map +7 -0
  141. package/lib/esm/api/app-binder/GenerateTransactionDeviceActionTypes.js +1 -0
  142. package/lib/esm/api/app-binder/GenerateTransactionDeviceActionTypes.js.map +7 -0
  143. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -0
  144. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +4 -4
  145. package/lib/esm/api/index.js +1 -1
  146. package/lib/esm/api/index.js.map +3 -3
  147. package/lib/esm/api/model/MessageOptions.js +1 -0
  148. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  149. package/lib/esm/api/model/SolanaTransactionOptionalConfig.js +1 -0
  150. package/lib/esm/api/model/SolanaTransactionOptionalConfig.js.map +7 -0
  151. package/lib/esm/api/model/TransactionResolutionContext.js +2 -0
  152. package/lib/esm/api/model/TransactionResolutionContext.js.map +7 -0
  153. package/lib/esm/internal/DefaultSignerSolana.js +1 -1
  154. package/lib/esm/internal/DefaultSignerSolana.js.map +3 -3
  155. package/lib/esm/internal/DefaultSignerSolana.test.js +1 -1
  156. package/lib/esm/internal/DefaultSignerSolana.test.js.map +3 -3
  157. package/lib/esm/internal/DefaultSolanaTools.js +2 -0
  158. package/lib/esm/internal/DefaultSolanaTools.js.map +7 -0
  159. package/lib/esm/internal/DefaultSolanaTools.test.js +2 -0
  160. package/lib/esm/internal/DefaultSolanaTools.test.js.map +7 -0
  161. package/lib/esm/internal/app-binder/SolanaAppBinder.js +1 -1
  162. package/lib/esm/internal/app-binder/SolanaAppBinder.js.map +3 -3
  163. package/lib/esm/internal/app-binder/SolanaAppBinder.test.js +1 -1
  164. package/lib/esm/internal/app-binder/SolanaAppBinder.test.js.map +3 -3
  165. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
  166. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +2 -2
  167. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
  168. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
  169. package/lib/esm/internal/app-binder/command/GetChallengeCommand.js +2 -0
  170. package/lib/esm/internal/app-binder/command/GetChallengeCommand.js.map +7 -0
  171. package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js +2 -0
  172. package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js.map +7 -0
  173. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.js +1 -1
  174. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.js.map +3 -3
  175. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.test.js +1 -1
  176. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.test.js.map +2 -2
  177. package/lib/esm/internal/app-binder/command/ProvideTLVDescriptorCommand.js +2 -0
  178. package/lib/esm/internal/app-binder/command/ProvideTLVDescriptorCommand.js.map +7 -0
  179. package/lib/esm/internal/app-binder/command/ProvideTLVDescriptorCommand.test.js +2 -0
  180. package/lib/esm/internal/app-binder/command/ProvideTLVDescriptorCommand.test.js.map +7 -0
  181. package/lib/esm/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.js +2 -0
  182. package/lib/esm/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.js.map +7 -0
  183. package/lib/esm/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.js +2 -0
  184. package/lib/esm/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.js.map +7 -0
  185. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.js +1 -1
  186. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.js.map +3 -3
  187. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.test.js +1 -1
  188. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.test.js.map +3 -3
  189. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js +1 -1
  190. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js.map +3 -3
  191. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  192. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +3 -3
  193. package/lib/esm/internal/app-binder/device-action/GenerateTransactionDeviceAction.js +2 -0
  194. package/lib/esm/internal/app-binder/device-action/GenerateTransactionDeviceAction.js.map +7 -0
  195. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js +1 -1
  196. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +3 -3
  197. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
  198. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +3 -3
  199. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  200. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  201. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  202. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  203. package/lib/esm/internal/app-binder/di/appBinderModule.test.js +1 -1
  204. package/lib/esm/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  205. package/lib/esm/internal/app-binder/services/ApplicationChecker.js +2 -0
  206. package/lib/esm/internal/app-binder/services/ApplicationChecker.js.map +7 -0
  207. package/lib/esm/internal/app-binder/services/ApplicationChecker.test.js +2 -0
  208. package/lib/esm/internal/app-binder/services/ApplicationChecker.test.js.map +7 -0
  209. package/lib/esm/internal/app-binder/services/GenerateSolanaTransaction.js +2 -0
  210. package/lib/esm/internal/app-binder/services/GenerateSolanaTransaction.js.map +7 -0
  211. package/lib/esm/internal/app-binder/services/GenerateSolanaTransaction.test.js +2 -0
  212. package/lib/esm/internal/app-binder/services/GenerateSolanaTransaction.test.js.map +7 -0
  213. package/lib/esm/internal/app-binder/services/TransactionInspector.js +2 -0
  214. package/lib/esm/internal/app-binder/services/TransactionInspector.js.map +7 -0
  215. package/lib/esm/internal/app-binder/services/TransactionInspector.test.js +2 -0
  216. package/lib/esm/internal/app-binder/services/TransactionInspector.test.js.map +7 -0
  217. package/lib/esm/internal/app-binder/services/bs58Encoder.js +2 -0
  218. package/lib/esm/internal/app-binder/services/bs58Encoder.js.map +7 -0
  219. package/lib/esm/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.js +2 -0
  220. package/lib/esm/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.js.map +7 -0
  221. package/lib/esm/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.js +2 -0
  222. package/lib/esm/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.js.map +7 -0
  223. package/lib/esm/internal/app-binder/services/utils/transactionDecoders.js +2 -0
  224. package/lib/esm/internal/app-binder/services/utils/transactionDecoders.js.map +7 -0
  225. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +2 -0
  226. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +7 -0
  227. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +2 -0
  228. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +7 -0
  229. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +2 -0
  230. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +7 -0
  231. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +2 -0
  232. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +7 -0
  233. package/lib/esm/internal/app-binder/task/SendSignMessageTask.js +1 -1
  234. package/lib/esm/internal/app-binder/task/SendSignMessageTask.js.map +3 -3
  235. package/lib/esm/internal/app-binder/task/SendSignMessageTask.test.js +3 -1
  236. package/lib/esm/internal/app-binder/task/SendSignMessageTask.test.js.map +3 -3
  237. package/lib/esm/internal/di.js +1 -1
  238. package/lib/esm/internal/di.js.map +3 -3
  239. package/lib/esm/internal/externalTypes.js +1 -1
  240. package/lib/esm/internal/externalTypes.js.map +2 -2
  241. package/lib/esm/internal/use-cases/address/GetAddressUseCase.js +1 -1
  242. package/lib/esm/internal/use-cases/address/GetAddressUseCase.js.map +2 -2
  243. package/lib/esm/internal/use-cases/address/GetAddressUseCase.test.js +1 -1
  244. package/lib/esm/internal/use-cases/address/GetAddressUseCase.test.js.map +2 -2
  245. package/lib/esm/internal/use-cases/di/useCasesModule.js +1 -1
  246. package/lib/esm/internal/use-cases/di/useCasesModule.js.map +3 -3
  247. package/lib/esm/internal/use-cases/di/useCasesModule.test.js +1 -1
  248. package/lib/esm/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  249. package/lib/esm/internal/use-cases/di/useCasesTypes.js +1 -1
  250. package/lib/esm/internal/use-cases/di/useCasesTypes.js.map +2 -2
  251. package/lib/esm/internal/use-cases/generateTransaction/GenerateTransactionUseCase.js +2 -0
  252. package/lib/esm/internal/use-cases/generateTransaction/GenerateTransactionUseCase.js.map +7 -0
  253. package/lib/esm/internal/use-cases/generateTransaction/GenerateTransactionUseCase.test.js +2 -0
  254. package/lib/esm/internal/use-cases/generateTransaction/GenerateTransactionUseCase.test.js.map +7 -0
  255. package/lib/esm/internal/use-cases/message/SignMessageUseCase.js +1 -1
  256. package/lib/esm/internal/use-cases/message/SignMessageUseCase.js.map +3 -3
  257. package/lib/esm/internal/use-cases/message/SignMessageUseCase.test.js +1 -1
  258. package/lib/esm/internal/use-cases/message/SignMessageUseCase.test.js.map +2 -2
  259. package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.js +1 -1
  260. package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.js.map +3 -3
  261. package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.test.js +1 -1
  262. package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.test.js.map +3 -3
  263. package/lib/esm/package.json +45 -36
  264. package/lib/types/api/SignerSolana.d.ts +4 -3
  265. package/lib/types/api/SignerSolana.d.ts.map +1 -1
  266. package/lib/types/api/SignerSolanaBuilder.d.ts +12 -1
  267. package/lib/types/api/SignerSolanaBuilder.d.ts.map +1 -1
  268. package/lib/types/api/SolanaTools.d.ts +10 -0
  269. package/lib/types/api/SolanaTools.d.ts.map +1 -0
  270. package/lib/types/api/SolanaToolsBuilder.d.ts +39 -0
  271. package/lib/types/api/SolanaToolsBuilder.d.ts.map +1 -0
  272. package/lib/types/api/app-binder/GenerateTransactionDeviceActionTypes.d.ts +24 -0
  273. package/lib/types/api/app-binder/GenerateTransactionDeviceActionTypes.d.ts.map +1 -0
  274. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts +3 -2
  275. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts.map +1 -1
  276. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +21 -3
  277. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  278. package/lib/types/api/index.d.ts +4 -1
  279. package/lib/types/api/index.d.ts.map +1 -1
  280. package/lib/types/api/model/AddressOption.d.ts +1 -0
  281. package/lib/types/api/model/AddressOption.d.ts.map +1 -1
  282. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  283. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  284. package/lib/types/api/model/SolanaTransactionOptionalConfig.d.ts +7 -0
  285. package/lib/types/api/model/SolanaTransactionOptionalConfig.d.ts.map +1 -0
  286. package/lib/types/api/model/TransactionResolutionContext.d.ts +15 -0
  287. package/lib/types/api/model/TransactionResolutionContext.d.ts.map +1 -0
  288. package/lib/types/internal/DefaultSignerSolana.d.ts +298 -4
  289. package/lib/types/internal/DefaultSignerSolana.d.ts.map +1 -1
  290. package/lib/types/internal/DefaultSolanaTools.d.ts +20 -0
  291. package/lib/types/internal/DefaultSolanaTools.d.ts.map +1 -0
  292. package/lib/types/internal/DefaultSolanaTools.test.d.ts +2 -0
  293. package/lib/types/internal/DefaultSolanaTools.test.d.ts.map +1 -0
  294. package/lib/types/internal/app-binder/SolanaAppBinder.d.ts +12 -3
  295. package/lib/types/internal/app-binder/SolanaAppBinder.d.ts.map +1 -1
  296. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +1 -0
  297. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -1
  298. package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts +12 -0
  299. package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts.map +1 -0
  300. package/lib/types/internal/app-binder/command/GetChallengeCommand.test.d.ts +2 -0
  301. package/lib/types/internal/app-binder/command/GetChallengeCommand.test.d.ts.map +1 -0
  302. package/lib/types/internal/app-binder/command/GetPubKeyCommand.d.ts +6 -4
  303. package/lib/types/internal/app-binder/command/GetPubKeyCommand.d.ts.map +1 -1
  304. package/lib/types/internal/app-binder/command/ProvideTLVDescriptorCommand.d.ts +14 -0
  305. package/lib/types/internal/app-binder/command/ProvideTLVDescriptorCommand.d.ts.map +1 -0
  306. package/lib/types/internal/app-binder/command/ProvideTLVDescriptorCommand.test.d.ts +2 -0
  307. package/lib/types/internal/app-binder/command/ProvideTLVDescriptorCommand.test.d.ts.map +1 -0
  308. package/lib/types/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.d.ts +29 -0
  309. package/lib/types/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.d.ts.map +1 -0
  310. package/lib/types/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.d.ts +2 -0
  311. package/lib/types/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.d.ts.map +1 -0
  312. package/lib/types/internal/app-binder/command/SignOffChainMessageCommand.d.ts +14 -9
  313. package/lib/types/internal/app-binder/command/SignOffChainMessageCommand.d.ts.map +1 -1
  314. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts +3 -0
  315. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts.map +1 -1
  316. package/lib/types/internal/app-binder/command/utils/SolanaApplicationErrors.d.ts.map +1 -1
  317. package/lib/types/internal/app-binder/device-action/GenerateTransactionDeviceAction.d.ts +23 -0
  318. package/lib/types/internal/app-binder/device-action/GenerateTransactionDeviceAction.d.ts.map +1 -0
  319. package/lib/types/internal/app-binder/device-action/SignTransactionDeviceAction.d.ts +18 -1
  320. package/lib/types/internal/app-binder/device-action/SignTransactionDeviceAction.d.ts.map +1 -1
  321. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  322. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  323. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  324. package/lib/types/internal/app-binder/services/ApplicationChecker.d.ts +13 -0
  325. package/lib/types/internal/app-binder/services/ApplicationChecker.d.ts.map +1 -0
  326. package/lib/types/internal/app-binder/services/ApplicationChecker.test.d.ts +2 -0
  327. package/lib/types/internal/app-binder/services/ApplicationChecker.test.d.ts.map +1 -0
  328. package/lib/types/internal/app-binder/services/GenerateSolanaTransaction.d.ts +14 -0
  329. package/lib/types/internal/app-binder/services/GenerateSolanaTransaction.d.ts.map +1 -0
  330. package/lib/types/internal/app-binder/services/GenerateSolanaTransaction.test.d.ts +2 -0
  331. package/lib/types/internal/app-binder/services/GenerateSolanaTransaction.test.d.ts.map +1 -0
  332. package/lib/types/internal/app-binder/services/TransactionInspector.d.ts +43 -0
  333. package/lib/types/internal/app-binder/services/TransactionInspector.d.ts.map +1 -0
  334. package/lib/types/internal/app-binder/services/TransactionInspector.test.d.ts +2 -0
  335. package/lib/types/internal/app-binder/services/TransactionInspector.test.d.ts.map +1 -0
  336. package/lib/types/internal/app-binder/services/bs58Encoder.d.ts +9 -0
  337. package/lib/types/internal/app-binder/services/bs58Encoder.d.ts.map +1 -0
  338. package/lib/types/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.d.ts +8 -0
  339. package/lib/types/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.d.ts.map +1 -0
  340. package/lib/types/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.d.ts +2 -0
  341. package/lib/types/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.d.ts.map +1 -0
  342. package/lib/types/internal/app-binder/services/utils/transactionDecoders.d.ts +14 -0
  343. package/lib/types/internal/app-binder/services/utils/transactionDecoders.d.ts.map +1 -0
  344. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +19 -0
  345. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +1 -0
  346. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.test.d.ts +2 -0
  347. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.test.d.ts.map +1 -0
  348. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +19 -0
  349. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +1 -0
  350. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.test.d.ts +2 -0
  351. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.test.d.ts.map +1 -0
  352. package/lib/types/internal/app-binder/task/SendSignMessageTask.d.ts +26 -3
  353. package/lib/types/internal/app-binder/task/SendSignMessageTask.d.ts.map +1 -1
  354. package/lib/types/internal/di.d.ts +3 -1
  355. package/lib/types/internal/di.d.ts.map +1 -1
  356. package/lib/types/internal/externalTypes.d.ts +1 -0
  357. package/lib/types/internal/externalTypes.d.ts.map +1 -1
  358. package/lib/types/internal/use-cases/address/GetAddressUseCase.d.ts.map +1 -1
  359. package/lib/types/internal/use-cases/di/useCasesModule.d.ts.map +1 -1
  360. package/lib/types/internal/use-cases/di/useCasesTypes.d.ts +1 -0
  361. package/lib/types/internal/use-cases/di/useCasesTypes.d.ts.map +1 -1
  362. package/lib/types/internal/use-cases/generateTransaction/GenerateTransactionUseCase.d.ts +10 -0
  363. package/lib/types/internal/use-cases/generateTransaction/GenerateTransactionUseCase.d.ts.map +1 -0
  364. package/lib/types/internal/use-cases/generateTransaction/GenerateTransactionUseCase.test.d.ts +2 -0
  365. package/lib/types/internal/use-cases/generateTransaction/GenerateTransactionUseCase.test.d.ts.map +1 -0
  366. package/lib/types/internal/use-cases/message/SignMessageUseCase.d.ts +2 -1
  367. package/lib/types/internal/use-cases/message/SignMessageUseCase.d.ts.map +1 -1
  368. package/lib/types/internal/use-cases/transaction/SignTransactionUseCase.d.ts +2 -2
  369. package/lib/types/internal/use-cases/transaction/SignTransactionUseCase.d.ts.map +1 -1
  370. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  371. package/package.json +43 -34
  372. package/lib/cjs/api/model/TransactionOptions.js +0 -2
  373. package/lib/cjs/api/model/TransactionOptions.js.map +0 -7
  374. package/lib/esm/api/model/TransactionOptions.js +0 -1
  375. package/lib/types/api/model/TransactionOptions.d.ts +0 -2
  376. package/lib/types/api/model/TransactionOptions.d.ts.map +0 -1
  377. /package/lib/esm/api/{model/TransactionOptions.js.map → SolanaTools.js.map} +0 -0
@@ -1,2 +1,4 @@
1
- import{CommandResultFactory as c,InvalidStatusWordError as l}from"@ledgerhq/device-management-kit";import{makeDeviceActionInternalApiMock as u}from"../../app-binder/device-action/__test-utils__/makeInternalApi";import{SendSignMessageTask as r}from"../../app-binder/task/SendSignMessageTask";const i="44'/501'/0'/0'";describe("SendSignMessageTask",()=>{const e=u();beforeEach(()=>{vi.resetAllMocks()});const d=new Uint8Array([1,2,3,4]);describe("run with SignOffChainMessageCommand",()=>{it("should return an error if the command fails",async()=>{const n={derivationPath:i,sendingData:d};e.sendCommand.mockResolvedValueOnce(c({error:new l("no signature returned")}));const a=await new r(e,n).run();expect(e.sendCommand).toHaveBeenCalledTimes(1),expect(a).toMatchObject({error:new l("no signature returned")})}),it("should return success when the command executes successfully",async()=>{const n={derivationPath:i,sendingData:d},a=new Uint8Array([170,187,204,221]);e.sendCommand.mockResolvedValueOnce(c({data:a}));const t=await new r(e,n).run();expect(e.sendCommand).toHaveBeenCalledTimes(1),expect(t).toMatchObject({data:a})}),it("should handle invalid derivation paths",async()=>{const a={derivationPath:"invalid/path",sendingData:d},t=new r(e,a);await expect(t.run()).rejects.toThrowError()}),it("should handle empty message data",async()=>{const n=new Uint8Array([]),a={derivationPath:i,sendingData:n};e.sendCommand.mockResolvedValueOnce(c({data:new Uint8Array([])}));const t=await new r(e,a).run();if(expect(e.sendCommand).toHaveBeenCalledTimes(1),"data"in t)expect(t.data).toEqual(new Uint8Array([]));else throw new Error("Expected result to have data property")}),it("should correctly build the APDU command",()=>{const n={derivationPath:i,sendingData:d},a=new r(e,n),t=a._buildFullMessage(d),o=[-2147483604,-2147483147,-2147483648,0],s=a._buildApduCommand(t,o),m=2+o.length*4+t.length;expect(s.length).toEqual(m)}),it("should handle messages with maximum allowed length",async()=>{const t=new Uint8Array(217).fill(1),o={derivationPath:i,sendingData:t};e.sendCommand.mockResolvedValueOnce(c({data:new Uint8Array([153,136,119])}));const s=await new r(e,o).run();if(expect(e.sendCommand).toHaveBeenCalledTimes(1),"data"in s)expect(s.data).toEqual(new Uint8Array([153,136,119]));else throw new Error("Expected result to have data property")}),it("should fail messages if too big",async()=>{const t=new Uint8Array(218).fill(1),o={derivationPath:i,sendingData:t};e.sendCommand.mockResolvedValueOnce(c({data:new Uint8Array([153,136,119])}));const s=await new r(e,o).run();if(expect(e.sendCommand).toHaveBeenCalledTimes(0),"error"in s)expect(s.error).toEqual(new l("The APDU command exceeds the maximum allowable size (255 bytes)"));else throw new Error("Expected result to have error property")})})});
1
+ import{CommandResultFactory as r,InvalidStatusWordError as m}from"@ledgerhq/device-management-kit";import{makeDeviceActionInternalApiMock as h}from"../../app-binder/device-action/__test-utils__/makeInternalApi";import{DefaultBs58Encoder as x}from"../../app-binder/services/bs58Encoder";import{MAX_MESSAGE_LENGTH as v,MessageFormat as u,SendSignMessageTask as s}from"../../app-binder/task/SendSignMessageTask";const o="44'/501'/0'/0'",c=new Uint8Array(32).fill(17),g=x.encode(c);function y(){return{_tag:"SolanaAppCommandError",errorCode:"6a81",message:"Invalid off-chain message header"}}describe("SendSignMessageTask",()=>{const n=h();beforeEach(()=>{vi.resetAllMocks()}),describe("run()",()=>{it("errors on empty message before any device call",async()=>{const e=await new s(n,{derivationPath:o,sendingData:new Uint8Array([])}).run();expect(n.sendCommand).toHaveBeenCalledTimes(0),expect(e.error).toEqual(new m("Message cannot be empty"))}),it("errors when GET_PUBKEY fails",async()=>{n.sendCommand.mockResolvedValueOnce(r({error:new m("pubkey error")}));const e=await new s(n,{derivationPath:o,sendingData:new Uint8Array([1,2,3])}).run();expect(n.sendCommand).toHaveBeenCalledTimes(1),expect(e.error).toEqual(new m("Error getting public key from device"))}),it("surfaces command error when signing fails",async()=>{n.sendCommand.mockResolvedValueOnce(r({data:g})).mockResolvedValueOnce(r({error:new m("no signature returned")}));const e=await new s(n,{derivationPath:o,sendingData:new Uint8Array([170,187])}).run();expect(n.sendCommand).toHaveBeenCalledTimes(2),expect(e.error).toEqual(new m("no signature returned"))}),it("returns base58 envelope when signing succeeds",async()=>{const e=new Uint8Array([240,202,204,26]),a=new Uint8Array(64).fill(51);n.sendCommand.mockResolvedValueOnce(r({data:g})).mockResolvedValueOnce(r({data:a}));const t=new s(n,{derivationPath:o,sendingData:e}),i=t._buildFullMessage(e,c,!1),d=await t.run();expect(n.sendCommand).toHaveBeenCalledTimes(2),expect("data"in d).toBe(!0);const w=d.data.signature,l=new Uint8Array(1+a.length+i.length);l.set(Uint8Array.of(1),0),l.set(a,1),l.set(i,1+a.length),expect(x.decode(w)).toEqual(l)}),it("rejects invalid derivation path",async()=>{const e={derivationPath:"not/a/path",sendingData:new Uint8Array([1])};await expect(new s(n,e).run()).rejects.toThrow()}),it("builds APDU command with correct structure (prefix + tail)",()=>{const e=new Uint8Array([1,2,3]),a=new s(n,{derivationPath:o,sendingData:e}),t=a._buildFullMessage(e,c,!1),i=[-2147483604,-2147483147,-2147483648,0],d=a._buildApduCommand(t,i);expect(d[0]).toBe(1),expect(d[1]).toBe(i.length),expect(d.slice(d.length-t.length)).toEqual(t)}),it("handles large messages via chunking (no exact call count assertion)",async()=>{const e=new Uint8Array(4e3).fill(1),a=new Uint8Array(64).fill(68);n.sendCommand.mockResolvedValueOnce(r({data:g})).mockResolvedValue(r({data:a}));const t=await new s(n,{derivationPath:o,sendingData:e}).run();expect("data"in t).toBe(!0)}),it("errors on message exceeding v0 max (65515)",async()=>{const e=new Uint8Array(v+1).fill(170),a=await new s(n,{derivationPath:o,sendingData:e}).run();expect(n.sendCommand).toHaveBeenCalledTimes(0),expect(a.error).toEqual(new m(`Message too long: ${e.length} bytes (max is ${v})`))}),it("falls back to legacy when v0 returns 6a81 (header error)",async()=>{const e=new Uint8Array([97,98,99]),a=new Uint8Array(64).fill(85);n.sendCommand.mockResolvedValueOnce(r({data:g})).mockResolvedValueOnce(r({error:y()})).mockResolvedValueOnce(r({data:a}));const t=new s(n,{derivationPath:o,sendingData:e}),i=t._buildFullMessage(e,c,!0),d=await t.run();expect(n.sendCommand).toHaveBeenCalledTimes(3);const w=d.data.signature,l=new Uint8Array(1+a.length+i.length);l.set(Uint8Array.of(1),0),l.set(a,1),l.set(i,1+a.length),expect(x.decode(w)).toEqual(l)}),it("does NOT fallback on non-6a81 errors",async()=>{n.sendCommand.mockResolvedValueOnce(r({data:g})).mockResolvedValueOnce(r({error:new m("oups")}));const e=await new s(n,{derivationPath:o,sendingData:new Uint8Array([1,2])}).run();expect(n.sendCommand).toHaveBeenCalledTimes(2),expect(e.error).toBeInstanceOf(m)}),it("propagates 6a81 if body is too large for legacy",async()=>{const e=new Uint8Array(2e3).fill(49);n.sendCommand.mockResolvedValueOnce(r({data:g})).mockResolvedValueOnce(r({error:y()}));const a=await new s(n,{derivationPath:o,sendingData:e}).run();expect(n.sendCommand).toHaveBeenCalledTimes(2),expect(a.error).toEqual(y())})}),describe("message format detection (indirect via header byte)",()=>{it("sets format=0 for ASCII \u2264 maxLedgerLen (v0 header)",()=>{const e=new TextEncoder().encode(`hello
2
+ world`),t=new s(n,{derivationPath:o,sendingData:e})._buildFullMessage(e,c,!1);expect(t[49]).toBe(u.Ascii)}),it("sets format=1 for short UTF-8 non-ASCII (v0 header)",()=>{const e=new TextEncoder().encode("h\xE9ll\xF8"),t=new s(n,{derivationPath:o,sendingData:e})._buildFullMessage(e,c,!1);expect(t[49]).toBe(u.Utf8)}),it("sets format=2 for long UTF-8 (v0 header)",()=>{const e=new TextEncoder().encode("x".repeat(15313)),t=new s(n,{derivationPath:o,sendingData:e})._buildFullMessage(e,c,!1);expect(t[49]).toBe(u.Utf8LongV0)}),it("legacy header forbids newline in ASCII (so format becomes UTF-8=1)",()=>{const e=new TextEncoder().encode(`hello
3
+ world`),t=new s(n,{derivationPath:o,sendingData:e})._buildFullMessage(e,c,!0);expect(t[17]).toBe(u.Utf8)}),it("legacy header sets format=0 for plain ASCII (no newline)",()=>{const e=new TextEncoder().encode("HELLO_123"),t=new s(n,{derivationPath:o,sendingData:e})._buildFullMessage(e,c,!0);expect(t[17]).toBe(u.Ascii)}),it("message length is little-endian in both headers",()=>{const e=new Uint8Array([1,2,3]),a=new s(n,{derivationPath:o,sendingData:e}),t=a._buildFullMessage(e,c,!1);expect(t[83]).toBe(3),expect(t[84]).toBe(0);const i=a._buildFullMessage(e,c,!0);expect(i[18]).toBe(3),expect(i[19]).toBe(0)})}),it("returns error when device returns non-64-byte signature on final chunk",async()=>{const e=new Uint8Array([1,2,3]);n.sendCommand.mockResolvedValueOnce(r({data:g})).mockResolvedValueOnce(r({data:new Uint8Array(0)}));const a=await new s(n,{derivationPath:o,sendingData:e}).run();expect("error"in a).toBe(!0);const t=a.error;expect(t).toBeInstanceOf(m)})});
2
4
  //# sourceMappingURL=SendSignMessageTask.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/task/SendSignMessageTask.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { SendSignMessageTask } from \"@internal/app-binder/task/SendSignMessageTask\";\n\nconst DERIVATION_PATH = \"44'/501'/0'/0'\";\n\ndescribe(\"SendSignMessageTask\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n const SIMPLE_MESSAGE = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n\n describe(\"run with SignOffChainMessageCommand\", () => {\n it(\"should return an error if the command fails\", async () => {\n // GIVEN-------------------------------\n //-------------------------------------\n const args = {\n derivationPath: DERIVATION_PATH,\n sendingData: SIMPLE_MESSAGE,\n };\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"no signature returned\"),\n }),\n );\n\n // WHEN--------------------------------\n //-------------------------------------\n const result = await new SendSignMessageTask(apiMock, args).run();\n\n // THEN--------------------------------\n //-------------------------------------\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(result).toMatchObject({\n error: new InvalidStatusWordError(\"no signature returned\"),\n });\n });\n\n it(\"should return success when the command executes successfully\", async () => {\n // GIVEN-------------------------------\n //-------------------------------------\n const args = {\n derivationPath: DERIVATION_PATH,\n sendingData: SIMPLE_MESSAGE,\n };\n const expectedSignature = new Uint8Array([0xaa, 0xbb, 0xcc, 0xdd]);\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n data: expectedSignature,\n }),\n );\n\n // WHEN--------------------------------\n //-------------------------------------\n const result = await new SendSignMessageTask(apiMock, args).run();\n\n // THEN--------------------------------\n //-------------------------------------\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(result).toMatchObject({\n data: expectedSignature,\n });\n });\n\n it(\"should handle invalid derivation paths\", async () => {\n // GIVEN-------------------------------\n //-------------------------------------\n const invalidDerivationPath = \"invalid/path\";\n const args = {\n derivationPath: invalidDerivationPath,\n sendingData: SIMPLE_MESSAGE,\n };\n\n // WHEN--------------------------------\n //-------------------------------------\n const task = new SendSignMessageTask(apiMock, args);\n\n // THEN--------------------------------\n //-------------------------------------\n await expect(task.run()).rejects.toThrowError();\n });\n\n it(\"should handle empty message data\", async () => {\n // GIVEN-------------------------------\n //-------------------------------------\n const emptyMessage = new Uint8Array([]);\n const args = {\n derivationPath: DERIVATION_PATH,\n sendingData: emptyMessage,\n };\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n data: new Uint8Array([]),\n }),\n );\n\n // WHEN--------------------------------\n //-------------------------------------\n const result = await new SendSignMessageTask(apiMock, args).run();\n\n // THEN--------------------------------\n //-------------------------------------\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n if (\"data\" in result) {\n expect(result.data).toEqual(new Uint8Array([]));\n } else {\n throw new Error(\"Expected result to have data property\");\n }\n });\n\n it(\"should correctly build the APDU command\", () => {\n // GIVEN-------------------------------\n //-------------------------------------\n const args = {\n derivationPath: DERIVATION_PATH,\n sendingData: SIMPLE_MESSAGE,\n };\n const task = new SendSignMessageTask(apiMock, args);\n const fullMessage = task[\"_buildFullMessage\"](SIMPLE_MESSAGE);\n const paths = [44 | 0x80000000, 501 | 0x80000000, 0 | 0x80000000, 0];\n const commandBuffer = task[\"_buildApduCommand\"](fullMessage, paths);\n\n // WHEN--------------------------------\n //-------------------------------------\n const expectedCommandLength =\n 1 + // numberOfSigners\n 1 + // numberOfDerivations\n paths.length * 4 + // paths\n fullMessage.length; // message\n\n // THEN--------------------------------\n //-------------------------------------\n expect(commandBuffer.length).toEqual(expectedCommandLength);\n });\n\n it(\"should handle messages with maximum allowed length\", async () => {\n // GIVEN-------------------------------\n //-------------------------------------\n const headerSize =\n 1 + // numberOfSigners\n 1 + // numberOfDerivations\n 4 * 4; // paths\n const fullMessageHeaderSize =\n 1 +\n 15 + // prefix\n 4; // length\n const maxLengthMessage = new Uint8Array(\n 255 - headerSize - fullMessageHeaderSize,\n ).fill(0x01);\n const args = {\n derivationPath: DERIVATION_PATH,\n sendingData: maxLengthMessage,\n };\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n data: new Uint8Array([0x99, 0x88, 0x77]),\n }),\n );\n\n // WHEN--------------------------------\n //-------------------------------------\n const result = await new SendSignMessageTask(apiMock, args).run();\n\n // THEN--------------------------------\n //-------------------------------------\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n if (\"data\" in result) {\n expect(result.data).toEqual(new Uint8Array([0x99, 0x88, 0x77]));\n } else {\n throw new Error(\"Expected result to have data property\");\n }\n });\n\n it(\"should fail messages if too big\", async () => {\n // GIVEN-------------------------------\n //-------------------------------------\n const headerSize =\n 1 + // numberOfSigners\n 1 + // numberOfDerivations\n 4 * 4; // paths\n const fullMessageHeaderSize =\n 1 +\n 15 + // prefix\n 4; // length\n const maxLengthMessage = new Uint8Array(\n 256 - headerSize - fullMessageHeaderSize,\n ).fill(0x01);\n const args = {\n derivationPath: DERIVATION_PATH,\n sendingData: maxLengthMessage,\n };\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n data: new Uint8Array([0x99, 0x88, 0x77]),\n }),\n );\n\n // WHEN--------------------------------\n //-------------------------------------\n const result = await new SendSignMessageTask(apiMock, args).run();\n\n // THEN--------------------------------\n //-------------------------------------\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(0);\n if (\"error\" in result) {\n expect(result.error).toEqual(\n new InvalidStatusWordError(\n \"The APDU command exceeds the maximum allowable size (255 bytes)\",\n ),\n );\n } else {\n throw new Error(\"Expected result to have error property\");\n }\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["CommandResultFactory", "InvalidStatusWordError", "makeDeviceActionInternalApiMock", "SendSignMessageTask", "DERIVATION_PATH", "apiMock", "SIMPLE_MESSAGE", "args", "result", "expectedSignature", "task", "emptyMessage", "fullMessage", "paths", "commandBuffer", "expectedCommandLength", "maxLengthMessage"]
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { DefaultBs58Encoder } from \"@internal/app-binder/services/bs58Encoder\";\nimport {\n MAX_MESSAGE_LENGTH,\n MessageFormat,\n SendSignMessageTask,\n} from \"@internal/app-binder/task/SendSignMessageTask\";\n\nconst DERIVATION_PATH = \"44'/501'/0'/0'\";\nconst PUBKEY = new Uint8Array(32).fill(0x11);\nconst PUBKEY_BASE58 = DefaultBs58Encoder.encode(PUBKEY);\n\nfunction solanaHeaderErr() {\n return {\n _tag: \"SolanaAppCommandError\",\n errorCode: \"6a81\",\n message: \"Invalid off-chain message header\",\n } as const;\n}\n\ndescribe(\"SendSignMessageTask\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"run()\", () => {\n it(\"errors on empty message before any device call\", async () => {\n const result = await new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: new Uint8Array([]),\n }).run();\n\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(0);\n expect((result as any).error).toEqual(\n new InvalidStatusWordError(\"Message cannot be empty\"),\n );\n });\n\n it(\"errors when GET_PUBKEY fails\", async () => {\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"pubkey error\"),\n }),\n );\n\n const res = await new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: new Uint8Array([1, 2, 3]),\n }).run();\n\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect((res as any).error).toEqual(\n new InvalidStatusWordError(\"Error getting public key from device\"),\n );\n });\n\n it(\"surfaces command error when signing fails\", async () => {\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: PUBKEY_BASE58 })) // pubkey\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"no signature returned\"),\n }),\n );\n\n const res = await new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: new Uint8Array([0xaa, 0xbb]),\n }).run();\n\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n expect((res as any).error).toEqual(\n new InvalidStatusWordError(\"no signature returned\"),\n );\n });\n\n it(\"returns base58 envelope when signing succeeds\", async () => {\n // given\n const msg = new Uint8Array([0xf0, 0xca, 0xcc, 0x1a]);\n const rawSig = new Uint8Array(64).fill(0x33); // mock 64-byte signature\n\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: PUBKEY_BASE58 })) // pubkey\n .mockResolvedValueOnce(CommandResultFactory({ data: rawSig })); // v0 last chunk\n\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: msg,\n });\n const v0OCM: Uint8Array = task._buildFullMessage(msg, PUBKEY, false);\n\n // when\n const res = await task.run();\n\n // then\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n expect(\"data\" in res).toBe(true);\n const b58 = (res as any).data.signature as string;\n\n // expected envelope = [1][rawSig][v0OCM]\n const expected = new Uint8Array(1 + rawSig.length + v0OCM.length);\n expected.set(Uint8Array.of(1), 0);\n expected.set(rawSig, 1);\n expected.set(v0OCM, 1 + rawSig.length);\n\n expect(DefaultBs58Encoder.decode(b58)).toEqual(expected);\n });\n\n it(\"rejects invalid derivation path\", async () => {\n const args = {\n derivationPath: \"not/a/path\",\n sendingData: new Uint8Array([1]),\n };\n await expect(\n new SendSignMessageTask(apiMock, args).run(),\n ).rejects.toThrow();\n });\n\n it(\"builds APDU command with correct structure (prefix + tail)\", () => {\n const msg = new Uint8Array([1, 2, 3]);\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: msg,\n });\n\n const fullMsg = task._buildFullMessage(msg, PUBKEY, false);\n const paths = [44 | 0x80000000, 501 | 0x80000000, 0 | 0x80000000, 0];\n const apdu = task._buildApduCommand(fullMsg, paths);\n\n // first byte: number of signers\n expect(apdu[0]).toBe(1);\n // second byte: number of derivation indices\n expect(apdu[1]).toBe(paths.length);\n // tail equals the serialized OCM\n expect(apdu.slice(apdu.length - fullMsg.length)).toEqual(fullMsg);\n });\n\n it(\"handles large messages via chunking (no exact call count assertion)\", async () => {\n const bigMsg = new Uint8Array(4000).fill(0x01);\n const rawSig = new Uint8Array(64).fill(0x44);\n\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: PUBKEY_BASE58 })) // pubkey\n .mockResolvedValue(CommandResultFactory({ data: rawSig })); // all subsequent chunks\n\n const res = await new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: bigMsg,\n }).run();\n\n expect(\"data\" in res).toBe(true);\n });\n\n it(\"errors on message exceeding v0 max (65515)\", async () => {\n const tooBig = new Uint8Array(MAX_MESSAGE_LENGTH + 1).fill(0xaa);\n const res = await new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: tooBig,\n }).run();\n\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(0);\n expect((res as any).error).toEqual(\n new InvalidStatusWordError(\n `Message too long: ${tooBig.length} bytes (max is ${MAX_MESSAGE_LENGTH})`,\n ),\n );\n });\n\n it(\"falls back to legacy when v0 returns 6a81 (header error)\", async () => {\n // given\n const msg = new Uint8Array([0x61, 0x62, 0x63]); // \"abc\"\n const rawSig = new Uint8Array(64).fill(0x55);\n\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: PUBKEY_BASE58 })) // pubkey\n .mockResolvedValueOnce(\n CommandResultFactory({ error: solanaHeaderErr() as any }),\n ) // v0 -> 6a81\n .mockResolvedValueOnce(CommandResultFactory({ data: rawSig })); // legacy -> OK\n\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: msg,\n });\n\n // build expected LEGACY OCM to verify envelope\n const legacyOCM: Uint8Array = task._buildFullMessage(msg, PUBKEY, true);\n\n // when\n const res = await task.run();\n\n // then\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(3); // pubkey + v0 + legacy\n const b58 = (res as any).data.signature as string;\n\n const expected = new Uint8Array(1 + rawSig.length + legacyOCM.length);\n expected.set(Uint8Array.of(1), 0);\n expected.set(rawSig, 1);\n expected.set(legacyOCM, 1 + rawSig.length);\n\n expect(DefaultBs58Encoder.decode(b58)).toEqual(expected);\n });\n\n it(\"does NOT fallback on non-6a81 errors\", async () => {\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: PUBKEY_BASE58 }))\n .mockResolvedValueOnce(\n CommandResultFactory({ error: new InvalidStatusWordError(\"oups\") }),\n );\n\n const res = await new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: new Uint8Array([1, 2]),\n }).run();\n\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n expect((res as any).error).toBeInstanceOf(InvalidStatusWordError);\n });\n\n it(\"propagates 6a81 if body is too large for legacy\", async () => {\n const msg = new Uint8Array(2000).fill(0x31); // > 1232 legacy limit\n\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: PUBKEY_BASE58 })) // pubkey\n .mockResolvedValueOnce(\n CommandResultFactory({ error: solanaHeaderErr() as any }),\n ); // v0 -> 6a81\n\n const res = await new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: msg,\n }).run();\n\n // no legacy retry\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n expect((res as any).error).toEqual(solanaHeaderErr());\n });\n });\n\n describe(\"message format detection (indirect via header byte)\", () => {\n it(\"sets format=0 for ASCII \u2264 maxLedgerLen (v0 header)\", () => {\n const ascii = new TextEncoder().encode(\"hello\\nworld\"); // newline allowed in non-legacy\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: ascii,\n });\n const v0 = task._buildFullMessage(ascii, PUBKEY, false);\n // in v0 format byte is at offset: 16 (domain) + 1 (ver) + 32 (app) = 49\n expect(v0[49]).toBe(MessageFormat.Ascii);\n });\n\n it(\"sets format=1 for short UTF-8 non-ASCII (v0 header)\", () => {\n const utf8 = new TextEncoder().encode(\"h\u00E9ll\u00F8\");\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: utf8,\n });\n const v0 = task._buildFullMessage(utf8, PUBKEY, false);\n expect(v0[49]).toBe(MessageFormat.Utf8);\n });\n\n it(\"sets format=2 for long UTF-8 (v0 header)\", () => {\n // must exceed OFFCM_MAX_LEDGER_LEN to get format=2\n const longUtf8 = new TextEncoder().encode(\"x\".repeat(15313));\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: longUtf8,\n });\n const v0 = task._buildFullMessage(longUtf8, PUBKEY, false);\n expect(v0[49]).toBe(MessageFormat.Utf8LongV0);\n });\n\n it(\"legacy header forbids newline in ASCII (so format becomes UTF-8=1)\", () => {\n const asciiWithNl = new TextEncoder().encode(\"hello\\nworld\");\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: asciiWithNl,\n });\n const legacy = task._buildFullMessage(asciiWithNl, PUBKEY, true);\n // in legacy: format byte is at offset 16 (domain) + 1 (ver) = 17\n expect(legacy[17]).toBe(MessageFormat.Utf8);\n });\n\n it(\"legacy header sets format=0 for plain ASCII (no newline)\", () => {\n const ascii = new TextEncoder().encode(\"HELLO_123\");\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: ascii,\n });\n const legacy = task._buildFullMessage(ascii, PUBKEY, true);\n expect(legacy[17]).toBe(MessageFormat.Ascii);\n });\n\n it(\"message length is little-endian in both headers\", () => {\n const body = new Uint8Array([1, 2, 3]); // length = 3\n const task: any = new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: body,\n });\n\n // v0 offsets:\n // length starts at: 16(domain) + 1(ver) + 32(app) + 1(format) + 1(count) + 32(pubkey) = 83\n const v0 = task._buildFullMessage(body, PUBKEY, false);\n expect(v0[83]).toBe(3); // LSB (0x03)\n expect(v0[84]).toBe(0); // MSB (0x00)\n\n // legacy offsets:\n // length starts at: 16(domain) + 1(ver) + 1(format) = 18\n const legacy = task._buildFullMessage(body, PUBKEY, true);\n expect(legacy[18]).toBe(3); // LSB (0x03)\n expect(legacy[19]).toBe(0); // MSB (0x00)\n });\n });\n\n it(\"returns error when device returns non-64-byte signature on final chunk\", async () => {\n const msg = new Uint8Array([1, 2, 3]);\n\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: PUBKEY_BASE58 }))\n .mockResolvedValueOnce(CommandResultFactory({ data: new Uint8Array(0) }));\n\n const res = await new SendSignMessageTask(apiMock, {\n derivationPath: DERIVATION_PATH,\n sendingData: msg,\n }).run();\n\n expect(\"error\" in res).toBe(true);\n\n const err = (res as any).error as unknown;\n expect(err).toBeInstanceOf(InvalidStatusWordError);\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["CommandResultFactory", "InvalidStatusWordError", "makeDeviceActionInternalApiMock", "DefaultBs58Encoder", "MAX_MESSAGE_LENGTH", "MessageFormat", "SendSignMessageTask", "DERIVATION_PATH", "PUBKEY", "PUBKEY_BASE58", "solanaHeaderErr", "apiMock", "result", "res", "msg", "rawSig", "task", "v0OCM", "b58", "expected", "args", "fullMsg", "paths", "apdu", "bigMsg", "tooBig", "legacyOCM", "ascii", "v0", "utf8", "longUtf8", "asciiWithNl", "legacy", "body", "err"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Container as i}from"inversify";import{appBinderModuleFactory as r}from"./app-binder/di/appBinderModule";import{useCasesModuleFactory as a}from"./use-cases/di/useCasesModule";import{externalTypes as o}from"./externalTypes";const c=({dmk:n,sessionId:t})=>{const e=new i;return e.bind(o.Dmk).toConstantValue(n),e.bind(o.SessionId).toConstantValue(t),e.load(r(),a()),e};export{c as makeContainer};
1
+ import{Container as r}from"inversify";import{appBinderModuleFactory as a}from"./app-binder/di/appBinderModule";import{useCasesModuleFactory as s}from"./use-cases/di/useCasesModule";import{externalTypes as o}from"./externalTypes";const l=({dmk:t,sessionId:n,contextModule:i})=>{const e=new r;return e.bind(o.Dmk).toConstantValue(t),e.bind(o.SessionId).toConstantValue(n),e.bind(o.ContextModule).toConstantValue(i),e.loadSync(a(),s()),e};export{l as makeContainer};
2
2
  //# sourceMappingURL=di.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/di.ts"],
4
- "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { Container } from \"inversify\";\n\n// import { makeLoggerMiddleware } from \"inversify-logger-middleware\";\nimport { appBinderModuleFactory } from \"./app-binder/di/appBinderModule\";\nimport { useCasesModuleFactory } from \"./use-cases/di/useCasesModule\";\nimport { externalTypes } from \"./externalTypes\";\n\n// Uncomment this line to enable the logger middleware\n// const logger = makeLoggerMiddleware();\n\nexport type MakeContainerProps = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\nexport const makeContainer = ({ dmk, sessionId }: MakeContainerProps) => {\n const container = new Container();\n\n // Uncomment this line to enable the logger middleware\n // container.applyMiddleware(logger);\n\n container.bind<DeviceManagementKit>(externalTypes.Dmk).toConstantValue(dmk);\n container\n .bind<DeviceSessionId>(externalTypes.SessionId)\n .toConstantValue(sessionId);\n\n container.load(appBinderModuleFactory(), useCasesModuleFactory());\n\n return container;\n};\n"],
5
- "mappings": "AAIA,OAAS,aAAAA,MAAiB,YAG1B,OAAS,0BAAAC,MAA8B,kCACvC,OAAS,yBAAAC,MAA6B,gCACtC,OAAS,iBAAAC,MAAqB,kBASvB,MAAMC,EAAgB,CAAC,CAAE,IAAAC,EAAK,UAAAC,CAAU,IAA0B,CACvE,MAAMC,EAAY,IAAIP,EAKtB,OAAAO,EAAU,KAA0BJ,EAAc,GAAG,EAAE,gBAAgBE,CAAG,EAC1EE,EACG,KAAsBJ,EAAc,SAAS,EAC7C,gBAAgBG,CAAS,EAE5BC,EAAU,KAAKN,EAAuB,EAAGC,EAAsB,CAAC,EAEzDK,CACT",
6
- "names": ["Container", "appBinderModuleFactory", "useCasesModuleFactory", "externalTypes", "makeContainer", "dmk", "sessionId", "container"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { Container } from \"inversify\";\n\nimport { appBinderModuleFactory } from \"./app-binder/di/appBinderModule\";\nimport { useCasesModuleFactory } from \"./use-cases/di/useCasesModule\";\nimport { externalTypes } from \"./externalTypes\";\n\nexport type MakeContainerProps = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n contextModule: ContextModule;\n};\nexport const makeContainer = ({\n dmk,\n sessionId,\n contextModule,\n}: MakeContainerProps) => {\n const container = new Container();\n\n container.bind<DeviceManagementKit>(externalTypes.Dmk).toConstantValue(dmk);\n container\n .bind<DeviceSessionId>(externalTypes.SessionId)\n .toConstantValue(sessionId);\n container\n .bind<ContextModule>(externalTypes.ContextModule)\n .toConstantValue(contextModule);\n\n container.loadSync(appBinderModuleFactory(), useCasesModuleFactory());\n\n return container;\n};\n"],
5
+ "mappings": "AAKA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,kCACvC,OAAS,yBAAAC,MAA6B,gCACtC,OAAS,iBAAAC,MAAqB,kBAOvB,MAAMC,EAAgB,CAAC,CAC5B,IAAAC,EACA,UAAAC,EACA,cAAAC,CACF,IAA0B,CACxB,MAAMC,EAAY,IAAIR,EAEtB,OAAAQ,EAAU,KAA0BL,EAAc,GAAG,EAAE,gBAAgBE,CAAG,EAC1EG,EACG,KAAsBL,EAAc,SAAS,EAC7C,gBAAgBG,CAAS,EAC5BE,EACG,KAAoBL,EAAc,aAAa,EAC/C,gBAAgBI,CAAa,EAEhCC,EAAU,SAASP,EAAuB,EAAGC,EAAsB,CAAC,EAE7DM,CACT",
6
+ "names": ["Container", "appBinderModuleFactory", "useCasesModuleFactory", "externalTypes", "makeContainer", "dmk", "sessionId", "contextModule", "container"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const o={Dmk:Symbol.for("Dmk"),SessionId:Symbol.for("SessionId")};export{o as externalTypes};
1
+ const o={Dmk:Symbol.for("Dmk"),SessionId:Symbol.for("SessionId"),ContextModule:Symbol.for("ContextModule")};export{o as externalTypes};
2
2
  //# sourceMappingURL=externalTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/externalTypes.ts"],
4
- "sourcesContent": ["export const externalTypes = {\n Dmk: Symbol.for(\"Dmk\"),\n SessionId: Symbol.for(\"SessionId\"),\n};\n"],
5
- "mappings": "AAAO,MAAMA,EAAgB,CAC3B,IAAK,OAAO,IAAI,KAAK,EACrB,UAAW,OAAO,IAAI,WAAW,CACnC",
4
+ "sourcesContent": ["export const externalTypes = {\n Dmk: Symbol.for(\"Dmk\"),\n SessionId: Symbol.for(\"SessionId\"),\n ContextModule: Symbol.for(\"ContextModule\"),\n};\n"],
5
+ "mappings": "AAAO,MAAMA,EAAgB,CAC3B,IAAK,OAAO,IAAI,KAAK,EACrB,UAAW,OAAO,IAAI,WAAW,EACjC,cAAe,OAAO,IAAI,eAAe,CAC3C",
6
6
  "names": ["externalTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=(i,r,p,t)=>{for(var e=t>1?void 0:t?s(r,p):r,o=i.length-1,c;o>=0;o--)(c=i[o])&&(e=(t?c(r,p,e):c(e))||e);return t&&e&&a(r,p,e),e},m=(i,r)=>(p,t)=>r(p,t,i);import{inject as A,injectable as f}from"inversify";import{appBinderTypes as B}from"../../app-binder/di/appBinderTypes";let n=class{constructor(r){this.appBinder=r}execute(r,p){return this.appBinder.getAddress({derivationPath:r,checkOnDevice:p?.checkOnDevice??!1})}};n=d([f(),m(0,A(B.AppBinder))],n);export{n as GetAddressUseCase};
1
+ var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=(n,p,e,i)=>{for(var r=i>1?void 0:i?s(p,e):p,o=n.length-1,c;o>=0;o--)(c=n[o])&&(r=(i?c(p,e,r):c(r))||r);return i&&r&&a(p,e,r),r},m=(n,p)=>(e,i)=>p(e,i,n);import{inject as A,injectable as f}from"inversify";import{appBinderTypes as l}from"../../app-binder/di/appBinderTypes";let t=class{constructor(p){this.appBinder=p}execute(p,e){return this.appBinder.getAddress({derivationPath:p,checkOnDevice:e?.checkOnDevice??!1,skipOpenApp:e?.skipOpenApp??!1})}};t=d([f(),m(0,A(l.AppBinder))],t);export{t as GetAddressUseCase};
2
2
  //# sourceMappingURL=GetAddressUseCase.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/address/GetAddressUseCase.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOption\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class GetAddressUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this.appBinder.getAddress({\n derivationPath,\n checkOnDevice: options?.checkOnDevice ?? false,\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAwB,CAC7B,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EACwB,CACxB,OAAO,KAAK,UAAU,WAAW,CAC/B,eAAAD,EACA,cAAeC,GAAS,eAAiB,EAC3C,CAAC,CACH,CACF,EAdaH,EAANI,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAFvBR",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOption\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class GetAddressUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this.appBinder.getAddress({\n derivationPath,\n checkOnDevice: options?.checkOnDevice ?? false,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAwB,CAC7B,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EACwB,CACxB,OAAO,KAAK,UAAU,WAAW,CAC/B,eAAAD,EACA,cAAeC,GAAS,eAAiB,GACzC,YAAaA,GAAS,aAAe,EACvC,CAAC,CACH,CACF,EAfaH,EAANI,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAFvBR",
6
6
  "names": ["inject", "injectable", "appBinderTypes", "GetAddressUseCase", "appBinder", "derivationPath", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{GetAddressUseCase as a}from"./GetAddressUseCase";describe("GetAddressUseCase",()=>{const e="44'/501'",s="some-address",t=vi.fn().mockReturnValue(s),o={getAddress:t};let d;beforeEach(()=>{vi.clearAllMocks(),d=new a(o)}),it("should return the address from the appBinder's getAddress method",()=>{const c=d.execute(e,{checkOnDevice:!0});expect(c).toEqual(s),expect(t).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!0})}),it("should return the address from the appBinder's getAddress method with default options",()=>{const r=d.execute(e);expect(r).toEqual(s),expect(t).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!1})})});
1
+ import{GetAddressUseCase as p}from"./GetAddressUseCase";describe("GetAddressUseCase",()=>{const e="44'/501'",s="some-address",t=vi.fn().mockReturnValue(s),r={getAddress:t};let d;beforeEach(()=>{vi.clearAllMocks(),d=new p(r)}),it("should return the address from the appBinder's getAddress method",()=>{const o=d.execute(e,{checkOnDevice:!0,skipOpenApp:!0});expect(o).toEqual(s),expect(t).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!0,skipOpenApp:!0})}),it("should return the address from the appBinder's getAddress method with default options",()=>{const n=d.execute(e);expect(n).toEqual(s),expect(t).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!1,skipOpenApp:!1})})});
2
2
  //# sourceMappingURL=GetAddressUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/address/GetAddressUseCase.test.ts"],
4
- "sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { GetAddressUseCase } from \"./GetAddressUseCase\";\n\ndescribe(\"GetAddressUseCase\", () => {\n const derivationPath = \"44'/501'\";\n const address = \"some-address\";\n const getAddressMock = vi.fn().mockReturnValue(address);\n const appBinderMock = {\n getAddress: getAddressMock,\n } as unknown as SolanaAppBinder;\n let useCase: GetAddressUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new GetAddressUseCase(appBinderMock);\n });\n\n it(\"should return the address from the appBinder's getAddress method\", () => {\n // GIVEN\n const checkOnDevice = true;\n\n // WHEN\n const result = useCase.execute(derivationPath, { checkOnDevice });\n\n // THEN\n expect(result).toEqual(address);\n expect(getAddressMock).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice,\n });\n });\n\n it(\"should return the address from the appBinder's getAddress method with default options\", () => {\n // WHEN\n const result = useCase.execute(derivationPath);\n\n // THEN\n expect(result).toEqual(address);\n expect(getAddressMock).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice: false,\n });\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,qBAAAA,MAAyB,sBAElC,SAAS,oBAAqB,IAAM,CAClC,MAAMC,EAAiB,WACjBC,EAAU,eACVC,EAAiB,GAAG,GAAG,EAAE,gBAAgBD,CAAO,EAChDE,EAAgB,CACpB,WAAYD,CACd,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIL,EAAkBI,CAAa,CAC/C,CAAC,EAED,GAAG,mEAAoE,IAAM,CAK3E,MAAME,EAASD,EAAQ,QAAQJ,EAAgB,CAAE,gBAAc,CAAC,EAGhE,OAAOK,CAAM,EAAE,QAAQJ,CAAO,EAC9B,OAAOC,CAAc,EAAE,qBAAqB,CAC1C,eAAAF,EACA,gBACF,CAAC,CACH,CAAC,EAED,GAAG,wFAAyF,IAAM,CAEhG,MAAMK,EAASD,EAAQ,QAAQJ,CAAc,EAG7C,OAAOK,CAAM,EAAE,QAAQJ,CAAO,EAC9B,OAAOC,CAAc,EAAE,qBAAqB,CAC1C,eAAAF,EACA,cAAe,EACjB,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { GetAddressUseCase } from \"./GetAddressUseCase\";\n\ndescribe(\"GetAddressUseCase\", () => {\n const derivationPath = \"44'/501'\";\n const address = \"some-address\";\n const getAddressMock = vi.fn().mockReturnValue(address);\n const appBinderMock = {\n getAddress: getAddressMock,\n } as unknown as SolanaAppBinder;\n let useCase: GetAddressUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new GetAddressUseCase(appBinderMock);\n });\n\n it(\"should return the address from the appBinder's getAddress method\", () => {\n // GIVEN\n const checkOnDevice = true;\n const skipOpenApp = true;\n\n // WHEN\n const result = useCase.execute(derivationPath, {\n checkOnDevice,\n skipOpenApp,\n });\n\n // THEN\n expect(result).toEqual(address);\n expect(getAddressMock).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice,\n skipOpenApp,\n });\n });\n\n it(\"should return the address from the appBinder's getAddress method with default options\", () => {\n // WHEN\n const result = useCase.execute(derivationPath);\n\n // THEN\n expect(result).toEqual(address);\n expect(getAddressMock).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice: false,\n skipOpenApp: false,\n });\n });\n});\n"],
5
+ "mappings": "AAEA,OAAS,qBAAAA,MAAyB,sBAElC,SAAS,oBAAqB,IAAM,CAClC,MAAMC,EAAiB,WACjBC,EAAU,eACVC,EAAiB,GAAG,GAAG,EAAE,gBAAgBD,CAAO,EAChDE,EAAgB,CACpB,WAAYD,CACd,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIL,EAAkBI,CAAa,CAC/C,CAAC,EAED,GAAG,mEAAoE,IAAM,CAM3E,MAAME,EAASD,EAAQ,QAAQJ,EAAgB,CAC7C,iBACA,cACF,CAAC,EAGD,OAAOK,CAAM,EAAE,QAAQJ,CAAO,EAC9B,OAAOC,CAAc,EAAE,qBAAqB,CAC1C,eAAAF,EACA,iBACA,cACF,CAAC,CACH,CAAC,EAED,GAAG,wFAAyF,IAAM,CAEhG,MAAMK,EAASD,EAAQ,QAAQJ,CAAc,EAG7C,OAAOK,CAAM,EAAE,QAAQJ,CAAO,EAC9B,OAAOC,CAAc,EAAE,qBAAqB,CAC1C,eAAAF,EACA,cAAe,GACf,YAAa,EACf,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["GetAddressUseCase", "derivationPath", "address", "getAddressMock", "appBinderMock", "useCase", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ContainerModule as o}from"inversify";import{GetAddressUseCase as t}from"../../use-cases/address/GetAddressUseCase";import{GetAppConfigurationUseCase as n}from"../../use-cases/app-configuration/GetAppConfigurationUseCase";import{useCasesTypes as s}from"../../use-cases/di/useCasesTypes";import{SignMessageUseCase as a}from"../../use-cases/message/SignMessageUseCase";import{SignTransactionUseCase as i}from"../../use-cases/transaction/SignTransactionUseCase";const G=()=>new o((e,r,C,m,p,u,f)=>{e(s.GetAddressUseCase).to(t),e(s.GetAppConfigurationUseCase).to(n),e(s.SignTransactionUseCase).to(i),e(s.SignMessageUseCase).to(a)});export{G as useCasesModuleFactory};
1
+ import{ContainerModule as o}from"inversify";import{GetAddressUseCase as a}from"../../use-cases/address/GetAddressUseCase";import{GetAppConfigurationUseCase as t}from"../../use-cases/app-configuration/GetAppConfigurationUseCase";import{useCasesTypes as s}from"../../use-cases/di/useCasesTypes";import{GenerateTransactionUseCase as r}from"../../use-cases/generateTransaction/GenerateTransactionUseCase";import{SignMessageUseCase as n}from"../../use-cases/message/SignMessageUseCase";import{SignTransactionUseCase as i}from"../../use-cases/transaction/SignTransactionUseCase";const u=()=>new o(({bind:e})=>{e(s.GetAddressUseCase).to(a),e(s.GetAppConfigurationUseCase).to(t),e(s.SignTransactionUseCase).to(i),e(s.SignMessageUseCase).to(n),e(s.GenerateTransactionUseCase).to(r)});export{u as useCasesModuleFactory};
2
2
  //# sourceMappingURL=useCasesModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/di/useCasesModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { GetAddressUseCase } from \"@internal/use-cases/address/GetAddressUseCase\";\nimport { GetAppConfigurationUseCase } from \"@internal/use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { useCasesTypes } from \"@internal/use-cases/di/useCasesTypes\";\nimport { SignMessageUseCase } from \"@internal/use-cases/message/SignMessageUseCase\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/transaction/SignTransactionUseCase\";\n\nexport const useCasesModuleFactory = () =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n _rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind(useCasesTypes.GetAddressUseCase).to(GetAddressUseCase);\n bind(useCasesTypes.GetAppConfigurationUseCase).to(\n GetAppConfigurationUseCase,\n );\n bind(useCasesTypes.SignTransactionUseCase).to(SignTransactionUseCase);\n bind(useCasesTypes.SignMessageUseCase).to(SignMessageUseCase);\n },\n );\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,qBAAAC,MAAyB,gDAClC,OAAS,8BAAAC,MAAkC,mEAC3C,OAAS,iBAAAC,MAAqB,uCAC9B,OAAS,sBAAAC,MAA0B,iDACnC,OAAS,0BAAAC,MAA8B,yDAEhC,MAAMC,EAAwB,IACnC,IAAIN,EACF,CACEO,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EAAKJ,EAAc,iBAAiB,EAAE,GAAGF,CAAiB,EAC1DM,EAAKJ,EAAc,0BAA0B,EAAE,GAC7CD,CACF,EACAK,EAAKJ,EAAc,sBAAsB,EAAE,GAAGE,CAAsB,EACpEE,EAAKJ,EAAc,kBAAkB,EAAE,GAAGC,CAAkB,CAC9D,CACF",
6
- "names": ["ContainerModule", "GetAddressUseCase", "GetAppConfigurationUseCase", "useCasesTypes", "SignMessageUseCase", "SignTransactionUseCase", "useCasesModuleFactory", "bind", "_unbind", "_isBound", "_rebind", "_unbindAsync", "_onActivation", "_onDeactivation"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { GetAddressUseCase } from \"@internal/use-cases/address/GetAddressUseCase\";\nimport { GetAppConfigurationUseCase } from \"@internal/use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { useCasesTypes } from \"@internal/use-cases/di/useCasesTypes\";\nimport { GenerateTransactionUseCase } from \"@internal/use-cases/generateTransaction/GenerateTransactionUseCase\";\nimport { SignMessageUseCase } from \"@internal/use-cases/message/SignMessageUseCase\";\nimport { SignTransactionUseCase } from \"@internal/use-cases/transaction/SignTransactionUseCase\";\n\nexport const useCasesModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(useCasesTypes.GetAddressUseCase).to(GetAddressUseCase);\n bind(useCasesTypes.GetAppConfigurationUseCase).to(\n GetAppConfigurationUseCase,\n );\n bind(useCasesTypes.SignTransactionUseCase).to(SignTransactionUseCase);\n bind(useCasesTypes.SignMessageUseCase).to(SignMessageUseCase);\n bind(useCasesTypes.GenerateTransactionUseCase).to(\n GenerateTransactionUseCase,\n );\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,qBAAAC,MAAyB,gDAClC,OAAS,8BAAAC,MAAkC,mEAC3C,OAAS,iBAAAC,MAAqB,uCAC9B,OAAS,8BAAAC,MAAkC,qEAC3C,OAAS,sBAAAC,MAA0B,iDACnC,OAAS,0BAAAC,MAA8B,yDAEhC,MAAMC,EAAwB,IACnC,IAAIP,EAAgB,CAAC,CAAE,KAAAQ,CAAK,IAAM,CAChCA,EAAKL,EAAc,iBAAiB,EAAE,GAAGF,CAAiB,EAC1DO,EAAKL,EAAc,0BAA0B,EAAE,GAC7CD,CACF,EACAM,EAAKL,EAAc,sBAAsB,EAAE,GAAGG,CAAsB,EACpEE,EAAKL,EAAc,kBAAkB,EAAE,GAAGE,CAAkB,EAC5DG,EAAKL,EAAc,0BAA0B,EAAE,GAC7CC,CACF,CACF,CAAC",
6
+ "names": ["ContainerModule", "GetAddressUseCase", "GetAppConfigurationUseCase", "useCasesTypes", "GenerateTransactionUseCase", "SignMessageUseCase", "SignTransactionUseCase", "useCasesModuleFactory", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Container as o}from"inversify";import{useCasesModuleFactory as i}from"./useCasesModule";import{useCasesTypes as s}from"./useCasesTypes";describe("useCasesModuleFactory",()=>{describe("Default",()=>{let e,t;beforeEach(()=>{t=i(),e=new o,e.load(t)}),it("should return the address module",()=>{expect(t).toBeDefined()}),it("should bind GetAddressUseCase",()=>{expect(e.isBound(s.GetAddressUseCase)).toBeTruthy()}),it("should bind GetAppConfigurationUseCase",()=>{expect(e.isBound(s.GetAppConfigurationUseCase)).toBeTruthy()}),it("should bind SignTransactionUseCase",()=>{expect(e.isBound(s.SignTransactionUseCase)).toBeTruthy()}),it("should bind SignMessageUseCase",()=>{expect(e.isBound(s.SignMessageUseCase)).toBeTruthy()})})});
1
+ import{Container as o}from"inversify";import{useCasesModuleFactory as n}from"./useCasesModule";import{useCasesTypes as s}from"./useCasesTypes";describe("useCasesModuleFactory",()=>{describe("Default",()=>{let e,t;beforeEach(()=>{t=n(),e=new o,e.loadSync(t)}),it("should return the address module",()=>{expect(t).toBeDefined()}),it("should bind GetAddressUseCase",()=>{expect(e.isBound(s.GetAddressUseCase)).toBeTruthy()}),it("should bind GetAppConfigurationUseCase",()=>{expect(e.isBound(s.GetAppConfigurationUseCase)).toBeTruthy()}),it("should bind SignTransactionUseCase",()=>{expect(e.isBound(s.SignTransactionUseCase)).toBeTruthy()}),it("should bind SignMessageUseCase",()=>{expect(e.isBound(s.SignMessageUseCase)).toBeTruthy()}),it("should bind GenerateTransactionUseCase",()=>{expect(e.isBound(s.GenerateTransactionUseCase)).toBeTruthy()})})});
2
2
  //# sourceMappingURL=useCasesModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/di/useCasesModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { useCasesModuleFactory } from \"./useCasesModule\";\nimport { useCasesTypes } from \"./useCasesTypes\";\n\ndescribe(\"useCasesModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof useCasesModuleFactory>;\n beforeEach(() => {\n mod = useCasesModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the address module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should bind GetAddressUseCase\", () => {\n expect(container.isBound(useCasesTypes.GetAddressUseCase)).toBeTruthy();\n });\n\n it(\"should bind GetAppConfigurationUseCase\", () => {\n expect(\n container.isBound(useCasesTypes.GetAppConfigurationUseCase),\n ).toBeTruthy();\n });\n\n it(\"should bind SignTransactionUseCase\", () => {\n expect(\n container.isBound(useCasesTypes.SignTransactionUseCase),\n ).toBeTruthy();\n });\n\n it(\"should bind SignMessageUseCase\", () => {\n expect(container.isBound(useCasesTypes.SignMessageUseCase)).toBeTruthy();\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,yBAAAC,MAA6B,mBACtC,OAAS,iBAAAC,MAAqB,kBAE9B,SAAS,wBAAyB,IAAM,CACtC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAsB,EAC5BE,EAAY,IAAIH,EAChBG,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,gCAAiC,IAAM,CACxC,OAAOD,EAAU,QAAQD,EAAc,iBAAiB,CAAC,EAAE,WAAW,CACxE,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,OACEC,EAAU,QAAQD,EAAc,0BAA0B,CAC5D,EAAE,WAAW,CACf,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7C,OACEC,EAAU,QAAQD,EAAc,sBAAsB,CACxD,EAAE,WAAW,CACf,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOC,EAAU,QAAQD,EAAc,kBAAkB,CAAC,EAAE,WAAW,CACzE,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { useCasesModuleFactory } from \"./useCasesModule\";\nimport { useCasesTypes } from \"./useCasesTypes\";\n\ndescribe(\"useCasesModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof useCasesModuleFactory>;\n beforeEach(() => {\n mod = useCasesModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the address module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should bind GetAddressUseCase\", () => {\n expect(container.isBound(useCasesTypes.GetAddressUseCase)).toBeTruthy();\n });\n\n it(\"should bind GetAppConfigurationUseCase\", () => {\n expect(\n container.isBound(useCasesTypes.GetAppConfigurationUseCase),\n ).toBeTruthy();\n });\n\n it(\"should bind SignTransactionUseCase\", () => {\n expect(\n container.isBound(useCasesTypes.SignTransactionUseCase),\n ).toBeTruthy();\n });\n\n it(\"should bind SignMessageUseCase\", () => {\n expect(container.isBound(useCasesTypes.SignMessageUseCase)).toBeTruthy();\n });\n\n it(\"should bind GenerateTransactionUseCase\", () => {\n expect(\n container.isBound(useCasesTypes.GenerateTransactionUseCase),\n ).toBeTruthy();\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,yBAAAC,MAA6B,mBACtC,OAAS,iBAAAC,MAAqB,kBAE9B,SAAS,wBAAyB,IAAM,CACtC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAsB,EAC5BE,EAAY,IAAIH,EAChBG,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,gCAAiC,IAAM,CACxC,OAAOD,EAAU,QAAQD,EAAc,iBAAiB,CAAC,EAAE,WAAW,CACxE,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,OACEC,EAAU,QAAQD,EAAc,0BAA0B,CAC5D,EAAE,WAAW,CACf,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7C,OACEC,EAAU,QAAQD,EAAc,sBAAsB,CACxD,EAAE,WAAW,CACf,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOC,EAAU,QAAQD,EAAc,kBAAkB,CAAC,EAAE,WAAW,CACzE,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,OACEC,EAAU,QAAQD,EAAc,0BAA0B,CAC5D,EAAE,WAAW,CACf,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["Container", "useCasesModuleFactory", "useCasesTypes", "container", "mod"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const s={GetAddressUseCase:Symbol.for("GetAddressUseCase"),GetAppConfigurationUseCase:Symbol.for("GetAppConfigurationUseCase"),SignTransactionUseCase:Symbol.for("SignTransactionUseCase"),SignMessageUseCase:Symbol.for("SignMessageUseCase")};export{s as useCasesTypes};
1
+ const e={GetAddressUseCase:Symbol.for("GetAddressUseCase"),GetAppConfigurationUseCase:Symbol.for("GetAppConfigurationUseCase"),SignTransactionUseCase:Symbol.for("SignTransactionUseCase"),GenerateTransactionUseCase:Symbol.for("GenerateTransactionUseCase"),SignMessageUseCase:Symbol.for("SignMessageUseCase")};export{e as useCasesTypes};
2
2
  //# sourceMappingURL=useCasesTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/di/useCasesTypes.ts"],
4
- "sourcesContent": ["export const useCasesTypes = {\n GetAddressUseCase: Symbol.for(\"GetAddressUseCase\"),\n GetAppConfigurationUseCase: Symbol.for(\"GetAppConfigurationUseCase\"),\n SignTransactionUseCase: Symbol.for(\"SignTransactionUseCase\"),\n SignMessageUseCase: Symbol.for(\"SignMessageUseCase\"),\n};\n"],
5
- "mappings": "AAAO,MAAMA,EAAgB,CAC3B,kBAAmB,OAAO,IAAI,mBAAmB,EACjD,2BAA4B,OAAO,IAAI,4BAA4B,EACnE,uBAAwB,OAAO,IAAI,wBAAwB,EAC3D,mBAAoB,OAAO,IAAI,oBAAoB,CACrD",
4
+ "sourcesContent": ["export const useCasesTypes = {\n GetAddressUseCase: Symbol.for(\"GetAddressUseCase\"),\n GetAppConfigurationUseCase: Symbol.for(\"GetAppConfigurationUseCase\"),\n SignTransactionUseCase: Symbol.for(\"SignTransactionUseCase\"),\n GenerateTransactionUseCase: Symbol.for(\"GenerateTransactionUseCase\"),\n SignMessageUseCase: Symbol.for(\"SignMessageUseCase\"),\n};\n"],
5
+ "mappings": "AAAO,MAAMA,EAAgB,CAC3B,kBAAmB,OAAO,IAAI,mBAAmB,EACjD,2BAA4B,OAAO,IAAI,4BAA4B,EACnE,uBAAwB,OAAO,IAAI,wBAAwB,EAC3D,2BAA4B,OAAO,IAAI,4BAA4B,EACnE,mBAAoB,OAAO,IAAI,oBAAoB,CACrD",
6
6
  "names": ["useCasesTypes"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ var c=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var m=(i,p,r,n)=>{for(var e=n>1?void 0:n?d(p,r):p,o=i.length-1,a;o>=0;o--)(a=i[o])&&(e=(n?a(p,r,e):a(e))||e);return n&&e&&c(p,r,e),e},A=(i,p)=>(r,n)=>p(r,n,i);import{inject as l,injectable as B}from"inversify";import{appBinderTypes as f}from"../../app-binder/di/appBinderTypes";let t=class{constructor(p){this.appBinder=p}execute(p,r){return this.appBinder.generateTransaction({derivationPath:p,skipOpenApp:r?.skipOpenApp??!1})}};t=m([B(),A(0,l(f.AppBinder))],t);export{t as GenerateTransactionUseCase};
2
+ //# sourceMappingURL=GenerateTransactionUseCase.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/use-cases/generateTransaction/GenerateTransactionUseCase.ts"],
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { GenerateTransactionDAReturnType } from \"@api/app-binder/GenerateTransactionDeviceActionTypes\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class GenerateTransactionUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n options?: {\n skipOpenApp?: boolean;\n },\n ): GenerateTransactionDAReturnType {\n return this.appBinder.generateTransaction({\n derivationPath,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAGnC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAiC,CACtC,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EAGiC,CACjC,OAAO,KAAK,UAAU,oBAAoB,CACxC,eAAAD,EACA,YAAaC,GAAS,aAAe,EACvC,CAAC,CACH,CACF,EAhBaH,EAANI,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAFvBR",
6
+ "names": ["inject", "injectable", "appBinderTypes", "GenerateTransactionUseCase", "appBinder", "derivationPath", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{GenerateTransactionUseCase as s}from"./GenerateTransactionUseCase";describe("GenerateTransactionUseCase",()=>{const e=vi.fn(),n={observable:{},cancel:vi.fn()},p={generateTransaction:e};let a;beforeEach(()=>{vi.clearAllMocks(),a=new s(p)}),it("should call appBinder.generateTransaction with skipOpenApp=false when no options provided",()=>{e.mockReturnValue(n);const t=a.execute("44'/501'/0'/0'");expect(e).toHaveBeenCalledWith({derivationPath:"44'/501'/0'/0'",skipOpenApp:!1}),expect(t).toBe(n)}),it("should pass skipOpenApp=true when option is set",()=>{e.mockReturnValue(n);const t=a.execute("44'/501'/0'/1'",{skipOpenApp:!0});expect(e).toHaveBeenCalledWith({derivationPath:"44'/501'/0'/1'",skipOpenApp:!0}),expect(t).toBe(n)}),it("should pass skipOpenApp=false when option.skipOpenApp is false",()=>{e.mockReturnValue(n);const t=a.execute("m/44'/501'/0'",{skipOpenApp:!1});expect(e).toHaveBeenCalledWith({derivationPath:"m/44'/501'/0'",skipOpenApp:!1}),expect(t).toBe(n)})});
2
+ //# sourceMappingURL=GenerateTransactionUseCase.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/use-cases/generateTransaction/GenerateTransactionUseCase.test.ts"],
4
+ "sourcesContent": ["import { type GenerateTransactionDAReturnType } from \"@api/app-binder/GenerateTransactionDeviceActionTypes\";\nimport { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { GenerateTransactionUseCase } from \"./GenerateTransactionUseCase\";\n\ndescribe(\"GenerateTransactionUseCase\", () => {\n const generateTransactionMock = vi.fn();\n // stub return value: could be an object with .observable/.cancel, but we just treat it opaque\n const fakeReturn = {\n observable: {},\n cancel: vi.fn(),\n } as unknown as GenerateTransactionDAReturnType;\n const appBinderMock = {\n generateTransaction: generateTransactionMock,\n } as unknown as SolanaAppBinder;\n let useCase: GenerateTransactionUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new GenerateTransactionUseCase(appBinderMock);\n });\n\n it(\"should call appBinder.generateTransaction with skipOpenApp=false when no options provided\", () => {\n // GIVEN\n generateTransactionMock.mockReturnValue(fakeReturn);\n\n // WHEN\n const result = useCase.execute(\"44'/501'/0'/0'\");\n\n // THEN\n expect(generateTransactionMock).toHaveBeenCalledWith({\n derivationPath: \"44'/501'/0'/0'\",\n skipOpenApp: false,\n });\n expect(result).toBe(fakeReturn);\n });\n\n it(\"should pass skipOpenApp=true when option is set\", () => {\n // GIVEN\n generateTransactionMock.mockReturnValue(fakeReturn);\n\n // WHEN\n const result = useCase.execute(\"44'/501'/0'/1'\", { skipOpenApp: true });\n\n // THEN\n expect(generateTransactionMock).toHaveBeenCalledWith({\n derivationPath: \"44'/501'/0'/1'\",\n skipOpenApp: true,\n });\n expect(result).toBe(fakeReturn);\n });\n\n it(\"should pass skipOpenApp=false when option.skipOpenApp is false\", () => {\n // GIVEN\n generateTransactionMock.mockReturnValue(fakeReturn);\n\n // WHEN\n const result = useCase.execute(\"m/44'/501'/0'\", { skipOpenApp: false });\n\n // THEN\n expect(generateTransactionMock).toHaveBeenCalledWith({\n derivationPath: \"m/44'/501'/0'\",\n skipOpenApp: false,\n });\n expect(result).toBe(fakeReturn);\n });\n});\n"],
5
+ "mappings": "AAGA,OAAS,8BAAAA,MAAkC,+BAE3C,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAA0B,GAAG,GAAG,EAEhCC,EAAa,CACjB,WAAY,CAAC,EACb,OAAQ,GAAG,GAAG,CAChB,EACMC,EAAgB,CACpB,oBAAqBF,CACvB,EACA,IAAIG,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIJ,EAA2BG,CAAa,CACxD,CAAC,EAED,GAAG,4FAA6F,IAAM,CAEpGF,EAAwB,gBAAgBC,CAAU,EAGlD,MAAMG,EAASD,EAAQ,QAAQ,gBAAgB,EAG/C,OAAOH,CAAuB,EAAE,qBAAqB,CACnD,eAAgB,iBAChB,YAAa,EACf,CAAC,EACD,OAAOI,CAAM,EAAE,KAAKH,CAAU,CAChC,CAAC,EAED,GAAG,kDAAmD,IAAM,CAE1DD,EAAwB,gBAAgBC,CAAU,EAGlD,MAAMG,EAASD,EAAQ,QAAQ,iBAAkB,CAAE,YAAa,EAAK,CAAC,EAGtE,OAAOH,CAAuB,EAAE,qBAAqB,CACnD,eAAgB,iBAChB,YAAa,EACf,CAAC,EACD,OAAOI,CAAM,EAAE,KAAKH,CAAU,CAChC,CAAC,EAED,GAAG,iEAAkE,IAAM,CAEzED,EAAwB,gBAAgBC,CAAU,EAGlD,MAAMG,EAASD,EAAQ,QAAQ,gBAAiB,CAAE,YAAa,EAAM,CAAC,EAGtE,OAAOH,CAAuB,EAAE,qBAAqB,CACnD,eAAgB,gBAChB,YAAa,EACf,CAAC,EACD,OAAOI,CAAM,EAAE,KAAKH,CAAU,CAChC,CAAC,CACH,CAAC",
6
+ "names": ["GenerateTransactionUseCase", "generateTransactionMock", "fakeReturn", "appBinderMock", "useCase", "result"]
7
+ }
@@ -1,2 +1,2 @@
1
- var B=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=(t,p,r,n)=>{for(var i=n>1?void 0:n?c(p,r):p,o=t.length-1,a;o>=0;o--)(a=t[o])&&(i=(n?a(p,r,i):a(i))||i);return n&&i&&B(p,r,i),i},m=(t,p)=>(r,n)=>p(r,n,t);import{inject as A,injectable as l}from"inversify";import{appBinderTypes as u}from"../../app-binder/di/appBinderTypes";let e=class{_appBinder;constructor(p){this._appBinder=p}execute(p,r){return this._appBinder.signMessage({derivationPath:p,message:r})}};e=d([l(),m(0,A(u.AppBinder))],e);export{e as SignMessageUseCase};
1
+ var d=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var s=(n,p,e,r)=>{for(var i=r>1?void 0:r?A(p,e):p,o=n.length-1,a;o>=0;o--)(a=n[o])&&(i=(r?a(p,e,i):a(i))||i);return r&&i&&d(p,e,i),i},m=(n,p)=>(e,r)=>p(e,r,n);import{inject as B,injectable as c}from"inversify";import{appBinderTypes as f}from"../../app-binder/di/appBinderTypes";let t=class{_appBinder;constructor(p){this._appBinder=p}execute(p,e,r){return this._appBinder.signMessage({derivationPath:p,message:e,skipOpenApp:r?.skipOpenApp??!1})}};t=s([c(),m(0,B(f.AppBinder))],t);export{t as SignMessageUseCase};
2
2
  //# sourceMappingURL=SignMessageUseCase.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/message/SignMessageUseCase.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class SignMessageUseCase {\n private _appBinder: SolanaAppBinder;\n\n constructor(\n @inject(appBinderTypes.AppBinder)\n appBinding: SolanaAppBinder,\n ) {\n this._appBinder = appBinding;\n }\n\n execute(derivationPath: string, message: string): SignMessageDAReturnType {\n return this._appBinder.signMessage({\n derivationPath,\n message,\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAGnC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAyB,CACtB,WAER,YAEEC,EACA,CACA,KAAK,WAAaA,CACpB,CAEA,QAAQC,EAAwBC,EAA0C,CACxE,OAAO,KAAK,WAAW,YAAY,CACjC,eAAAD,EACA,QAAAC,CACF,CAAC,CACH,CACF,EAhBaH,EAANI,EAAA,CADNC,EAAW,EAKPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAJvBR",
6
- "names": ["inject", "injectable", "appBinderTypes", "SignMessageUseCase", "appBinding", "derivationPath", "message", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class SignMessageUseCase {\n private _appBinder: SolanaAppBinder;\n\n constructor(\n @inject(appBinderTypes.AppBinder)\n appBinding: SolanaAppBinder,\n ) {\n this._appBinder = appBinding;\n }\n\n execute(\n derivationPath: string,\n message: string,\n options?: MessageOptions,\n ): SignMessageDAReturnType {\n return this._appBinder.signMessage({\n derivationPath,\n message,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAyB,CACtB,WAER,YAEEC,EACA,CACA,KAAK,WAAaA,CACpB,CAEA,QACEC,EACAC,EACAC,EACyB,CACzB,OAAO,KAAK,WAAW,YAAY,CACjC,eAAAF,EACA,QAAAC,EACA,YAAaC,GAAS,aAAe,EACvC,CAAC,CACH,CACF,EArBaJ,EAANK,EAAA,CADNC,EAAW,EAKPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAJvBT",
6
+ "names": ["inject", "injectable", "appBinderTypes", "SignMessageUseCase", "appBinding", "derivationPath", "message", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{SignMessageUseCase as n}from"./SignMessageUseCase";describe("SignMessageUseCase",()=>{it("should call signMessage on appBinder with the correct arguments",()=>{const e="44'/501'/0'/0'",s="Hello world",a={signMessage:vi.fn()};new n(a).execute(e,s),expect(a.signMessage).toHaveBeenCalledWith({derivationPath:e,message:s})})});
1
+ import{SignMessageUseCase as n}from"./SignMessageUseCase";describe("SignMessageUseCase",()=>{it("should call signMessage on appBinder with the correct arguments",()=>{const e="44'/501'/0'/0'",s="Hello world",a={signMessage:vi.fn()};new n(a).execute(e,s),expect(a.signMessage).toHaveBeenCalledWith({derivationPath:e,message:s,skipOpenApp:!1})})});
2
2
  //# sourceMappingURL=SignMessageUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/message/SignMessageUseCase.test.ts"],
4
- "sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { SignMessageUseCase } from \"./SignMessageUseCase\";\n\ndescribe(\"SignMessageUseCase\", () => {\n it(\"should call signMessage on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"44'/501'/0'/0'\";\n const message = \"Hello world\";\n const appBinder = {\n signMessage: vi.fn(),\n };\n const signMessageUseCase = new SignMessageUseCase(\n appBinder as unknown as SolanaAppBinder,\n );\n\n // When\n signMessageUseCase.execute(derivationPath, message);\n\n // Then\n expect(appBinder.signMessage).toHaveBeenCalledWith({\n derivationPath,\n message,\n });\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,sBAAAA,MAA0B,uBAEnC,SAAS,qBAAsB,IAAM,CACnC,GAAG,kEAAmE,IAAM,CAE1E,MAAMC,EAAiB,iBACjBC,EAAU,cACVC,EAAY,CAChB,YAAa,GAAG,GAAG,CACrB,EAC2B,IAAIH,EAC7BG,CACF,EAGmB,QAAQF,EAAgBC,CAAO,EAGlD,OAAOC,EAAU,WAAW,EAAE,qBAAqB,CACjD,eAAAF,EACA,QAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { SignMessageUseCase } from \"./SignMessageUseCase\";\n\ndescribe(\"SignMessageUseCase\", () => {\n it(\"should call signMessage on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"44'/501'/0'/0'\";\n const message = \"Hello world\";\n const appBinder = {\n signMessage: vi.fn(),\n };\n const signMessageUseCase = new SignMessageUseCase(\n appBinder as unknown as SolanaAppBinder,\n );\n\n // When\n signMessageUseCase.execute(derivationPath, message);\n\n // Then\n expect(appBinder.signMessage).toHaveBeenCalledWith({\n derivationPath,\n message,\n skipOpenApp: false,\n });\n });\n});\n"],
5
+ "mappings": "AAEA,OAAS,sBAAAA,MAA0B,uBAEnC,SAAS,qBAAsB,IAAM,CACnC,GAAG,kEAAmE,IAAM,CAE1E,MAAMC,EAAiB,iBACjBC,EAAU,cACVC,EAAY,CAChB,YAAa,GAAG,GAAG,CACrB,EAC2B,IAAIH,EAC7BG,CACF,EAGmB,QAAQF,EAAgBC,CAAO,EAGlD,OAAOC,EAAU,WAAW,EAAE,qBAAqB,CACjD,eAAAF,EACA,QAAAC,EACA,YAAa,EACf,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["SignMessageUseCase", "derivationPath", "message", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var s=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var m=(i,r,p,n)=>{for(var t=n>1?void 0:n?T(r,p):r,a=i.length-1,e;a>=0;a--)(e=i[a])&&(t=(n?e(r,p,t):e(t))||t);return n&&t&&s(r,p,t),t},c=(i,r)=>(p,n)=>r(p,n,i);import{inject as d,injectable as f}from"inversify";import{appBinderTypes as B}from"../../app-binder/di/appBinderTypes";let o=class{constructor(r){this.appBinder=r}execute(r,p,n){return this.appBinder.signTransaction({derivationPath:r,transaction:p,options:n})}};o=m([f(),c(0,d(B.AppBinder))],o);export{o as SignTransactionUseCase};
1
+ var f=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var m=(p,r,o,n)=>{for(var i=n>1?void 0:n?l(r,o):r,a=p.length-1,e;a>=0;a--)(e=p[a])&&(i=(n?e(r,o,i):e(i))||i);return n&&i&&f(r,o,i),i},c=(p,r)=>(o,n)=>r(o,n,p);import{inject as T,injectable as d}from"inversify";import{appBinderTypes as B}from"../../app-binder/di/appBinderTypes";let t=class{constructor(r){this.appBinder=r}execute(r,o,n){return this.appBinder.signTransaction({derivationPath:r,transaction:o,solanaTransactionOptionalConfig:n})}};t=m([d(),c(0,T(B.AppBinder))],t);export{t as SignTransactionUseCase};
2
2
  //# sourceMappingURL=SignTransactionUseCase.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/transaction/SignTransactionUseCase.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { Transaction } from \"@api/model/Transaction\";\nimport { TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class SignTransactionUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n transaction: Transaction,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this.appBinder.signTransaction({\n derivationPath,\n transaction,\n options,\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAKnC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAA6B,CAClC,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,UAAU,gBAAgB,CACpC,eAAAF,EACA,YAAAC,EACA,QAAAC,CACF,CAAC,CACH,CACF,EAhBaJ,EAANK,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAFvBT",
6
- "names": ["inject", "injectable", "appBinderTypes", "SignTransactionUseCase", "appBinder", "derivationPath", "transaction", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { SolanaTransactionOptionalConfig } from \"@api/model/SolanaTransactionOptionalConfig\";\nimport { Transaction } from \"@api/model/Transaction\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\n@injectable()\nexport class SignTransactionUseCase {\n constructor(\n @inject(appBinderTypes.AppBinder) private appBinder: SolanaAppBinder,\n ) {}\n\n execute(\n derivationPath: string,\n transaction: Transaction,\n solanaTransactionOptionalConfig?: SolanaTransactionOptionalConfig,\n ): SignTransactionDAReturnType {\n return this.appBinder.signTransaction({\n derivationPath,\n transaction,\n solanaTransactionOptionalConfig,\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAKnC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAA6B,CAClC,YAC4CC,EAC1C,CAD0C,eAAAA,CACzC,CAEH,QACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,UAAU,gBAAgB,CACpC,eAAAF,EACA,YAAAC,EACA,gCAAAC,CACF,CAAC,CACH,CACF,EAhBaJ,EAANK,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAe,SAAS,IAFvBT",
6
+ "names": ["inject", "injectable", "appBinderTypes", "SignTransactionUseCase", "appBinder", "derivationPath", "transaction", "solanaTransactionOptionalConfig", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{SignTransactionUseCase as i}from"./SignTransactionUseCase";describe("GetAppConfigurationUseCase",()=>{const n=vi.fn(),t={signTransaction:n};let e;beforeEach(()=>{vi.clearAllMocks(),e=new i(t)}),it("should return the config from the appBinder's getAppConfiguration method",()=>{n.mockReturnValue(new Uint8Array([66]));const a=e.execute("44'/501'/0'/0'",new Uint8Array([1,2,3,4]));expect(n).toHaveBeenCalledWith({derivationPath:"44'/501'/0'/0'",transaction:new Uint8Array([1,2,3,4]),options:void 0}),expect(a).toEqual(new Uint8Array([66]))})});
1
+ import{SignTransactionUseCase as s}from"./SignTransactionUseCase";describe("GetAppConfigurationUseCase",()=>{const n=vi.fn(),i={signTransaction:n};let t;beforeEach(()=>{vi.clearAllMocks(),t=new s(i)}),it("should return the config from the appBinder's getAppConfiguration method",()=>{n.mockReturnValue(new Uint8Array([66]));const e=t.execute("44'/501'/0'/0'",new Uint8Array([1,2,3,4]));expect(n).toHaveBeenCalledWith({derivationPath:"44'/501'/0'/0'",transaction:new Uint8Array([1,2,3,4]),solanaTransactionOptionalConfig:void 0}),expect(e).toEqual(new Uint8Array([66]))}),it("should forward skipOpenApp and TransactionResolutionContext to appBinder.signTransaction",()=>{const e="44'/501'/1'/2'",a=new Uint8Array([170,187]),o={skipOpenApp:!0,transactionResolutionContext:{tokenAddress:"someToken",createATA:{address:"someAddress",mintAddress:"someMint"}}};t.execute(e,a,o),expect(n).toHaveBeenCalledWith({derivationPath:e,transaction:a,solanaTransactionOptionalConfig:o})})});
2
2
  //# sourceMappingURL=SignTransactionUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/use-cases/transaction/SignTransactionUseCase.test.ts"],
4
- "sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { SignTransactionUseCase } from \"./SignTransactionUseCase\";\n\ndescribe(\"GetAppConfigurationUseCase\", () => {\n const signTransactionMock = vi.fn();\n const appBinderMock = {\n signTransaction: signTransactionMock,\n } as unknown as SolanaAppBinder;\n let useCase: SignTransactionUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new SignTransactionUseCase(appBinderMock);\n });\n\n it(\"should return the config from the appBinder's getAppConfiguration method\", () => {\n // GIVEN\n signTransactionMock.mockReturnValue(new Uint8Array([0x042]));\n\n // WHEN\n const result = useCase.execute(\n \"44'/501'/0'/0'\",\n new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n );\n\n // THEN\n expect(signTransactionMock).toHaveBeenCalledWith({\n derivationPath: \"44'/501'/0'/0'\",\n transaction: new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n options: undefined,\n });\n expect(result).toEqual(new Uint8Array([0x042]));\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,0BAAAA,MAA8B,2BAEvC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAsB,GAAG,GAAG,EAC5BC,EAAgB,CACpB,gBAAiBD,CACnB,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIH,EAAuBE,CAAa,CACpD,CAAC,EAED,GAAG,2EAA4E,IAAM,CAEnFD,EAAoB,gBAAgB,IAAI,WAAW,CAAC,EAAK,CAAC,CAAC,EAG3D,MAAMG,EAASD,EAAQ,QACrB,iBACA,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CACzC,EAGA,OAAOF,CAAmB,EAAE,qBAAqB,CAC/C,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EACpD,QAAS,MACX,CAAC,EACD,OAAOG,CAAM,EAAE,QAAQ,IAAI,WAAW,CAAC,EAAK,CAAC,CAAC,CAChD,CAAC,CACH,CAAC",
6
- "names": ["SignTransactionUseCase", "signTransactionMock", "appBinderMock", "useCase", "result"]
4
+ "sourcesContent": ["import { type SolanaAppBinder } from \"@internal/app-binder/SolanaAppBinder\";\n\nimport { SignTransactionUseCase } from \"./SignTransactionUseCase\";\n\ndescribe(\"GetAppConfigurationUseCase\", () => {\n const signTransactionMock = vi.fn();\n const appBinderMock = {\n signTransaction: signTransactionMock,\n } as unknown as SolanaAppBinder;\n let useCase: SignTransactionUseCase;\n\n beforeEach(() => {\n vi.clearAllMocks();\n useCase = new SignTransactionUseCase(appBinderMock);\n });\n\n it(\"should return the config from the appBinder's getAppConfiguration method\", () => {\n // GIVEN\n signTransactionMock.mockReturnValue(new Uint8Array([0x042]));\n\n // WHEN\n const result = useCase.execute(\n \"44'/501'/0'/0'\",\n new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n );\n\n // THEN\n expect(signTransactionMock).toHaveBeenCalledWith({\n derivationPath: \"44'/501'/0'/0'\",\n transaction: new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n solanaTransactionOptionalConfig: undefined,\n });\n expect(result).toEqual(new Uint8Array([0x042]));\n });\n\n it(\"should forward skipOpenApp and TransactionResolutionContext to appBinder.signTransaction\", () => {\n // GIVEN\n const derivationPath = \"44'/501'/1'/2'\";\n const tx = new Uint8Array([0xaa, 0xbb]);\n const opts = {\n skipOpenApp: true,\n transactionResolutionContext: {\n tokenAddress: \"someToken\",\n createATA: { address: \"someAddress\", mintAddress: \"someMint\" },\n },\n };\n\n // WHEN\n useCase.execute(derivationPath, tx, opts);\n\n // THEN\n expect(signTransactionMock).toHaveBeenCalledWith({\n derivationPath,\n transaction: tx,\n solanaTransactionOptionalConfig: opts,\n });\n });\n});\n"],
5
+ "mappings": "AAEA,OAAS,0BAAAA,MAA8B,2BAEvC,SAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAsB,GAAG,GAAG,EAC5BC,EAAgB,CACpB,gBAAiBD,CACnB,EACA,IAAIE,EAEJ,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAU,IAAIH,EAAuBE,CAAa,CACpD,CAAC,EAED,GAAG,2EAA4E,IAAM,CAEnFD,EAAoB,gBAAgB,IAAI,WAAW,CAAC,EAAK,CAAC,CAAC,EAG3D,MAAMG,EAASD,EAAQ,QACrB,iBACA,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CACzC,EAGA,OAAOF,CAAmB,EAAE,qBAAqB,CAC/C,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EACpD,gCAAiC,MACnC,CAAC,EACD,OAAOG,CAAM,EAAE,QAAQ,IAAI,WAAW,CAAC,EAAK,CAAC,CAAC,CAChD,CAAC,EAED,GAAG,2FAA4F,IAAM,CAEnG,MAAMC,EAAiB,iBACjBC,EAAK,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,EAChCC,EAAO,CACX,YAAa,GACb,6BAA8B,CAC5B,aAAc,YACd,UAAW,CAAE,QAAS,cAAe,YAAa,UAAW,CAC/D,CACF,EAGAJ,EAAQ,QAAQE,EAAgBC,EAAIC,CAAI,EAGxC,OAAON,CAAmB,EAAE,qBAAqB,CAC/C,eAAAI,EACA,YAAaC,EACb,gCAAiCC,CACnC,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["SignTransactionUseCase", "signTransactionMock", "appBinderMock", "useCase", "result", "derivationPath", "tx", "opts"]
7
7
  }
@@ -1,59 +1,68 @@
1
1
  {
2
- "name": "@ledgerhq/device-signer-kit-solana",
3
- "version": "1.1.0",
4
- "private": false,
5
- "license": "Apache-2.0",
2
+ "dependencies": {
3
+ "@ledgerhq/context-module": "workspace:*",
4
+ "@ledgerhq/signer-utils": "workspace:*",
5
+ "@solana/spl-token": "catalog:",
6
+ "@solana/web3.js": "catalog:",
7
+ "bs58": "catalog:",
8
+ "buffer": "catalog:",
9
+ "inversify": "catalog:",
10
+ "purify-ts": "catalog:",
11
+ "reflect-metadata": "catalog:",
12
+ "semver": "catalog:",
13
+ "xstate": "catalog:"
14
+ },
15
+ "devDependencies": {
16
+ "@ledgerhq/device-management-kit": "workspace:*",
17
+ "@ledgerhq/eslint-config-dsdk": "workspace:*",
18
+ "@ledgerhq/ldmk-tool": "workspace:*",
19
+ "@ledgerhq/prettier-config-dsdk": "workspace:*",
20
+ "@ledgerhq/tsconfig-dsdk": "workspace:*",
21
+ "@ledgerhq/vitest-config-dmk": "workspace:*",
22
+ "@types/semver": "catalog:",
23
+ "rxjs": "catalog:",
24
+ "ts-node": "catalog:"
25
+ },
6
26
  "exports": {
7
27
  ".": {
8
- "types": "./lib/types/index.d.ts",
9
28
  "import": "./lib/esm/index.js",
10
- "require": "./lib/cjs/index.js"
29
+ "require": "./lib/cjs/index.js",
30
+ "types": "./lib/types/index.d.ts"
11
31
  },
12
32
  "./*": {
13
- "types": "./lib/types/*",
14
33
  "import": "./lib/esm/*",
15
- "require": "./lib/cjs/*"
34
+ "require": "./lib/cjs/*",
35
+ "types": "./lib/types/*"
16
36
  }
17
37
  },
18
38
  "files": [
19
39
  "./lib"
20
40
  ],
41
+ "license": "Apache-2.0",
42
+ "name": "@ledgerhq/device-signer-kit-solana",
43
+ "peerDependencies": {
44
+ "@ledgerhq/device-management-kit": "workspace:*"
45
+ },
46
+ "private": false,
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "https://github.com/LedgerHQ/device-sdk-ts.git"
50
+ },
21
51
  "scripts": {
22
- "prebuild": "rimraf lib",
23
- "build": "pnpm lmdk-build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
52
+ "build": "pnpm ldmk-tool build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
24
53
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
25
- "watch:builds": "pnpm lmdk-watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
26
- "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
27
54
  "lint": "eslint",
28
55
  "lint:fix": "pnpm lint --fix",
29
56
  "postpack": "find . -name '*.tgz' -exec cp {} ../../../dist/ \\; ",
57
+ "prebuild": "rimraf lib",
30
58
  "prettier": "prettier . --check",
31
59
  "prettier:fix": "prettier . --write",
32
- "typecheck": "tsc --noEmit",
33
60
  "test": "vitest run",
61
+ "test:coverage": "vitest run --coverage",
34
62
  "test:watch": "vitest",
35
- "test:coverage": "vitest run --coverage"
36
- },
37
- "dependencies": {
38
- "@ledgerhq/signer-utils": "workspace:*",
39
- "bs58": "^6.0.0",
40
- "inversify": "^6.2.2",
41
- "inversify-logger-middleware": "^3.1.0",
42
- "purify-ts": "^2.1.0",
43
- "reflect-metadata": "^0.2.2",
44
- "xstate": "^5.19.2"
45
- },
46
- "devDependencies": {
47
- "@ledgerhq/device-management-kit": "workspace:*",
48
- "@ledgerhq/esbuild-tools": "workspace:*",
49
- "@ledgerhq/eslint-config-dsdk": "workspace:*",
50
- "@ledgerhq/prettier-config-dsdk": "workspace:*",
51
- "@ledgerhq/tsconfig-dsdk": "workspace:*",
52
- "@ledgerhq/vitest-config-dmk": "workspace:*",
53
- "rxjs": "^7.8.2",
54
- "ts-node": "^10.9.2"
63
+ "typecheck": "tsc --noEmit",
64
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
65
+ "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
55
66
  },
56
- "peerDependencies": {
57
- "@ledgerhq/device-management-kit": "workspace:*"
58
- }
67
+ "version": "0.0.0-solana-signer-20251204160729"
59
68
  }