@ledgerhq/device-signer-kit-ethereum 0.0.0-try-to-fix-20250429171448 → 0.0.0-web-ble-29-08---20250829104351

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 (444) hide show
  1. package/README.md +53 -0
  2. package/lib/cjs/api/SignerEth.js +1 -1
  3. package/lib/cjs/api/SignerEth.js.map +1 -1
  4. package/lib/cjs/api/app-binder/SignDelegationAuthorizationTypes.js +2 -0
  5. package/lib/cjs/api/app-binder/SignDelegationAuthorizationTypes.js.map +7 -0
  6. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  7. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
  8. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  9. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
  10. package/lib/cjs/api/index.js +1 -1
  11. package/lib/cjs/api/index.js.map +2 -2
  12. package/lib/cjs/api/model/AddressOptions.js +1 -1
  13. package/lib/cjs/api/model/AddressOptions.js.map +1 -1
  14. package/lib/cjs/api/model/ClearSigningType.js +2 -0
  15. package/lib/cjs/api/model/ClearSigningType.js.map +7 -0
  16. package/lib/cjs/api/model/MessageOptions.js +2 -0
  17. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  18. package/lib/cjs/api/model/TransactionOptions.js +1 -1
  19. package/lib/cjs/api/model/TransactionOptions.js.map +1 -1
  20. package/lib/cjs/api/model/TypedDataOptions.js +2 -0
  21. package/lib/cjs/api/model/TypedDataOptions.js.map +7 -0
  22. package/lib/cjs/internal/DefaultSignerEth.js +1 -1
  23. package/lib/cjs/internal/DefaultSignerEth.js.map +3 -3
  24. package/lib/cjs/internal/DefaultSignerEth.test.js +1 -1
  25. package/lib/cjs/internal/DefaultSignerEth.test.js.map +3 -3
  26. package/lib/cjs/internal/address/di/addressModule.js +1 -1
  27. package/lib/cjs/internal/address/di/addressModule.js.map +3 -3
  28. package/lib/cjs/internal/address/di/addressModule.test.js +1 -1
  29. package/lib/cjs/internal/address/di/addressModule.test.js.map +2 -2
  30. package/lib/cjs/internal/address/use-case/GetAddressUseCase.js +1 -1
  31. package/lib/cjs/internal/address/use-case/GetAddressUseCase.js.map +2 -2
  32. package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  33. package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  34. package/lib/cjs/internal/app-binder/EthAppBinder.js +1 -1
  35. package/lib/cjs/internal/app-binder/EthAppBinder.js.map +3 -3
  36. package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
  37. package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +3 -3
  38. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js +2 -0
  39. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js.map +7 -0
  40. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js +2 -0
  41. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +7 -0
  42. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js +2 -0
  43. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +7 -0
  44. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +2 -0
  45. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +7 -0
  46. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  47. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  48. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  49. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  50. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  51. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  52. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  53. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +2 -2
  54. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  55. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  56. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  57. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  58. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  59. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  60. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  61. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +2 -2
  62. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js +2 -0
  63. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js.map +7 -0
  64. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js +2 -0
  65. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js.map +7 -0
  66. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  67. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  68. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  69. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  70. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +1 -1
  71. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +3 -3
  72. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +1 -1
  73. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +3 -3
  74. package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js +2 -0
  75. package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js.map +7 -0
  76. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +2 -2
  77. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  78. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +2 -2
  79. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  80. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  81. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  82. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  83. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  84. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js.map +1 -1
  85. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.js +2 -0
  86. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.js.map +7 -0
  87. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js +2 -0
  88. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js.map +7 -0
  89. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js +1 -1
  90. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
  91. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
  92. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
  93. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
  94. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
  95. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
  96. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
  97. package/lib/cjs/internal/di.js +1 -1
  98. package/lib/cjs/internal/di.js.map +3 -3
  99. package/lib/cjs/internal/eip7702/di/eip7702Module.js +2 -0
  100. package/lib/cjs/internal/eip7702/di/eip7702Module.js.map +7 -0
  101. package/lib/cjs/internal/eip7702/di/eip7702Module.test.js +2 -0
  102. package/lib/cjs/internal/eip7702/di/eip7702Module.test.js.map +7 -0
  103. package/lib/cjs/internal/eip7702/di/eip7702Types.js +2 -0
  104. package/lib/cjs/internal/eip7702/di/eip7702Types.js.map +7 -0
  105. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js +2 -0
  106. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js.map +7 -0
  107. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js +2 -0
  108. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js.map +7 -0
  109. package/lib/cjs/internal/message/di/messageModule.js +1 -1
  110. package/lib/cjs/internal/message/di/messageModule.js.map +3 -3
  111. package/lib/cjs/internal/message/di/messageModule.test.js +1 -1
  112. package/lib/cjs/internal/message/di/messageModule.test.js.map +2 -2
  113. package/lib/cjs/internal/message/use-case/SignMessageUseCase.js +1 -1
  114. package/lib/cjs/internal/message/use-case/SignMessageUseCase.js.map +3 -3
  115. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  116. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  117. package/lib/cjs/internal/shared/utils/ApplicationChecker.js +1 -1
  118. package/lib/cjs/internal/shared/utils/ApplicationChecker.js.map +3 -3
  119. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js +1 -1
  120. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js.map +2 -2
  121. package/lib/cjs/internal/transaction/di/transactionModule.js +1 -1
  122. package/lib/cjs/internal/transaction/di/transactionModule.js.map +3 -3
  123. package/lib/cjs/internal/transaction/di/transactionModule.test.js +1 -1
  124. package/lib/cjs/internal/transaction/di/transactionModule.test.js.map +2 -2
  125. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.js +2 -0
  126. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.js.map +7 -0
  127. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.test.js +2 -0
  128. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.test.js.map +7 -0
  129. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js +1 -1
  130. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js.map +3 -3
  131. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js +1 -1
  132. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
  133. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  134. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js.map +3 -3
  135. package/lib/cjs/internal/typed-data/di/typedDataModule.js +1 -1
  136. package/lib/cjs/internal/typed-data/di/typedDataModule.js.map +3 -3
  137. package/lib/cjs/internal/typed-data/di/typedDataModule.test.js +1 -1
  138. package/lib/cjs/internal/typed-data/di/typedDataModule.test.js.map +2 -2
  139. package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
  140. package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
  141. package/lib/cjs/internal/typed-data/service/TypedDataParser.js +1 -1
  142. package/lib/cjs/internal/typed-data/service/TypedDataParser.js.map +3 -3
  143. package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js +1 -1
  144. package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
  145. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
  146. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
  147. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  148. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  149. package/lib/cjs/package.json +13 -14
  150. package/lib/esm/api/app-binder/SignDelegationAuthorizationTypes.js +1 -0
  151. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  152. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
  153. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  154. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
  155. package/lib/esm/api/index.js +1 -1
  156. package/lib/esm/api/index.js.map +2 -2
  157. package/lib/esm/api/model/ClearSigningType.js +2 -0
  158. package/lib/esm/api/model/ClearSigningType.js.map +7 -0
  159. package/lib/esm/api/model/MessageOptions.js +1 -0
  160. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  161. package/lib/esm/api/model/TypedDataOptions.js +1 -0
  162. package/lib/esm/api/model/TypedDataOptions.js.map +7 -0
  163. package/lib/esm/internal/DefaultSignerEth.js +1 -1
  164. package/lib/esm/internal/DefaultSignerEth.js.map +3 -3
  165. package/lib/esm/internal/DefaultSignerEth.test.js +1 -1
  166. package/lib/esm/internal/DefaultSignerEth.test.js.map +3 -3
  167. package/lib/esm/internal/address/di/addressModule.js +1 -1
  168. package/lib/esm/internal/address/di/addressModule.js.map +3 -3
  169. package/lib/esm/internal/address/di/addressModule.test.js +1 -1
  170. package/lib/esm/internal/address/di/addressModule.test.js.map +2 -2
  171. package/lib/esm/internal/address/use-case/GetAddressUseCase.js +1 -1
  172. package/lib/esm/internal/address/use-case/GetAddressUseCase.js.map +2 -2
  173. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  174. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  175. package/lib/esm/internal/app-binder/EthAppBinder.js +1 -1
  176. package/lib/esm/internal/app-binder/EthAppBinder.js.map +3 -3
  177. package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
  178. package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +3 -3
  179. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js +2 -0
  180. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js.map +7 -0
  181. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js +2 -0
  182. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +7 -0
  183. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js +2 -0
  184. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +7 -0
  185. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +2 -0
  186. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +7 -0
  187. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  188. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  189. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  190. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  191. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  192. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  193. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  194. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +2 -2
  195. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  196. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  197. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  198. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  199. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  200. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  201. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  202. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +2 -2
  203. package/lib/esm/internal/app-binder/task/BuildSubContextTask.js +2 -0
  204. package/lib/esm/internal/app-binder/task/BuildSubContextTask.js.map +7 -0
  205. package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js +2 -0
  206. package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js.map +7 -0
  207. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  208. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  209. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  210. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  211. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +1 -1
  212. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +3 -3
  213. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +1 -1
  214. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +3 -3
  215. package/lib/esm/internal/app-binder/task/PreBuildContextTask.js +2 -0
  216. package/lib/esm/internal/app-binder/task/PreBuildContextTask.js.map +7 -0
  217. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +2 -2
  218. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  219. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +2 -2
  220. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  221. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  222. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  223. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  224. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  225. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js.map +1 -1
  226. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.js +2 -0
  227. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.js.map +7 -0
  228. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js +2 -0
  229. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js.map +7 -0
  230. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js +1 -1
  231. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
  232. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
  233. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
  234. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
  235. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
  236. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
  237. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
  238. package/lib/esm/internal/di.js +1 -1
  239. package/lib/esm/internal/di.js.map +3 -3
  240. package/lib/esm/internal/eip7702/di/eip7702Module.js +2 -0
  241. package/lib/esm/internal/eip7702/di/eip7702Module.js.map +7 -0
  242. package/lib/esm/internal/eip7702/di/eip7702Module.test.js +2 -0
  243. package/lib/esm/internal/eip7702/di/eip7702Module.test.js.map +7 -0
  244. package/lib/esm/internal/eip7702/di/eip7702Types.js +2 -0
  245. package/lib/esm/internal/eip7702/di/eip7702Types.js.map +7 -0
  246. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js +2 -0
  247. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js.map +7 -0
  248. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js +2 -0
  249. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js.map +7 -0
  250. package/lib/esm/internal/message/di/messageModule.js +1 -1
  251. package/lib/esm/internal/message/di/messageModule.js.map +3 -3
  252. package/lib/esm/internal/message/di/messageModule.test.js +1 -1
  253. package/lib/esm/internal/message/di/messageModule.test.js.map +2 -2
  254. package/lib/esm/internal/message/use-case/SignMessageUseCase.js +1 -1
  255. package/lib/esm/internal/message/use-case/SignMessageUseCase.js.map +3 -3
  256. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  257. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  258. package/lib/esm/internal/shared/utils/ApplicationChecker.js +1 -1
  259. package/lib/esm/internal/shared/utils/ApplicationChecker.js.map +3 -3
  260. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js +1 -1
  261. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js.map +2 -2
  262. package/lib/esm/internal/transaction/di/transactionModule.js +1 -1
  263. package/lib/esm/internal/transaction/di/transactionModule.js.map +3 -3
  264. package/lib/esm/internal/transaction/di/transactionModule.test.js +1 -1
  265. package/lib/esm/internal/transaction/di/transactionModule.test.js.map +2 -2
  266. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.js +2 -0
  267. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.js.map +7 -0
  268. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.test.js +2 -0
  269. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.test.js.map +7 -0
  270. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js +0 -1
  271. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js.map +4 -4
  272. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js +1 -1
  273. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
  274. package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  275. package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js.map +3 -3
  276. package/lib/esm/internal/typed-data/di/typedDataModule.js +1 -1
  277. package/lib/esm/internal/typed-data/di/typedDataModule.js.map +3 -3
  278. package/lib/esm/internal/typed-data/di/typedDataModule.test.js +1 -1
  279. package/lib/esm/internal/typed-data/di/typedDataModule.test.js.map +2 -2
  280. package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
  281. package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
  282. package/lib/esm/internal/typed-data/service/TypedDataParser.js +1 -1
  283. package/lib/esm/internal/typed-data/service/TypedDataParser.js.map +3 -3
  284. package/lib/esm/internal/typed-data/service/TypedDataParser.test.js +1 -1
  285. package/lib/esm/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
  286. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
  287. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
  288. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  289. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  290. package/lib/esm/package.json +13 -14
  291. package/lib/types/api/SignerEth.d.ts +8 -4
  292. package/lib/types/api/SignerEth.d.ts.map +1 -1
  293. package/lib/types/api/app-binder/SignDelegationAuthorizationTypes.d.ts +19 -0
  294. package/lib/types/api/app-binder/SignDelegationAuthorizationTypes.d.ts.map +1 -0
  295. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +14 -10
  296. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  297. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +7 -1
  298. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
  299. package/lib/types/api/index.d.ts +5 -0
  300. package/lib/types/api/index.d.ts.map +1 -1
  301. package/lib/types/api/model/AddressOptions.d.ts +1 -0
  302. package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
  303. package/lib/types/api/model/ClearSigningType.d.ts +5 -0
  304. package/lib/types/api/model/ClearSigningType.d.ts.map +1 -0
  305. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  306. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  307. package/lib/types/api/model/TransactionOptions.d.ts +1 -0
  308. package/lib/types/api/model/TransactionOptions.d.ts.map +1 -1
  309. package/lib/types/api/model/TypedDataOptions.d.ts +4 -0
  310. package/lib/types/api/model/TypedDataOptions.d.ts.map +1 -0
  311. package/lib/types/internal/DefaultSignerEth.d.ts +7 -3
  312. package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
  313. package/lib/types/internal/address/di/addressModule.d.ts.map +1 -1
  314. package/lib/types/internal/address/use-case/GetAddressUseCase.d.ts.map +1 -1
  315. package/lib/types/internal/app-binder/EthAppBinder.d.ts +13 -3
  316. package/lib/types/internal/app-binder/EthAppBinder.d.ts.map +1 -1
  317. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts +20 -0
  318. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts.map +1 -0
  319. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.test.d.ts +2 -0
  320. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.test.d.ts.map +1 -0
  321. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts +29 -0
  322. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts.map +1 -0
  323. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.test.d.ts +2 -0
  324. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.test.d.ts.map +1 -0
  325. package/lib/types/internal/app-binder/command/utils/ethAppErrors.d.ts.map +1 -1
  326. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +14 -31
  327. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
  328. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +1 -2
  329. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
  330. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  331. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  332. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  333. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
  334. package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts +20 -0
  335. package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts.map +1 -0
  336. package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts +2 -0
  337. package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts.map +1 -0
  338. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +10 -14
  339. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +1 -1
  340. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +2 -3
  341. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +1 -1
  342. package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts +17 -0
  343. package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts.map +1 -0
  344. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +0 -2
  345. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
  346. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +28 -22
  347. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +1 -1
  348. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts +1 -2
  349. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts.map +1 -1
  350. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.d.ts +18 -0
  351. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.d.ts.map +1 -0
  352. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.d.ts +2 -0
  353. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.d.ts.map +1 -0
  354. package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts +2 -1
  355. package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts.map +1 -1
  356. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts +12 -0
  357. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts.map +1 -0
  358. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts +2 -0
  359. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts.map +1 -0
  360. package/lib/types/internal/di.d.ts.map +1 -1
  361. package/lib/types/internal/eip7702/di/eip7702Module.d.ts +3 -0
  362. package/lib/types/internal/eip7702/di/eip7702Module.d.ts.map +1 -0
  363. package/lib/types/internal/eip7702/di/eip7702Module.test.d.ts +2 -0
  364. package/lib/types/internal/eip7702/di/eip7702Module.test.d.ts.map +1 -0
  365. package/lib/types/internal/eip7702/di/eip7702Types.d.ts +4 -0
  366. package/lib/types/internal/eip7702/di/eip7702Types.d.ts.map +1 -0
  367. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.d.ts +8 -0
  368. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.d.ts.map +1 -0
  369. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.d.ts +2 -0
  370. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.d.ts.map +1 -0
  371. package/lib/types/internal/message/di/messageModule.d.ts.map +1 -1
  372. package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts +2 -1
  373. package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts.map +1 -1
  374. package/lib/types/internal/shared/utils/ApplicationChecker.d.ts.map +1 -1
  375. package/lib/types/internal/transaction/di/transactionModule.d.ts.map +1 -1
  376. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.d.ts +8 -0
  377. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.d.ts.map +1 -0
  378. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.test.d.ts +2 -0
  379. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.test.d.ts.map +1 -0
  380. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts +4 -7
  381. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts.map +1 -1
  382. package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts +2 -2
  383. package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts.map +1 -1
  384. package/lib/types/internal/typed-data/di/typedDataModule.d.ts.map +1 -1
  385. package/lib/types/internal/typed-data/service/TypedDataParser.d.ts +4 -2
  386. package/lib/types/internal/typed-data/service/TypedDataParser.d.ts.map +1 -1
  387. package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts +2 -1
  388. package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts.map +1 -1
  389. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  390. package/package.json +18 -19
  391. package/lib/cjs/internal/app-binder/constant/plugins.js +0 -2
  392. package/lib/cjs/internal/app-binder/constant/plugins.js.map +0 -7
  393. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +0 -2
  394. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +0 -7
  395. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +0 -2
  396. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +0 -7
  397. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js +0 -2
  398. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +0 -7
  399. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +0 -2
  400. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +0 -7
  401. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js +0 -2
  402. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +0 -7
  403. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +0 -2
  404. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +0 -7
  405. package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js +0 -2
  406. package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js.map +0 -7
  407. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js +0 -2
  408. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js.map +0 -7
  409. package/lib/esm/internal/app-binder/constant/plugins.js +0 -2
  410. package/lib/esm/internal/app-binder/constant/plugins.js.map +0 -7
  411. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +0 -2
  412. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +0 -7
  413. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +0 -2
  414. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +0 -7
  415. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js +0 -2
  416. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +0 -7
  417. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +0 -2
  418. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +0 -7
  419. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js +0 -2
  420. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +0 -7
  421. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +0 -2
  422. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +0 -7
  423. package/lib/esm/internal/transaction/service/mapper/TransactionMapper.js +0 -1
  424. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js +0 -2
  425. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js.map +0 -7
  426. package/lib/types/internal/app-binder/constant/plugins.d.ts +0 -2
  427. package/lib/types/internal/app-binder/constant/plugins.d.ts.map +0 -1
  428. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts +0 -80
  429. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts.map +0 -1
  430. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.d.ts +0 -2
  431. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.d.ts.map +0 -1
  432. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts +0 -28
  433. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts.map +0 -1
  434. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.test.d.ts +0 -2
  435. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.test.d.ts.map +0 -1
  436. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts +0 -7
  437. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts.map +0 -1
  438. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts +0 -2
  439. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts.map +0 -1
  440. package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts +0 -6
  441. package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts.map +0 -1
  442. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.test.d.ts +0 -2
  443. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.test.d.ts.map +0 -1
  444. /package/lib/esm/{internal/transaction/service/mapper/TransactionMapper.js.map → api/app-binder/SignDelegationAuthorizationTypes.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.ts"],
4
- "sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextType,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type CommandResult,\n type DeviceActionStateMachine,\n DeviceModelId,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, type Maybe, Right } from \"purify-ts\";\nimport { and, assign, fromPromise, setup } from \"xstate\";\n\nimport { type GetConfigCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\nimport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n SignTransactionDAStep,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport { GetAppConfiguration } from \"@internal/app-binder/command/GetAppConfigurationCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport {\n Web3CheckOptInCommand,\n type Web3CheckOptInCommandResponse,\n} from \"@internal/app-binder/command/Web3CheckOptInCommand\";\nimport { ETHEREUM_PLUGINS } from \"@internal/app-binder/constant/plugins\";\nimport {\n BuildTransactionContextTask,\n type BuildTransactionContextTaskArgs,\n type BuildTransactionTaskResult,\n} from \"@internal/app-binder/task/BuildTransactionContextTask\";\nimport { ProvideTransactionContextTask } from \"@internal/app-binder/task/ProvideTransactionContextTask\";\nimport {\n type GenericContext,\n ProvideTransactionGenericContextTask,\n type ProvideTransactionGenericContextTaskErrorCodes,\n} from \"@internal/app-binder/task/ProvideTransactionGenericContextTask\";\nimport { SendSignTransactionTask } from \"@internal/app-binder/task/SendSignTransactionTask\";\nimport { ApplicationChecker } from \"@internal/shared/utils/ApplicationChecker\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nexport type MachineDependencies = {\n readonly getAppConfig: () => Promise<\n CommandResult<GetConfigCommandResponse, EthErrorCodes>\n >;\n readonly web3CheckOptIn: () => Promise<\n CommandResult<Web3CheckOptInCommandResponse, EthErrorCodes>\n >;\n readonly buildContext: (arg0: {\n input: {\n contextModule: ContextModule;\n mapper: TransactionMapperService;\n transaction: Uint8Array;\n options: TransactionOptions;\n appConfig: GetConfigCommandResponse;\n derivationPath: string;\n };\n }) => Promise<BuildTransactionTaskResult>;\n readonly provideContext: (arg0: {\n input: {\n clearSignContexts: ClearSignContextSuccess[];\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n };\n }) => Promise<Maybe<CommandErrorResult<EthErrorCodes>>>;\n readonly provideGenericContext: (arg0: {\n input: {\n contextModule: ContextModule;\n transactionParser: TransactionParserService;\n chainId: number;\n derivationPath: string;\n serializedTransaction: Uint8Array;\n context: GenericContext;\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n };\n }) => Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n >;\n readonly signTransaction: (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionType: TransactionType;\n isLegacy: boolean;\n };\n }) => Promise<CommandResult<Signature, EthErrorCodes>>;\n};\n\nexport class SignTransactionDeviceAction extends XStateDeviceAction<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n > {\n type types = StateMachineTypes<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n >;\n\n const {\n getAppConfig,\n web3CheckOptIn,\n buildContext,\n provideContext,\n provideGenericContext,\n signTransaction,\n } = 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 getAppConfig: fromPromise(getAppConfig),\n web3CheckOptIn: fromPromise(web3CheckOptIn),\n buildContext: fromPromise(buildContext),\n provideContext: fromPromise(provideContext),\n provideGenericContext: fromPromise(provideGenericContext),\n signTransaction: fromPromise(signTransaction),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n isGenericContext: ({ context }) =>\n context._internalState.clearSignContexts !== null &&\n typeof (context._internalState.clearSignContexts as GenericContext)\n .transactionInfo === \"string\",\n isWeb3ChecksSupported: ({ context }) =>\n new ApplicationChecker(\n internalApi.getDeviceSessionState(),\n context._internalState.appConfig!,\n )\n .withMinVersionExclusive(\"1.15.0\")\n .excludeDeviceModel(DeviceModelId.NANO_S)\n .check(),\n shouldOptIn: ({ context }) =>\n !context._internalState.appConfig!.web3ChecksEnabled &&\n !context._internalState.appConfig!.web3ChecksOptIn,\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 N4IgpgJg5mDOIC5QGUCWUB2AVATgQw1jwGMAXVAewwBEwA3VYsAQTMowDoB5ABzA2Y8etBk1bkqAYghUwHVBjoUA1nIp8BQ5KTykwAWRIALBWADaABgC6iUDwqxUEjLZAAPRABYAzAHYOAJwAHACMAb4ArBYWAEw+FkHeADQgAJ6IwRYcAGwRQUG52TF5EcUAvmUpaJi4BERsVCKMLA2cAMJGYMTKvPyCwvTN4uwASnAArgA2pJKWNkgg9o7Orh4IAcEcpRYhvonZAd4byWmIITtZESEhBTHeEVH33hVV6Nj4hCTOTWKtHB1dHoafo-FrOMawKYzMwheZ2BxOdirDKbba7faHY4pdIIUIcG6+bwWbKeXwxIKeTzkl4garvOpfdig4ZUDgAcTApA6eEmk34MGksnkihUchgXKMPL5GBgc1cS0RVGRCBCngC2Q4aqCewCEWyQUyJxx5x2HBiByCsV8AQsaoinhpdNqn1azL+HIlUv5YEkYBwOAoOA4PEmugAZoGALYccXc3neuULBUrBZrVXqzXBHV6g2Wo1nDaasIWXxkwkxW0xXyOt7O+rfQa-Zzszlx6UwCFQgHdWbWeUIlOgNMBTxBDiJby3MkmiK+bFnCzeEL4mLm4m5aLeB2VWm1j71pmNsHsFue+MysCd6bd5SzWH95ZI1MF0fj7yTorT6Kz+cILfLhJEgiDZslVXwLACGsan3RlGiPFlOAAIXGVBJggNoqD0NwZhkDA5AUJRVA4AAjFC0IwjAsNIRN4UfJVnwQOJPCyIJyWLHYqV1bJf3OGJl3yYlfFA0dsiOZ4dydGDXXgv5kNQ9DMLAbDfX9QNg1DUgIxwaNSPkiiqJoxYByfIdECYli2JtDiYi439PGAjhvArVdrT4skDm3V5oIZaTRGPVk5PIxTsKvCVAV7OEjLolwGPJfJMwrUkjkiNUeIsK4OEJLdLWiUI9ig+kXQbPyEI4QKFMopTSFCm870i5MTPcMz8jHNVEsJcJ7QCX88pySJSlKPw7jCAq61gmgZObAAFAMGAgMB9KqwU8OFQi5B4WbUHmxbsMMhr6NMv9RzHFK8kiLdBu405cQSTV32Ym5slAw4YlGqTiqGP4ZooOaFuCmY-QDIMQ3DKNg027b-r24yDqao74tO7UIguu4rpxbJokCA0rmJCDjk83dvKKw8Sq+iGwA5PCcEYHacKFAjRXBn6top-g-RpqG+yTGGYsO7KTvtM7kfs1HfyszLfDCbIySpdzxK8wqDzg0npvJyn2eIWmVKB9TQe0pnfvV6nNc5+qeeVfnMsFpGUe8NGF3snI8liViQlEolIIkvcfI+psT0kn32GW-CRSIxwiaVjBoei5VmL2M1SSCB4KyTykIh6wtDgKcJJbyAIRq9iPxrdZsA+JqRAbUkHNLB8PFfG6PFV5uG47HOI9mThJ7Xs39fCpJ3tRe4JzTewPlc+0vvfLjAas6HtG8HFuuo4YldiXOJQgpdProCGzMvz-VOOYuPR+nkv-anyPZ-CmEzZjhj7LVFfQMJEIN5uHvrvyTxHPJEtgIKKUXIFQdwYAoPNeACwy6R3PrDfazc1gAFp7YIGQSvaIGDMEYNnKfGBk0Ty9E0AMFWjV4GxxiGLPUCc9SlGCKBSsuDi74NZDeQhIJmEzwmNMB8TdlT6n8HxEIeoP5kichQ66JoYgrzytjDBk5qyF3rr5CeJ4PRtm9DwxeaYbhjkHtla0dtRJzh3knfEs53wbHztaHwjDlF+1ZGoyU54OxcLCt0TRjU0zgW8IECCrF872Q2PaNKq4ci7yeuSPINxqSKLGnY-ySEyIVSoh42Gaw+JHHxIcaIGxOIlnzCqb8mV9QZK3McJOtjfYJLKkk2m193Hc3vodc0r47i7xssBEIS40o+EcouZGRQ3ZOSepUkmKjWTfV+rTVJCDEBLicpqAoeYUqLm6tdVyv9JHaiOPnUZ497GcEmSzI2HNKrYRmRbCCUjSzmjfsjCshw0pu3HK5aWfdbSeBGbE96YyDkcGgeNC5DE-DMRXl080fdKShDWTiCkAR8QHDCLsG05JyjfLHhNEhrIAWtHqcoIFh0qSmNyPkEcHc9Riz4o5UCDx3ZbiXBEPZmLxmcGQOMYgTBYCQNorwh+Ql4VUgSD4J6uRPAhEpRqWhYRjoXCCEy2BnAACiqkcAEpbvyzUKdhVPXtOK66oExwY3VEI1Ffhd4gLKEAA */\n id: \"SignTransactionDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.OPEN_APP,\n },\n _internalState: {\n error: null,\n appConfig: null,\n clearSignContexts: null,\n serializedTransaction: null,\n chainId: null,\n web3Check: null,\n transactionType: null,\n isLegacy: true,\n signature: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.OPEN_APP,\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 step: SignTransactionDAStep.OPEN_APP,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignTransactionDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"GetAppConfig\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n GetAppConfig: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.GET_APP_CONFIG,\n },\n }),\n invoke: {\n id: \"getAppConfig\",\n src: \"getAppConfig\",\n onDone: {\n target: \"GetAppConfigResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n appConfig: event.output.data,\n };\n } else {\n return {\n ...context._internalState,\n error: event.output.error,\n };\n }\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetAppConfigResultCheck: {\n always: [\n {\n target: \"Web3ChecksOptIn\",\n guard: and([\n \"noInternalError\",\n \"isWeb3ChecksSupported\",\n \"shouldOptIn\",\n ]),\n },\n {\n target: \"BuildContext\",\n guard: \"noInternalError\",\n },\n {\n target: \"Error\",\n },\n ],\n },\n Web3ChecksOptIn: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.Web3ChecksOptIn,\n step: SignTransactionDAStep.WEB3_CHECKS_OPT_IN,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.WEB3_CHECKS_OPT_IN,\n },\n }),\n invoke: {\n id: \"web3CheckOptIn\",\n src: \"web3CheckOptIn\",\n onDone: {\n target: \"BuildContext\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n appConfig: {\n ...context._internalState.appConfig!,\n web3ChecksEnabled: event.output.data.enabled,\n },\n };\n } else {\n return context._internalState;\n }\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildContext: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.BUILD_CONTEXT,\n },\n }),\n invoke: {\n id: \"buildContext\",\n src: \"buildContext\",\n input: ({ context }) => ({\n contextModule: context.input.contextModule,\n mapper: context.input.mapper,\n transaction: context.input.transaction,\n options: context.input.options,\n appConfig: context._internalState.appConfig!,\n derivationPath: context.input.derivationPath,\n }),\n onDone: {\n target: \"BuildContextResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => ({\n ...context._internalState,\n clearSignContexts: event.output.clearSignContexts!,\n web3Check: event.output.web3Check,\n serializedTransaction: event.output.serializedTransaction,\n chainId: event.output.chainId,\n transactionType: event.output.transactionType,\n }),\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildContextResultCheck: {\n always: [\n {\n target: \"ProvideGenericContext\",\n guard: \"isGenericContext\",\n },\n {\n target: \"ProvideContext\",\n },\n ],\n },\n ProvideContext: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.PROVIDE_CONTEXT,\n },\n }),\n invoke: {\n id: \"provideContext\",\n src: \"provideContext\",\n input: ({ context }) => ({\n clearSignContexts: context._internalState\n .clearSignContexts as ClearSignContextSuccess[],\n web3Check: context._internalState.web3Check,\n }),\n onDone: {\n target: \"SignTransaction\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ProvideGenericContext: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.PROVIDE_GENERIC_CONTEXT,\n },\n }),\n invoke: {\n id: \"provideGenericContext\",\n src: \"provideGenericContext\",\n input: ({ context }) => ({\n contextModule: context.input.contextModule,\n transactionParser: context.input.parser,\n chainId: context._internalState.chainId!,\n derivationPath: context.input.derivationPath,\n serializedTransaction:\n context._internalState.serializedTransaction!,\n context: context._internalState\n .clearSignContexts as GenericContext,\n web3Check: context._internalState.web3Check,\n }),\n onDone: {\n actions: assign({\n _internalState: ({ event, context }) => {\n const { isLegacy: _, ...rest } = context._internalState;\n return event.output.caseOf({\n Just: () => ({\n ...rest,\n isLegacy: false,\n }),\n Nothing: () => ({\n ...rest,\n isLegacy: false,\n }),\n });\n },\n }),\n // NOTE: don't check errors to fallback to blind signing\n target: \"SignTransaction\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignTransaction: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n step: SignTransactionDAStep.SIGN_TRANSACTION,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.SIGN_TRANSACTION,\n },\n }),\n invoke: {\n id: \"signTransaction\",\n src: \"signTransaction\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n serializedTransaction:\n context._internalState.serializedTransaction!,\n chainId: context._internalState.chainId!,\n transactionType: context._internalState.transactionType!,\n isLegacy: context._internalState.isLegacy,\n }),\n onDone: {\n target: \"SignTransactionResultCheck\",\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 SignTransactionResultCheck: {\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 getAppConfig = async () =>\n internalApi.sendCommand(new GetAppConfiguration());\n const web3CheckOptIn = async () =>\n internalApi.sendCommand(new Web3CheckOptInCommand());\n const buildContext = async (arg0: {\n input: BuildTransactionContextTaskArgs;\n }) => new BuildTransactionContextTask(internalApi, arg0.input).run();\n\n const provideContext = async (arg0: {\n input: {\n clearSignContexts: ClearSignContextSuccess[];\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n };\n }) =>\n new ProvideTransactionContextTask(internalApi, {\n clearSignContexts: arg0.input.clearSignContexts,\n web3Check: arg0.input.web3Check,\n }).run();\n\n const provideGenericContext = async (arg0: {\n input: {\n contextModule: ContextModule;\n transactionParser: TransactionParserService;\n chainId: number;\n derivationPath: string;\n serializedTransaction: Uint8Array;\n context: GenericContext;\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n };\n }) =>\n new ProvideTransactionGenericContextTask(internalApi, {\n contextModule: arg0.input.contextModule,\n transactionParser: arg0.input.transactionParser,\n chainId: arg0.input.chainId,\n derivationPath: arg0.input.derivationPath,\n serializedTransaction: arg0.input.serializedTransaction,\n context: arg0.input.context,\n web3Check: arg0.input.web3Check,\n }).run();\n\n const signTransaction = async (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionType: TransactionType;\n isLegacy: boolean;\n };\n }) => new SendSignTransactionTask(internalApi, arg0.input).run();\n\n return {\n getAppConfig,\n web3CheckOptIn,\n buildContext,\n provideContext,\n provideGenericContext,\n signTransaction,\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["DeviceModelId", "isSuccessCommandResult", "OpenAppDeviceAction", "UnknownDAError", "UserInteractionRequired", "XStateDeviceAction", "Left", "Right", "and", "assign", "fromPromise", "setup", "SignTransactionDAStep", "GetAppConfiguration", "Web3CheckOptInCommand", "ETHEREUM_PLUGINS", "BuildTransactionContextTask", "ProvideTransactionContextTask", "ProvideTransactionGenericContextTask", "SendSignTransactionTask", "ApplicationChecker", "SignTransactionDeviceAction", "internalApi", "getAppConfig", "web3CheckOptIn", "buildContext", "provideContext", "provideGenericContext", "signTransaction", "context", "_", "input", "error", "event", "rest", "arg0"]
4
+ "sourcesContent": ["import {\n type CommandErrorResult,\n type CommandResult,\n type DeviceActionStateMachine,\n DeviceModelId,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Either, Left, Right } from \"purify-ts\";\nimport { and, assign, fromPromise, setup } from \"xstate\";\n\nimport { type GetConfigCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\nimport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n SignTransactionDAStep,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type ClearSigningType } from \"@api/model/ClearSigningType\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport { GetAppConfiguration } from \"@internal/app-binder/command/GetAppConfigurationCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport {\n Web3CheckOptInCommand,\n type Web3CheckOptInCommandResponse,\n} from \"@internal/app-binder/command/Web3CheckOptInCommand\";\nimport {\n BuildSubContextTask,\n type BuildSubContextTaskArgs,\n} from \"@internal/app-binder/task/BuildSubContextTask\";\nimport {\n BuildTransactionContextTask,\n type BuildTransactionContextTaskArgs,\n type BuildTransactionTaskResult,\n} from \"@internal/app-binder/task/BuildTransactionContextTask\";\nimport {\n PreBuildContextTask,\n type PreBuildContextTaskArgs,\n type PreBuildContextTaskResult,\n} from \"@internal/app-binder/task/PreBuildContextTask\";\nimport { ProvideTransactionContextTask } from \"@internal/app-binder/task/ProvideTransactionContextTask\";\nimport { SendSignTransactionTask } from \"@internal/app-binder/task/SendSignTransactionTask\";\nimport { ApplicationChecker } from \"@internal/shared/utils/ApplicationChecker\";\n\nexport type MachineDependencies = {\n readonly getAppConfig: () => Promise<\n CommandResult<GetConfigCommandResponse, EthErrorCodes>\n >;\n readonly web3CheckOptIn: () => Promise<\n CommandResult<Web3CheckOptInCommandResponse, EthErrorCodes>\n >;\n readonly preBuildContext: (arg0: {\n input: PreBuildContextTaskArgs;\n }) => Promise<PreBuildContextTaskResult>;\n readonly buildContext: (arg0: {\n input: BuildTransactionContextTaskArgs;\n }) => Promise<BuildTransactionTaskResult>;\n readonly buildSubContextAndProvide: (arg0: {\n input: BuildSubContextTaskArgs & {\n derivationPath: string;\n transaction: Uint8Array;\n };\n }) => Promise<Either<CommandErrorResult<EthErrorCodes>, void>>;\n readonly signTransaction: (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionType: TransactionType;\n clearSigningType: ClearSigningType;\n };\n }) => Promise<CommandResult<Signature, EthErrorCodes>>;\n};\n\nexport class SignTransactionDeviceAction extends XStateDeviceAction<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n > {\n type types = StateMachineTypes<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n >;\n\n const {\n getAppConfig,\n web3CheckOptIn,\n preBuildContext,\n buildContext,\n signTransaction,\n buildSubContextAndProvide,\n } = 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 getAppConfig: fromPromise(getAppConfig),\n web3CheckOptIn: fromPromise(web3CheckOptIn),\n preBuildContext: fromPromise(preBuildContext),\n buildContext: fromPromise(buildContext),\n signTransaction: fromPromise(signTransaction),\n buildSubContextAndProvide: fromPromise(buildSubContextAndProvide),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n isWeb3ChecksSupported: ({ context }) =>\n new ApplicationChecker(\n internalApi.getDeviceSessionState(),\n context._internalState.appConfig!,\n )\n .withMinVersionExclusive(\"1.15.0\")\n .excludeDeviceModel(DeviceModelId.NANO_S)\n .excludeDeviceModel(DeviceModelId.NANO_SP)\n .excludeDeviceModel(DeviceModelId.NANO_X)\n .check(),\n shouldOptIn: ({ context }) =>\n !context._internalState.appConfig!.web3ChecksEnabled &&\n !context._internalState.appConfig!.web3ChecksOptIn,\n skipOpenApp: ({ context }) => !!context.input.options.skipOpenApp,\n hasContextToProvide: ({ context }) =>\n context._internalState.clearSignContexts !== null &&\n context._internalState.clearSignContexts.length > 0,\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 N4IgpgJg5mDOIC5QGUCWUB2AVATgQw1jwGMAXVAewwBEwA3VYsAQTMowDoB5ABzA2Y8etBk1bkqAYghUwHVBjoUA1nIp8BQ5KTykwAWRIALBWADaABgC6iUDwqxUEjLZAAPRABYAzAHYOAJwAHACMAb4ArBYWAEw+FkHeADQgAJ6IwRYcAGwRQUG52TF5EcUAvmUpaJi4BERsVCKMLA2cAMJGYMTKvPyCwvTN4uwASnAArgA2pJKWNkgg9o7Orh4IAcEcpRYhvonZAd4byWmIITtZESEhBTHeEVH33hVV6Nj4hCTOTWKtHB1dHoafo-FrOMawKYzMwheZ2BxOdirDKbba7faHY4pdIIUIcG6+bwWbKeXwxIKeTzkl4garvOpfdig4ZUDgAcTApA6eEmk34MGksnkihUchgXKMPL5GBgc1cS0RVGRCBCngC2Q4aqCewCEWyQUyJxx5x2HBiByCsV8AQsaoinhpdNqn1azL+HIlUv5YEkYBwOAoOA4PEmugAZoGALYccXc3neuULBUrBZrVXqzXBHV6g2Wo1nDaasIWXxkwkxW0xXyOt7O+rfQa-Zzszlx6UwCFQgHdWbWeUIlOgNMBTxBDiJby3MkmiK+bFnCzeEL4mLm4m5aLeB2VWm1j71pmNsHsFue+MysCd6bd5SzWH95ZI1MF0fj7yTorT6Kz+cILfLhJEgiDZslVXwLACGsan3RlGiPFlOAAIXGVBJggNoqD0NwZhkDA5AUJRVA4AAjFC0IwjAsNIRN4UfJVnwQOJPCyIJyWLHYqV1bJf3OGJl3yYlfFA0dsiOZ4dydGDXXgv5kNQ9DMLAbDfX9QNg1DUgIxwaNSPkiiqJoxYByfIdECYli2JtDiYi439PGAjhvArVdrT4skDm3V5oIZaTRGPVk5PIxTsKvCVAV7OEjLolwGPJfJMwrUkjkiNUeIsK4OEJLdLWiUI9ig+kXQbPyEI4QKFMopTSFCm870i5MTPcMz8jHNVEsJcJ7QCX88pySJSlKPw7jCAq61gmgZObAAFAMGAgMB9KqwU8OFQi5B4WbUHmxbsMMhr6NMv9RzHFK8kiLdBu405cQSTV32Ym5slAw4YlGqTiqGP4ZooOaFuCmY-QDIMQ3DKNg027b-r24yDqao74tO7UIguu4rpxbJokCA0rmJCDjk83dvKKw8Sq+iGwA5PCcEYHacKFAjRXBn6top-g-RpqG+yTGGYsO7KTvtM7kfs1HfyszLfDCbIySpdzxK8wqDzg0npvJyn2eIWmVKB9TQe0pnfvV6nNc5+qeeVfnMsFpGUe8NGF3snI8liViQlEolIIkvcfI+psT0kn32GW-CRSIxwiaVjBoei5VmL2M1SSCB4KyTykIh6wtDgKcJJbyAIRq9iPxrdZsA+JqRAbUkHNLB8PFfG6PFV5uG47HOI9mThJ7Xs39fCpJ3tRe4JzTewPlc+0vvfLjAas6HtG8HFuuo4YldiXOJQgpdProCGzMvz-VOOYuPR+nkv-anyPZ-CmEzZjhj7LVFfQMJEIN5uHvrvyTxHPJEtgIKKUXIFQdwYAoPNeACwy6R3PrDfazc1gAFp7YIGQSvaIGDMEYNnKfGBk0Ty9E0AMFWjV4GxxiGLPUCc9SlGCKBSsuDi74NZDeQhIJmEzwmNMB8TdlT6n8HxEIeoP5kichQ66JoYgrzytjDBk5qyF3rr5CeJ4PRtm9DwxeaYbhjkHtla0dtRJzh3knfEs53wbHztaHwjDlF+1ZGoyU54OxcLCt0TRjU0zgW8IECCrF872Q2PaNKq4ci7yeuSPINxqSKLGnY-ySEyIVSoh42Gaw+JHHxIcaIGxOIlnzCqb8mV9QZK3McJOtjfYJLKkk2m193Hc3vodc0r47i7xssBEIS40o+EcouZGRQ3ZOSepUkmKjWTfV+rTVJCDEBLicpqAoeYUqLm6tdVyv9JHaiOPnUZ497GcEmSzI2HNKrYRmRbCCUjSzmjfsjCshw0pu3HK5aWfdbSeBGbE96YyDkcGgeNC5DE-DMRXl080fdKShDWTiCkAR8QHDCLsG05JyjfLHhNEhrIAWtHqcoIFh0qSmNyPkEcHc9Riz4o5UCDx3ZbiXBEPZmLxmcGQOMYgTBYCQNorwh+Ql4VUgSD4J6uRPAhEpRqWhYRjoXCCEy2BnAACiqkcAEpbvyzUKdhVPXtOK66oExwY3VEI1Ffhd4gLKEAA */\n id: \"SignTransactionDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.OPEN_APP,\n },\n _internalState: {\n error: null,\n appConfig: null,\n clearSignContexts: null,\n clearSignContextsOptional: null,\n subset: null,\n transactionType: null,\n clearSigningType: null,\n signature: null,\n },\n };\n },\n states: {\n InitialState: {\n always: [\n {\n target: \"GetAppConfig\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n invoke: {\n id: \"openAppStateMachine\",\n input: {\n appName: \"Ethereum\",\n },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.event.snapshot.context.intermediateValue,\n step: SignTransactionDAStep.OPEN_APP,\n }),\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignTransactionDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"GetAppConfig\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n GetAppConfig: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.GET_APP_CONFIG,\n },\n }),\n invoke: {\n id: \"getAppConfig\",\n src: \"getAppConfig\",\n onDone: {\n target: \"GetAppConfigResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n appConfig: event.output.data,\n };\n } else {\n return {\n ...context._internalState,\n error: event.output.error,\n };\n }\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetAppConfigResultCheck: {\n always: [\n {\n target: \"Web3ChecksOptIn\",\n guard: and([\n \"noInternalError\",\n \"isWeb3ChecksSupported\",\n \"shouldOptIn\",\n ]),\n },\n {\n target: \"PreBuildContext\",\n guard: \"noInternalError\",\n },\n {\n target: \"Error\",\n },\n ],\n },\n Web3ChecksOptIn: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.Web3ChecksOptIn,\n step: SignTransactionDAStep.WEB3_CHECKS_OPT_IN,\n },\n }),\n invoke: {\n id: \"web3CheckOptIn\",\n src: \"web3CheckOptIn\",\n onDone: {\n target: \"Web3ChecksOptInResult\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n appConfig: {\n ...context._internalState.appConfig!,\n web3ChecksEnabled: event.output.data.enabled,\n },\n };\n } else {\n return context._internalState;\n }\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n Web3ChecksOptInResult: {\n entry: assign(({ context }) => ({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.WEB3_CHECKS_OPT_IN_RESULT,\n result: context._internalState.appConfig!.web3ChecksEnabled,\n },\n })),\n // Using after transition to force a snapshot of the state after the entry action\n // This ensures the intermediateValue is captured before moving to BuildContext\n after: {\n 0: {\n target: \"PreBuildContext\",\n },\n },\n },\n PreBuildContext: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.PRE_BUILD_CONTEXT,\n },\n }),\n invoke: {\n id: \"preBuildContext\",\n src: \"preBuildContext\",\n input: ({ context }) => ({\n mapper: context.input.mapper,\n transaction: context.input.transaction,\n }),\n onDone: {\n target: \"BuildContext\",\n actions: assign({\n _internalState: ({ event, context }) => ({\n ...context._internalState,\n transactionType: event.output.type,\n subset: event.output.subset,\n }),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildContext: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.BUILD_CONTEXT,\n },\n }),\n invoke: {\n id: \"buildContext\",\n src: \"buildContext\",\n input: ({ context }) => ({\n contextModule: context.input.contextModule,\n options: context.input.options,\n appConfig: context._internalState.appConfig!,\n derivationPath: context.input.derivationPath,\n transaction: context.input.transaction,\n subset: context._internalState.subset!,\n }),\n onDone: {\n target: \"HasContextToProvideCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => ({\n ...context._internalState,\n clearSignContexts: event.output.clearSignContexts!,\n clearSignContextsOptional:\n event.output.clearSignContextsOptional!,\n clearSigningType: event.output.clearSigningType,\n }),\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n HasContextToProvideCheck: {\n always: [\n {\n target: \"BuildSubContextAndProvide\",\n guard: \"hasContextToProvide\",\n },\n {\n target: \"SignTransaction\",\n },\n ],\n },\n BuildSubContextAndProvide: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE,\n },\n }),\n exit: assign({\n // remove the first context as it has been consumed\n _internalState: ({ context }) => ({\n ...context._internalState,\n clearSignContexts:\n context._internalState.clearSignContexts!.slice(1),\n }),\n }),\n invoke: {\n id: \"buildSubContextAndProvide\",\n src: \"buildSubContextAndProvide\",\n input: ({ context }) => ({\n context: context._internalState.clearSignContexts![0]!,\n contextOptional:\n context._internalState.clearSignContextsOptional!,\n transactionParser: context.input.parser,\n transaction: context.input.transaction!,\n contextModule: context.input.contextModule,\n subset: context._internalState.subset!,\n derivationPath: context.input.derivationPath,\n }),\n onDone: {\n target: \"HasContextToProvideCheck\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignTransaction: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n step: SignTransactionDAStep.SIGN_TRANSACTION,\n },\n }),\n invoke: {\n id: \"signTransaction\",\n src: \"signTransaction\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n serializedTransaction: context.input.transaction,\n chainId: context._internalState.subset!.chainId,\n transactionType: context._internalState.transactionType!,\n clearSigningType: context._internalState.clearSigningType!,\n }),\n onDone: {\n target: \"SignTransactionResultCheck\",\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 SignTransactionResultCheck: {\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 getAppConfig = async () =>\n internalApi.sendCommand(new GetAppConfiguration());\n const web3CheckOptIn = async () =>\n internalApi.sendCommand(new Web3CheckOptInCommand());\n const preBuildContext = async (arg0: { input: PreBuildContextTaskArgs }) =>\n Promise.resolve(\n new PreBuildContextTask({\n mapper: arg0.input.mapper,\n transaction: arg0.input.transaction,\n }).run(),\n );\n const buildContext = async (arg0: {\n input: BuildTransactionContextTaskArgs;\n }) => new BuildTransactionContextTask(internalApi, arg0.input).run();\n\n const buildSubContextAndProvide = async (arg0: {\n input: BuildSubContextTaskArgs & {\n derivationPath: string;\n transaction: Uint8Array;\n };\n }) => {\n const { subcontextCallbacks } = new BuildSubContextTask(internalApi, {\n context: arg0.input.context,\n contextOptional: arg0.input.contextOptional,\n transactionParser: arg0.input.transactionParser,\n subset: arg0.input.subset,\n contextModule: arg0.input.contextModule,\n }).run();\n return new ProvideTransactionContextTask(internalApi, {\n context: arg0.input.context,\n subcontextsCallbacks: subcontextCallbacks,\n serializedTransaction: arg0.input.transaction,\n derivationPath: arg0.input.derivationPath,\n }).run();\n };\n\n const signTransaction = async (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionType: TransactionType;\n clearSigningType: ClearSigningType;\n };\n }) =>\n new SendSignTransactionTask(internalApi, {\n ...arg0.input,\n }).run();\n\n return {\n getAppConfig,\n web3CheckOptIn,\n preBuildContext,\n buildContext,\n buildSubContextAndProvide,\n signTransaction,\n };\n }\n}\n"],
5
+ "mappings": "AAAA,OAIE,iBAAAA,EAEA,0BAAAC,EACA,uBAAAC,EAEA,kBAAAC,EACA,2BAAAC,EACA,sBAAAC,MACK,kCACP,OAAsB,QAAAC,EAAM,SAAAC,MAAa,YACzC,OAAS,OAAAC,EAAK,UAAAC,EAAQ,eAAAC,EAAa,SAAAC,MAAa,SAGhD,OAME,yBAAAC,MACK,mDAIP,OAAS,uBAAAC,MAA2B,0DAEpC,OACE,yBAAAC,MAEK,qDACP,OACE,uBAAAC,MAEK,gDACP,OACE,+BAAAC,MAGK,wDACP,OACE,uBAAAC,MAGK,gDACP,OAAS,iCAAAC,MAAqC,0DAC9C,OAAS,2BAAAC,MAA+B,oDACxC,OAAS,sBAAAC,MAA0B,4CAgC5B,MAAMC,UAAoChB,CAM/C,CACA,iBACEiB,EAOA,CASA,KAAM,CACJ,aAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,0BAAAC,CACF,EAAI,KAAK,oBAAoBN,CAAW,EAExC,OAAOX,EAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EACA,OAAQ,CACN,oBAAqB,IAAIT,EAAoB,CAC3C,MAAO,CAAE,QAAS,UAAW,CAC/B,CAAC,EAAE,iBAAiBoB,CAAW,EAC/B,aAAcZ,EAAYa,CAAY,EACtC,eAAgBb,EAAYc,CAAc,EAC1C,gBAAiBd,EAAYe,CAAe,EAC5C,aAAcf,EAAYgB,CAAY,EACtC,gBAAiBhB,EAAYiB,CAAe,EAC5C,0BAA2BjB,EAAYkB,CAAyB,CAClE,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAC,CAAQ,IAAMA,EAAQ,eAAe,QAAU,KACnE,sBAAuB,CAAC,CAAE,QAAAA,CAAQ,IAChC,IAAIT,EACFE,EAAY,sBAAsB,EAClCO,EAAQ,eAAe,SACzB,EACG,wBAAwB,QAAQ,EAChC,mBAAmB7B,EAAc,MAAM,EACvC,mBAAmBA,EAAc,OAAO,EACxC,mBAAmBA,EAAc,MAAM,EACvC,MAAM,EACX,YAAa,CAAC,CAAE,QAAA6B,CAAQ,IACtB,CAACA,EAAQ,eAAe,UAAW,mBACnC,CAACA,EAAQ,eAAe,UAAW,gBACrC,YAAa,CAAC,CAAE,QAAAA,CAAQ,IAAM,CAAC,CAACA,EAAQ,MAAM,QAAQ,YACtD,oBAAqB,CAAC,CAAE,QAAAA,CAAQ,IAC9BA,EAAQ,eAAe,oBAAsB,MAC7CA,EAAQ,eAAe,kBAAkB,OAAS,CACtD,EACA,QAAS,CACP,qBAAsBpB,EAAO,CAC3B,eAAiBqB,IAAO,CACtB,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,KACjB,EACF,CAAC,CACH,CACF,CAAC,EAAE,cAAc,CAEf,GAAI,8BACJ,QAAS,eACT,QAAS,CAAC,CAAE,MAAAC,CAAM,KACT,CACL,MAAAA,EACA,kBAAmB,CACjB,wBAAyB3B,EAAwB,KACjD,KAAMQ,EAAsB,QAC9B,EACA,eAAgB,CACd,MAAO,KACP,UAAW,KACX,kBAAmB,KACnB,0BAA2B,KAC3B,OAAQ,KACR,gBAAiB,KACjB,iBAAkB,KAClB,UAAW,IACb,CACF,GAEF,OAAQ,CACN,aAAc,CACZ,OAAQ,CACN,CACE,OAAQ,eACR,MAAO,aACT,EACA,qBACF,CACF,EACA,oBAAqB,CACnB,OAAQ,CACN,GAAI,sBACJ,MAAO,CACL,QAAS,UACX,EACA,IAAK,sBACL,WAAY,CACV,QAASH,EAAO,CACd,kBAAoBqB,IAAO,CACzB,GAAGA,EAAE,MAAM,SAAS,QAAQ,kBAC5B,KAAMlB,EAAsB,QAC9B,EACF,CAAC,CACH,EACA,OAAQ,CACN,QAASH,EAAO,CACd,eAAiBqB,GACRA,EAAE,MAAM,OAAO,OAAuC,CAC3D,MAAO,IAAMA,EAAE,QAAQ,eACvB,KAAOE,IAAW,CAChB,GAAGF,EAAE,QAAQ,eACb,MAAAE,CACF,EACF,CAAC,CAEL,CAAC,EACD,OAAQ,gCACV,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CACE,OAAQ,eACR,MAAO,iBACT,EACA,OACF,CACF,EACA,aAAc,CACZ,MAAOvB,EAAO,CACZ,kBAAmB,CACjB,wBAAyBL,EAAwB,KACjD,KAAMQ,EAAsB,cAC9B,CACF,CAAC,EACD,OAAQ,CACN,GAAI,eACJ,IAAK,eACL,OAAQ,CACN,OAAQ,0BACR,QAAS,CACPH,EAAO,CACL,eAAgB,CAAC,CAAE,MAAAwB,EAAO,QAAAJ,CAAQ,IAC5B5B,EAAuBgC,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,UAAWI,EAAM,OAAO,IAC1B,EAEO,CACL,GAAGJ,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAGN,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,wBAAyB,CACvB,OAAQ,CACN,CACE,OAAQ,kBACR,MAAOzB,EAAI,CACT,kBACA,wBACA,aACF,CAAC,CACH,EACA,CACE,OAAQ,kBACR,MAAO,iBACT,EACA,CACE,OAAQ,OACV,CACF,CACF,EACA,gBAAiB,CACf,MAAOC,EAAO,CACZ,kBAAmB,CACjB,wBAAyBL,EAAwB,gBACjD,KAAMQ,EAAsB,kBAC9B,CACF,CAAC,EACD,OAAQ,CACN,GAAI,iBACJ,IAAK,iBACL,OAAQ,CACN,OAAQ,wBACR,QAAS,CACPH,EAAO,CACL,eAAgB,CAAC,CAAE,MAAAwB,EAAO,QAAAJ,CAAQ,IAC5B5B,EAAuBgC,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,UAAW,CACT,GAAGA,EAAQ,eAAe,UAC1B,kBAAmBI,EAAM,OAAO,KAAK,OACvC,CACF,EAEOJ,EAAQ,cAGrB,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,sBAAuB,CACrB,MAAOpB,EAAO,CAAC,CAAE,QAAAoB,CAAQ,KAAO,CAC9B,kBAAmB,CACjB,wBAAyBzB,EAAwB,KACjD,KAAMQ,EAAsB,0BAC5B,OAAQiB,EAAQ,eAAe,UAAW,iBAC5C,CACF,EAAE,EAGF,MAAO,CACL,EAAG,CACD,OAAQ,iBACV,CACF,CACF,EACA,gBAAiB,CACf,MAAOpB,EAAO,CACZ,kBAAmB,CACjB,wBAAyBL,EAAwB,KACjD,KAAMQ,EAAsB,iBAC9B,CACF,CAAC,EACD,OAAQ,CACN,GAAI,kBACJ,IAAK,kBACL,MAAO,CAAC,CAAE,QAAAiB,CAAQ,KAAO,CACvB,OAAQA,EAAQ,MAAM,OACtB,YAAaA,EAAQ,MAAM,WAC7B,GACA,OAAQ,CACN,OAAQ,eACR,QAASpB,EAAO,CACd,eAAgB,CAAC,CAAE,MAAAwB,EAAO,QAAAJ,CAAQ,KAAO,CACvC,GAAGA,EAAQ,eACX,gBAAiBI,EAAM,OAAO,KAC9B,OAAQA,EAAM,OAAO,MACvB,EACF,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,aAAc,CACZ,MAAOxB,EAAO,CACZ,kBAAmB,CACjB,wBAAyBL,EAAwB,KACjD,KAAMQ,EAAsB,aAC9B,CACF,CAAC,EACD,OAAQ,CACN,GAAI,eACJ,IAAK,eACL,MAAO,CAAC,CAAE,QAAAiB,CAAQ,KAAO,CACvB,cAAeA,EAAQ,MAAM,cAC7B,QAASA,EAAQ,MAAM,QACvB,UAAWA,EAAQ,eAAe,UAClC,eAAgBA,EAAQ,MAAM,eAC9B,YAAaA,EAAQ,MAAM,YAC3B,OAAQA,EAAQ,eAAe,MACjC,GACA,OAAQ,CACN,OAAQ,2BACR,QAAS,CACPpB,EAAO,CACL,eAAgB,CAAC,CAAE,MAAAwB,EAAO,QAAAJ,CAAQ,KAAO,CACvC,GAAGA,EAAQ,eACX,kBAAmBI,EAAM,OAAO,kBAChC,0BACEA,EAAM,OAAO,0BACf,iBAAkBA,EAAM,OAAO,gBACjC,EACF,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,yBAA0B,CACxB,OAAQ,CACN,CACE,OAAQ,4BACR,MAAO,qBACT,EACA,CACE,OAAQ,iBACV,CACF,CACF,EACA,0BAA2B,CACzB,MAAOxB,EAAO,CACZ,kBAAmB,CACjB,wBAAyBL,EAAwB,KACjD,KAAMQ,EAAsB,6BAC9B,CACF,CAAC,EACD,KAAMH,EAAO,CAEX,eAAgB,CAAC,CAAE,QAAAoB,CAAQ,KAAO,CAChC,GAAGA,EAAQ,eACX,kBACEA,EAAQ,eAAe,kBAAmB,MAAM,CAAC,CACrD,EACF,CAAC,EACD,OAAQ,CACN,GAAI,4BACJ,IAAK,4BACL,MAAO,CAAC,CAAE,QAAAA,CAAQ,KAAO,CACvB,QAASA,EAAQ,eAAe,kBAAmB,CAAC,EACpD,gBACEA,EAAQ,eAAe,0BACzB,kBAAmBA,EAAQ,MAAM,OACjC,YAAaA,EAAQ,MAAM,YAC3B,cAAeA,EAAQ,MAAM,cAC7B,OAAQA,EAAQ,eAAe,OAC/B,eAAgBA,EAAQ,MAAM,cAChC,GACA,OAAQ,CACN,OAAQ,0BACV,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,gBAAiB,CACf,MAAOpB,EAAO,CACZ,kBAAmB,CACjB,wBAAyBL,EAAwB,gBACjD,KAAMQ,EAAsB,gBAC9B,CACF,CAAC,EACD,OAAQ,CACN,GAAI,kBACJ,IAAK,kBACL,MAAO,CAAC,CAAE,QAAAiB,CAAQ,KAAO,CACvB,eAAgBA,EAAQ,MAAM,eAC9B,sBAAuBA,EAAQ,MAAM,YACrC,QAASA,EAAQ,eAAe,OAAQ,QACxC,gBAAiBA,EAAQ,eAAe,gBACxC,iBAAkBA,EAAQ,eAAe,gBAC3C,GACA,OAAQ,CACN,OAAQ,6BACR,QAAS,CACPpB,EAAO,CACL,eAAgB,CAAC,CAAE,MAAAwB,EAAO,QAAAJ,CAAQ,IAC5B5B,EAAuBgC,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,UAAWI,EAAM,OAAO,IAC1B,EAEK,CACL,GAAGJ,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,2BAA4B,CAC1B,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,SAAU,EAC9C,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,QAAS,CACP,KAAM,OACR,EACA,MAAO,CACL,KAAM,OACR,CACF,EACA,OAAQ,CAAC,CAAE,QAAAJ,CAAQ,IACjBA,EAAQ,eAAe,UACnBtB,EAAMsB,EAAQ,eAAe,SAAS,EACtCvB,EACEuB,EAAQ,eAAe,OACrB,IAAI1B,EAAe,yBAAyB,CAChD,CACR,CAAC,CACH,CAEA,oBAAoBmB,EAA+C,CAkDjE,MAAO,CACL,aAlDmB,SACnBA,EAAY,YAAY,IAAIT,CAAqB,EAkDjD,eAjDqB,SACrBS,EAAY,YAAY,IAAIR,CAAuB,EAiDnD,gBAhDsB,MAAOoB,GAC7B,QAAQ,QACN,IAAIjB,EAAoB,CACtB,OAAQiB,EAAK,MAAM,OACnB,YAAaA,EAAK,MAAM,WAC1B,CAAC,EAAE,IAAI,CACT,EA2CA,aA1CmB,MAAOA,GAEtB,IAAIlB,EAA4BM,EAAaY,EAAK,KAAK,EAAE,IAAI,EAyCjE,0BAvCgC,MAAOA,GAKnC,CACJ,KAAM,CAAE,oBAAAC,CAAoB,EAAI,IAAIpB,EAAoBO,EAAa,CACnE,QAASY,EAAK,MAAM,QACpB,gBAAiBA,EAAK,MAAM,gBAC5B,kBAAmBA,EAAK,MAAM,kBAC9B,OAAQA,EAAK,MAAM,OACnB,cAAeA,EAAK,MAAM,aAC5B,CAAC,EAAE,IAAI,EACP,OAAO,IAAIhB,EAA8BI,EAAa,CACpD,QAASY,EAAK,MAAM,QACpB,qBAAsBC,EACtB,sBAAuBD,EAAK,MAAM,YAClC,eAAgBA,EAAK,MAAM,cAC7B,CAAC,EAAE,IAAI,CACT,EAqBE,gBAnBsB,MAAOA,GAS7B,IAAIf,EAAwBG,EAAa,CACvC,GAAGY,EAAK,KACV,CAAC,EAAE,IAAI,CAST,CACF,CACF",
6
+ "names": ["DeviceModelId", "isSuccessCommandResult", "OpenAppDeviceAction", "UnknownDAError", "UserInteractionRequired", "XStateDeviceAction", "Left", "Right", "and", "assign", "fromPromise", "setup", "SignTransactionDAStep", "GetAppConfiguration", "Web3CheckOptInCommand", "BuildSubContextTask", "BuildTransactionContextTask", "PreBuildContextTask", "ProvideTransactionContextTask", "SendSignTransactionTask", "ApplicationChecker", "SignTransactionDeviceAction", "internalApi", "getAppConfig", "web3CheckOptIn", "preBuildContext", "buildContext", "signTransaction", "buildSubContextAndProvide", "context", "_", "input", "error", "event", "arg0", "subcontextCallbacks"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ClearSignContextType as E}from"@ledgerhq/context-module";import{CommandResultFactory as I,DeviceActionStatus as e,DeviceModelId as U,DeviceSessionStateType as w,DeviceStatus as _,hexaStringToBuffer as D,UnknownDAError as S,UserInteractionRequired as t}from"@ledgerhq/device-management-kit";import{InvalidStatusWordError as l}from"@ledgerhq/device-management-kit";import{Transaction as q}from"ethers";import{Just as k,Nothing as y}from"purify-ts";import{SignTransactionDAStep as n}from"../../../../api/app-binder/SignTransactionDeviceActionTypes";import{TransactionType as T}from"../../../../api/model/TransactionType";import{makeDeviceActionInternalApiMock as R}from"../../../app-binder/device-action/__test-utils__/makeInternalApi";import{setupOpenAppDAMock as C}from"../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock";import{testDeviceActionStates as f}from"../../../app-binder/device-action/__test-utils__/testDeviceActionStates";import{SignTransactionDeviceAction as v}from"./SignTransactionDeviceAction";vi.mock("@ledgerhq/device-management-kit",async o=>({...await o(),OpenAppDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("SignTransactionDeviceAction",()=>{const o={getContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn()},c={mapTransactionToSubset:vi.fn()},P={extractValue:vi.fn()},N=vi.fn(),h=vi.fn(),d=vi.fn(),b=vi.fn(),V=vi.fn(),g=vi.fn();function m(){return{getAppConfig:N,web3CheckOptIn:h,buildContext:d,provideContext:b,provideGenericContext:V,signTransaction:g}}const x=R(),p={domain:"domain-name.eth"},u=D(q.from({chainId:1n,nonce:0,data:"0x"}).unsignedSerialized);function O(i,r,a){return{blindSigningEnabled:!1,web3ChecksEnabled:r,web3ChecksOptIn:a,version:i}}function A(i,r,a){x.getDeviceSessionState.mockReturnValueOnce({sessionStateType:w.ReadyWithoutSecureChannel,deviceStatus:_.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:i},deviceModelId:U.FLEX,isSecureConnectionAllowed:!1}),N.mockResolvedValue(I({data:O(i,r,a)}))}beforeEach(()=>{vi.clearAllMocks()}),describe("Happy path",()=>{it("should call external dependencies with the correct parameters",()=>new Promise((i,r)=>{C(),A("1.15.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],serializedTransaction:new Uint8Array([1,2,3]),chainId:1,transactionType:T.LEGACY,web3Check:null}),b.mockResolvedValueOnce(y),g.mockResolvedValueOnce(I({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PROVIDE_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];f(a,s,x,{onDone:()=>{expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(b).toHaveBeenCalledWith(expect.objectContaining({input:{clearSignContexts:[{type:"token",payload:"payload-1"}],web3Check:null}})),expect(g).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:new Uint8Array([1,2,3]),isLegacy:!0,chainId:1,transactionType:T.LEGACY}})),i()},onError:r})})),it("should call external dependencies with the correct parameters with the generic parser",()=>new Promise((i,r)=>{C(),A("1.15.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockResolvedValueOnce({clearSignContexts:{transactionInfo:"payload-1",transactionFields:[{type:"enum",payload:"payload-2"}]},serializedTransaction:new Uint8Array([1,2,3]),chainId:7,transactionType:T.EIP1559,web3Check:null}),V.mockResolvedValueOnce(y),g.mockResolvedValueOnce(I({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PROVIDE_GENERIC_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];f(a,s,x,{onError:r,onDone:()=>{expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(V).toHaveBeenCalledWith(expect.objectContaining({input:{chainId:7,context:{transactionInfo:"payload-1",transactionFields:[{type:"enum",payload:"payload-2"}]},contextModule:o,derivationPath:"44'/60'/0'/0/0",serializedTransaction:new Uint8Array([1,2,3]),transactionParser:P,web3Check:null}})),expect(g).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:new Uint8Array([1,2,3]),isLegacy:!1,chainId:7,transactionType:T.EIP1559}})),i()}})})),it("should fallback to blind signing if provideContext return an error",()=>new Promise((i,r)=>{C(),A("1.15.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],serializedTransaction:new Uint8Array([1,2,3]),chainId:1,transactionType:T.LEGACY,web3Check:null}),b.mockResolvedValueOnce(k(I({error:new l("provideContext error")}))),g.mockResolvedValueOnce(I({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PROVIDE_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];f(a,s,x,{onError:r,onDone:()=>{expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(b).toHaveBeenCalledWith(expect.objectContaining({input:{clearSignContexts:[{type:"token",payload:"payload-1"}],web3Check:null}})),expect(g).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:new Uint8Array([1,2,3]),isLegacy:!0,chainId:1,transactionType:T.LEGACY}})),i()}})})),it("should fallback to blind signing if provideGenericContext return an error",()=>new Promise((i,r)=>{C(),A("1.15.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockResolvedValueOnce({clearSignContexts:{transactionInfo:"payload-1",transactionFields:[{type:"enum",payload:"payload-2"}]},serializedTransaction:new Uint8Array([1,2,3]),chainId:7,transactionType:T.EIP1559,web3Check:null}),V.mockResolvedValueOnce(k(I({error:new l("provideGenericContext error")}))),g.mockResolvedValueOnce(I({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PROVIDE_GENERIC_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];f(a,s,x,{onError:r,onDone:()=>{expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(V).toHaveBeenCalledWith(expect.objectContaining({input:{chainId:7,context:{transactionInfo:"payload-1",transactionFields:[{type:"enum",payload:"payload-2"}]},contextModule:o,derivationPath:"44'/60'/0'/0/0",serializedTransaction:new Uint8Array([1,2,3]),transactionParser:P,web3Check:null}})),expect(g).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:new Uint8Array([1,2,3]),isLegacy:!1,chainId:7,transactionType:T.EIP1559}})),i()}})}))}),describe("Web3Checks",()=>{it("should call external dependencies with web3Checks enabled and supported",()=>new Promise((i,r)=>{C(),A("1.16.0",!0,!0);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockRejectedValueOnce(new l("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new l("buildContext error"),status:e.Error}];f(a,s,x,{onDone:()=>{expect(N).toHaveBeenCalled(),expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.16.0",!0,!0),derivationPath:"44'/60'/0'/0/0"}})),i()},onError:r})})),it("should call external dependencies with web3Checks supported but disabled",()=>new Promise((i,r)=>{C(),A("1.16.0",!1,!0);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockRejectedValueOnce(new l("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new l("buildContext error"),status:e.Error}];f(a,s,x,{onDone:()=>{expect(N).toHaveBeenCalled(),expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.16.0",!1,!0),derivationPath:"44'/60'/0'/0/0"}})),i()},onError:r})})),it("should call external dependencies with web3Checks opt-in, then enabled",()=>new Promise((i,r)=>{C(),A("1.16.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});h.mockResolvedValueOnce(I({data:{enabled:!0}})),d.mockRejectedValueOnce(new l("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.Web3ChecksOptIn,step:n.WEB3_CHECKS_OPT_IN},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new l("buildContext error"),status:e.Error}];f(a,s,x,{onDone:()=>{expect(N).toHaveBeenCalled(),expect(h).toHaveBeenCalled(),expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.16.0",!0,!1),derivationPath:"44'/60'/0'/0/0"}})),i()},onError:r})})),it("should call external dependencies with web3Checks opt-in, then disabled",()=>new Promise((i,r)=>{C(),A("1.16.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});h.mockResolvedValueOnce(I({data:{enabled:!1}})),d.mockRejectedValueOnce(new l("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.Web3ChecksOptIn,step:n.WEB3_CHECKS_OPT_IN},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new l("buildContext error"),status:e.Error}];f(a,s,x,{onDone:()=>{expect(N).toHaveBeenCalled(),expect(h).toHaveBeenCalled(),expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.16.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),i()},onError:r})})),it("should provide web3Checks context if getWeb3Check return a value",()=>new Promise((i,r)=>{C(),A("1.15.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],serializedTransaction:new Uint8Array([1,2,3]),chainId:1,transactionType:T.LEGACY,web3Check:{type:E.ENUM,id:1,payload:"0x01020304",value:1,certificate:void 0}}),b.mockResolvedValueOnce(y),g.mockResolvedValueOnce(I({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PROVIDE_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];f(a,s,x,{onError:r,onDone:()=>{expect(d).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,mapper:c,options:p,transaction:u,appConfig:O("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(b).toHaveBeenCalledWith(expect.objectContaining({input:{clearSignContexts:[{type:"token",payload:"payload-1"}],web3Check:{type:E.ENUM,id:1,payload:"0x01020304",value:1,certificate:void 0}}})),expect(g).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:new Uint8Array([1,2,3]),isLegacy:!0,chainId:1,transactionType:T.LEGACY}})),i()}})}))}),describe("OpenApp errors",()=>{it("should fail if OpenApp throw an error",()=>new Promise((i,r)=>{C(new S("OpenApp error"));const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{error:new S("OpenApp error"),status:e.Error}];f(a,s,x,{onError:r,onDone:()=>{i()}})}))}),describe("BuildContext errors",()=>{it("should fail if buildContext throws an error",()=>new Promise((i,r)=>{C(),A("1.15.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockRejectedValueOnce(new l("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new l("buildContext error"),status:e.Error}];f(a,s,x,{onError:r,onDone:i})}))}),describe("ProvideContext errors",()=>{it("should fail if provideContext throws an error",()=>new Promise((i,r)=>{C(),A("1.15.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],serializedTransaction:new Uint8Array([1,2,3]),web3Check:null}),b.mockRejectedValueOnce(new l("provideContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PROVIDE_CONTEXT},status:e.Pending},{error:new l("provideContext error"),status:e.Error}];f(a,s,x,{onError:r,onDone:i})}))}),describe("SignTransaction errors",()=>{it("should fail if signTransaction returns an error",()=>new Promise((i,r)=>{C(),A("1.15.0",!1,!1);const a=new v({input:{derivationPath:"44'/60'/0'/0/0",transaction:u,options:p,contextModule:o,mapper:c,parser:P}});d.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],serializedTransaction:new Uint8Array([1,2,3]),web3Check:null}),b.mockResolvedValueOnce(y),g.mockResolvedValueOnce(I({error:new l("signTransaction error")})),vi.spyOn(a,"extractDependencies").mockReturnValue(m());const s=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PROVIDE_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{error:new l("signTransaction error"),status:e.Error}];f(a,s,x,{onError:r,onDone:i})}))})});
1
+ import{ClearSignContextType as E}from"@ledgerhq/context-module";import{CommandResultFactory as S,DeviceActionStatus as e,DeviceModelId as k,DeviceSessionStateType as R,DeviceStatus as B,hexaStringToBuffer as q,UnknownDAError as y,UserInteractionRequired as t}from"@ledgerhq/device-management-kit";import{InvalidStatusWordError as I}from"@ledgerhq/device-management-kit";import{Transaction as w}from"ethers";import{Just as h,Left as M}from"purify-ts";import{SignTransactionDAStep as n}from"../../../../api/app-binder/SignTransactionDeviceActionTypes";import{ClearSigningType as b}from"../../../../api/model/ClearSigningType";import{TransactionType as x}from"../../../../api/model/TransactionType";import{makeDeviceActionInternalApiMock as L}from"../../../app-binder/device-action/__test-utils__/makeInternalApi";import{setupOpenAppDAMock as v}from"../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock";import{testDeviceActionStates as N}from"../../../app-binder/device-action/__test-utils__/testDeviceActionStates";import{SignTransactionDeviceAction as T}from"./SignTransactionDeviceAction";vi.mock("@ledgerhq/device-management-kit",async o=>({...await o(),OpenAppDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("SignTransactionDeviceAction",()=>{const o={getContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn(),getSolanaContext:vi.fn()},P={mapTransactionToSubset:vi.fn()},l={extractValue:vi.fn()},V=vi.fn(),U=vi.fn(),m=vi.fn(),u=vi.fn(),C=vi.fn(),A=vi.fn();function O(){return{getAppConfig:V,web3CheckOptIn:U,preBuildContext:m,buildContext:u,buildSubContextAndProvide:C,signTransaction:A}}const g=L(),p={domain:"domain-name.eth"},i=q(w.from({chainId:1n,nonce:0,data:"0x"}).unsignedSerialized),d={chainId:1,data:"0x",selector:"0x",to:"0x",value:0n};function _(r,s,a){return{blindSigningEnabled:!1,web3ChecksEnabled:s,web3ChecksOptIn:a,version:r}}function f(r,s,a){g.getDeviceSessionState.mockReturnValueOnce({sessionStateType:R.ReadyWithoutSecureChannel,deviceStatus:B.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:r},deviceModelId:k.FLEX,isSecureConnectionAllowed:!1}),V.mockResolvedValue(S({data:_(r,s,a)}))}beforeEach(()=>{vi.clearAllMocks()}),describe("Happy path",()=>{it("should call external dependencies with the correct parameters",()=>new Promise((r,s)=>{v(),f("1.15.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),u.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],clearSignContextsOptional:[],clearSigningType:b.BASIC}),C.mockResolvedValueOnce(h(void 0)),A.mockResolvedValueOnce(S({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];N(a,c,g,{onDone:()=>{expect(m).toHaveBeenCalledWith(expect.objectContaining({input:{mapper:P,transaction:i}})),expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,options:p,subset:d,transaction:i,appConfig:_("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenCalledWith(expect.objectContaining({input:expect.objectContaining({context:{type:"token",payload:"payload-1"},contextOptional:[],transactionParser:l,subset:d,contextModule:o,derivationPath:"44'/60'/0'/0/0",transaction:i})})),expect(A).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:i,chainId:1,transactionType:x.LEGACY,clearSigningType:b.BASIC}})),r()},onError:s})})),it("should be successful while skipping OpenApp",()=>new Promise((r,s)=>{v(),f("1.15.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:{...p,skipOpenApp:!0},contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),u.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],clearSignContextsOptional:[],clearSigningType:b.BASIC}),C.mockResolvedValueOnce(h(void 0)),A.mockResolvedValueOnce(S({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];N(a,c,g,{onDone:r,onError:s})})),it("should call external dependencies with the correct parameters with the generic parser",()=>new Promise((r,s)=>{v(),f("1.15.0",!1,!1);const a={...d,chainId:17},c=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:a,type:x.EIP1559}),u.mockResolvedValueOnce({clearSignContexts:[{type:E.TRANSACTION_INFO,payload:"payload-1"},{type:E.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-2"}],clearSigningType:b.EIP7730,clearSignContextsOptional:[]}),C.mockResolvedValueOnce(h(void 0)),A.mockResolvedValueOnce(S({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(c,"extractDependencies").mockReturnValue(O());const D=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];N(c,D,g,{onError:s,onDone:()=>{expect(m).toHaveBeenCalledWith(expect.objectContaining({input:{mapper:P,transaction:i}})),expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,options:p,subset:a,transaction:i,appConfig:_("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenCalledTimes(2),expect(C).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{context:{type:E.TRANSACTION_INFO,payload:"payload-1"},contextOptional:[],transactionParser:l,subset:a,contextModule:o,derivationPath:"44'/60'/0'/0/0",transaction:i}})),expect(C).toHaveBeenNthCalledWith(2,expect.objectContaining({input:{context:{type:E.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-2"},contextOptional:[],transactionParser:l,subset:a,contextModule:o,derivationPath:"44'/60'/0'/0/0",transaction:i}})),expect(A).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:i,chainId:a.chainId,transactionType:x.EIP1559,clearSigningType:b.EIP7730}})),r()}})})),it("should fallback to blind signing if provideContext return an error",()=>new Promise((r,s)=>{v(),f("1.15.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),u.mockResolvedValueOnce({clearSignContexts:[{type:E.TRANSACTION_INFO,payload:"payload-1"}],clearSigningType:b.EIP7730,clearSignContextsOptional:[]}),C.mockResolvedValueOnce(M(new Error("provideContext error"))),A.mockResolvedValueOnce(S({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];N(a,c,g,{onError:s,onDone:()=>{expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,options:p,subset:d,transaction:i,appConfig:_("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenCalledWith(expect.objectContaining({input:{context:{type:E.TRANSACTION_INFO,payload:"payload-1"},contextOptional:[],transactionParser:l,subset:d,contextModule:o,derivationPath:"44'/60'/0'/0/0",transaction:i}})),expect(A).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:i,chainId:d.chainId,transactionType:x.LEGACY,clearSigningType:b.EIP7730}})),r()}})}))}),describe("Web3Checks",()=>{it("should call external dependencies with web3Checks enabled and supported",()=>new Promise((r,s)=>{v(),f("1.16.0",!0,!0);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),u.mockRejectedValueOnce(new I("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new I("buildContext error"),status:e.Error}];N(a,c,g,{onDone:()=>{expect(V).toHaveBeenCalled(),expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,options:p,subset:d,transaction:i,appConfig:_("1.16.0",!0,!0),derivationPath:"44'/60'/0'/0/0"}})),r()},onError:s})})),it("should call external dependencies with web3Checks supported but disabled",()=>new Promise((r,s)=>{v(),f("1.16.0",!1,!0);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),u.mockRejectedValueOnce(new I("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new I("buildContext error"),status:e.Error}];N(a,c,g,{onDone:()=>{expect(V).toHaveBeenCalled(),expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,options:p,subset:d,transaction:i,appConfig:_("1.16.0",!1,!0),derivationPath:"44'/60'/0'/0/0"}})),r()},onError:s})})),it("should call external dependencies with web3Checks opt-in, then enabled",()=>new Promise((r,s)=>{v(),f("1.16.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),U.mockResolvedValueOnce(S({data:{enabled:!0}})),u.mockRejectedValueOnce(new I("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.Web3ChecksOptIn,step:n.WEB3_CHECKS_OPT_IN},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.WEB3_CHECKS_OPT_IN_RESULT,result:!0},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new I("buildContext error"),status:e.Error}];N(a,c,g,{onDone:()=>{expect(V).toHaveBeenCalled(),expect(U).toHaveBeenCalled(),expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,options:p,subset:d,transaction:i,appConfig:_("1.16.0",!0,!1),derivationPath:"44'/60'/0'/0/0"}})),r()},onError:s})})),it("should call external dependencies with web3Checks opt-in, then disabled",()=>new Promise((r,s)=>{v(),f("1.16.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),U.mockResolvedValueOnce(S({data:{enabled:!1}})),u.mockRejectedValueOnce(new I("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.Web3ChecksOptIn,step:n.WEB3_CHECKS_OPT_IN},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.WEB3_CHECKS_OPT_IN_RESULT,result:!1},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new I("buildContext error"),status:e.Error}];N(a,c,g,{onDone:()=>{expect(V).toHaveBeenCalled(),expect(U).toHaveBeenCalled(),expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,options:p,subset:d,transaction:i,appConfig:_("1.16.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),r()},onError:s})})),it("should provide web3Checks context if getWeb3Check return a value",()=>new Promise((r,s)=>{v(),f("1.15.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.EIP4844}),u.mockResolvedValueOnce({clearSignContexts:[{type:E.TRANSACTION_INFO,payload:"payload-1"},{type:E.WEB3_CHECK,payload:"0x01020304",certificate:{payload:new Uint8Array,keyUsageNumber:1}}],clearSigningType:b.EIP7730,clearSignContextsOptional:[]}),C.mockResolvedValueOnce(h(void 0)),A.mockResolvedValueOnce(S({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.Completed}];N(a,c,g,{onError:s,onDone:()=>{expect(u).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:o,options:p,subset:d,transaction:i,appConfig:_("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenCalledTimes(2),expect(C).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{context:{type:E.TRANSACTION_INFO,payload:"payload-1"},contextOptional:[],transactionParser:l,subset:d,transaction:i,contextModule:o,derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenNthCalledWith(2,expect.objectContaining({input:{context:{type:E.WEB3_CHECK,payload:"0x01020304",certificate:{payload:new Uint8Array,keyUsageNumber:1}},contextOptional:[],transactionParser:l,subset:d,transaction:i,contextModule:o,derivationPath:"44'/60'/0'/0/0"}})),expect(A).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:i,chainId:d.chainId,transactionType:x.EIP4844,clearSigningType:b.EIP7730}})),r()}})}))}),describe("OpenApp errors",()=>{it("should fail if OpenApp throw an error",()=>new Promise((r,s)=>{v(new y("OpenApp error"));const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{error:new y("OpenApp error"),status:e.Error}];N(a,c,g,{onError:s,onDone:()=>{r()}})}))}),describe("PreBuildContext errors",()=>{it("should fail if buildContext throws an error",()=>new Promise((r,s)=>{v(),f("1.15.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockRejectedValueOnce(new I("preBuildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{error:new I("preBuildContext error"),status:e.Error}];N(a,c,g,{onError:s,onDone:r})}))}),describe("BuildContext errors",()=>{it("should fail if buildContext throws an error",()=>new Promise((r,s)=>{v(),f("1.15.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),u.mockRejectedValueOnce(new I("buildContext error")),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{error:new I("buildContext error"),status:e.Error}];N(a,c,g,{onError:s,onDone:r})}))}),describe("SignTransaction errors",()=>{it("should fail if signTransaction returns an error",()=>new Promise((r,s)=>{v(),f("1.15.0",!1,!1);const a=new T({input:{derivationPath:"44'/60'/0'/0/0",transaction:i,options:p,contextModule:o,mapper:P,parser:l}});m.mockResolvedValueOnce({subset:d,type:x.LEGACY}),u.mockResolvedValueOnce({clearSignContexts:[{type:E.TRANSACTION_INFO,payload:"payload-1"}],clearSignContextsOptional:[],clearSigningType:b.EIP7730}),C.mockResolvedValueOnce(h(void 0)),A.mockResolvedValueOnce(S({error:new I("signTransaction error")})),vi.spyOn(a,"extractDependencies").mockReturnValue(O());const c=[{intermediateValue:{requiredUserInteraction:t.None,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.ConfirmOpenApp,step:n.OPEN_APP},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.GET_APP_CONFIG},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.PRE_BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_CONTEXT},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None,step:n.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.SignTransaction,step:n.SIGN_TRANSACTION},status:e.Pending},{error:new I("signTransaction error"),status:e.Error}];N(a,c,g,{onError:s,onDone:r})}))})});
2
2
  //# sourceMappingURL=SignTransactionDeviceAction.test.js.map