@ledgerhq/device-signer-kit-solana 1.0.1 → 1.1.1

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 (243) hide show
  1. package/README.md +148 -356
  2. package/lib/cjs/api/SignerSolana.js +1 -1
  3. package/lib/cjs/api/SignerSolana.js.map +1 -1
  4. package/lib/cjs/api/app-binder/GetAddressDeviceActionTypes.js +1 -1
  5. package/lib/cjs/api/app-binder/GetAddressDeviceActionTypes.js.map +1 -1
  6. package/lib/cjs/api/app-binder/GetAppConfigurationDeviceActionTypes.js +1 -1
  7. package/lib/cjs/api/app-binder/GetAppConfigurationDeviceActionTypes.js.map +1 -1
  8. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js +1 -1
  9. package/lib/cjs/api/app-binder/SignMessageDeviceActionTypes.js.map +1 -1
  10. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  11. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +1 -1
  12. package/lib/cjs/api/model/AddressOption.js +1 -1
  13. package/lib/cjs/api/model/AddressOption.js.map +1 -1
  14. package/lib/cjs/api/model/MessageOptions.js +2 -0
  15. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  16. package/lib/cjs/api/model/TransactionOptions.js +1 -1
  17. package/lib/cjs/api/model/TransactionOptions.js.map +1 -1
  18. package/lib/cjs/index.js.map +1 -1
  19. package/lib/cjs/internal/DefaultSignerSolana.js +1 -1
  20. package/lib/cjs/internal/DefaultSignerSolana.js.map +2 -2
  21. package/lib/cjs/internal/DefaultSignerSolana.test.js +1 -1
  22. package/lib/cjs/internal/DefaultSignerSolana.test.js.map +2 -2
  23. package/lib/cjs/internal/app-binder/SolanaAppBinder.js +1 -1
  24. package/lib/cjs/internal/app-binder/SolanaAppBinder.js.map +3 -3
  25. package/lib/cjs/internal/app-binder/SolanaAppBinder.test.js +1 -1
  26. package/lib/cjs/internal/app-binder/SolanaAppBinder.test.js.map +3 -3
  27. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
  28. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +3 -3
  29. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
  30. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
  31. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.js +1 -1
  32. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.js.map +3 -3
  33. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.test.js +1 -1
  34. package/lib/cjs/internal/app-binder/command/GetPubKeyCommand.test.js.map +2 -2
  35. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.js +1 -1
  36. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.js.map +3 -3
  37. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.test.js +1 -1
  38. package/lib/cjs/internal/app-binder/command/SignOffChainMessageCommand.test.js.map +2 -2
  39. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js +1 -1
  40. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js.map +3 -3
  41. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  42. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
  43. package/lib/cjs/internal/app-binder/command/utils/SolanaAppErrors.test.js +2 -0
  44. package/lib/cjs/internal/app-binder/command/utils/SolanaAppErrors.test.js.map +7 -0
  45. package/lib/cjs/internal/app-binder/command/utils/SolanaApplicationErrors.js +2 -0
  46. package/lib/cjs/internal/app-binder/command/utils/SolanaApplicationErrors.js.map +7 -0
  47. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js +1 -1
  48. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +3 -3
  49. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
  50. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +3 -3
  51. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  52. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  53. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  54. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  55. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  56. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  57. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  58. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  59. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js +1 -1
  60. package/lib/cjs/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  61. package/lib/cjs/internal/app-binder/task/SendCommandInChunksTask.js +1 -1
  62. package/lib/cjs/internal/app-binder/task/SendCommandInChunksTask.js.map +2 -2
  63. package/lib/cjs/internal/app-binder/task/SendSignDataTask.js +1 -1
  64. package/lib/cjs/internal/app-binder/task/SendSignDataTask.js.map +2 -2
  65. package/lib/cjs/internal/app-binder/task/SendSignDataTask.test.js +1 -1
  66. package/lib/cjs/internal/app-binder/task/SendSignDataTask.test.js.map +2 -2
  67. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.js +1 -1
  68. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.js.map +3 -3
  69. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.test.js +1 -1
  70. package/lib/cjs/internal/app-binder/task/SendSignMessageTask.test.js.map +2 -2
  71. package/lib/cjs/internal/di.js +1 -1
  72. package/lib/cjs/internal/di.js.map +2 -2
  73. package/lib/cjs/internal/use-cases/address/GetAddressUseCase.js +1 -1
  74. package/lib/cjs/internal/use-cases/address/GetAddressUseCase.js.map +2 -2
  75. package/lib/cjs/internal/use-cases/address/GetAddressUseCase.test.js +1 -1
  76. package/lib/cjs/internal/use-cases/address/GetAddressUseCase.test.js.map +2 -2
  77. package/lib/cjs/internal/use-cases/app-configuration/GetAppConfiguration.test.js +1 -1
  78. package/lib/cjs/internal/use-cases/app-configuration/GetAppConfiguration.test.js.map +2 -2
  79. package/lib/cjs/internal/use-cases/di/useCasesModule.js +1 -1
  80. package/lib/cjs/internal/use-cases/di/useCasesModule.js.map +3 -3
  81. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js +1 -1
  82. package/lib/cjs/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  83. package/lib/cjs/internal/use-cases/message/SignMessageUseCase.js +1 -1
  84. package/lib/cjs/internal/use-cases/message/SignMessageUseCase.js.map +3 -3
  85. package/lib/cjs/internal/use-cases/message/SignMessageUseCase.test.js +1 -1
  86. package/lib/cjs/internal/use-cases/message/SignMessageUseCase.test.js.map +2 -2
  87. package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.js +1 -1
  88. package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.js.map +2 -2
  89. package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.test.js +1 -1
  90. package/lib/cjs/internal/use-cases/transaction/SignTransactionUseCase.test.js.map +2 -2
  91. package/lib/cjs/package.json +17 -17
  92. package/lib/esm/api/model/MessageOptions.js +1 -0
  93. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  94. package/lib/esm/internal/DefaultSignerSolana.js +1 -1
  95. package/lib/esm/internal/DefaultSignerSolana.js.map +2 -2
  96. package/lib/esm/internal/DefaultSignerSolana.test.js +1 -1
  97. package/lib/esm/internal/DefaultSignerSolana.test.js.map +2 -2
  98. package/lib/esm/internal/app-binder/SolanaAppBinder.js +1 -1
  99. package/lib/esm/internal/app-binder/SolanaAppBinder.js.map +3 -3
  100. package/lib/esm/internal/app-binder/SolanaAppBinder.test.js +1 -1
  101. package/lib/esm/internal/app-binder/SolanaAppBinder.test.js.map +3 -3
  102. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
  103. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +3 -3
  104. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
  105. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
  106. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.js +1 -1
  107. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.js.map +3 -3
  108. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.test.js +1 -1
  109. package/lib/esm/internal/app-binder/command/GetPubKeyCommand.test.js.map +2 -2
  110. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.js +1 -1
  111. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.js.map +3 -3
  112. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.test.js +1 -1
  113. package/lib/esm/internal/app-binder/command/SignOffChainMessageCommand.test.js.map +2 -2
  114. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js +1 -1
  115. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js.map +3 -3
  116. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  117. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
  118. package/lib/esm/internal/app-binder/command/utils/SolanaAppErrors.test.js +2 -0
  119. package/lib/esm/internal/app-binder/command/utils/SolanaAppErrors.test.js.map +7 -0
  120. package/lib/esm/internal/app-binder/command/utils/SolanaApplicationErrors.js +2 -0
  121. package/lib/esm/internal/app-binder/command/utils/SolanaApplicationErrors.js.map +7 -0
  122. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js +1 -1
  123. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +3 -3
  124. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
  125. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +3 -3
  126. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  127. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  128. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  129. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  130. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  131. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  132. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  133. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  134. package/lib/esm/internal/app-binder/di/appBinderModule.test.js +1 -1
  135. package/lib/esm/internal/app-binder/di/appBinderModule.test.js.map +2 -2
  136. package/lib/esm/internal/app-binder/task/SendCommandInChunksTask.js +1 -1
  137. package/lib/esm/internal/app-binder/task/SendCommandInChunksTask.js.map +2 -2
  138. package/lib/esm/internal/app-binder/task/SendSignDataTask.js +1 -1
  139. package/lib/esm/internal/app-binder/task/SendSignDataTask.js.map +2 -2
  140. package/lib/esm/internal/app-binder/task/SendSignDataTask.test.js +1 -1
  141. package/lib/esm/internal/app-binder/task/SendSignDataTask.test.js.map +2 -2
  142. package/lib/esm/internal/app-binder/task/SendSignMessageTask.js +1 -1
  143. package/lib/esm/internal/app-binder/task/SendSignMessageTask.js.map +3 -3
  144. package/lib/esm/internal/app-binder/task/SendSignMessageTask.test.js +1 -1
  145. package/lib/esm/internal/app-binder/task/SendSignMessageTask.test.js.map +2 -2
  146. package/lib/esm/internal/di.js +1 -1
  147. package/lib/esm/internal/di.js.map +2 -2
  148. package/lib/esm/internal/use-cases/address/GetAddressUseCase.js +1 -1
  149. package/lib/esm/internal/use-cases/address/GetAddressUseCase.js.map +2 -2
  150. package/lib/esm/internal/use-cases/address/GetAddressUseCase.test.js +1 -1
  151. package/lib/esm/internal/use-cases/address/GetAddressUseCase.test.js.map +2 -2
  152. package/lib/esm/internal/use-cases/app-configuration/GetAppConfiguration.test.js +1 -1
  153. package/lib/esm/internal/use-cases/app-configuration/GetAppConfiguration.test.js.map +2 -2
  154. package/lib/esm/internal/use-cases/di/useCasesModule.js +1 -1
  155. package/lib/esm/internal/use-cases/di/useCasesModule.js.map +3 -3
  156. package/lib/esm/internal/use-cases/di/useCasesModule.test.js +1 -1
  157. package/lib/esm/internal/use-cases/di/useCasesModule.test.js.map +2 -2
  158. package/lib/esm/internal/use-cases/message/SignMessageUseCase.js +1 -1
  159. package/lib/esm/internal/use-cases/message/SignMessageUseCase.js.map +3 -3
  160. package/lib/esm/internal/use-cases/message/SignMessageUseCase.test.js +1 -1
  161. package/lib/esm/internal/use-cases/message/SignMessageUseCase.test.js.map +2 -2
  162. package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.js +1 -1
  163. package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.js.map +2 -2
  164. package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.test.js +1 -1
  165. package/lib/esm/internal/use-cases/transaction/SignTransactionUseCase.test.js.map +2 -2
  166. package/lib/esm/package.json +17 -17
  167. package/lib/types/api/SignerSolana.d.ts +2 -1
  168. package/lib/types/api/SignerSolana.d.ts.map +1 -1
  169. package/lib/types/api/app-binder/GetAddressDeviceActionTypes.d.ts +2 -1
  170. package/lib/types/api/app-binder/GetAddressDeviceActionTypes.d.ts.map +1 -1
  171. package/lib/types/api/app-binder/GetAppConfigurationDeviceActionTypes.d.ts +2 -1
  172. package/lib/types/api/app-binder/GetAppConfigurationDeviceActionTypes.d.ts.map +1 -1
  173. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts +3 -11
  174. package/lib/types/api/app-binder/SignMessageDeviceActionTypes.d.ts.map +1 -1
  175. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +4 -4
  176. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  177. package/lib/types/api/model/AddressOption.d.ts +1 -0
  178. package/lib/types/api/model/AddressOption.d.ts.map +1 -1
  179. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  180. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  181. package/lib/types/api/model/TransactionOptions.d.ts +3 -1
  182. package/lib/types/api/model/TransactionOptions.d.ts.map +1 -1
  183. package/lib/types/internal/DefaultSignerSolana.d.ts +2 -1
  184. package/lib/types/internal/DefaultSignerSolana.d.ts.map +1 -1
  185. package/lib/types/internal/app-binder/SolanaAppBinder.d.ts +3 -2
  186. package/lib/types/internal/app-binder/SolanaAppBinder.d.ts.map +1 -1
  187. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +4 -2
  188. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -1
  189. package/lib/types/internal/app-binder/command/GetPubKeyCommand.d.ts +4 -2
  190. package/lib/types/internal/app-binder/command/GetPubKeyCommand.d.ts.map +1 -1
  191. package/lib/types/internal/app-binder/command/SignOffChainMessageCommand.d.ts +4 -3
  192. package/lib/types/internal/app-binder/command/SignOffChainMessageCommand.d.ts.map +1 -1
  193. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts +5 -3
  194. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts.map +1 -1
  195. package/lib/types/internal/app-binder/command/utils/SolanaAppErrors.test.d.ts +2 -0
  196. package/lib/types/internal/app-binder/command/utils/SolanaAppErrors.test.d.ts.map +1 -0
  197. package/lib/types/internal/app-binder/command/utils/SolanaApplicationErrors.d.ts +8 -0
  198. package/lib/types/internal/app-binder/command/utils/SolanaApplicationErrors.d.ts.map +1 -0
  199. package/lib/types/internal/app-binder/device-action/SignTransactionDeviceAction.d.ts +2 -1
  200. package/lib/types/internal/app-binder/device-action/SignTransactionDeviceAction.d.ts.map +1 -1
  201. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
  202. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  203. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  204. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
  205. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  206. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  207. package/lib/types/internal/app-binder/task/SendCommandInChunksTask.d.ts +3 -2
  208. package/lib/types/internal/app-binder/task/SendCommandInChunksTask.d.ts.map +1 -1
  209. package/lib/types/internal/app-binder/task/SendSignDataTask.d.ts +3 -2
  210. package/lib/types/internal/app-binder/task/SendSignDataTask.d.ts.map +1 -1
  211. package/lib/types/internal/app-binder/task/SendSignMessageTask.d.ts +3 -1
  212. package/lib/types/internal/app-binder/task/SendSignMessageTask.d.ts.map +1 -1
  213. package/lib/types/internal/di.d.ts.map +1 -1
  214. package/lib/types/internal/use-cases/address/GetAddressUseCase.d.ts.map +1 -1
  215. package/lib/types/internal/use-cases/di/useCasesModule.d.ts.map +1 -1
  216. package/lib/types/internal/use-cases/message/SignMessageUseCase.d.ts +2 -1
  217. package/lib/types/internal/use-cases/message/SignMessageUseCase.d.ts.map +1 -1
  218. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  219. package/package.json +19 -19
  220. package/lib/cjs/internal/app-binder/command/utils/solanaAppError.test.js +0 -2
  221. package/lib/cjs/internal/app-binder/command/utils/solanaAppError.test.js.map +0 -7
  222. package/lib/cjs/internal/app-binder/command/utils/solanaAppErrors.js +0 -2
  223. package/lib/cjs/internal/app-binder/command/utils/solanaAppErrors.js.map +0 -7
  224. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
  225. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
  226. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
  227. package/lib/cjs/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
  228. package/lib/esm/internal/app-binder/command/utils/solanaAppError.test.js +0 -2
  229. package/lib/esm/internal/app-binder/command/utils/solanaAppError.test.js.map +0 -7
  230. package/lib/esm/internal/app-binder/command/utils/solanaAppErrors.js +0 -2
  231. package/lib/esm/internal/app-binder/command/utils/solanaAppErrors.js.map +0 -7
  232. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js +0 -2
  233. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.js.map +0 -7
  234. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js +0 -2
  235. package/lib/esm/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.js.map +0 -7
  236. package/lib/types/internal/app-binder/command/utils/solanaAppError.test.d.ts +0 -2
  237. package/lib/types/internal/app-binder/command/utils/solanaAppError.test.d.ts.map +0 -1
  238. package/lib/types/internal/app-binder/command/utils/solanaAppErrors.d.ts +0 -8
  239. package/lib/types/internal/app-binder/command/utils/solanaAppErrors.d.ts.map +0 -1
  240. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts +0 -15
  241. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.d.ts.map +0 -1
  242. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts +0 -2
  243. package/lib/types/internal/app-binder/device-action/SignMessage/SignMessageDeviceAction.test.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/app-binder/GetAppConfigurationDeviceActionTypes.ts"],
4
- "sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type SendCommandInAppDAError,\n type SendCommandInAppDAIntermediateValue,\n type SendCommandInAppDAOutput,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type AppConfiguration } from \"@api/model/AppConfiguration\";\n\nexport type GetAppConfigurationDAOutput =\n SendCommandInAppDAOutput<AppConfiguration>;\n\nexport type GetAppConfigurationDAError = SendCommandInAppDAError<never>;\n\nexport type GetAppConfigurationDAIntermediateValue =\n SendCommandInAppDAIntermediateValue<UserInteractionRequired.None>;\n\nexport type GetAppConfigurationDAReturnType = ExecuteDeviceActionReturnType<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n>;\n"],
4
+ "sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type SendCommandInAppDAError,\n type SendCommandInAppDAIntermediateValue,\n type SendCommandInAppDAOutput,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nimport { type SolanaAppErrorCodes } from \"@internal/app-binder/command/utils/SolanaApplicationErrors\";\n\nexport type GetAppConfigurationDAOutput =\n SendCommandInAppDAOutput<AppConfiguration>;\n\nexport type GetAppConfigurationDAError =\n SendCommandInAppDAError<SolanaAppErrorCodes>;\n\nexport type GetAppConfigurationDAIntermediateValue =\n SendCommandInAppDAIntermediateValue<UserInteractionRequired.None>;\n\nexport type GetAppConfigurationDAReturnType = ExecuteDeviceActionReturnType<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n>;\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["GetAppConfigurationDeviceActionTypes_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var o=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!g.call(t,r)&&r!==a&&i(t,r,{get:()=>e[r],enumerable:!(n=s(e,r))||n.enumerable});return t};var u=t=>o(i({},"__esModule",{value:!0}),t);var A={};module.exports=u(A);
1
+ "use strict";var p=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var A=(r,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!s.call(r,t)&&t!==i&&p(r,t,{get:()=>e[t],enumerable:!(n=o(e,t))||n.enumerable});return r};var g=r=>A(p({},"__esModule",{value:!0}),r);var u={};module.exports=g(u);
2
2
  //# sourceMappingURL=SignMessageDeviceActionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/app-binder/SignMessageDeviceActionTypes.ts"],
4
- "sourcesContent": ["import {\n type CommandErrorResult,\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\n\nexport type SignMessageDAOutput = Signature;\n\nexport type SignMessageDAInput = {\n readonly derivationPath: string;\n readonly message: string;\n};\n\nexport type SignMessageDAError = OpenAppDAError | CommandErrorResult[\"error\"];\n\ntype SignMessageDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignPersonalMessage;\n\nexport type SignMessageDAIntermediateValue = {\n requiredUserInteraction: SignMessageDARequiredInteraction;\n};\n\nexport type SignMessageDAState = DeviceActionState<\n SignMessageDAOutput,\n SignMessageDAError,\n SignMessageDAIntermediateValue\n>;\n\nexport type SignMessageDAInternalState = {\n readonly error: SignMessageDAError | null;\n readonly signature: Signature | null;\n};\n\nexport type SignMessageDAReturnType = ExecuteDeviceActionReturnType<\n SignMessageDAOutput,\n SignMessageDAError,\n SignMessageDAIntermediateValue\n>;\n"],
4
+ "sourcesContent": ["import {\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type SendCommandInAppDAError,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\nimport { type SolanaAppErrorCodes } from \"@internal/app-binder/command/utils/SolanaApplicationErrors\";\n\nexport type SignMessageDAOutput = Signature;\n\nexport type SignMessageDAError =\n | OpenAppDAError\n | SendCommandInAppDAError<SolanaAppErrorCodes>;\n\ntype SignMessageDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignPersonalMessage;\n\nexport type SignMessageDAIntermediateValue = {\n requiredUserInteraction: SignMessageDARequiredInteraction;\n};\n\nexport type SignMessageDAReturnType = ExecuteDeviceActionReturnType<\n SignMessageDAOutput,\n SignMessageDAError,\n SignMessageDAIntermediateValue\n>;\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["SignMessageDeviceActionTypes_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var s=(t,n,a,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of p(n))!c.call(t,r)&&r!==a&&i(t,r,{get:()=>n[r],enumerable:!(e=o(n,r))||e.enumerable});return t};var u=t=>s(i({},"__esModule",{value:!0}),t);var A={};module.exports=u(A);
1
+ "use strict";var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var A=(e,n,i,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of p(n))!c.call(e,r)&&r!==i&&a(e,r,{get:()=>n[r],enumerable:!(t=o(n,r))||t.enumerable});return e};var s=e=>A(a({},"__esModule",{value:!0}),e);var u={};module.exports=s(u);
2
2
  //# sourceMappingURL=SignTransactionDeviceActionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/app-binder/SignTransactionDeviceActionTypes.ts"],
4
- "sourcesContent": ["import {\n type CommandErrorResult,\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\n\nexport type SignTransactionDAOutput = Signature;\n\nexport type SignTransactionDAInput = {\n readonly derivationPath: string;\n readonly transaction: Transaction;\n readonly options: TransactionOptions;\n};\n\nexport type SignTransactionDAError =\n | OpenAppDAError\n | CommandErrorResult[\"error\"];\n\ntype SignTransactionDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignTransaction;\n\nexport type SignTransactionDAIntermediateValue = {\n requiredUserInteraction: SignTransactionDARequiredInteraction;\n};\n\nexport type SignTransactionDAState = DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n\nexport type SignTransactionDAInternalState = {\n readonly error: SignTransactionDAError | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTransactionDAReturnType = ExecuteDeviceActionReturnType<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n"],
4
+ "sourcesContent": ["import {\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type SendCommandInAppDAError,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { type SolanaAppErrorCodes } from \"@internal/app-binder/command/utils/SolanaApplicationErrors\";\n\nexport type SignTransactionDAOutput = Signature;\n\nexport type SignTransactionDAInput = {\n readonly derivationPath: string;\n readonly transaction: Transaction;\n readonly skipOpenApp: boolean;\n};\n\nexport type SignTransactionDAError =\n | OpenAppDAError\n | SendCommandInAppDAError<SolanaAppErrorCodes>;\n\ntype SignTransactionDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignTransaction;\n\nexport type SignTransactionDAIntermediateValue = {\n requiredUserInteraction: SignTransactionDARequiredInteraction;\n};\n\nexport type SignTransactionDAState = DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n\nexport type SignTransactionDAInternalState = {\n readonly error: SignTransactionDAError | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTransactionDAReturnType = ExecuteDeviceActionReturnType<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["SignTransactionDeviceActionTypes_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var r=(o,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of d(e))!i.call(o,c)&&c!==s&&p(o,c,{get:()=>e[c],enumerable:!(n=t(e,c))||n.enumerable});return o};var O=o=>r(p({},"__esModule",{value:!0}),o);var a={};module.exports=O(a);
1
+ "use strict";var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var a=(p,e,c,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of t(e))!O.call(p,o)&&o!==c&&s(p,o,{get:()=>e[o],enumerable:!(n=i(e,o))||n.enumerable});return p};var b=p=>a(s({},"__esModule",{value:!0}),p);var d={};module.exports=b(d);
2
2
  //# sourceMappingURL=AddressOption.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/model/AddressOption.ts"],
4
- "sourcesContent": ["export type AddressOptions = {\n checkOnDevice?: boolean;\n};\n"],
4
+ "sourcesContent": ["export type AddressOptions = {\n checkOnDevice?: boolean;\n skipOpenApp?: boolean;\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["AddressOption_exports", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var b=(e,p,t,s)=>{if(p&&typeof p=="object"||typeof p=="function")for(let o of i(p))!O.call(e,o)&&o!==t&&n(e,o,{get:()=>p[o],enumerable:!(s=a(p,o))||s.enumerable});return e};var g=e=>b(n({},"__esModule",{value:!0}),e);var k={};module.exports=g(k);
2
+ //# sourceMappingURL=MessageOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/model/MessageOptions.ts"],
4
+ "sourcesContent": ["export type MessageOptions = {\n skipOpenApp?: boolean;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["MessageOptions_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var c=(n,e,i,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of s(e))!a.call(n,r)&&r!==i&&o(n,r,{get:()=>e[r],enumerable:!(t=p(e,r))||t.enumerable});return n};var d=n=>c(o({},"__esModule",{value:!0}),n);var g={};module.exports=d(g);
1
+ "use strict";var t=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var O=(n,p,a,e)=>{if(p&&typeof p=="object"||typeof p=="function")for(let o of s(p))!r.call(n,o)&&o!==a&&t(n,o,{get:()=>p[o],enumerable:!(e=i(p,o))||e.enumerable});return n};var b=n=>O(t({},"__esModule",{value:!0}),n);var c={};module.exports=b(c);
2
2
  //# sourceMappingURL=TransactionOptions.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/model/TransactionOptions.ts"],
4
- "sourcesContent": ["// No option yet, but we need to keep this file for future use\n// in case of clear signing options\nexport type TransactionOptions = Record<string, never>;\n"],
4
+ "sourcesContent": ["export type TransactionOptions = {\n skipOpenApp?: boolean;\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["TransactionOptions_exports", "__toCommonJS"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["// inversify requirement\nimport \"reflect-metadata\";\n\nexport * from \"@api/index\";\n"],
5
5
  "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GACA,IAAAE,EAAO,4BAEPC,EAAAH,EAAc,sBAHd",
6
- "names": ["src_exports", "__toCommonJS", "import_reflect_metadata", "__reExport"]
6
+ "names": ["index_exports", "__toCommonJS", "import_reflect_metadata", "__reExport"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},u=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of g(e))!m.call(n,r)&&r!==t&&o(n,r,{get:()=>e[r],enumerable:!(i=p(e,r))||i.enumerable});return n};var f=n=>u(o({},"__esModule",{value:!0}),n);var A={};c(A,{DefaultSignerSolana:()=>y});module.exports=f(A);var s=require("./use-cases/di/useCasesTypes"),a=require("./di");class y{_container;constructor({dmk:e,sessionId:t}){this._container=(0,a.makeContainer)({dmk:e,sessionId:t})}signTransaction(e,t,i){return this._container.get(s.useCasesTypes.SignTransactionUseCase).execute(e,t,i)}signMessage(e,t){return this._container.get(s.useCasesTypes.SignMessageUseCase).execute(e,t)}getAddress(e,t){return this._container.get(s.useCasesTypes.GetAddressUseCase).execute(e,t)}getAppConfiguration(){return this._container.get(s.useCasesTypes.GetAppConfigurationUseCase).execute()}}0&&(module.exports={DefaultSignerSolana});
1
+ "use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},u=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of g(e))!m.call(n,s)&&s!==t&&o(n,s,{get:()=>e[s],enumerable:!(r=p(e,s))||r.enumerable});return n};var f=n=>u(o({},"__esModule",{value:!0}),n);var A={};c(A,{DefaultSignerSolana:()=>y});module.exports=f(A);var i=require("./use-cases/di/useCasesTypes"),a=require("./di");class y{_container;constructor({dmk:e,sessionId:t}){this._container=(0,a.makeContainer)({dmk:e,sessionId:t})}signTransaction(e,t,r){return this._container.get(i.useCasesTypes.SignTransactionUseCase).execute(e,t,r)}signMessage(e,t,r){return this._container.get(i.useCasesTypes.SignMessageUseCase).execute(e,t,r)}getAddress(e,t){return this._container.get(i.useCasesTypes.GetAddressUseCase).execute(e,t)}getAppConfiguration(){return this._container.get(i.useCasesTypes.GetAppConfigurationUseCase).execute()}}0&&(module.exports={DefaultSignerSolana});
2
2
  //# sourceMappingURL=DefaultSignerSolana.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/DefaultSignerSolana.ts"],
4
- "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { type SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOption\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type SignerSolana } from \"@api/SignerSolana\";\n\nimport { type GetAddressUseCase } from \"./use-cases/address/GetAddressUseCase\";\nimport { type GetAppConfigurationUseCase } from \"./use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { useCasesTypes } from \"./use-cases/di/useCasesTypes\";\nimport { type SignMessageUseCase } from \"./use-cases/message/SignMessageUseCase\";\nimport { type SignTransactionUseCase } from \"./use-cases/transaction/SignTransactionUseCase\";\nimport { makeContainer } from \"./di\";\n\nexport type DefaultSignerSolanaConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerSolana implements SignerSolana {\n private _container: Container;\n\n constructor({ dmk, sessionId }: DefaultSignerSolanaConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId });\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Transaction,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(useCasesTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signMessage(\n derivationPath: string,\n message: string,\n ): SignMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(useCasesTypes.SignMessageUseCase)\n .execute(derivationPath, message);\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(useCasesTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this._container\n .get<GetAppConfigurationUseCase>(useCasesTypes.GetAppConfigurationUseCase)\n .execute();\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAiBA,IAAAI,EAA8B,wCAG9BC,EAA8B,gBAOvB,MAAMH,CAA4C,CAC/C,WAER,YAAY,CAAE,IAAAI,EAAK,UAAAC,CAAU,EAAuC,CAClE,KAAK,cAAa,iBAAc,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,gBACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4B,gBAAc,sBAAsB,EAChE,QAAQF,EAAgBC,EAAaC,CAAO,CACjD,CAEA,YACEF,EACAG,EACyB,CACzB,OAAO,KAAK,WACT,IAAwB,gBAAc,kBAAkB,EACxD,QAAQH,EAAgBG,CAAO,CACpC,CAEA,WACEH,EACAE,EACwB,CACxB,OAAO,KAAK,WACT,IAAuB,gBAAc,iBAAiB,EACtD,QAAQF,EAAgBE,CAAO,CACpC,CAEA,qBAAuD,CACrD,OAAO,KAAK,WACT,IAAgC,gBAAc,0BAA0B,EACxE,QAAQ,CACb,CACF",
4
+ "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { type SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOption\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type Transaction } from \"@api/model/Transaction\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type SignerSolana } from \"@api/SignerSolana\";\n\nimport { type GetAddressUseCase } from \"./use-cases/address/GetAddressUseCase\";\nimport { type GetAppConfigurationUseCase } from \"./use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { useCasesTypes } from \"./use-cases/di/useCasesTypes\";\nimport { type SignMessageUseCase } from \"./use-cases/message/SignMessageUseCase\";\nimport { type SignTransactionUseCase } from \"./use-cases/transaction/SignTransactionUseCase\";\nimport { makeContainer } from \"./di\";\n\nexport type DefaultSignerSolanaConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerSolana implements SignerSolana {\n private _container: Container;\n\n constructor({ dmk, sessionId }: DefaultSignerSolanaConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId });\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Transaction,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(useCasesTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signMessage(\n derivationPath: string,\n message: string,\n options?: MessageOptions,\n ): SignMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(useCasesTypes.SignMessageUseCase)\n .execute(derivationPath, message, options);\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(useCasesTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this._container\n .get<GetAppConfigurationUseCase>(useCasesTypes.GetAppConfigurationUseCase)\n .execute();\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAkBA,IAAAI,EAA8B,wCAG9BC,EAA8B,gBAOvB,MAAMH,CAA4C,CAC/C,WAER,YAAY,CAAE,IAAAI,EAAK,UAAAC,CAAU,EAAuC,CAClE,KAAK,cAAa,iBAAc,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,gBACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4B,gBAAc,sBAAsB,EAChE,QAAQF,EAAgBC,EAAaC,CAAO,CACjD,CAEA,YACEF,EACAG,EACAD,EACyB,CACzB,OAAO,KAAK,WACT,IAAwB,gBAAc,kBAAkB,EACxD,QAAQF,EAAgBG,EAASD,CAAO,CAC7C,CAEA,WACEF,EACAE,EACwB,CACxB,OAAO,KAAK,WACT,IAAuB,gBAAc,iBAAiB,EACtD,QAAQF,EAAgBE,CAAO,CACpC,CAEA,qBAAuD,CACrD,OAAO,KAAK,WACT,IAAgC,gBAAc,0BAA0B,EACxE,QAAQ,CACb,CACF",
6
6
  "names": ["DefaultSignerSolana_exports", "__export", "DefaultSignerSolana", "__toCommonJS", "import_useCasesTypes", "import_di", "dmk", "sessionId", "derivationPath", "transaction", "options", "message"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=require("./DefaultSignerSolana");describe("DefaultSignerSolana",()=>{it("should be defined",()=>{const e=new s.DefaultSignerSolana({dmk:{},sessionId:{}});expect(e).toBeDefined()}),it("should call getAddress",()=>{const e={executeDeviceAction:jest.fn()},n={};new s.DefaultSignerSolana({dmk:e,sessionId:n}).getAddress("derivationPath",{}),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call signTransaction",()=>{const e={executeDeviceAction:jest.fn()},n={};new s.DefaultSignerSolana({dmk:e,sessionId:n}).signTransaction("derivationPath",new Uint8Array,{}),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call signMessage",()=>{const e={executeDeviceAction:jest.fn()},n={};new s.DefaultSignerSolana({dmk:e,sessionId:n}).signMessage("44'/501'/0'/0'","Hello world"),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call getAppConfiguration",()=>{const e={executeDeviceAction:jest.fn()},n={};new s.DefaultSignerSolana({dmk:e,sessionId:n}).getAppConfiguration(),expect(e.executeDeviceAction).toHaveBeenCalled()})});
1
+ "use strict";var i=require("./DefaultSignerSolana");describe("DefaultSignerSolana",()=>{it("should be defined",()=>{const e=new i.DefaultSignerSolana({dmk:{},sessionId:{}});expect(e).toBeDefined()}),it("should call getAddress",()=>{const e={executeDeviceAction:vi.fn()},n={};new i.DefaultSignerSolana({dmk:e,sessionId:n}).getAddress("derivationPath",{}),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call signTransaction",()=>{const e={executeDeviceAction:vi.fn()},n={};new i.DefaultSignerSolana({dmk:e,sessionId:n}).signTransaction("derivationPath",new Uint8Array,{}),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call signMessage",()=>{const e={executeDeviceAction:vi.fn()},n={};new i.DefaultSignerSolana({dmk:e,sessionId:n}).signMessage("44'/501'/0'/0'","Hello world"),expect(e.executeDeviceAction).toHaveBeenCalled()}),it("should call getAppConfiguration",()=>{const e={executeDeviceAction:vi.fn()},n={};new i.DefaultSignerSolana({dmk:e,sessionId:n}).getAppConfiguration(),expect(e.executeDeviceAction).toHaveBeenCalled()})});
2
2
  //# sourceMappingURL=DefaultSignerSolana.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/DefaultSignerSolana.test.ts"],
4
- "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultSignerSolana } from \"./DefaultSignerSolana\";\n\ndescribe(\"DefaultSignerSolana\", () => {\n it(\"should be defined\", () => {\n const signer = new DefaultSignerSolana({\n dmk: {} as DeviceManagementKit,\n sessionId: {} as DeviceSessionId,\n });\n expect(signer).toBeDefined();\n });\n\n it(\"should call getAddress\", () => {\n const dmk = {\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.getAddress(\"derivationPath\", {});\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call signTransaction\", () => {\n const dmk = {\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.signTransaction(\"derivationPath\", new Uint8Array(), {});\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call signMessage\", () => {\n const dmk = {\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.signMessage(\"44'/501'/0'/0'\", \"Hello world\");\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call getAppConfiguration\", () => {\n const dmk = {\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.getAppConfiguration();\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n});\n"],
5
- "mappings": "aAKA,IAAAA,EAAoC,iCAEpC,SAAS,sBAAuB,IAAM,CACpC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAI,sBAAoB,CACrC,IAAK,CAAC,EACN,UAAW,CAAC,CACd,CAAC,EACD,OAAOA,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,yBAA0B,IAAM,CACjC,MAAMC,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,WAAW,iBAAkB,CAAC,CAAC,EACtC,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,8BAA+B,IAAM,CACtC,MAAMA,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,gBAAgB,iBAAkB,IAAI,WAAc,CAAC,CAAC,EAC7D,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,0BAA2B,IAAM,CAClC,MAAMA,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,YAAY,iBAAkB,aAAa,EAClD,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,MAAMA,EAAM,CACV,oBAAqB,KAAK,GAAG,CAC/B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,oBAAoB,EAC3B,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultSignerSolana } from \"./DefaultSignerSolana\";\n\ndescribe(\"DefaultSignerSolana\", () => {\n it(\"should be defined\", () => {\n const signer = new DefaultSignerSolana({\n dmk: {} as DeviceManagementKit,\n sessionId: {} as DeviceSessionId,\n });\n expect(signer).toBeDefined();\n });\n\n it(\"should call getAddress\", () => {\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.getAddress(\"derivationPath\", {});\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call signTransaction\", () => {\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.signTransaction(\"derivationPath\", new Uint8Array(), {});\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call signMessage\", () => {\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.signMessage(\"44'/501'/0'/0'\", \"Hello world\");\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n\n it(\"should call getAppConfiguration\", () => {\n const dmk = {\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const sessionId = {} as DeviceSessionId;\n const signer = new DefaultSignerSolana({ dmk, sessionId });\n signer.getAppConfiguration();\n expect(dmk.executeDeviceAction).toHaveBeenCalled();\n });\n});\n"],
5
+ "mappings": "aAKA,IAAAA,EAAoC,iCAEpC,SAAS,sBAAuB,IAAM,CACpC,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAI,sBAAoB,CACrC,IAAK,CAAC,EACN,UAAW,CAAC,CACd,CAAC,EACD,OAAOA,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,GAAG,yBAA0B,IAAM,CACjC,MAAMC,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,WAAW,iBAAkB,CAAC,CAAC,EACtC,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,8BAA+B,IAAM,CACtC,MAAMA,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,gBAAgB,iBAAkB,IAAI,WAAc,CAAC,CAAC,EAC7D,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,0BAA2B,IAAM,CAClC,MAAMA,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,YAAY,iBAAkB,aAAa,EAClD,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,MAAMA,EAAM,CACV,oBAAqB,GAAG,GAAG,CAC7B,EACMC,EAAY,CAAC,EACJ,IAAI,sBAAoB,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,EAClD,oBAAoB,EAC3B,OAAOD,EAAI,mBAAmB,EAAE,iBAAiB,CACnD,CAAC,CACH,CAAC",
6
6
  "names": ["import_DefaultSignerSolana", "signer", "dmk", "sessionId"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var y=(i,e)=>{for(var t in e)c(i,t,{get:e[t],enumerable:!0})},R=(i,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of T(e))!I.call(i,n)&&n!==t&&c(i,n,{get:()=>e[n],enumerable:!(o=v(e,n))||o.enumerable});return i};var S=i=>R(c({},"__esModule",{value:!0}),i),A=(i,e,t,o)=>{for(var n=o>1?void 0:o?v(e,t):e,m=i.length-1,p;m>=0;m--)(p=i[m])&&(n=(o?p(e,t,n):p(n))||n);return o&&n&&c(e,t,n),n},d=(i,e)=>(t,o)=>e(t,o,i);var k={};y(k,{SolanaAppBinder:()=>r});module.exports=S(k);var s=require("@ledgerhq/device-management-kit"),a=require("inversify"),u=require("../externalTypes"),g=require("./command/GetAppConfigurationCommand"),D=require("./command/GetPubKeyCommand"),f=require("./device-action/SignMessage/SignMessageDeviceAction"),h=require("./device-action/SignTransactionDeviceAction");let r=class{constructor(e,t){this.dmk=e;this.sessionId=t}getAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new D.GetPubKeyCommand(e),appName:"Solana",requiredUserInteraction:e.checkOnDevice?s.UserInteractionRequired.VerifyAddress:s.UserInteractionRequired.None}})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new h.SignTransactionDeviceAction({input:{derivationPath:e.derivationPath,transaction:e.transaction,options:e.options??{}}})})}signMessage(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new f.SignMessageDeviceAction({input:{derivationPath:e.derivationPath,message:e.message}})})}getAppConfiguration(){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new g.GetAppConfigurationCommand,appName:"Solana",requiredUserInteraction:s.UserInteractionRequired.None}})})}};r=A([(0,a.injectable)(),d(0,(0,a.inject)(u.externalTypes.Dmk)),d(1,(0,a.inject)(u.externalTypes.SessionId))],r);0&&(module.exports={SolanaAppBinder});
1
+ "use strict";var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var h=(n,e)=>{for(var i in e)a(n,i,{get:e[i],enumerable:!0})},y=(n,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of I(e))!T.call(n,t)&&t!==i&&a(n,t,{get:()=>e[t],enumerable:!(o=u(e,t))||o.enumerable});return n};var O=n=>y(a({},"__esModule",{value:!0}),n),v=(n,e,i,o)=>{for(var t=o>1?void 0:o?u(e,i):e,c=n.length-1,d;c>=0;c--)(d=n[c])&&(t=(o?d(e,i,t):d(t))||t);return o&&t&&a(e,i,t),t},m=(n,e)=>(i,o)=>e(i,o,n);var S={};h(S,{SolanaAppBinder:()=>r});module.exports=O(S);var s=require("@ledgerhq/device-management-kit"),p=require("inversify"),g=require("../app-binder/task/SendSignMessageTask"),A=require("../externalTypes"),D=require("./command/GetAppConfigurationCommand"),k=require("./command/GetPubKeyCommand"),f=require("./device-action/SignTransactionDeviceAction");let r=class{constructor(e,i){this.dmk=e;this.sessionId=i}getAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new k.GetPubKeyCommand(e),appName:"Solana",requiredUserInteraction:e.checkOnDevice?s.UserInteractionRequired.VerifyAddress:s.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp}})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new f.SignTransactionDeviceAction({input:{derivationPath:e.derivationPath,transaction:e.transaction,skipOpenApp:e.skipOpenApp}})})}signMessage(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new s.CallTaskInAppDeviceAction({input:{task:async i=>new g.SendSignMessageTask(i,{derivationPath:e.derivationPath,sendingData:new TextEncoder().encode(e.message)}).run(),appName:"Solana",requiredUserInteraction:s.UserInteractionRequired.SignPersonalMessage,skipOpenApp:e.skipOpenApp}})})}getAppConfiguration(){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new D.GetAppConfigurationCommand,appName:"Solana",requiredUserInteraction:s.UserInteractionRequired.None,skipOpenApp:!1}})})}};r=v([(0,p.injectable)(),m(0,(0,p.inject)(A.externalTypes.Dmk)),m(1,(0,p.inject)(A.externalTypes.SessionId))],r);0&&(module.exports={SolanaAppBinder});
2
2
  //# sourceMappingURL=SolanaAppBinder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/SolanaAppBinder.ts"],
4
- "sourcesContent": ["import {\n DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { Transaction } from \"@api/model/Transaction\";\nimport { TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\nimport { GetAppConfigurationCommand } from \"./command/GetAppConfigurationCommand\";\nimport { GetPubKeyCommand } from \"./command/GetPubKeyCommand\";\nimport { SignMessageDeviceAction } from \"./device-action/SignMessage/SignMessageDeviceAction\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransactionDeviceAction\";\n\n@injectable()\nexport class SolanaAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(args),\n appName: \"Solana\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n },\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Transaction;\n options?: TransactionOptions;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n options: args.options ?? {},\n },\n }),\n });\n }\n\n signMessage(args: {\n derivationPath: string;\n message: string;\n }): SignMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignMessageDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n message: args.message,\n },\n }),\n });\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n });\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAKO,2CACPC,EAAmC,qBAQnCC,EAA8B,mCAE9BC,EAA2C,gDAC3CC,EAAiC,sCACjCC,EAAwC,+DACxCC,EAA4C,uDAGrC,IAAMC,EAAN,KAAsB,CAC3B,YACqCC,EACMC,EACzC,CAFmC,SAAAD,EACM,eAAAC,CACxC,CAEH,WAAWC,EAGgB,CACzB,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,mBAAiBA,CAAI,EAClC,QAAS,SACT,wBAAyBA,EAAK,cAC1B,0BAAwB,cACxB,0BAAwB,IAC9B,CACF,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBA,EAIgB,CAC9B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,8BAA4B,CAC5C,MAAO,CACL,eAAgBA,EAAK,eACrB,YAAaA,EAAK,YAClB,QAASA,EAAK,SAAW,CAAC,CAC5B,CACF,CAAC,CACH,CAAC,CACH,CAEA,YAAYA,EAGgB,CAC1B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,0BAAwB,CACxC,MAAO,CACL,eAAgBA,EAAK,eACrB,QAASA,EAAK,OAChB,CACF,CAAC,CACH,CAAC,CACH,CAEA,qBAAuD,CACrD,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,6BACb,QAAS,SACT,wBAAyB,0BAAwB,IACnD,CACF,CAAC,CACH,CAAC,CACH,CACF,EApEaH,EAANI,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GACxBA,EAAA,eAAO,gBAAc,SAAS,IAHtBL",
6
- "names": ["SolanaAppBinder_exports", "__export", "SolanaAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_externalTypes", "import_GetAppConfigurationCommand", "import_GetPubKeyCommand", "import_SignMessageDeviceAction", "import_SignTransactionDeviceAction", "SolanaAppBinder", "dmk", "sessionId", "args", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n DeviceManagementKit,\n type DeviceSessionId,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { SignMessageDAReturnType } from \"@api/app-binder/SignMessageDeviceActionTypes\";\nimport { SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { Transaction } from \"@api/model/Transaction\";\nimport { SendSignMessageTask } from \"@internal/app-binder/task/SendSignMessageTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\nimport { GetAppConfigurationCommand } from \"./command/GetAppConfigurationCommand\";\nimport { GetPubKeyCommand } from \"./command/GetPubKeyCommand\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransactionDeviceAction\";\n\n@injectable()\nexport class SolanaAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice: boolean;\n skipOpenApp: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(args),\n appName: \"Solana\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Transaction;\n skipOpenApp: boolean;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signMessage(args: {\n derivationPath: string;\n message: string;\n skipOpenApp: boolean;\n }): SignMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignMessageTask(internalApi, {\n derivationPath: args.derivationPath,\n sendingData: new TextEncoder().encode(args.message),\n }).run(),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n }),\n });\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAMO,2CACPC,EAAmC,qBAOnCC,EAAoC,yDACpCC,EAA8B,mCAE9BC,EAA2C,gDAC3CC,EAAiC,sCACjCC,EAA4C,uDAGrC,IAAMC,EAAN,KAAsB,CAC3B,YACqCC,EACMC,EACzC,CAFmC,SAAAD,EACM,eAAAC,CACxC,CAEH,WAAWC,EAIgB,CACzB,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,mBAAiBA,CAAI,EAClC,QAAS,SACT,wBAAyBA,EAAK,cAC1B,0BAAwB,cACxB,0BAAwB,KAC5B,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBA,EAIgB,CAC9B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,8BAA4B,CAC5C,MAAO,CACL,eAAgBA,EAAK,eACrB,YAAaA,EAAK,YAClB,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,YAAYA,EAIgB,CAC1B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAI,sBAAoBA,EAAa,CACnC,eAAgBD,EAAK,eACrB,YAAa,IAAI,YAAY,EAAE,OAAOA,EAAK,OAAO,CACpD,CAAC,EAAE,IAAI,EACT,QAAS,SACT,wBAAyB,0BAAwB,oBACjD,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,qBAAuD,CACrD,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,6BACb,QAAS,SACT,wBAAyB,0BAAwB,KACjD,YAAa,EACf,CACF,CAAC,CACH,CAAC,CACH,CACF,EA9EaH,EAANK,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GACxBA,EAAA,eAAO,gBAAc,SAAS,IAHtBN",
6
+ "names": ["SolanaAppBinder_exports", "__export", "SolanaAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_SendSignMessageTask", "import_externalTypes", "import_GetAppConfigurationCommand", "import_GetPubKeyCommand", "import_SignTransactionDeviceAction", "SolanaAppBinder", "dmk", "sessionId", "args", "internalApi", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=require("@ledgerhq/device-management-kit"),d=require("rxjs"),A=require("./command/GetAppConfigurationCommand"),u=require("./command/GetPubKeyCommand"),l=require("./device-action/SignMessage/SignMessageDeviceAction"),m=require("./device-action/SignTransactionDeviceAction"),r=require("./SolanaAppBinder");describe("SolanaAppBinder",()=>{const n={sendCommand:jest.fn(),executeDeviceAction:jest.fn()};beforeEach(()=>{jest.clearAllMocks()}),it("should be defined",()=>{const e=new r.SolanaAppBinder({},{});expect(e).toBeDefined()}),describe("getAddress",()=>{it("should return the address",e=>{const i="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";jest.spyOn(n,"executeDeviceAction").mockReturnValue({observable:(0,d.from)([{status:s.DeviceActionStatus.Completed,output:i}]),cancel:jest.fn()});const o=new r.SolanaAppBinder(n,"sessionId"),{observable:c}=o.getAddress({derivationPath:"44'/501'",checkOnDevice:!1}),a=[];c.subscribe({next:t=>{a.push(t)},error:t=>{e(t)},complete:()=>{try{expect(a).toEqual([{status:s.DeviceActionStatus.Completed,output:i}]),e()}catch(t){e(t)}}})}),describe("calls of executeDeviceAction with the correct params",()=>{const e={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const o={...e,checkOnDevice:!0};new r.SolanaAppBinder(n,"sessionId").getAddress(o),expect(n.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new u.GetPubKeyCommand(o),appName:"Solana",requiredUserInteraction:s.UserInteractionRequired.VerifyAddress}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const o={...e,checkOnDevice:!1};new r.SolanaAppBinder(n,"sessionId").getAddress(o),expect(n.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new u.GetPubKeyCommand(o),appName:"Solana",requiredUserInteraction:s.UserInteractionRequired.None}})})})})}),describe("signTransaction",()=>{it("should return the signature",e=>{const i=new Uint8Array([1,2,3]);jest.spyOn(n,"executeDeviceAction").mockReturnValue({observable:(0,d.from)([{status:s.DeviceActionStatus.Completed,output:i}]),cancel:jest.fn()});const o=new r.SolanaAppBinder(n,"sessionId"),{observable:c}=o.signTransaction({derivationPath:"44'/501'",transaction:new Uint8Array([1,2,3,4])}),a=[];c.subscribe({next:t=>{a.push(t)},error:t=>{e(t)},complete:()=>{try{expect(a).toEqual([{status:s.DeviceActionStatus.Completed,output:i}]),e()}catch(t){e(t)}}})}),it("should call executeDeviceAction with the correct params",()=>{const e="44'/60'/3'/2/1",i=new Uint8Array([1,2,3,4]);new r.SolanaAppBinder(n,"sessionId").signTransaction({derivationPath:e,transaction:i}),expect(n.executeDeviceAction).toHaveBeenCalledWith({deviceAction:new m.SignTransactionDeviceAction({input:{derivationPath:e,transaction:i,options:{}}}),sessionId:"sessionId"})})}),describe("signMessage",()=>{it("should return the signed message",e=>{const i=new Uint8Array([28,138,84,5,16]),o={derivationPath:"44'/501'/0'/0'",message:"Hello world"};jest.spyOn(n,"executeDeviceAction").mockReturnValue({observable:(0,d.from)([{status:s.DeviceActionStatus.Completed,output:i}]),cancel:jest.fn()});const c=new r.SolanaAppBinder(n,"sessionId"),{observable:a}=c.signMessage(o),t=[];a.subscribe({next:p=>{t.push(p)},error:p=>{e(p)},complete:()=>{try{expect(t).toEqual([{status:s.DeviceActionStatus.Completed,output:i}]),e()}catch(p){e(p)}}})}),it("should call executeDeviceAction with correct parameters",()=>{const e={derivationPath:"44'/501'/0'/0'",message:"Hello world"};new r.SolanaAppBinder(n,"sessionId").signMessage(e),expect(n.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new l.SignMessageDeviceAction({input:{derivationPath:e.derivationPath,message:e.message}})})})}),describe("getAppConfiguration",()=>{it("should return the app configuration",e=>{const i={blindSigningEnabled:!0,pubKeyDisplayMode:"LONG",version:"2.5.10"};jest.spyOn(n,"executeDeviceAction").mockReturnValue({observable:(0,d.from)([{status:s.DeviceActionStatus.Completed,output:i}]),cancel:jest.fn()});const o=new r.SolanaAppBinder(n,"sessionId"),{observable:c}=o.getAppConfiguration(),a=[];c.subscribe({next:t=>{a.push(t)},error:t=>{e(t)},complete:()=>{try{expect(a).toEqual([{status:s.DeviceActionStatus.Completed,output:i}]),e()}catch(t){e(t)}}})}),it("should call executeDeviceAction with the correct params",()=>{new r.SolanaAppBinder(n,"sessionId").getAppConfiguration(),expect(n.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new s.SendCommandInAppDeviceAction({input:{command:new A.GetAppConfigurationCommand,appName:"Solana",requiredUserInteraction:s.UserInteractionRequired.None}})})})})});
1
+ "use strict";var n=require("@ledgerhq/device-management-kit"),u=require("rxjs"),l=require("./command/GetAppConfigurationCommand"),A=require("./command/GetPubKeyCommand"),m=require("./device-action/SignTransactionDeviceAction"),c=require("./SolanaAppBinder");describe("SolanaAppBinder",()=>{const i={sendCommand:vi.fn(),executeDeviceAction:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const s=new c.SolanaAppBinder({},{});expect(s).toBeDefined()}),describe("getAddress",()=>{it("should return the address",()=>new Promise((s,o)=>{const e="D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5";vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:(0,u.from)([{status:n.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const r=new c.SolanaAppBinder(i,"sessionId"),{observable:p}=r.getAddress({derivationPath:"44'/501'",checkOnDevice:!1,skipOpenApp:!1}),a=[];p.subscribe({next:t=>{a.push(t)},error:t=>{o(t)},complete:()=>{try{expect(a).toEqual([{status:n.DeviceActionStatus.Completed,output:e}]),s()}catch(t){o(t)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const s={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1,skipOpenApp:!1};it("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const e={...s,checkOnDevice:!0};new c.SolanaAppBinder(i,"sessionId").getAddress(e),expect(i.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new A.GetPubKeyCommand(e),appName:"Solana",requiredUserInteraction:n.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}})})}),it("when checkOnDevice is false: UserInteractionRequired.None",()=>{const e={...s,checkOnDevice:!1};new c.SolanaAppBinder(i,"sessionId").getAddress(e),expect(i.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new A.GetPubKeyCommand(e),appName:"Solana",requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:!1}})})})})}),describe("signTransaction",()=>{it("should return the signature",()=>new Promise((s,o)=>{const e=new Uint8Array([1,2,3]);vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:(0,u.from)([{status:n.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const r=new c.SolanaAppBinder(i,"sessionId"),{observable:p}=r.signTransaction({derivationPath:"44'/501'",transaction:new Uint8Array([1,2,3,4]),skipOpenApp:!1}),a=[];p.subscribe({next:t=>{a.push(t)},error:t=>{o(t)},complete:()=>{try{expect(a).toEqual([{status:n.DeviceActionStatus.Completed,output:e}]),s()}catch(t){o(t)}}})})),it("should call executeDeviceAction with the correct params",()=>{const s="44'/60'/3'/2/1",o=new Uint8Array([1,2,3,4]),e=!1;new c.SolanaAppBinder(i,"sessionId").signTransaction({derivationPath:s,transaction:o,skipOpenApp:e}),expect(i.executeDeviceAction).toHaveBeenCalledWith({deviceAction:new m.SignTransactionDeviceAction({input:{derivationPath:s,transaction:o,skipOpenApp:e}}),sessionId:"sessionId"})})}),describe("signMessage",()=>{it("should return the signed message",()=>new Promise((s,o)=>{const e=new Uint8Array([28,138,84,5,16]),r={derivationPath:"44'/501'/0'/0'",message:"Hello world",skipOpenApp:!1};vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:(0,u.from)([{status:n.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const p=new c.SolanaAppBinder(i,"sessionId"),{observable:a}=p.signMessage(r),t=[];a.subscribe({next:d=>{t.push(d)},error:d=>{o(d)},complete:()=>{try{expect(t).toEqual([{status:n.DeviceActionStatus.Completed,output:e}]),s()}catch(d){o(d)}}})}))}),describe("getAppConfiguration",()=>{it("should return the app configuration",()=>new Promise((s,o)=>{const e={blindSigningEnabled:!0,pubKeyDisplayMode:"LONG",version:"2.5.10"};vi.spyOn(i,"executeDeviceAction").mockReturnValue({observable:(0,u.from)([{status:n.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const r=new c.SolanaAppBinder(i,"sessionId"),{observable:p}=r.getAppConfiguration(),a=[];p.subscribe({next:t=>{a.push(t)},error:t=>{o(t)},complete:()=>{try{expect(a).toEqual([{status:n.DeviceActionStatus.Completed,output:e}]),s()}catch(t){o(t)}}})})),it("should call executeDeviceAction with the correct params",()=>{new c.SolanaAppBinder(i,"sessionId").getAppConfiguration(),expect(i.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new l.GetAppConfigurationCommand,appName:"Solana",requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:!1}})})})})});
2
2
  //# sourceMappingURL=SolanaAppBinder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/SolanaAppBinder.test.ts"],
4
- "sourcesContent": ["import {\n type DeviceActionIntermediateValue,\n type DeviceActionState,\n DeviceActionStatus,\n type DeviceManagementKit,\n type DeviceSessionId,\n type DmkError,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { from } from \"rxjs\";\n\nimport {\n type GetAppConfigurationDAError,\n type GetAppConfigurationDAIntermediateValue,\n type GetAppConfigurationDAOutput,\n} from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n} from \"@api/index\";\n\nimport { GetAppConfigurationCommand } from \"./command/GetAppConfigurationCommand\";\nimport { GetPubKeyCommand } from \"./command/GetPubKeyCommand\";\nimport { SignMessageDeviceAction } from \"./device-action/SignMessage/SignMessageDeviceAction\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransactionDeviceAction\";\nimport { SolanaAppBinder } from \"./SolanaAppBinder\";\n\ndescribe(\"SolanaAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: jest.fn(),\n executeDeviceAction: jest.fn(),\n } as unknown as DeviceManagementKit;\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it(\"should be defined\", () => {\n const binder = new SolanaAppBinder(\n {} as DeviceManagementKit,\n {} as DeviceSessionId,\n );\n expect(binder).toBeDefined();\n });\n\n describe(\"getAddress\", () => {\n it(\"should return the address\", (done) => {\n // GIVEN\n const address = \"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5\";\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: address,\n } as DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.getAddress({\n derivationPath: \"44'/501'\",\n checkOnDevice: false,\n });\n\n // THEN\n const states: DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: address,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n };\n\n it(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(params),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n }),\n });\n });\n\n it(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(params),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signTransaction\", () => {\n it(\"should return the signature\", (done) => {\n // GIVEN\n const signature = new Uint8Array([0x01, 0x02, 0x03]);\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/501'\",\n transaction: new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n it(\"should call executeDeviceAction with the correct params\", () => {\n // GIVEN\n const derivationPath = \"44'/60'/3'/2/1\";\n const transaction = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.signTransaction({ derivationPath, transaction });\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath,\n transaction,\n options: {},\n },\n }),\n sessionId: \"sessionId\",\n });\n });\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signed message\", (done) => {\n // GIVEN\n const signedMessage = new Uint8Array([0x1c, 0x8a, 0x54, 0x05, 0x10]);\n const signMessageArgs = {\n derivationPath: \"44'/501'/0'/0'\",\n message: \"Hello world\",\n };\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signedMessage,\n } as DeviceActionState<\n Uint8Array,\n DmkError,\n DeviceActionIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.signMessage(signMessageArgs);\n\n // THEN\n const states: DeviceActionState<Uint8Array, unknown, unknown>[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signedMessage,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n it(\"should call executeDeviceAction with correct parameters\", () => {\n // GIVEN\n const signMessageArgs = {\n derivationPath: \"44'/501'/0'/0'\",\n message: \"Hello world\",\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.signMessage(signMessageArgs);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SignMessageDeviceAction({\n input: {\n derivationPath: signMessageArgs.derivationPath,\n message: signMessageArgs.message,\n },\n }),\n });\n });\n });\n\n describe(\"getAppConfiguration\", () => {\n it(\"should return the app configuration\", (done) => {\n // GIVEN\n const appConfiguration = {\n blindSigningEnabled: true,\n pubKeyDisplayMode: \"LONG\",\n version: \"2.5.10\",\n };\n\n jest.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: appConfiguration,\n } as DeviceActionState<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n >,\n ]),\n cancel: jest.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.getAppConfiguration();\n\n // THEN\n const states: DeviceActionState<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n done(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: appConfiguration,\n },\n ]);\n done();\n } catch (err) {\n done(err);\n }\n },\n });\n });\n\n it(\"should call executeDeviceAction with the correct params\", () => {\n // GIVEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n\n // WHEN\n appBinder.getAppConfiguration();\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(), // Correct command\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n });\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_device_management_kit", "import_rxjs", "import_GetAppConfigurationCommand", "import_GetPubKeyCommand", "import_SignMessageDeviceAction", "import_SignTransactionDeviceAction", "import_SolanaAppBinder", "mockedDmk", "binder", "done", "address", "appBinder", "observable", "states", "state", "err", "baseParams", "params", "signature", "derivationPath", "transaction", "signedMessage", "signMessageArgs", "appConfiguration"]
4
+ "sourcesContent": ["import {\n type DeviceActionIntermediateValue,\n type DeviceActionState,\n DeviceActionStatus,\n type DeviceManagementKit,\n type DeviceSessionId,\n type DmkError,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { from } from \"rxjs\";\n\nimport {\n type GetAppConfigurationDAError,\n type GetAppConfigurationDAIntermediateValue,\n type GetAppConfigurationDAOutput,\n} from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n} from \"@api/index\";\n\nimport { GetAppConfigurationCommand } from \"./command/GetAppConfigurationCommand\";\nimport { GetPubKeyCommand } from \"./command/GetPubKeyCommand\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransactionDeviceAction\";\nimport { SolanaAppBinder } from \"./SolanaAppBinder\";\n\ndescribe(\"SolanaAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: vi.fn(),\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should be defined\", () => {\n const binder = new SolanaAppBinder(\n {} as DeviceManagementKit,\n {} as DeviceSessionId,\n );\n expect(binder).toBeDefined();\n });\n\n describe(\"getAddress\", () => {\n it(\"should return the address\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const address = \"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: address,\n } as DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.getAddress({\n derivationPath: \"44'/501'\",\n checkOnDevice: false,\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: address,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n skipOpenApp: false,\n };\n\n it(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(params),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n }),\n });\n });\n\n it(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPubKeyCommand(params),\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signTransaction\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature = new Uint8Array([0x01, 0x02, 0x03]);\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/501'\",\n transaction: new Uint8Array([0x01, 0x02, 0x03, 0x04]),\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n it(\"should call executeDeviceAction with the correct params\", () => {\n // GIVEN\n const derivationPath = \"44'/60'/3'/2/1\";\n const transaction = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n const skipOpenApp = false;\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n appBinder.signTransaction({ derivationPath, transaction, skipOpenApp });\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath,\n transaction,\n skipOpenApp,\n },\n }),\n sessionId: \"sessionId\",\n });\n });\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signed message\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signedMessage = new Uint8Array([0x1c, 0x8a, 0x54, 0x05, 0x10]);\n const signMessageArgs = {\n derivationPath: \"44'/501'/0'/0'\",\n message: \"Hello world\",\n skipOpenApp: false,\n };\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signedMessage,\n } as DeviceActionState<\n Uint8Array,\n DmkError,\n DeviceActionIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.signMessage(signMessageArgs);\n\n // THEN\n const states: DeviceActionState<Uint8Array, unknown, unknown>[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signedMessage,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"getAppConfiguration\", () => {\n it(\"should return the app configuration\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const appConfiguration = {\n blindSigningEnabled: true,\n pubKeyDisplayMode: \"LONG\",\n version: \"2.5.10\",\n };\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: appConfiguration,\n } as DeviceActionState<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n const { observable } = appBinder.getAppConfiguration();\n\n // THEN\n const states: DeviceActionState<\n GetAppConfigurationDAOutput,\n GetAppConfigurationDAError,\n GetAppConfigurationDAIntermediateValue\n >[] = [];\n\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: appConfiguration,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n it(\"should call executeDeviceAction with the correct params\", () => {\n // GIVEN\n const appBinder = new SolanaAppBinder(mockedDmk, \"sessionId\");\n\n // WHEN\n appBinder.getAppConfiguration();\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(), // Correct command\n appName: \"Solana\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n }),\n });\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EASO,2CACPC,EAAqB,gBAgBrBC,EAA2C,gDAC3CC,EAAiC,sCACjCC,EAA4C,uDAC5CC,EAAgC,6BAEhC,SAAS,kBAAmB,IAAM,CAChC,MAAMC,EAAiC,CACrC,YAAa,GAAG,GAAG,EACnB,oBAAqB,GAAG,GAAG,CAC7B,EAEA,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,GAAG,oBAAqB,IAAM,CAC5B,MAAMC,EAAS,IAAI,kBACjB,CAAC,EACD,CAAC,CACH,EACA,OAAOA,CAAM,EAAE,YAAY,CAC7B,CAAC,EAED,SAAS,aAAc,IAAM,CAC3B,GAAG,4BAA6B,IAC9B,IAAI,QAAc,CAACC,EAASC,IAAW,CAErC,MAAMC,EAAU,+CAEhB,GAAG,MAAMJ,EAAW,qBAAqB,EAAE,gBAAgB,CACzD,cAAY,QAAK,CACf,CACE,OAAQ,qBAAmB,UAC3B,OAAQI,CACV,CAKF,CAAC,EACD,OAAQ,GAAG,GAAG,CAChB,CAAC,EAGD,MAAMC,EAAY,IAAI,kBAAgBL,EAAW,WAAW,EACtD,CAAE,WAAAM,CAAW,EAAID,EAAU,WAAW,CAC1C,eAAgB,WAChB,cAAe,GACf,YAAa,EACf,CAAC,EAGKE,EAIA,CAAC,EACPD,EAAW,UAAU,CACnB,KAAOE,GAAU,CACfD,EAAO,KAAKC,CAAK,CACnB,EACA,MAAQC,GAAQ,CACdN,EAAOM,CAAG,CACZ,EACA,SAAU,IAAM,CACd,GAAI,CACF,OAAOF,CAAM,EAAE,QAAQ,CACrB,CACE,OAAQ,qBAAmB,UAC3B,OAAQH,CACV,CACF,CAAC,EACDF,EAAQ,CACV,OAASO,EAAK,CACZN,EAAOM,CAAY,CACrB,CACF,CACF,CAAC,CACH,CAAC,CAAC,EAEJ,SAAS,uDAAwD,IAAM,CACrE,MAAMC,EAAa,CACjB,eAAgB,iBAChB,gBAAiB,GACjB,YAAa,EACf,EAEA,GAAG,oEAAqE,IAAM,CAG5E,MAAMC,EAAS,CACb,GAAGD,EACH,gBACF,EAGkB,IAAI,kBAAgBV,EAAW,WAAW,EAClD,WAAWW,CAAM,EAG3B,OAAOX,EAAU,mBAAmB,EAAE,qBAAqB,CACzD,UAAW,YACX,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,mBAAiBW,CAAM,EACpC,QAAS,SACT,wBAAyB,0BAAwB,cACjD,YAAa,EACf,CACF,CAAC,CACH,CAAC,CACH,CAAC,EAED,GAAG,4DAA6D,IAAM,CAGpE,MAAMA,EAAS,CACb,GAAGD,EACH,gBACF,EAGkB,IAAI,kBAAgBV,EAAW,WAAW,EAClD,WAAWW,CAAM,EAG3B,OAAOX,EAAU,mBAAmB,EAAE,qBAAqB,CACzD,UAAW,YACX,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,mBAAiBW,CAAM,EACpC,QAAS,SACT,wBAAyB,0BAAwB,KACjD,YAAa,EACf,CACF,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,kBAAmB,IAAM,CAChC,GAAG,8BAA+B,IAChC,IAAI,QAAc,CAACT,EAASC,IAAW,CAErC,MAAMS,EAAY,IAAI,WAAW,CAAC,EAAM,EAAM,CAAI,CAAC,EAEnD,GAAG,MAAMZ,EAAW,qBAAqB,EAAE,gBAAgB,CACzD,cAAY,QAAK,CACf,CACE,OAAQ,qBAAmB,UAC3B,OAAQY,CACV,CAKF,CAAC,EACD,OAAQ,GAAG,GAAG,CAChB,CAAC,EAGD,MAAMP,EAAY,IAAI,kBAAgBL,EAAW,WAAW,EACtD,CAAE,WAAAM,CAAW,EAAID,EAAU,gBAAgB,CAC/C,eAAgB,WAChB,YAAa,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EACpD,YAAa,EACf,CAAC,EAGKE,EAIA,CAAC,EACPD,EAAW,UAAU,CACnB,KAAOE,GAAU,CACfD,EAAO,KAAKC,CAAK,CACnB,EACA,MAAQC,GAAQ,CACdN,EAAOM,CAAG,CACZ,EACA,SAAU,IAAM,CACd,GAAI,CACF,OAAOF,CAAM,EAAE,QAAQ,CACrB,CACE,OAAQ,qBAAmB,UAC3B,OAAQK,CACV,CACF,CAAC,EACDV,EAAQ,CACV,OAASO,EAAK,CACZN,EAAOM,CAAY,CACrB,CACF,CACF,CAAC,CACH,CAAC,CAAC,EAEJ,GAAG,0DAA2D,IAAM,CAElE,MAAMI,EAAiB,iBACjBC,EAAc,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EACrDC,EAAc,GAGF,IAAI,kBAAgBf,EAAW,WAAW,EAClD,gBAAgB,CAAE,eAAAa,EAAgB,YAAAC,EAAa,YAAAC,CAAY,CAAC,EAGtE,OAAOf,EAAU,mBAAmB,EAAE,qBAAqB,CACzD,aAAc,IAAI,8BAA4B,CAC5C,MAAO,CACL,eAAAa,EACA,YAAAC,EACA,YAAAC,CACF,CACF,CAAC,EACD,UAAW,WACb,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,cAAe,IAAM,CAC5B,GAAG,mCAAoC,IACrC,IAAI,QAAc,CAACb,EAASC,IAAW,CAErC,MAAMa,EAAgB,IAAI,WAAW,CAAC,GAAM,IAAM,GAAM,EAAM,EAAI,CAAC,EAC7DC,EAAkB,CACtB,eAAgB,iBAChB,QAAS,cACT,YAAa,EACf,EAEA,GAAG,MAAMjB,EAAW,qBAAqB,EAAE,gBAAgB,CACzD,cAAY,QAAK,CACf,CACE,OAAQ,qBAAmB,UAC3B,OAAQgB,CACV,CAKF,CAAC,EACD,OAAQ,GAAG,GAAG,CAChB,CAAC,EAGD,MAAMX,EAAY,IAAI,kBAAgBL,EAAW,WAAW,EACtD,CAAE,WAAAM,CAAW,EAAID,EAAU,YAAYY,CAAe,EAGtDV,EAA4D,CAAC,EACnED,EAAW,UAAU,CACnB,KAAOE,GAAU,CACfD,EAAO,KAAKC,CAAK,CACnB,EACA,MAAQC,GAAQ,CACdN,EAAOM,CAAG,CACZ,EACA,SAAU,IAAM,CACd,GAAI,CACF,OAAOF,CAAM,EAAE,QAAQ,CACrB,CACE,OAAQ,qBAAmB,UAC3B,OAAQS,CACV,CACF,CAAC,EACDd,EAAQ,CACV,OAASO,EAAK,CACZN,EAAOM,CAAY,CACrB,CACF,CACF,CAAC,CACH,CAAC,CAAC,CACN,CAAC,EAED,SAAS,sBAAuB,IAAM,CACpC,GAAG,sCAAuC,IACxC,IAAI,QAAc,CAACP,EAASC,IAAW,CAErC,MAAMe,EAAmB,CACvB,oBAAqB,GACrB,kBAAmB,OACnB,QAAS,QACX,EAEA,GAAG,MAAMlB,EAAW,qBAAqB,EAAE,gBAAgB,CACzD,cAAY,QAAK,CACf,CACE,OAAQ,qBAAmB,UAC3B,OAAQkB,CACV,CAKF,CAAC,EACD,OAAQ,GAAG,GAAG,CAChB,CAAC,EAGD,MAAMb,EAAY,IAAI,kBAAgBL,EAAW,WAAW,EACtD,CAAE,WAAAM,CAAW,EAAID,EAAU,oBAAoB,EAG/CE,EAIA,CAAC,EAEPD,EAAW,UAAU,CACnB,KAAOE,GAAU,CACfD,EAAO,KAAKC,CAAK,CACnB,EACA,MAAQC,GAAQ,CACdN,EAAOM,CAAG,CACZ,EACA,SAAU,IAAM,CACd,GAAI,CACF,OAAOF,CAAM,EAAE,QAAQ,CACrB,CACE,OAAQ,qBAAmB,UAC3B,OAAQW,CACV,CACF,CAAC,EACDhB,EAAQ,CACV,OAASO,EAAK,CACZN,EAAOM,CAAY,CACrB,CACF,CACF,CAAC,CACH,CAAC,CAAC,EAEJ,GAAG,0DAA2D,IAAM,CAEhD,IAAI,kBAAgBT,EAAW,WAAW,EAGlD,oBAAoB,EAG9B,OAAOA,EAAU,mBAAmB,EAAE,qBAAqB,CACzD,UAAW,YACX,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,6BACb,QAAS,SACT,wBAAyB,0BAAwB,KACjD,YAAa,EACf,CACF,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_rxjs", "import_GetAppConfigurationCommand", "import_GetPubKeyCommand", "import_SignTransactionDeviceAction", "import_SolanaAppBinder", "mockedDmk", "binder", "resolve", "reject", "address", "appBinder", "observable", "states", "state", "err", "baseParams", "params", "signature", "derivationPath", "transaction", "skipOpenApp", "signedMessage", "signMessageArgs", "appConfiguration"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var A=(e,o)=>{for(var t in o)i(e,t,{get:o[t],enumerable:!0})},l=(e,o,t,p)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of C(o))!g.call(e,r)&&r!==t&&i(e,r,{get:()=>o[r],enumerable:!(p=u(o,r))||p.enumerable});return e};var f=e=>l(i({},"__esModule",{value:!0}),e);var y={};A(y,{GetAppConfigurationCommand:()=>c});module.exports=f(y);var n=require("@ledgerhq/device-management-kit"),s=require("../../../api/model/PublicKeyDisplayMode"),a=require("./utils/solanaAppErrors");class c{args;constructor(o){this.args=o}getApdu(){return new n.ApduBuilder({cla:224,ins:4,p1:0,p2:0}).build()}parseResponse(o){const t=new n.ApduParser(o),p=t.encodeToHexaString(o.statusCode);if((0,n.isCommandErrorCode)(p,a.solanaAppErrors))return(0,n.CommandResultFactory)({error:new a.SolanaAppCommandError({...a.solanaAppErrors[p],errorCode:p})});const r=t.extractFieldByLength(5);if(!r||r.length!==5||r.some(m=>m===void 0))return(0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("Invalid response")});const d={blindSigningEnabled:!!r[0],pubKeyDisplayMode:r[1]===0?s.PublicKeyDisplayMode.LONG:s.PublicKeyDisplayMode.SHORT,version:`${r[2]}.${r[3]}.${r[4]}`};return(0,n.CommandResultFactory)({data:d})}}0&&(module.exports={GetAppConfigurationCommand});
1
+ "use strict";var i=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var f=(n,r)=>{for(var a in r)i(n,a,{get:r[a],enumerable:!0})},g=(n,r,a,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let p of A(r))!C.call(n,p)&&p!==a&&i(n,p,{get:()=>r[p],enumerable:!(o=l(r,p))||o.enumerable});return n};var y=n=>g(i({},"__esModule",{value:!0}),n);var E={};f(E,{GetAppConfigurationCommand:()=>c});module.exports=y(E);var e=require("@ledgerhq/device-management-kit"),d=require("@ledgerhq/signer-utils"),s=require("purify-ts"),m=require("../../../api/model/PublicKeyDisplayMode"),t=require("./utils/SolanaApplicationErrors");class c{errorHelper=new d.CommandErrorHelper(t.SOLANA_APP_ERRORS,t.SolanaAppCommandErrorFactory);args;constructor(r){this.args=r}getApdu(){return new e.ApduBuilder({cla:224,ins:4,p1:0,p2:0}).build()}parseResponse(r){return s.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const o=new e.ApduParser(r).extractFieldByLength(5);if(!o||o.length!==5||o.some(u=>u===void 0))return(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Invalid response")});const p={blindSigningEnabled:!!o[0],pubKeyDisplayMode:o[1]===0?m.PublicKeyDisplayMode.LONG:m.PublicKeyDisplayMode.SHORT,version:`${o[2]}.${o[3]}.${o[4]}`};return(0,e.CommandResultFactory)({data:p})})}}0&&(module.exports={GetAppConfigurationCommand});
2
2
  //# sourceMappingURL=GetAppConfigurationCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetAppConfigurationCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n isCommandErrorCode,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nimport { PublicKeyDisplayMode } from \"@api/model/PublicKeyDisplayMode\";\n\nimport {\n SolanaAppCommandError,\n solanaAppErrors,\n} from \"./utils/solanaAppErrors\";\n\ntype GetAppConfigurationCommandArgs = void;\n\nexport class GetAppConfigurationCommand\n implements Command<AppConfiguration, GetAppConfigurationCommandArgs>\n{\n args: GetAppConfigurationCommandArgs;\n\n constructor(args: GetAppConfigurationCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xe0,\n ins: 0x04,\n p1: 0x00,\n p2: 0x00,\n }).build();\n }\n\n parseResponse(response: ApduResponse): CommandResult<AppConfiguration> {\n const parser = new ApduParser(response);\n const errorCode = parser.encodeToHexaString(response.statusCode);\n if (isCommandErrorCode(errorCode, solanaAppErrors)) {\n return CommandResultFactory({\n error: new SolanaAppCommandError({\n ...solanaAppErrors[errorCode],\n errorCode,\n }),\n });\n }\n\n const buffer = parser.extractFieldByLength(5);\n if (\n !buffer ||\n buffer.length !== 5 ||\n buffer.some((element) => element === undefined)\n ) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response\"),\n });\n }\n\n const config: AppConfiguration = {\n blindSigningEnabled: Boolean(buffer[0]),\n pubKeyDisplayMode:\n buffer[1] === 0\n ? PublicKeyDisplayMode.LONG\n : PublicKeyDisplayMode.SHORT,\n version: `${buffer[2]}.${buffer[3]}.${buffer[4]}`,\n };\n\n return CommandResultFactory({\n data: config,\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CAGPC,EAAqC,2CAErCC,EAGO,mCAIA,MAAMJ,CAEb,CACE,KAEA,YAAYK,EAAsC,CAChD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,OAAO,IAAI,cAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EAAE,MAAM,CACX,CAEA,cAAcC,EAAyD,CACrE,MAAMC,EAAS,IAAI,aAAWD,CAAQ,EAChCE,EAAYD,EAAO,mBAAmBD,EAAS,UAAU,EAC/D,MAAI,sBAAmBE,EAAW,iBAAe,EAC/C,SAAO,wBAAqB,CAC1B,MAAO,IAAI,wBAAsB,CAC/B,GAAG,kBAAgBA,CAAS,EAC5B,UAAAA,CACF,CAAC,CACH,CAAC,EAGH,MAAMC,EAASF,EAAO,qBAAqB,CAAC,EAC5C,GACE,CAACE,GACDA,EAAO,SAAW,GAClBA,EAAO,KAAMC,GAAYA,IAAY,MAAS,EAE9C,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,kBAAkB,CACtD,CAAC,EAGH,MAAMC,EAA2B,CAC/B,oBAAqB,EAAQF,EAAO,CAAC,EACrC,kBACEA,EAAO,CAAC,IAAM,EACV,uBAAqB,KACrB,uBAAqB,MAC3B,QAAS,GAAGA,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,CAAC,EACjD,EAEA,SAAO,wBAAqB,CAC1B,KAAME,CACR,CAAC,CACH,CACF",
6
- "names": ["GetAppConfigurationCommand_exports", "__export", "GetAppConfigurationCommand", "__toCommonJS", "import_device_management_kit", "import_PublicKeyDisplayMode", "import_solanaAppErrors", "args", "response", "parser", "errorCode", "buffer", "element", "config"]
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nimport { PublicKeyDisplayMode } from \"@api/model/PublicKeyDisplayMode\";\n\nimport {\n SOLANA_APP_ERRORS,\n SolanaAppCommandErrorFactory,\n type SolanaAppErrorCodes,\n} from \"./utils/SolanaApplicationErrors\";\n\ntype GetAppConfigurationCommandArgs = void;\n\nexport class GetAppConfigurationCommand\n implements\n Command<\n AppConfiguration,\n GetAppConfigurationCommandArgs,\n SolanaAppErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n AppConfiguration,\n SolanaAppErrorCodes\n >(SOLANA_APP_ERRORS, SolanaAppCommandErrorFactory);\n\n args: GetAppConfigurationCommandArgs;\n\n constructor(args: GetAppConfigurationCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: 0xe0,\n ins: 0x04,\n p1: 0x00,\n p2: 0x00,\n }).build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<AppConfiguration, SolanaAppErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n const buffer = parser.extractFieldByLength(5);\n if (\n !buffer ||\n buffer.length !== 5 ||\n buffer.some((element) => element === undefined)\n ) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Invalid response\"),\n });\n }\n\n const config: AppConfiguration = {\n blindSigningEnabled: Boolean(buffer[0]),\n pubKeyDisplayMode:\n buffer[1] === 0\n ? PublicKeyDisplayMode.LONG\n : PublicKeyDisplayMode.SHORT,\n version: `${buffer[2]}.${buffer[3]}.${buffer[4]}`,\n };\n\n return CommandResultFactory({\n data: config,\n });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAGtBC,EAAqC,2CAErCC,EAIO,2CAIA,MAAMN,CAOb,CACmB,YAAc,IAAI,qBAGjC,oBAAmB,8BAA4B,EAEjD,KAEA,YAAYO,EAAsC,CAChD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,OAAO,IAAI,cAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EAAE,MAAM,CACX,CAEA,cACEC,EACsD,CACtD,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAQ,CACpC,EAAE,cAAc,IAAM,CAEpB,MAAMC,EADS,IAAI,aAAWD,CAAQ,EAChB,qBAAqB,CAAC,EAC5C,GACE,CAACC,GACDA,EAAO,SAAW,GAClBA,EAAO,KAAMC,GAAYA,IAAY,MAAS,EAE9C,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,kBAAkB,CACtD,CAAC,EAGH,MAAMC,EAA2B,CAC/B,oBAAqB,EAAQF,EAAO,CAAC,EACrC,kBACEA,EAAO,CAAC,IAAM,EACV,uBAAqB,KACrB,uBAAqB,MAC3B,QAAS,GAAGA,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,CAAC,IAAIA,EAAO,CAAC,CAAC,EACjD,EAEA,SAAO,wBAAqB,CAC1B,KAAME,CACR,CAAC,CACH,CAAC,CACH,CACF",
6
+ "names": ["GetAppConfigurationCommand_exports", "__export", "GetAppConfigurationCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_PublicKeyDisplayMode", "import_SolanaApplicationErrors", "args", "response", "buffer", "element", "config"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),s=require("../../../api/model/PublicKeyDisplayMode"),n=require("./GetAppConfigurationCommand");const a=new Uint8Array([224,4,0,0,0]),i=new Uint8Array([1,0,2,5,10]),p=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:i}),c=new Uint8Array([1,1,2,5,10]),d=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c});describe("GetAppConfigurationCommand",()=>{let o;beforeEach(()=>{o=new n.GetAppConfigurationCommand,jest.clearAllMocks(),jest.requireActual("@ledgerhq/device-management-kit")}),describe("getApdu",()=>{it("should return the correct APDU",()=>{const r=o.getApdu();expect(r.getRawApdu()).toEqual(a)})}),describe("parseResponse",()=>{it("should parse the response correctly",()=>{const r=o.parseResponse(p);expect(r).toStrictEqual((0,e.CommandResultFactory)({data:{blindSigningEnabled:!0,pubKeyDisplayMode:s.PublicKeyDisplayMode.LONG,version:"2.5.10"}}))}),it("should parse the response correctly with short pub key display mode",()=>{const r=o.parseResponse(d);expect(r).toStrictEqual((0,e.CommandResultFactory)({data:{blindSigningEnabled:!0,pubKeyDisplayMode:s.PublicKeyDisplayMode.SHORT,version:"2.5.10"}}))}),describe("error handling",()=>{it("should return error if response is not success",()=>{const r=new e.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),t=o.parseResponse(r);expect((0,e.isSuccessCommandResult)(t)).toBe(!1),(0,e.isSuccessCommandResult)(t)?fail("Expected error"):expect(t.error).toEqual(expect.objectContaining({_tag:"InvalidStatusWordError",originalError:expect.objectContaining({message:"Invalid response"})}))}),it("should return error if response is not success",()=>{const r=new e.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),t=o.parseResponse(r);expect((0,e.isSuccessCommandResult)(t)).toBe(!1),(0,e.isSuccessCommandResult)(t)?fail("Expected error"):expect(t.error).toEqual(expect.objectContaining({_tag:"InvalidStatusWordError",originalError:expect.objectContaining({message:"Invalid response"})}))})})})});
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),s=require("../../../api/model/PublicKeyDisplayMode"),a=require("./GetAppConfigurationCommand");const n=new Uint8Array([224,4,0,0,0]),i=new Uint8Array([1,0,2,5,10]),p=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:i}),c=new Uint8Array([1,1,2,5,10]),d=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c});describe("GetAppConfigurationCommand",()=>{let o;beforeEach(()=>{o=new a.GetAppConfigurationCommand,vi.clearAllMocks(),vi.importActual("@ledgerhq/device-management-kit")}),describe("getApdu",()=>{it("should return the correct APDU",()=>{const r=o.getApdu();expect(r.getRawApdu()).toEqual(n)})}),describe("parseResponse",()=>{it("should parse the response correctly",()=>{const r=o.parseResponse(p);expect(r).toStrictEqual((0,e.CommandResultFactory)({data:{blindSigningEnabled:!0,pubKeyDisplayMode:s.PublicKeyDisplayMode.LONG,version:"2.5.10"}}))}),it("should parse the response correctly with short pub key display mode",()=>{const r=o.parseResponse(d);expect(r).toStrictEqual((0,e.CommandResultFactory)({data:{blindSigningEnabled:!0,pubKeyDisplayMode:s.PublicKeyDisplayMode.SHORT,version:"2.5.10"}}))}),describe("error handling",()=>{it("should return error if response is not success",()=>{const r=new e.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),t=o.parseResponse(r);expect((0,e.isSuccessCommandResult)(t)).toBe(!1),(0,e.isSuccessCommandResult)(t)?assert.fail("Expected error"):expect(t.error).toEqual(expect.objectContaining({_tag:"SolanaAppCommandError",errorCode:"6a82",message:"Invalid off-chain message format"}))}),it("should return error if response is not success",()=>{const r=new e.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),t=o.parseResponse(r);expect((0,e.isSuccessCommandResult)(t)).toBe(!1),(0,e.isSuccessCommandResult)(t)?assert.fail("Expected error"):expect(t.error).toEqual(expect.objectContaining({_tag:"SolanaAppCommandError",errorCode:"6a82",message:"Invalid off-chain message format"}))})})})});
2
2
  //# sourceMappingURL=GetAppConfigurationCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetAppConfigurationCommand.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { PublicKeyDisplayMode } from \"@api/model/PublicKeyDisplayMode\";\n\nimport { GetAppConfigurationCommand } from \"./GetAppConfigurationCommand\";\n\nconst GET_APP_CONFIG_APDU = new Uint8Array([0xe0, 0x04, 0x00, 0x00, 0x00]);\n\nconst GET_APP_CONFIG_RESPONSE_DATA = new Uint8Array([\n 0x01, 0x00, 0x02, 0x05, 0x0a,\n]);\n\nconst GET_APP_CONFIG_RESPONSE = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: GET_APP_CONFIG_RESPONSE_DATA,\n});\n\nconst GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE = new Uint8Array([\n 0x01, 0x01, 0x02, 0x05, 0x0a,\n]);\n\nconst GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE,\n});\n\ndescribe(\"GetAppConfigurationCommand\", () => {\n let command: GetAppConfigurationCommand;\n\n beforeEach(() => {\n command = new GetAppConfigurationCommand();\n jest.clearAllMocks();\n jest.requireActual(\"@ledgerhq/device-management-kit\");\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toEqual(GET_APP_CONFIG_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response correctly\", () => {\n const parsed = command.parseResponse(GET_APP_CONFIG_RESPONSE);\n expect(parsed).toStrictEqual(\n CommandResultFactory({\n data: {\n blindSigningEnabled: true,\n pubKeyDisplayMode: PublicKeyDisplayMode.LONG,\n version: \"2.5.10\",\n },\n }),\n );\n });\n\n it(\"should parse the response correctly with short pub key display mode\", () => {\n const parsed = command.parseResponse(\n GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE,\n );\n expect(parsed).toStrictEqual(\n CommandResultFactory({\n data: {\n blindSigningEnabled: true,\n pubKeyDisplayMode: PublicKeyDisplayMode.SHORT,\n version: \"2.5.10\",\n },\n }),\n );\n });\n\n describe(\"error handling\", () => {\n it(\"should return error if response is not success\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x82]),\n data: new Uint8Array(0),\n });\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toEqual(\n expect.objectContaining({\n _tag: \"InvalidStatusWordError\",\n originalError: expect.objectContaining({\n message: \"Invalid response\",\n }),\n }),\n );\n } else {\n fail(\"Expected error\");\n }\n });\n\n it(\"should return error if response is not success\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x82]),\n data: new Uint8Array(0),\n });\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toEqual(\n expect.objectContaining({\n _tag: \"InvalidStatusWordError\",\n originalError: expect.objectContaining({\n message: \"Invalid response\",\n }),\n }),\n );\n } else {\n fail(\"Expected error\");\n }\n });\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAIO,2CAEPC,EAAqC,2CAErCC,EAA2C,wCAE3C,MAAMC,EAAsB,IAAI,WAAW,CAAC,IAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAEnEC,EAA+B,IAAI,WAAW,CAClD,EAAM,EAAM,EAAM,EAAM,EAC1B,CAAC,EAEKC,EAA0B,IAAI,eAAa,CAC/C,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMD,CACR,CAAC,EAEKE,EAA0D,IAAI,WAAW,CAC7E,EAAM,EAAM,EAAM,EAAM,EAC1B,CAAC,EAEKC,EAAqD,IAAI,eAAa,CAC1E,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMD,CACR,CAAC,EAED,SAAS,6BAA8B,IAAM,CAC3C,IAAIE,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,6BACd,KAAK,cAAc,EACnB,KAAK,cAAc,iCAAiC,CACtD,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,iCAAkC,IAAM,CACzC,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,QAAQN,CAAmB,CACvD,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,sCAAuC,IAAM,CAC9C,MAAMO,EAASF,EAAQ,cAAcH,CAAuB,EAC5D,OAAOK,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,oBAAqB,GACrB,kBAAmB,uBAAqB,KACxC,QAAS,QACX,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,sEAAuE,IAAM,CAC9E,MAAMA,EAASF,EAAQ,cACrBD,CACF,EACA,OAAOG,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,oBAAqB,GACrB,kBAAmB,uBAAqB,MACxC,QAAS,QACX,CACF,CAAC,CACH,CACF,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,iDAAkD,IAAM,CACzD,MAAMC,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CACxB,CAAC,EACKC,EAASJ,EAAQ,cAAcG,CAAQ,EAC7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,EAUhC,KAAK,gBAAgB,EATrB,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,KAAM,yBACN,cAAe,OAAO,iBAAiB,CACrC,QAAS,kBACX,CAAC,CACH,CAAC,CACH,CAIJ,CAAC,EAED,GAAG,iDAAkD,IAAM,CACzD,MAAMD,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CACxB,CAAC,EACKC,EAASJ,EAAQ,cAAcG,CAAQ,EAC7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,EAUhC,KAAK,gBAAgB,EATrB,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,KAAM,yBACN,cAAe,OAAO,iBAAiB,CACrC,QAAS,kBACX,CAAC,CACH,CAAC,CACH,CAIJ,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { PublicKeyDisplayMode } from \"@api/model/PublicKeyDisplayMode\";\n\nimport { GetAppConfigurationCommand } from \"./GetAppConfigurationCommand\";\n\nconst GET_APP_CONFIG_APDU = new Uint8Array([0xe0, 0x04, 0x00, 0x00, 0x00]);\n\nconst GET_APP_CONFIG_RESPONSE_DATA = new Uint8Array([\n 0x01, 0x00, 0x02, 0x05, 0x0a,\n]);\n\nconst GET_APP_CONFIG_RESPONSE = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: GET_APP_CONFIG_RESPONSE_DATA,\n});\n\nconst GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE = new Uint8Array([\n 0x01, 0x01, 0x02, 0x05, 0x0a,\n]);\n\nconst GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE,\n});\n\ndescribe(\"GetAppConfigurationCommand\", () => {\n let command: GetAppConfigurationCommand;\n\n beforeEach(() => {\n command = new GetAppConfigurationCommand();\n vi.clearAllMocks();\n vi.importActual(\"@ledgerhq/device-management-kit\");\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toEqual(GET_APP_CONFIG_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response correctly\", () => {\n const parsed = command.parseResponse(GET_APP_CONFIG_RESPONSE);\n expect(parsed).toStrictEqual(\n CommandResultFactory({\n data: {\n blindSigningEnabled: true,\n pubKeyDisplayMode: PublicKeyDisplayMode.LONG,\n version: \"2.5.10\",\n },\n }),\n );\n });\n\n it(\"should parse the response correctly with short pub key display mode\", () => {\n const parsed = command.parseResponse(\n GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE,\n );\n expect(parsed).toStrictEqual(\n CommandResultFactory({\n data: {\n blindSigningEnabled: true,\n pubKeyDisplayMode: PublicKeyDisplayMode.SHORT,\n version: \"2.5.10\",\n },\n }),\n );\n });\n\n describe(\"error handling\", () => {\n it(\"should return error if response is not success\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x82]),\n data: new Uint8Array(0),\n });\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toEqual(\n expect.objectContaining({\n _tag: \"SolanaAppCommandError\",\n errorCode: \"6a82\",\n message: \"Invalid off-chain message format\",\n }),\n );\n } else {\n assert.fail(\"Expected error\");\n }\n });\n\n it(\"should return error if response is not success\", () => {\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x82]),\n data: new Uint8Array(0),\n });\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toEqual(\n expect.objectContaining({\n _tag: \"SolanaAppCommandError\",\n errorCode: \"6a82\",\n message: \"Invalid off-chain message format\",\n }),\n );\n } else {\n assert.fail(\"Expected error\");\n }\n });\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAIO,2CAEPC,EAAqC,2CAErCC,EAA2C,wCAE3C,MAAMC,EAAsB,IAAI,WAAW,CAAC,IAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAEnEC,EAA+B,IAAI,WAAW,CAClD,EAAM,EAAM,EAAM,EAAM,EAC1B,CAAC,EAEKC,EAA0B,IAAI,eAAa,CAC/C,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMD,CACR,CAAC,EAEKE,EAA0D,IAAI,WAAW,CAC7E,EAAM,EAAM,EAAM,EAAM,EAC1B,CAAC,EAEKC,EAAqD,IAAI,eAAa,CAC1E,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMD,CACR,CAAC,EAED,SAAS,6BAA8B,IAAM,CAC3C,IAAIE,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,6BACd,GAAG,cAAc,EACjB,GAAG,aAAa,iCAAiC,CACnD,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,iCAAkC,IAAM,CACzC,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,QAAQN,CAAmB,CACvD,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,sCAAuC,IAAM,CAC9C,MAAMO,EAASF,EAAQ,cAAcH,CAAuB,EAC5D,OAAOK,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,oBAAqB,GACrB,kBAAmB,uBAAqB,KACxC,QAAS,QACX,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,sEAAuE,IAAM,CAC9E,MAAMA,EAASF,EAAQ,cACrBD,CACF,EACA,OAAOG,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,oBAAqB,GACrB,kBAAmB,uBAAqB,MACxC,QAAS,QACX,CACF,CAAC,CACH,CACF,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,iDAAkD,IAAM,CACzD,MAAMC,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CACxB,CAAC,EACKC,EAASJ,EAAQ,cAAcG,CAAQ,EAC7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,EAShC,OAAO,KAAK,gBAAgB,EAR5B,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,KAAM,wBACN,UAAW,OACX,QAAS,kCACX,CAAC,CACH,CAIJ,CAAC,EAED,GAAG,iDAAkD,IAAM,CACzD,MAAMD,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CACxB,CAAC,EACKC,EAASJ,EAAQ,cAAcG,CAAQ,EAC7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,EAShC,OAAO,KAAK,gBAAgB,EAR5B,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,KAAM,wBACN,UAAW,OACX,QAAS,kCACX,CAAC,CACH,CAIJ,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_device_management_kit", "import_PublicKeyDisplayMode", "import_GetAppConfigurationCommand", "GET_APP_CONFIG_APDU", "GET_APP_CONFIG_RESPONSE_DATA", "GET_APP_CONFIG_RESPONSE", "GET_APP_CONFIG_RESPONSE_DATA_SHORT_PUB_KEY_DISPLAY_MODE", "GET_APP_CONFIG_RESPONSE_SHORT_PUB_KEY_DISPLAY_MODE", "command", "apdu", "parsed", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.create;var d=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var A=(r,e)=>{for(var t in e)d(r,t,{get:e[t],enumerable:!0})},i=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of b(e))!P.call(r,n)&&n!==t&&d(r,n,{get:()=>e[n],enumerable:!(a=y(e,n))||a.enumerable});return r};var C=(r,e,t)=>(t=r!=null?l(g(r)):{},i(e||!r||!r.__esModule?d(t,"default",{value:r,enumerable:!0}):t,r)),h=r=>i(d({},"__esModule",{value:!0}),r);var K={};A(K,{GetPubKeyCommand:()=>f});module.exports=h(K);var o=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),u=C(require("bs58")),s=require("./utils/solanaAppErrors");const m=32;class f{args;constructor(e){this.args=e}getApdu(){const e={cla:224,ins:5,p1:this.args.checkOnDevice?1:0,p2:0},t=new o.ApduBuilder(e),a=this.args.derivationPath,n=p.DerivationPathUtils.splitPath(a);return t.add8BitUIntToData(n.length),n.forEach(c=>{t.add32BitUIntToData(c)}),t.build()}parseResponse(e){const t=new o.ApduParser(e),a=t.encodeToHexaString(e.statusCode);if((0,o.isCommandErrorCode)(a,s.solanaAppErrors))return(0,o.CommandResultFactory)({error:new s.SolanaAppCommandError({...s.solanaAppErrors[a],errorCode:a})});if(t.testMinimalLength(m)===!1)return(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("Public key is missing")});const n=t.extractFieldByLength(m);return n===void 0?(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("Unable to extract public key")}):(0,o.CommandResultFactory)({data:u.default.encode(n)})}}0&&(module.exports={GetPubKeyCommand});
1
+ "use strict";var c=Object.create;var s=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var g=(r,e)=>{for(var t in e)s(r,t,{get:e[t],enumerable:!0})},m=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of b(e))!C.call(r,a)&&a!==t&&s(r,a,{get:()=>e[a],enumerable:!(n=A(e,a))||n.enumerable});return r};var h=(r,e,t)=>(t=r!=null?c(P(r)):{},m(e||!r||!r.__esModule?s(t,"default",{value:r,enumerable:!0}):t,r)),f=r=>m(s({},"__esModule",{value:!0}),r);var R={};g(R,{GetPubKeyCommand:()=>K});module.exports=f(R);var o=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),u=h(require("bs58")),l=require("purify-ts"),d=require("./utils/SolanaApplicationErrors");const i=32;class K{errorHelper=new p.CommandErrorHelper(d.SOLANA_APP_ERRORS,d.SolanaAppCommandErrorFactory);args;constructor(e){this.args=e}getApdu(){const e={cla:224,ins:5,p1:this.args.checkOnDevice?1:0,p2:0},t=new o.ApduBuilder(e),n=this.args.derivationPath,a=p.DerivationPathUtils.splitPath(n);return t.add8BitUIntToData(a.length),a.forEach(y=>{t.add32BitUIntToData(y)}),t.build()}parseResponse(e){return l.Maybe.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>{const t=new o.ApduParser(e);if(t.testMinimalLength(i)===!1)return(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("Public key is missing")});const n=t.extractFieldByLength(i);return n===void 0?(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("Unable to extract public key")}):(0,o.CommandResultFactory)({data:u.default.encode(n)})})}}0&&(module.exports={GetPubKeyCommand});
2
2
  //# sourceMappingURL=GetPubKeyCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/GetPubKeyCommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n isCommandErrorCode,\n} from \"@ledgerhq/device-management-kit\";\nimport { DerivationPathUtils } from \"@ledgerhq/signer-utils\";\nimport bs58 from \"bs58\";\n\nimport { type PublicKey } from \"@api/model/PublicKey\";\n\nimport {\n SolanaAppCommandError,\n solanaAppErrors,\n} from \"./utils/solanaAppErrors\";\n\nconst PUBKEY_LENGTH = 32;\n\ntype GetPubKeyCommandResponse = PublicKey;\ntype GetPubKeyCommandArgs = {\n derivationPath: string;\n checkOnDevice: boolean;\n};\n\nexport class GetPubKeyCommand\n implements Command<GetPubKeyCommandResponse, GetPubKeyCommandArgs>\n{\n args: GetPubKeyCommandArgs;\n\n constructor(args: GetPubKeyCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const getPubKeyArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x05,\n p1: this.args.checkOnDevice ? 0x01 : 0x00,\n p2: 0x00,\n };\n const builder = new ApduBuilder(getPubKeyArgs);\n const derivationPath = this.args.derivationPath;\n\n const path = DerivationPathUtils.splitPath(derivationPath);\n builder.add8BitUIntToData(path.length);\n path.forEach((element) => {\n builder.add32BitUIntToData(element);\n });\n\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<GetPubKeyCommandResponse> {\n const parser = new ApduParser(response);\n const errorCode = parser.encodeToHexaString(response.statusCode);\n if (isCommandErrorCode(errorCode, solanaAppErrors)) {\n return CommandResultFactory({\n error: new SolanaAppCommandError({\n ...solanaAppErrors[errorCode],\n errorCode,\n }),\n });\n }\n\n if (parser.testMinimalLength(PUBKEY_LENGTH) === false) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Public key is missing\"),\n });\n }\n\n const buffer = parser.extractFieldByLength(PUBKEY_LENGTH);\n if (buffer === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Unable to extract public key\"),\n });\n }\n\n return CommandResultFactory({\n data: bs58.encode(buffer),\n });\n }\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAWO,2CACPC,EAAoC,kCACpCC,EAAiB,mBAIjBC,EAGO,mCAEP,MAAMC,EAAgB,GAQf,MAAMN,CAEb,CACE,KAEA,YAAYO,EAA4B,CACtC,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,MAAMC,EAAiC,CACrC,IAAK,IACL,IAAK,EACL,GAAI,KAAK,KAAK,cAAgB,EAAO,EACrC,GAAI,CACN,EACMC,EAAU,IAAI,cAAYD,CAAa,EACvCE,EAAiB,KAAK,KAAK,eAE3BC,EAAO,sBAAoB,UAAUD,CAAc,EACzD,OAAAD,EAAQ,kBAAkBE,EAAK,MAAM,EACrCA,EAAK,QAASC,GAAY,CACxBH,EAAQ,mBAAmBG,CAAO,CACpC,CAAC,EAEMH,EAAQ,MAAM,CACvB,CAEA,cACEI,EACyC,CACzC,MAAMC,EAAS,IAAI,aAAWD,CAAQ,EAChCE,EAAYD,EAAO,mBAAmBD,EAAS,UAAU,EAC/D,MAAI,sBAAmBE,EAAW,iBAAe,EAC/C,SAAO,wBAAqB,CAC1B,MAAO,IAAI,wBAAsB,CAC/B,GAAG,kBAAgBA,CAAS,EAC5B,UAAAA,CACF,CAAC,CACH,CAAC,EAGH,GAAID,EAAO,kBAAkBR,CAAa,IAAM,GAC9C,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,uBAAuB,CAC3D,CAAC,EAGH,MAAMU,EAASF,EAAO,qBAAqBR,CAAa,EACxD,OAAIU,IAAW,UACN,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,8BAA8B,CAClE,CAAC,KAGI,wBAAqB,CAC1B,KAAM,EAAAC,QAAK,OAAOD,CAAM,CAC1B,CAAC,CACH,CACF",
6
- "names": ["GetPubKeyCommand_exports", "__export", "GetPubKeyCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_bs58", "import_solanaAppErrors", "PUBKEY_LENGTH", "args", "getPubKeyArgs", "builder", "derivationPath", "path", "element", "response", "parser", "errorCode", "buffer", "bs58"]
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CommandErrorHelper,\n DerivationPathUtils,\n} from \"@ledgerhq/signer-utils\";\nimport bs58 from \"bs58\";\nimport { Maybe } from \"purify-ts\";\n\nimport { type PublicKey } from \"@api/model/PublicKey\";\n\nimport {\n SOLANA_APP_ERRORS,\n SolanaAppCommandErrorFactory,\n type SolanaAppErrorCodes,\n} from \"./utils/SolanaApplicationErrors\";\n\nconst PUBKEY_LENGTH = 32;\n\ntype GetPubKeyCommandResponse = PublicKey;\ntype GetPubKeyCommandArgs = {\n derivationPath: string;\n checkOnDevice: boolean;\n};\n\nexport class GetPubKeyCommand\n implements\n Command<GetPubKeyCommandResponse, GetPubKeyCommandArgs, SolanaAppErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<\n GetPubKeyCommandResponse,\n SolanaAppErrorCodes\n >(SOLANA_APP_ERRORS, SolanaAppCommandErrorFactory);\n\n args: GetPubKeyCommandArgs;\n\n constructor(args: GetPubKeyCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const getPubKeyArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x05,\n p1: this.args.checkOnDevice ? 0x01 : 0x00,\n p2: 0x00,\n };\n const builder = new ApduBuilder(getPubKeyArgs);\n const derivationPath = this.args.derivationPath;\n\n const path = DerivationPathUtils.splitPath(derivationPath);\n builder.add8BitUIntToData(path.length);\n path.forEach((element) => {\n builder.add32BitUIntToData(element);\n });\n\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<GetPubKeyCommandResponse, SolanaAppErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n\n if (parser.testMinimalLength(PUBKEY_LENGTH) === false) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Public key is missing\"),\n });\n }\n\n const buffer = parser.extractFieldByLength(PUBKEY_LENGTH);\n if (buffer === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Unable to extract public key\"),\n });\n }\n\n return CommandResultFactory({\n data: bs58.encode(buffer),\n });\n });\n }\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAGO,kCACPC,EAAiB,mBACjBC,EAAsB,qBAItBC,EAIO,2CAEP,MAAMC,EAAgB,GAQf,MAAMP,CAGb,CACmB,YAAc,IAAI,qBAGjC,oBAAmB,8BAA4B,EAEjD,KAEA,YAAYQ,EAA4B,CACtC,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,MAAMC,EAAiC,CACrC,IAAK,IACL,IAAK,EACL,GAAI,KAAK,KAAK,cAAgB,EAAO,EACrC,GAAI,CACN,EACMC,EAAU,IAAI,cAAYD,CAAa,EACvCE,EAAiB,KAAK,KAAK,eAE3BC,EAAO,sBAAoB,UAAUD,CAAc,EACzD,OAAAD,EAAQ,kBAAkBE,EAAK,MAAM,EACrCA,EAAK,QAASC,GAAY,CACxBH,EAAQ,mBAAmBG,CAAO,CACpC,CAAC,EAEMH,EAAQ,MAAM,CACvB,CAEA,cACEI,EAC8D,CAC9D,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAQ,CACpC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAQ,EAEtC,GAAIC,EAAO,kBAAkBR,CAAa,IAAM,GAC9C,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,uBAAuB,CAC3D,CAAC,EAGH,MAAMS,EAASD,EAAO,qBAAqBR,CAAa,EACxD,OAAIS,IAAW,UACN,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,8BAA8B,CAClE,CAAC,KAGI,wBAAqB,CAC1B,KAAM,EAAAC,QAAK,OAAOD,CAAM,CAC1B,CAAC,CACH,CAAC,CACH,CACF",
6
+ "names": ["GetPubKeyCommand_exports", "__export", "GetPubKeyCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_bs58", "import_purify_ts", "import_SolanaApplicationErrors", "PUBKEY_LENGTH", "args", "getPubKeyArgs", "builder", "derivationPath", "path", "element", "response", "parser", "buffer", "bs58"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("@ledgerhq/device-management-kit"),s=require("./GetPubKeyCommand");const o=new Uint8Array([224,5,1,0,9,2,128,0,0,44,128,0,1,245]),a=new Uint8Array([224,5,0,0,9,2,128,0,0,44,128,0,1,245]),i=new Uint8Array([224,5,1,0,9,2,128,0,0,44,128,0,1,246]),c=new Uint8Array([178,167,34,220,24,221,92,73,195,244,142,155,7,38,241,27,230,103,134,233,28,172,87,52,152,214,238,136,57,44,201,106,144,0]),d=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c});describe("GetPubKeyCommand",()=>{let r;const n={derivationPath:"44'/501'",checkOnDevice:!0};beforeEach(()=>{r=new s.GetPubKeyCommand(n),jest.clearAllMocks(),jest.requireActual("@ledgerhq/device-management-kit")}),describe("getApdu",()=>{it("should return APDU",()=>{const e=r.getApdu();expect(e.getRawApdu()).toEqual(o)}),it("should return APDU without confirm",()=>{r=new s.GetPubKeyCommand({...n,checkOnDevice:!1});const e=r.getApdu();expect(e.getRawApdu()).toEqual(a)}),it("should return APDU with different path",()=>{r=new s.GetPubKeyCommand({...n,derivationPath:"44'/502'"});const e=r.getApdu();expect(e.getRawApdu()).toEqual(i)})}),describe("parseResponse",()=>{it("should parse the response",()=>{const e=r.parseResponse(d);expect(e).toStrictEqual((0,t.CommandResultFactory)({data:"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5"}))}),describe("error handling",()=>{it("should return error if response is not success",()=>{const e=new t.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),x=r.parseResponse(e);expect((0,t.isSuccessCommandResult)(x)).toBe(!1),(0,t.isSuccessCommandResult)(x)?fail("Expected error"):expect(x.error).toEqual(expect.objectContaining({_tag:"InvalidStatusWordError",originalError:expect.objectContaining({message:"Public key is missing"})}))}),it("should return error if public key is missing",()=>{const e=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array(0)}),x=r.parseResponse(e);expect((0,t.isSuccessCommandResult)(x)).toBe(!1),(0,t.isSuccessCommandResult)(x)?fail("Expected error"):expect(x.error.originalError).toEqual(expect.objectContaining({message:"Public key is missing"}))})})})});
1
+ "use strict";var t=require("@ledgerhq/device-management-kit"),s=require("./GetPubKeyCommand");const a=new Uint8Array([224,5,1,0,9,2,128,0,0,44,128,0,1,245]),n=new Uint8Array([224,5,0,0,9,2,128,0,0,44,128,0,1,245]),c=new Uint8Array([224,5,1,0,9,2,128,0,0,44,128,0,1,246]),i=new Uint8Array([178,167,34,220,24,221,92,73,195,244,142,155,7,38,241,27,230,103,134,233,28,172,87,52,152,214,238,136,57,44,201,106,144,0]),d=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:i});describe("GetPubKeyCommand",()=>{let r;const o={derivationPath:"44'/501'",checkOnDevice:!0};beforeEach(()=>{r=new s.GetPubKeyCommand(o),vi.clearAllMocks(),vi.importActual("@ledgerhq/device-management-kit")}),describe("getApdu",()=>{it("should return APDU",()=>{const e=r.getApdu();expect(e.getRawApdu()).toEqual(a)}),it("should return APDU without confirm",()=>{r=new s.GetPubKeyCommand({...o,checkOnDevice:!1});const e=r.getApdu();expect(e.getRawApdu()).toEqual(n)}),it("should return APDU with different path",()=>{r=new s.GetPubKeyCommand({...o,derivationPath:"44'/502'"});const e=r.getApdu();expect(e.getRawApdu()).toEqual(c)})}),describe("parseResponse",()=>{it("should parse the response",()=>{const e=r.parseResponse(d);expect(e).toStrictEqual((0,t.CommandResultFactory)({data:"D2PPQSYFe83nDzk96FqGumVU8JA7J8vj2Rhjc2oXzEi5"}))}),describe("error handling",()=>{it("should return error if response is not success",()=>{const e=new t.ApduResponse({statusCode:Uint8Array.from([106,130]),data:new Uint8Array(0)}),x=r.parseResponse(e);expect((0,t.isSuccessCommandResult)(x)).toBe(!1),(0,t.isSuccessCommandResult)(x)?assert.fail("Expected error"):expect(x.error).toEqual(expect.objectContaining({_tag:"SolanaAppCommandError",errorCode:"6a82",message:"Invalid off-chain message format"}))}),it("should return error if public key is missing",()=>{const e=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array(0)}),x=r.parseResponse(e);expect((0,t.isSuccessCommandResult)(x)).toBe(!1),(0,t.isSuccessCommandResult)(x)?assert.fail("Expected error"):expect(x.error.originalError).toEqual(expect.objectContaining({message:"Public key is missing"}))})})})});
2
2
  //# sourceMappingURL=GetPubKeyCommand.test.js.map