@ledgerhq/device-signer-kit-ethereum 1.1.0 → 1.3.0

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 (543) hide show
  1. package/README.md +162 -371
  2. package/lib/cjs/api/SignerEth.js +1 -1
  3. package/lib/cjs/api/SignerEth.js.map +1 -1
  4. package/lib/cjs/api/SignerEthBuilder.test.js +1 -1
  5. package/lib/cjs/api/SignerEthBuilder.test.js.map +1 -1
  6. package/lib/cjs/api/app-binder/GetAddressDeviceActionTypes.js +1 -1
  7. package/lib/cjs/api/app-binder/GetAddressDeviceActionTypes.js.map +1 -1
  8. package/lib/cjs/api/app-binder/GetConfigCommandTypes.js +2 -0
  9. package/lib/cjs/api/app-binder/GetConfigCommandTypes.js.map +7 -0
  10. package/lib/cjs/api/app-binder/SignPersonalMessageDeviceActionTypes.js +1 -1
  11. package/lib/cjs/api/app-binder/SignPersonalMessageDeviceActionTypes.js.map +1 -1
  12. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  13. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +1 -1
  14. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  15. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +1 -1
  16. package/lib/cjs/api/index.js +1 -1
  17. package/lib/cjs/api/index.js.map +2 -2
  18. package/lib/cjs/api/model/TransactionType.js +2 -0
  19. package/lib/cjs/api/model/TransactionType.js.map +7 -0
  20. package/lib/cjs/index.js.map +1 -1
  21. package/lib/cjs/internal/DefaultSignerEth.js +1 -1
  22. package/lib/cjs/internal/DefaultSignerEth.js.map +2 -2
  23. package/lib/cjs/internal/DefaultSignerEth.test.js +1 -1
  24. package/lib/cjs/internal/DefaultSignerEth.test.js.map +2 -2
  25. package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  26. package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  27. package/lib/cjs/internal/app-binder/EthAppBinder.js +1 -1
  28. package/lib/cjs/internal/app-binder/EthAppBinder.js.map +3 -3
  29. package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
  30. package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +3 -3
  31. package/lib/cjs/internal/app-binder/command/GetAddressCommand.js +1 -1
  32. package/lib/cjs/internal/app-binder/command/GetAddressCommand.js.map +3 -3
  33. package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js +1 -1
  34. package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
  35. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
  36. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
  37. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
  38. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
  39. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js +1 -1
  40. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js.map +3 -3
  41. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js +1 -1
  42. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js.map +2 -2
  43. package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.js +1 -1
  44. package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.js.map +3 -3
  45. package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.test.js +1 -1
  46. package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.test.js.map +3 -3
  47. package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.js +1 -1
  48. package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.js.map +3 -3
  49. package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.js +1 -1
  50. package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.js.map +3 -3
  51. package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js +1 -1
  52. package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js.map +3 -3
  53. package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js +1 -1
  54. package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js.map +3 -3
  55. package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.js +1 -1
  56. package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.js.map +3 -3
  57. package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.test.js +1 -1
  58. package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.test.js.map +3 -3
  59. package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.js +1 -1
  60. package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.js.map +3 -3
  61. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js +2 -0
  62. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
  63. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
  64. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +7 -0
  65. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
  66. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js.map +3 -3
  67. package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.js +1 -1
  68. package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.js.map +3 -3
  69. package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js +1 -1
  70. package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js.map +2 -2
  71. package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.js +1 -1
  72. package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.js.map +3 -3
  73. package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.js +1 -1
  74. package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.js.map +3 -3
  75. package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.test.js +2 -2
  76. package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.test.js.map +3 -3
  77. package/lib/cjs/internal/app-binder/command/SetPluginCommand.js +1 -1
  78. package/lib/cjs/internal/app-binder/command/SetPluginCommand.js.map +3 -3
  79. package/lib/cjs/internal/app-binder/command/SetPluginCommand.test.js +2 -2
  80. package/lib/cjs/internal/app-binder/command/SetPluginCommand.test.js.map +3 -3
  81. package/lib/cjs/internal/app-binder/command/SignEIP712Command.js +1 -1
  82. package/lib/cjs/internal/app-binder/command/SignEIP712Command.js.map +3 -3
  83. package/lib/cjs/internal/app-binder/command/SignEIP712Command.test.js +1 -1
  84. package/lib/cjs/internal/app-binder/command/SignEIP712Command.test.js.map +2 -2
  85. package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.js +1 -1
  86. package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.js.map +3 -3
  87. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js +1 -1
  88. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js.map +3 -3
  89. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  90. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
  91. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.js +1 -1
  92. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.js.map +3 -3
  93. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
  94. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js.map +3 -3
  95. package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.js +1 -1
  96. package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.js.map +3 -3
  97. package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.test.js +1 -1
  98. package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.test.js.map +3 -3
  99. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
  100. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
  101. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
  102. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
  103. package/lib/cjs/internal/app-binder/command/utils/ethAppErrors.js +2 -0
  104. package/lib/cjs/internal/app-binder/command/utils/ethAppErrors.js.map +7 -0
  105. package/lib/cjs/internal/app-binder/command/utils/ethAppErrors.test.js +2 -0
  106. package/lib/cjs/internal/app-binder/command/utils/ethAppErrors.test.js.map +7 -0
  107. package/lib/cjs/internal/app-binder/constant/plugins.js +2 -0
  108. package/lib/cjs/internal/app-binder/constant/plugins.js.map +7 -0
  109. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  110. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  111. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  112. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  113. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  114. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  115. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  116. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  117. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  118. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  119. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  120. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  121. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  122. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  123. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  124. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  125. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  126. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  127. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  128. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  129. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  130. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  131. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
  132. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
  133. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
  134. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
  135. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  136. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  137. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  138. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  139. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  140. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  141. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  142. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +2 -2
  143. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +1 -1
  144. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +3 -3
  145. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +1 -1
  146. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +3 -3
  147. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js +1 -1
  148. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +3 -3
  149. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +1 -1
  150. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +3 -3
  151. package/lib/cjs/internal/app-binder/task/SendCommandInChunksTask.js +1 -1
  152. package/lib/cjs/internal/app-binder/task/SendCommandInChunksTask.js.map +2 -2
  153. package/lib/cjs/internal/app-binder/task/SendEIP712StructImplemTask.js +1 -1
  154. package/lib/cjs/internal/app-binder/task/SendEIP712StructImplemTask.js.map +2 -2
  155. package/lib/cjs/internal/app-binder/task/SendEIP712StructImplemTask.test.js +1 -1
  156. package/lib/cjs/internal/app-binder/task/SendEIP712StructImplemTask.test.js.map +2 -2
  157. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  158. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js.map +2 -2
  159. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.test.js +1 -1
  160. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.test.js.map +2 -2
  161. package/lib/cjs/internal/app-binder/task/SendSignPersonalMessageTask.js +1 -1
  162. package/lib/cjs/internal/app-binder/task/SendSignPersonalMessageTask.js.map +2 -2
  163. package/lib/cjs/internal/app-binder/task/SendSignPersonalMessageTask.test.js +1 -1
  164. package/lib/cjs/internal/app-binder/task/SendSignPersonalMessageTask.test.js.map +2 -2
  165. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js +1 -1
  166. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
  167. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
  168. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
  169. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  170. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  171. package/lib/cjs/internal/transaction/di/transactionModule.js +1 -1
  172. package/lib/cjs/internal/transaction/di/transactionModule.js.map +3 -3
  173. package/lib/cjs/internal/transaction/di/transactionModule.test.js +1 -1
  174. package/lib/cjs/internal/transaction/di/transactionModule.test.js.map +2 -2
  175. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js +2 -0
  176. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +7 -0
  177. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +2 -0
  178. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +7 -0
  179. package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js +1 -1
  180. package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js.map +1 -1
  181. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js +1 -1
  182. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js.map +2 -2
  183. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js +1 -1
  184. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js.map +2 -2
  185. package/lib/cjs/internal/transaction/service/mapper/model/TransactionMapperResult.js +1 -1
  186. package/lib/cjs/internal/transaction/service/mapper/model/TransactionMapperResult.js.map +1 -1
  187. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js +1 -1
  188. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
  189. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  190. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js.map +3 -3
  191. package/lib/cjs/internal/transaction/use-case/SignTransactionUseCase.js +1 -1
  192. package/lib/cjs/internal/transaction/use-case/SignTransactionUseCase.js.map +2 -2
  193. package/lib/cjs/internal/transaction/use-case/SignTransactionUseCase.test.js +1 -1
  194. package/lib/cjs/internal/transaction/use-case/SignTransactionUseCase.test.js.map +3 -3
  195. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  196. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  197. package/lib/cjs/package.json +12 -12
  198. package/lib/esm/api/SignerEthBuilder.test.js +1 -1
  199. package/lib/esm/api/SignerEthBuilder.test.js.map +1 -1
  200. package/lib/esm/api/app-binder/GetConfigCommandTypes.js +1 -0
  201. package/lib/esm/api/app-binder/GetConfigCommandTypes.js.map +7 -0
  202. package/lib/esm/api/index.js +1 -1
  203. package/lib/esm/api/index.js.map +2 -2
  204. package/lib/esm/api/model/TransactionType.js +2 -0
  205. package/lib/esm/api/model/TransactionType.js.map +7 -0
  206. package/lib/esm/internal/DefaultSignerEth.js.map +2 -2
  207. package/lib/esm/internal/DefaultSignerEth.test.js +1 -1
  208. package/lib/esm/internal/DefaultSignerEth.test.js.map +2 -2
  209. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  210. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  211. package/lib/esm/internal/app-binder/EthAppBinder.js +1 -1
  212. package/lib/esm/internal/app-binder/EthAppBinder.js.map +3 -3
  213. package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
  214. package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +3 -3
  215. package/lib/esm/internal/app-binder/command/GetAddressCommand.js +1 -1
  216. package/lib/esm/internal/app-binder/command/GetAddressCommand.js.map +3 -3
  217. package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js +1 -1
  218. package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
  219. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
  220. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
  221. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
  222. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
  223. package/lib/esm/internal/app-binder/command/GetChallengeCommand.js +1 -1
  224. package/lib/esm/internal/app-binder/command/GetChallengeCommand.js.map +3 -3
  225. package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js +1 -1
  226. package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js.map +2 -2
  227. package/lib/esm/internal/app-binder/command/ProvideEnumCommand.js +1 -1
  228. package/lib/esm/internal/app-binder/command/ProvideEnumCommand.js.map +3 -3
  229. package/lib/esm/internal/app-binder/command/ProvideEnumCommand.test.js +1 -1
  230. package/lib/esm/internal/app-binder/command/ProvideEnumCommand.test.js.map +3 -3
  231. package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.js +1 -1
  232. package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.js.map +3 -3
  233. package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.js +1 -1
  234. package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.js.map +3 -3
  235. package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js +1 -1
  236. package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js.map +3 -3
  237. package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js +1 -1
  238. package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js.map +3 -3
  239. package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.js +1 -1
  240. package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.js.map +3 -3
  241. package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.test.js +1 -1
  242. package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.test.js.map +3 -3
  243. package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.js +1 -1
  244. package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.js.map +3 -3
  245. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js +2 -0
  246. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
  247. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
  248. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +7 -0
  249. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
  250. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js.map +3 -3
  251. package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.js +1 -1
  252. package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.js.map +3 -3
  253. package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js +1 -1
  254. package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js.map +2 -2
  255. package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.js +1 -1
  256. package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.js.map +3 -3
  257. package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.js +1 -1
  258. package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.js.map +3 -3
  259. package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.test.js +2 -2
  260. package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.test.js.map +3 -3
  261. package/lib/esm/internal/app-binder/command/SetPluginCommand.js +1 -1
  262. package/lib/esm/internal/app-binder/command/SetPluginCommand.js.map +3 -3
  263. package/lib/esm/internal/app-binder/command/SetPluginCommand.test.js +1 -1
  264. package/lib/esm/internal/app-binder/command/SetPluginCommand.test.js.map +3 -3
  265. package/lib/esm/internal/app-binder/command/SignEIP712Command.js +1 -1
  266. package/lib/esm/internal/app-binder/command/SignEIP712Command.js.map +3 -3
  267. package/lib/esm/internal/app-binder/command/SignEIP712Command.test.js +1 -1
  268. package/lib/esm/internal/app-binder/command/SignEIP712Command.test.js.map +2 -2
  269. package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.js +1 -1
  270. package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.js.map +3 -3
  271. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js +1 -1
  272. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js.map +3 -3
  273. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  274. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
  275. package/lib/esm/internal/app-binder/command/StartTransactionCommand.js +1 -1
  276. package/lib/esm/internal/app-binder/command/StartTransactionCommand.js.map +3 -3
  277. package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
  278. package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js.map +3 -3
  279. package/lib/esm/internal/app-binder/command/StoreTransactionCommand.js +1 -1
  280. package/lib/esm/internal/app-binder/command/StoreTransactionCommand.js.map +3 -3
  281. package/lib/esm/internal/app-binder/command/StoreTransactionCommand.test.js +1 -1
  282. package/lib/esm/internal/app-binder/command/StoreTransactionCommand.test.js.map +3 -3
  283. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
  284. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
  285. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
  286. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
  287. package/lib/esm/internal/app-binder/command/utils/ethAppErrors.js +2 -0
  288. package/lib/esm/internal/app-binder/command/utils/ethAppErrors.js.map +7 -0
  289. package/lib/esm/internal/app-binder/command/utils/ethAppErrors.test.js +2 -0
  290. package/lib/esm/internal/app-binder/command/utils/ethAppErrors.test.js.map +7 -0
  291. package/lib/esm/internal/app-binder/constant/plugins.js +2 -0
  292. package/lib/esm/internal/app-binder/constant/plugins.js.map +7 -0
  293. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  294. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  295. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  296. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  297. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  298. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  299. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  300. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  301. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  302. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  303. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  304. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  305. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  306. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  307. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  308. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  309. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  310. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  311. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  312. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  313. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  314. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  315. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
  316. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
  317. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
  318. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
  319. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  320. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  321. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  322. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  323. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  324. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  325. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  326. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +2 -2
  327. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +1 -1
  328. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +3 -3
  329. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +1 -1
  330. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +3 -3
  331. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js +1 -1
  332. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +3 -3
  333. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +1 -1
  334. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +3 -3
  335. package/lib/esm/internal/app-binder/task/SendCommandInChunksTask.js +1 -1
  336. package/lib/esm/internal/app-binder/task/SendCommandInChunksTask.js.map +2 -2
  337. package/lib/esm/internal/app-binder/task/SendEIP712StructImplemTask.js +1 -1
  338. package/lib/esm/internal/app-binder/task/SendEIP712StructImplemTask.js.map +2 -2
  339. package/lib/esm/internal/app-binder/task/SendEIP712StructImplemTask.test.js +1 -1
  340. package/lib/esm/internal/app-binder/task/SendEIP712StructImplemTask.test.js.map +2 -2
  341. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  342. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js.map +2 -2
  343. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.test.js +1 -1
  344. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.test.js.map +2 -2
  345. package/lib/esm/internal/app-binder/task/SendSignPersonalMessageTask.js +1 -1
  346. package/lib/esm/internal/app-binder/task/SendSignPersonalMessageTask.js.map +2 -2
  347. package/lib/esm/internal/app-binder/task/SendSignPersonalMessageTask.test.js +1 -1
  348. package/lib/esm/internal/app-binder/task/SendSignPersonalMessageTask.test.js.map +2 -2
  349. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js +1 -1
  350. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
  351. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
  352. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js.map +2 -2
  353. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  354. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  355. package/lib/esm/internal/transaction/di/transactionModule.js +1 -1
  356. package/lib/esm/internal/transaction/di/transactionModule.js.map +3 -3
  357. package/lib/esm/internal/transaction/di/transactionModule.test.js +1 -1
  358. package/lib/esm/internal/transaction/di/transactionModule.test.js.map +2 -2
  359. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js +2 -0
  360. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +7 -0
  361. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +2 -0
  362. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +7 -0
  363. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js +1 -1
  364. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js.map +2 -2
  365. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js +1 -1
  366. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js.map +2 -2
  367. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js +1 -1
  368. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js.map +2 -2
  369. package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  370. package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js.map +2 -2
  371. package/lib/esm/internal/transaction/use-case/SignTransactionUseCase.js +1 -1
  372. package/lib/esm/internal/transaction/use-case/SignTransactionUseCase.js.map +2 -2
  373. package/lib/esm/internal/transaction/use-case/SignTransactionUseCase.test.js +1 -1
  374. package/lib/esm/internal/transaction/use-case/SignTransactionUseCase.test.js.map +3 -3
  375. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  376. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  377. package/lib/esm/package.json +12 -12
  378. package/lib/types/api/SignerEth.d.ts +1 -2
  379. package/lib/types/api/SignerEth.d.ts.map +1 -1
  380. package/lib/types/api/app-binder/GetAddressDeviceActionTypes.d.ts +3 -2
  381. package/lib/types/api/app-binder/GetAddressDeviceActionTypes.d.ts.map +1 -1
  382. package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts +7 -0
  383. package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts.map +1 -0
  384. package/lib/types/api/app-binder/SignPersonalMessageDeviceActionTypes.d.ts +3 -11
  385. package/lib/types/api/app-binder/SignPersonalMessageDeviceActionTypes.d.ts.map +1 -1
  386. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +6 -5
  387. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  388. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +3 -2
  389. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
  390. package/lib/types/api/index.d.ts +2 -2
  391. package/lib/types/api/index.d.ts.map +1 -1
  392. package/lib/types/api/model/{Transaction.d.ts → TransactionType.d.ts} +1 -4
  393. package/lib/types/api/model/TransactionType.d.ts.map +1 -0
  394. package/lib/types/internal/DefaultSignerEth.d.ts +1 -2
  395. package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
  396. package/lib/types/internal/app-binder/EthAppBinder.d.ts +1 -2
  397. package/lib/types/internal/app-binder/EthAppBinder.d.ts.map +1 -1
  398. package/lib/types/internal/app-binder/command/GetAddressCommand.d.ts +5 -3
  399. package/lib/types/internal/app-binder/command/GetAddressCommand.d.ts.map +1 -1
  400. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +10 -0
  401. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -0
  402. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts +2 -0
  403. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts.map +1 -0
  404. package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts +4 -2
  405. package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts.map +1 -1
  406. package/lib/types/internal/app-binder/command/ProvideEnumCommand.d.ts +4 -2
  407. package/lib/types/internal/app-binder/command/ProvideEnumCommand.d.ts.map +1 -1
  408. package/lib/types/internal/app-binder/command/ProvideNFTInformationCommand.d.ts +4 -3
  409. package/lib/types/internal/app-binder/command/ProvideNFTInformationCommand.d.ts.map +1 -1
  410. package/lib/types/internal/app-binder/command/ProvideTokenInformationCommand.d.ts +4 -2
  411. package/lib/types/internal/app-binder/command/ProvideTokenInformationCommand.d.ts.map +1 -1
  412. package/lib/types/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.d.ts +4 -2
  413. package/lib/types/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.d.ts.map +1 -1
  414. package/lib/types/internal/app-binder/command/ProvideTransactionInformationCommand.d.ts +4 -2
  415. package/lib/types/internal/app-binder/command/ProvideTransactionInformationCommand.d.ts.map +1 -1
  416. package/lib/types/internal/app-binder/command/ProvideTrustedNameCommand.d.ts +4 -2
  417. package/lib/types/internal/app-binder/command/ProvideTrustedNameCommand.d.ts.map +1 -1
  418. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts +17 -0
  419. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts.map +1 -0
  420. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts +2 -0
  421. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts.map +1 -0
  422. package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts +4 -2
  423. package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts.map +1 -1
  424. package/lib/types/internal/app-binder/command/SendEIP712StructDefinitionCommand.d.ts +4 -2
  425. package/lib/types/internal/app-binder/command/SendEIP712StructDefinitionCommand.d.ts.map +1 -1
  426. package/lib/types/internal/app-binder/command/SendEIP712StructImplemCommand.d.ts +4 -2
  427. package/lib/types/internal/app-binder/command/SendEIP712StructImplemCommand.d.ts.map +1 -1
  428. package/lib/types/internal/app-binder/command/SetExternalPluginCommand.d.ts +5 -7
  429. package/lib/types/internal/app-binder/command/SetExternalPluginCommand.d.ts.map +1 -1
  430. package/lib/types/internal/app-binder/command/SetPluginCommand.d.ts +5 -7
  431. package/lib/types/internal/app-binder/command/SetPluginCommand.d.ts.map +1 -1
  432. package/lib/types/internal/app-binder/command/SignEIP712Command.d.ts +5 -3
  433. package/lib/types/internal/app-binder/command/SignEIP712Command.d.ts.map +1 -1
  434. package/lib/types/internal/app-binder/command/SignPersonalMessageCommand.d.ts +5 -3
  435. package/lib/types/internal/app-binder/command/SignPersonalMessageCommand.d.ts.map +1 -1
  436. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts +5 -3
  437. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts.map +1 -1
  438. package/lib/types/internal/app-binder/command/StartTransactionCommand.d.ts +4 -2
  439. package/lib/types/internal/app-binder/command/StartTransactionCommand.d.ts.map +1 -1
  440. package/lib/types/internal/app-binder/command/StoreTransactionCommand.d.ts +4 -2
  441. package/lib/types/internal/app-binder/command/StoreTransactionCommand.d.ts.map +1 -1
  442. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts +15 -0
  443. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts.map +1 -0
  444. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.test.d.ts +2 -0
  445. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.test.d.ts.map +1 -0
  446. package/lib/types/internal/app-binder/command/utils/ethAppErrors.d.ts +8 -0
  447. package/lib/types/internal/app-binder/command/utils/ethAppErrors.d.ts.map +1 -0
  448. package/lib/types/internal/app-binder/command/utils/ethAppErrors.test.d.ts +2 -0
  449. package/lib/types/internal/app-binder/command/utils/ethAppErrors.test.d.ts.map +1 -0
  450. package/lib/types/internal/app-binder/constant/plugins.d.ts +2 -0
  451. package/lib/types/internal/app-binder/constant/plugins.d.ts.map +1 -0
  452. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +22 -10
  453. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
  454. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +12 -3
  455. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
  456. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
  457. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  458. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  459. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
  460. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  461. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +4 -1
  462. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
  463. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +3 -3
  464. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +1 -1
  465. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +31 -0
  466. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +1 -0
  467. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts +2 -0
  468. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts.map +1 -0
  469. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +14 -5
  470. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
  471. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +5 -7
  472. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +1 -1
  473. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts +54 -12
  474. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts.map +1 -1
  475. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts +7 -6
  476. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts.map +1 -1
  477. package/lib/types/internal/app-binder/task/SendCommandInChunksTask.d.ts +3 -2
  478. package/lib/types/internal/app-binder/task/SendCommandInChunksTask.d.ts.map +1 -1
  479. package/lib/types/internal/app-binder/task/SendEIP712StructImplemTask.d.ts +2 -1
  480. package/lib/types/internal/app-binder/task/SendEIP712StructImplemTask.d.ts.map +1 -1
  481. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts +2 -1
  482. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts.map +1 -1
  483. package/lib/types/internal/app-binder/task/SendSignPersonalMessageTask.d.ts +2 -1
  484. package/lib/types/internal/app-binder/task/SendSignPersonalMessageTask.d.ts.map +1 -1
  485. package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts +3 -2
  486. package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts.map +1 -1
  487. package/lib/types/internal/transaction/di/transactionModule.d.ts.map +1 -1
  488. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts +7 -0
  489. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts.map +1 -0
  490. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts +2 -0
  491. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts.map +1 -0
  492. package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts +1 -2
  493. package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts.map +1 -1
  494. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts +1 -2
  495. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts.map +1 -1
  496. package/lib/types/internal/transaction/service/mapper/model/TransactionMapperResult.d.ts +1 -1
  497. package/lib/types/internal/transaction/service/mapper/model/TransactionMapperResult.d.ts.map +1 -1
  498. package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts.map +1 -1
  499. package/lib/types/internal/transaction/use-case/SignTransactionUseCase.d.ts +1 -2
  500. package/lib/types/internal/transaction/use-case/SignTransactionUseCase.d.ts.map +1 -1
  501. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  502. package/package.json +16 -16
  503. package/lib/cjs/api/model/Transaction.js +0 -2
  504. package/lib/cjs/api/model/Transaction.js.map +0 -7
  505. package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js +0 -2
  506. package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js.map +0 -7
  507. package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js +0 -2
  508. package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js.map +0 -7
  509. package/lib/cjs/internal/transaction/service/mapper/EthersV5TransactionMapper.js +0 -2
  510. package/lib/cjs/internal/transaction/service/mapper/EthersV5TransactionMapper.js.map +0 -7
  511. package/lib/cjs/internal/transaction/service/mapper/EthersV5TransactionMapper.test.js +0 -2
  512. package/lib/cjs/internal/transaction/service/mapper/EthersV5TransactionMapper.test.js.map +0 -7
  513. package/lib/cjs/internal/transaction/service/mapper/EthersV6TransactionMapper.js +0 -2
  514. package/lib/cjs/internal/transaction/service/mapper/EthersV6TransactionMapper.js.map +0 -7
  515. package/lib/cjs/internal/transaction/service/mapper/EthersV6TransactionMapper.test.js +0 -2
  516. package/lib/cjs/internal/transaction/service/mapper/EthersV6TransactionMapper.test.js.map +0 -7
  517. package/lib/esm/api/model/Transaction.js +0 -2
  518. package/lib/esm/api/model/Transaction.js.map +0 -7
  519. package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js +0 -2
  520. package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js.map +0 -7
  521. package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js +0 -2
  522. package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js.map +0 -7
  523. package/lib/esm/internal/transaction/service/mapper/EthersV5TransactionMapper.js +0 -2
  524. package/lib/esm/internal/transaction/service/mapper/EthersV5TransactionMapper.js.map +0 -7
  525. package/lib/esm/internal/transaction/service/mapper/EthersV5TransactionMapper.test.js +0 -2
  526. package/lib/esm/internal/transaction/service/mapper/EthersV5TransactionMapper.test.js.map +0 -7
  527. package/lib/esm/internal/transaction/service/mapper/EthersV6TransactionMapper.js +0 -2
  528. package/lib/esm/internal/transaction/service/mapper/EthersV6TransactionMapper.js.map +0 -7
  529. package/lib/esm/internal/transaction/service/mapper/EthersV6TransactionMapper.test.js +0 -2
  530. package/lib/esm/internal/transaction/service/mapper/EthersV6TransactionMapper.test.js.map +0 -7
  531. package/lib/types/api/model/Transaction.d.ts.map +0 -1
  532. package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.d.ts +0 -17
  533. package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.d.ts.map +0 -1
  534. package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.d.ts +0 -2
  535. package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.d.ts.map +0 -1
  536. package/lib/types/internal/transaction/service/mapper/EthersV5TransactionMapper.d.ts +0 -10
  537. package/lib/types/internal/transaction/service/mapper/EthersV5TransactionMapper.d.ts.map +0 -1
  538. package/lib/types/internal/transaction/service/mapper/EthersV5TransactionMapper.test.d.ts +0 -2
  539. package/lib/types/internal/transaction/service/mapper/EthersV5TransactionMapper.test.d.ts.map +0 -1
  540. package/lib/types/internal/transaction/service/mapper/EthersV6TransactionMapper.d.ts +0 -9
  541. package/lib/types/internal/transaction/service/mapper/EthersV6TransactionMapper.d.ts.map +0 -1
  542. package/lib/types/internal/transaction/service/mapper/EthersV6TransactionMapper.test.d.ts +0 -2
  543. package/lib/types/internal/transaction/service/mapper/EthersV6TransactionMapper.test.d.ts.map +0 -1
@@ -1,2 +1,2 @@
1
- import{CommandResultFactory as s,isSuccessCommandResult as a}from"@ledgerhq/device-management-kit";import{Just as o,Nothing as r}from"purify-ts";import{SignEIP712Command as t}from"./SignEIP712Command";const n=Uint8Array.from([224,12,0,1,21,5,128,0,0,44,128,0,0,60,128,0,0,0,0,0,0,0,0,0,0,0]),d=Uint8Array.from([224,12,0,0,85,5,128,0,0,44,128,0,0,60,128,0,0,0,0,0,0,0,0,0,0,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34]),c=Uint8Array.from([28,138,84,5,16,225,59,15,43,17,164,81,39,87,22,210,158,8,202,173,7,232,154,28,132,150,71,130,251,94,26,215,136,100,160,222,35,91,39,15,190,129,232,228,6,136,244,169,249,173,157,40,61,105,5,82,201,51,29,119,115,206,175,165,19]),i={statusCode:Uint8Array.from([144,0]),data:c},p={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},m=Uint8Array.from([1,2]),f={statusCode:Uint8Array.from([144,0]),data:m};describe("SignEIP712Command",()=>{let e;beforeEach(()=>{e=new t({derivationPath:"44'/60'/0'/0/0",legacyArgs:r})}),describe("getApdu",()=>{it("should provide the derivation path",()=>{const x=e.getApdu();expect(x.getRawApdu()).toStrictEqual(n)})}),describe("parseResponse",()=>{it("should parse the response",()=>{const x=e.parseResponse(i);expect(x).toStrictEqual(s({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}))}),it("should return an error if the response is not successful",()=>{const x=e.parseResponse(p);expect(a(x)).toBe(!1)}),it("should return an error if the response is too short",()=>{const x=e.parseResponse(f);expect(a(x)).toBe(!1)})})});describe("SignEIP712Command V0",()=>{describe("getApdu",()=>{it("should provide the derivation path and hashes",()=>{const x=new t({derivationPath:"44'/60'/0'/0/0",legacyArgs:o({domainHash:"0x1111111111111111111111111111111111111111111111111111111111111111",messageHash:"0x2222222222222222222222222222222222222222222222222222222222222222"})}).getApdu();expect(x.getRawApdu()).toStrictEqual(d)})})});
1
+ import{CommandResultFactory as o,isSuccessCommandResult as t}from"@ledgerhq/device-management-kit";import{Just as s,Nothing as r}from"purify-ts";import{SignEIP712Command as a}from"./SignEIP712Command";const d=Uint8Array.from([224,12,0,1,21,5,128,0,0,44,128,0,0,60,128,0,0,0,0,0,0,0,0,0,0,0]),n=Uint8Array.from([224,12,0,0,85,5,128,0,0,44,128,0,0,60,128,0,0,0,0,0,0,0,0,0,0,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34]),c=Uint8Array.from([28,138,84,5,16,225,59,15,43,17,164,81,39,87,22,210,158,8,202,173,7,232,154,28,132,150,71,130,251,94,26,215,136,100,160,222,35,91,39,15,190,129,232,228,6,136,244,169,249,173,157,40,61,105,5,82,201,51,29,119,115,206,175,165,19]),i={statusCode:Uint8Array.from([144,0]),data:c},p={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},m=Uint8Array.from([1,2]),f={statusCode:Uint8Array.from([144,0]),data:m};describe("SignEIP712Command",()=>{let e;beforeEach(()=>{e=new a({derivationPath:"44'/60'/0'/0/0",legacyArgs:r})}),describe("getApdu",()=>{it("should provide the derivation path",()=>{const x=e.getApdu();expect(x.getRawApdu()).toStrictEqual(d)})}),describe("parseResponse",()=>{it("should parse the response",()=>{const x=e.parseResponse(i);expect(x).toStrictEqual(o({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}))}),it("should return an error if the response is not successful",()=>{const x=e.parseResponse(p);expect(t(x)).toBe(!1)}),it("should return an error if the response is too short",()=>{const x=e.parseResponse(f);expect(t(x)).toBe(!1)})})});describe("SignEIP712Command V0",()=>{describe("getApdu",()=>{it("should provide the derivation path and hashes",()=>{const x=new a({derivationPath:"44'/60'/0'/0/0",legacyArgs:s({domainHash:"0x1111111111111111111111111111111111111111111111111111111111111111",messageHash:"0x2222222222222222222222222222222222222222222222222222222222222222"})}).getApdu();expect(x.getRawApdu()).toStrictEqual(n)})})});
2
2
  //# sourceMappingURL=SignEIP712Command.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SignEIP712Command.test.ts"],
4
- "sourcesContent": ["import {\n type Command,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport {\n SignEIP712Command,\n type SignEIP712CommandResponse,\n} from \"./SignEIP712Command\";\n\nconst SIGN_EIP712_APDU = Uint8Array.from([\n 0xe0, 0x0c, 0x00, 0x01, 0x15, 0x05, 0x80, 0x00, 0x00, 0x2c, 0x80, 0x00, 0x00,\n 0x3c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n]);\n\nconst SIGN_EIP712_APDU_V0 = Uint8Array.from([\n 0xe0, 0x0c, 0x00, 0x00, 0x55, 0x05, 0x80, 0x00, 0x00, 0x2c, 0x80, 0x00, 0x00,\n 0x3c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,\n 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,\n 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,\n 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,\n 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,\n]);\n\nconst LNX_RESPONSE_DATA_GOOD = Uint8Array.from([\n 0x1c, 0x8a, 0x54, 0x05, 0x10, 0xe1, 0x3b, 0x0f, 0x2b, 0x11, 0xa4, 0x51, 0x27,\n 0x57, 0x16, 0xd2, 0x9e, 0x08, 0xca, 0xad, 0x07, 0xe8, 0x9a, 0x1c, 0x84, 0x96,\n 0x47, 0x82, 0xfb, 0x5e, 0x1a, 0xd7, 0x88, 0x64, 0xa0, 0xde, 0x23, 0x5b, 0x27,\n 0x0f, 0xbe, 0x81, 0xe8, 0xe4, 0x06, 0x88, 0xf4, 0xa9, 0xf9, 0xad, 0x9d, 0x28,\n 0x3d, 0x69, 0x05, 0x52, 0xc9, 0x33, 0x1d, 0x77, 0x73, 0xce, 0xaf, 0xa5, 0x13,\n]);\n\nconst LNX_RESPONSE_GOOD = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA_GOOD,\n};\n\nconst LNX_RESPONSE_LOCKED = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n};\n\nconst LNX_RESPONSE_DATA_TOO_SHORT = Uint8Array.from([0x01, 0x02]);\n\nconst LNX_RESPONSE_TOO_SHORT = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA_TOO_SHORT,\n};\n\ndescribe(\"SignEIP712Command\", () => {\n let command: Command<SignEIP712CommandResponse, void>;\n\n beforeEach(() => {\n command = new SignEIP712Command({\n derivationPath: \"44'/60'/0'/0/0\",\n legacyArgs: Nothing,\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should provide the derivation path\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(SIGN_EIP712_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response\", () => {\n const parsedResponse = command.parseResponse(LNX_RESPONSE_GOOD);\n expect(parsedResponse).toStrictEqual(\n CommandResultFactory({\n data: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\n },\n }),\n );\n });\n\n it(\"should return an error if the response is not successful\", () => {\n const response = command.parseResponse(LNX_RESPONSE_LOCKED);\n expect(isSuccessCommandResult(response)).toBe(false);\n });\n\n it(\"should return an error if the response is too short\", () => {\n const response = command.parseResponse(LNX_RESPONSE_TOO_SHORT);\n expect(isSuccessCommandResult(response)).toBe(false);\n });\n });\n});\n\ndescribe(\"SignEIP712Command V0\", () => {\n describe(\"getApdu\", () => {\n it(\"should provide the derivation path and hashes\", () => {\n const command = new SignEIP712Command({\n derivationPath: \"44'/60'/0'/0/0\",\n legacyArgs: Just({\n domainHash:\n \"0x1111111111111111111111111111111111111111111111111111111111111111\",\n messageHash:\n \"0x2222222222222222222222222222222222222222222222222222222222222222\",\n }),\n });\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(SIGN_EIP712_APDU_V0);\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n type Command,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { type EthErrorCodes } from \"./utils/ethAppErrors\";\nimport {\n SignEIP712Command,\n type SignEIP712CommandResponse,\n} from \"./SignEIP712Command\";\n\nconst SIGN_EIP712_APDU = Uint8Array.from([\n 0xe0, 0x0c, 0x00, 0x01, 0x15, 0x05, 0x80, 0x00, 0x00, 0x2c, 0x80, 0x00, 0x00,\n 0x3c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n]);\n\nconst SIGN_EIP712_APDU_V0 = Uint8Array.from([\n 0xe0, 0x0c, 0x00, 0x00, 0x55, 0x05, 0x80, 0x00, 0x00, 0x2c, 0x80, 0x00, 0x00,\n 0x3c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,\n 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,\n 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,\n 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,\n 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,\n]);\n\nconst LNX_RESPONSE_DATA_GOOD = Uint8Array.from([\n 0x1c, 0x8a, 0x54, 0x05, 0x10, 0xe1, 0x3b, 0x0f, 0x2b, 0x11, 0xa4, 0x51, 0x27,\n 0x57, 0x16, 0xd2, 0x9e, 0x08, 0xca, 0xad, 0x07, 0xe8, 0x9a, 0x1c, 0x84, 0x96,\n 0x47, 0x82, 0xfb, 0x5e, 0x1a, 0xd7, 0x88, 0x64, 0xa0, 0xde, 0x23, 0x5b, 0x27,\n 0x0f, 0xbe, 0x81, 0xe8, 0xe4, 0x06, 0x88, 0xf4, 0xa9, 0xf9, 0xad, 0x9d, 0x28,\n 0x3d, 0x69, 0x05, 0x52, 0xc9, 0x33, 0x1d, 0x77, 0x73, 0xce, 0xaf, 0xa5, 0x13,\n]);\n\nconst LNX_RESPONSE_GOOD = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA_GOOD,\n};\n\nconst LNX_RESPONSE_LOCKED = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n};\n\nconst LNX_RESPONSE_DATA_TOO_SHORT = Uint8Array.from([0x01, 0x02]);\n\nconst LNX_RESPONSE_TOO_SHORT = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA_TOO_SHORT,\n};\n\ndescribe(\"SignEIP712Command\", () => {\n let command: Command<SignEIP712CommandResponse, void, EthErrorCodes>;\n\n beforeEach(() => {\n command = new SignEIP712Command({\n derivationPath: \"44'/60'/0'/0/0\",\n legacyArgs: Nothing,\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should provide the derivation path\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(SIGN_EIP712_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response\", () => {\n const parsedResponse = command.parseResponse(LNX_RESPONSE_GOOD);\n expect(parsedResponse).toStrictEqual(\n CommandResultFactory({\n data: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\n },\n }),\n );\n });\n\n it(\"should return an error if the response is not successful\", () => {\n const response = command.parseResponse(LNX_RESPONSE_LOCKED);\n expect(isSuccessCommandResult(response)).toBe(false);\n });\n\n it(\"should return an error if the response is too short\", () => {\n const response = command.parseResponse(LNX_RESPONSE_TOO_SHORT);\n expect(isSuccessCommandResult(response)).toBe(false);\n });\n });\n});\n\ndescribe(\"SignEIP712Command V0\", () => {\n describe(\"getApdu\", () => {\n it(\"should provide the derivation path and hashes\", () => {\n const command = new SignEIP712Command({\n derivationPath: \"44'/60'/0'/0/0\",\n legacyArgs: Just({\n domainHash:\n \"0x1111111111111111111111111111111111111111111111111111111111111111\",\n messageHash:\n \"0x2222222222222222222222222222222222222222222222222222222222222222\",\n }),\n });\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(SIGN_EIP712_APDU_V0);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["CommandResultFactory", "isSuccessCommandResult", "Just", "Nothing", "SignEIP712Command", "SIGN_EIP712_APDU", "SIGN_EIP712_APDU_V0", "LNX_RESPONSE_DATA_GOOD", "LNX_RESPONSE_GOOD", "LNX_RESPONSE_LOCKED", "LNX_RESPONSE_DATA_TOO_SHORT", "LNX_RESPONSE_TOO_SHORT", "command", "apdu", "parsedResponse", "response"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduBuilder as i,ApduParser as d,CommandResultFactory as s,CommandUtils as m,GlobalCommandErrorHandler as g,InvalidStatusWordError as o}from"@ledgerhq/device-management-kit";import{Just as p,Nothing as u}from"purify-ts";const l=32,c=32;class S{args;constructor(e){this.args=e}getApdu(){const{data:e,isFirstChunk:r}=this.args,n={cla:224,ins:8,p1:r?0:128,p2:0};return new i(n).addBufferToData(e).build()}parseResponse(e){const r=new d(e);if(!m.isSuccessResponse(e))return s({error:g.handle(e)});const n=r.extract8BitUInt();if(n===void 0)return s({data:u});const a=r.encodeToHexaString(r.extractFieldByLength(l),!0);if(!a)return s({error:new o("R is missing")});const t=r.encodeToHexaString(r.extractFieldByLength(c),!0);return t?s({data:p({r:a,s:t,v:n})}):s({error:new o("S is missing")})}}export{S as SignPersonalMessageCommand};
1
+ import{ApduBuilder as d,ApduParser as i,CommandResultFactory as o,InvalidStatusWordError as a}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as m}from"@ledgerhq/signer-utils";import{Just as p,Maybe as g,Nothing as l}from"purify-ts";import{ETH_APP_ERRORS as u,EthAppCommandErrorFactory as C}from"./utils/ethAppErrors";const y=32,c=32;class h{args;errorHelper=new m(u,C);constructor(r){this.args=r}getApdu(){const{data:r,isFirstChunk:e}=this.args,s={cla:224,ins:8,p1:e?0:128,p2:0};return new d(s).addBufferToData(r).build()}parseResponse(r){return g.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const e=new i(r),s=e.extract8BitUInt();if(s===void 0)return o({data:l});const n=e.encodeToHexaString(e.extractFieldByLength(y),!0);if(!n)return o({error:new a("R is missing")});const t=e.encodeToHexaString(e.extractFieldByLength(c),!0);return t?o({data:p({r:n,s:t,v:s})}):o({error:new a("S is missing")})})}}export{h as SignPersonalMessageCommand};
2
2
  //# sourceMappingURL=SignPersonalMessageCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SignPersonalMessageCommand.ts"],
4
- "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-personal-message\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n GlobalCommandErrorHandler,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, type Maybe, Nothing } from \"purify-ts\";\n\nimport { type Signature } from \"@api/model/Signature\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\nexport type SignPersonalMessageCommandArgs = {\n /**\n * The data to sign in max 150 bytes chunks\n */\n readonly data: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\nexport type SignPersonalMessageCommandResponse = Maybe<Signature>;\n\nexport class SignPersonalMessageCommand\n implements\n Command<SignPersonalMessageCommandResponse, SignPersonalMessageCommandArgs>\n{\n readonly args: SignPersonalMessageCommandArgs;\n\n constructor(args: SignPersonalMessageCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const { data, isFirstChunk } = this.args;\n const signPersonalMessageArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x08,\n p1: isFirstChunk ? 0x00 : 0x80,\n p2: 0x00,\n };\n\n return new ApduBuilder(signPersonalMessageArgs)\n .addBufferToData(data)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<SignPersonalMessageCommandResponse> {\n const parser = new ApduParser(apduResponse);\n\n if (!CommandUtils.isSuccessResponse(apduResponse)) {\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(apduResponse),\n });\n }\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({ data: Nothing });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n r,\n s,\n v,\n }),\n });\n }\n}\n"],
5
- "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,gBAAAC,EACA,6BAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,QAAAC,EAAkB,WAAAC,MAAe,YAI1C,MAAMC,EAAW,GACXC,EAAW,GAeV,MAAMC,CAGb,CACW,KAET,YAAYC,EAAsC,CAChD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,KAAM,CAAE,KAAAC,EAAM,aAAAC,CAAa,EAAI,KAAK,KAC9BC,EAA2C,CAC/C,IAAK,IACL,IAAK,EACL,GAAID,EAAe,EAAO,IAC1B,GAAI,CACN,EAEA,OAAO,IAAIb,EAAYc,CAAuB,EAC3C,gBAAgBF,CAAI,EACpB,MAAM,CACX,CAEA,cACEG,EACmD,CACnD,MAAMC,EAAS,IAAIf,EAAWc,CAAY,EAE1C,GAAI,CAACZ,EAAa,kBAAkBY,CAAY,EAC9C,OAAOb,EAAqB,CAC1B,MAAOE,EAA0B,OAAOW,CAAY,CACtD,CAAC,EAIH,MAAME,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,OAAOf,EAAqB,CAAE,KAAMK,CAAQ,CAAC,EAG/C,MAAMW,EAAIF,EAAO,mBACfA,EAAO,qBAAqBR,CAAQ,EACpC,EACF,EACA,GAAI,CAACU,EACH,OAAOhB,EAAqB,CAC1B,MAAO,IAAIG,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAMc,EAAIH,EAAO,mBACfA,EAAO,qBAAqBP,CAAQ,EACpC,EACF,EACA,OAAKU,EAMEjB,EAAqB,CAC1B,KAAMI,EAAK,CACT,EAAAY,EACA,EAAAC,EACA,EAAAF,CACF,CAAC,CACH,CAAC,EAXQf,EAAqB,CAC1B,MAAO,IAAIG,EAAuB,cAAc,CAClD,CAAC,CAUL,CACF",
6
- "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "CommandUtils", "GlobalCommandErrorHandler", "InvalidStatusWordError", "Just", "Nothing", "R_LENGTH", "S_LENGTH", "SignPersonalMessageCommand", "args", "data", "isFirstChunk", "signPersonalMessageArgs", "apduResponse", "parser", "v", "r", "s"]
4
+ "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-personal-message\nimport {\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 { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Just, Maybe, Nothing } from \"purify-ts\";\n\nimport { type Signature } from \"@api/model/Signature\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\nexport type SignPersonalMessageCommandArgs = {\n /**\n * The data to sign in max 150 bytes chunks\n */\n readonly data: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\nexport type SignPersonalMessageCommandResponse = Maybe<Signature>;\n\nexport class SignPersonalMessageCommand\n implements\n Command<\n SignPersonalMessageCommandResponse,\n SignPersonalMessageCommandArgs,\n EthErrorCodes\n >\n{\n readonly args: SignPersonalMessageCommandArgs;\n private readonly errorHelper = new CommandErrorHelper<\n SignPersonalMessageCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n constructor(args: SignPersonalMessageCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const { data, isFirstChunk } = this.args;\n const signPersonalMessageArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x08,\n p1: isFirstChunk ? 0x00 : 0x80,\n p2: 0x00,\n };\n\n return new ApduBuilder(signPersonalMessageArgs)\n .addBufferToData(data)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<SignPersonalMessageCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({ data: Nothing });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n r,\n s,\n v,\n }),\n });\n });\n }\n}\n"],
5
+ "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,QAAAC,EAAM,SAAAC,EAAO,WAAAC,MAAe,YAIrC,OACE,kBAAAC,EACA,6BAAAC,MAEK,uBAEP,MAAMC,EAAW,GACXC,EAAW,GAeV,MAAMC,CAOb,CACW,KACQ,YAAc,IAAIR,EAGjCI,EAAgBC,CAAyB,EAE3C,YAAYI,EAAsC,CAChD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,KAAM,CAAE,KAAAC,EAAM,aAAAC,CAAa,EAAI,KAAK,KAC9BC,EAA2C,CAC/C,IAAK,IACL,IAAK,EACL,GAAID,EAAe,EAAO,IAC1B,GAAI,CACN,EAEA,OAAO,IAAIf,EAAYgB,CAAuB,EAC3C,gBAAgBF,CAAI,EACpB,MAAM,CACX,CAEA,cACEG,EACkE,CAClE,OAAOX,EAAM,aACX,KAAK,YAAY,SAASW,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAIjB,EAAWgB,CAAY,EAGpCE,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,OAAOjB,EAAqB,CAAE,KAAMK,CAAQ,CAAC,EAG/C,MAAMa,EAAIF,EAAO,mBACfA,EAAO,qBAAqBR,CAAQ,EACpC,EACF,EACA,GAAI,CAACU,EACH,OAAOlB,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAMkB,EAAIH,EAAO,mBACfA,EAAO,qBAAqBP,CAAQ,EACpC,EACF,EACA,OAAKU,EAMEnB,EAAqB,CAC1B,KAAMG,EAAK,CACT,EAAAe,EACA,EAAAC,EACA,EAAAF,CACF,CAAC,CACH,CAAC,EAXQjB,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,CAUL,CAAC,CACH,CACF",
6
+ "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "InvalidStatusWordError", "CommandErrorHelper", "Just", "Maybe", "Nothing", "ETH_APP_ERRORS", "EthAppCommandErrorFactory", "R_LENGTH", "S_LENGTH", "SignPersonalMessageCommand", "args", "data", "isFirstChunk", "signPersonalMessageArgs", "apduResponse", "parser", "v", "r", "s"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduBuilder as i,ApduParser as d,CommandResultFactory as e,CommandUtils as m,GlobalCommandErrorHandler as u,InvalidStatusWordError as o}from"@ledgerhq/device-management-kit";import{Just as p,Nothing as c}from"purify-ts";const g=32,l=32;class S{args;constructor(n){this.args=n}getApdu(){const{serializedTransaction:n,isFirstChunk:r}=this.args,t={cla:224,ins:4,p1:r?0:128,p2:0};return new i(t).addBufferToData(n).build()}parseResponse(n){const r=new d(n);if(!m.isSuccessResponse(n))return e({error:u.handle(n)});const t=r.extract8BitUInt();if(t===void 0)return e({data:c});const a=r.encodeToHexaString(r.extractFieldByLength(g),!0);if(!a)return e({error:new o("R is missing")});const s=r.encodeToHexaString(r.extractFieldByLength(l),!0);return s?e({data:p({v:t,r:a,s})}):e({error:new o("S is missing")})}}export{S as SignTransactionCommand};
1
+ import{ApduBuilder as i,ApduParser as d,CommandResultFactory as t,InvalidStatusWordError as s}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as m}from"@ledgerhq/signer-utils";import{Just as p,Maybe as u,Nothing as c}from"purify-ts";import{ETH_APP_ERRORS as g,EthAppCommandErrorFactory as l}from"./utils/ethAppErrors";const C=32,y=32;class R{errorHelper=new m(g,l);args;constructor(n){this.args=n}getApdu(){const{serializedTransaction:n,isFirstChunk:r}=this.args,e={cla:224,ins:4,p1:r?0:128,p2:0};return new i(e).addBufferToData(n).build()}parseResponse(n){return u.fromNullable(this.errorHelper.getError(n)).orDefaultLazy(()=>{const r=new d(n),e=r.extract8BitUInt();if(e===void 0)return t({data:c});const o=r.encodeToHexaString(r.extractFieldByLength(C),!0);if(!o)return t({error:new s("R is missing")});const a=r.encodeToHexaString(r.extractFieldByLength(y),!0);return a?t({data:p({v:e,r:o,s:a})}):t({error:new s("S is missing")})})}}export{R as SignTransactionCommand};
2
2
  //# sourceMappingURL=SignTransactionCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SignTransactionCommand.ts"],
4
- "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-transaction\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n GlobalCommandErrorHandler,\n type HexaString,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, type Maybe, Nothing } from \"purify-ts\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\nexport type SignTransactionCommandResponse = Maybe<{\n v: number;\n r: HexaString;\n s: HexaString;\n}>;\n\nexport type SignTransactionCommandArgs = {\n /**\n * The transaction to sign in max 150 bytes chunks\n */\n readonly serializedTransaction: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\nexport class SignTransactionCommand\n implements Command<SignTransactionCommandResponse, SignTransactionCommandArgs>\n{\n args: SignTransactionCommandArgs;\n\n constructor(args: SignTransactionCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const { serializedTransaction, isFirstChunk } = this.args;\n\n const signEthTransactionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x04,\n p1: isFirstChunk ? 0x00 : 0x80,\n p2: 0x00,\n };\n\n const builder = new ApduBuilder(signEthTransactionArgs);\n\n return builder.addBufferToData(serializedTransaction).build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<SignTransactionCommandResponse> {\n const parser = new ApduParser(response);\n\n if (!CommandUtils.isSuccessResponse(response)) {\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(response),\n });\n }\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({ data: Nothing });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n v,\n r,\n s,\n }),\n });\n }\n}\n"],
5
- "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,gBAAAC,EACA,6BAAAC,EAEA,0BAAAC,MACK,kCACP,OAAS,QAAAC,EAAkB,WAAAC,MAAe,YAE1C,MAAMC,EAAW,GACXC,EAAW,GAmBV,MAAMC,CAEb,CACE,KAEA,YAAYC,EAAkC,CAC5C,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,KAAM,CAAE,sBAAAC,EAAuB,aAAAC,CAAa,EAAI,KAAK,KAE/CC,EAA0C,CAC9C,IAAK,IACL,IAAK,EACL,GAAID,EAAe,EAAO,IAC1B,GAAI,CACN,EAIA,OAFgB,IAAIb,EAAYc,CAAsB,EAEvC,gBAAgBF,CAAqB,EAAE,MAAM,CAC9D,CAEA,cACEG,EAC+C,CAC/C,MAAMC,EAAS,IAAIf,EAAWc,CAAQ,EAEtC,GAAI,CAACZ,EAAa,kBAAkBY,CAAQ,EAC1C,OAAOb,EAAqB,CAC1B,MAAOE,EAA0B,OAAOW,CAAQ,CAClD,CAAC,EAIH,MAAME,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,OAAOf,EAAqB,CAAE,KAAMK,CAAQ,CAAC,EAG/C,MAAMW,EAAIF,EAAO,mBACfA,EAAO,qBAAqBR,CAAQ,EACpC,EACF,EACA,GAAI,CAACU,EACH,OAAOhB,EAAqB,CAC1B,MAAO,IAAIG,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAM,EAAIW,EAAO,mBACfA,EAAO,qBAAqBP,CAAQ,EACpC,EACF,EACA,OAAK,EAMEP,EAAqB,CAC1B,KAAMI,EAAK,CACT,EAAAW,EACA,EAAAC,EACA,CACF,CAAC,CACH,CAAC,EAXQhB,EAAqB,CAC1B,MAAO,IAAIG,EAAuB,cAAc,CAClD,CAAC,CAUL,CACF",
6
- "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "CommandUtils", "GlobalCommandErrorHandler", "InvalidStatusWordError", "Just", "Nothing", "R_LENGTH", "S_LENGTH", "SignTransactionCommand", "args", "serializedTransaction", "isFirstChunk", "signEthTransactionArgs", "response", "parser", "v", "r"]
4
+ "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-transaction\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Just, Maybe, Nothing } from \"purify-ts\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\nexport type SignTransactionCommandResponse = Maybe<{\n v: number;\n r: HexaString;\n s: HexaString;\n}>;\n\nexport type SignTransactionCommandArgs = {\n /**\n * The transaction to sign in max 150 bytes chunks\n */\n readonly serializedTransaction: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\nexport class SignTransactionCommand\n implements\n Command<\n SignTransactionCommandResponse,\n SignTransactionCommandArgs,\n EthErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SignTransactionCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n args: SignTransactionCommandArgs;\n\n constructor(args: SignTransactionCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const { serializedTransaction, isFirstChunk } = this.args;\n\n const signEthTransactionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x04,\n p1: isFirstChunk ? 0x00 : 0x80,\n p2: 0x00,\n };\n\n const builder = new ApduBuilder(signEthTransactionArgs);\n\n return builder.addBufferToData(serializedTransaction).build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<SignTransactionCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({ data: Nothing });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n v,\n r,\n s,\n }),\n });\n });\n }\n}\n"],
5
+ "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EAEA,0BAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,QAAAC,EAAM,SAAAC,EAAO,WAAAC,MAAe,YAErC,OACE,kBAAAC,EACA,6BAAAC,MAEK,uBAEP,MAAMC,EAAW,GACXC,EAAW,GAmBV,MAAMC,CAOb,CACmB,YAAc,IAAIR,EAGjCI,EAAgBC,CAAyB,EAE3C,KAEA,YAAYI,EAAkC,CAC5C,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,KAAM,CAAE,sBAAAC,EAAuB,aAAAC,CAAa,EAAI,KAAK,KAE/CC,EAA0C,CAC9C,IAAK,IACL,IAAK,EACL,GAAID,EAAe,EAAO,IAC1B,GAAI,CACN,EAIA,OAFgB,IAAIf,EAAYgB,CAAsB,EAEvC,gBAAgBF,CAAqB,EAAE,MAAM,CAC9D,CAEA,cACEG,EAC8D,CAC9D,OAAOX,EAAM,aACX,KAAK,YAAY,SAASW,CAAQ,CACpC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAIjB,EAAWgB,CAAQ,EAGhCE,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,OAAOjB,EAAqB,CAAE,KAAMK,CAAQ,CAAC,EAG/C,MAAMa,EAAIF,EAAO,mBACfA,EAAO,qBAAqBR,CAAQ,EACpC,EACF,EACA,GAAI,CAACU,EACH,OAAOlB,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAMkB,EAAIH,EAAO,mBACfA,EAAO,qBAAqBP,CAAQ,EACpC,EACF,EACA,OAAKU,EAMEnB,EAAqB,CAC1B,KAAMG,EAAK,CACT,EAAAc,EACA,EAAAC,EACA,EAAAC,CACF,CAAC,CACH,CAAC,EAXQnB,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,CAUL,CAAC,CACH,CACF",
6
+ "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "InvalidStatusWordError", "CommandErrorHelper", "Just", "Maybe", "Nothing", "ETH_APP_ERRORS", "EthAppCommandErrorFactory", "R_LENGTH", "S_LENGTH", "SignTransactionCommand", "args", "serializedTransaction", "isFirstChunk", "signEthTransactionArgs", "response", "parser", "v", "r", "s"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduResponse as o,CommandResultFactory as x,InvalidStatusWordError as c,isSuccessCommandResult as s,UnknownDeviceExchangeError as d}from"@ledgerhq/device-management-kit";import{Just as i,Nothing as p}from"purify-ts";import{SignTransactionCommand as n}from"./SignTransactionCommand";const m=new o({statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])}),r=new Uint8Array([38,141,39,68,71,17,187,237,68,43,155,252,119,5,192,115,22,183,228,17,80,197,51,18,114,228,210,9,212,34,249,250,57,0,204,63,12,25,56,192,241,255,198,45,240,55,34,90,19,54,251,161,249,254,250,17,245,175,197,188,185,126,177,179,209,144,0]),u=new o({statusCode:Uint8Array.from([144,0]),data:r});describe("SignTransactionCommand",()=>{const t={serializedTransaction:new Uint8Array,isFirstChunk:!0};describe("getApdu",()=>{describe("Legacy",()=>{it("should return the correct APDU when the data is empty",()=>{const e=new n({...t}).getApdu();expect(e.data).toStrictEqual(new Uint8Array),expect(e.cla).toBe(224),expect(e.ins).toBe(4),expect(e.p1).toBe(0),expect(e.p2).toBe(0)}),it("should return the correct APDU when the data is not empty",()=>{const e=new n({...t,serializedTransaction:new Uint8Array([1,2,3])}).getApdu();expect(e.data).toStrictEqual(new Uint8Array([1,2,3])),expect(e.cla).toBe(224),expect(e.ins).toBe(4),expect(e.p1).toBe(0),expect(e.p2).toBe(0)}),it("should return the correct APDU when it is not the first chunk",()=>{const e=new n({...t,isFirstChunk:!1}).getApdu();expect(e.data).toStrictEqual(new Uint8Array),expect(e.cla).toBe(224),expect(e.ins).toBe(4),expect(e.p1).toBe(128),expect(e.p2).toBe(0)})}),describe("Store and start",()=>{}),describe("Start",()=>{})}),describe("parseResponse",()=>{it("should return Nothing when the response data is empty",()=>{const e=new n({...t}).parseResponse(m);expect(e).toStrictEqual(x({data:p}))}),it("should return Just the response data when the response data is not empty",()=>{const e=new n({...t}).parseResponse(u);expect(e).toStrictEqual(x({data:i({r:"0x8d27444711bbed442b9bfc7705c07316b7e41150c5331272e4d209d422f9fa39",s:"0x00cc3f0c1938c0f1ffc62df037225a1336fba1f9fefa11f5afc5bcb97eb1b3d1",v:38})}))}),it("should return a UnknownDeviceExchangeError when the response status code is not 0x9000",()=>{const e=new n({...t}).parseResponse(new o({statusCode:Uint8Array.from([81,85]),data:new Uint8Array}));expect(s(e)).toBe(!1),expect(e.error).toBeInstanceOf(d)}),it("should return an InvalidStatusWord error when the response data r is not valid",()=>{const e=new n({...t}).parseResponse(new o({statusCode:Uint8Array.from([144,0]),data:r.slice(0,1)}));expect(s(e)).toBe(!1),expect(e.error).toBeInstanceOf(c)}),it("should return an error when the response data s is not valid",()=>{const e=new n({...t}).parseResponse(new o({statusCode:Uint8Array.from([144,0]),data:r.slice(0,33)}));expect(s(e)).toBe(!1)})})});
1
+ import{ApduResponse as a,CommandResultFactory as x,InvalidStatusWordError as c,isSuccessCommandResult as s,UnknownDeviceExchangeError as d}from"@ledgerhq/device-management-kit";import{Just as i,Nothing as p}from"purify-ts";import{SignTransactionCommand as n}from"./SignTransactionCommand";const m=new a({statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])}),r=new Uint8Array([38,141,39,68,71,17,187,237,68,43,155,252,119,5,192,115,22,183,228,17,80,197,51,18,114,228,210,9,212,34,249,250,57,0,204,63,12,25,56,192,241,255,198,45,240,55,34,90,19,54,251,161,249,254,250,17,245,175,197,188,185,126,177,179,209,144,0]),u=new a({statusCode:Uint8Array.from([144,0]),data:r});describe("SignTransactionCommand",()=>{const t={serializedTransaction:new Uint8Array,isFirstChunk:!0};describe("getApdu",()=>{describe("Legacy",()=>{it("should return the correct APDU when the data is empty",()=>{const e=new n({...t}).getApdu();expect(e.data).toStrictEqual(new Uint8Array),expect(e.cla).toBe(224),expect(e.ins).toBe(4),expect(e.p1).toBe(0),expect(e.p2).toBe(0)}),it("should return the correct APDU when the data is not empty",()=>{const e=new n({...t,serializedTransaction:new Uint8Array([1,2,3])}).getApdu();expect(e.data).toStrictEqual(new Uint8Array([1,2,3])),expect(e.cla).toBe(224),expect(e.ins).toBe(4),expect(e.p1).toBe(0),expect(e.p2).toBe(0)}),it("should return the correct APDU when it is not the first chunk",()=>{const e=new n({...t,isFirstChunk:!1}).getApdu();expect(e.data).toStrictEqual(new Uint8Array),expect(e.cla).toBe(224),expect(e.ins).toBe(4),expect(e.p1).toBe(128),expect(e.p2).toBe(0)})}),describe.todo("Store and start",()=>{}),describe.todo("Start",()=>{})}),describe("parseResponse",()=>{it("should return Nothing when the response data is empty",()=>{const e=new n({...t}).parseResponse(m);expect(e).toStrictEqual(x({data:p}))}),it("should return Just the response data when the response data is not empty",()=>{const e=new n({...t}).parseResponse(u);expect(e).toStrictEqual(x({data:i({r:"0x8d27444711bbed442b9bfc7705c07316b7e41150c5331272e4d209d422f9fa39",s:"0x00cc3f0c1938c0f1ffc62df037225a1336fba1f9fefa11f5afc5bcb97eb1b3d1",v:38})}))}),it("should return a UnknownDeviceExchangeError when the response status code is not 0x9000",()=>{const e=new n({...t}).parseResponse(new a({statusCode:Uint8Array.from([81,85]),data:new Uint8Array}));expect(s(e)).toBe(!1),expect(e.error).toBeInstanceOf(d)}),it("should return an InvalidStatusWord error when the response data r is not valid",()=>{const e=new n({...t}).parseResponse(new a({statusCode:Uint8Array.from([144,0]),data:r.slice(0,1)}));expect(s(e)).toBe(!1),expect(e.error).toBeInstanceOf(c)}),it("should return an error when the response data s is not valid",()=>{const e=new n({...t}).parseResponse(new a({statusCode:Uint8Array.from([144,0]),data:r.slice(0,33)}));expect(s(e)).toBe(!1)})})});
2
2
  //# sourceMappingURL=SignTransactionCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/SignTransactionCommand.test.ts"],
4
- "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n InvalidStatusWordError,\n isSuccessCommandResult,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport {\n SignTransactionCommand,\n type SignTransactionCommandArgs,\n} from \"./SignTransactionCommand\";\n\nconst LNX_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n});\n\nconst LNX_RESPONSE_DATA = new Uint8Array([\n 0x26, 0x8d, 0x27, 0x44, 0x47, 0x11, 0xbb, 0xed, 0x44, 0x2b, 0x9b, 0xfc, 0x77,\n 0x05, 0xc0, 0x73, 0x16, 0xb7, 0xe4, 0x11, 0x50, 0xc5, 0x33, 0x12, 0x72, 0xe4,\n 0xd2, 0x09, 0xd4, 0x22, 0xf9, 0xfa, 0x39, 0x00, 0xcc, 0x3f, 0x0c, 0x19, 0x38,\n 0xc0, 0xf1, 0xff, 0xc6, 0x2d, 0xf0, 0x37, 0x22, 0x5a, 0x13, 0x36, 0xfb, 0xa1,\n 0xf9, 0xfe, 0xfa, 0x11, 0xf5, 0xaf, 0xc5, 0xbc, 0xb9, 0x7e, 0xb1, 0xb3, 0xd1,\n 0x90, 0x00,\n]);\n\nconst LNX_RESPONSE_DATA_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA,\n});\n\ndescribe(\"SignTransactionCommand\", () => {\n const defaultArgs: SignTransactionCommandArgs = {\n serializedTransaction: new Uint8Array(),\n isFirstChunk: true,\n };\n\n describe(\"getApdu\", () => {\n describe(\"Legacy\", () => {\n it(\"should return the correct APDU when the data is empty\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.data).toStrictEqual(new Uint8Array());\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x04);\n expect(apdu.p1).toBe(0x00);\n expect(apdu.p2).toBe(0x00);\n });\n\n it(\"should return the correct APDU when the data is not empty\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n serializedTransaction: new Uint8Array([0x01, 0x02, 0x03]),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.data).toStrictEqual(new Uint8Array([0x01, 0x02, 0x03]));\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x04);\n expect(apdu.p1).toBe(0x00);\n expect(apdu.p2).toBe(0x00);\n });\n\n it(\"should return the correct APDU when it is not the first chunk\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n isFirstChunk: false,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.data).toStrictEqual(new Uint8Array());\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x04);\n expect(apdu.p1).toBe(0x80);\n expect(apdu.p2).toBe(0x00);\n });\n });\n\n describe(\"Store and start\", () => {\n // TODO\n });\n\n describe(\"Start\", () => {\n // TODO\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return Nothing when the response data is empty\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(LNX_RESPONSE_GOOD);\n\n // THEN\n expect(response).toStrictEqual(CommandResultFactory({ data: Nothing }));\n });\n\n it(\"should return Just the response data when the response data is not empty\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(LNX_RESPONSE_DATA_GOOD);\n\n // THEN\n expect(response).toStrictEqual(\n CommandResultFactory({\n data: Just({\n r: \"0x8d27444711bbed442b9bfc7705c07316b7e41150c5331272e4d209d422f9fa39\",\n s: \"0x00cc3f0c1938c0f1ffc62df037225a1336fba1f9fefa11f5afc5bcb97eb1b3d1\",\n v: 38,\n }),\n }),\n );\n });\n\n it(\"should return a UnknownDeviceExchangeError when the response status code is not 0x9000\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x51, 0x55]),\n data: new Uint8Array(),\n }),\n );\n\n // THEN\n expect(isSuccessCommandResult(response)).toBe(false);\n // @ts-expect-error `error`is not typed because we did not narrow it\n expect(response.error).toBeInstanceOf(UnknownDeviceExchangeError);\n });\n\n it(\"should return an InvalidStatusWord error when the response data r is not valid\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA.slice(0, 1),\n }),\n );\n\n // THEN\n expect(isSuccessCommandResult(response)).toBe(false);\n // @ts-expect-error `error`is not typed because we did not narrow it\n expect(response.error).toBeInstanceOf(InvalidStatusWordError);\n });\n\n it(\"should return an error when the response data s is not valid\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA.slice(0, 33),\n }),\n );\n\n // THEN\n expect(isSuccessCommandResult(response)).toBe(false);\n });\n });\n});\n"],
5
- "mappings": "AAAA,OACE,gBAAAA,EACA,wBAAAC,EACA,0BAAAC,EACA,0BAAAC,EACA,8BAAAC,MACK,kCACP,OAAS,QAAAC,EAAM,WAAAC,MAAe,YAE9B,OACE,0BAAAC,MAEK,2BAEP,MAAMC,EAAoB,IAAIR,EAAa,CACzC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAEKS,EAAoB,IAAI,WAAW,CACvC,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IACxE,EAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IACxE,IAAM,EAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GACxE,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IACxE,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IACxE,IAAM,CACR,CAAC,EAEKC,EAAyB,IAAIV,EAAa,CAC9C,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMS,CACR,CAAC,EAED,SAAS,yBAA0B,IAAM,CACvC,MAAME,EAA0C,CAC9C,sBAAuB,IAAI,WAC3B,aAAc,EAChB,EAEA,SAAS,UAAW,IAAM,CACxB,SAAS,SAAU,IAAM,CACvB,GAAG,wDAAyD,IAAM,CAOhE,MAAMC,EALU,IAAIL,EAAuB,CACzC,GAAGI,CACL,CAAC,EAGoB,QAAQ,EAG7B,OAAOC,EAAK,IAAI,EAAE,cAAc,IAAI,UAAY,EAChD,OAAOA,EAAK,GAAG,EAAE,KAAK,GAAI,EAC1B,OAAOA,EAAK,GAAG,EAAE,KAAK,CAAI,EAC1B,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,EACzB,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,CAC3B,CAAC,EAED,GAAG,4DAA6D,IAAM,CAQpE,MAAMA,EANU,IAAIL,EAAuB,CACzC,GAAGI,EACH,sBAAuB,IAAI,WAAW,CAAC,EAAM,EAAM,CAAI,CAAC,CAC1D,CAAC,EAGoB,QAAQ,EAG7B,OAAOC,EAAK,IAAI,EAAE,cAAc,IAAI,WAAW,CAAC,EAAM,EAAM,CAAI,CAAC,CAAC,EAClE,OAAOA,EAAK,GAAG,EAAE,KAAK,GAAI,EAC1B,OAAOA,EAAK,GAAG,EAAE,KAAK,CAAI,EAC1B,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,EACzB,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,CAC3B,CAAC,EAED,GAAG,gEAAiE,IAAM,CAQxE,MAAMA,EANU,IAAIL,EAAuB,CACzC,GAAGI,EACH,aAAc,EAChB,CAAC,EAGoB,QAAQ,EAG7B,OAAOC,EAAK,IAAI,EAAE,cAAc,IAAI,UAAY,EAChD,OAAOA,EAAK,GAAG,EAAE,KAAK,GAAI,EAC1B,OAAOA,EAAK,GAAG,EAAE,KAAK,CAAI,EAC1B,OAAOA,EAAK,EAAE,EAAE,KAAK,GAAI,EACzB,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,CAC3B,CAAC,CACH,CAAC,EAED,SAAS,kBAAmB,IAAM,CAElC,CAAC,EAED,SAAS,QAAS,IAAM,CAExB,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,wDAAyD,IAAM,CAOhE,MAAMC,EALU,IAAIN,EAAuB,CACzC,GAAGI,CACL,CAAC,EAGwB,cAAcH,CAAiB,EAGxD,OAAOK,CAAQ,EAAE,cAAcZ,EAAqB,CAAE,KAAMK,CAAQ,CAAC,CAAC,CACxE,CAAC,EAED,GAAG,2EAA4E,IAAM,CAOnF,MAAMO,EALU,IAAIN,EAAuB,CACzC,GAAGI,CACL,CAAC,EAGwB,cAAcD,CAAsB,EAG7D,OAAOG,CAAQ,EAAE,cACfZ,EAAqB,CACnB,KAAMI,EAAK,CACT,EAAG,qEACH,EAAG,qEACH,EAAG,EACL,CAAC,CACH,CAAC,CACH,CACF,CAAC,EAED,GAAG,yFAA0F,IAAM,CAOjG,MAAMQ,EALU,IAAIN,EAAuB,CACzC,GAAGI,CACL,CAAC,EAGwB,cACvB,IAAIX,EAAa,CACf,WAAY,WAAW,KAAK,CAAC,GAAM,EAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,CACH,EAGA,OAAOG,EAAuBU,CAAQ,CAAC,EAAE,KAAK,EAAK,EAEnD,OAAOA,EAAS,KAAK,EAAE,eAAeT,CAA0B,CAClE,CAAC,EAED,GAAG,iFAAkF,IAAM,CAOzF,MAAMS,EALU,IAAIN,EAAuB,CACzC,GAAGI,CACL,CAAC,EAGwB,cACvB,IAAIX,EAAa,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMS,EAAkB,MAAM,EAAG,CAAC,CACpC,CAAC,CACH,EAGA,OAAON,EAAuBU,CAAQ,CAAC,EAAE,KAAK,EAAK,EAEnD,OAAOA,EAAS,KAAK,EAAE,eAAeX,CAAsB,CAC9D,CAAC,EAED,GAAG,+DAAgE,IAAM,CAOvE,MAAMW,EALU,IAAIN,EAAuB,CACzC,GAAGI,CACL,CAAC,EAGwB,cACvB,IAAIX,EAAa,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMS,EAAkB,MAAM,EAAG,EAAE,CACrC,CAAC,CACH,EAGA,OAAON,EAAuBU,CAAQ,CAAC,EAAE,KAAK,EAAK,CACrD,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n InvalidStatusWordError,\n isSuccessCommandResult,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport {\n SignTransactionCommand,\n type SignTransactionCommandArgs,\n} from \"./SignTransactionCommand\";\n\nconst LNX_RESPONSE_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n});\n\nconst LNX_RESPONSE_DATA = new Uint8Array([\n 0x26, 0x8d, 0x27, 0x44, 0x47, 0x11, 0xbb, 0xed, 0x44, 0x2b, 0x9b, 0xfc, 0x77,\n 0x05, 0xc0, 0x73, 0x16, 0xb7, 0xe4, 0x11, 0x50, 0xc5, 0x33, 0x12, 0x72, 0xe4,\n 0xd2, 0x09, 0xd4, 0x22, 0xf9, 0xfa, 0x39, 0x00, 0xcc, 0x3f, 0x0c, 0x19, 0x38,\n 0xc0, 0xf1, 0xff, 0xc6, 0x2d, 0xf0, 0x37, 0x22, 0x5a, 0x13, 0x36, 0xfb, 0xa1,\n 0xf9, 0xfe, 0xfa, 0x11, 0xf5, 0xaf, 0xc5, 0xbc, 0xb9, 0x7e, 0xb1, 0xb3, 0xd1,\n 0x90, 0x00,\n]);\n\nconst LNX_RESPONSE_DATA_GOOD = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA,\n});\n\ndescribe(\"SignTransactionCommand\", () => {\n const defaultArgs: SignTransactionCommandArgs = {\n serializedTransaction: new Uint8Array(),\n isFirstChunk: true,\n };\n\n describe(\"getApdu\", () => {\n describe(\"Legacy\", () => {\n it(\"should return the correct APDU when the data is empty\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.data).toStrictEqual(new Uint8Array());\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x04);\n expect(apdu.p1).toBe(0x00);\n expect(apdu.p2).toBe(0x00);\n });\n\n it(\"should return the correct APDU when the data is not empty\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n serializedTransaction: new Uint8Array([0x01, 0x02, 0x03]),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.data).toStrictEqual(new Uint8Array([0x01, 0x02, 0x03]));\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x04);\n expect(apdu.p1).toBe(0x00);\n expect(apdu.p2).toBe(0x00);\n });\n\n it(\"should return the correct APDU when it is not the first chunk\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n isFirstChunk: false,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.data).toStrictEqual(new Uint8Array());\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x04);\n expect(apdu.p1).toBe(0x80);\n expect(apdu.p2).toBe(0x00);\n });\n });\n\n describe.todo(\"Store and start\", () => {});\n\n describe.todo(\"Start\", () => {});\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return Nothing when the response data is empty\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(LNX_RESPONSE_GOOD);\n\n // THEN\n expect(response).toStrictEqual(CommandResultFactory({ data: Nothing }));\n });\n\n it(\"should return Just the response data when the response data is not empty\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(LNX_RESPONSE_DATA_GOOD);\n\n // THEN\n expect(response).toStrictEqual(\n CommandResultFactory({\n data: Just({\n r: \"0x8d27444711bbed442b9bfc7705c07316b7e41150c5331272e4d209d422f9fa39\",\n s: \"0x00cc3f0c1938c0f1ffc62df037225a1336fba1f9fefa11f5afc5bcb97eb1b3d1\",\n v: 38,\n }),\n }),\n );\n });\n\n it(\"should return a UnknownDeviceExchangeError when the response status code is not 0x9000\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x51, 0x55]),\n data: new Uint8Array(),\n }),\n );\n\n // THEN\n expect(isSuccessCommandResult(response)).toBe(false);\n // @ts-expect-error `error`is not typed because we did not narrow it\n expect(response.error).toBeInstanceOf(UnknownDeviceExchangeError);\n });\n\n it(\"should return an InvalidStatusWord error when the response data r is not valid\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA.slice(0, 1),\n }),\n );\n\n // THEN\n expect(isSuccessCommandResult(response)).toBe(false);\n // @ts-expect-error `error`is not typed because we did not narrow it\n expect(response.error).toBeInstanceOf(InvalidStatusWordError);\n });\n\n it(\"should return an error when the response data s is not valid\", () => {\n // GIVEN\n const command = new SignTransactionCommand({\n ...defaultArgs,\n });\n\n // WHEN\n const response = command.parseResponse(\n new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: LNX_RESPONSE_DATA.slice(0, 33),\n }),\n );\n\n // THEN\n expect(isSuccessCommandResult(response)).toBe(false);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["ApduResponse", "CommandResultFactory", "InvalidStatusWordError", "isSuccessCommandResult", "UnknownDeviceExchangeError", "Just", "Nothing", "SignTransactionCommand", "LNX_RESPONSE_GOOD", "LNX_RESPONSE_DATA", "LNX_RESPONSE_DATA_GOOD", "defaultArgs", "apdu", "response"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduBuilder as a,ApduParser as d,CommandResultFactory as r,CommandUtils as m,GlobalCommandErrorHandler as u,InvalidStatusWordError as t}from"@ledgerhq/device-management-kit";import{Just as p}from"purify-ts";const c=32,l=32;class C{getApdu(){const n={cla:224,ins:4,p1:0,p2:2};return new a(n).build()}parseResponse(n){const e=new d(n);if(!m.isSuccessResponse(n))return r({error:u.handle(n)});const s=e.extract8BitUInt();if(s===void 0)return r({error:new t("V is missing")});const o=e.encodeToHexaString(e.extractFieldByLength(c),!0);if(!o)return r({error:new t("R is missing")});const i=e.encodeToHexaString(e.extractFieldByLength(l),!0);return i?r({data:p({v:s,r:o,s:i})}):r({error:new t("S is missing")})}}export{C as StartTransactionCommand};
1
+ import{ApduBuilder as i,ApduParser as d,CommandResultFactory as n,InvalidStatusWordError as o}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as m}from"@ledgerhq/signer-utils";import{Just as p,Maybe as u}from"purify-ts";import{ETH_APP_ERRORS as c,EthAppCommandErrorFactory as l}from"./utils/ethAppErrors";const E=32,g=32;class S{errorHelper=new m(c,l);getApdu(){const e={cla:224,ins:4,p1:0,p2:2};return new i(e).build()}parseResponse(e){return u.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>{const r=new d(e),t=r.extract8BitUInt();if(t===void 0)return n({error:new o("V is missing")});const s=r.encodeToHexaString(r.extractFieldByLength(E),!0);if(!s)return n({error:new o("R is missing")});const a=r.encodeToHexaString(r.extractFieldByLength(g),!0);return a?n({data:p({v:t,r:s,s:a})}):n({error:new o("S is missing")})})}}export{S as StartTransactionCommand};
2
2
  //# sourceMappingURL=StartTransactionCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/StartTransactionCommand.ts"],
4
- "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-transaction\n// https://github.com/LedgerHQ/generic_parser/blob/master/specs.md#sign (to be removed when the top link has been updated)\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n GlobalCommandErrorHandler,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just } from \"purify-ts\";\n\nimport { type SignTransactionCommandResponse } from \"./SignTransactionCommand\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\n/**\n * StartTransactionCommand is a SignTransactionCommand that is used to sign the transaction.\n * It signature differs from the SignTransactionCommand because\n * the command does not need a Transaction to be provided.\n */\nexport class StartTransactionCommand\n implements Command<SignTransactionCommandResponse, void>\n{\n getApdu(): Apdu {\n const signEthTransactionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x04,\n p1: 0x00,\n p2: 0x02,\n };\n const builder = new ApduBuilder(signEthTransactionArgs);\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<SignTransactionCommandResponse> {\n const parser = new ApduParser(response);\n\n if (!CommandUtils.isSuccessResponse(response)) {\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(response),\n });\n }\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"V is missing\"),\n });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n v,\n r,\n s,\n }),\n });\n }\n}\n"],
5
- "mappings": "AAEA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,gBAAAC,EACA,6BAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,QAAAC,MAAY,YAIrB,MAAMC,EAAW,GACXC,EAAW,GAOV,MAAMC,CAEb,CACE,SAAgB,CACd,MAAMC,EAA0C,CAC9C,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EAEA,OADgB,IAAIV,EAAYU,CAAsB,EACvC,MAAM,CACvB,CAEA,cACEC,EAC+C,CAC/C,MAAMC,EAAS,IAAIX,EAAWU,CAAQ,EAEtC,GAAI,CAACR,EAAa,kBAAkBQ,CAAQ,EAC1C,OAAOT,EAAqB,CAC1B,MAAOE,EAA0B,OAAOO,CAAQ,CAClD,CAAC,EAIH,MAAME,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,OAAOX,EAAqB,CAC1B,MAAO,IAAIG,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAMS,EAAIF,EAAO,mBACfA,EAAO,qBAAqBL,CAAQ,EACpC,EACF,EACA,GAAI,CAACO,EACH,OAAOZ,EAAqB,CAC1B,MAAO,IAAIG,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAMU,EAAIH,EAAO,mBACfA,EAAO,qBAAqBJ,CAAQ,EACpC,EACF,EACA,OAAKO,EAMEb,EAAqB,CAC1B,KAAMI,EAAK,CACT,EAAAO,EACA,EAAAC,EACA,EAAAC,CACF,CAAC,CACH,CAAC,EAXQb,EAAqB,CAC1B,MAAO,IAAIG,EAAuB,cAAc,CAClD,CAAC,CAUL,CACF",
6
- "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "CommandUtils", "GlobalCommandErrorHandler", "InvalidStatusWordError", "Just", "R_LENGTH", "S_LENGTH", "StartTransactionCommand", "signEthTransactionArgs", "response", "parser", "v", "r", "s"]
4
+ "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-transaction\n// https://github.com/LedgerHQ/generic_parser/blob/master/specs.md#sign (to be removed when the top link has been updated)\nimport {\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 { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Just, Maybe } from \"purify-ts\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\nimport { type SignTransactionCommandResponse } from \"./SignTransactionCommand\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\n/**\n * StartTransactionCommand is a SignTransactionCommand that is used to sign the transaction.\n * It signature differs from the SignTransactionCommand because\n * the command does not need a Transaction to be provided.\n */\nexport class StartTransactionCommand\n implements Command<SignTransactionCommandResponse, void, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<\n SignTransactionCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n getApdu(): Apdu {\n const signEthTransactionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x04,\n p1: 0x00,\n p2: 0x02,\n };\n const builder = new ApduBuilder(signEthTransactionArgs);\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<SignTransactionCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"V is missing\"),\n });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n v,\n r,\n s,\n }),\n });\n });\n }\n}\n"],
5
+ "mappings": "AAEA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,QAAAC,EAAM,SAAAC,MAAa,YAE5B,OACE,kBAAAC,EACA,6BAAAC,MAEK,uBAGP,MAAMC,EAAW,GACXC,EAAW,GAOV,MAAMC,CAEb,CACmB,YAAc,IAAIP,EAGjCG,EAAgBC,CAAyB,EAE3C,SAAgB,CACd,MAAMI,EAA0C,CAC9C,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EAEA,OADgB,IAAIZ,EAAYY,CAAsB,EACvC,MAAM,CACvB,CAEA,cACEC,EAC8D,CAC9D,OAAOP,EAAM,aACX,KAAK,YAAY,SAASO,CAAQ,CACpC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAIb,EAAWY,CAAQ,EAGhCE,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,OAAOb,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAMa,EAAIF,EAAO,mBACfA,EAAO,qBAAqBL,CAAQ,EACpC,EACF,EACA,GAAI,CAACO,EACH,OAAOd,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAMc,EAAIH,EAAO,mBACfA,EAAO,qBAAqBJ,CAAQ,EACpC,EACF,EACA,OAAKO,EAMEf,EAAqB,CAC1B,KAAMG,EAAK,CACT,EAAAU,EACA,EAAAC,EACA,EAAAC,CACF,CAAC,CACH,CAAC,EAXQf,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,CAUL,CAAC,CACH,CACF",
6
+ "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "InvalidStatusWordError", "CommandErrorHelper", "Just", "Maybe", "ETH_APP_ERRORS", "EthAppCommandErrorFactory", "R_LENGTH", "S_LENGTH", "StartTransactionCommand", "signEthTransactionArgs", "response", "parser", "v", "r", "s"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{InvalidStatusWordError as s,isSuccessCommandResult as n,UnknownDeviceExchangeError as a}from"@ledgerhq/device-management-kit";import{StartTransactionCommand as t}from"./StartTransactionCommand";describe("StartTransactionCommand",()=>{describe("getApdu",()=>{it("should return the raw APDU",()=>{const o=new t().getApdu();expect(o.getRawApdu()).toStrictEqual(Uint8Array.from([224,4,0,2,0]))})}),describe("parseResponse",()=>{it("should return an error if the response status code is invalid",()=>{const e={data:Uint8Array.from([]),statusCode:Uint8Array.from([109,0])},r=new t().parseResponse(e);n(r)?fail("Expected an error"):expect(r.error).toBeInstanceOf(a)}),it("should return the correct response",()=>{const e={data:Uint8Array.from([1,...Array(32).fill(2),...Array(32).fill(3)]),statusCode:Uint8Array.from([144,0])},r=new t().parseResponse(e);n(r)?expect(r.data.extract()).toEqual({r:"0x0202020202020202020202020202020202020202020202020202020202020202",s:"0x0303030303030303030303030303030303030303030303030303030303030303",v:1}):fail("Expected a success")}),it("should return an error if v is not valid",()=>{const e={data:Uint8Array.from([]),statusCode:Uint8Array.from([144,0])},r=new t().parseResponse(e);n(r)?fail("Expected an error"):(expect(r.error).toBeInstanceOf(s),expect(r.error.originalError).toEqual(new Error("V is missing")))}),it("should return an error if r is not valid",()=>{const e={data:Uint8Array.from([1,...Array(20).fill(2)]),statusCode:Uint8Array.from([144,0])},r=new t().parseResponse(e);n(r)?fail("Expected an error"):(expect(r.error).toBeInstanceOf(s),expect(r.error.originalError).toEqual(new Error("R is missing")))}),it("should return an error if s is not valid",()=>{const e={data:Uint8Array.from([1,...Array(32).fill(2),...Array(20).fill(2)]),statusCode:Uint8Array.from([144,0])},r=new t().parseResponse(e);n(r)?fail("Expected an error"):(expect(r.error).toBeInstanceOf(s),expect(r.error.originalError).toEqual(new Error("S is missing")))})})});
1
+ import{InvalidStatusWordError as n,isSuccessCommandResult as o}from"@ledgerhq/device-management-kit";import{EthAppCommandError as a}from"./utils/ethAppErrors";import{StartTransactionCommand as s}from"./StartTransactionCommand";describe("StartTransactionCommand",()=>{describe("getApdu",()=>{it("should return the raw APDU",()=>{const t=new s().getApdu();expect(t.getRawApdu()).toStrictEqual(Uint8Array.from([224,4,0,2,0]))})}),describe("parseResponse",()=>{it("should return an error if the response status code is invalid",()=>{const e={data:Uint8Array.from([]),statusCode:Uint8Array.from([109,0])},r=new s().parseResponse(e);o(r)?assert.fail("Expected an error"):expect(r.error).toBeInstanceOf(a)}),it("should return the correct response",()=>{const e={data:Uint8Array.from([1,...Array(32).fill(2),...Array(32).fill(3)]),statusCode:Uint8Array.from([144,0])},r=new s().parseResponse(e);o(r)?expect(r.data.extract()).toEqual({r:"0x0202020202020202020202020202020202020202020202020202020202020202",s:"0x0303030303030303030303030303030303030303030303030303030303030303",v:1}):assert.fail("Expected a success")}),it("should return an error if v is not valid",()=>{const e={data:Uint8Array.from([]),statusCode:Uint8Array.from([144,0])},r=new s().parseResponse(e);o(r)?assert.fail("Expected an error"):(expect(r.error).toBeInstanceOf(n),expect(r.error.originalError).toEqual(new Error("V is missing")))}),it("should return an error if r is not valid",()=>{const e={data:Uint8Array.from([1,...Array(20).fill(2)]),statusCode:Uint8Array.from([144,0])},r=new s().parseResponse(e);o(r)?assert.fail("Expected an error"):(expect(r.error).toBeInstanceOf(n),expect(r.error.originalError).toEqual(new Error("R is missing")))}),it("should return an error if s is not valid",()=>{const e={data:Uint8Array.from([1,...Array(32).fill(2),...Array(20).fill(2)]),statusCode:Uint8Array.from([144,0])},r=new s().parseResponse(e);o(r)?assert.fail("Expected an error"):(expect(r.error).toBeInstanceOf(n),expect(r.error.originalError).toEqual(new Error("S is missing")))})})});
2
2
  //# sourceMappingURL=StartTransactionCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/StartTransactionCommand.test.ts"],
4
- "sourcesContent": ["import {\n InvalidStatusWordError,\n isSuccessCommandResult,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { StartTransactionCommand } from \"./StartTransactionCommand\";\n\ndescribe(\"StartTransactionCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU\", () => {\n // WHEN\n const command = new StartTransactionCommand();\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x04, 0x00, 0x02, 0x00]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is invalid\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([]),\n statusCode: Uint8Array.from([0x6d, 0x00]), // Invalid status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(UnknownDeviceExchangeError);\n }\n });\n\n it(\"should return the correct response\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([\n 0x01,\n ...Array<number>(32).fill(0x02),\n ...Array<number>(32).fill(0x03),\n ]), // Some data\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data.extract()).toEqual({\n r: \"0x0202020202020202020202020202020202020202020202020202020202020202\",\n s: \"0x0303030303030303030303030303030303030303030303030303030303030303\",\n v: 1,\n });\n } else {\n fail(\"Expected a success\");\n }\n });\n\n it(\"should return an error if v is not valid\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([]), // No data\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect(result.error.originalError).toEqual(new Error(\"V is missing\"));\n }\n });\n\n it(\"should return an error if r is not valid\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([0x01, ...Array<number>(20).fill(0x02)]), // Invalid r\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect(result.error.originalError).toEqual(new Error(\"R is missing\"));\n }\n });\n\n it(\"should return an error if s is not valid\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([\n 0x01,\n ...Array<number>(32).fill(0x02),\n ...Array<number>(20).fill(0x02),\n ]), // Invalid s\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect(result.error.originalError).toEqual(new Error(\"S is missing\"));\n }\n });\n });\n});\n"],
5
- "mappings": "AAAA,OACE,0BAAAA,EACA,0BAAAC,EACA,8BAAAC,MACK,kCAEP,OAAS,2BAAAC,MAA+B,4BAExC,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,GAAG,6BAA8B,IAAM,CAGrC,MAAMC,EADU,IAAID,EAAwB,EACvB,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAChD,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,gEAAiE,IAAM,CAExE,MAAMC,EAAW,CACf,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,KAAK,mBAAmB,EAExB,OAAOA,EAAO,KAAK,EAAE,eAAeJ,CAA0B,CAElE,CAAC,EAED,GAAG,qCAAsC,IAAM,CAE7C,MAAMG,EAAW,CACf,KAAM,WAAW,KAAK,CACpB,EACA,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,EAC9B,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,CAChC,CAAC,EACD,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,OAAOA,EAAO,KAAK,QAAQ,CAAC,EAAE,QAAQ,CACpC,EAAG,qEACH,EAAG,qEACH,EAAG,CACL,CAAC,EAED,KAAK,oBAAoB,CAE7B,CAAC,EAED,GAAG,2CAA4C,IAAM,CAEnD,MAAMD,EAAW,CACf,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,KAAK,mBAAmB,GAExB,OAAOA,EAAO,KAAK,EAAE,eAAeN,CAAsB,EAC1D,OAAOM,EAAO,MAAM,aAAa,EAAE,QAAQ,IAAI,MAAM,cAAc,CAAC,EAExE,CAAC,EAED,GAAG,2CAA4C,IAAM,CAEnD,MAAMD,EAAW,CACf,KAAM,WAAW,KAAK,CAAC,EAAM,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,CAAC,CAAC,EAC7D,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,KAAK,mBAAmB,GAExB,OAAOA,EAAO,KAAK,EAAE,eAAeN,CAAsB,EAC1D,OAAOM,EAAO,MAAM,aAAa,EAAE,QAAQ,IAAI,MAAM,cAAc,CAAC,EAExE,CAAC,EAED,GAAG,2CAA4C,IAAM,CAEnD,MAAMD,EAAW,CACf,KAAM,WAAW,KAAK,CACpB,EACA,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,EAC9B,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,CAChC,CAAC,EACD,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,KAAK,mBAAmB,GAExB,OAAOA,EAAO,KAAK,EAAE,eAAeN,CAAsB,EAC1D,OAAOM,EAAO,MAAM,aAAa,EAAE,QAAQ,IAAI,MAAM,cAAc,CAAC,EAExE,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["InvalidStatusWordError", "isSuccessCommandResult", "UnknownDeviceExchangeError", "StartTransactionCommand", "apdu", "response", "result"]
4
+ "sourcesContent": ["import {\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { EthAppCommandError } from \"./utils/ethAppErrors\";\nimport { StartTransactionCommand } from \"./StartTransactionCommand\";\n\ndescribe(\"StartTransactionCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU\", () => {\n // WHEN\n const command = new StartTransactionCommand();\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x04, 0x00, 0x02, 0x00]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is invalid\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([]),\n statusCode: Uint8Array.from([0x6d, 0x00]), // Invalid status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(EthAppCommandError);\n }\n });\n\n it(\"should return the correct response\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([\n 0x01,\n ...Array<number>(32).fill(0x02),\n ...Array<number>(32).fill(0x03),\n ]), // Some data\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data.extract()).toEqual({\n r: \"0x0202020202020202020202020202020202020202020202020202020202020202\",\n s: \"0x0303030303030303030303030303030303030303030303030303030303030303\",\n v: 1,\n });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return an error if v is not valid\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([]), // No data\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect(result.error.originalError).toEqual(new Error(\"V is missing\"));\n }\n });\n\n it(\"should return an error if r is not valid\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([0x01, ...Array<number>(20).fill(0x02)]), // Invalid r\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect(result.error.originalError).toEqual(new Error(\"R is missing\"));\n }\n });\n\n it(\"should return an error if s is not valid\", () => {\n // GIVEN\n const response = {\n data: Uint8Array.from([\n 0x01,\n ...Array<number>(32).fill(0x02),\n ...Array<number>(20).fill(0x02),\n ]), // Invalid s\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StartTransactionCommand();\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect(result.error.originalError).toEqual(new Error(\"S is missing\"));\n }\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OACE,0BAAAA,EACA,0BAAAC,MACK,kCAEP,OAAS,sBAAAC,MAA0B,uBACnC,OAAS,2BAAAC,MAA+B,4BAExC,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,GAAG,6BAA8B,IAAM,CAGrC,MAAMC,EADU,IAAID,EAAwB,EACvB,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAChD,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,gEAAiE,IAAM,CAExE,MAAMC,EAAW,CACf,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,OAAO,KAAK,mBAAmB,EAE/B,OAAOA,EAAO,KAAK,EAAE,eAAeJ,CAAkB,CAE1D,CAAC,EAED,GAAG,qCAAsC,IAAM,CAE7C,MAAMG,EAAW,CACf,KAAM,WAAW,KAAK,CACpB,EACA,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,EAC9B,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,CAChC,CAAC,EACD,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,OAAOA,EAAO,KAAK,QAAQ,CAAC,EAAE,QAAQ,CACpC,EAAG,qEACH,EAAG,qEACH,EAAG,CACL,CAAC,EAED,OAAO,KAAK,oBAAoB,CAEpC,CAAC,EAED,GAAG,2CAA4C,IAAM,CAEnD,MAAMD,EAAW,CACf,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,OAAO,KAAK,mBAAmB,GAE/B,OAAOA,EAAO,KAAK,EAAE,eAAeN,CAAsB,EAC1D,OAAOM,EAAO,MAAM,aAAa,EAAE,QAAQ,IAAI,MAAM,cAAc,CAAC,EAExE,CAAC,EAED,GAAG,2CAA4C,IAAM,CAEnD,MAAMD,EAAW,CACf,KAAM,WAAW,KAAK,CAAC,EAAM,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,CAAC,CAAC,EAC7D,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,OAAO,KAAK,mBAAmB,GAE/B,OAAOA,EAAO,KAAK,EAAE,eAAeN,CAAsB,EAC1D,OAAOM,EAAO,MAAM,aAAa,EAAE,QAAQ,IAAI,MAAM,cAAc,CAAC,EAExE,CAAC,EAED,GAAG,2CAA4C,IAAM,CAEnD,MAAMD,EAAW,CACf,KAAM,WAAW,KAAK,CACpB,EACA,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,EAC9B,GAAG,MAAc,EAAE,EAAE,KAAK,CAAI,CAChC,CAAC,EACD,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAIMC,EADU,IAAIH,EAAwB,EACrB,cAAcE,CAAQ,EAGzCJ,EAAuBK,CAAM,EAC/B,OAAO,KAAK,mBAAmB,GAE/B,OAAOA,EAAO,KAAK,EAAE,eAAeN,CAAsB,EAC1D,OAAOM,EAAO,MAAM,aAAa,EAAE,QAAQ,IAAI,MAAM,cAAc,CAAC,EAExE,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["InvalidStatusWordError", "isSuccessCommandResult", "EthAppCommandError", "StartTransactionCommand", "apdu", "response", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ApduBuilder as o,CommandResultFactory as e,CommandUtils as s,GlobalCommandErrorHandler as t}from"@ledgerhq/device-management-kit";class u{constructor(r){this.args=r}getApdu(){const{serializedTransaction:r,isFirstChunk:n}=this.args,a={cla:224,ins:4,p1:n?0:128,p2:1};return new o(a).addBufferToData(r).build()}parseResponse(r){return s.isSuccessResponse(r)?e({data:void 0}):e({error:t.handle(r)})}}export{u as StoreTransactionCommand};
1
+ import{ApduBuilder as t,CommandResultFactory as a}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as n}from"@ledgerhq/signer-utils";import{Maybe as s}from"purify-ts";import{ETH_APP_ERRORS as d,EthAppCommandErrorFactory as i}from"./utils/ethAppErrors";class c{constructor(r){this.args=r}errorHelper=new n(d,i);getApdu(){const{serializedTransaction:r,isFirstChunk:o}=this.args,e={cla:224,ins:4,p1:o?0:128,p2:1};return new t(e).addBufferToData(r).build()}parseResponse(r){return s.fromNullable(this.errorHelper.getError(r)).orDefault(a({data:void 0}))}}export{c as StoreTransactionCommand};
2
2
  //# sourceMappingURL=StoreTransactionCommand.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/StoreTransactionCommand.ts"],
4
- "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-transaction\n// https://github.com/LedgerHQ/generic_parser/blob/master/specs.md#sign (to be removed when the top link has been updated)\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n CommandUtils,\n GlobalCommandErrorHandler,\n} from \"@ledgerhq/device-management-kit\";\n\nexport type StoreTransactionCommandArgs = {\n /**\n * The transaction to sign in max 150 bytes chunks\n */\n readonly serializedTransaction: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\n/**\n * StoreTransactionCommand is a SignTransactionCommand that is used to initiate\n * the sign transaction flow. It signature differs from the SignTransactionCommand\n * because the command does not return any data.\n */\nexport class StoreTransactionCommand\n implements Command<void, StoreTransactionCommandArgs>\n{\n constructor(private readonly args: StoreTransactionCommandArgs) {}\n\n getApdu(): Apdu {\n const { serializedTransaction, isFirstChunk } = this.args;\n\n const signEthTransactionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x04,\n p1: isFirstChunk ? 0x00 : 0x80,\n p2: 0x01,\n };\n const builder = new ApduBuilder(signEthTransactionArgs);\n return builder.addBufferToData(serializedTransaction).build();\n }\n\n parseResponse(response: ApduResponse): CommandResult<void> {\n if (!CommandUtils.isSuccessResponse(response)) {\n return CommandResultFactory({\n error: GlobalCommandErrorHandler.handle(response),\n });\n }\n\n return CommandResultFactory({ data: undefined });\n }\n}\n"],
5
- "mappings": "AAEA,OAEE,eAAAA,EAKA,wBAAAC,EACA,gBAAAC,EACA,6BAAAC,MACK,kCAkBA,MAAMC,CAEb,CACE,YAA6BC,EAAmC,CAAnC,UAAAA,CAAoC,CAEjE,SAAgB,CACd,KAAM,CAAE,sBAAAC,EAAuB,aAAAC,CAAa,EAAI,KAAK,KAE/CC,EAA0C,CAC9C,IAAK,IACL,IAAK,EACL,GAAID,EAAe,EAAO,IAC1B,GAAI,CACN,EAEA,OADgB,IAAIP,EAAYQ,CAAsB,EACvC,gBAAgBF,CAAqB,EAAE,MAAM,CAC9D,CAEA,cAAcG,EAA6C,CACzD,OAAKP,EAAa,kBAAkBO,CAAQ,EAMrCR,EAAqB,CAAE,KAAM,MAAU,CAAC,EALtCA,EAAqB,CAC1B,MAAOE,EAA0B,OAAOM,CAAQ,CAClD,CAAC,CAIL,CACF",
6
- "names": ["ApduBuilder", "CommandResultFactory", "CommandUtils", "GlobalCommandErrorHandler", "StoreTransactionCommand", "args", "serializedTransaction", "isFirstChunk", "signEthTransactionArgs", "response"]
4
+ "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-transaction\n// https://github.com/LedgerHQ/generic_parser/blob/master/specs.md#sign (to be removed when the top link has been updated)\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nexport type StoreTransactionCommandArgs = {\n /**\n * The transaction to sign in max 150 bytes chunks\n */\n readonly serializedTransaction: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\n/**\n * StoreTransactionCommand is a SignTransactionCommand that is used to initiate\n * the sign transaction flow. It signature differs from the SignTransactionCommand\n * because the command does not return any data.\n */\nexport class StoreTransactionCommand\n implements Command<void, StoreTransactionCommandArgs, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n\n constructor(private readonly args: StoreTransactionCommandArgs) {}\n\n getApdu(): Apdu {\n const { serializedTransaction, isFirstChunk } = this.args;\n\n const signEthTransactionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x04,\n p1: isFirstChunk ? 0x00 : 0x80,\n p2: 0x01,\n };\n const builder = new ApduBuilder(signEthTransactionArgs);\n return builder.addBufferToData(serializedTransaction).build();\n }\n\n parseResponse(response: ApduResponse): CommandResult<void, EthErrorCodes> {\n return Maybe.fromNullable(this.errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: undefined }),\n );\n }\n}\n"],
5
+ "mappings": "AAEA,OAEE,eAAAA,EAKA,wBAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,uBAkBA,MAAMC,CAEb,CAME,YAA6BC,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAIL,EACjCE,EACAC,CACF,EAIA,SAAgB,CACd,KAAM,CAAE,sBAAAG,EAAuB,aAAAC,CAAa,EAAI,KAAK,KAE/CC,EAA0C,CAC9C,IAAK,IACL,IAAK,EACL,GAAID,EAAe,EAAO,IAC1B,GAAI,CACN,EAEA,OADgB,IAAIT,EAAYU,CAAsB,EACvC,gBAAgBF,CAAqB,EAAE,MAAM,CAC9D,CAEA,cAAcG,EAA4D,CACxE,OAAOR,EAAM,aAAa,KAAK,YAAY,SAASQ,CAAQ,CAAC,EAAE,UAC7DV,EAAqB,CAAE,KAAM,MAAU,CAAC,CAC1C,CACF,CACF",
6
+ "names": ["ApduBuilder", "CommandResultFactory", "CommandErrorHelper", "Maybe", "ETH_APP_ERRORS", "EthAppCommandErrorFactory", "StoreTransactionCommand", "args", "serializedTransaction", "isFirstChunk", "signEthTransactionArgs", "response"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{isSuccessCommandResult as s,UnknownDeviceExchangeError as o}from"@ledgerhq/device-management-kit";import{StoreTransactionCommand as t}from"./StoreTransactionCommand";describe("StoreTransactionCommand",()=>{describe("getApdu",()=>{it("should return the raw APDU for the first chunk",()=>{const r={serializedTransaction:Uint8Array.from([1,2,3]),isFirstChunk:!0},e=new t(r).getApdu();expect(e.getRawApdu()).toStrictEqual(Uint8Array.from([224,4,0,1,3,1,2,3]))}),it("should return the raw APDU for the subsequent chunk",()=>{const r={serializedTransaction:Uint8Array.from([4,5,6]),isFirstChunk:!1},e=new t(r).getApdu();expect(e.getRawApdu()).toStrictEqual(Uint8Array.from([224,4,128,1,3,4,5,6]))})}),describe("parseResponse",()=>{it("should return an error if the response status code is invalid",()=>{const r={data:Uint8Array.from([]),statusCode:Uint8Array.from([109,0])},e=new t({serializedTransaction:new Uint8Array(0),isFirstChunk:!0}).parseResponse(r);if(s(e))throw new Error("Expected error");expect(e.error).toBeInstanceOf(o)}),it("should return the correct response",()=>{const r={data:Uint8Array.from([]),statusCode:Uint8Array.from([144,0])},e=new t({serializedTransaction:new Uint8Array(0),isFirstChunk:!0}).parseResponse(r);if(s(e))expect(e.data).toBeUndefined();else throw new Error("Expected success")})})});
1
+ import{isSuccessCommandResult as n}from"@ledgerhq/device-management-kit";import{EthAppCommandError as o}from"./utils/ethAppErrors";import{StoreTransactionCommand as t}from"./StoreTransactionCommand";describe("StoreTransactionCommand",()=>{describe("getApdu",()=>{it("should return the raw APDU for the first chunk",()=>{const e={serializedTransaction:Uint8Array.from([1,2,3]),isFirstChunk:!0},r=new t(e).getApdu();expect(r.getRawApdu()).toStrictEqual(Uint8Array.from([224,4,0,1,3,1,2,3]))}),it("should return the raw APDU for the subsequent chunk",()=>{const e={serializedTransaction:Uint8Array.from([4,5,6]),isFirstChunk:!1},r=new t(e).getApdu();expect(r.getRawApdu()).toStrictEqual(Uint8Array.from([224,4,128,1,3,4,5,6]))})}),describe("parseResponse",()=>{it("should return an error if the response status code is invalid",()=>{const e={data:Uint8Array.from([]),statusCode:Uint8Array.from([109,0])},r=new t({serializedTransaction:new Uint8Array(0),isFirstChunk:!0}).parseResponse(e);if(n(r))throw new Error("Expected error");expect(r.error).toBeInstanceOf(o)}),it("should return the correct response",()=>{const e={data:Uint8Array.from([]),statusCode:Uint8Array.from([144,0])},r=new t({serializedTransaction:new Uint8Array(0),isFirstChunk:!0}).parseResponse(e);if(n(r))expect(r.data).toBeUndefined();else throw new Error("Expected success")})})});
2
2
  //# sourceMappingURL=StoreTransactionCommand.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/command/StoreTransactionCommand.test.ts"],
4
- "sourcesContent": ["import {\n type ApduResponse,\n isSuccessCommandResult,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n StoreTransactionCommand,\n type StoreTransactionCommandArgs,\n} from \"./StoreTransactionCommand\";\n\ndescribe(\"StoreTransactionCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU for the first chunk\", () => {\n // GIVEN\n const args: StoreTransactionCommandArgs = {\n serializedTransaction: Uint8Array.from([0x01, 0x02, 0x03]),\n isFirstChunk: true,\n };\n\n // WHEN\n const command = new StoreTransactionCommand(args);\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x04, 0x00, 0x01, 0x03, 0x01, 0x02, 0x03]),\n );\n });\n\n it(\"should return the raw APDU for the subsequent chunk\", () => {\n // GIVEN\n const args: StoreTransactionCommandArgs = {\n serializedTransaction: Uint8Array.from([0x04, 0x05, 0x06]),\n isFirstChunk: false,\n };\n\n // WHEN\n const command = new StoreTransactionCommand(args);\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x04, 0x80, 0x01, 0x03, 0x04, 0x05, 0x06]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is invalid\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Uint8Array.from([]),\n statusCode: Uint8Array.from([0x6d, 0x00]), // Invalid status code\n };\n\n // WHEN\n const command = new StoreTransactionCommand({\n serializedTransaction: new Uint8Array(0),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n throw new Error(\"Expected error\");\n } else {\n expect(result.error).toBeInstanceOf(UnknownDeviceExchangeError);\n }\n });\n\n it(\"should return the correct response\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Uint8Array.from([]),\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StoreTransactionCommand({\n serializedTransaction: new Uint8Array(0),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toBeUndefined();\n } else {\n throw new Error(\"Expected success\");\n }\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAEE,0BAAAA,EACA,8BAAAC,MACK,kCAEP,OACE,2BAAAC,MAEK,4BAEP,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,GAAG,iDAAkD,IAAM,CAEzD,MAAMC,EAAoC,CACxC,sBAAuB,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EACzD,aAAc,EAChB,EAIMC,EADU,IAAIF,EAAwBC,CAAI,EAC3B,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAClE,CACF,CAAC,EAED,GAAG,sDAAuD,IAAM,CAE9D,MAAMD,EAAoC,CACxC,sBAAuB,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EACzD,aAAc,EAChB,EAIMC,EADU,IAAIF,EAAwBC,CAAI,EAC3B,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,EAAM,IAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAClE,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,gEAAiE,IAAM,CAExE,MAAMC,EAAyB,CAC7B,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAOMC,EAJU,IAAIJ,EAAwB,CAC1C,sBAAuB,IAAI,WAAW,CAAC,EACvC,aAAc,EAChB,CAAC,EACsB,cAAcG,CAAQ,EAG7C,GAAIL,EAAuBM,CAAM,EAC/B,MAAM,IAAI,MAAM,gBAAgB,EAEhC,OAAOA,EAAO,KAAK,EAAE,eAAeL,CAA0B,CAElE,CAAC,EAED,GAAG,qCAAsC,IAAM,CAE7C,MAAMI,EAAyB,CAC7B,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAOMC,EAJU,IAAIJ,EAAwB,CAC1C,sBAAuB,IAAI,WAAW,CAAC,EACvC,aAAc,EAChB,CAAC,EACsB,cAAcG,CAAQ,EAG7C,GAAIL,EAAuBM,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,MAElC,OAAM,IAAI,MAAM,kBAAkB,CAEtC,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["isSuccessCommandResult", "UnknownDeviceExchangeError", "StoreTransactionCommand", "args", "apdu", "response", "result"]
4
+ "sourcesContent": ["import {\n type ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { EthAppCommandError } from \"./utils/ethAppErrors\";\nimport {\n StoreTransactionCommand,\n type StoreTransactionCommandArgs,\n} from \"./StoreTransactionCommand\";\n\ndescribe(\"StoreTransactionCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU for the first chunk\", () => {\n // GIVEN\n const args: StoreTransactionCommandArgs = {\n serializedTransaction: Uint8Array.from([0x01, 0x02, 0x03]),\n isFirstChunk: true,\n };\n\n // WHEN\n const command = new StoreTransactionCommand(args);\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x04, 0x00, 0x01, 0x03, 0x01, 0x02, 0x03]),\n );\n });\n\n it(\"should return the raw APDU for the subsequent chunk\", () => {\n // GIVEN\n const args: StoreTransactionCommandArgs = {\n serializedTransaction: Uint8Array.from([0x04, 0x05, 0x06]),\n isFirstChunk: false,\n };\n\n // WHEN\n const command = new StoreTransactionCommand(args);\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x04, 0x80, 0x01, 0x03, 0x04, 0x05, 0x06]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is invalid\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Uint8Array.from([]),\n statusCode: Uint8Array.from([0x6d, 0x00]), // Invalid status code\n };\n\n // WHEN\n const command = new StoreTransactionCommand({\n serializedTransaction: new Uint8Array(0),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n throw new Error(\"Expected error\");\n } else {\n expect(result.error).toBeInstanceOf(EthAppCommandError);\n }\n });\n\n it(\"should return the correct response\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Uint8Array.from([]),\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new StoreTransactionCommand({\n serializedTransaction: new Uint8Array(0),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toBeUndefined();\n } else {\n throw new Error(\"Expected success\");\n }\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAEE,0BAAAA,MACK,kCAEP,OAAS,sBAAAC,MAA0B,uBACnC,OACE,2BAAAC,MAEK,4BAEP,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,GAAG,iDAAkD,IAAM,CAEzD,MAAMC,EAAoC,CACxC,sBAAuB,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EACzD,aAAc,EAChB,EAIMC,EADU,IAAIF,EAAwBC,CAAI,EAC3B,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAClE,CACF,CAAC,EAED,GAAG,sDAAuD,IAAM,CAE9D,MAAMD,EAAoC,CACxC,sBAAuB,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EACzD,aAAc,EAChB,EAIMC,EADU,IAAIF,EAAwBC,CAAI,EAC3B,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,EAAM,IAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAClE,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,gEAAiE,IAAM,CAExE,MAAMC,EAAyB,CAC7B,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAOMC,EAJU,IAAIJ,EAAwB,CAC1C,sBAAuB,IAAI,WAAW,CAAC,EACvC,aAAc,EAChB,CAAC,EACsB,cAAcG,CAAQ,EAG7C,GAAIL,EAAuBM,CAAM,EAC/B,MAAM,IAAI,MAAM,gBAAgB,EAEhC,OAAOA,EAAO,KAAK,EAAE,eAAeL,CAAkB,CAE1D,CAAC,EAED,GAAG,qCAAsC,IAAM,CAE7C,MAAMI,EAAyB,CAC7B,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAOMC,EAJU,IAAIJ,EAAwB,CAC1C,sBAAuB,IAAI,WAAW,CAAC,EACvC,aAAc,EAChB,CAAC,EACsB,cAAcG,CAAQ,EAG7C,GAAIL,EAAuBM,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,MAElC,OAAM,IAAI,MAAM,kBAAkB,CAEtC,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["isSuccessCommandResult", "EthAppCommandError", "StoreTransactionCommand", "args", "apdu", "response", "result"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ import{ApduBuilder as t,ApduParser as n,CommandResultFactory as o}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as p}from"@ledgerhq/signer-utils";import{Maybe as d}from"purify-ts";import{ETH_APP_ERRORS as a,EthAppCommandErrorFactory as m}from"../../app-binder/command/utils/ethAppErrors";class c{errorHelper=new p(a,m);constructor(){}getApdu(){const e={cla:224,ins:50,p1:1,p2:0};return new t(e).build()}parseResponse(e){return d.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>{const r=new n(e).extract8BitUInt();return r===void 0?o({data:{enabled:!1}}):o({data:{enabled:r!==0}})})}}export{c as Web3CheckOptInCommand};
2
+ //# sourceMappingURL=Web3CheckOptInCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/Web3CheckOptInCommand.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} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"@internal/app-binder/command/utils/ethAppErrors\";\n\nexport type Web3CheckOptInCommandResponse = {\n enabled: boolean;\n};\n\n/**\n * The command that trigger web3check opt-in on device.\n */\nexport class Web3CheckOptInCommand\n implements Command<Web3CheckOptInCommandResponse, void, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<\n Web3CheckOptInCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n constructor() {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x32,\n p1: 0x01,\n p2: 0x00,\n };\n\n return new ApduBuilder(apduBuilderArgs).build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<Web3CheckOptInCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const enabled = new ApduParser(response).extract8BitUInt();\n if (enabled === undefined) {\n return CommandResultFactory({ data: { enabled: false } });\n }\n return CommandResultFactory({ data: { enabled: enabled !== 0 } });\n });\n }\n}\n"],
5
+ "mappings": "AAAA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,kDASA,MAAMC,CAEb,CACmB,YAAc,IAAIJ,EAGjCE,EAAgBC,CAAyB,EAE3C,aAAc,CAAC,CAEf,SAAgB,CACd,MAAME,EAAmC,CACvC,IAAK,IACL,IAAK,GACL,GAAI,EACJ,GAAI,CACN,EAEA,OAAO,IAAIR,EAAYQ,CAAe,EAAE,MAAM,CAChD,CAEA,cACEC,EAC6D,CAC7D,OAAOL,EAAM,aACX,KAAK,YAAY,SAASK,CAAQ,CACpC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAU,IAAIT,EAAWQ,CAAQ,EAAE,gBAAgB,EACzD,OAAIC,IAAY,OACPR,EAAqB,CAAE,KAAM,CAAE,QAAS,EAAM,CAAE,CAAC,EAEnDA,EAAqB,CAAE,KAAM,CAAE,QAASQ,IAAY,CAAE,CAAE,CAAC,CAClE,CAAC,CACH,CACF",
6
+ "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "CommandErrorHelper", "Maybe", "ETH_APP_ERRORS", "EthAppCommandErrorFactory", "Web3CheckOptInCommand", "apduBuilderArgs", "response", "enabled"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{isSuccessCommandResult as r}from"@ledgerhq/device-management-kit";import{Web3CheckOptInCommand as s}from"../../app-binder/command/Web3CheckOptInCommand";describe("Web3CheckOptInCommand",()=>{describe("getApdu",()=>{it("should return the raw APDU",()=>{const e=new s().getApdu();expect(e.getRawApdu()).toStrictEqual(Uint8Array.from([224,50,1,0,0]))})}),describe("parseResponse",()=>{it("should return true",()=>{const t={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([1])},e=new s().parseResponse(t);r(e)?expect(e.data).toStrictEqual({enabled:!0}):assert.fail("Expected a success")}),it("should return false",()=>{const t={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([0])},e=new s().parseResponse(t);r(e)?expect(e.data).toStrictEqual({enabled:!1}):assert.fail("Expected a success")}),it("should return false if missing",()=>{const t={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])},e=new s().parseResponse(t);r(e)?expect(e.data).toStrictEqual({enabled:!1}):assert.fail("Expected a success")}),it("should return an error if the device is locked",()=>{const t={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},e=new s().parseResponse(t);r(e)?assert.fail("Expected an error"):expect(e.error).toEqual(expect.objectContaining({errorCode:"5515",message:"Device is locked."}))})})});
2
+ //# sourceMappingURL=Web3CheckOptInCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/Web3CheckOptInCommand.test.ts"],
4
+ "sourcesContent": ["import { isSuccessCommandResult } from \"@ledgerhq/device-management-kit\";\n\nimport { Web3CheckOptInCommand } from \"@internal/app-binder/command/Web3CheckOptInCommand\";\n\ndescribe(\"Web3CheckOptInCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU\", () => {\n // GIVEN\n const command = new Web3CheckOptInCommand();\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x32, 0x01, 0x00, 0x00]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return true\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([0x01]),\n };\n\n // WHEN\n const result = new Web3CheckOptInCommand().parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toStrictEqual({ enabled: true });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return false\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([0x00]),\n };\n\n // WHEN\n const result = new Web3CheckOptInCommand().parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toStrictEqual({ enabled: false });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return false if missing\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n };\n\n // WHEN\n const result = new Web3CheckOptInCommand().parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toStrictEqual({ enabled: false });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return an error if the device is locked\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = new Web3CheckOptInCommand().parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toEqual(\n expect.objectContaining({\n errorCode: \"5515\",\n message: \"Device is locked.\",\n }),\n );\n }\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,0BAAAA,MAA8B,kCAEvC,OAAS,yBAAAC,MAA6B,qDAEtC,SAAS,wBAAyB,IAAM,CACtC,SAAS,UAAW,IAAM,CACxB,GAAG,6BAA8B,IAAM,CAKrC,MAAMC,EAHU,IAAID,EAAsB,EAGrB,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,GAAM,EAAM,EAAM,CAAI,CAAC,CAChD,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,qBAAsB,IAAM,CAE7B,MAAMC,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAI,CAAC,CAC7B,EAGMC,EAAS,IAAIH,EAAsB,EAAE,cAAcE,CAAQ,EAG7DH,EAAuBI,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,CAAE,QAAS,EAAK,CAAC,EAEnD,OAAO,KAAK,oBAAoB,CAEpC,CAAC,EAED,GAAG,sBAAuB,IAAM,CAE9B,MAAMD,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAI,CAAC,CAC7B,EAGMC,EAAS,IAAIH,EAAsB,EAAE,cAAcE,CAAQ,EAG7DH,EAAuBI,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,CAAE,QAAS,EAAM,CAAC,EAEpD,OAAO,KAAK,oBAAoB,CAEpC,CAAC,EAED,GAAG,iCAAkC,IAAM,CAEzC,MAAMD,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,EAGMC,EAAS,IAAIH,EAAsB,EAAE,cAAcE,CAAQ,EAG7DH,EAAuBI,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,CAAE,QAAS,EAAM,CAAC,EAEpD,OAAO,KAAK,oBAAoB,CAEpC,CAAC,EAED,GAAG,iDAAkD,IAAM,CAEzD,MAAMD,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,GAAM,EAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAGMC,EAAS,IAAIH,EAAsB,EAAE,cAAcE,CAAQ,EAG7DH,EAAuBI,CAAM,EAC/B,OAAO,KAAK,mBAAmB,EAE/B,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,UAAW,OACX,QAAS,mBACX,CAAC,CACH,CAEJ,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["isSuccessCommandResult", "Web3CheckOptInCommand", "apdu", "response", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{DeviceExchangeError as o}from"@ledgerhq/device-management-kit";const t={6001:{message:"Mode check fail"},6501:{message:"TransactionType not supported"},6502:{message:"Output buffer too small for chainId conversion"},6800:{message:"Internal error (Please report)"},6982:{message:"Security status not satisfied (Canceled by user)"},6983:{message:"Wrong Data length"},6984:{message:"Plugin not installed"},6985:{message:"Condition not satisfied"},"6a00":{message:"Error without info"},"6a80":{message:"Invalid data"},"6a84":{message:"Insufficient memory"},"6a88":{message:"Data not found"},"6b00":{message:"Incorrect parameter P1 or P2"},"6d00":{message:"Incorrect parameter INS"},"6e00":{message:"Incorrect parameter CLA"},"6f00":{message:"Technical problem (Internal error, please report)"},"911c":{message:"Command code not supported (i.e., Ledger-PKI not yet available)"}};class a extends o{constructor(r){super({tag:"EthAppCommandError",...r})}}const n=e=>new a(e);export{t as ETH_APP_ERRORS,a as EthAppCommandError,n as EthAppCommandErrorFactory};
2
+ //# sourceMappingURL=ethAppErrors.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/app-binder/command/utils/ethAppErrors.ts"],
4
+ "sourcesContent": ["import {\n type CommandErrorArgs,\n type CommandErrors,\n DeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\n\nexport type EthErrorCodes =\n | \"6001\"\n | \"6501\"\n | \"6502\"\n | \"6800\"\n | \"6982\"\n | \"6983\"\n | \"6984\"\n | \"6985\"\n | \"6a00\"\n | \"6a80\"\n | \"6a84\"\n | \"6a88\"\n | \"6b00\"\n | \"6d00\"\n | \"6e00\"\n | \"6f00\"\n | \"911c\"\n | \"6984\";\n\nexport const ETH_APP_ERRORS: CommandErrors<EthErrorCodes> = {\n \"6001\": { message: \"Mode check fail\" },\n \"6501\": { message: \"TransactionType not supported\" },\n \"6502\": { message: \"Output buffer too small for chainId conversion\" },\n \"6800\": { message: \"Internal error (Please report)\" },\n \"6982\": { message: \"Security status not satisfied (Canceled by user)\" },\n \"6983\": { message: \"Wrong Data length\" },\n \"6984\": { message: \"Plugin not installed\" },\n \"6985\": { message: \"Condition not satisfied\" },\n \"6a00\": { message: \"Error without info\" },\n \"6a80\": { message: \"Invalid data\" },\n \"6a84\": { message: \"Insufficient memory\" },\n \"6a88\": { message: \"Data not found\" },\n \"6b00\": { message: \"Incorrect parameter P1 or P2\" },\n \"6d00\": { message: \"Incorrect parameter INS\" },\n \"6e00\": { message: \"Incorrect parameter CLA\" },\n \"6f00\": { message: \"Technical problem (Internal error, please report)\" },\n \"911c\": {\n message: \"Command code not supported (i.e., Ledger-PKI not yet available)\",\n },\n};\n\nexport class EthAppCommandError extends DeviceExchangeError<EthErrorCodes> {\n constructor(args: CommandErrorArgs<EthErrorCodes>) {\n super({ tag: \"EthAppCommandError\", ...args });\n }\n}\n\nexport const EthAppCommandErrorFactory = (\n args: CommandErrorArgs<EthErrorCodes>,\n) => new EthAppCommandError(args);\n"],
5
+ "mappings": "AAAA,OAGE,uBAAAA,MACK,kCAsBA,MAAMC,EAA+C,CAC1D,KAAQ,CAAE,QAAS,iBAAkB,EACrC,KAAQ,CAAE,QAAS,+BAAgC,EACnD,KAAQ,CAAE,QAAS,gDAAiD,EACpE,KAAQ,CAAE,QAAS,gCAAiC,EACpD,KAAQ,CAAE,QAAS,kDAAmD,EACtE,KAAQ,CAAE,QAAS,mBAAoB,EACvC,KAAQ,CAAE,QAAS,sBAAuB,EAC1C,KAAQ,CAAE,QAAS,yBAA0B,EAC7C,OAAQ,CAAE,QAAS,oBAAqB,EACxC,OAAQ,CAAE,QAAS,cAAe,EAClC,OAAQ,CAAE,QAAS,qBAAsB,EACzC,OAAQ,CAAE,QAAS,gBAAiB,EACpC,OAAQ,CAAE,QAAS,8BAA+B,EAClD,OAAQ,CAAE,QAAS,yBAA0B,EAC7C,OAAQ,CAAE,QAAS,yBAA0B,EAC7C,OAAQ,CAAE,QAAS,mDAAoD,EACvE,OAAQ,CACN,QAAS,iEACX,CACF,EAEO,MAAMC,UAA2BF,CAAmC,CACzE,YAAYG,EAAuC,CACjD,MAAM,CAAE,IAAK,qBAAsB,GAAGA,CAAK,CAAC,CAC9C,CACF,CAEO,MAAMC,EACXD,GACG,IAAID,EAAmBC,CAAI",
6
+ "names": ["DeviceExchangeError", "ETH_APP_ERRORS", "EthAppCommandError", "args", "EthAppCommandErrorFactory"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{DeviceExchangeError as t}from"@ledgerhq/device-management-kit";import{ETH_APP_ERRORS as c,EthAppCommandError as s}from"./ethAppErrors";describe("EthAppCommandError",()=>{afterEach(()=>{vi.resetAllMocks()}),afterAll(()=>{vi.resetModules()}),it("should be an instance of DeviceExchangeError",()=>{const e=new s({message:"Test error message",errorCode:"6985"});expect(e).toBeInstanceOf(t)}),it("should set the correct message when provided",()=>{const e="Custom error message",r=new s({message:e,errorCode:"6985"});expect(r.message).toBe(e)}),it("should set the correct customErrorCode",()=>{const e="6a80",r=new s({message:"Invalid data",errorCode:e});expect(r.errorCode).toBe(e)}),it("should correlate error codes with messages from ethereumAppErrors",()=>{const e="6e00",r=c[e].message,o=new s({message:r,errorCode:e});expect(o.errorCode).toBe(e),expect(o.message).toBe(r),expect(o).toBeInstanceOf(t)}),it("should handle unknown error codes gracefully",()=>{const e="9999",r="Unknown error occurred",o=new s({message:r,errorCode:e});expect(o.errorCode).toBe(e),expect(o.message).toBe(r),expect(o).toBeInstanceOf(t)})});
2
+ //# sourceMappingURL=ethAppErrors.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/app-binder/command/utils/ethAppErrors.test.ts"],
4
+ "sourcesContent": ["import { DeviceExchangeError } from \"@ledgerhq/device-management-kit\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandError,\n type EthErrorCodes,\n} from \"./ethAppErrors\";\n\ndescribe(\"EthAppCommandError\", () => {\n afterEach(() => {\n vi.resetAllMocks();\n });\n\n afterAll(() => {\n vi.resetModules();\n });\n\n it(\"should be an instance of DeviceExchangeError\", () => {\n const error = new EthAppCommandError({\n message: \"Test error message\",\n errorCode: \"6985\",\n });\n\n expect(error).toBeInstanceOf(DeviceExchangeError);\n });\n\n it(\"should set the correct message when provided\", () => {\n const customMessage = \"Custom error message\";\n const error = new EthAppCommandError({\n message: customMessage,\n errorCode: \"6985\",\n });\n\n expect(error.message).toBe(customMessage);\n });\n\n it(\"should set the correct customErrorCode\", () => {\n const errorCode: EthErrorCodes = \"6a80\";\n const error = new EthAppCommandError({\n message: \"Invalid data\",\n errorCode,\n });\n\n expect(error.errorCode).toBe(errorCode);\n });\n\n it(\"should correlate error codes with messages from ethereumAppErrors\", () => {\n const errorCode: EthErrorCodes = \"6e00\";\n const expectedMessage = ETH_APP_ERRORS[errorCode].message;\n\n const error = new EthAppCommandError({\n message: expectedMessage,\n errorCode,\n });\n\n expect(error.errorCode).toBe(errorCode);\n expect(error.message).toBe(expectedMessage);\n\n expect(error).toBeInstanceOf(DeviceExchangeError);\n });\n\n it(\"should handle unknown error codes gracefully\", () => {\n const unknownErrorCode = \"9999\" as EthErrorCodes;\n const customMessage = \"Unknown error occurred\";\n\n const error = new EthAppCommandError({\n message: customMessage,\n errorCode: unknownErrorCode,\n });\n\n expect(error.errorCode).toBe(unknownErrorCode);\n expect(error.message).toBe(customMessage);\n expect(error).toBeInstanceOf(DeviceExchangeError);\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,uBAAAA,MAA2B,kCAEpC,OACE,kBAAAC,EACA,sBAAAC,MAEK,iBAEP,SAAS,qBAAsB,IAAM,CACnC,UAAU,IAAM,CACd,GAAG,cAAc,CACnB,CAAC,EAED,SAAS,IAAM,CACb,GAAG,aAAa,CAClB,CAAC,EAED,GAAG,+CAAgD,IAAM,CACvD,MAAMC,EAAQ,IAAID,EAAmB,CACnC,QAAS,qBACT,UAAW,MACb,CAAC,EAED,OAAOC,CAAK,EAAE,eAAeH,CAAmB,CAClD,CAAC,EAED,GAAG,+CAAgD,IAAM,CACvD,MAAMI,EAAgB,uBAChBD,EAAQ,IAAID,EAAmB,CACnC,QAASE,EACT,UAAW,MACb,CAAC,EAED,OAAOD,EAAM,OAAO,EAAE,KAAKC,CAAa,CAC1C,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,MAAMC,EAA2B,OAC3BF,EAAQ,IAAID,EAAmB,CACnC,QAAS,eACT,UAAAG,CACF,CAAC,EAED,OAAOF,EAAM,SAAS,EAAE,KAAKE,CAAS,CACxC,CAAC,EAED,GAAG,oEAAqE,IAAM,CAC5E,MAAMA,EAA2B,OAC3BC,EAAkBL,EAAeI,CAAS,EAAE,QAE5CF,EAAQ,IAAID,EAAmB,CACnC,QAASI,EACT,UAAAD,CACF,CAAC,EAED,OAAOF,EAAM,SAAS,EAAE,KAAKE,CAAS,EACtC,OAAOF,EAAM,OAAO,EAAE,KAAKG,CAAe,EAE1C,OAAOH,CAAK,EAAE,eAAeH,CAAmB,CAClD,CAAC,EAED,GAAG,+CAAgD,IAAM,CACvD,MAAMO,EAAmB,OACnBH,EAAgB,yBAEhBD,EAAQ,IAAID,EAAmB,CACnC,QAASE,EACT,UAAWG,CACb,CAAC,EAED,OAAOJ,EAAM,SAAS,EAAE,KAAKI,CAAgB,EAC7C,OAAOJ,EAAM,OAAO,EAAE,KAAKC,CAAa,EACxC,OAAOD,CAAK,EAAE,eAAeH,CAAmB,CAClD,CAAC,CACH,CAAC",
6
+ "names": ["DeviceExchangeError", "ETH_APP_ERRORS", "EthAppCommandError", "error", "customMessage", "errorCode", "expectedMessage", "unknownErrorCode"]
7
+ }
@@ -0,0 +1,2 @@
1
+ const e=["1inch","Aave","Alkemi","Angle","APWine","ArtBlocks","Brick Towers","capsa","cBridge","ChorusOne","CIAN","Coinbase","Cometh","Compound","DODO","EigenLayer","ENS","Figment","Harvest","Kelp","Kiln","Lens","libertify","Lido","[ L ] Market","Midas","Morpho","Nested","OKX Web3","OpenSea","P2P.org","Paraswap","POAP","QuickSwap","Rarible","Ribbon","Ricochet","Rocket Pool","Spool","Squid","Staderlabs","StakeDAO","StakeKit","Swell","Thales","Yearn","Uniswap"];export{e as ETHEREUM_PLUGINS};
2
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/constant/plugins.ts"],
4
+ "sourcesContent": ["export const ETHEREUM_PLUGINS: string[] = [\n \"1inch\",\n \"Aave\",\n \"Alkemi\",\n \"Angle\",\n \"APWine\",\n \"ArtBlocks\",\n \"Brick Towers\",\n \"capsa\",\n \"cBridge\",\n \"ChorusOne\",\n \"CIAN\",\n \"Coinbase\",\n \"Cometh\",\n \"Compound\",\n \"DODO\",\n \"EigenLayer\",\n \"ENS\",\n \"Figment\",\n \"Harvest\",\n \"Kelp\",\n \"Kiln\",\n \"Lens\",\n \"libertify\",\n \"Lido\",\n \"[ L ] Market\",\n \"Midas\",\n \"Morpho\",\n \"Nested\",\n \"OKX Web3\",\n \"OpenSea\",\n \"P2P.org\",\n \"Paraswap\",\n \"POAP\",\n \"QuickSwap\",\n \"Rarible\",\n \"Ribbon\",\n \"Ricochet\",\n \"Rocket Pool\",\n \"Spool\",\n \"Squid\",\n \"Staderlabs\",\n \"StakeDAO\",\n \"StakeKit\",\n \"Swell\",\n \"Thales\",\n \"Yearn\",\n \"Uniswap\",\n];\n"],
5
+ "mappings": "AAAO,MAAMA,EAA6B,CACxC,QACA,OACA,SACA,QACA,SACA,YACA,eACA,QACA,UACA,YACA,OACA,WACA,SACA,WACA,OACA,aACA,MACA,UACA,UACA,OACA,OACA,OACA,YACA,OACA,eACA,QACA,SACA,SACA,WACA,UACA,UACA,WACA,OACA,YACA,UACA,SACA,WACA,cACA,QACA,QACA,aACA,WACA,WACA,QACA,SACA,QACA,SACF",
6
+ "names": ["ETHEREUM_PLUGINS"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{isSuccessCommandResult as g,OpenAppDeviceAction as S,UnknownDAError as T,UserInteractionRequired as i,XStateDeviceAction as m}from"@ledgerhq/device-management-kit";import{Left as y,Right as x}from"purify-ts";import{assign as n,fromPromise as a,setup as h}from"xstate";import{GetChallengeCommand as v}from"../../../app-binder/command/GetChallengeCommand";import{BuildTransactionContextTask as E}from"../../../app-binder/task/BuildTransactionContextTask";import{ProvideTransactionContextTask as A}from"../../../app-binder/task/ProvideTransactionContextTask";import{ProvideTransactionGenericContextTask as D}from"../../../app-binder/task/ProvideTransactionGenericContextTask";import{SendSignTransactionTask as I}from"../../../app-binder/task/SendSignTransactionTask";class w extends m{makeStateMachine(r){const{getChallenge:o,buildContext:s,provideContext:c,provideGenericContext:l,signTransaction:u}=this.extractDependencies(r);return h({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new S({input:{appName:"Ethereum"}}).makeStateMachine(r),getChallenge:a(o),buildContext:a(s),provideContext:a(c),provideGenericContext:a(l),signTransaction:a(u)},guards:{noInternalError:({context:t})=>t._internalState.error===null,isGenericContext:({context:t})=>t._internalState.clearSignContexts!==null&&typeof t._internalState.clearSignContexts.transactionInfo=="string"},actions:{assignErrorFromEvent:n({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignTransactionDeviceAction",initial:"OpenAppDeviceAction",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:i.None},_internalState:{error:null,clearSignContexts:null,serializedTransaction:null,chainId:null,transactionType:null,challenge:null,isLegacy:!0,signature:null}}),states:{OpenAppDeviceAction:{exit:n({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Ethereum"},src:"openAppStateMachine",onSnapshot:{actions:n({intermediateValue:t=>t.event.snapshot.context.intermediateValue})},onDone:{actions:n({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:e=>({...t.context._internalState,error:e})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"GetChallenge",guard:"noInternalError"},"Error"]},GetChallenge:{invoke:{id:"getChallenge",src:"getChallenge",onDone:{target:"GetChallengeResultCheck",actions:[n({_internalState:({event:t,context:e})=>g(t.output)?{...e._internalState,challenge:t.output.data.challenge}:{...e._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetChallengeResultCheck:{always:[{target:"BuildContext",guard:"noInternalError"},{target:"Error"}]},BuildContext:{invoke:{id:"buildContext",src:"buildContext",input:({context:t})=>({contextModule:t.input.contextModule,mapper:t.input.mapper,transaction:t.input.transaction,options:t.input.options,challenge:t._internalState.challenge}),onDone:{target:"BuildContextResultCheck",actions:[n({_internalState:({event:t,context:e})=>({...e._internalState,clearSignContexts:t.output.clearSignContexts,serializedTransaction:t.output.serializedTransaction,chainId:t.output.chainId,transactionType:t.output.transactionType})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContextResultCheck:{always:[{target:"ProvideGenericContext",guard:"isGenericContext"},{target:"ProvideContext"}]},ProvideContext:{invoke:{id:"provideContext",src:"provideContext",input:({context:t})=>({clearSignContexts:t._internalState.clearSignContexts}),onDone:{actions:n({_internalState:({event:t,context:e})=>t.output.caseOf({Just:p=>({...e._internalState,error:p.error}),Nothing:()=>e._internalState})}),target:"ProvideContextResultCheck"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ProvideGenericContext:{invoke:{id:"provideGenericContext",src:"provideGenericContext",input:({context:t})=>({contextModule:t.input.contextModule,transactionParser:t.input.parser,chainId:t._internalState.chainId,derivationPath:t.input.derivationPath,serializedTransaction:t._internalState.serializedTransaction,context:t._internalState.clearSignContexts}),onDone:{actions:n({_internalState:({event:t,context:e})=>{const{isLegacy:p,...d}=e._internalState;return t.output.caseOf({Just:C=>({...d,isLegacy:!1,error:C.error}),Nothing:()=>({...d,isLegacy:!1})})}}),target:"ProvideContextResultCheck"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ProvideContextResultCheck:{always:[{target:"SignTransaction",guard:"noInternalError"},{target:"Error"}]},SignTransaction:{entry:n({intermediateValue:{requiredUserInteraction:i.SignTransaction}}),exit:n({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"signTransaction",src:"signTransaction",input:({context:t})=>({derivationPath:t.input.derivationPath,serializedTransaction:t._internalState.serializedTransaction,chainId:t._internalState.chainId,transactionType:t._internalState.transactionType,isLegacy:t._internalState.isLegacy}),onDone:{target:"SignTransactionResultCheck",actions:[n({_internalState:({event:t,context:e})=>g(t.output)?{...e._internalState,signature:t.output.data}:{...e._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransactionResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:t})=>t._internalState.signature?x(t._internalState.signature):y(t._internalState.error||new T("No error in final state"))})}extractDependencies(r){return{getChallenge:async()=>r.sendCommand(new v),buildContext:async t=>new E(r,t.input).run(),provideContext:async t=>new A(r,{clearSignContexts:t.input.clearSignContexts}).run(),provideGenericContext:async t=>new D(r,{contextModule:t.input.contextModule,transactionParser:t.input.transactionParser,chainId:t.input.chainId,derivationPath:t.input.derivationPath,serializedTransaction:t.input.serializedTransaction,context:t.input.context}).run(),signTransaction:async t=>new I(r,t.input).run()}}}export{w as SignTransactionDeviceAction};
1
+ import{isSuccessCommandResult as g,OpenAppDeviceAction as d,UnknownDAError as S,UserInteractionRequired as i,XStateDeviceAction as h}from"@ledgerhq/device-management-kit";import{Left as T,Right as m}from"purify-ts";import{assign as n,fromPromise as a,setup as y}from"xstate";import{GetChallengeCommand as x}from"../../../app-binder/command/GetChallengeCommand";import{ETHEREUM_PLUGINS as E}from"../../../app-binder/constant/plugins";import{BuildTransactionContextTask as k}from"../../../app-binder/task/BuildTransactionContextTask";import{GetWeb3CheckTask as v}from"../../../app-binder/task/GetWeb3CheckTask";import{ProvideTransactionContextTask as A}from"../../../app-binder/task/ProvideTransactionContextTask";import{ProvideTransactionGenericContextTask as b}from"../../../app-binder/task/ProvideTransactionGenericContextTask";import{SendSignTransactionTask as D}from"../../../app-binder/task/SendSignTransactionTask";class B extends h{makeStateMachine(r){const{getChallenge:o,getWeb3Check:s,buildContext:c,provideContext:l,provideGenericContext:p,signTransaction:u}=this.extractDependencies(r);return y({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new d({input:{appName:"Ethereum"}}).makeStateMachine(r),getChallenge:a(o),getWeb3Check:a(s),buildContext:a(c),provideContext:a(l),provideGenericContext:a(p),signTransaction:a(u)},guards:{noInternalError:({context:e})=>e._internalState.error===null,isGenericContext:({context:e})=>e._internalState.clearSignContexts!==null&&typeof e._internalState.clearSignContexts.transactionInfo=="string"},actions:{assignErrorFromEvent:n({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"SignTransactionDeviceAction",initial:"OpenAppDeviceAction",context:({input:e})=>({input:e,intermediateValue:{requiredUserInteraction:i.None},_internalState:{error:null,clearSignContexts:null,serializedTransaction:null,chainId:null,web3Check:null,transactionType:null,challenge:null,isLegacy:!0,signature:null}}),states:{OpenAppDeviceAction:{exit:n({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Ethereum",compatibleAppNames:E},src:"openAppStateMachine",onSnapshot:{actions:n({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{actions:n({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:t=>({...e.context._internalState,error:t})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"GetChallenge",guard:"noInternalError"},"Error"]},GetChallenge:{invoke:{id:"getChallenge",src:"getChallenge",onDone:{target:"GetChallengeResultCheck",actions:[n({_internalState:({event:e,context:t})=>g(e.output)?{...t._internalState,challenge:e.output.data.challenge}:typeof e.output.error.originalError=="object"&&e.output.error.originalError!==null&&"errorCode"in e.output.error.originalError&&e.output.error.originalError.errorCode==="6d00"?t._internalState:{...t._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetChallengeResultCheck:{always:[{target:"GetWeb3Check",guard:"noInternalError"},"Error"]},GetWeb3Check:{invoke:{id:"getWeb3Check",src:"getWeb3Check",input:({context:e})=>({contextModule:e.input.contextModule,mapper:e.input.mapper,transaction:e.input.transaction,options:e.input.options,derivationPath:e.input.derivationPath}),onDone:{target:"BuildContext",actions:[n({_internalState:({event:e,context:t})=>({...t._internalState,web3Check:e.output.web3Check})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContext:{invoke:{id:"buildContext",src:"buildContext",input:({context:e})=>({contextModule:e.input.contextModule,mapper:e.input.mapper,transaction:e.input.transaction,options:e.input.options,challenge:e._internalState.challenge}),onDone:{target:"BuildContextResultCheck",actions:[n({_internalState:({event:e,context:t})=>({...t._internalState,clearSignContexts:e.output.clearSignContexts,serializedTransaction:e.output.serializedTransaction,chainId:e.output.chainId,transactionType:e.output.transactionType})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContextResultCheck:{always:[{target:"ProvideGenericContext",guard:"isGenericContext"},{target:"ProvideContext"}]},ProvideContext:{invoke:{id:"provideContext",src:"provideContext",input:({context:e})=>({clearSignContexts:e._internalState.clearSignContexts,web3Check:e._internalState.web3Check}),onDone:{target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ProvideGenericContext:{invoke:{id:"provideGenericContext",src:"provideGenericContext",input:({context:e})=>({contextModule:e.input.contextModule,transactionParser:e.input.parser,chainId:e._internalState.chainId,derivationPath:e.input.derivationPath,serializedTransaction:e._internalState.serializedTransaction,context:e._internalState.clearSignContexts,web3Check:e._internalState.web3Check}),onDone:{actions:n({_internalState:({event:e,context:t})=>{const{isLegacy:_,...C}=t._internalState;return e.output.caseOf({Just:()=>({...C,isLegacy:!1}),Nothing:()=>({...C,isLegacy:!1})})}}),target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransaction:{entry:n({intermediateValue:{requiredUserInteraction:i.SignTransaction}}),exit:n({intermediateValue:{requiredUserInteraction:i.None}}),invoke:{id:"signTransaction",src:"signTransaction",input:({context:e})=>({derivationPath:e.input.derivationPath,serializedTransaction:e._internalState.serializedTransaction,chainId:e._internalState.chainId,transactionType:e._internalState.transactionType,isLegacy:e._internalState.isLegacy}),onDone:{target:"SignTransactionResultCheck",actions:[n({_internalState:({event:e,context:t})=>g(e.output)?{...t._internalState,signature:e.output.data}:{...t._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransactionResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.signature?m(e._internalState.signature):T(e._internalState.error||new S("No error in final state"))})}extractDependencies(r){return{getChallenge:async()=>r.sendCommand(new x),buildContext:async e=>new k(r,e.input).run(),getWeb3Check:async e=>new v(r,e.input).run(),provideContext:async e=>new A(r,{clearSignContexts:e.input.clearSignContexts,web3Check:e.input.web3Check}).run(),provideGenericContext:async e=>new b(r,{contextModule:e.input.contextModule,transactionParser:e.input.transactionParser,chainId:e.input.chainId,derivationPath:e.input.derivationPath,serializedTransaction:e.input.serializedTransaction,context:e.input.context,web3Check:e.input.web3Check}).run(),signTransaction:async e=>new D(r,e.input).run()}}}export{B as SignTransactionDeviceAction};
2
2
  //# sourceMappingURL=SignTransactionDeviceAction.js.map