@ledgerhq/device-signer-kit-ethereum 0.0.0-signer-eth-20250122093657 → 0.0.0-transaction-unfunded-20250917151052

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (586) hide show
  1. package/README.md +80 -15
  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.js +1 -1
  5. package/lib/cjs/api/SignerEthBuilder.js.map +3 -3
  6. package/lib/cjs/api/SignerEthBuilder.test.js +1 -1
  7. package/lib/cjs/api/SignerEthBuilder.test.js.map +3 -3
  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/SignDelegationAuthorizationTypes.js +2 -0
  11. package/lib/cjs/api/app-binder/SignDelegationAuthorizationTypes.js.map +7 -0
  12. package/lib/cjs/api/app-binder/SignPersonalMessageDeviceActionTypes.js +1 -1
  13. package/lib/cjs/api/app-binder/SignPersonalMessageDeviceActionTypes.js.map +1 -1
  14. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  15. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +3 -3
  16. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  17. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +3 -3
  18. package/lib/cjs/api/index.js +1 -1
  19. package/lib/cjs/api/index.js.map +3 -3
  20. package/lib/cjs/api/model/AddressOptions.js +1 -1
  21. package/lib/cjs/api/model/AddressOptions.js.map +1 -1
  22. package/lib/cjs/api/model/ClearSigningType.js +2 -0
  23. package/lib/cjs/api/model/ClearSigningType.js.map +7 -0
  24. package/lib/cjs/api/model/MessageOptions.js +2 -0
  25. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  26. package/lib/cjs/api/model/TransactionOptions.js +1 -1
  27. package/lib/cjs/api/model/TransactionOptions.js.map +1 -1
  28. package/lib/cjs/api/model/TypedDataOptions.js +2 -0
  29. package/lib/cjs/api/model/TypedDataOptions.js.map +7 -0
  30. package/lib/cjs/index.js.map +1 -1
  31. package/lib/cjs/internal/DefaultSignerEth.js +1 -1
  32. package/lib/cjs/internal/DefaultSignerEth.js.map +3 -3
  33. package/lib/cjs/internal/DefaultSignerEth.test.js +1 -1
  34. package/lib/cjs/internal/DefaultSignerEth.test.js.map +3 -3
  35. package/lib/cjs/internal/address/di/addressModule.js +1 -1
  36. package/lib/cjs/internal/address/di/addressModule.js.map +3 -3
  37. package/lib/cjs/internal/address/di/addressModule.test.js +1 -1
  38. package/lib/cjs/internal/address/di/addressModule.test.js.map +2 -2
  39. package/lib/cjs/internal/address/use-case/GetAddressUseCase.js +1 -1
  40. package/lib/cjs/internal/address/use-case/GetAddressUseCase.js.map +2 -2
  41. package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  42. package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  43. package/lib/cjs/internal/app-binder/EthAppBinder.js +1 -1
  44. package/lib/cjs/internal/app-binder/EthAppBinder.js.map +3 -3
  45. package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
  46. package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +3 -3
  47. package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js +1 -1
  48. package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
  49. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
  50. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
  51. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
  52. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
  53. package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.js +2 -0
  54. package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.js.map +7 -0
  55. package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js +2 -0
  56. package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js.map +7 -0
  57. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js +2 -0
  58. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js.map +7 -0
  59. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js +2 -0
  60. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +7 -0
  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 +2 -2
  67. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
  68. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
  69. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js +2 -0
  70. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +7 -0
  71. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +2 -0
  72. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +7 -0
  73. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  74. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
  75. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
  76. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js.map +2 -2
  77. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
  78. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
  79. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
  80. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
  81. package/lib/cjs/internal/app-binder/command/utils/ethAppErrors.test.js +1 -1
  82. package/lib/cjs/internal/app-binder/command/utils/ethAppErrors.test.js.map +2 -2
  83. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  84. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  85. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  86. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  87. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  88. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  89. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  90. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  91. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  92. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  93. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  94. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  95. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  96. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  97. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  98. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  99. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  100. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  101. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  102. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  103. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js +2 -0
  104. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js.map +7 -0
  105. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js +2 -0
  106. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js.map +7 -0
  107. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  108. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  109. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  110. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  111. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
  112. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
  113. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
  114. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
  115. package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js +2 -0
  116. package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js.map +7 -0
  117. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  118. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  119. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  120. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  121. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  122. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  123. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  124. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  125. package/lib/cjs/internal/app-binder/task/SendEIP712StructImplemTask.test.js +1 -1
  126. package/lib/cjs/internal/app-binder/task/SendEIP712StructImplemTask.test.js.map +2 -2
  127. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  128. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js.map +3 -3
  129. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.test.js +1 -1
  130. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.test.js.map +3 -3
  131. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.js +2 -0
  132. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.js.map +7 -0
  133. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js +2 -0
  134. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js.map +7 -0
  135. package/lib/cjs/internal/app-binder/task/SendSignPersonalMessageTask.test.js +1 -1
  136. package/lib/cjs/internal/app-binder/task/SendSignPersonalMessageTask.test.js.map +2 -2
  137. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js +1 -1
  138. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
  139. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
  140. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
  141. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
  142. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
  143. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
  144. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
  145. package/lib/cjs/internal/di.js +1 -1
  146. package/lib/cjs/internal/di.js.map +3 -3
  147. package/lib/cjs/internal/eip7702/di/eip7702Module.js +2 -0
  148. package/lib/cjs/internal/eip7702/di/eip7702Module.js.map +7 -0
  149. package/lib/cjs/internal/eip7702/di/eip7702Module.test.js +2 -0
  150. package/lib/cjs/internal/eip7702/di/eip7702Module.test.js.map +7 -0
  151. package/lib/cjs/internal/eip7702/di/eip7702Types.js +2 -0
  152. package/lib/cjs/internal/eip7702/di/eip7702Types.js.map +7 -0
  153. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js +2 -0
  154. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js.map +7 -0
  155. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js +2 -0
  156. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js.map +7 -0
  157. package/lib/cjs/internal/message/di/messageModule.js +1 -1
  158. package/lib/cjs/internal/message/di/messageModule.js.map +3 -3
  159. package/lib/cjs/internal/message/di/messageModule.test.js +1 -1
  160. package/lib/cjs/internal/message/di/messageModule.test.js.map +2 -2
  161. package/lib/cjs/internal/message/use-case/SignMessageUseCase.js +1 -1
  162. package/lib/cjs/internal/message/use-case/SignMessageUseCase.js.map +3 -3
  163. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  164. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  165. package/lib/cjs/internal/shared/utils/ApplicationChecker.js +2 -0
  166. package/lib/cjs/internal/shared/utils/ApplicationChecker.js.map +7 -0
  167. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js +2 -0
  168. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js.map +7 -0
  169. package/lib/cjs/internal/transaction/di/transactionModule.js +1 -1
  170. package/lib/cjs/internal/transaction/di/transactionModule.js.map +3 -3
  171. package/lib/cjs/internal/transaction/di/transactionModule.test.js +1 -1
  172. package/lib/cjs/internal/transaction/di/transactionModule.test.js.map +2 -2
  173. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.js +2 -0
  174. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.js.map +7 -0
  175. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.test.js +2 -0
  176. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.test.js.map +7 -0
  177. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js +1 -1
  178. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js.map +3 -3
  179. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js +1 -1
  180. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
  181. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  182. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js.map +3 -3
  183. package/lib/cjs/internal/transaction/use-case/SignTransactionUseCase.test.js +1 -1
  184. package/lib/cjs/internal/transaction/use-case/SignTransactionUseCase.test.js.map +2 -2
  185. package/lib/cjs/internal/typed-data/di/typedDataModule.js +1 -1
  186. package/lib/cjs/internal/typed-data/di/typedDataModule.js.map +3 -3
  187. package/lib/cjs/internal/typed-data/di/typedDataModule.test.js +1 -1
  188. package/lib/cjs/internal/typed-data/di/typedDataModule.test.js.map +2 -2
  189. package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
  190. package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
  191. package/lib/cjs/internal/typed-data/service/TypedDataParser.js +1 -1
  192. package/lib/cjs/internal/typed-data/service/TypedDataParser.js.map +3 -3
  193. package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js +1 -1
  194. package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
  195. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
  196. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
  197. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  198. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  199. package/lib/cjs/package.json +17 -18
  200. package/lib/esm/api/SignerEthBuilder.js +1 -1
  201. package/lib/esm/api/SignerEthBuilder.js.map +3 -3
  202. package/lib/esm/api/SignerEthBuilder.test.js +1 -1
  203. package/lib/esm/api/SignerEthBuilder.test.js.map +3 -3
  204. package/lib/esm/api/app-binder/GetConfigCommandTypes.js +1 -0
  205. package/lib/esm/api/app-binder/SignDelegationAuthorizationTypes.js +1 -0
  206. package/lib/esm/api/app-binder/SignDelegationAuthorizationTypes.js.map +7 -0
  207. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -0
  208. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +4 -4
  209. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -0
  210. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +4 -4
  211. package/lib/esm/api/index.js +1 -1
  212. package/lib/esm/api/index.js.map +3 -3
  213. package/lib/esm/api/model/ClearSigningType.js +2 -0
  214. package/lib/esm/api/model/ClearSigningType.js.map +7 -0
  215. package/lib/esm/api/model/MessageOptions.js +1 -0
  216. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  217. package/lib/esm/api/model/TypedDataOptions.js +1 -0
  218. package/lib/esm/api/model/TypedDataOptions.js.map +7 -0
  219. package/lib/esm/internal/DefaultSignerEth.js +1 -1
  220. package/lib/esm/internal/DefaultSignerEth.js.map +3 -3
  221. package/lib/esm/internal/DefaultSignerEth.test.js +1 -1
  222. package/lib/esm/internal/DefaultSignerEth.test.js.map +3 -3
  223. package/lib/esm/internal/address/di/addressModule.js +1 -1
  224. package/lib/esm/internal/address/di/addressModule.js.map +3 -3
  225. package/lib/esm/internal/address/di/addressModule.test.js +1 -1
  226. package/lib/esm/internal/address/di/addressModule.test.js.map +2 -2
  227. package/lib/esm/internal/address/use-case/GetAddressUseCase.js +1 -1
  228. package/lib/esm/internal/address/use-case/GetAddressUseCase.js.map +2 -2
  229. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  230. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  231. package/lib/esm/internal/app-binder/EthAppBinder.js +1 -1
  232. package/lib/esm/internal/app-binder/EthAppBinder.js.map +3 -3
  233. package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
  234. package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +3 -3
  235. package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js +1 -1
  236. package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
  237. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
  238. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
  239. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
  240. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
  241. package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.js +2 -0
  242. package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.js.map +7 -0
  243. package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js +2 -0
  244. package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js.map +7 -0
  245. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js +2 -0
  246. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js.map +7 -0
  247. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js +2 -0
  248. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +7 -0
  249. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js +2 -0
  250. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
  251. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
  252. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +7 -0
  253. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
  254. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js.map +2 -2
  255. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
  256. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
  257. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js +2 -0
  258. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +7 -0
  259. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +2 -0
  260. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +7 -0
  261. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  262. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +2 -2
  263. package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
  264. package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js.map +2 -2
  265. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
  266. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
  267. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
  268. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
  269. package/lib/esm/internal/app-binder/command/utils/ethAppErrors.test.js +1 -1
  270. package/lib/esm/internal/app-binder/command/utils/ethAppErrors.test.js.map +2 -2
  271. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  272. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  273. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  274. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  275. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  276. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  277. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  278. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  279. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  280. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  281. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +1 -1
  282. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +2 -2
  283. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  284. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  285. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  286. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  287. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  288. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  289. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  290. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  291. package/lib/esm/internal/app-binder/task/BuildSubContextTask.js +2 -0
  292. package/lib/esm/internal/app-binder/task/BuildSubContextTask.js.map +7 -0
  293. package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js +2 -0
  294. package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js.map +7 -0
  295. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  296. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  297. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  298. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  299. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
  300. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
  301. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
  302. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
  303. package/lib/esm/internal/app-binder/task/PreBuildContextTask.js +2 -0
  304. package/lib/esm/internal/app-binder/task/PreBuildContextTask.js.map +7 -0
  305. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  306. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  307. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  308. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  309. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  310. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  311. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  312. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  313. package/lib/esm/internal/app-binder/task/SendEIP712StructImplemTask.test.js +1 -1
  314. package/lib/esm/internal/app-binder/task/SendEIP712StructImplemTask.test.js.map +2 -2
  315. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  316. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js.map +3 -3
  317. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.test.js +1 -1
  318. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.test.js.map +3 -3
  319. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.js +2 -0
  320. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.js.map +7 -0
  321. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js +2 -0
  322. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js.map +7 -0
  323. package/lib/esm/internal/app-binder/task/SendSignPersonalMessageTask.test.js +1 -1
  324. package/lib/esm/internal/app-binder/task/SendSignPersonalMessageTask.test.js.map +2 -2
  325. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js +1 -1
  326. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
  327. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
  328. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
  329. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
  330. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
  331. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
  332. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
  333. package/lib/esm/internal/di.js +1 -1
  334. package/lib/esm/internal/di.js.map +3 -3
  335. package/lib/esm/internal/eip7702/di/eip7702Module.js +2 -0
  336. package/lib/esm/internal/eip7702/di/eip7702Module.js.map +7 -0
  337. package/lib/esm/internal/eip7702/di/eip7702Module.test.js +2 -0
  338. package/lib/esm/internal/eip7702/di/eip7702Module.test.js.map +7 -0
  339. package/lib/esm/internal/eip7702/di/eip7702Types.js +2 -0
  340. package/lib/esm/internal/eip7702/di/eip7702Types.js.map +7 -0
  341. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js +2 -0
  342. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js.map +7 -0
  343. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js +2 -0
  344. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js.map +7 -0
  345. package/lib/esm/internal/message/di/messageModule.js +1 -1
  346. package/lib/esm/internal/message/di/messageModule.js.map +3 -3
  347. package/lib/esm/internal/message/di/messageModule.test.js +1 -1
  348. package/lib/esm/internal/message/di/messageModule.test.js.map +2 -2
  349. package/lib/esm/internal/message/use-case/SignMessageUseCase.js +1 -1
  350. package/lib/esm/internal/message/use-case/SignMessageUseCase.js.map +3 -3
  351. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  352. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  353. package/lib/esm/internal/shared/utils/ApplicationChecker.js +2 -0
  354. package/lib/esm/internal/shared/utils/ApplicationChecker.js.map +7 -0
  355. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js +2 -0
  356. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js.map +7 -0
  357. package/lib/esm/internal/transaction/di/transactionModule.js +1 -1
  358. package/lib/esm/internal/transaction/di/transactionModule.js.map +3 -3
  359. package/lib/esm/internal/transaction/di/transactionModule.test.js +1 -1
  360. package/lib/esm/internal/transaction/di/transactionModule.test.js.map +2 -2
  361. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.js +2 -0
  362. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.js.map +7 -0
  363. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.test.js +2 -0
  364. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.test.js.map +7 -0
  365. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js +0 -1
  366. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js.map +4 -4
  367. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js +1 -1
  368. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
  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 +3 -3
  371. package/lib/esm/internal/transaction/use-case/SignTransactionUseCase.test.js +1 -1
  372. package/lib/esm/internal/transaction/use-case/SignTransactionUseCase.test.js.map +2 -2
  373. package/lib/esm/internal/typed-data/di/typedDataModule.js +1 -1
  374. package/lib/esm/internal/typed-data/di/typedDataModule.js.map +3 -3
  375. package/lib/esm/internal/typed-data/di/typedDataModule.test.js +1 -1
  376. package/lib/esm/internal/typed-data/di/typedDataModule.test.js.map +2 -2
  377. package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
  378. package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
  379. package/lib/esm/internal/typed-data/service/TypedDataParser.js +1 -1
  380. package/lib/esm/internal/typed-data/service/TypedDataParser.js.map +3 -3
  381. package/lib/esm/internal/typed-data/service/TypedDataParser.test.js +1 -1
  382. package/lib/esm/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
  383. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
  384. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
  385. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  386. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  387. package/lib/esm/package.json +17 -18
  388. package/lib/types/api/SignerEth.d.ts +8 -4
  389. package/lib/types/api/SignerEth.d.ts.map +1 -1
  390. package/lib/types/api/SignerEthBuilder.d.ts +4 -2
  391. package/lib/types/api/SignerEthBuilder.d.ts.map +1 -1
  392. package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts +7 -0
  393. package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts.map +1 -0
  394. package/lib/types/api/app-binder/SignDelegationAuthorizationTypes.d.ts +19 -0
  395. package/lib/types/api/app-binder/SignDelegationAuthorizationTypes.d.ts.map +1 -0
  396. package/lib/types/api/app-binder/SignPersonalMessageDeviceActionTypes.d.ts +1 -10
  397. package/lib/types/api/app-binder/SignPersonalMessageDeviceActionTypes.d.ts.map +1 -1
  398. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +24 -8
  399. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  400. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +20 -1
  401. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
  402. package/lib/types/api/index.d.ts +5 -4
  403. package/lib/types/api/index.d.ts.map +1 -1
  404. package/lib/types/api/model/AddressOptions.d.ts +1 -0
  405. package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
  406. package/lib/types/api/model/ClearSigningType.d.ts +5 -0
  407. package/lib/types/api/model/ClearSigningType.d.ts.map +1 -0
  408. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  409. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  410. package/lib/types/api/model/TransactionOptions.d.ts +1 -0
  411. package/lib/types/api/model/TransactionOptions.d.ts.map +1 -1
  412. package/lib/types/api/model/TypedDataOptions.d.ts +4 -0
  413. package/lib/types/api/model/TypedDataOptions.d.ts.map +1 -0
  414. package/lib/types/internal/DefaultSignerEth.d.ts +7 -3
  415. package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
  416. package/lib/types/internal/address/di/addressModule.d.ts.map +1 -1
  417. package/lib/types/internal/address/use-case/GetAddressUseCase.d.ts.map +1 -1
  418. package/lib/types/internal/app-binder/EthAppBinder.d.ts +13 -3
  419. package/lib/types/internal/app-binder/EthAppBinder.d.ts.map +1 -1
  420. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +10 -0
  421. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -0
  422. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts +2 -0
  423. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts.map +1 -0
  424. package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts +28 -0
  425. package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts.map +1 -0
  426. package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.d.ts +2 -0
  427. package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.d.ts.map +1 -0
  428. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts +20 -0
  429. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts.map +1 -0
  430. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.test.d.ts +2 -0
  431. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.test.d.ts.map +1 -0
  432. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts +17 -0
  433. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts.map +1 -0
  434. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts +2 -0
  435. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts.map +1 -0
  436. package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts +8 -1
  437. package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts.map +1 -1
  438. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts +29 -0
  439. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts.map +1 -0
  440. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.test.d.ts +2 -0
  441. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.test.d.ts.map +1 -0
  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.map +1 -1
  447. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +18 -30
  448. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
  449. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +8 -2
  450. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
  451. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
  452. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  453. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  454. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
  455. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  456. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  457. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +10 -5
  458. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
  459. package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts +20 -0
  460. package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts.map +1 -0
  461. package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts +2 -0
  462. package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts.map +1 -0
  463. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +15 -14
  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 +29 -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/PreBuildContextTask.d.ts +17 -0
  470. package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts.map +1 -0
  471. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +7 -4
  472. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
  473. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +28 -21
  474. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +1 -1
  475. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts +2 -2
  476. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts.map +1 -1
  477. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.d.ts +18 -0
  478. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.d.ts.map +1 -0
  479. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.d.ts +2 -0
  480. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.d.ts.map +1 -0
  481. package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts +2 -1
  482. package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts.map +1 -1
  483. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts +12 -0
  484. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts.map +1 -0
  485. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts +2 -0
  486. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts.map +1 -0
  487. package/lib/types/internal/di.d.ts.map +1 -1
  488. package/lib/types/internal/eip7702/di/eip7702Module.d.ts +3 -0
  489. package/lib/types/internal/eip7702/di/eip7702Module.d.ts.map +1 -0
  490. package/lib/types/internal/eip7702/di/eip7702Module.test.d.ts +2 -0
  491. package/lib/types/internal/eip7702/di/eip7702Module.test.d.ts.map +1 -0
  492. package/lib/types/internal/eip7702/di/eip7702Types.d.ts +4 -0
  493. package/lib/types/internal/eip7702/di/eip7702Types.d.ts.map +1 -0
  494. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.d.ts +8 -0
  495. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.d.ts.map +1 -0
  496. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.d.ts +2 -0
  497. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.d.ts.map +1 -0
  498. package/lib/types/internal/message/di/messageModule.d.ts.map +1 -1
  499. package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts +2 -1
  500. package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts.map +1 -1
  501. package/lib/types/internal/shared/utils/ApplicationChecker.d.ts +13 -0
  502. package/lib/types/internal/shared/utils/ApplicationChecker.d.ts.map +1 -0
  503. package/lib/types/internal/shared/utils/ApplicationChecker.test.d.ts +2 -0
  504. package/lib/types/internal/shared/utils/ApplicationChecker.test.d.ts.map +1 -0
  505. package/lib/types/internal/transaction/di/transactionModule.d.ts.map +1 -1
  506. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.d.ts +8 -0
  507. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.d.ts.map +1 -0
  508. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.test.d.ts +2 -0
  509. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.test.d.ts.map +1 -0
  510. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts +4 -7
  511. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts.map +1 -1
  512. package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts +2 -2
  513. package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts.map +1 -1
  514. package/lib/types/internal/typed-data/di/typedDataModule.d.ts.map +1 -1
  515. package/lib/types/internal/typed-data/service/TypedDataParser.d.ts +4 -2
  516. package/lib/types/internal/typed-data/service/TypedDataParser.d.ts.map +1 -1
  517. package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts +2 -1
  518. package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts.map +1 -1
  519. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  520. package/package.json +23 -24
  521. package/lib/cjs/internal/app-binder/constant/plugins.js +0 -2
  522. package/lib/cjs/internal/app-binder/constant/plugins.js.map +0 -7
  523. package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js +0 -2
  524. package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js.map +0 -7
  525. package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js +0 -2
  526. package/lib/cjs/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js.map +0 -7
  527. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +0 -2
  528. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +0 -7
  529. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +0 -2
  530. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +0 -7
  531. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js +0 -2
  532. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +0 -7
  533. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +0 -2
  534. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +0 -7
  535. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js +0 -2
  536. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +0 -7
  537. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +0 -2
  538. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +0 -7
  539. package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js +0 -2
  540. package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js.map +0 -7
  541. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js +0 -2
  542. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js.map +0 -7
  543. package/lib/esm/internal/app-binder/constant/plugins.js +0 -2
  544. package/lib/esm/internal/app-binder/constant/plugins.js.map +0 -7
  545. package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js +0 -2
  546. package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.js.map +0 -7
  547. package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js +0 -2
  548. package/lib/esm/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.js.map +0 -7
  549. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +0 -2
  550. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +0 -7
  551. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +0 -2
  552. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +0 -7
  553. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js +0 -2
  554. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +0 -7
  555. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +0 -2
  556. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +0 -7
  557. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js +0 -2
  558. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +0 -7
  559. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +0 -2
  560. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +0 -7
  561. package/lib/esm/internal/transaction/service/mapper/TransactionMapper.js +0 -1
  562. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js +0 -2
  563. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js.map +0 -7
  564. package/lib/types/internal/app-binder/constant/plugins.d.ts +0 -2
  565. package/lib/types/internal/app-binder/constant/plugins.d.ts.map +0 -1
  566. package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.d.ts +0 -18
  567. package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.d.ts.map +0 -1
  568. package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.d.ts +0 -2
  569. package/lib/types/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.d.ts.map +0 -1
  570. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts +0 -73
  571. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts.map +0 -1
  572. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.d.ts +0 -2
  573. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.d.ts.map +0 -1
  574. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts +0 -26
  575. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts.map +0 -1
  576. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.test.d.ts +0 -2
  577. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.test.d.ts.map +0 -1
  578. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts +0 -7
  579. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts.map +0 -1
  580. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts +0 -2
  581. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts.map +0 -1
  582. package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts +0 -6
  583. package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts.map +0 -1
  584. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.test.d.ts +0 -2
  585. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.test.d.ts.map +0 -1
  586. /package/lib/esm/{internal/transaction/service/mapper/TransactionMapper.js.map → api/app-binder/GetConfigCommandTypes.js.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/device-signer-kit-ethereum",
3
- "version": "0.0.0-signer-eth-20250122093657",
3
+ "version": "0.0.0-transaction-unfunded-20250917151052",
4
4
  "private": false,
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
@@ -19,44 +19,43 @@
19
19
  "./lib"
20
20
  ],
21
21
  "dependencies": {
22
- "ethers": "6.13.4",
23
- "inversify": "^6.2.1",
24
- "inversify-logger-middleware": "^3.1.0",
25
- "purify-ts": "^2.1.0",
26
- "reflect-metadata": "^0.2.2",
27
- "semver": "^7.6.3",
28
- "xstate": "^5.19.2",
29
- "@ledgerhq/signer-utils": "0.0.0-signer-eth-20250122093657"
22
+ "ethers": "6.14.1",
23
+ "inversify": "7.5.1",
24
+ "purify-ts": "2.1.0",
25
+ "reflect-metadata": "0.2.2",
26
+ "semver": "7.7.2",
27
+ "xstate": "5.19.2",
28
+ "@ledgerhq/signer-utils": "0.0.0-transaction-unfunded-20250917151052"
30
29
  },
31
30
  "devDependencies": {
32
- "@types/semver": "^7.5.8",
33
- "rxjs": "^7.8.1",
34
- "ts-node": "^10.9.2",
35
- "@ledgerhq/context-module": "0.0.0-signer-eth-20250122093657",
36
- "@ledgerhq/device-management-kit": "0.0.0-signer-eth-20250122093657",
31
+ "@types/semver": "7.7.0",
32
+ "rxjs": "7.8.2",
33
+ "ts-node": "10.9.2",
34
+ "@ledgerhq/context-module": "0.0.0-transaction-unfunded-20250917151052",
35
+ "@ledgerhq/device-management-kit": "0.0.0-transaction-unfunded-20250917151052",
36
+ "@ledgerhq/ldmk-tool": "0.0.1",
37
+ "@ledgerhq/prettier-config-dsdk": "0.0.2",
37
38
  "@ledgerhq/eslint-config-dsdk": "0.0.2",
38
- "@ledgerhq/esbuild-tools": "0.0.2",
39
- "@ledgerhq/jest-config-dsdk": "1.0.1",
40
39
  "@ledgerhq/tsconfig-dsdk": "1.0.1",
41
- "@ledgerhq/prettier-config-dsdk": "0.0.2"
40
+ "@ledgerhq/vitest-config-dmk": "0.0.0"
42
41
  },
43
42
  "peerDependencies": {
44
- "@ledgerhq/context-module": "0.0.0-signer-eth-20250122093657",
45
- "@ledgerhq/device-management-kit": "0.0.0-signer-eth-20250122093657"
43
+ "@ledgerhq/context-module": "0.0.0-transaction-unfunded-20250917151052",
44
+ "@ledgerhq/device-management-kit": "0.0.0-transaction-unfunded-20250917151052"
46
45
  },
47
46
  "scripts": {
48
47
  "prebuild": "rimraf lib",
49
- "build": "pnpm lmdk-build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
48
+ "build": "pnpm ldmk-tool build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
50
49
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
51
- "watch:builds": "pnpm lmdk-watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
50
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
52
51
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
53
52
  "lint": "eslint",
54
53
  "lint:fix": "pnpm lint --fix",
55
54
  "prettier": "prettier . --check",
56
55
  "prettier:fix": "prettier . --write",
57
56
  "typecheck": "tsc --noEmit",
58
- "test": "jest",
59
- "test:watch": "pnpm test -- --watch",
60
- "test:coverage": "pnpm test -- --coverage"
57
+ "test": "vitest run",
58
+ "test:watch": "vitest",
59
+ "test:coverage": "vitest run --coverage"
61
60
  }
62
61
  }
@@ -1,2 +0,0 @@
1
- "use strict";var r=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(a,e)=>{for(var o in e)r(a,o,{get:e[o],enumerable:!0})},S=(a,e,o,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of s(e))!l.call(a,i)&&i!==o&&r(a,i,{get:()=>e[i],enumerable:!(t=n(e,i))||t.enumerable});return a};var p=a=>S(r({},"__esModule",{value:!0}),a);var A={};c(A,{ETHEREUM_PLUGINS:()=>k});module.exports=p(A);const k=["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"];0&&(module.exports={ETHEREUM_PLUGINS});
2
- //# sourceMappingURL=plugins.js.map
@@ -1,7 +0,0 @@
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];\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,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,OACF",
6
- "names": ["plugins_exports", "__export", "ETHEREUM_PLUGINS", "__toCommonJS"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var M=(s,t)=>{for(var i in t)p(s,i,{get:t[i],enumerable:!0})},m=(s,t,i,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of c(t))!S.call(s,a)&&a!==i&&p(s,a,{get:()=>t[a],enumerable:!(e=u(t,a))||e.enumerable});return s};var A=s=>m(p({},"__esModule",{value:!0}),s);var d={};M(d,{SignPersonalMessageDeviceAction:()=>P});module.exports=A(d);var n=require("@ledgerhq/device-management-kit"),o=require("purify-ts"),r=require("xstate"),g=require("../../../app-binder/constant/plugins"),l=require("../../../app-binder/task/SendSignPersonalMessageTask");class P extends n.XStateDeviceAction{makeStateMachine(t){const{signPersonalMessage:i}=this.extractDependencies(t);return(0,r.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new n.OpenAppDeviceAction({input:{appName:"Ethereum"}}).makeStateMachine(t),signPersonalMessage:(0,r.fromPromise)(i)},guards:{noInternalError:({context:e})=>e._internalState.error===null},actions:{assignErrorFromEvent:(0,r.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"SignPersonalMessageDeviceAction",initial:"OpenAppDeviceAction",context:({input:e})=>({input:e,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},_internalState:{error:null,signature:null}}),states:{OpenAppDeviceAction:{exit:(0,r.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Ethereum",compatibleAppNames:g.ETHEREUM_PLUGINS},src:"openAppStateMachine",onSnapshot:{actions:(0,r.assign)({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{actions:(0,r.assign)({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:a=>({...e.context._internalState,error:a})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"SignPersonalMessage",guard:"noInternalError"},"Error"]},SignPersonalMessage:{entry:(0,r.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.SignPersonalMessage}}),exit:(0,r.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}}),invoke:{id:"signPersonalMessage",src:"signPersonalMessage",input:({context:e})=>({derivationPath:e.input.derivationPath,message:e.input.message}),onDone:{target:"SignPersonalMessageResultCheck",actions:[(0,r.assign)({_internalState:({event:e,context:a})=>(0,n.isSuccessCommandResult)(e.output)?{...a._internalState,signature:e.output.data}:{...a._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignPersonalMessageResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.signature?(0,o.Right)(e._internalState.signature):(0,o.Left)(e._internalState.error||new n.UnknownDAError("No error in final state"))})}extractDependencies(t){return{signPersonalMessage:async e=>new l.SendSignPersonalMessageTask(t,e.input).run()}}}0&&(module.exports={SignPersonalMessageDeviceAction});
2
- //# sourceMappingURL=SignPersonalMessageDeviceAction.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.ts"],
4
- "sourcesContent": ["import {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAInput,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAInternalState,\n type SignPersonalMessageDAOutput,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { ETHEREUM_PLUGINS } from \"@internal/app-binder/constant/plugins\";\nimport { SendSignPersonalMessageTask } from \"@internal/app-binder/task/SendSignPersonalMessageTask\";\n\nexport type MachineDependencies = {\n readonly signPersonalMessage: (arg0: {\n input: {\n derivationPath: string;\n message: string | Uint8Array;\n };\n }) => Promise<CommandResult<Signature, EthErrorCodes>>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class SignPersonalMessageDeviceAction extends XStateDeviceAction<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAInput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue,\n SignPersonalMessageDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAInput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue,\n SignPersonalMessageDAInternalState\n > {\n type types = StateMachineTypes<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAInput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue,\n SignPersonalMessageDAInternalState\n >;\n\n const { signPersonalMessage } = this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: \"Ethereum\" },\n }).makeStateMachine(internalApi),\n signPersonalMessage: fromPromise(signPersonalMessage),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AFMAnWA9hgIYA2AsnLMTACJgBuqAxmAILMAuqRAdAPIAHMBjaDB9Jqw7ciAYghEwvVBgYEA1soLDR45J2Kcw5YswAWqsAG0ADAF1EoQQVipZGJyAAeiACwAzADsvACcABwAjKGRtuG2AGyRSX4ANCAAnoiRAEwArLy2uX6RQUGRpeHhfgC+NelomDj4RGSUsNR0jCzsXDwYvADC5mDMGkIiYhLd0n1EAEpwAK6knHJ2jkggLm4eXr4IoRG8eTlFOaWhQX45QaHpWQiRN4UBfu8JeaE3obY5OXUGuhsHhCCQKFQaGBJD0ZP0hiMxhM9NMpL0PItYCs1tZIptnK53P19ogjuETmdcpdrrd7pl-M8wnkgvkgvFbH48n4EkFASBGiCWuD2p1oTN0fCBc0wW1ITAFEoVGpNMo3E1Qa0IR0oRsvDsiUQSU88tVeOEktEEuE8m8cjcHqScicgokTXk8rZygFQgD6vzgdLNSKoTDZh5eFKNcK5WA5HhcARcLxBKQjAAzRMAW14asFMq1ot1W31ey2B0iJr8ZotoStNpu9vpCDtoTNHr8PoizyKvL9kaFsu1XTRcL4-fzwZgmOxw1GGnWDj1hNLoAOFwCBWC5u5RySEQdT1sra+OSt1wCAQuzICfPHQZjoYlY4DUcHounq1nY3WeKXu2JZaIOum5sgkO61tE4QHhWBS2HkCT-G8R5wc8N58hgBAQHAXh3tGQ5iiOcyeMWy4AauiAALQJAeVGFLY9EMYxDG9kC6oDgWIbiqOAzIlMj7cX+BrEeRCCNo8sS2CcRz-B6zIsnBaGsXm974fxREInOvHiGpGLLKsgkrj4iBnrwFwVgkCHfEeCQBNB3K8IEpxBO6ySep8in+mxE4Plx6m4W+UIGWRRlPJEVRmncOTmhyLI2QeUS8GFQRvPBXZRLWt4vuxk4EbCflZd5+EfpwX4aEFhqAU84RRYUpyXmBATJBeQTQZEARhKEG5Ne69GUplXkqaKOmSkszCsB05XCSFOSXgUyVshUdoJLYF7QYkvAXkUER3H45q1qE-XKXhQ2+eGACiuAJrgk1GjN+S8PNUTFMtq1Nrckl-O6wTct6KF5HUdRAA */\n id: \"SignPersonalMessageDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n signature: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: {\n appName: \"Ethereum\",\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignPersonalMessageDAInternalState>(\n {\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n );\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"SignPersonalMessage\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n SignPersonalMessage: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signPersonalMessage\",\n src: \"signPersonalMessage\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n message: context.input.message,\n }),\n onDone: {\n target: \"SignPersonalMessageResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signature: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignPersonalMessageResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.signature\n ? Right(context._internalState.signature)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const signPersonalMessage = async (arg0: {\n input: {\n derivationPath: string;\n message: string | Uint8Array;\n };\n }) => new SendSignPersonalMessageTask(internalApi, arg0.input).run();\n\n return {\n signPersonalMessage,\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["SignPersonalMessageDeviceAction_exports", "__export", "SignPersonalMessageDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_plugins", "import_SendSignPersonalMessageTask", "internalApi", "signPersonalMessage", "context", "_", "input", "error", "event", "arg0"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),l=require("@ledgerhq/device-management-kit"),u=require("@ledgerhq/device-management-kit"),s=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),i=require("../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock"),o=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),c=require("./SignPersonalMessageDeviceAction");jest.mock("@ledgerhq/device-management-kit",()=>({...jest.requireActual("@ledgerhq/device-management-kit"),OpenAppDeviceAction:jest.fn(()=>({makeStateMachine:jest.fn()}))}));describe("SignPersonalMessageDeviceAction",()=>{const a=jest.fn();function d(){return{signPersonalMessage:a}}beforeEach(()=>{jest.resetAllMocks()}),describe("Success case",()=>{it("should call external dependencies with the correct parameters",r=>{(0,i.setupOpenAppDAMock)();const t=new c.SignPersonalMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),a.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}));const n=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignPersonalMessage},status:e.DeviceActionStatus.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.DeviceActionStatus.Completed}],{observable:p}=(0,o.testDeviceActionStates)(t,n,(0,s.makeDeviceActionInternalApiMock)(),r);p.subscribe({complete:()=>{expect(a).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}}))}})})}),describe("error cases",()=>{it("Error if the open app fails",r=>{(0,i.setupOpenAppDAMock)(new e.UnknownDeviceExchangeError("Mocked error"));const t=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}],n=new c.SignPersonalMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});(0,o.testDeviceActionStates)(n,t,(0,s.makeDeviceActionInternalApiMock)(),r)}),it("Error if the signPersonalMessage fails",r=>{(0,i.setupOpenAppDAMock)();const t=new c.SignPersonalMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),a.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignPersonalMessage}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,o.testDeviceActionStates)(t,n,(0,s.makeDeviceActionInternalApiMock)(),r)}),it("Error if the signPersonalMessage throws an exception",r=>{(0,i.setupOpenAppDAMock)();const t=new c.SignPersonalMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),a.mockRejectedValueOnce(new u.InvalidStatusWordError("Mocked error"));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignPersonalMessage}},{status:e.DeviceActionStatus.Error,error:new u.InvalidStatusWordError("Mocked error")}];(0,o.testDeviceActionStates)(t,n,(0,s.makeDeviceActionInternalApiMock)(),r)}),it("Error if signPersonalMessage return an error",r=>{(0,i.setupOpenAppDAMock)();const t=new c.SignPersonalMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),a.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.UnknownDeviceExchangeError("Mocked error")}));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignPersonalMessage}},{status:e.DeviceActionStatus.Error,error:new e.UnknownDeviceExchangeError("Mocked error")}];(0,o.testDeviceActionStates)(t,n,(0,s.makeDeviceActionInternalApiMock)(),r)}),it("Return a Left if the final state has no signature",r=>{(0,i.setupOpenAppDAMock)();const t=new c.SignPersonalMessageDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",message:"Hello world"}});jest.spyOn(t,"extractDependencies").mockReturnValue(d()),a.mockResolvedValueOnce((0,e.CommandResultFactory)({data:void 0}));const n=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignPersonalMessage}},{status:e.DeviceActionStatus.Error,error:new l.UnknownDAError("No error in final state")}];(0,o.testDeviceActionStates)(t,n,(0,s.makeDeviceActionInternalApiMock)(),r)})})});
2
- //# sourceMappingURL=SignPersonalMessageDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/app-binder/device-action/SignPersonalMessage/SignPersonalMessageDeviceAction.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n DeviceActionStatus,\n UnknownDeviceExchangeError,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { UnknownDAError } from \"@ledgerhq/device-management-kit\";\nimport { InvalidStatusWordError } from \"@ledgerhq/device-management-kit\";\n\nimport { type SignPersonalMessageDAState } from \"@api/index\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\n\nimport { SignPersonalMessageDeviceAction } from \"./SignPersonalMessageDeviceAction\";\n\njest.mock(\n \"@ledgerhq/device-management-kit\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n () => ({\n ...jest.requireActual(\"@ledgerhq/device-management-kit\"),\n OpenAppDeviceAction: jest.fn(() => ({\n makeStateMachine: jest.fn(),\n })),\n }),\n);\n\ndescribe(\"SignPersonalMessageDeviceAction\", () => {\n const signPersonalMessageMock = jest.fn();\n\n function extractDependenciesMock() {\n return {\n signPersonalMessage: signPersonalMessageMock,\n };\n }\n\n beforeEach(() => {\n jest.resetAllMocks();\n });\n\n describe(\"Success case\", () => {\n it(\"should call external dependencies with the correct parameters\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\n },\n }),\n );\n\n // Expected intermediate values for the following state sequence:\n // Initial -> OpenApp -> BuildContext -> ProvideContext -> SignTypedData\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n v: 0x1c,\n r: \"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788\",\n s: \"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513\",\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n const { observable } = testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n\n // Verify mocks calls parameters\n observable.subscribe({\n complete: () => {\n expect(signPersonalMessageMock).toHaveBeenCalledWith(\n expect.objectContaining({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n }),\n );\n },\n });\n });\n });\n\n describe(\"error cases\", () => {\n it(\"Error if the open app fails\", (done) => {\n setupOpenAppDAMock(new UnknownDeviceExchangeError(\"Mocked error\"));\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if the signPersonalMessage fails\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if the signPersonalMessage throws an exception\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockRejectedValueOnce(\n new InvalidStatusWordError(\"Mocked error\"),\n );\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Error if signPersonalMessage return an error\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n\n it(\"Return a Left if the final state has no signature\", (done) => {\n setupOpenAppDAMock();\n\n const deviceAction = new SignPersonalMessageDeviceAction({\n input: {\n derivationPath: \"44'/60'/0'/0/0\",\n message: \"Hello world\",\n },\n });\n\n // Mock the dependencies to return some sample data\n jest\n .spyOn(deviceAction, \"extractDependencies\")\n .mockReturnValue(extractDependenciesMock());\n signPersonalMessageMock.mockResolvedValueOnce(\n CommandResultFactory({\n data: undefined,\n }),\n );\n\n const expectedStates: Array<SignPersonalMessageDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.SignPersonalMessage,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"No error in final state\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n done,\n );\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_device_management_kit", "import_makeInternalApi", "import_setupOpenAppDAMock", "import_testDeviceActionStates", "import_SignPersonalMessageDeviceAction", "signPersonalMessageMock", "extractDependenciesMock", "done", "deviceAction", "expectedStates", "observable"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var C=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var y=(s,e)=>{for(var t in e)C(s,t,{get:e[t],enumerable:!0})},E=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of v(e))!x.call(s,i)&&i!==t&&C(s,i,{get:()=>e[i],enumerable:!(r=h(e,i))||r.enumerable});return s};var g=s=>E(C({},"__esModule",{value:!0}),s);var P={};y(P,{ProvideTransactionFieldDescriptionTask:()=>R});module.exports=g(P);var o=require("@ledgerhq/context-module"),n=require("@ledgerhq/device-management-kit"),a=require("purify-ts"),m=require("../../app-binder/command/GetChallengeCommand"),u=require("../../app-binder/command/ProvideEnumCommand"),p=require("../../app-binder/command/ProvideNFTInformationCommand"),l=require("../../app-binder/command/ProvideTokenInformationCommand"),T=require("../../app-binder/command/ProvideTransactionFieldDescriptionCommand"),f=require("../../app-binder/command/ProvideTrustedNameCommand"),c=require("./SendPayloadInChunksTask");class R{constructor(e,t){this.api=e;this.args=t}async run(){const{field:e}=this.args;if(e.reference!==void 0&&"value"in e.reference&&e.reference.value!==void 0&&await this.getAndProvideContext({type:e.reference.type,chainId:this.args.chainId,address:e.reference.value}),e.reference!==void 0&&e.reference.valuePath!==void 0){const r=this.args.transactionParser.extractValue(this.args.serializedTransaction,e.reference.valuePath);if(r.isRight())for(const i of r.extract()){const d=await this.provideContextReference(e.reference,i);if(d.isJust())return d}}const t=await this.provideContext({...e});return(0,n.isSuccessCommandResult)(t)?a.Nothing:(0,a.Just)(t)}async provideContextReference(e,t){if(e.type===o.ClearSignContextType.ENUM)return this.provideEnumContextReference(e,t);const r=(0,n.bufferToHexaString)(t.slice(Math.max(0,t.length-20)));return e.type===o.ClearSignContextType.TRUSTED_NAME?this.provideTustedNameContextReference(e,r):this.getAndProvideContext({type:e.type,chainId:this.args.chainId,address:r})}async provideEnumContextReference(e,t){const r=t[t.length-1];if(!r)return a.Nothing;const i=this.args.transactionEnums.find(d=>d.value===r&&d.id===e.id);if(i){const d=await this.provideContext(i);if(!(0,n.isSuccessCommandResult)(d))return(0,a.Just)(d)}return a.Nothing}async provideTustedNameContextReference(e,t){const r=await this.api.sendCommand(new m.GetChallengeCommand);return(0,n.isSuccessCommandResult)(r)?this.getAndProvideContext({type:e.type,chainId:this.args.chainId,address:t,challenge:r.data.challenge,types:e.types,sources:e.sources}):(0,a.Just)(r)}async getAndProvideContext(e){const t=await this.args.contextModule.getContext(e);if(t.type!==o.ClearSignContextType.ERROR){const r=await this.provideContext(t);if(!(0,n.isSuccessCommandResult)(r))return(0,a.Just)(r)}return a.Nothing}async provideContext({type:e,payload:t}){switch(e){case o.ClearSignContextType.NFT:return await this.api.sendCommand(new p.ProvideNFTInformationCommand({payload:t}));case o.ClearSignContextType.TOKEN:return await this.api.sendCommand(new l.ProvideTokenInformationCommand({payload:t}));case o.ClearSignContextType.TRUSTED_NAME:return new c.SendPayloadInChunksTask(this.api,{payload:t,commandFactory:r=>new f.ProvideTrustedNameCommand({data:r.chunkedData,isFirstChunk:r.isFirstChunk})}).run();case o.ClearSignContextType.ENUM:return new c.SendPayloadInChunksTask(this.api,{payload:t,commandFactory:r=>new u.ProvideEnumCommand({data:r.chunkedData,isFirstChunk:r.isFirstChunk})}).run();case o.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION:return new c.SendPayloadInChunksTask(this.api,{payload:t,commandFactory:r=>new T.ProvideTransactionFieldDescriptionCommand({data:r.chunkedData,isFirstChunk:r.isFirstChunk})}).run();case o.ClearSignContextType.TRANSACTION_INFO:case o.ClearSignContextType.PLUGIN:case o.ClearSignContextType.EXTERNAL_PLUGIN:return(0,n.CommandResultFactory)({error:new n.InvalidStatusWordError(`The context type [${e}] is not valid as a transaction field or metadata`)});default:{const r=e;return(0,n.CommandResultFactory)({error:new n.InvalidStatusWordError(`The context type [${r}] is not covered`)})}}}}0&&(module.exports={ProvideTransactionFieldDescriptionTask});
2
- //# sourceMappingURL=ProvideTransactionFieldDescriptionTask.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.ts"],
4
- "sourcesContent": ["import {\n type ClearSignContextReference,\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n ClearSignContextType,\n type ContextModule,\n type TransactionFieldContext,\n} from \"@ledgerhq/context-module\";\nimport {\n bufferToHexaString,\n type CommandErrorResult,\n type CommandResult,\n CommandResultFactory,\n type HexaString,\n type InternalApi,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, type Maybe, Nothing } from \"purify-ts\";\n\nimport { GetChallengeCommand } from \"@internal/app-binder/command/GetChallengeCommand\";\nimport { ProvideEnumCommand } from \"@internal/app-binder/command/ProvideEnumCommand\";\nimport { ProvideNFTInformationCommand } from \"@internal/app-binder/command/ProvideNFTInformationCommand\";\nimport {\n ProvideTokenInformationCommand,\n type ProvideTokenInformationCommandResponse,\n} from \"@internal/app-binder/command/ProvideTokenInformationCommand\";\nimport { ProvideTransactionFieldDescriptionCommand } from \"@internal/app-binder/command/ProvideTransactionFieldDescriptionCommand\";\nimport { ProvideTrustedNameCommand } from \"@internal/app-binder/command/ProvideTrustedNameCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { type ProvideTransactionGenericContextTaskErrorCodes } from \"./ProvideTransactionGenericContextTask\";\nimport { SendPayloadInChunksTask } from \"./SendPayloadInChunksTask\";\n\nexport type ProvideTransactionFieldDescriptionTaskArgs = {\n field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionParser: TransactionParserService;\n contextModule: ContextModule;\n transactionEnums: ClearSignContextSuccess<ClearSignContextType.ENUM>[];\n};\n\nexport type ProvideTransactionFieldDescriptionTaskErrorCodes =\n void | EthErrorCodes;\n\n/**\n * This task is responsible for providing the transaction context to the device.\n *\n */\nexport class ProvideTransactionFieldDescriptionTask {\n constructor(\n private api: InternalApi,\n private args: ProvideTransactionFieldDescriptionTaskArgs,\n ) {}\n\n async run(): Promise<\n Maybe<\n CommandErrorResult<\n ProvideTransactionFieldDescriptionTaskErrorCodes | EthErrorCodes\n >\n >\n > {\n const { field } = this.args;\n\n // if the reference is a string, it means it is a direct address\n // and we don't need to extract the value from the transaction\n // as it is already provided in the reference\n if (\n field.reference !== undefined &&\n \"value\" in field.reference &&\n field.reference.value !== undefined\n ) {\n await this.getAndProvideContext({\n type: field.reference.type,\n chainId: this.args.chainId,\n address: field.reference.value,\n });\n }\n\n // if the reference is a path, it means we need to extract the value\n // from the transaction and provide it to the device\n if (\n field.reference !== undefined &&\n field.reference.valuePath !== undefined\n ) {\n // iterate on each reference and provide the context\n const referenceValues = this.args.transactionParser.extractValue(\n this.args.serializedTransaction,\n field.reference.valuePath,\n );\n\n if (referenceValues.isRight()) {\n for (const value of referenceValues.extract()) {\n const provideReferenceResult = await this.provideContextReference(\n field.reference,\n value,\n );\n if (provideReferenceResult.isJust()) {\n return provideReferenceResult;\n }\n }\n }\n }\n\n const transactionFieldResult = await this.provideContext({ ...field });\n if (!isSuccessCommandResult(transactionFieldResult)) {\n return Just(transactionFieldResult);\n }\n\n return Nothing;\n }\n\n /**\n * This method will provide the context reference to the device.\n *\n * @param {ClearSignContextReference} reference The reference to provide.\n * @param {Uint8Array} value The value of the reference.\n * @returns A promise that resolves when the context is provided.\n */\n private async provideContextReference(\n reference: ClearSignContextReference,\n value: Uint8Array,\n ): Promise<\n Maybe<\n CommandErrorResult<\n ProvideTransactionGenericContextTaskErrorCodes | EthErrorCodes\n >\n >\n > {\n if (reference.type === ClearSignContextType.ENUM) {\n return this.provideEnumContextReference(reference, value);\n }\n\n const address = bufferToHexaString(\n value.slice(Math.max(0, value.length - 20)),\n );\n\n if (reference.type === ClearSignContextType.TRUSTED_NAME) {\n return this.provideTustedNameContextReference(reference, address);\n }\n\n return this.getAndProvideContext({\n type: reference.type,\n chainId: this.args.chainId,\n address,\n });\n }\n\n /**\n * This method will provide the enum context reference to the device\n * if the enum value is found in the transaction enums mapping.\n *\n * Note: We do not need to call the context module to get the enum context\n * as it is already provided with transactionEnums mapping.\n *\n * @param {ClearSignContextReference<ClearSignContextType.ENUM>} reference The enum reference to provide.\n * @param {Uint8Array} value The value of the enum.\n * @returns A promise that resolves when the context is provided.\n */\n private async provideEnumContextReference(\n reference: ClearSignContextReference<ClearSignContextType.ENUM>,\n value: Uint8Array,\n ): Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n > {\n const enumValue = value[value.length - 1];\n if (!enumValue) return Nothing;\n\n const enumDescriptor = this.args.transactionEnums.find(\n (enumContext) =>\n enumContext.value === enumValue && enumContext.id === reference.id,\n );\n if (enumDescriptor) {\n const provideEnumResult = await this.provideContext(enumDescriptor);\n if (!isSuccessCommandResult(provideEnumResult)) {\n return Just(provideEnumResult);\n }\n }\n return Nothing;\n }\n\n /**\n * This method will provide the trusted name context reference to the device.\n *\n * Note: We need to call the context module to get the trusted name context\n * with a challenge to ensure the trusted name is valid.\n *\n * @param {ClearSignContextReference<ClearSignContextType.TRUSTED_NAME>} reference The trusted name reference to provide.\n * @param {HexaString} address The address of the trusted name.\n * @returns A promise that resolves when the context is provided.\n */\n private async provideTustedNameContextReference(\n reference: ClearSignContextReference<ClearSignContextType.TRUSTED_NAME>,\n address: HexaString,\n ): Promise<\n Maybe<\n CommandErrorResult<\n ProvideTransactionGenericContextTaskErrorCodes | EthErrorCodes\n >\n >\n > {\n const getChallengeResult = await this.api.sendCommand(\n new GetChallengeCommand(),\n );\n if (!isSuccessCommandResult(getChallengeResult)) {\n return Just(getChallengeResult);\n }\n\n return this.getAndProvideContext({\n type: reference.type,\n chainId: this.args.chainId,\n address,\n challenge: getChallengeResult.data.challenge,\n types: reference.types,\n sources: reference.sources,\n });\n }\n\n /**\n * This method will get the context from the context module\n * and provide it to the device.\n *\n * @param {TransactionFieldContext} field The field to provide.\n * @returns A promise that resolves when the context is provided.\n */\n private async getAndProvideContext(\n field: TransactionFieldContext,\n ): Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n > {\n const context = await this.args.contextModule.getContext(field);\n if (context.type !== ClearSignContextType.ERROR) {\n const provideReferenceResult = await this.provideContext(context);\n if (!isSuccessCommandResult(provideReferenceResult)) {\n return Just(provideReferenceResult);\n }\n }\n return Nothing;\n }\n\n /**\n * This method will send a command according to the clear sign context type\n * and return the command result if only one command is sent,\n * otherwise it will return the result of the command.\n *\n * @param {ClearSignContextSuccess} context The clear sign context to provide.\n * @returns A promise that resolves when the command return a command response.\n */\n private async provideContext({\n type,\n payload,\n }: ClearSignContextSuccess): Promise<\n CommandResult<\n void | ProvideTokenInformationCommandResponse,\n ProvideTransactionGenericContextTaskErrorCodes\n >\n > {\n switch (type) {\n case ClearSignContextType.NFT:\n return await this.api.sendCommand(\n new ProvideNFTInformationCommand({ payload }),\n );\n case ClearSignContextType.TOKEN:\n return await this.api.sendCommand(\n new ProvideTokenInformationCommand({ payload }),\n );\n case ClearSignContextType.TRUSTED_NAME:\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideTrustedNameCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n case ClearSignContextType.ENUM:\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideEnumCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n case ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION:\n return new SendPayloadInChunksTask(this.api, {\n payload,\n commandFactory: (args) =>\n new ProvideTransactionFieldDescriptionCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n case ClearSignContextType.TRANSACTION_INFO:\n case ClearSignContextType.PLUGIN:\n case ClearSignContextType.EXTERNAL_PLUGIN:\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [${type}] is not valid as a transaction field or metadata`,\n ),\n });\n default: {\n const uncoveredType: never = type;\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [${uncoveredType}] is not covered`,\n ),\n });\n }\n }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["ProvideTransactionFieldDescriptionTask_exports", "__export", "ProvideTransactionFieldDescriptionTask", "__toCommonJS", "import_context_module", "import_device_management_kit", "import_purify_ts", "import_GetChallengeCommand", "import_ProvideEnumCommand", "import_ProvideNFTInformationCommand", "import_ProvideTokenInformationCommand", "import_ProvideTransactionFieldDescriptionCommand", "import_ProvideTrustedNameCommand", "import_SendPayloadInChunksTask", "api", "args", "field", "referenceValues", "value", "provideReferenceResult", "transactionFieldResult", "reference", "address", "enumValue", "enumDescriptor", "enumContext", "provideEnumResult", "getChallengeResult", "context", "type", "payload", "uncoveredType"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("@ledgerhq/context-module"),n=require("@ledgerhq/device-management-kit"),l=require("purify-ts"),m=require("../../app-binder/command/GetChallengeCommand"),y=require("../../app-binder/command/ProvideEnumCommand"),C=require("../../app-binder/command/ProvideNFTInformationCommand"),T=require("../../app-binder/command/ProvideTokenInformationCommand"),x=require("../../app-binder/command/ProvideTransactionFieldDescriptionCommand"),u=require("../../app-binder/command/ProvideTrustedNameCommand"),i=require("./ProvideTransactionFieldDescriptionTask");describe("ProvideTransactionFieldDescriptionTask",()=>{const s={extractValue:jest.fn()},a={getContext:jest.fn()},t={sendCommand:jest.fn()};beforeEach(()=>{jest.clearAllMocks()}),describe("should call the right provide command",()=>{it.each([{type:e.ClearSignContextType.NFT,commandInstanceType:C.ProvideNFTInformationCommand},{type:e.ClearSignContextType.TOKEN,commandInstanceType:T.ProvideTokenInformationCommand},{type:e.ClearSignContextType.TRUSTED_NAME,commandInstanceType:u.ProvideTrustedNameCommand},{type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,commandInstanceType:x.ProvideTransactionFieldDescriptionCommand}])("when type is $type",async({type:r,commandInstanceType:o})=>{jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"}));const c={type:r,payload:"0x01020304"};await new i.ProvideTransactionFieldDescriptionTask(t,{field:c,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run(),expect(t.sendCommand.mock.calls[0][0]).toBeInstanceOf(o),expect(t.sendCommand).toHaveBeenCalledTimes(1)}),it("when type is transactionFieldDescription with a enum reference",async()=>{jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([1,2,3,4])]));const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.ENUM,valuePath:e.ContainerPath.VALUE,id:66}};await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[{id:66,value:1,type:e.ClearSignContextType.ENUM,payload:"0x060708"},{id:66,value:4,type:e.ClearSignContextType.ENUM,payload:"0x080706"}]}).run(),expect(t.sendCommand).toHaveBeenCalledTimes(2),expect(t.sendCommand.mock.calls[0][0]).toBeInstanceOf(y.ProvideEnumCommand),expect(t.sendCommand.mock.calls[0][0].args.data).toEqual(new Uint8Array([0,3,8,7,6])),expect(t.sendCommand.mock.calls[1][0]).toBeInstanceOf(x.ProvideTransactionFieldDescriptionCommand)})}),describe("should return nothing",()=>{it.each([e.ClearSignContextType.NFT,e.ClearSignContextType.TOKEN,e.ClearSignContextType.TRUSTED_NAME,e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION])("when type is %s with no reference",async r=>{const d={type:r,payload:"0x01020304"};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"}));const p=await new i.ProvideTransactionFieldDescriptionTask(t,{field:d,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(p).toEqual(l.Nothing)})}),describe("should provide a reference context",()=>{it.each([e.ClearSignContextType.NFT,e.ClearSignContextType.TOKEN])("when type is %s with a reference",async r=>{const o="0x01020304",d={type:r,payload:o,reference:{type:e.ClearSignContextType.TOKEN,valuePath:e.ContainerPath.VALUE}};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([1,2,3,4])])),jest.spyOn(a,"getContext").mockResolvedValueOnce({type:r,payload:o});const p=await new i.ProvideTransactionFieldDescriptionTask(t,{field:d,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(a.getContext).toHaveBeenCalledTimes(1),expect(a.getContext).toHaveBeenCalledWith({type:e.ClearSignContextType.TOKEN,chainId:1,address:"0x01020304"}),expect(p).toEqual(l.Nothing),expect(t.sendCommand).toHaveBeenCalledTimes(2)}),it("when type is trustes-name with a reference",async()=>{const r="0x01020304",o="0x05060708",d=new Uint8Array([17,34,51,68]),c="0x11223344",p={type:e.ClearSignContextType.TRUSTED_NAME,payload:r,reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:{challenge:66}})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([d])),jest.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.TRUSTED_NAME,payload:o});const E=await new i.ProvideTransactionFieldDescriptionTask(t,{field:p,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(a.getContext).toHaveBeenCalledTimes(1),expect(a.getContext).toHaveBeenCalledWith({type:e.ClearSignContextType.TRUSTED_NAME,chainId:1,address:c,types:["type"],sources:["source"],challenge:66}),expect(E).toEqual(l.Nothing),expect(t.sendCommand).toHaveBeenCalledTimes(3),expect(t.sendCommand).toHaveBeenNthCalledWith(1,new m.GetChallengeCommand),expect(t.sendCommand).toHaveBeenNthCalledWith(2,new u.ProvideTrustedNameCommand({data:new Uint8Array([0,4,5,6,7,8]),isFirstChunk:!0})),expect(t.sendCommand).toHaveBeenNthCalledWith(3,new u.ProvideTrustedNameCommand({data:new Uint8Array([0,4,1,2,3,4]),isFirstChunk:!0}))}),it("when type is token with a constant reference",async()=>{const o={type:e.ClearSignContextType.TOKEN,payload:"0x01020304",reference:{type:e.ClearSignContextType.TOKEN,value:"0x09080706"}};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.TOKEN,payload:"0x05060708"});const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(s.extractValue).not.toHaveBeenCalled(),expect(a.getContext).toHaveBeenCalledTimes(1),expect(a.getContext).toHaveBeenCalledWith({type:e.ClearSignContextType.TOKEN,chainId:1,address:"0x09080706"}),expect(c).toEqual(l.Nothing),expect(t.sendCommand).toHaveBeenCalledTimes(2)}),it("when type is a ntf with a constant reference",async()=>{const o={type:e.ClearSignContextType.NFT,payload:"0x01020304",reference:{type:e.ClearSignContextType.NFT,value:"0x09080706"}};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.NFT,payload:"0x05060708"});const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(s.extractValue).not.toHaveBeenCalled(),expect(a.getContext).toHaveBeenCalledTimes(1),expect(a.getContext).toHaveBeenCalledWith({type:e.ClearSignContextType.NFT,chainId:1,address:"0x09080706"}),expect(c).toEqual(l.Nothing),expect(t.sendCommand).toHaveBeenCalledTimes(2)})}),describe("should not provide a reference context",()=>{it("when the path is not found in transaction payload",async()=>{const o={type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x01020304",reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Left)(new Error("path not found")));const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(c).toEqual(l.Nothing),expect(t.sendCommand).toHaveBeenCalledTimes(1),expect(a.getContext).not.toHaveBeenCalled()}),it("when getContext return a type error",async()=>{const o={type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x01020304",reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([17,34,51,68])])),jest.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.ERROR,error:new Error("getContext error")}),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:{challenge:66}})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"}));const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(c).toEqual(l.Nothing),expect(t.sendCommand).toHaveBeenCalledTimes(2),expect(a.getContext).toHaveBeenCalledTimes(1)}),it("when no enum descriptor is found",async()=>{const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.ENUM,valuePath:e.ContainerPath.VALUE,id:66}};jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([1,2,3,4])])),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"}));const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(c).toEqual(l.Nothing),expect(t.sendCommand).toHaveBeenCalledTimes(1),expect(t.sendCommand.mock.calls[0][0]).toBeInstanceOf(x.ProvideTransactionFieldDescriptionCommand)}),it("when the enum reference path value is empty",async()=>{const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.ENUM,valuePath:e.ContainerPath.VALUE,id:66}};jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([])])),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"}));const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[{id:66,value:1,type:e.ClearSignContextType.ENUM,payload:"0x060708"},{id:66,value:4,type:e.ClearSignContextType.ENUM,payload:"0x080706"}]}).run();expect(c).toEqual(l.Nothing),expect(t.sendCommand).toHaveBeenCalledTimes(1),expect(t.sendCommand.mock.calls[0][0]).toBeInstanceOf(x.ProvideTransactionFieldDescriptionCommand)})}),describe("should return an error",()=>{it.each([e.ClearSignContextType.TRANSACTION_INFO,e.ClearSignContextType.PLUGIN,e.ClearSignContextType.EXTERNAL_PLUGIN])("when type is %s",async r=>{const o=`payload-${r}`,d={type:r,payload:o},p=await new i.ProvideTransactionFieldDescriptionTask(t,{field:d,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(p.extract()).toEqual((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError(`The context type [${r}] is not valid as a transaction field or metadata`)}))}),it("when type is unknown",async()=>{const o={type:"unknown",payload:"payload-unknown"},c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(c.extract()).toEqual((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("The context type [unknown] is not covered")}))}),it("when getChallenge fails",async()=>{const o={type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x01020304",reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("getChallenge error")})),jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([17,34,51,68])]));const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(c.extract()).toEqual((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("getChallenge error")}))}),it("when provide reference with a token fails",async()=>{const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.TOKEN,valuePath:e.ContainerPath.VALUE}};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("provide reference error")})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([17,34,51,68])])),jest.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.TOKEN,payload:"0x05060708"});const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(c.extract()).toEqual((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("provide reference error")}))}),it("when provide reference with a trusted name fails",async()=>{const o={type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x01020304",reference:{type:e.ClearSignContextType.TRUSTED_NAME,valuePath:e.ContainerPath.VALUE,types:["type"],sources:["source"]}};jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("provide reference error")})),jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([17,34,51,68])])),jest.spyOn(a,"getContext").mockResolvedValueOnce({type:e.ClearSignContextType.TRUSTED_NAME,payload:"0x05060708"});const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[]}).run();expect(c.extract()).toEqual((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("provide reference error")}))}),it("when provide reference with a enum reference fails",async()=>{const o={type:e.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"0x01020304",reference:{type:e.ClearSignContextType.ENUM,valuePath:e.ContainerPath.VALUE,id:66}};jest.spyOn(s,"extractValue").mockReturnValueOnce((0,l.Right)([new Uint8Array([1,2,3,4])])),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("provide reference error")})),jest.spyOn(t,"sendCommand").mockResolvedValueOnce((0,n.CommandResultFactory)({data:"ok"}));const c=await new i.ProvideTransactionFieldDescriptionTask(t,{field:o,serializedTransaction:new Uint8Array,chainId:1,transactionParser:s,contextModule:a,transactionEnums:[{id:66,value:4,type:e.ClearSignContextType.ENUM,payload:"0x080706"}]}).run();expect(c.extract()).toEqual((0,n.CommandResultFactory)({error:new n.InvalidStatusWordError("provide reference error")})),expect(t.sendCommand).toHaveBeenCalledTimes(1),expect(t.sendCommand.mock.calls[0][0]).toBeInstanceOf(y.ProvideEnumCommand)})})});
2
- //# sourceMappingURL=ProvideTransactionFieldDescriptionTask.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.ts"],
4
- "sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n ClearSignContextType,\n ContainerPath,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Nothing, Right } from \"purify-ts\";\n\nimport { GetChallengeCommand } from \"@internal/app-binder/command/GetChallengeCommand\";\nimport { ProvideEnumCommand } from \"@internal/app-binder/command/ProvideEnumCommand\";\nimport { ProvideNFTInformationCommand } from \"@internal/app-binder/command/ProvideNFTInformationCommand\";\nimport { ProvideTokenInformationCommand } from \"@internal/app-binder/command/ProvideTokenInformationCommand\";\nimport { ProvideTransactionFieldDescriptionCommand } from \"@internal/app-binder/command/ProvideTransactionFieldDescriptionCommand\";\nimport { ProvideTrustedNameCommand } from \"@internal/app-binder/command/ProvideTrustedNameCommand\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { ProvideTransactionFieldDescriptionTask } from \"./ProvideTransactionFieldDescriptionTask\";\n\ndescribe(\"ProvideTransactionFieldDescriptionTask\", () => {\n const transactionParserMock = {\n extractValue: jest.fn(),\n } as unknown as TransactionParserService;\n const contextModuleMock = {\n getContext: jest.fn(),\n } as unknown as ContextModule;\n const apiMock: InternalApi = {\n sendCommand: jest.fn(),\n } as unknown as InternalApi;\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n describe(\"should call the right provide command\", () => {\n it.each<{\n type: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[\"type\"];\n commandInstanceType: unknown;\n }>([\n {\n type: ClearSignContextType.NFT,\n commandInstanceType: ProvideNFTInformationCommand,\n },\n {\n type: ClearSignContextType.TOKEN,\n commandInstanceType: ProvideTokenInformationCommand,\n },\n {\n type: ClearSignContextType.TRUSTED_NAME,\n commandInstanceType: ProvideTrustedNameCommand,\n },\n {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n commandInstanceType: ProvideTransactionFieldDescriptionCommand,\n },\n ])(\"when type is $type\", async ({ type, commandInstanceType }) => {\n // GIVEN\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type,\n payload,\n };\n\n // WHEN\n await new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n }).run();\n\n // THEN\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(commandInstanceType);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n });\n\n it(\"when type is transactionFieldDescription with a enum reference\", async () => {\n // GIVEN\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]));\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.ENUM,\n valuePath: ContainerPath.VALUE,\n id: 0x42,\n },\n };\n\n // WHEN\n await new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [\n {\n id: 0x42,\n value: 0x01,\n type: ClearSignContextType.ENUM,\n payload: \"0x060708\",\n },\n {\n id: 0x42,\n value: 0x04,\n type: ClearSignContextType.ENUM,\n payload: \"0x080706\",\n },\n ],\n }).run();\n\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(ProvideEnumCommand);\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0].args.data,\n ).toEqual(new Uint8Array([0x00, 0x03, 0x08, 0x07, 0x06])); // length + value of the enum with id 0x42 and value 0x04\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[1][0],\n ).toBeInstanceOf(ProvideTransactionFieldDescriptionCommand);\n });\n });\n\n describe(\"should return nothing\", () => {\n it.each<\n ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[\"type\"]\n >([\n ClearSignContextType.NFT,\n ClearSignContextType.TOKEN,\n ClearSignContextType.TRUSTED_NAME,\n ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n ])(\"when type is %s with no reference\", async (type) => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type,\n payload,\n };\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n });\n });\n\n describe(\"should provide a reference context\", () => {\n it.each<\n ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[\"type\"]\n >([ClearSignContextType.NFT, ClearSignContextType.TOKEN])(\n \"when type is %s with a reference\",\n async (type) => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type,\n payload,\n reference: {\n type: ClearSignContextType.TOKEN,\n valuePath: ContainerPath.VALUE,\n },\n };\n // provide reference context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(\n Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]),\n );\n jest\n .spyOn(contextModuleMock, \"getContext\")\n .mockResolvedValueOnce({ type, payload });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n expect(contextModuleMock.getContext).toHaveBeenCalledWith({\n type: ClearSignContextType.TOKEN,\n chainId: 1,\n address: \"0x01020304\",\n });\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n },\n );\n\n it(\"when type is trustes-name with a reference\", async () => {\n // GIVEN\n const payload1 = `0x01020304`;\n const payload2 = `0x05060708`;\n const extractedValue = new Uint8Array([0x11, 0x22, 0x33, 0x44]);\n const extractedValueAddress = \"0x11223344\";\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload: payload1,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n // getChallenge\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { challenge: 0x42 } }),\n );\n // provide reference context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([extractedValue]));\n jest.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.TRUSTED_NAME,\n payload: payload2,\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n // getContext for the extracted value address\n expect(contextModuleMock.getContext).toHaveBeenCalledWith({\n type: ClearSignContextType.TRUSTED_NAME,\n chainId: 1,\n address: extractedValueAddress,\n types: [\"type\"],\n sources: [\"source\"],\n challenge: 0x42,\n });\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(3);\n expect(apiMock.sendCommand).toHaveBeenNthCalledWith(\n 1,\n new GetChallengeCommand(),\n );\n expect(apiMock.sendCommand).toHaveBeenNthCalledWith(\n 2,\n new ProvideTrustedNameCommand({\n data: new Uint8Array([0x00, 0x04, 0x05, 0x06, 0x07, 0x08]),\n isFirstChunk: true,\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenNthCalledWith(\n 3,\n new ProvideTrustedNameCommand({\n data: new Uint8Array([0x00, 0x04, 0x01, 0x02, 0x03, 0x04]),\n isFirstChunk: true,\n }),\n );\n });\n\n it(\"when type is token with a constant reference\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TOKEN,\n payload,\n reference: {\n type: ClearSignContextType.TOKEN,\n value: \"0x09080706\",\n },\n };\n // provide reference context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.TOKEN,\n payload: \"0x05060708\",\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(transactionParserMock.extractValue).not.toHaveBeenCalled();\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n expect(contextModuleMock.getContext).toHaveBeenCalledWith({\n type: ClearSignContextType.TOKEN,\n chainId: 1,\n address: \"0x09080706\",\n });\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n });\n\n it(\"when type is a ntf with a constant reference\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.NFT,\n payload,\n reference: {\n type: ClearSignContextType.NFT,\n value: \"0x09080706\",\n },\n };\n // provide reference context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.NFT,\n payload: \"0x05060708\",\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(transactionParserMock.extractValue).not.toHaveBeenCalled();\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n expect(contextModuleMock.getContext).toHaveBeenCalledWith({\n type: ClearSignContextType.NFT,\n chainId: 1,\n address: \"0x09080706\",\n });\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n });\n });\n\n describe(\"should not provide a reference context\", () => {\n it(\"when the path is not found in transaction payload\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Left(new Error(\"path not found\")));\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(contextModuleMock.getContext).not.toHaveBeenCalled();\n });\n\n it(\"when getContext return a type error\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]));\n jest.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.ERROR,\n error: new Error(\"getContext error\"),\n });\n // getChallenge\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { challenge: 0x42 } }),\n );\n // provide context\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(2);\n expect(contextModuleMock.getContext).toHaveBeenCalledTimes(1);\n });\n\n it(\"when no enum descriptor is found\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.ENUM,\n valuePath: ContainerPath.VALUE,\n id: 0x42,\n },\n };\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]));\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(ProvideTransactionFieldDescriptionCommand);\n });\n\n it(\"when the enum reference path value is empty\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.ENUM,\n valuePath: ContainerPath.VALUE,\n id: 0x42,\n },\n };\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([])])); // empty value\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [\n {\n id: 0x42,\n value: 0x01,\n type: ClearSignContextType.ENUM,\n payload: \"0x060708\",\n },\n {\n id: 0x42,\n value: 0x04,\n type: ClearSignContextType.ENUM,\n payload: \"0x080706\",\n },\n ],\n });\n const result = await task.run();\n\n // THEN\n expect(result).toEqual(Nothing);\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(ProvideTransactionFieldDescriptionCommand);\n });\n });\n\n describe(\"should return an error\", () => {\n it.each<\n ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[\"type\"]\n >([\n ClearSignContextType.TRANSACTION_INFO,\n ClearSignContextType.PLUGIN,\n ClearSignContextType.EXTERNAL_PLUGIN,\n ])(\"when type is %s\", async (type) => {\n // GIVEN\n const payload = `payload-${type}`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type,\n payload,\n };\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [${type}] is not valid as a transaction field or metadata`,\n ),\n }),\n );\n });\n\n it(\"when type is unknown\", async () => {\n // GIVEN\n const payload = `payload-unknown`;\n const field = {\n type: \"unknown\" as ClearSignContextType,\n payload,\n } as ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >;\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n `The context type [unknown] is not covered`,\n ),\n }),\n );\n });\n\n it(\"when getChallenge fails\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"getChallenge error\"),\n }),\n );\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]));\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"getChallenge error\"),\n }),\n );\n });\n\n it(\"when provide reference with a token fails\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.TOKEN,\n valuePath: ContainerPath.VALUE,\n },\n };\n // provide reference context\n jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n // provide field\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]));\n jest.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.TOKEN,\n payload: \"0x05060708\",\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n });\n\n it(\"when provide reference with a trusted name fails\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n > = {\n type: ClearSignContextType.TRUSTED_NAME,\n payload,\n reference: {\n type: ClearSignContextType.TRUSTED_NAME,\n valuePath: ContainerPath.VALUE,\n types: [\"type\"],\n sources: [\"source\"],\n },\n };\n // getChallenge\n jest\n .spyOn(apiMock, \"sendCommand\")\n .mockResolvedValueOnce(CommandResultFactory({ data: \"ok\" }));\n // provide reference context\n jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x11, 0x22, 0x33, 0x44])]));\n jest.spyOn(contextModuleMock, \"getContext\").mockResolvedValueOnce({\n type: ClearSignContextType.TRUSTED_NAME,\n payload: \"0x05060708\",\n });\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n });\n\n it(\"when provide reference with a enum reference fails\", async () => {\n // GIVEN\n const payload = `0x01020304`;\n const field: ClearSignContextSuccess = {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,\n payload,\n reference: {\n type: ClearSignContextType.ENUM,\n valuePath: ContainerPath.VALUE,\n id: 0x42,\n },\n };\n jest\n .spyOn(transactionParserMock, \"extractValue\")\n .mockReturnValueOnce(Right([new Uint8Array([0x01, 0x02, 0x03, 0x04])]));\n jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n jest.spyOn(apiMock, \"sendCommand\").mockResolvedValueOnce(\n CommandResultFactory({\n data: \"ok\",\n }),\n );\n\n // WHEN\n const task = new ProvideTransactionFieldDescriptionTask(apiMock, {\n field,\n serializedTransaction: new Uint8Array(),\n chainId: 1,\n transactionParser: transactionParserMock,\n contextModule: contextModuleMock,\n transactionEnums: [\n {\n id: 0x42,\n value: 0x04,\n type: ClearSignContextType.ENUM,\n payload: \"0x080706\",\n },\n ],\n });\n const result = await task.run();\n\n // THEN\n expect(result.extract()).toEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"provide reference error\"),\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledTimes(1);\n expect(\n (apiMock.sendCommand as jest.Mock).mock.calls[0][0],\n ).toBeInstanceOf(ProvideEnumCommand);\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_context_module", "import_device_management_kit", "import_purify_ts", "import_GetChallengeCommand", "import_ProvideEnumCommand", "import_ProvideNFTInformationCommand", "import_ProvideTokenInformationCommand", "import_ProvideTransactionFieldDescriptionCommand", "import_ProvideTrustedNameCommand", "import_ProvideTransactionFieldDescriptionTask", "transactionParserMock", "contextModuleMock", "apiMock", "type", "commandInstanceType", "field", "result", "payload", "payload1", "payload2", "extractedValue", "extractedValueAddress"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var c=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var f=(a,t)=>{for(var r in t)c(a,r,{get:t[r],enumerable:!0})},g=(a,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of T(t))!x.call(a,e)&&e!==r&&c(a,e,{get:()=>t[e],enumerable:!(o=h(t,e))||o.enumerable});return a};var S=a=>g(c({},"__esModule",{value:!0}),a);var k={};f(k,{ProvideTransactionGenericContextTask:()=>P});module.exports=S(k);var i=require("@ledgerhq/device-management-kit"),l=require("@ledgerhq/signer-utils"),s=require("purify-ts"),u=require("../../app-binder/command/ProvideTransactionInformationCommand"),m=require("../../app-binder/command/StoreTransactionCommand"),p=require("./ProvideTransactionFieldDescriptionTask"),C=require("./SendCommandInChunksTask"),y=require("./SendPayloadInChunksTask");class P{constructor(t,r){this.api=t;this.args=r}async run(){const t=l.DerivationPathUtils.splitPath(this.args.derivationPath),r=new i.ByteArrayBuilder;r.add8BitUIntToData(t.length),t.forEach(n=>{r.add32BitUIntToData(n)}),r.addBufferToData(this.args.serializedTransaction);const o=await new C.SendCommandInChunksTask(this.api,{data:r.build(),commandFactory:n=>new m.StoreTransactionCommand({serializedTransaction:n.chunkedData,isFirstChunk:n.isFirstChunk})}).run();if(!(0,i.isSuccessCommandResult)(o))return(0,s.Just)(o);const e=await new y.SendPayloadInChunksTask(this.api,{payload:this.args.context.transactionInfo,commandFactory:n=>new u.ProvideTransactionInformationCommand({data:n.chunkedData,isFirstChunk:n.isFirstChunk})}).run();if(!(0,i.isSuccessCommandResult)(e))return(0,s.Just)(e);for(const n of this.args.context.transactionFields){const d=await new p.ProvideTransactionFieldDescriptionTask(this.api,{field:n,serializedTransaction:this.args.serializedTransaction,chainId:this.args.chainId,transactionParser:this.args.transactionParser,contextModule:this.args.contextModule,transactionEnums:this.args.context.transactionEnums}).run();if(d.isJust())return d}return s.Nothing}}0&&(module.exports={ProvideTransactionGenericContextTask});
2
- //# sourceMappingURL=ProvideTransactionGenericContextTask.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionGenericContextTask.ts"],
4
- "sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n type ClearSignContextType,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n ByteArrayBuilder,\n type CommandErrorResult,\n type InternalApi,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { DerivationPathUtils } from \"@ledgerhq/signer-utils\";\nimport { Just, type Maybe, Nothing } from \"purify-ts\";\n\nimport { ProvideTransactionInformationCommand } from \"@internal/app-binder/command/ProvideTransactionInformationCommand\";\nimport { StoreTransactionCommand } from \"@internal/app-binder/command/StoreTransactionCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { ProvideTransactionFieldDescriptionTask } from \"./ProvideTransactionFieldDescriptionTask\";\nimport { SendCommandInChunksTask } from \"./SendCommandInChunksTask\";\nimport { SendPayloadInChunksTask } from \"./SendPayloadInChunksTask\";\n\nexport type GenericContext = {\n readonly transactionInfo: string;\n readonly transactionFields: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[];\n readonly transactionEnums: ClearSignContextSuccess<ClearSignContextType.ENUM>[];\n};\n\nexport type ProvideTransactionGenericContextTaskArgs = {\n readonly contextModule: ContextModule;\n readonly transactionParser: TransactionParserService;\n readonly chainId: number;\n readonly derivationPath: string;\n readonly serializedTransaction: Uint8Array;\n readonly context: GenericContext;\n};\n\nexport type ProvideTransactionGenericContextTaskErrorCodes =\n void | EthErrorCodes;\n\nexport class ProvideTransactionGenericContextTask {\n constructor(\n private api: InternalApi,\n private args: ProvideTransactionGenericContextTaskArgs,\n ) {}\n\n async run(): Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n > {\n // Store the transaction in the device memory\n const paths = DerivationPathUtils.splitPath(this.args.derivationPath);\n const builder = new ByteArrayBuilder();\n builder.add8BitUIntToData(paths.length);\n paths.forEach((path) => {\n builder.add32BitUIntToData(path);\n });\n builder.addBufferToData(this.args.serializedTransaction);\n const storeTransactionResult = await new SendCommandInChunksTask(this.api, {\n data: builder.build(),\n commandFactory: (args) =>\n new StoreTransactionCommand({\n serializedTransaction: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n\n if (!isSuccessCommandResult(storeTransactionResult)) {\n return Just(storeTransactionResult);\n }\n\n // Provide the transaction information\n const transactionInfoResult = await new SendPayloadInChunksTask(this.api, {\n payload: this.args.context.transactionInfo,\n commandFactory: (args) =>\n new ProvideTransactionInformationCommand({\n data: args.chunkedData,\n isFirstChunk: args.isFirstChunk,\n }),\n }).run();\n\n if (!isSuccessCommandResult(transactionInfoResult)) {\n return Just(transactionInfoResult);\n }\n\n // Provide the transaction field description and according metadata reference\n for (const field of this.args.context.transactionFields) {\n const result = await new ProvideTransactionFieldDescriptionTask(\n this.api,\n {\n field,\n serializedTransaction: this.args.serializedTransaction,\n chainId: this.args.chainId,\n transactionParser: this.args.transactionParser,\n contextModule: this.args.contextModule,\n transactionEnums: this.args.context.transactionEnums,\n },\n ).run();\n\n if (result.isJust()) {\n return result;\n }\n }\n\n return Nothing;\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0CAAAE,IAAA,eAAAC,EAAAH,GAMA,IAAAI,EAKO,2CACPC,EAAoC,kCACpCC,EAA0C,qBAE1CC,EAAqD,6EACrDC,EAAwC,gEAIxCC,EAAuD,oDACvDC,EAAwC,qCACxCC,EAAwC,qCAsBjC,MAAMT,CAAqC,CAChD,YACUU,EACAC,EACR,CAFQ,SAAAD,EACA,UAAAC,CACP,CAEH,MAAM,KAEJ,CAEA,MAAMC,EAAQ,sBAAoB,UAAU,KAAK,KAAK,cAAc,EAC9DC,EAAU,IAAI,mBACpBA,EAAQ,kBAAkBD,EAAM,MAAM,EACtCA,EAAM,QAASE,GAAS,CACtBD,EAAQ,mBAAmBC,CAAI,CACjC,CAAC,EACDD,EAAQ,gBAAgB,KAAK,KAAK,qBAAqB,EACvD,MAAME,EAAyB,MAAM,IAAI,0BAAwB,KAAK,IAAK,CACzE,KAAMF,EAAQ,MAAM,EACpB,eAAiBF,GACf,IAAI,0BAAwB,CAC1B,sBAAuBA,EAAK,YAC5B,aAAcA,EAAK,YACrB,CAAC,CACL,CAAC,EAAE,IAAI,EAEP,GAAI,IAAC,0BAAuBI,CAAsB,EAChD,SAAO,QAAKA,CAAsB,EAIpC,MAAMC,EAAwB,MAAM,IAAI,0BAAwB,KAAK,IAAK,CACxE,QAAS,KAAK,KAAK,QAAQ,gBAC3B,eAAiBL,GACf,IAAI,uCAAqC,CACvC,KAAMA,EAAK,YACX,aAAcA,EAAK,YACrB,CAAC,CACL,CAAC,EAAE,IAAI,EAEP,GAAI,IAAC,0BAAuBK,CAAqB,EAC/C,SAAO,QAAKA,CAAqB,EAInC,UAAWC,KAAS,KAAK,KAAK,QAAQ,kBAAmB,CACvD,MAAMC,EAAS,MAAM,IAAI,yCACvB,KAAK,IACL,CACE,MAAAD,EACA,sBAAuB,KAAK,KAAK,sBACjC,QAAS,KAAK,KAAK,QACnB,kBAAmB,KAAK,KAAK,kBAC7B,cAAe,KAAK,KAAK,cACzB,iBAAkB,KAAK,KAAK,QAAQ,gBACtC,CACF,EAAE,IAAI,EAEN,GAAIC,EAAO,OAAO,EAChB,OAAOA,CAEX,CAEA,OAAO,SACT,CACF",
6
- "names": ["ProvideTransactionGenericContextTask_exports", "__export", "ProvideTransactionGenericContextTask", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ProvideTransactionInformationCommand", "import_StoreTransactionCommand", "import_ProvideTransactionFieldDescriptionTask", "import_SendCommandInChunksTask", "import_SendPayloadInChunksTask", "api", "args", "paths", "builder", "path", "storeTransactionResult", "transactionInfoResult", "field", "result"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),n=require("purify-ts"),s=require("./ProvideTransactionFieldDescriptionTask"),r=require("./ProvideTransactionGenericContextTask"),o=require("./SendCommandInChunksTask"),i=require("./SendPayloadInChunksTask");describe("ProvideTransactionGenericContextTask",()=>{const p="44/60'/0'/0'/0/0",u=new Uint8Array([18,52]),c="0x5678",d=[],l=[],a={derivationPath:p,serializedTransaction:u,context:{transactionInfo:c,transactionFields:d,transactionEnums:l},chainId:1,transactionParser:{},contextModule:{}};describe("run",()=>{beforeEach(()=>{jest.resetAllMocks()}),describe("should return an error",()=>{it("when storeTransactionResult fail",async()=>{jest.spyOn(o.SendCommandInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("storeTransactionError")}));const t=await new r.ProvideTransactionGenericContextTask({},a).run();expect(t).toEqual((0,n.Just)((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("storeTransactionError")})))}),it("when provideTransactionInformationResult fail",async()=>{jest.spyOn(o.SendCommandInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({data:"0x1234"})),jest.spyOn(i.SendPayloadInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("provideTransactionInformationError")}));const t=await new r.ProvideTransactionGenericContextTask({},a).run();expect(t).toEqual((0,n.Just)((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("provideTransactionInformationError")})))}),it("when ProvideTransactionGenericContextTask fail",async()=>{jest.spyOn(o.SendCommandInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({data:"0x1234"})),jest.spyOn(i.SendPayloadInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({data:"0x5678"})),jest.spyOn(s.ProvideTransactionFieldDescriptionTask.prototype,"run").mockResolvedValue((0,n.Just)((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("provideTransactionGenericContextTaskError")})));const t=await new r.ProvideTransactionGenericContextTask({},{...a,context:{transactionInfo:c,transactionFields:[{}],transactionEnums:l}}).run();expect(t).toEqual((0,n.Just)((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("provideTransactionGenericContextTaskError")})))})}),it("should call ProvideTransactionFieldDescriptionTask for each field",async()=>{const t=["field-1","field-2"];jest.spyOn(o.SendCommandInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({data:"0x1234"})),jest.spyOn(i.SendPayloadInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({data:"0x5678"})),jest.spyOn(s.ProvideTransactionFieldDescriptionTask.prototype,"run").mockResolvedValue(n.Nothing),await new r.ProvideTransactionGenericContextTask({},{...a,context:{transactionInfo:c,transactionFields:t,transactionEnums:l}}).run(),expect(s.ProvideTransactionFieldDescriptionTask.prototype.run).toHaveBeenCalledTimes(2)}),it("should return Nothing when all fields are provided",async()=>{jest.spyOn(o.SendCommandInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({data:"0x1234"})),jest.spyOn(i.SendPayloadInChunksTask.prototype,"run").mockResolvedValue((0,e.CommandResultFactory)({data:"0x5678"})),jest.spyOn(s.ProvideTransactionFieldDescriptionTask.prototype,"run").mockResolvedValue(n.Nothing);const t=await new r.ProvideTransactionGenericContextTask({},a).run();expect(t).toEqual(n.Nothing)})})});
2
- //# sourceMappingURL=ProvideTransactionGenericContextTask.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/internal/app-binder/task/ProvideTransactionGenericContextTask.test.ts"],
4
- "sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextSuccessType,\n type ClearSignContextType,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n CommandResultFactory,\n type InternalApi,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { ProvideTransactionFieldDescriptionTask } from \"./ProvideTransactionFieldDescriptionTask\";\nimport {\n ProvideTransactionGenericContextTask,\n type ProvideTransactionGenericContextTaskArgs,\n} from \"./ProvideTransactionGenericContextTask\";\nimport { SendCommandInChunksTask } from \"./SendCommandInChunksTask\";\nimport { SendPayloadInChunksTask } from \"./SendPayloadInChunksTask\";\n\ndescribe(\"ProvideTransactionGenericContextTask\", () => {\n const derivationPath = \"44/60'/0'/0'/0/0\";\n const serializedTransaction = new Uint8Array([0x12, 0x34]);\n const transactionInfo = \"0x5678\";\n const transactionFields: ClearSignContextSuccess<\n Exclude<ClearSignContextSuccessType, ClearSignContextType.ENUM>\n >[] = [];\n const transactionEnums: ClearSignContextSuccess<ClearSignContextType.ENUM>[] =\n [];\n const chainId = 1;\n const transactionParser = {} as TransactionParserService;\n const contextModule = {} as ContextModule;\n\n const defaultArgs: ProvideTransactionGenericContextTaskArgs = {\n derivationPath,\n serializedTransaction,\n context: {\n transactionInfo,\n transactionFields,\n transactionEnums,\n },\n chainId,\n transactionParser,\n contextModule,\n };\n describe(\"run\", () => {\n beforeEach(() => {\n jest.resetAllMocks();\n });\n\n describe(\"should return an error\", () => {\n it(\"when storeTransactionResult fail\", async () => {\n // GIVEN\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"storeTransactionError\"),\n }),\n );\n\n // WHEN\n const result = await new ProvideTransactionGenericContextTask(\n {} as InternalApi,\n defaultArgs,\n ).run();\n\n // THEN\n expect(result).toEqual(\n Just(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"storeTransactionError\"),\n }),\n ),\n );\n });\n\n it(\"when provideTransactionInformationResult fail\", async () => {\n // GIVEN\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x1234\",\n }),\n );\n jest.spyOn(SendPayloadInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"provideTransactionInformationError\",\n ),\n }),\n );\n\n // WHEN\n const result = await new ProvideTransactionGenericContextTask(\n {} as InternalApi,\n defaultArgs,\n ).run();\n\n // THEN\n expect(result).toEqual(\n Just(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"provideTransactionInformationError\",\n ),\n }),\n ),\n );\n });\n\n it(\"when ProvideTransactionGenericContextTask fail\", async () => {\n // GIVEN\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x1234\",\n }),\n );\n jest.spyOn(SendPayloadInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x5678\",\n }),\n );\n jest\n .spyOn(ProvideTransactionFieldDescriptionTask.prototype, \"run\")\n .mockResolvedValue(\n Just(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"provideTransactionGenericContextTaskError\",\n ),\n }) as CommandErrorResult,\n ),\n );\n\n // WHEN\n const result = await new ProvideTransactionGenericContextTask(\n {} as InternalApi,\n {\n ...defaultArgs,\n context: {\n transactionInfo,\n transactionFields: [\n {} as ClearSignContextSuccess<ClearSignContextType.TRANSACTION_INFO>,\n ],\n transactionEnums,\n },\n },\n ).run();\n\n // THEN\n expect(result).toEqual(\n Just(\n CommandResultFactory({\n error: new InvalidStatusWordError(\n \"provideTransactionGenericContextTaskError\",\n ),\n }),\n ),\n );\n });\n });\n\n it(\"should call ProvideTransactionFieldDescriptionTask for each field\", async () => {\n // GIVEN\n const fields: ClearSignContextSuccess<ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION>[] =\n [\n \"field-1\" as unknown as ClearSignContextSuccess<ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION>,\n \"field-2\" as unknown as ClearSignContextSuccess<ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION>,\n ];\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x1234\",\n }),\n );\n jest.spyOn(SendPayloadInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x5678\",\n }),\n );\n jest\n .spyOn(ProvideTransactionFieldDescriptionTask.prototype, \"run\")\n .mockResolvedValue(Nothing);\n\n // WHEN\n await new ProvideTransactionGenericContextTask({} as InternalApi, {\n ...defaultArgs,\n context: {\n transactionInfo,\n transactionFields: fields,\n transactionEnums,\n },\n }).run();\n\n // THEN\n expect(\n ProvideTransactionFieldDescriptionTask.prototype.run,\n ).toHaveBeenCalledTimes(2);\n });\n\n it(\"should return Nothing when all fields are provided\", async () => {\n // GIVEN\n jest.spyOn(SendCommandInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x1234\",\n }),\n );\n jest.spyOn(SendPayloadInChunksTask.prototype, \"run\").mockResolvedValue(\n CommandResultFactory({\n data: \"0x5678\",\n }),\n );\n jest\n .spyOn(ProvideTransactionFieldDescriptionTask.prototype, \"run\")\n .mockResolvedValue(Nothing);\n\n // WHEN\n const result = await new ProvideTransactionGenericContextTask(\n {} as InternalApi,\n defaultArgs,\n ).run();\n\n // THEN\n expect(result).toEqual(Nothing);\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_device_management_kit", "import_purify_ts", "import_ProvideTransactionFieldDescriptionTask", "import_ProvideTransactionGenericContextTask", "import_SendCommandInChunksTask", "import_SendPayloadInChunksTask", "derivationPath", "serializedTransaction", "transactionInfo", "transactionFields", "transactionEnums", "defaultArgs", "result", "fields"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var g=(o,t)=>{for(var r in t)a(o,r,{get:t[r],enumerable:!0})},T=(o,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of y(t))!b.call(o,e)&&e!==r&&a(o,e,{get:()=>t[e],enumerable:!(i=f(t,e))||i.enumerable});return o};var x=o=>T(a({},"__esModule",{value:!0}),o),u=(o,t,r,i)=>{for(var e=i>1?void 0:i?f(t,r):t,s=o.length-1,c;s>=0;s--)(c=o[s])&&(e=(i?c(t,r,e):c(e))||e);return i&&e&&a(t,r,e),e};var M={};g(M,{EthersRawTransactionMapper:()=>n});module.exports=x(M);var d=require("@ledgerhq/device-management-kit"),m=require("ethers"),l=require("inversify"),p=require("purify-ts");let n=class{map(t){try{const r=m.ethers.Transaction.from((0,d.bufferToHexaString)(t));return(0,p.Just)({subset:{chainId:Number(r.chainId.toString()),to:r.to??void 0,data:r.data},serializedTransaction:(0,m.getBytes)(r.unsignedSerialized),type:r.type||0})}catch{return p.Nothing}}};n=u([(0,l.injectable)()],n);0&&(module.exports={EthersRawTransactionMapper});
2
- //# sourceMappingURL=EthersRawTransactionMapper.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/transaction/service/mapper/EthersRawTransactionMapper.ts"],
4
- "sourcesContent": ["import { bufferToHexaString } from \"@ledgerhq/device-management-kit\";\nimport { ethers, getBytes } from \"ethers\";\nimport { injectable } from \"inversify\";\nimport { Just, Maybe, Nothing } from \"purify-ts\";\n\nimport { TransactionMapperResult } from \"./model/TransactionMapperResult\";\nimport { TransactionMapper } from \"./TransactionMapper\";\n\n@injectable()\nexport class EthersRawTransactionMapper implements TransactionMapper {\n map(transaction: Uint8Array): Maybe<TransactionMapperResult> {\n try {\n const tx = ethers.Transaction.from(bufferToHexaString(transaction));\n return Just({\n subset: {\n chainId: Number(tx.chainId.toString()),\n to: tx.to ?? undefined,\n data: tx.data,\n },\n serializedTransaction: getBytes(tx.unsignedSerialized),\n type: tx.type || 0,\n });\n } catch (_error) {\n return Nothing;\n }\n }\n}\n"],
5
- "mappings": "2iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,2CACnCC,EAAiC,kBACjCC,EAA2B,qBAC3BC,EAAqC,qBAM9B,IAAMC,EAAN,KAA8D,CACnE,IAAIC,EAAyD,CAC3D,GAAI,CACF,MAAMC,EAAK,SAAO,YAAY,QAAK,sBAAmBD,CAAW,CAAC,EAClE,SAAO,QAAK,CACV,OAAQ,CACN,QAAS,OAAOC,EAAG,QAAQ,SAAS,CAAC,EACrC,GAAIA,EAAG,IAAM,OACb,KAAMA,EAAG,IACX,EACA,yBAAuB,YAASA,EAAG,kBAAkB,EACrD,KAAMA,EAAG,MAAQ,CACnB,CAAC,CACH,MAAiB,CACf,OAAO,SACT,CACF,CACF,EAjBaF,EAANG,EAAA,IADN,cAAW,GACCH",
6
- "names": ["EthersRawTransactionMapper_exports", "__export", "EthersRawTransactionMapper", "__toCommonJS", "import_device_management_kit", "import_ethers", "import_inversify", "import_purify_ts", "EthersRawTransactionMapper", "transaction", "tx", "__decorateClass"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var r=require("@ledgerhq/device-management-kit"),a=require("ethers"),o=require("./EthersRawTransactionMapper");describe("RawTransactionMapper",()=>{const n=new o.EthersRawTransactionMapper;it("should return Nothing when empty raw transaction",()=>{const e=new Uint8Array(0),t=n.map(e);expect(t.isNothing()).toBeTruthy()}),it("should return Nothing when invalid raw transaction",()=>{const e=new Uint8Array(1),t=n.map(e);expect(t.isNothing()).toBeTruthy()}),it("should return a TransactionMapperResult",()=>{const e=(0,r.hexaStringToBuffer)(a.Transaction.from({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x123456"}).unsignedSerialized),t=n.map(e);expect(t.isJust()).toBeTruthy(),expect(t.extract()?.serializedTransaction).toEqual((0,a.getBytes)(e)),expect(t.extract()?.subset).toEqual({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x123456"}),expect(t.extract()?.type).toEqual(2)}),it("should return a TransactionMapperResult with undefined to",()=>{const e=(0,r.hexaStringToBuffer)(a.Transaction.from({chainId:1,data:"0x123456"}).unsignedSerialized),t=n.map(e);expect(t.isJust()).toBeTruthy(),expect(t.extract()?.serializedTransaction).toEqual((0,a.getBytes)(e)),expect(t.extract()?.subset).toEqual({chainId:1,to:void 0,data:"0x123456"}),expect(t.extract()?.type).toEqual(2)}),it("should return a TransactionMapperResult with empty data",()=>{const e=(0,r.hexaStringToBuffer)(a.Transaction.from({chainId:1,to:"0x1234567890123456789012345678901234567890"}).unsignedSerialized),t=n.map(e);expect(t.isJust()).toBeTruthy(),expect(t.extract()?.serializedTransaction).toEqual((0,a.getBytes)(e)),expect(t.extract()?.subset).toEqual({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x"}),expect(t.extract()?.type).toEqual(2)}),it("should return a TransactionMapperResult with a custom type",()=>{const e=(0,r.hexaStringToBuffer)(a.Transaction.from({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x123456",type:1}).unsignedSerialized),t=n.map(e);expect(t.isJust()).toBeTruthy(),expect(t.extract()?.serializedTransaction).toEqual((0,a.getBytes)(e)),expect(t.extract()?.subset).toEqual({chainId:1,to:"0x1234567890123456789012345678901234567890",data:"0x123456"}),expect(t.extract()?.type).toEqual(1)})});
2
- //# sourceMappingURL=EthersRawTransactionMapper.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/transaction/service/mapper/EthersRawTransactionMapper.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport { getBytes, Transaction } from \"ethers\";\n\nimport { EthersRawTransactionMapper } from \"./EthersRawTransactionMapper\";\n\ndescribe(\"RawTransactionMapper\", () => {\n const mapper = new EthersRawTransactionMapper();\n\n it(\"should return Nothing when empty raw transaction\", () => {\n // GIVEN\n const transaction = new Uint8Array(0);\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isNothing()).toBeTruthy();\n });\n\n it(\"should return Nothing when invalid raw transaction\", () => {\n // GIVEN\n const transaction = new Uint8Array(1);\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isNothing()).toBeTruthy();\n });\n\n it(\"should return a TransactionMapperResult\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n Transaction.from({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x123456\",\n }).unsignedSerialized,\n )!;\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isJust()).toBeTruthy();\n expect(result.extract()?.serializedTransaction).toEqual(\n getBytes(transaction),\n );\n expect(result.extract()?.subset).toEqual({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x123456\",\n });\n expect(result.extract()?.type).toEqual(2);\n });\n\n it(\"should return a TransactionMapperResult with undefined to\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n Transaction.from({\n chainId: 1,\n data: \"0x123456\",\n }).unsignedSerialized,\n )!;\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isJust()).toBeTruthy();\n expect(result.extract()?.serializedTransaction).toEqual(\n getBytes(transaction),\n );\n expect(result.extract()?.subset).toEqual({\n chainId: 1,\n to: undefined,\n data: \"0x123456\",\n });\n expect(result.extract()?.type).toEqual(2);\n });\n\n it(\"should return a TransactionMapperResult with empty data\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n Transaction.from({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n }).unsignedSerialized,\n )!;\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isJust()).toBeTruthy();\n expect(result.extract()?.serializedTransaction).toEqual(\n getBytes(transaction),\n );\n expect(result.extract()?.subset).toEqual({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x\",\n });\n expect(result.extract()?.type).toEqual(2);\n });\n\n it(\"should return a TransactionMapperResult with a custom type\", () => {\n // GIVEN\n const transaction = hexaStringToBuffer(\n Transaction.from({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x123456\",\n type: 1,\n }).unsignedSerialized,\n )!;\n\n // WHEN\n const result = mapper.map(transaction);\n\n // THEN\n expect(result.isJust()).toBeTruthy();\n expect(result.extract()?.serializedTransaction).toEqual(\n getBytes(transaction),\n );\n expect(result.extract()?.subset).toEqual({\n chainId: 1,\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x123456\",\n });\n expect(result.extract()?.type).toEqual(1);\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAAmC,2CACnCC,EAAsC,kBAEtCC,EAA2C,wCAE3C,SAAS,uBAAwB,IAAM,CACrC,MAAMC,EAAS,IAAI,6BAEnB,GAAG,mDAAoD,IAAM,CAE3D,MAAMC,EAAc,IAAI,WAAW,CAAC,EAG9BC,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,UAAU,CAAC,EAAE,WAAW,CACxC,CAAC,EAED,GAAG,qDAAsD,IAAM,CAE7D,MAAMD,EAAc,IAAI,WAAW,CAAC,EAG9BC,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,UAAU,CAAC,EAAE,WAAW,CACxC,CAAC,EAED,GAAG,0CAA2C,IAAM,CAElD,MAAMD,KAAc,sBAClB,cAAY,KAAK,CACf,QAAS,EACT,GAAI,6CACJ,KAAM,UACR,CAAC,EAAE,kBACL,EAGMC,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,EACnC,OAAOA,EAAO,QAAQ,GAAG,qBAAqB,EAAE,WAC9C,YAASD,CAAW,CACtB,EACA,OAAOC,EAAO,QAAQ,GAAG,MAAM,EAAE,QAAQ,CACvC,QAAS,EACT,GAAI,6CACJ,KAAM,UACR,CAAC,EACD,OAAOA,EAAO,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC,EAED,GAAG,4DAA6D,IAAM,CAEpE,MAAMD,KAAc,sBAClB,cAAY,KAAK,CACf,QAAS,EACT,KAAM,UACR,CAAC,EAAE,kBACL,EAGMC,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,EACnC,OAAOA,EAAO,QAAQ,GAAG,qBAAqB,EAAE,WAC9C,YAASD,CAAW,CACtB,EACA,OAAOC,EAAO,QAAQ,GAAG,MAAM,EAAE,QAAQ,CACvC,QAAS,EACT,GAAI,OACJ,KAAM,UACR,CAAC,EACD,OAAOA,EAAO,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC,EAED,GAAG,0DAA2D,IAAM,CAElE,MAAMD,KAAc,sBAClB,cAAY,KAAK,CACf,QAAS,EACT,GAAI,4CACN,CAAC,EAAE,kBACL,EAGMC,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,EACnC,OAAOA,EAAO,QAAQ,GAAG,qBAAqB,EAAE,WAC9C,YAASD,CAAW,CACtB,EACA,OAAOC,EAAO,QAAQ,GAAG,MAAM,EAAE,QAAQ,CACvC,QAAS,EACT,GAAI,6CACJ,KAAM,IACR,CAAC,EACD,OAAOA,EAAO,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC,EAED,GAAG,6DAA8D,IAAM,CAErE,MAAMD,KAAc,sBAClB,cAAY,KAAK,CACf,QAAS,EACT,GAAI,6CACJ,KAAM,WACN,KAAM,CACR,CAAC,EAAE,kBACL,EAGMC,EAASF,EAAO,IAAIC,CAAW,EAGrC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,EACnC,OAAOA,EAAO,QAAQ,GAAG,qBAAqB,EAAE,WAC9C,YAASD,CAAW,CACtB,EACA,OAAOC,EAAO,QAAQ,GAAG,MAAM,EAAE,QAAQ,CACvC,QAAS,EACT,GAAI,6CACJ,KAAM,UACR,CAAC,EACD,OAAOA,EAAO,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,CAC1C,CAAC,CACH,CAAC",
6
- "names": ["import_device_management_kit", "import_ethers", "import_EthersRawTransactionMapper", "mapper", "transaction", "result"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var p=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var c=(r,a,n,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let t of i(a))!s.call(r,t)&&t!==n&&p(r,t,{get:()=>a[t],enumerable:!(e=o(a,t))||e.enumerable});return r};var m=r=>c(p({},"__esModule",{value:!0}),r);var y={};module.exports=m(y);
2
- //# sourceMappingURL=TransactionMapper.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/transaction/service/mapper/TransactionMapper.ts"],
4
- "sourcesContent": ["import { type Maybe } from \"purify-ts\";\n\nimport { type TransactionMapperResult } from \"./model/TransactionMapperResult\";\n\nexport interface TransactionMapper {\n map(transaction: Uint8Array): Maybe<TransactionMapperResult>;\n}\n"],
5
- "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
- "names": ["TransactionMapper_exports", "__toCommonJS"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var a=require("purify-ts"),o=require("./TransactionMapperService");const n=t=>({map:jest.fn().mockReturnValue(t)});describe("TransactionMapperService",()=>{let t;beforeEach(()=>{jest.clearAllMocks()}),it("should return a TransactionSubset",()=>{const e=[n((0,a.Just)({data:"data"})),n(a.Nothing)];t=new o.TransactionMapperService(e);const r=t.mapTransactionToSubset(new Uint8Array(0));expect(e[0].map).toHaveBeenCalled(),expect(e[1].map).not.toHaveBeenCalled(),expect(r).toEqual((0,a.Right)({data:"data"}))}),it("should return a TransactionSubset for the second mapper",()=>{const e=[n(a.Nothing),n((0,a.Just)({data:"data-2"}))];t=new o.TransactionMapperService(e);const r=t.mapTransactionToSubset(new Uint8Array(0));expect(e[0].map).toHaveBeenCalled(),expect(e[1].map).toHaveBeenCalled(),expect(r).toEqual((0,a.Right)({data:"data-2"}))}),it("should return an error",()=>{const e=[n(a.Nothing),n(a.Nothing)];t=new o.TransactionMapperService(e);const r=t.mapTransactionToSubset(new Uint8Array(0));expect(e[0].map).toHaveBeenCalled(),expect(e[1].map).toHaveBeenCalled(),expect(r.isLeft()).toBeTruthy()})});
2
- //# sourceMappingURL=TransactionMapperService.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/internal/transaction/service/mapper/TransactionMapperService.test.ts"],
4
- "sourcesContent": ["import { type TransactionSubset } from \"@ledgerhq/context-module\";\nimport { Just, type Maybe, Nothing, Right } from \"purify-ts\";\n\nimport { TransactionMapperService } from \"./TransactionMapperService\";\n\nconst transactionMapperBuilder = (value?: Maybe<TransactionSubset>) => {\n const map = jest.fn().mockReturnValue(value);\n return { map };\n};\n\ndescribe(\"TransactionMapperService\", () => {\n let service: TransactionMapperService;\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it(\"should return a TransactionSubset\", () => {\n // GIVEN\n const mappers = [\n transactionMapperBuilder(Just({ data: \"data\" } as TransactionSubset)),\n transactionMapperBuilder(Nothing),\n ];\n service = new TransactionMapperService(mappers);\n\n // WHEN\n const result = service.mapTransactionToSubset(new Uint8Array(0));\n\n // THEN\n expect(mappers[0]!.map).toHaveBeenCalled();\n expect(mappers[1]!.map).not.toHaveBeenCalled();\n expect(result).toEqual(Right({ data: \"data\" }));\n });\n\n it(\"should return a TransactionSubset for the second mapper\", () => {\n // GIVEN\n const mappers = [\n transactionMapperBuilder(Nothing),\n transactionMapperBuilder(Just({ data: \"data-2\" } as TransactionSubset)),\n ];\n service = new TransactionMapperService(mappers);\n\n // WHEN\n const result = service.mapTransactionToSubset(new Uint8Array(0));\n\n // THEN\n expect(mappers[0]!.map).toHaveBeenCalled();\n expect(mappers[1]!.map).toHaveBeenCalled();\n expect(result).toEqual(Right({ data: \"data-2\" }));\n });\n\n it(\"should return an error\", () => {\n // GIVEN\n const mappers = [\n transactionMapperBuilder(Nothing),\n transactionMapperBuilder(Nothing),\n ];\n service = new TransactionMapperService(mappers);\n\n // WHEN\n const result = service.mapTransactionToSubset(new Uint8Array(0));\n\n // THEN\n expect(mappers[0]!.map).toHaveBeenCalled();\n expect(mappers[1]!.map).toHaveBeenCalled();\n expect(result.isLeft()).toBeTruthy();\n });\n});\n"],
5
- "mappings": "aACA,IAAAA,EAAiD,qBAEjDC,EAAyC,sCAEzC,MAAMC,EAA4BC,IAEzB,CAAE,IADG,KAAK,GAAG,EAAE,gBAAgBA,CAAK,CAC9B,GAGf,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EAEJ,WAAW,IAAM,CACf,KAAK,cAAc,CACrB,CAAC,EAED,GAAG,oCAAqC,IAAM,CAE5C,MAAMC,EAAU,CACdH,KAAyB,QAAK,CAAE,KAAM,MAAO,CAAsB,CAAC,EACpEA,EAAyB,SAAO,CAClC,EACAE,EAAU,IAAI,2BAAyBC,CAAO,EAG9C,MAAMC,EAASF,EAAQ,uBAAuB,IAAI,WAAW,CAAC,CAAC,EAG/D,OAAOC,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOA,EAAQ,CAAC,EAAG,GAAG,EAAE,IAAI,iBAAiB,EAC7C,OAAOC,CAAM,EAAE,WAAQ,SAAM,CAAE,KAAM,MAAO,CAAC,CAAC,CAChD,CAAC,EAED,GAAG,0DAA2D,IAAM,CAElE,MAAMD,EAAU,CACdH,EAAyB,SAAO,EAChCA,KAAyB,QAAK,CAAE,KAAM,QAAS,CAAsB,CAAC,CACxE,EACAE,EAAU,IAAI,2BAAyBC,CAAO,EAG9C,MAAMC,EAASF,EAAQ,uBAAuB,IAAI,WAAW,CAAC,CAAC,EAG/D,OAAOC,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOA,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOC,CAAM,EAAE,WAAQ,SAAM,CAAE,KAAM,QAAS,CAAC,CAAC,CAClD,CAAC,EAED,GAAG,yBAA0B,IAAM,CAEjC,MAAMD,EAAU,CACdH,EAAyB,SAAO,EAChCA,EAAyB,SAAO,CAClC,EACAE,EAAU,IAAI,2BAAyBC,CAAO,EAG9C,MAAMC,EAASF,EAAQ,uBAAuB,IAAI,WAAW,CAAC,CAAC,EAG/D,OAAOC,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOA,EAAQ,CAAC,EAAG,GAAG,EAAE,iBAAiB,EACzC,OAAOC,EAAO,OAAO,CAAC,EAAE,WAAW,CACrC,CAAC,CACH,CAAC",
6
- "names": ["import_purify_ts", "import_TransactionMapperService", "transactionMapperBuilder", "value", "service", "mappers", "result"]
7
- }