@ledgerhq/device-signer-kit-ethereum 0.0.0-legacy-speculos-datasource-20250821095840 → 0.0.0-lifi-with-logger-20251208144248

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 (573) hide show
  1. package/README.md +59 -1
  2. package/lib/cjs/api/SignerEth.js +1 -1
  3. package/lib/cjs/api/SignerEth.js.map +1 -1
  4. package/lib/cjs/api/SignerEthBuilder.test.js +1 -1
  5. package/lib/cjs/api/SignerEthBuilder.test.js.map +2 -2
  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/app-binder/VerifySafeAddressDeviceActionTypes.js +2 -0
  11. package/lib/cjs/api/app-binder/VerifySafeAddressDeviceActionTypes.js.map +7 -0
  12. package/lib/cjs/api/index.js +1 -1
  13. package/lib/cjs/api/index.js.map +3 -3
  14. package/lib/cjs/api/model/SafeAddressOptions.js +2 -0
  15. package/lib/cjs/api/model/SafeAddressOptions.js.map +7 -0
  16. package/lib/cjs/internal/DefaultSignerEth.js +1 -1
  17. package/lib/cjs/internal/DefaultSignerEth.js.map +3 -3
  18. package/lib/cjs/internal/app-binder/EthAppBinder.js +1 -1
  19. package/lib/cjs/internal/app-binder/EthAppBinder.js.map +3 -3
  20. package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
  21. package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +2 -2
  22. package/lib/cjs/internal/app-binder/command/GetAddressCommand.js +1 -1
  23. package/lib/cjs/internal/app-binder/command/GetAddressCommand.js.map +2 -2
  24. package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js +1 -1
  25. package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
  26. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
  27. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +2 -2
  28. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
  29. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
  30. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js +1 -1
  31. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js.map +2 -2
  32. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js +1 -1
  33. package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js.map +2 -2
  34. package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.js +1 -1
  35. package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.js.map +2 -2
  36. package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.test.js +1 -1
  37. package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.test.js.map +3 -3
  38. package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.js +1 -1
  39. package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.js.map +2 -2
  40. package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.test.js +1 -1
  41. package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.test.js.map +3 -3
  42. package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.js +2 -0
  43. package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.js.map +7 -0
  44. package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js +2 -0
  45. package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js.map +7 -0
  46. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js +1 -1
  47. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js.map +2 -2
  48. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js +1 -1
  49. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +3 -3
  50. package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.js +2 -0
  51. package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.js.map +7 -0
  52. package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.test.js +2 -0
  53. package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.test.js.map +7 -0
  54. package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.js +1 -1
  55. package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.js.map +2 -2
  56. package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.test.js +1 -1
  57. package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.test.js.map +2 -2
  58. package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js +1 -1
  59. package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js.map +2 -2
  60. package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js +1 -1
  61. package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js.map +3 -3
  62. package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.js +1 -1
  63. package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.js.map +2 -2
  64. package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.test.js +1 -1
  65. package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.test.js.map +3 -3
  66. package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.js +1 -1
  67. package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.js.map +2 -2
  68. package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.test.js +1 -1
  69. package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.test.js.map +3 -3
  70. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js +1 -1
  71. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +2 -2
  72. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +1 -1
  73. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +3 -3
  74. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
  75. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js.map +3 -3
  76. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
  77. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
  78. package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.js +1 -1
  79. package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.js.map +2 -2
  80. package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js +1 -1
  81. package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js.map +3 -3
  82. package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.js +1 -1
  83. package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.js.map +2 -2
  84. package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.test.js +1 -1
  85. package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.test.js.map +3 -3
  86. package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.js +1 -1
  87. package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.js.map +2 -2
  88. package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.test.js +2 -2
  89. package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.test.js.map +3 -3
  90. package/lib/cjs/internal/app-binder/command/SetPluginCommand.js +1 -1
  91. package/lib/cjs/internal/app-binder/command/SetPluginCommand.js.map +2 -2
  92. package/lib/cjs/internal/app-binder/command/SetPluginCommand.test.js +2 -2
  93. package/lib/cjs/internal/app-binder/command/SetPluginCommand.test.js.map +3 -3
  94. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js +1 -1
  95. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +2 -2
  96. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +1 -1
  97. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +3 -3
  98. package/lib/cjs/internal/app-binder/command/SignEIP712Command.js +1 -1
  99. package/lib/cjs/internal/app-binder/command/SignEIP712Command.js.map +3 -3
  100. package/lib/cjs/internal/app-binder/command/SignEIP712Command.test.js +1 -1
  101. package/lib/cjs/internal/app-binder/command/SignEIP712Command.test.js.map +2 -2
  102. package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.js +1 -1
  103. package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.js.map +2 -2
  104. package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.test.js +1 -1
  105. package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.test.js.map +3 -3
  106. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js +1 -1
  107. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js.map +2 -2
  108. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  109. package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +3 -3
  110. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.js +1 -1
  111. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.js.map +2 -2
  112. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
  113. package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js.map +3 -3
  114. package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.js +1 -1
  115. package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.js.map +2 -2
  116. package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.test.js +1 -1
  117. package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.test.js.map +3 -3
  118. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js +1 -1
  119. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js.map +2 -2
  120. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js +1 -1
  121. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +3 -3
  122. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  123. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  124. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  125. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  126. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  127. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  128. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  129. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  130. package/lib/cjs/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.js +2 -0
  131. package/lib/cjs/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.js.map +7 -0
  132. package/lib/cjs/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.js +2 -0
  133. package/lib/cjs/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.js.map +7 -0
  134. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js +2 -0
  135. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js.map +7 -0
  136. package/lib/cjs/internal/app-binder/task/BuildBaseContexts.js +2 -0
  137. package/lib/cjs/internal/app-binder/task/BuildBaseContexts.js.map +7 -0
  138. package/lib/cjs/internal/app-binder/task/BuildBaseContexts.test.js +2 -0
  139. package/lib/cjs/internal/app-binder/task/BuildBaseContexts.test.js.map +7 -0
  140. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  141. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  142. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  143. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  144. package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.js +2 -0
  145. package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.js.map +7 -0
  146. package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.test.js +2 -0
  147. package/lib/cjs/internal/app-binder/task/BuildFullContextsTask.test.js.map +7 -0
  148. package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.js +2 -0
  149. package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.js.map +7 -0
  150. package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.test.js +2 -0
  151. package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.test.js.map +7 -0
  152. package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.js +2 -0
  153. package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.js.map +7 -0
  154. package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.test.js +2 -0
  155. package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.test.js.map +7 -0
  156. package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.js +2 -0
  157. package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.js.map +7 -0
  158. package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.test.js +2 -0
  159. package/lib/cjs/internal/app-binder/task/ParseNestedTransactionTask.test.js.map +7 -0
  160. package/lib/cjs/internal/app-binder/task/ParseTransactionTask.js +2 -0
  161. package/lib/cjs/internal/app-binder/task/ParseTransactionTask.js.map +7 -0
  162. package/lib/cjs/internal/app-binder/task/ParseTransactionTask.test.js +2 -0
  163. package/lib/cjs/internal/app-binder/task/ParseTransactionTask.test.js.map +7 -0
  164. package/lib/cjs/internal/app-binder/task/ProvideContextTask.js +2 -0
  165. package/lib/cjs/internal/app-binder/task/ProvideContextTask.js.map +7 -0
  166. package/lib/cjs/internal/app-binder/task/ProvideContextTask.test.js +2 -0
  167. package/lib/cjs/internal/app-binder/task/ProvideContextTask.test.js.map +7 -0
  168. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  169. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  170. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  171. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  172. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextsTask.js +2 -0
  173. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextsTask.js.map +7 -0
  174. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextsTask.test.js +2 -0
  175. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextsTask.test.js.map +7 -0
  176. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  177. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js.map +3 -3
  178. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.test.js +1 -1
  179. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.test.js.map +3 -3
  180. package/lib/cjs/internal/di.js +1 -1
  181. package/lib/cjs/internal/di.js.map +3 -3
  182. package/lib/cjs/internal/safe/di/safeModule.js +2 -0
  183. package/lib/cjs/internal/safe/di/safeModule.js.map +7 -0
  184. package/lib/cjs/internal/safe/di/safeModule.test.js +2 -0
  185. package/lib/cjs/internal/safe/di/safeModule.test.js.map +7 -0
  186. package/lib/cjs/internal/safe/di/safeTypes.js +2 -0
  187. package/lib/cjs/internal/safe/di/safeTypes.js.map +7 -0
  188. package/lib/cjs/internal/safe/use-case/VerifySafeAddressUseCase.js +2 -0
  189. package/lib/cjs/internal/safe/use-case/VerifySafeAddressUseCase.js.map +7 -0
  190. package/lib/cjs/internal/safe/use-case/VerifySafeAddressUseCase.test.js +2 -0
  191. package/lib/cjs/internal/safe/use-case/VerifySafeAddressUseCase.test.js.map +7 -0
  192. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js +1 -1
  193. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js.map +2 -2
  194. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  195. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js.map +2 -2
  196. package/lib/cjs/package.json +41 -37
  197. package/lib/esm/api/SignerEthBuilder.test.js +1 -1
  198. package/lib/esm/api/SignerEthBuilder.test.js.map +2 -2
  199. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  200. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
  201. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  202. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
  203. package/lib/esm/api/app-binder/VerifySafeAddressDeviceActionTypes.js +2 -0
  204. package/lib/esm/api/app-binder/VerifySafeAddressDeviceActionTypes.js.map +7 -0
  205. package/lib/esm/api/index.js +1 -1
  206. package/lib/esm/api/index.js.map +2 -2
  207. package/lib/esm/api/model/SafeAddressOptions.js +1 -0
  208. package/lib/esm/api/model/SafeAddressOptions.js.map +7 -0
  209. package/lib/esm/internal/DefaultSignerEth.js +1 -1
  210. package/lib/esm/internal/DefaultSignerEth.js.map +3 -3
  211. package/lib/esm/internal/app-binder/EthAppBinder.js +1 -1
  212. package/lib/esm/internal/app-binder/EthAppBinder.js.map +3 -3
  213. package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
  214. package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +2 -2
  215. package/lib/esm/internal/app-binder/command/GetAddressCommand.js +1 -1
  216. package/lib/esm/internal/app-binder/command/GetAddressCommand.js.map +2 -2
  217. package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js +1 -1
  218. package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
  219. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
  220. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +2 -2
  221. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
  222. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
  223. package/lib/esm/internal/app-binder/command/GetChallengeCommand.js +1 -1
  224. package/lib/esm/internal/app-binder/command/GetChallengeCommand.js.map +2 -2
  225. package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js +1 -1
  226. package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js.map +2 -2
  227. package/lib/esm/internal/app-binder/command/ProvideEnumCommand.js +1 -1
  228. package/lib/esm/internal/app-binder/command/ProvideEnumCommand.js.map +2 -2
  229. package/lib/esm/internal/app-binder/command/ProvideEnumCommand.test.js +1 -1
  230. package/lib/esm/internal/app-binder/command/ProvideEnumCommand.test.js.map +3 -3
  231. package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.js +1 -1
  232. package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.js.map +2 -2
  233. package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.test.js +1 -1
  234. package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.test.js.map +3 -3
  235. package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.js +2 -0
  236. package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.js.map +7 -0
  237. package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js +2 -0
  238. package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js.map +7 -0
  239. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js +1 -1
  240. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js.map +2 -2
  241. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js +1 -1
  242. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +3 -3
  243. package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.js +2 -0
  244. package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.js.map +7 -0
  245. package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.test.js +2 -0
  246. package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.test.js.map +7 -0
  247. package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.js +1 -1
  248. package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.js.map +2 -2
  249. package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.test.js +1 -1
  250. package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.test.js.map +2 -2
  251. package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js +1 -1
  252. package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js.map +2 -2
  253. package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js +1 -1
  254. package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js.map +3 -3
  255. package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.js +1 -1
  256. package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.js.map +2 -2
  257. package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.test.js +1 -1
  258. package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.test.js.map +3 -3
  259. package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.js +1 -1
  260. package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.js.map +2 -2
  261. package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.test.js +1 -1
  262. package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.test.js.map +3 -3
  263. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js +1 -1
  264. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +2 -2
  265. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +1 -1
  266. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +3 -3
  267. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
  268. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js.map +3 -3
  269. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
  270. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
  271. package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.js +1 -1
  272. package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.js.map +2 -2
  273. package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js +1 -1
  274. package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js.map +3 -3
  275. package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.js +1 -1
  276. package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.js.map +2 -2
  277. package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.test.js +1 -1
  278. package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.test.js.map +3 -3
  279. package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.js +1 -1
  280. package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.js.map +2 -2
  281. package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.test.js +2 -2
  282. package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.test.js.map +3 -3
  283. package/lib/esm/internal/app-binder/command/SetPluginCommand.js +1 -1
  284. package/lib/esm/internal/app-binder/command/SetPluginCommand.js.map +2 -2
  285. package/lib/esm/internal/app-binder/command/SetPluginCommand.test.js +2 -2
  286. package/lib/esm/internal/app-binder/command/SetPluginCommand.test.js.map +3 -3
  287. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js +1 -1
  288. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +2 -2
  289. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +1 -1
  290. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +3 -3
  291. package/lib/esm/internal/app-binder/command/SignEIP712Command.js +1 -1
  292. package/lib/esm/internal/app-binder/command/SignEIP712Command.js.map +2 -2
  293. package/lib/esm/internal/app-binder/command/SignEIP712Command.test.js +1 -1
  294. package/lib/esm/internal/app-binder/command/SignEIP712Command.test.js.map +2 -2
  295. package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.js +1 -1
  296. package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.js.map +2 -2
  297. package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.test.js +1 -1
  298. package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.test.js.map +3 -3
  299. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js +1 -1
  300. package/lib/esm/internal/app-binder/command/SignTransactionCommand.js.map +2 -2
  301. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
  302. package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +3 -3
  303. package/lib/esm/internal/app-binder/command/StartTransactionCommand.js +1 -1
  304. package/lib/esm/internal/app-binder/command/StartTransactionCommand.js.map +2 -2
  305. package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
  306. package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js.map +3 -3
  307. package/lib/esm/internal/app-binder/command/StoreTransactionCommand.js +1 -1
  308. package/lib/esm/internal/app-binder/command/StoreTransactionCommand.js.map +2 -2
  309. package/lib/esm/internal/app-binder/command/StoreTransactionCommand.test.js +1 -1
  310. package/lib/esm/internal/app-binder/command/StoreTransactionCommand.test.js.map +3 -3
  311. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js +1 -1
  312. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js.map +2 -2
  313. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js +1 -1
  314. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +3 -3
  315. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  316. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  317. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  318. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  319. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  320. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  321. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  322. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  323. package/lib/esm/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.js +2 -0
  324. package/lib/esm/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.js.map +7 -0
  325. package/lib/esm/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.js +2 -0
  326. package/lib/esm/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.js.map +7 -0
  327. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js +2 -0
  328. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.js.map +7 -0
  329. package/lib/esm/internal/app-binder/task/BuildBaseContexts.js +2 -0
  330. package/lib/esm/internal/app-binder/task/BuildBaseContexts.js.map +7 -0
  331. package/lib/esm/internal/app-binder/task/BuildBaseContexts.test.js +2 -0
  332. package/lib/esm/internal/app-binder/task/BuildBaseContexts.test.js.map +7 -0
  333. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  334. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  335. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  336. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  337. package/lib/esm/internal/app-binder/task/BuildFullContextsTask.js +2 -0
  338. package/lib/esm/internal/app-binder/task/BuildFullContextsTask.js.map +7 -0
  339. package/lib/esm/internal/app-binder/task/BuildFullContextsTask.test.js +2 -0
  340. package/lib/esm/internal/app-binder/task/BuildFullContextsTask.test.js.map +7 -0
  341. package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.js +2 -0
  342. package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.js.map +7 -0
  343. package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.test.js +2 -0
  344. package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.test.js.map +7 -0
  345. package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.js +2 -0
  346. package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.js.map +7 -0
  347. package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.test.js +2 -0
  348. package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.test.js.map +7 -0
  349. package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.js +2 -0
  350. package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.js.map +7 -0
  351. package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.test.js +2 -0
  352. package/lib/esm/internal/app-binder/task/ParseNestedTransactionTask.test.js.map +7 -0
  353. package/lib/esm/internal/app-binder/task/ParseTransactionTask.js +2 -0
  354. package/lib/esm/internal/app-binder/task/ParseTransactionTask.js.map +7 -0
  355. package/lib/esm/internal/app-binder/task/ParseTransactionTask.test.js +2 -0
  356. package/lib/esm/internal/app-binder/task/ParseTransactionTask.test.js.map +7 -0
  357. package/lib/esm/internal/app-binder/task/ProvideContextTask.js +2 -0
  358. package/lib/esm/internal/app-binder/task/ProvideContextTask.js.map +7 -0
  359. package/lib/esm/internal/app-binder/task/ProvideContextTask.test.js +2 -0
  360. package/lib/esm/internal/app-binder/task/ProvideContextTask.test.js.map +7 -0
  361. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  362. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  363. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  364. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  365. package/lib/esm/internal/app-binder/task/ProvideTransactionContextsTask.js +2 -0
  366. package/lib/esm/internal/app-binder/task/ProvideTransactionContextsTask.js.map +7 -0
  367. package/lib/esm/internal/app-binder/task/ProvideTransactionContextsTask.test.js +2 -0
  368. package/lib/esm/internal/app-binder/task/ProvideTransactionContextsTask.test.js.map +7 -0
  369. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  370. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js.map +3 -3
  371. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.test.js +1 -1
  372. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.test.js.map +3 -3
  373. package/lib/esm/internal/di.js +1 -1
  374. package/lib/esm/internal/di.js.map +3 -3
  375. package/lib/esm/internal/safe/di/safeModule.js +2 -0
  376. package/lib/esm/internal/safe/di/safeModule.js.map +7 -0
  377. package/lib/esm/internal/safe/di/safeModule.test.js +2 -0
  378. package/lib/esm/internal/safe/di/safeModule.test.js.map +7 -0
  379. package/lib/esm/internal/safe/di/safeTypes.js +2 -0
  380. package/lib/esm/internal/safe/di/safeTypes.js.map +7 -0
  381. package/lib/esm/internal/safe/use-case/VerifySafeAddressUseCase.js +2 -0
  382. package/lib/esm/internal/safe/use-case/VerifySafeAddressUseCase.js.map +7 -0
  383. package/lib/esm/internal/safe/use-case/VerifySafeAddressUseCase.test.js +2 -0
  384. package/lib/esm/internal/safe/use-case/VerifySafeAddressUseCase.test.js.map +7 -0
  385. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js +1 -1
  386. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js.map +2 -2
  387. package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  388. package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js.map +2 -2
  389. package/lib/esm/package.json +41 -37
  390. package/lib/types/api/SignerEth.d.ts +3 -0
  391. package/lib/types/api/SignerEth.d.ts.map +1 -1
  392. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +10 -8
  393. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  394. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +6 -0
  395. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
  396. package/lib/types/api/app-binder/VerifySafeAddressDeviceActionTypes.d.ts +30 -0
  397. package/lib/types/api/app-binder/VerifySafeAddressDeviceActionTypes.d.ts.map +1 -0
  398. package/lib/types/api/index.d.ts +5 -9
  399. package/lib/types/api/index.d.ts.map +1 -1
  400. package/lib/types/api/model/SafeAddressOptions.d.ts +5 -0
  401. package/lib/types/api/model/SafeAddressOptions.d.ts.map +1 -0
  402. package/lib/types/internal/DefaultSignerEth.d.ts +3 -0
  403. package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
  404. package/lib/types/internal/app-binder/EthAppBinder.d.ts +6 -0
  405. package/lib/types/internal/app-binder/EthAppBinder.d.ts.map +1 -1
  406. package/lib/types/internal/app-binder/command/GetAddressCommand.d.ts +1 -0
  407. package/lib/types/internal/app-binder/command/GetAddressCommand.d.ts.map +1 -1
  408. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +1 -0
  409. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -1
  410. package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts +1 -0
  411. package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts.map +1 -1
  412. package/lib/types/internal/app-binder/command/ProvideEnumCommand.d.ts +1 -0
  413. package/lib/types/internal/app-binder/command/ProvideEnumCommand.d.ts.map +1 -1
  414. package/lib/types/internal/app-binder/command/ProvideNFTInformationCommand.d.ts +1 -0
  415. package/lib/types/internal/app-binder/command/ProvideNFTInformationCommand.d.ts.map +1 -1
  416. package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts +29 -0
  417. package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts.map +1 -0
  418. package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.d.ts +2 -0
  419. package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.d.ts.map +1 -0
  420. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts +1 -0
  421. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts.map +1 -1
  422. package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.d.ts +35 -0
  423. package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.d.ts.map +1 -0
  424. package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.test.d.ts +2 -0
  425. package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.test.d.ts.map +1 -0
  426. package/lib/types/internal/app-binder/command/ProvideTokenInformationCommand.d.ts +1 -0
  427. package/lib/types/internal/app-binder/command/ProvideTokenInformationCommand.d.ts.map +1 -1
  428. package/lib/types/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.d.ts +1 -0
  429. package/lib/types/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.d.ts.map +1 -1
  430. package/lib/types/internal/app-binder/command/ProvideTransactionInformationCommand.d.ts +1 -0
  431. package/lib/types/internal/app-binder/command/ProvideTransactionInformationCommand.d.ts.map +1 -1
  432. package/lib/types/internal/app-binder/command/ProvideTrustedNameCommand.d.ts +1 -0
  433. package/lib/types/internal/app-binder/command/ProvideTrustedNameCommand.d.ts.map +1 -1
  434. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts +1 -0
  435. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts.map +1 -1
  436. package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts +30 -1
  437. package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts.map +1 -1
  438. package/lib/types/internal/app-binder/command/SendEIP712StructDefinitionCommand.d.ts +1 -0
  439. package/lib/types/internal/app-binder/command/SendEIP712StructDefinitionCommand.d.ts.map +1 -1
  440. package/lib/types/internal/app-binder/command/SendEIP712StructImplemCommand.d.ts +1 -0
  441. package/lib/types/internal/app-binder/command/SendEIP712StructImplemCommand.d.ts.map +1 -1
  442. package/lib/types/internal/app-binder/command/SetExternalPluginCommand.d.ts +1 -0
  443. package/lib/types/internal/app-binder/command/SetExternalPluginCommand.d.ts.map +1 -1
  444. package/lib/types/internal/app-binder/command/SetPluginCommand.d.ts +1 -0
  445. package/lib/types/internal/app-binder/command/SetPluginCommand.d.ts.map +1 -1
  446. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts +1 -0
  447. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts.map +1 -1
  448. package/lib/types/internal/app-binder/command/SignEIP712Command.d.ts +1 -0
  449. package/lib/types/internal/app-binder/command/SignEIP712Command.d.ts.map +1 -1
  450. package/lib/types/internal/app-binder/command/SignPersonalMessageCommand.d.ts +1 -0
  451. package/lib/types/internal/app-binder/command/SignPersonalMessageCommand.d.ts.map +1 -1
  452. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts +1 -0
  453. package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts.map +1 -1
  454. package/lib/types/internal/app-binder/command/StartTransactionCommand.d.ts +1 -0
  455. package/lib/types/internal/app-binder/command/StartTransactionCommand.d.ts.map +1 -1
  456. package/lib/types/internal/app-binder/command/StoreTransactionCommand.d.ts +1 -0
  457. package/lib/types/internal/app-binder/command/StoreTransactionCommand.d.ts.map +1 -1
  458. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts +1 -0
  459. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts.map +1 -1
  460. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +18 -18
  461. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
  462. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +9 -0
  463. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
  464. package/lib/types/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.d.ts +20 -0
  465. package/lib/types/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.d.ts.map +1 -0
  466. package/lib/types/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.d.ts +2 -0
  467. package/lib/types/internal/app-binder/device-action/VerifySafeAddress/VerifySafeAddress.test.d.ts.map +1 -0
  468. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.d.ts +6 -0
  469. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionUntilStep.d.ts.map +1 -0
  470. package/lib/types/internal/app-binder/task/BuildBaseContexts.d.ts +47 -0
  471. package/lib/types/internal/app-binder/task/BuildBaseContexts.d.ts.map +1 -0
  472. package/lib/types/internal/app-binder/task/BuildBaseContexts.test.d.ts +2 -0
  473. package/lib/types/internal/app-binder/task/BuildBaseContexts.test.d.ts.map +1 -0
  474. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +10 -3
  475. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
  476. package/lib/types/internal/app-binder/task/BuildFullContextsTask.d.ts +39 -0
  477. package/lib/types/internal/app-binder/task/BuildFullContextsTask.d.ts.map +1 -0
  478. package/lib/types/internal/app-binder/task/BuildFullContextsTask.test.d.ts +2 -0
  479. package/lib/types/internal/app-binder/task/BuildFullContextsTask.test.d.ts.map +1 -0
  480. package/lib/types/internal/app-binder/task/BuildSafeAddressContextTask.d.ts +19 -0
  481. package/lib/types/internal/app-binder/task/BuildSafeAddressContextTask.d.ts.map +1 -0
  482. package/lib/types/internal/app-binder/task/BuildSafeAddressContextTask.test.d.ts +2 -0
  483. package/lib/types/internal/app-binder/task/BuildSafeAddressContextTask.test.d.ts.map +1 -0
  484. package/lib/types/internal/app-binder/task/BuildSubcontextsTask.d.ts +28 -0
  485. package/lib/types/internal/app-binder/task/BuildSubcontextsTask.d.ts.map +1 -0
  486. package/lib/types/internal/app-binder/task/BuildSubcontextsTask.test.d.ts +2 -0
  487. package/lib/types/internal/app-binder/task/BuildSubcontextsTask.test.d.ts.map +1 -0
  488. package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.d.ts +21 -0
  489. package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.d.ts.map +1 -0
  490. package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.test.d.ts +2 -0
  491. package/lib/types/internal/app-binder/task/ParseNestedTransactionTask.test.d.ts.map +1 -0
  492. package/lib/types/internal/app-binder/task/{PreBuildContextTask.d.ts → ParseTransactionTask.d.ts} +6 -6
  493. package/lib/types/internal/app-binder/task/ParseTransactionTask.d.ts.map +1 -0
  494. package/lib/types/internal/app-binder/task/ParseTransactionTask.test.d.ts +2 -0
  495. package/lib/types/internal/app-binder/task/ParseTransactionTask.test.d.ts.map +1 -0
  496. package/lib/types/internal/app-binder/task/ProvideContextTask.d.ts +22 -0
  497. package/lib/types/internal/app-binder/task/ProvideContextTask.d.ts.map +1 -0
  498. package/lib/types/internal/app-binder/task/ProvideContextTask.test.d.ts +2 -0
  499. package/lib/types/internal/app-binder/task/ProvideContextTask.test.d.ts.map +1 -0
  500. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +16 -5
  501. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
  502. package/lib/types/internal/app-binder/task/ProvideTransactionContextsTask.d.ts +36 -0
  503. package/lib/types/internal/app-binder/task/ProvideTransactionContextsTask.d.ts.map +1 -0
  504. package/lib/types/internal/app-binder/task/ProvideTransactionContextsTask.test.d.ts +2 -0
  505. package/lib/types/internal/app-binder/task/ProvideTransactionContextsTask.test.d.ts.map +1 -0
  506. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts +1 -0
  507. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts.map +1 -1
  508. package/lib/types/internal/di.d.ts.map +1 -1
  509. package/lib/types/internal/safe/di/safeModule.d.ts +3 -0
  510. package/lib/types/internal/safe/di/safeModule.d.ts.map +1 -0
  511. package/lib/types/internal/safe/di/safeModule.test.d.ts +2 -0
  512. package/lib/types/internal/safe/di/safeModule.test.d.ts.map +1 -0
  513. package/lib/types/internal/safe/di/safeTypes.d.ts +4 -0
  514. package/lib/types/internal/safe/di/safeTypes.d.ts.map +1 -0
  515. package/lib/types/internal/safe/use-case/VerifySafeAddressUseCase.d.ts +9 -0
  516. package/lib/types/internal/safe/use-case/VerifySafeAddressUseCase.d.ts.map +1 -0
  517. package/lib/types/internal/safe/use-case/VerifySafeAddressUseCase.test.d.ts +2 -0
  518. package/lib/types/internal/safe/use-case/VerifySafeAddressUseCase.test.d.ts.map +1 -0
  519. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  520. package/package.json +36 -32
  521. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js +0 -2
  522. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js.map +0 -7
  523. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js +0 -2
  524. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js.map +0 -7
  525. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +0 -2
  526. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +0 -7
  527. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +0 -2
  528. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +0 -7
  529. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +0 -2
  530. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +0 -7
  531. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +0 -2
  532. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +0 -7
  533. package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js +0 -2
  534. package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js.map +0 -7
  535. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +0 -2
  536. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +0 -7
  537. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +0 -2
  538. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +0 -7
  539. package/lib/esm/internal/app-binder/task/BuildSubContextTask.js +0 -2
  540. package/lib/esm/internal/app-binder/task/BuildSubContextTask.js.map +0 -7
  541. package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js +0 -2
  542. package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js.map +0 -7
  543. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +0 -2
  544. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +0 -7
  545. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +0 -2
  546. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +0 -7
  547. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +0 -2
  548. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +0 -7
  549. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +0 -2
  550. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +0 -7
  551. package/lib/esm/internal/app-binder/task/PreBuildContextTask.js +0 -2
  552. package/lib/esm/internal/app-binder/task/PreBuildContextTask.js.map +0 -7
  553. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +0 -2
  554. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +0 -7
  555. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +0 -2
  556. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +0 -7
  557. package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts +0 -20
  558. package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts.map +0 -1
  559. package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts +0 -2
  560. package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts.map +0 -1
  561. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +0 -28
  562. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +0 -1
  563. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.test.d.ts +0 -2
  564. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.test.d.ts.map +0 -1
  565. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +0 -29
  566. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +0 -1
  567. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts +0 -2
  568. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts.map +0 -1
  569. package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts.map +0 -1
  570. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +0 -44
  571. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +0 -1
  572. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.test.d.ts +0 -2
  573. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.test.d.ts.map +0 -1
@@ -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 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": "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",
6
- "names": ["SignTransactionDeviceAction_exports", "__export", "SignTransactionDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_SignTransactionDeviceActionTypes", "import_GetAppConfigurationCommand", "import_Web3CheckOptInCommand", "import_BuildSubContextTask", "import_BuildTransactionContextTask", "import_PreBuildContextTask", "import_ProvideTransactionContextTask", "import_SendSignTransactionTask", "import_ApplicationChecker", "internalApi", "getAppConfig", "web3CheckOptIn", "preBuildContext", "buildContext", "signTransaction", "buildSubContextAndProvide", "context", "_", "input", "error", "event", "arg0", "subcontextCallbacks"]
4
+ "sourcesContent": ["import {\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, Right } from \"purify-ts\";\nimport { and, assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type GetAddressCommandArgs,\n type GetAddressCommandResponse,\n} from \"@api/app-binder/GetAddressCommandTypes\";\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 { ClearSigningType } from \"@api/model/ClearSigningType\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport { GetAddressCommand } from \"@internal/app-binder/command/GetAddressCommand\";\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 BuildFullContextsTask,\n type BuildFullContextsTaskArgs,\n type BuildFullContextsTaskResult,\n} from \"@internal/app-binder/task/BuildFullContextsTask\";\nimport {\n ParseTransactionTask,\n type ParseTransactionTaskArgs,\n type ParseTransactionTaskResult,\n} from \"@internal/app-binder/task/ParseTransactionTask\";\nimport {\n ProvideTransactionContextsTask,\n type ProvideTransactionContextsTaskArgs,\n type ProvideTransactionContextsTaskResult,\n} from \"@internal/app-binder/task/ProvideTransactionContextsTask\";\nimport { SendSignTransactionTask } from \"@internal/app-binder/task/SendSignTransactionTask\";\nimport { ApplicationChecker } from \"@internal/shared/utils/ApplicationChecker\";\n\nexport type MachineDependencies = {\n readonly getAddress: (arg0: {\n input: GetAddressCommandArgs;\n }) => Promise<CommandResult<GetAddressCommandResponse, EthErrorCodes>>;\n readonly getAppConfig: () => Promise<\n CommandResult<GetConfigCommandResponse, EthErrorCodes>\n >;\n readonly web3CheckOptIn: () => Promise<\n CommandResult<Web3CheckOptInCommandResponse, EthErrorCodes>\n >;\n readonly parseTransaction: (arg0: {\n input: ParseTransactionTaskArgs;\n }) => Promise<ParseTransactionTaskResult>;\n readonly buildContexts: (arg0: {\n input: BuildFullContextsTaskArgs;\n }) => Promise<BuildFullContextsTaskResult>;\n readonly provideContexts: (arg0: {\n input: ProvideTransactionContextsTaskArgs;\n }) => Promise<ProvideTransactionContextsTaskResult>;\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 getAddress,\n getAppConfig,\n web3CheckOptIn,\n parseTransaction,\n buildContexts,\n signTransaction,\n provideContexts,\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 getAddress: fromPromise(getAddress),\n getAppConfig: fromPromise(getAppConfig),\n web3CheckOptIn: fromPromise(web3CheckOptIn),\n parseTransaction: fromPromise(parseTransaction),\n buildContexts: fromPromise(buildContexts),\n provideContexts: fromPromise(provideContexts),\n signTransaction: fromPromise(signTransaction),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n notRefusedByUser: ({ context }) =>\n context._internalState.error !== null &&\n (!(\"errorCode\" in context._internalState.error) ||\n context._internalState.error.errorCode !== \"6985\"),\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 },\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 N4IgpgJg5mDOIC5QGUCWUB2AVATgQw1jwGMAXVAewwBEwA3VYsAQTMowDoBJDVcvADbJSeUmADEAbQAMAXUSgADhVh92CkAA9EARgDsAZg4AOACzGAnAFYDNgGxXpF6ToA0IAJ67TOgEwcDHTsLCz9pQN9bAF8o9zRMXAIiNipaBiZWcipuXn4hETEpHXkkEGVVLIwNbQR9IzNLG3tHZzdPXV87aQ5I5ztfSON+zpi49Gx8QhJKtMYWFM4AeUUwDGZFRVmMhfEIKjAOVAw6CgBrA4oVtY3hUTAAWRIACyOwGRKlFTUqasQ9RxMVjMdgcdj0xnBvncXlqkTsHAsQxcnVMvmM4TsoxA8QmSWm7C280qHAAwk8wMRTstVutNvQ5pl2AAlOAAVwEpCkcg05W+VVKNR0gW6IOsoWMfgMdlMdmhHRBHActisFnMMqCmNi2PGiSmC0JjOyZIpVKutINCxZsHZnMkxR5X0qv1qwsVwRVOglcJlcoQEo4ns9pmkQL00mCFgMWJxuuSM3p22JAHEwKRaSSqAAzdC7faHY5nA4wNMbDMYbNQd4OirqAW6CVWDhWPR2fR2Yy+Fu+UwGX1C4zGHoGcPSDuGCx6HTRnWTOMEhNE9gcFMlxRliviMA4HAUHAcRQCUSZ3cAWw4xfTWfQVdKvKdddqDabLbbY-6Pb7IQ4I+sPdR1n+KMtRjWd8VSBdDU4FdL3LdArRtY1KS5D4ykdWtQBqAYO2-MFwyBHRTEjNoYT8Lpv3CKwrG7Zt0VMPRpwSUD9QghZl1TGCK3gjlENOIoULvdCtEQLD-HDMMHAlQjAj7VEdADENg1MYNhQMUwGNxPV43SRdsmg0srygLjSB4qRfH4tCfgfEScPE-CpOIxBVO6HQiLbVUQR8dTYzAmgWOJAB1MAACMDB42BllIHhcwwA4jhOc4OAAd2C0LyUpCKeBvT4a0sjDhKGfxmxDXwMT0SIDF7dpYUono9B7YxbAI4xHGMLymK0hlWMCkKwoyjBN23Xd90PUhjxwM9kp6tLTUijAstQnL+TyhA0X6Z9itK8rKphUwgW-MrfFCXpKJcejgJnPFmO0yCOG61KTXCxRZqM8RNFgAoDjwTMxBwAAKaQAEpxBAy6OsTJc7t6p6eCM+aBNyoSEAqgjFVIz0LE6CxWz0PtOz0Dg9HBMquh8LowTa0H52u1iAAU8BwWAwG8nY9hi-N4oORR6cZ5nKjhiylsRgxwQsJtCOlIIdFHaQWz7AwJ2-FyCMGEMMbOsZGMp8DqeJOmGaZ9r2AGnc9wPI9T33bmDa1ubuVvAXnWFywxax0mpfRWWqpVUWSqUgYw2F5xWvOzXNKpzriQAIVZVABAgMsxE0UhYGi2KCwSoKY7jhOwCT2B+cW50e09RUSshJwQ0nGSdEbKx-1bUI7IsCmw+1iOl2j2P46oRPk+NoazdGi3M67nO84Lvki8CQd+hljsK+bByEDq7oKocbtI3BOurBbuc2-B7IaZ3BgIDAMe+9ZtOOf3Y-UFP8-87t7LJ4fcwyqbbGezq-orFlKqCLIs4XwVFgjSFOr-XePkLS61vvfHuuc+5bhNsNc240b4UBPmfeB48n4LRfstN+hVP7CxlMAv+MIBxyRlAVSck5xSQKuu3bIINW79UvuzQsHBVChz3rbcyhcHx1xKhwVEwwQgV0nFYGSv8EQDCFD4GuehVQ7xDhpXh0ClwsN4f3U2I0xpnm4WonyE97zLSEd0URAxxHOEkX2aQAxFRgLKqqVWDYGFgx0pwLRPkjImRMYJGoQJnBNiFIdCSIJwgySGE2SwZVwgr1DO48OB8vEXVYb46afFqz4MRkE7oVhQlYyBBE7augDC+DkgUiUZgqnlLqkk-eniOCRwEEcCA3iFgADFBACCCiQXi7C4qcKCq0jA7S0m8O6QIXp-T-EIxqNKFs35VQSlVDKQmpg5aohESqAcnQQT1NUbzZJTSWltI6ZUKZMykJIIHno4eozxk8J8lcvplI5mCwWeYRsEkWzNXbJ2YwfY-D42kKieJHY2zNgab5HWHdHkXPYK8-pGSTTIWyaYxGk5IjPmsHXfQeEoT-1UqLfowpKIdlWUBDWRjGEpOaQiiZLyelvNOKipCdp+E5JqNiowzY8U+FskSkiw5TAmGlCEQioR-j6BiFqDAFBT7wFKIixpkEMUBMQAAWnIdqxsIQQiE3BGClx0QjmGzVaxHgahBC3DEBq+ZiBUQyXCE2YWSjJxgOFtC81NsNHZGpNcOkcKEbw0+Y5OuJg1ZDCUSqQFuNgHfmDN2AOYCnBTl9aw-1nAeKBvNH5ZkbIOQOvDQgA1AQxy2BbKdWwuNmwmDqo4cwjRykwuzWxVc650AludDXMBPRmoGAlP8cwTg5aRs6GGGu+g0RgJUTS45lrkzsX0rBQyRbjLTR7VZex-g0QuU6HXIdE5Sm1GDKLHQSsgkShDMLNtBbsiQ2mo9Wa27lrANdWYP2-QPKdikf-ORAQpZKLBUKds96Q2cCfQ9PqRk31Cxlvjaw7YKIQk9iRYB-hKUFJogU4BEGmGcD1jzC1gsw2Ox7EYYWql5aqS6MUuWdgjAhjrpQ7GSiCP0s7tnbByd4M1GDK6hwlEpRbyBcS-0-LURlTqiEMwnGmlHwwXfLBGBe7KufpigTVFGzlKVJ6cMX65YQnkljaVUo-DdgUzdVVZGHaCNHP4Fy2KP32OCDJBx1gzCIkIuiexzdM3qIfak55loN08X44gX+nYAzlOA-oKio4ZKExMFLFUQJ4mnWs6xM5YzbPIspJFhAXR0QBkOkKLGdUOybIA4YAIwDDCehVCCfDgWoHBYZecplXSWUovC1u+2AjlpgiYyIicl6St4SXvI7oX7RzWCDFhbLxJkCsmIEwWAGm8Fab+LYIwLk66tnCEOsFyXdPyKGO7QIGaF2kfbQAUUGjgIrhgbABl-EdiqtFfT-HxgOd0TsQMdjlVEIAA */\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 subset: null,\n contexts: [],\n clearSigningType: null,\n transactionType: 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: \"ParseTransaction\",\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 ParseTransaction\n after: {\n 0: {\n target: \"ParseTransaction\",\n },\n },\n },\n ParseTransaction: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.PARSE_TRANSACTION,\n },\n }),\n invoke: {\n id: \"parseTransaction\",\n src: \"parseTransaction\",\n input: ({ context }) => ({\n mapper: context.input.mapper,\n transaction: context.input.transaction,\n }),\n onDone: {\n target: \"GetAddress\",\n actions: assign({\n _internalState: ({ event, context }) => ({\n ...context._internalState,\n subset: event.output.subset,\n transactionType: event.output.type,\n }),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetAddress: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.GET_ADDRESS,\n },\n }),\n invoke: {\n id: \"getAddress\",\n src: \"getAddress\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n checkOnDevice: false,\n returnChainCode: false,\n }),\n onDone: {\n target: \"BuildContexts\",\n actions: assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n const subset = {\n ...context._internalState.subset!,\n from: event.output.data.address,\n };\n return {\n ...context._internalState,\n subset,\n };\n }\n return {\n ...context._internalState,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n },\n },\n },\n BuildContexts: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.BUILD_CONTEXTS,\n },\n }),\n invoke: {\n id: \"buildContexts\",\n src: \"buildContexts\",\n input: ({ context }) => ({\n contextModule: context.input.contextModule,\n mapper: context.input.mapper,\n parser: context.input.parser,\n options: context.input.options,\n appConfig: context._internalState.appConfig!,\n derivationPath: context.input.derivationPath,\n subset: context._internalState.subset!,\n transaction: context.input.transaction,\n deviceModelId: internalApi.getDeviceModel().id,\n }),\n onDone: {\n target: \"ProvideContexts\",\n actions: [\n assign({\n _internalState: ({ event, context }) => ({\n ...context._internalState,\n contexts: event.output.clearSignContexts,\n clearSigningType: event.output.clearSigningType,\n }),\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ProvideContexts: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.PROVIDE_CONTEXTS,\n },\n }),\n exit: assign({\n // remove the first context of the first transaction details as it has been consumed\n _internalState: ({ context }) => {\n return {\n ...context._internalState,\n contexts: context._internalState.contexts.slice(1),\n };\n },\n }),\n invoke: {\n id: \"provideContexts\",\n src: \"provideContexts\",\n input: ({ context }) => ({\n contexts: context._internalState.contexts,\n derivationPath: context.input.derivationPath,\n serializedTransaction: context.input.transaction,\n }),\n onDone: {\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 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: \"SignTransactionResultCheck\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignTransactionResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n {\n guard: \"notRefusedByUser\",\n target: \"BlindSignTransactionFallback\",\n },\n { target: \"Error\" },\n ],\n },\n BlindSignTransactionFallback: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: SignTransactionDAStep.BLIND_SIGN_TRANSACTION_FALLBACK,\n },\n }),\n invoke: {\n id: \"blindSignTransactionFallback\",\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: ClearSigningType.BASIC,\n }),\n onDone: {\n target: \"BlindSignTransactionFallbackResultCheck\",\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 BlindSignTransactionFallbackResultCheck: {\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 getAddress = async (arg0: { input: GetAddressCommandArgs }) =>\n internalApi.sendCommand(new GetAddressCommand(arg0.input));\n const getAppConfig = async () =>\n internalApi.sendCommand(new GetAppConfiguration());\n const web3CheckOptIn = async () =>\n internalApi.sendCommand(new Web3CheckOptInCommand());\n const parseTransaction = async (arg0: {\n input: ParseTransactionTaskArgs;\n }) =>\n Promise.resolve(\n new ParseTransactionTask({\n mapper: arg0.input.mapper,\n transaction: arg0.input.transaction,\n }).run(),\n );\n const buildContexts = async (arg0: { input: BuildFullContextsTaskArgs }) =>\n new BuildFullContextsTask(internalApi, arg0.input).run();\n\n const provideContexts = async (arg0: {\n input: ProvideTransactionContextsTaskArgs;\n }) => {\n return new ProvideTransactionContextsTask(internalApi, arg0.input).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 getAddress,\n getAppConfig,\n web3CheckOptIn,\n parseTransaction,\n buildContexts,\n provideContexts,\n signTransaction,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SignTransactionDeviceAction_exports", "__export", "SignTransactionDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_SignTransactionDeviceActionTypes", "import_ClearSigningType", "import_GetAddressCommand", "import_GetAppConfigurationCommand", "import_Web3CheckOptInCommand", "import_BuildFullContextsTask", "import_ParseTransactionTask", "import_ProvideTransactionContextsTask", "import_SendSignTransactionTask", "import_ApplicationChecker", "internalApi", "getAddress", "getAppConfig", "web3CheckOptIn", "parseTransaction", "buildContexts", "signTransaction", "provideContexts", "context", "_", "input", "error", "event", "subset", "arg0"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var f=require("@ledgerhq/context-module"),e=require("@ledgerhq/device-management-kit"),x=require("@ledgerhq/device-management-kit"),U=require("ethers"),_=require("purify-ts"),t=require("../../../../api/app-binder/SignTransactionDeviceActionTypes"),E=require("../../../../api/model/ClearSigningType"),P=require("../../../../api/model/TransactionType"),h=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),I=require("../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock"),O=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),v=require("./SignTransactionDeviceAction");vi.mock("@ledgerhq/device-management-kit",async r=>({...await r(),OpenAppDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("SignTransactionDeviceAction",()=>{const r={getContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn(),getSolanaContext:vi.fn()},l={mapTransactionToSubset:vi.fn()},u={extractValue:vi.fn()},S=vi.fn(),V=vi.fn(),m=vi.fn(),p=vi.fn(),C=vi.fn(),A=vi.fn();function N(){return{getAppConfig:S,web3CheckOptIn:V,preBuildContext:m,buildContext:p,buildSubContextAndProvide:C,signTransaction:A}}const g=(0,h.makeDeviceActionInternalApiMock)(),d={domain:"domain-name.eth"},a=(0,e.hexaStringToBuffer)(U.Transaction.from({chainId:1n,nonce:0,data:"0x"}).unsignedSerialized),c={chainId:1,data:"0x",selector:"0x",to:"0x",value:0n};function b(i,o,n){return{blindSigningEnabled:!1,web3ChecksEnabled:o,web3ChecksOptIn:n,version:i}}function T(i,o,n){g.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:i},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1}),S.mockResolvedValue((0,e.CommandResultFactory)({data:b(i,o,n)}))}beforeEach(()=>{vi.clearAllMocks()}),describe("Happy path",()=>{it("should call external dependencies with the correct parameters",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.15.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),p.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],clearSignContextsOptional:[],clearSigningType:E.ClearSigningType.BASIC}),C.mockResolvedValueOnce((0,_.Just)(void 0)),A.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:t.SignTransactionDAStep.SIGN_TRANSACTION},status:e.DeviceActionStatus.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.DeviceActionStatus.Completed}];(0,O.testDeviceActionStates)(n,s,g,{onDone:()=>{expect(m).toHaveBeenCalledWith(expect.objectContaining({input:{mapper:l,transaction:a}})),expect(p).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:r,options:d,subset:c,transaction:a,appConfig:b("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:u,subset:c,contextModule:r,derivationPath:"44'/60'/0'/0/0",transaction:a})})),expect(A).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:a,chainId:1,transactionType:P.TransactionType.LEGACY,clearSigningType:E.ClearSigningType.BASIC}})),i()},onError:o})})),it("should be successful while skipping OpenApp",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.15.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:{...d,skipOpenApp:!0},contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),p.mockResolvedValueOnce({clearSignContexts:[{type:"token",payload:"payload-1"}],clearSignContextsOptional:[],clearSigningType:E.ClearSigningType.BASIC}),C.mockResolvedValueOnce((0,_.Just)(void 0)),A.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:t.SignTransactionDAStep.SIGN_TRANSACTION},status:e.DeviceActionStatus.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.DeviceActionStatus.Completed}];(0,O.testDeviceActionStates)(n,s,g,{onDone:i,onError:o})})),it("should call external dependencies with the correct parameters with the generic parser",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.15.0",!1,!1);const n={...c,chainId:17},s=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:n,type:P.TransactionType.EIP1559}),p.mockResolvedValueOnce({clearSignContexts:[{type:f.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"},{type:f.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-2"}],clearSigningType:E.ClearSigningType.EIP7730,clearSignContextsOptional:[]}),C.mockResolvedValueOnce((0,_.Just)(void 0)),A.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(s,"extractDependencies").mockReturnValue(N());const y=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:t.SignTransactionDAStep.SIGN_TRANSACTION},status:e.DeviceActionStatus.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.DeviceActionStatus.Completed}];(0,O.testDeviceActionStates)(s,y,g,{onError:o,onDone:()=>{expect(m).toHaveBeenCalledWith(expect.objectContaining({input:{mapper:l,transaction:a}})),expect(p).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:r,options:d,subset:n,transaction:a,appConfig:b("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenCalledTimes(2),expect(C).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{context:{type:f.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"},contextOptional:[],transactionParser:u,subset:n,contextModule:r,derivationPath:"44'/60'/0'/0/0",transaction:a}})),expect(C).toHaveBeenNthCalledWith(2,expect.objectContaining({input:{context:{type:f.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-2"},contextOptional:[],transactionParser:u,subset:n,contextModule:r,derivationPath:"44'/60'/0'/0/0",transaction:a}})),expect(A).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:a,chainId:n.chainId,transactionType:P.TransactionType.EIP1559,clearSigningType:E.ClearSigningType.EIP7730}})),i()}})})),it("should fallback to blind signing if provideContext return an error",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.15.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),p.mockResolvedValueOnce({clearSignContexts:[{type:f.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"}],clearSigningType:E.ClearSigningType.EIP7730,clearSignContextsOptional:[]}),C.mockResolvedValueOnce((0,_.Left)(new Error("provideContext error"))),A.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:t.SignTransactionDAStep.SIGN_TRANSACTION},status:e.DeviceActionStatus.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.DeviceActionStatus.Completed}];(0,O.testDeviceActionStates)(n,s,g,{onError:o,onDone:()=>{expect(p).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:r,options:d,subset:c,transaction:a,appConfig:b("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenCalledWith(expect.objectContaining({input:{context:{type:f.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"},contextOptional:[],transactionParser:u,subset:c,contextModule:r,derivationPath:"44'/60'/0'/0/0",transaction:a}})),expect(A).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:a,chainId:c.chainId,transactionType:P.TransactionType.LEGACY,clearSigningType:E.ClearSigningType.EIP7730}})),i()}})}))}),describe("Web3Checks",()=>{it("should call external dependencies with web3Checks enabled and supported",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.16.0",!0,!0);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),p.mockRejectedValueOnce(new x.InvalidStatusWordError("buildContext error")),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{error:new x.InvalidStatusWordError("buildContext error"),status:e.DeviceActionStatus.Error}];(0,O.testDeviceActionStates)(n,s,g,{onDone:()=>{expect(S).toHaveBeenCalled(),expect(p).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:r,options:d,subset:c,transaction:a,appConfig:b("1.16.0",!0,!0),derivationPath:"44'/60'/0'/0/0"}})),i()},onError:o})})),it("should call external dependencies with web3Checks supported but disabled",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.16.0",!1,!0);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),p.mockRejectedValueOnce(new x.InvalidStatusWordError("buildContext error")),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{error:new x.InvalidStatusWordError("buildContext error"),status:e.DeviceActionStatus.Error}];(0,O.testDeviceActionStates)(n,s,g,{onDone:()=>{expect(S).toHaveBeenCalled(),expect(p).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:r,options:d,subset:c,transaction:a,appConfig:b("1.16.0",!1,!0),derivationPath:"44'/60'/0'/0/0"}})),i()},onError:o})})),it("should call external dependencies with web3Checks opt-in, then enabled",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.16.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),V.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{enabled:!0}})),p.mockRejectedValueOnce(new x.InvalidStatusWordError("buildContext error")),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.Web3ChecksOptIn,step:t.SignTransactionDAStep.WEB3_CHECKS_OPT_IN},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.WEB3_CHECKS_OPT_IN_RESULT,result:!0},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{error:new x.InvalidStatusWordError("buildContext error"),status:e.DeviceActionStatus.Error}];(0,O.testDeviceActionStates)(n,s,g,{onDone:()=>{expect(S).toHaveBeenCalled(),expect(V).toHaveBeenCalled(),expect(p).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:r,options:d,subset:c,transaction:a,appConfig:b("1.16.0",!0,!1),derivationPath:"44'/60'/0'/0/0"}})),i()},onError:o})})),it("should call external dependencies with web3Checks opt-in, then disabled",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.16.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),V.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{enabled:!1}})),p.mockRejectedValueOnce(new x.InvalidStatusWordError("buildContext error")),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.Web3ChecksOptIn,step:t.SignTransactionDAStep.WEB3_CHECKS_OPT_IN},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.WEB3_CHECKS_OPT_IN_RESULT,result:!1},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{error:new x.InvalidStatusWordError("buildContext error"),status:e.DeviceActionStatus.Error}];(0,O.testDeviceActionStates)(n,s,g,{onDone:()=>{expect(S).toHaveBeenCalled(),expect(V).toHaveBeenCalled(),expect(p).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:r,options:d,subset:c,transaction:a,appConfig:b("1.16.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),i()},onError:o})})),it("should provide web3Checks context if getWeb3Check return a value",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.15.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.EIP4844}),p.mockResolvedValueOnce({clearSignContexts:[{type:f.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"},{type:f.ClearSignContextType.WEB3_CHECK,payload:"0x01020304",certificate:{payload:new Uint8Array,keyUsageNumber:1}}],clearSigningType:E.ClearSigningType.EIP7730,clearSignContextsOptional:[]}),C.mockResolvedValueOnce((0,_.Just)(void 0)),A.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:t.SignTransactionDAStep.SIGN_TRANSACTION},status:e.DeviceActionStatus.Pending},{output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"},status:e.DeviceActionStatus.Completed}];(0,O.testDeviceActionStates)(n,s,g,{onError:o,onDone:()=>{expect(p).toHaveBeenCalledWith(expect.objectContaining({input:{contextModule:r,options:d,subset:c,transaction:a,appConfig:b("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenCalledTimes(2),expect(C).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{context:{type:f.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"},contextOptional:[],transactionParser:u,subset:c,transaction:a,contextModule:r,derivationPath:"44'/60'/0'/0/0"}})),expect(C).toHaveBeenNthCalledWith(2,expect.objectContaining({input:{context:{type:f.ClearSignContextType.WEB3_CHECK,payload:"0x01020304",certificate:{payload:new Uint8Array,keyUsageNumber:1}},contextOptional:[],transactionParser:u,subset:c,transaction:a,contextModule:r,derivationPath:"44'/60'/0'/0/0"}})),expect(A).toHaveBeenCalledWith(expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:a,chainId:c.chainId,transactionType:P.TransactionType.EIP4844,clearSigningType:E.ClearSigningType.EIP7730}})),i()}})}))}),describe("OpenApp errors",()=>{it("should fail if OpenApp throw an error",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(new e.UnknownDAError("OpenApp error"));const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{error:new e.UnknownDAError("OpenApp error"),status:e.DeviceActionStatus.Error}];(0,O.testDeviceActionStates)(n,s,g,{onError:o,onDone:()=>{i()}})}))}),describe("PreBuildContext errors",()=>{it("should fail if buildContext throws an error",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.15.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockRejectedValueOnce(new x.InvalidStatusWordError("preBuildContext error")),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{error:new x.InvalidStatusWordError("preBuildContext error"),status:e.DeviceActionStatus.Error}];(0,O.testDeviceActionStates)(n,s,g,{onError:o,onDone:i})}))}),describe("BuildContext errors",()=>{it("should fail if buildContext throws an error",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.15.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),p.mockRejectedValueOnce(new x.InvalidStatusWordError("buildContext error")),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{error:new x.InvalidStatusWordError("buildContext error"),status:e.DeviceActionStatus.Error}];(0,O.testDeviceActionStates)(n,s,g,{onError:o,onDone:i})}))}),describe("SignTransaction errors",()=>{it("should fail if signTransaction returns an error",()=>new Promise((i,o)=>{(0,I.setupOpenAppDAMock)(),T("1.15.0",!1,!1);const n=new v.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:a,options:d,contextModule:r,mapper:l,parser:u}});m.mockResolvedValueOnce({subset:c,type:P.TransactionType.LEGACY}),p.mockResolvedValueOnce({clearSignContexts:[{type:f.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"}],clearSignContextsOptional:[],clearSigningType:E.ClearSigningType.EIP7730}),C.mockResolvedValueOnce((0,_.Just)(void 0)),A.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new x.InvalidStatusWordError("signTransaction error")})),vi.spyOn(n,"extractDependencies").mockReturnValue(N());const s=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:t.SignTransactionDAStep.OPEN_APP},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.GET_APP_CONFIG},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.PRE_BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_CONTEXT},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:t.SignTransactionDAStep.BUILD_SUB_CONTEXT_AND_PROVIDE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:t.SignTransactionDAStep.SIGN_TRANSACTION},status:e.DeviceActionStatus.Pending},{error:new x.InvalidStatusWordError("signTransaction error"),status:e.DeviceActionStatus.Error}];(0,O.testDeviceActionStates)(n,s,g,{onError:o,onDone:i})}))})});
1
+ "use strict";var I=require("@ledgerhq/context-module"),e=require("@ledgerhq/device-management-kit"),P=require("ethers"),T=require("purify-ts"),k=require("rxjs"),O=require("../../../../api/app-binder/SignTransactionDeviceActionTypes"),x=require("../../../../api/model/ClearSigningType"),m=require("../../../../api/model/TransactionType"),B=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),p=require("../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock"),b=require("../../../app-binder/device-action/__test-utils__/testDeviceActionUntilStep"),u=require("./SignTransactionDeviceAction");vi.mock("@ledgerhq/device-management-kit",async n=>({...await n(),OpenAppDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));describe("SignTransactionDeviceAction",()=>{let n;const c={getFieldContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn()},r={mapTransactionToSubset:vi.fn()},d={extractValue:vi.fn()},A=vi.fn(),E=vi.fn(),g=vi.fn(),h=vi.fn(),S=vi.fn(),o=vi.fn(),w=vi.fn();function f(){return{getAppConfig:A,web3CheckOptIn:E,parseTransaction:g,buildContexts:h,provideContexts:S,signTransaction:o,getAddress:w}}const i=(0,B.makeDeviceActionInternalApiMock)(),l={domain:"domain-name.eth"},s=(0,e.hexaStringToBuffer)(P.Transaction.from({chainId:1n,nonce:0,data:"0x"}).unsignedSerialized),y={chainId:1,data:"0x",selector:"0x",to:"0x",value:0n},V="0x8ceb23fd6bc0add59e62ac25578270cff1b9f619";function M(t,a,R){return{blindSigningEnabled:!1,web3ChecksEnabled:a,web3ChecksOptIn:R,version:t}}function v(t,a,R){i.getDeviceSessionState.mockReturnValueOnce({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Ethereum",version:t},deviceModelId:e.DeviceModelId.FLEX,isSecureConnectionAllowed:!1}),i.getDeviceModel.mockReturnValueOnce({id:e.DeviceModelId.FLEX}),A.mockResolvedValue((0,e.CommandResultFactory)({data:M(t,a,R)}))}const C=(t,a)=>{if(t[a]?.status!==e.DeviceActionStatus.Pending)throw new Error(`Step ${a} is not pending: ${JSON.stringify(t[a])}`);return t[a]};describe("Happy path",()=>{describe("should sign a transaction",()=>{const t=[{context:{type:I.ClearSignContextType.TRANSACTION_INFO,payload:"payload-1"},subcontextCallbacks:[]},{context:{type:I.ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION,payload:"payload-2"},subcontextCallbacks:[]}];beforeEach(()=>{vi.resetAllMocks(),(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}})),g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),h.mockResolvedValueOnce({clearSignContexts:t,clearSigningType:x.ClearSigningType.EIP7730}),S.mockResolvedValueOnce((0,T.Just)(void 0)),o.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}));const a=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(a,"extractDependencies").mockReturnValue(f()),n=a._execute(i).observable}),it("should open the app",async()=>{const{steps:a}=await(0,b.executeUntilStep)(0,n);expect(C(a,0).intermediateValue.step).toBe(O.SignTransactionDAStep.OPEN_APP)}),it("should confirm open app",async()=>{const{steps:a}=await(0,b.executeUntilStep)(1,n);expect(C(a,1).intermediateValue.requiredUserInteraction).toBe(e.UserInteractionRequired.ConfirmOpenApp)}),it("should get app config",async()=>{const{steps:a}=await(0,b.executeUntilStep)(2,n);expect(C(a,2).intermediateValue.step).toBe(O.SignTransactionDAStep.GET_APP_CONFIG)}),it("should prebuild context",async()=>{const{steps:a}=await(0,b.executeUntilStep)(3,n);expect(C(a,3).intermediateValue.step).toBe(O.SignTransactionDAStep.PARSE_TRANSACTION),expect(g).toHaveBeenCalledTimes(1),expect(g).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{mapper:r,transaction:s}}))}),it("should get address",async()=>{const{steps:a}=await(0,b.executeUntilStep)(4,n);expect(C(a,4).intermediateValue.step).toBe(O.SignTransactionDAStep.GET_ADDRESS)}),it("should build context",async()=>{const{steps:a}=await(0,b.executeUntilStep)(5,n);expect(C(a,5).intermediateValue.step).toBe(O.SignTransactionDAStep.BUILD_CONTEXTS),expect(h).toHaveBeenCalledTimes(1),expect(h).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{contextModule:c,parser:d,mapper:r,options:l,subset:{...y,from:V},transaction:s,appConfig:M("1.15.0",!1,!1),derivationPath:"44'/60'/0'/0/0",deviceModelId:e.DeviceModelId.FLEX}}))}),it("should provide context",async()=>{const{steps:a}=await(0,b.executeUntilStep)(6,n);expect(C(a,6).intermediateValue.step).toBe(O.SignTransactionDAStep.PROVIDE_CONTEXTS),expect(S).toHaveBeenCalledTimes(1),expect(S).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{contexts:t,serializedTransaction:s,derivationPath:"44'/60'/0'/0/0"}}))}),it("should sign transaction",async()=>{const{steps:a}=await(0,b.executeUntilStep)(7,n);expect(C(a,7).intermediateValue.step).toBe(O.SignTransactionDAStep.SIGN_TRANSACTION),expect(o).toHaveBeenCalledTimes(1),expect(o).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:s,chainId:1,transactionType:m.TransactionType.EIP1559,clearSigningType:x.ClearSigningType.EIP7730}}))}),it("should return the signature",async()=>{const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Completed,output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})})}),describe("should skip open app",()=>{beforeEach(()=>{vi.resetAllMocks(),(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}}));const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:{...l,skipOpenApp:!0},contextModule:c,mapper:r,parser:d}});g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),h.mockResolvedValueOnce({clearSignContexts:[],clearSignContextsOptional:[],clearSigningType:x.ClearSigningType.BASIC}),S.mockResolvedValueOnce((0,T.Just)(void 0)),o.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),vi.spyOn(t,"extractDependencies").mockReturnValue(f()),n=t._execute(i).observable}),it("should skip open app and get app config directly",async()=>{const{steps:t}=await(0,b.executeUntilStep)(0,n);expect(C(t,0).intermediateValue.step).toBe(O.SignTransactionDAStep.GET_APP_CONFIG)})}),describe("should opt in to web3 checks",()=>{beforeEach(()=>{vi.resetAllMocks(),(0,p.setupOpenAppDAMock)(),v("1.16.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),E.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{enabled:!0}})),n=t._execute(i).observable}),it("should opt in to web3 checks if app config is supported and not already enabled",async()=>{const{steps:t}=await(0,b.executeUntilStep)(4,n);expect(C(t,3).intermediateValue.step).toBe(O.SignTransactionDAStep.WEB3_CHECKS_OPT_IN),expect(E).toHaveBeenCalledTimes(1),expect(C(t,4).intermediateValue.step).toBe(O.SignTransactionDAStep.WEB3_CHECKS_OPT_IN_RESULT),expect(C(t,4).intermediateValue.result).toBe(!0)})}),describe("should not opt in to web3 checks",()=>{beforeEach(()=>{vi.resetAllMocks(),(0,p.setupOpenAppDAMock)();const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),n=t._execute(i).observable}),it("should not opt in to web3 checks if app config is not supported",async()=>{v("1.15.0",!1,!1),await(0,b.executeUntilStep)(3,n),expect(E).not.toHaveBeenCalled()}),it("should not opt in to web3 checks if already enabled",async()=>{v("1.16.0",!0,!1),await(0,b.executeUntilStep)(3,n),expect(E).not.toHaveBeenCalled()}),it("should not opt in to web3 checks if already opted out",async()=>{v("1.16.0",!1,!0),await(0,b.executeUntilStep)(3,n),expect(E).not.toHaveBeenCalled()})})}),describe("Error cases",()=>{beforeEach(()=>{vi.resetAllMocks()}),it("should return an error if the open app throw an error",async()=>{(0,p.setupOpenAppDAMock)(new Error("Open app failed")),v("1.15.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Error,error:new Error("Open app failed")})}),it("should return an error if the get app config return an error",async()=>{(0,p.setupOpenAppDAMock)(),A.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Get app config failed")}));const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Error,error:new e.InvalidStatusWordError("Get app config failed")})}),it("should return an error if the get app config throw an error",async()=>{(0,p.setupOpenAppDAMock)(),A.mockRejectedValueOnce(new Error("Get app config failed"));const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Error,error:new Error("Get app config failed")})}),it("should ignore the web3checks result if the command fails",async()=>{(0,p.setupOpenAppDAMock)(),v("1.16.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),E.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("web3 check opt in failed")})),g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}})),h.mockResolvedValueOnce({clearSignContexts:[],clearSignContextsOptional:[],clearSigningType:x.ClearSigningType.BASIC}),o.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Completed,output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad788",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})}),it("should return an error if the parse transaction throw an error",async()=>{(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),g.mockRejectedValueOnce(new Error("Parse transaction failed")),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Error,error:new Error("Parse transaction failed")})}),it("should blind sign if the first sign transaction fails and the second sign transaction succeeds",async()=>{(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}})),h.mockResolvedValueOnce({clearSignContexts:[],clearSignContextsOptional:[],clearSigningType:x.ClearSigningType.BASIC}),S.mockResolvedValueOnce((0,T.Just)(void 0)),o.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Sign transaction failed")})),o.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad789",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Completed,output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad789",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})}),it("should blind sign if the first sign transaction throws an error and the second sign transaction succeeds",async()=>{(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}})),h.mockResolvedValueOnce({clearSignContexts:[],clearSignContextsOptional:[],clearSigningType:x.ClearSigningType.EIP7730}),S.mockResolvedValueOnce((0,T.Just)(void 0)),o.mockRejectedValueOnce(new Error("Sign transaction failed")),o.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad789",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Completed,output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad789",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}),expect(o).toHaveBeenCalledTimes(2),expect(o).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:s,chainId:1,transactionType:m.TransactionType.EIP1559,clearSigningType:x.ClearSigningType.EIP7730}})),expect(o).toHaveBeenNthCalledWith(2,expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:s,chainId:1,transactionType:m.TransactionType.EIP1559,clearSigningType:x.ClearSigningType.BASIC}}))}),it("should return an error if the sign transaction return two times an error",async()=>{(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}})),h.mockResolvedValueOnce({clearSignContexts:[],clearSignContextsOptional:[],clearSigningType:x.ClearSigningType.BASIC}),S.mockResolvedValueOnce((0,T.Just)(void 0)),o.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Sign transaction failed")})),o.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Blind sign transaction failed")})),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Error,error:new e.InvalidStatusWordError("Blind sign transaction failed")})}),it("should return an error if the blind sign transaction fallback throws an error",async()=>{(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}})),h.mockResolvedValueOnce({clearSignContexts:[],clearSignContextsOptional:[],clearSigningType:x.ClearSigningType.BASIC}),S.mockResolvedValueOnce((0,T.Just)(void 0)),o.mockResolvedValueOnce((0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Sign transaction failed")})),o.mockRejectedValueOnce(new Error("Blind sign transaction fallback failed")),n=t._execute(i).observable;const a=await(0,k.lastValueFrom)(n);expect(a).toEqual({status:e.DeviceActionStatus.Error,error:new Error("Blind sign transaction fallback failed")})}),it("should return an error without trying blind sign fallback when user refuses transaction (error code 6985)",async()=>{(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}})),h.mockResolvedValueOnce({clearSignContexts:[],clearSignContextsOptional:[],clearSigningType:x.ClearSigningType.BASIC}),S.mockResolvedValueOnce((0,T.Just)(void 0));const a=new e.InvalidStatusWordError("User refused transaction");a.errorCode="6985",o.mockResolvedValueOnce((0,e.CommandResultFactory)({error:a})),n=t._execute(i).observable;const R=await(0,k.lastValueFrom)(n);expect(R).toEqual({status:e.DeviceActionStatus.Error,error:a}),expect(o).toHaveBeenCalledTimes(1)}),it("should try blind sign fallback when error is not user refusal (different error code)",async()=>{(0,p.setupOpenAppDAMock)(),v("1.15.0",!1,!1);const t=new u.SignTransactionDeviceAction({input:{derivationPath:"44'/60'/0'/0/0",transaction:s,options:l,contextModule:c,mapper:r,parser:d}});vi.spyOn(t,"extractDependencies").mockReturnValue(f()),g.mockResolvedValueOnce({subset:y,type:m.TransactionType.EIP1559}),w.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{address:V}})),h.mockResolvedValueOnce({clearSignContexts:[],clearSignContextsOptional:[],clearSigningType:x.ClearSigningType.EIP7730}),S.mockResolvedValueOnce((0,T.Just)(void 0));const a=new e.InvalidStatusWordError("Some other error");a.errorCode="6A80",o.mockResolvedValueOnce((0,e.CommandResultFactory)({error:a})),o.mockResolvedValueOnce((0,e.CommandResultFactory)({data:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad789",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}})),n=t._execute(i).observable;const R=await(0,k.lastValueFrom)(n);expect(R).toEqual({status:e.DeviceActionStatus.Completed,output:{v:28,r:"0x8a540510e13b0f2b11a451275716d29e08caad07e89a1c84964782fb5e1ad789",s:"0x64a0de235b270fbe81e8e40688f4a9f9ad9d283d690552c9331d7773ceafa513"}}),expect(o).toHaveBeenCalledTimes(2),expect(o).toHaveBeenNthCalledWith(1,expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:s,chainId:1,transactionType:m.TransactionType.EIP1559,clearSigningType:x.ClearSigningType.EIP7730}})),expect(o).toHaveBeenNthCalledWith(2,expect.objectContaining({input:{derivationPath:"44'/60'/0'/0/0",serializedTransaction:s,chainId:1,transactionType:m.TransactionType.EIP1559,clearSigningType:x.ClearSigningType.BASIC}}))})})});
2
2
  //# sourceMappingURL=SignTransactionDeviceAction.test.js.map