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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/README.md +53 -0
  2. package/lib/cjs/api/SignerEth.js +1 -1
  3. package/lib/cjs/api/SignerEth.js.map +1 -1
  4. package/lib/cjs/api/app-binder/SignDelegationAuthorizationTypes.js +2 -0
  5. package/lib/cjs/api/app-binder/SignDelegationAuthorizationTypes.js.map +7 -0
  6. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  7. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
  8. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  9. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
  10. package/lib/cjs/api/index.js +1 -1
  11. package/lib/cjs/api/index.js.map +2 -2
  12. package/lib/cjs/api/model/AddressOptions.js +1 -1
  13. package/lib/cjs/api/model/AddressOptions.js.map +1 -1
  14. package/lib/cjs/api/model/ClearSigningType.js +2 -0
  15. package/lib/cjs/api/model/ClearSigningType.js.map +7 -0
  16. package/lib/cjs/api/model/MessageOptions.js +2 -0
  17. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  18. package/lib/cjs/api/model/TransactionOptions.js +1 -1
  19. package/lib/cjs/api/model/TransactionOptions.js.map +1 -1
  20. package/lib/cjs/api/model/TypedDataOptions.js +2 -0
  21. package/lib/cjs/api/model/TypedDataOptions.js.map +7 -0
  22. package/lib/cjs/internal/DefaultSignerEth.js +1 -1
  23. package/lib/cjs/internal/DefaultSignerEth.js.map +3 -3
  24. package/lib/cjs/internal/DefaultSignerEth.test.js +1 -1
  25. package/lib/cjs/internal/DefaultSignerEth.test.js.map +3 -3
  26. package/lib/cjs/internal/address/di/addressModule.js +1 -1
  27. package/lib/cjs/internal/address/di/addressModule.js.map +3 -3
  28. package/lib/cjs/internal/address/di/addressModule.test.js +1 -1
  29. package/lib/cjs/internal/address/di/addressModule.test.js.map +2 -2
  30. package/lib/cjs/internal/address/use-case/GetAddressUseCase.js +1 -1
  31. package/lib/cjs/internal/address/use-case/GetAddressUseCase.js.map +2 -2
  32. package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  33. package/lib/cjs/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  34. package/lib/cjs/internal/app-binder/EthAppBinder.js +1 -1
  35. package/lib/cjs/internal/app-binder/EthAppBinder.js.map +3 -3
  36. package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
  37. package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +3 -3
  38. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js +2 -0
  39. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js.map +7 -0
  40. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js +2 -0
  41. package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +7 -0
  42. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js +2 -0
  43. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +7 -0
  44. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +2 -0
  45. package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +7 -0
  46. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  47. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  48. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  49. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  50. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  51. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  52. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  53. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +2 -2
  54. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  55. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  56. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  57. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  58. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  59. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  60. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  61. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +2 -2
  62. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js +2 -0
  63. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.js.map +7 -0
  64. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js +2 -0
  65. package/lib/cjs/internal/app-binder/task/BuildSubContextTask.test.js.map +7 -0
  66. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  67. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  68. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  69. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  70. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +1 -1
  71. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +3 -3
  72. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +1 -1
  73. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +3 -3
  74. package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js +2 -0
  75. package/lib/cjs/internal/app-binder/task/PreBuildContextTask.js.map +7 -0
  76. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +2 -2
  77. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  78. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +2 -2
  79. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  80. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  81. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  82. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  83. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  84. package/lib/cjs/internal/app-binder/task/SendPayloadInChunksTask.js.map +1 -1
  85. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.js +2 -0
  86. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.js.map +7 -0
  87. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js +2 -0
  88. package/lib/cjs/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js.map +7 -0
  89. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js +1 -1
  90. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
  91. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
  92. package/lib/cjs/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
  93. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
  94. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
  95. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
  96. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
  97. package/lib/cjs/internal/di.js +1 -1
  98. package/lib/cjs/internal/di.js.map +3 -3
  99. package/lib/cjs/internal/eip7702/di/eip7702Module.js +2 -0
  100. package/lib/cjs/internal/eip7702/di/eip7702Module.js.map +7 -0
  101. package/lib/cjs/internal/eip7702/di/eip7702Module.test.js +2 -0
  102. package/lib/cjs/internal/eip7702/di/eip7702Module.test.js.map +7 -0
  103. package/lib/cjs/internal/eip7702/di/eip7702Types.js +2 -0
  104. package/lib/cjs/internal/eip7702/di/eip7702Types.js.map +7 -0
  105. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js +2 -0
  106. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js.map +7 -0
  107. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js +2 -0
  108. package/lib/cjs/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js.map +7 -0
  109. package/lib/cjs/internal/message/di/messageModule.js +1 -1
  110. package/lib/cjs/internal/message/di/messageModule.js.map +3 -3
  111. package/lib/cjs/internal/message/di/messageModule.test.js +1 -1
  112. package/lib/cjs/internal/message/di/messageModule.test.js.map +2 -2
  113. package/lib/cjs/internal/message/use-case/SignMessageUseCase.js +1 -1
  114. package/lib/cjs/internal/message/use-case/SignMessageUseCase.js.map +3 -3
  115. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  116. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  117. package/lib/cjs/internal/shared/utils/ApplicationChecker.js +1 -1
  118. package/lib/cjs/internal/shared/utils/ApplicationChecker.js.map +3 -3
  119. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js +1 -1
  120. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js.map +2 -2
  121. package/lib/cjs/internal/transaction/di/transactionModule.js +1 -1
  122. package/lib/cjs/internal/transaction/di/transactionModule.js.map +3 -3
  123. package/lib/cjs/internal/transaction/di/transactionModule.test.js +1 -1
  124. package/lib/cjs/internal/transaction/di/transactionModule.test.js.map +2 -2
  125. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.js +2 -0
  126. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.js.map +7 -0
  127. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.test.js +2 -0
  128. package/lib/cjs/internal/transaction/service/mapper/EthersTransactionMapperService.test.js.map +7 -0
  129. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js +1 -1
  130. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.js.map +3 -3
  131. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js +1 -1
  132. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
  133. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  134. package/lib/cjs/internal/transaction/service/parser/TransactionParserService.test.js.map +3 -3
  135. package/lib/cjs/internal/typed-data/di/typedDataModule.js +1 -1
  136. package/lib/cjs/internal/typed-data/di/typedDataModule.js.map +3 -3
  137. package/lib/cjs/internal/typed-data/di/typedDataModule.test.js +1 -1
  138. package/lib/cjs/internal/typed-data/di/typedDataModule.test.js.map +2 -2
  139. package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
  140. package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
  141. package/lib/cjs/internal/typed-data/service/TypedDataParser.js +1 -1
  142. package/lib/cjs/internal/typed-data/service/TypedDataParser.js.map +3 -3
  143. package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js +1 -1
  144. package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
  145. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
  146. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
  147. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  148. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  149. package/lib/cjs/package.json +13 -14
  150. package/lib/esm/api/app-binder/SignDelegationAuthorizationTypes.js +1 -0
  151. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  152. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
  153. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  154. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
  155. package/lib/esm/api/index.js +1 -1
  156. package/lib/esm/api/index.js.map +2 -2
  157. package/lib/esm/api/model/ClearSigningType.js +2 -0
  158. package/lib/esm/api/model/ClearSigningType.js.map +7 -0
  159. package/lib/esm/api/model/MessageOptions.js +1 -0
  160. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  161. package/lib/esm/api/model/TypedDataOptions.js +1 -0
  162. package/lib/esm/api/model/TypedDataOptions.js.map +7 -0
  163. package/lib/esm/internal/DefaultSignerEth.js +1 -1
  164. package/lib/esm/internal/DefaultSignerEth.js.map +3 -3
  165. package/lib/esm/internal/DefaultSignerEth.test.js +1 -1
  166. package/lib/esm/internal/DefaultSignerEth.test.js.map +3 -3
  167. package/lib/esm/internal/address/di/addressModule.js +1 -1
  168. package/lib/esm/internal/address/di/addressModule.js.map +3 -3
  169. package/lib/esm/internal/address/di/addressModule.test.js +1 -1
  170. package/lib/esm/internal/address/di/addressModule.test.js.map +2 -2
  171. package/lib/esm/internal/address/use-case/GetAddressUseCase.js +1 -1
  172. package/lib/esm/internal/address/use-case/GetAddressUseCase.js.map +2 -2
  173. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  174. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  175. package/lib/esm/internal/app-binder/EthAppBinder.js +1 -1
  176. package/lib/esm/internal/app-binder/EthAppBinder.js.map +3 -3
  177. package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
  178. package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +3 -3
  179. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js +2 -0
  180. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js.map +7 -0
  181. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js +2 -0
  182. package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +7 -0
  183. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js +2 -0
  184. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +7 -0
  185. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +2 -0
  186. package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +7 -0
  187. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  188. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  189. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  190. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  191. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  192. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  193. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  194. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +2 -2
  195. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  196. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  197. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  198. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  199. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  200. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  201. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  202. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +2 -2
  203. package/lib/esm/internal/app-binder/task/BuildSubContextTask.js +2 -0
  204. package/lib/esm/internal/app-binder/task/BuildSubContextTask.js.map +7 -0
  205. package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js +2 -0
  206. package/lib/esm/internal/app-binder/task/BuildSubContextTask.test.js.map +7 -0
  207. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  208. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  209. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  210. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  211. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +1 -1
  212. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +3 -3
  213. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +1 -1
  214. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +3 -3
  215. package/lib/esm/internal/app-binder/task/PreBuildContextTask.js +2 -0
  216. package/lib/esm/internal/app-binder/task/PreBuildContextTask.js.map +7 -0
  217. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +2 -2
  218. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  219. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +2 -2
  220. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  221. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  222. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  223. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  224. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js +1 -1
  225. package/lib/esm/internal/app-binder/task/SendPayloadInChunksTask.js.map +1 -1
  226. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.js +2 -0
  227. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.js.map +7 -0
  228. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js +2 -0
  229. package/lib/esm/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.js.map +7 -0
  230. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js +1 -1
  231. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.js.map +3 -3
  232. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js +1 -1
  233. package/lib/esm/internal/app-binder/task/SendSignTransactionTask.test.js.map +3 -3
  234. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
  235. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
  236. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
  237. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
  238. package/lib/esm/internal/di.js +1 -1
  239. package/lib/esm/internal/di.js.map +3 -3
  240. package/lib/esm/internal/eip7702/di/eip7702Module.js +2 -0
  241. package/lib/esm/internal/eip7702/di/eip7702Module.js.map +7 -0
  242. package/lib/esm/internal/eip7702/di/eip7702Module.test.js +2 -0
  243. package/lib/esm/internal/eip7702/di/eip7702Module.test.js.map +7 -0
  244. package/lib/esm/internal/eip7702/di/eip7702Types.js +2 -0
  245. package/lib/esm/internal/eip7702/di/eip7702Types.js.map +7 -0
  246. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js +2 -0
  247. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.js.map +7 -0
  248. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js +2 -0
  249. package/lib/esm/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.js.map +7 -0
  250. package/lib/esm/internal/message/di/messageModule.js +1 -1
  251. package/lib/esm/internal/message/di/messageModule.js.map +3 -3
  252. package/lib/esm/internal/message/di/messageModule.test.js +1 -1
  253. package/lib/esm/internal/message/di/messageModule.test.js.map +2 -2
  254. package/lib/esm/internal/message/use-case/SignMessageUseCase.js +1 -1
  255. package/lib/esm/internal/message/use-case/SignMessageUseCase.js.map +3 -3
  256. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  257. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  258. package/lib/esm/internal/shared/utils/ApplicationChecker.js +1 -1
  259. package/lib/esm/internal/shared/utils/ApplicationChecker.js.map +3 -3
  260. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js +1 -1
  261. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js.map +2 -2
  262. package/lib/esm/internal/transaction/di/transactionModule.js +1 -1
  263. package/lib/esm/internal/transaction/di/transactionModule.js.map +3 -3
  264. package/lib/esm/internal/transaction/di/transactionModule.test.js +1 -1
  265. package/lib/esm/internal/transaction/di/transactionModule.test.js.map +2 -2
  266. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.js +2 -0
  267. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.js.map +7 -0
  268. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.test.js +2 -0
  269. package/lib/esm/internal/transaction/service/mapper/EthersTransactionMapperService.test.js.map +7 -0
  270. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js +0 -1
  271. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.js.map +4 -4
  272. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js +1 -1
  273. package/lib/esm/internal/transaction/service/parser/TransactionParserService.js.map +3 -3
  274. package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js +1 -1
  275. package/lib/esm/internal/transaction/service/parser/TransactionParserService.test.js.map +3 -3
  276. package/lib/esm/internal/typed-data/di/typedDataModule.js +1 -1
  277. package/lib/esm/internal/typed-data/di/typedDataModule.js.map +3 -3
  278. package/lib/esm/internal/typed-data/di/typedDataModule.test.js +1 -1
  279. package/lib/esm/internal/typed-data/di/typedDataModule.test.js.map +2 -2
  280. package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
  281. package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
  282. package/lib/esm/internal/typed-data/service/TypedDataParser.js +1 -1
  283. package/lib/esm/internal/typed-data/service/TypedDataParser.js.map +3 -3
  284. package/lib/esm/internal/typed-data/service/TypedDataParser.test.js +1 -1
  285. package/lib/esm/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
  286. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
  287. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
  288. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  289. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  290. package/lib/esm/package.json +13 -14
  291. package/lib/types/api/SignerEth.d.ts +8 -4
  292. package/lib/types/api/SignerEth.d.ts.map +1 -1
  293. package/lib/types/api/app-binder/SignDelegationAuthorizationTypes.d.ts +19 -0
  294. package/lib/types/api/app-binder/SignDelegationAuthorizationTypes.d.ts.map +1 -0
  295. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +14 -10
  296. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  297. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +7 -1
  298. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
  299. package/lib/types/api/index.d.ts +5 -0
  300. package/lib/types/api/index.d.ts.map +1 -1
  301. package/lib/types/api/model/AddressOptions.d.ts +1 -0
  302. package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
  303. package/lib/types/api/model/ClearSigningType.d.ts +5 -0
  304. package/lib/types/api/model/ClearSigningType.d.ts.map +1 -0
  305. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  306. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  307. package/lib/types/api/model/TransactionOptions.d.ts +1 -0
  308. package/lib/types/api/model/TransactionOptions.d.ts.map +1 -1
  309. package/lib/types/api/model/TypedDataOptions.d.ts +4 -0
  310. package/lib/types/api/model/TypedDataOptions.d.ts.map +1 -0
  311. package/lib/types/internal/DefaultSignerEth.d.ts +7 -3
  312. package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
  313. package/lib/types/internal/address/di/addressModule.d.ts.map +1 -1
  314. package/lib/types/internal/address/use-case/GetAddressUseCase.d.ts.map +1 -1
  315. package/lib/types/internal/app-binder/EthAppBinder.d.ts +13 -3
  316. package/lib/types/internal/app-binder/EthAppBinder.d.ts.map +1 -1
  317. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts +20 -0
  318. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts.map +1 -0
  319. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.test.d.ts +2 -0
  320. package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.test.d.ts.map +1 -0
  321. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts +29 -0
  322. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts.map +1 -0
  323. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.test.d.ts +2 -0
  324. package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.test.d.ts.map +1 -0
  325. package/lib/types/internal/app-binder/command/utils/ethAppErrors.d.ts.map +1 -1
  326. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +14 -31
  327. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
  328. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +1 -2
  329. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
  330. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  331. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  332. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  333. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
  334. package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts +20 -0
  335. package/lib/types/internal/app-binder/task/BuildSubContextTask.d.ts.map +1 -0
  336. package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts +2 -0
  337. package/lib/types/internal/app-binder/task/BuildSubContextTask.test.d.ts.map +1 -0
  338. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +10 -14
  339. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +1 -1
  340. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +2 -3
  341. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +1 -1
  342. package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts +17 -0
  343. package/lib/types/internal/app-binder/task/PreBuildContextTask.d.ts.map +1 -0
  344. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +0 -2
  345. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
  346. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +28 -22
  347. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +1 -1
  348. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts +1 -2
  349. package/lib/types/internal/app-binder/task/SendPayloadInChunksTask.d.ts.map +1 -1
  350. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.d.ts +18 -0
  351. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.d.ts.map +1 -0
  352. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.d.ts +2 -0
  353. package/lib/types/internal/app-binder/task/SendSignAuthorizationDelegationTask.test.d.ts.map +1 -0
  354. package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts +2 -1
  355. package/lib/types/internal/app-binder/task/SendSignTransactionTask.d.ts.map +1 -1
  356. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts +12 -0
  357. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts.map +1 -0
  358. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts +2 -0
  359. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts.map +1 -0
  360. package/lib/types/internal/di.d.ts.map +1 -1
  361. package/lib/types/internal/eip7702/di/eip7702Module.d.ts +3 -0
  362. package/lib/types/internal/eip7702/di/eip7702Module.d.ts.map +1 -0
  363. package/lib/types/internal/eip7702/di/eip7702Module.test.d.ts +2 -0
  364. package/lib/types/internal/eip7702/di/eip7702Module.test.d.ts.map +1 -0
  365. package/lib/types/internal/eip7702/di/eip7702Types.d.ts +4 -0
  366. package/lib/types/internal/eip7702/di/eip7702Types.d.ts.map +1 -0
  367. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.d.ts +8 -0
  368. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.d.ts.map +1 -0
  369. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.d.ts +2 -0
  370. package/lib/types/internal/eip7702/use-case/SignDelegationAuthorizationUseCase.test.d.ts.map +1 -0
  371. package/lib/types/internal/message/di/messageModule.d.ts.map +1 -1
  372. package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts +2 -1
  373. package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts.map +1 -1
  374. package/lib/types/internal/shared/utils/ApplicationChecker.d.ts.map +1 -1
  375. package/lib/types/internal/transaction/di/transactionModule.d.ts.map +1 -1
  376. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.d.ts +8 -0
  377. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.d.ts.map +1 -0
  378. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.test.d.ts +2 -0
  379. package/lib/types/internal/transaction/service/mapper/EthersTransactionMapperService.test.d.ts.map +1 -0
  380. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts +4 -7
  381. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.d.ts.map +1 -1
  382. package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts +2 -2
  383. package/lib/types/internal/transaction/service/parser/TransactionParserService.d.ts.map +1 -1
  384. package/lib/types/internal/typed-data/di/typedDataModule.d.ts.map +1 -1
  385. package/lib/types/internal/typed-data/service/TypedDataParser.d.ts +4 -2
  386. package/lib/types/internal/typed-data/service/TypedDataParser.d.ts.map +1 -1
  387. package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts +2 -1
  388. package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts.map +1 -1
  389. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  390. package/package.json +18 -19
  391. package/lib/cjs/internal/app-binder/constant/plugins.js +0 -2
  392. package/lib/cjs/internal/app-binder/constant/plugins.js.map +0 -7
  393. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +0 -2
  394. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +0 -7
  395. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +0 -2
  396. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +0 -7
  397. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js +0 -2
  398. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +0 -7
  399. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +0 -2
  400. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +0 -7
  401. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js +0 -2
  402. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +0 -7
  403. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +0 -2
  404. package/lib/cjs/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +0 -7
  405. package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js +0 -2
  406. package/lib/cjs/internal/transaction/service/mapper/TransactionMapper.js.map +0 -7
  407. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js +0 -2
  408. package/lib/cjs/internal/transaction/service/mapper/TransactionMapperService.test.js.map +0 -7
  409. package/lib/esm/internal/app-binder/constant/plugins.js +0 -2
  410. package/lib/esm/internal/app-binder/constant/plugins.js.map +0 -7
  411. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +0 -2
  412. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +0 -7
  413. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js +0 -2
  414. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.js.map +0 -7
  415. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js +0 -2
  416. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +0 -7
  417. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +0 -2
  418. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +0 -7
  419. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js +0 -2
  420. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.js.map +0 -7
  421. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js +0 -2
  422. package/lib/esm/internal/transaction/service/mapper/EthersRawTransactionMapper.test.js.map +0 -7
  423. package/lib/esm/internal/transaction/service/mapper/TransactionMapper.js +0 -1
  424. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js +0 -2
  425. package/lib/esm/internal/transaction/service/mapper/TransactionMapperService.test.js.map +0 -7
  426. package/lib/types/internal/app-binder/constant/plugins.d.ts +0 -2
  427. package/lib/types/internal/app-binder/constant/plugins.d.ts.map +0 -1
  428. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts +0 -80
  429. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts.map +0 -1
  430. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.d.ts +0 -2
  431. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.test.d.ts.map +0 -1
  432. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts +0 -28
  433. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts.map +0 -1
  434. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.test.d.ts +0 -2
  435. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.test.d.ts.map +0 -1
  436. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts +0 -7
  437. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.d.ts.map +0 -1
  438. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts +0 -2
  439. package/lib/types/internal/transaction/service/mapper/EthersRawTransactionMapper.test.d.ts.map +0 -1
  440. package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts +0 -6
  441. package/lib/types/internal/transaction/service/mapper/TransactionMapper.d.ts.map +0 -1
  442. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.test.d.ts +0 -2
  443. package/lib/types/internal/transaction/service/mapper/TransactionMapperService.test.d.ts.map +0 -1
  444. /package/lib/esm/{internal/transaction/service/mapper/TransactionMapper.js.map → api/app-binder/SignDelegationAuthorizationTypes.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/address/di/addressModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { addressTypes } from \"@internal/address/di/addressTypes\";\nimport { GetAddressUseCase } from \"@internal/address/use-case/GetAddressUseCase\";\n\nexport const addressModuleFactory = () =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n _rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind(addressTypes.GetAddressUseCase).to(GetAddressUseCase);\n },\n );\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,gBAAAC,MAAoB,oCAC7B,OAAS,qBAAAC,MAAyB,+CAE3B,MAAMC,EAAuB,IAClC,IAAIH,EACF,CACEI,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EAAKH,EAAa,iBAAiB,EAAE,GAAGC,CAAiB,CAC3D,CACF",
6
- "names": ["ContainerModule", "addressTypes", "GetAddressUseCase", "addressModuleFactory", "bind", "_unbind", "_isBound", "_rebind", "_unbindAsync", "_onActivation", "_onDeactivation"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { addressTypes } from \"@internal/address/di/addressTypes\";\nimport { GetAddressUseCase } from \"@internal/address/use-case/GetAddressUseCase\";\n\nexport const addressModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(addressTypes.GetAddressUseCase).to(GetAddressUseCase);\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,gBAAAC,MAAoB,oCAC7B,OAAS,qBAAAC,MAAyB,+CAE3B,MAAMC,EAAuB,IAClC,IAAIH,EAAgB,CAAC,CAAE,KAAAI,CAAK,IAAM,CAChCA,EAAKH,EAAa,iBAAiB,EAAE,GAAGC,CAAiB,CAC3D,CAAC",
6
+ "names": ["ContainerModule", "addressTypes", "GetAddressUseCase", "addressModuleFactory", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Container as r}from"inversify";import{addressModuleFactory as d}from"./addressModule";describe("addressModuleFactory",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=d(),o=new r,o.load(e)}),it("should return the address module",()=>{expect(e).toBeDefined()})})});
1
+ import{Container as r}from"inversify";import{addressModuleFactory as d}from"./addressModule";describe("addressModuleFactory",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=d(),o=new r,o.loadSync(e)}),it("should return the address module",()=>{expect(e).toBeDefined()})})});
2
2
  //# sourceMappingURL=addressModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/address/di/addressModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { addressModuleFactory } from \"./addressModule\";\n\ndescribe(\"addressModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof addressModuleFactory>;\n beforeEach(() => {\n mod = addressModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the address module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,wBAAAC,MAA4B,kBAErC,SAAS,uBAAwB,IAAM,CACrC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAqB,EAC3BC,EAAY,IAAIF,EAChBE,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { addressModuleFactory } from \"./addressModule\";\n\ndescribe(\"addressModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof addressModuleFactory>;\n beforeEach(() => {\n mod = addressModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the address module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,wBAAAC,MAA4B,kBAErC,SAAS,uBAAwB,IAAM,CACrC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAqB,EAC3BC,EAAY,IAAIF,EAChBE,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["Container", "addressModuleFactory", "container", "mod"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var h=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var c=(t,r,e,i)=>{for(var p=i>1?void 0:i?A(r,e):r,o=t.length-1,d;o>=0;o--)(d=t[o])&&(p=(i?d(r,e,p):d(p))||p);return i&&p&&h(r,e,p),p},m=(t,r)=>(e,i)=>r(e,i,t);import{inject as B,injectable as u}from"inversify";import{appBinderTypes as a}from"../../app-binder/di/appBinderTypes";let n=class{_appBinder;constructor(r){this._appBinder=r}execute(r,e){return this._appBinder.getAddress({derivationPath:r,checkOnDevice:e?.checkOnDevice,returnChainCode:e?.returnChainCode})}};n=c([u(),m(0,B(a.AppBinding))],n);export{n as GetAddressUseCase};
1
+ var s=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var c=(n,p,e,i)=>{for(var r=i>1?void 0:i?A(p,e):p,d=n.length-1,o;d>=0;d--)(o=n[d])&&(r=(i?o(p,e,r):o(r))||r);return i&&r&&s(p,e,r),r},m=(n,p)=>(e,i)=>p(e,i,n);import{inject as a,injectable as h}from"inversify";import{appBinderTypes as f}from"../../app-binder/di/appBinderTypes";let t=class{_appBinder;constructor(p){this._appBinder=p}execute(p,e){return this._appBinder.getAddress({derivationPath:p,checkOnDevice:e?.checkOnDevice??!1,returnChainCode:e?.returnChainCode??!1,skipOpenApp:e?.skipOpenApp??!1})}};t=c([h(),m(0,a(f.AppBinding))],t);export{t as GetAddressUseCase};
2
2
  //# sourceMappingURL=GetAddressUseCase.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/address/use-case/GetAddressUseCase.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { AddressOptions } from \"@api/model/AddressOptions\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { EthAppBinder } from \"@internal/app-binder/EthAppBinder\";\n\n@injectable()\nexport class GetAddressUseCase {\n private _appBinder: EthAppBinder;\n\n constructor(@inject(appBinderTypes.AppBinding) appBinder: EthAppBinder) {\n this._appBinder = appBinder;\n }\n\n execute(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._appBinder.getAddress({\n derivationPath,\n checkOnDevice: options?.checkOnDevice,\n returnChainCode: options?.returnChainCode,\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAwB,CACrB,WAER,YAA+CC,EAAyB,CACtE,KAAK,WAAaA,CACpB,CAEA,QACEC,EACAC,EACwB,CACxB,OAAO,KAAK,WAAW,WAAW,CAChC,eAAAD,EACA,cAAeC,GAAS,cACxB,gBAAiBA,GAAS,eAC5B,CAAC,CACH,CACF,EAjBaH,EAANI,EAAA,CADNC,EAAW,EAIGC,EAAA,EAAAC,EAAOC,EAAe,UAAU,IAHlCR",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { AddressOptions } from \"@api/model/AddressOptions\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { EthAppBinder } from \"@internal/app-binder/EthAppBinder\";\n\n@injectable()\nexport class GetAddressUseCase {\n private _appBinder: EthAppBinder;\n\n constructor(@inject(appBinderTypes.AppBinding) appBinder: EthAppBinder) {\n this._appBinder = appBinder;\n }\n\n execute(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._appBinder.getAddress({\n derivationPath,\n checkOnDevice: options?.checkOnDevice ?? false,\n returnChainCode: options?.returnChainCode ?? false,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAAwB,CACrB,WAER,YAA+CC,EAAyB,CACtE,KAAK,WAAaA,CACpB,CAEA,QACEC,EACAC,EACwB,CACxB,OAAO,KAAK,WAAW,WAAW,CAChC,eAAAD,EACA,cAAeC,GAAS,eAAiB,GACzC,gBAAiBA,GAAS,iBAAmB,GAC7C,YAAaA,GAAS,aAAe,EACvC,CAAC,CACH,CACF,EAlBaH,EAANI,EAAA,CADNC,EAAW,EAIGC,EAAA,EAAAC,EAAOC,EAAe,UAAU,IAHlCR",
6
6
  "names": ["inject", "injectable", "appBinderTypes", "GetAddressUseCase", "appBinder", "derivationPath", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{GetAddressUseCase as r}from"./GetAddressUseCase";describe("GetAddressUseCase",()=>{it("should call getAddress on appBinder with the correct arguments",()=>{const e="m/44'/60'/0'/0/0",s={checkOnDevice:!0,returnChainCode:!0},t=vi.fn(),n={getAddress:t};new r(n).execute(e,s),expect(t).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!0,returnChainCode:!0})})});
1
+ import{GetAddressUseCase as r}from"./GetAddressUseCase";describe("GetAddressUseCase",()=>{it("should call getAddress on appBinder with the correct arguments",()=>{const e="m/44'/60'/0'/0/0",t={checkOnDevice:!0,returnChainCode:!0},s=vi.fn(),n={getAddress:s};new r(n).execute(e,t),expect(s).toHaveBeenCalledWith({derivationPath:e,checkOnDevice:!0,returnChainCode:!0,skipOpenApp:!1})})});
2
2
  //# sourceMappingURL=GetAddressUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/address/use-case/GetAddressUseCase.test.ts"],
4
- "sourcesContent": ["import { type EthAppBinder } from \"@internal/app-binder/EthAppBinder\";\n\nimport { GetAddressUseCase } from \"./GetAddressUseCase\";\n\ndescribe(\"GetAddressUseCase\", () => {\n it(\"should call getAddress on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"m/44'/60'/0'/0/0\";\n const checkOnDevice = true;\n const returnChainCode = true;\n const options = {\n checkOnDevice,\n returnChainCode,\n };\n const getAddress = vi.fn();\n const appBinder = {\n getAddress,\n };\n const getAddressUseCase = new GetAddressUseCase(\n appBinder as unknown as EthAppBinder,\n );\n\n // When\n getAddressUseCase.execute(derivationPath, options);\n\n // Then\n expect(getAddress).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice,\n returnChainCode,\n });\n });\n});\n"],
5
- "mappings": "AAEA,OAAS,qBAAAA,MAAyB,sBAElC,SAAS,oBAAqB,IAAM,CAClC,GAAG,iEAAkE,IAAM,CAEzE,MAAMC,EAAiB,mBAGjBC,EAAU,CACd,iBACA,kBACF,EACMC,EAAa,GAAG,GAAG,EACnBC,EAAY,CAChB,WAAAD,CACF,EAC0B,IAAIH,EAC5BI,CACF,EAGkB,QAAQH,EAAgBC,CAAO,EAGjD,OAAOC,CAAU,EAAE,qBAAqB,CACtC,eAAAF,EACA,iBACA,kBACF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type EthAppBinder } from \"@internal/app-binder/EthAppBinder\";\n\nimport { GetAddressUseCase } from \"./GetAddressUseCase\";\n\ndescribe(\"GetAddressUseCase\", () => {\n it(\"should call getAddress on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"m/44'/60'/0'/0/0\";\n const checkOnDevice = true;\n const returnChainCode = true;\n const options = {\n checkOnDevice,\n returnChainCode,\n };\n const getAddress = vi.fn();\n const appBinder = {\n getAddress,\n };\n const getAddressUseCase = new GetAddressUseCase(\n appBinder as unknown as EthAppBinder,\n );\n\n // When\n getAddressUseCase.execute(derivationPath, options);\n\n // Then\n expect(getAddress).toHaveBeenCalledWith({\n derivationPath,\n checkOnDevice,\n returnChainCode,\n skipOpenApp: false,\n });\n });\n});\n"],
5
+ "mappings": "AAEA,OAAS,qBAAAA,MAAyB,sBAElC,SAAS,oBAAqB,IAAM,CAClC,GAAG,iEAAkE,IAAM,CAEzE,MAAMC,EAAiB,mBAGjBC,EAAU,CACd,iBACA,kBACF,EACMC,EAAa,GAAG,GAAG,EACnBC,EAAY,CAChB,WAAAD,CACF,EAC0B,IAAIH,EAC5BI,CACF,EAGkB,QAAQH,EAAgBC,CAAO,EAGjD,OAAOC,CAAU,EAAE,qBAAqB,CACtC,eAAAF,EACA,iBACA,mBACA,YAAa,EACf,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["GetAddressUseCase", "derivationPath", "options", "getAddress", "appBinder"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var y=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var v=(o,e,t,r)=>{for(var i=r>1?void 0:r?D(e,t):e,s=o.length-1,c;s>=0;s--)(c=o[s])&&(i=(r?c(e,t,i):c(i))||i);return r&&i&&y(e,t,i),i},n=(o,e)=>(t,r)=>e(t,r,o);import{CallTaskInAppDeviceAction as A,SendCommandInAppDeviceAction as S}from"@ledgerhq/device-management-kit";import{UserInteractionRequired as m}from"@ledgerhq/device-management-kit";import{inject as a,injectable as f}from"inversify";import{SignTypedDataDeviceAction as g}from"../app-binder/device-action/SignTypedData/SignTypedDataDeviceAction";import{SendSignPersonalMessageTask as h}from"../app-binder/task/SendSignPersonalMessageTask";import{externalTypes as d}from"../externalTypes";import{transactionTypes as u}from"../transaction/di/transactionTypes";import{GetAddressCommand as l}from"./command/GetAddressCommand";import{ETHEREUM_PLUGINS as T}from"./constant/plugins";import{SignTransactionDeviceAction as M}from"./device-action/SignTransaction/SignTransactionDeviceAction";let p=class{constructor(e,t,r,i,s){this.dmk=e;this.contextModule=t;this.mapper=r;this.parser=i;this.sessionId=s}getAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new S({input:{command:new l(e),appName:"Ethereum",compatibleAppNames:T,requiredUserInteraction:e.checkOnDevice?m.VerifyAddress:m.None}})})}signPersonalMessage(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new A({input:{task:async t=>new h(t,e).run(),appName:"Ethereum",compatibleAppNames:T,requiredUserInteraction:m.SignPersonalMessage}})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new M({input:{derivationPath:e.derivationPath,transaction:e.transaction,mapper:this.mapper,parser:this.parser,contextModule:this.contextModule,options:e.options??{}}})})}signTypedData(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new g({input:{derivationPath:e.derivationPath,data:e.data,parser:e.parser,contextModule:this.contextModule}})})}};p=v([f(),n(0,a(d.Dmk)),n(1,a(d.ContextModule)),n(2,a(u.TransactionMapperService)),n(3,a(u.TransactionParserService)),n(4,a(d.SessionId))],p);export{p as EthAppBinder};
1
+ var D=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var u=(o,e,t,n)=>{for(var i=n>1?void 0:n?y(e,t):e,s=o.length-1,d;s>=0;s--)(d=o[s])&&(i=(n?d(e,t,i):d(i))||i);return n&&i&&D(e,t,i),i},r=(o,e)=>(t,n)=>e(t,n,o);import{CallTaskInAppDeviceAction as A,SendCommandInAppDeviceAction as T}from"@ledgerhq/device-management-kit";import{UserInteractionRequired as p}from"@ledgerhq/device-management-kit";import{inject as a,injectable as h}from"inversify";import{SignTypedDataDeviceAction as g}from"../app-binder/device-action/SignTypedData/SignTypedDataDeviceAction";import{SendSignPersonalMessageTask as l}from"../app-binder/task/SendSignPersonalMessageTask";import{externalTypes as m}from"../externalTypes";import{transactionTypes as v}from"../transaction/di/transactionTypes";import{GetAddressCommand as S}from"./command/GetAddressCommand";import{SignTransactionDeviceAction as f}from"./device-action/SignTransaction/SignTransactionDeviceAction";import{SendSignAuthorizationDelegationTask as k}from"./task/SendSignAuthorizationDelegationTask";let c=class{constructor(e,t,n,i,s){this.dmk=e;this.contextModule=t;this.mapper=n;this.parser=i;this.sessionId=s}getAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new T({input:{command:new S(e),appName:"Ethereum",requiredUserInteraction:e.checkOnDevice?p.VerifyAddress:p.None,skipOpenApp:e.skipOpenApp}})})}signPersonalMessage(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new A({input:{task:async t=>new l(t,e).run(),appName:"Ethereum",requiredUserInteraction:p.SignPersonalMessage,skipOpenApp:e.skipOpenApp}})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new f({input:{derivationPath:e.derivationPath,transaction:e.transaction,mapper:this.mapper,parser:this.parser,contextModule:this.contextModule,options:e.options??{}}})})}signTypedData(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new g({input:{derivationPath:e.derivationPath,data:e.data,parser:e.parser,contextModule:this.contextModule,skipOpenApp:e.skipOpenApp}})})}signDelegationAuthorization(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new A({input:{task:async t=>new k(t,e).run(),appName:"Ethereum",requiredUserInteraction:p.SignDelegationAuthorization,skipOpenApp:!1}})})}};c=u([h(),r(0,a(m.Dmk)),r(1,a(m.ContextModule)),r(2,a(v.TransactionMapperService)),r(3,a(v.TransactionParserService)),r(4,a(m.SessionId))],c);export{c as EthAppBinder};
2
2
  //# sourceMappingURL=EthAppBinder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/EthAppBinder.ts"],
4
- "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CallTaskInAppDeviceAction,\n SendCommandInAppDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { SignTypedDataDeviceAction } from \"@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction\";\nimport { SendSignPersonalMessageTask } from \"@internal/app-binder/task/SendSignPersonalMessageTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { GetAddressCommand } from \"./command/GetAddressCommand\";\nimport { ETHEREUM_PLUGINS } from \"./constant/plugins\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransaction/SignTransactionDeviceAction\";\n\n@injectable()\nexport class EthAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.ContextModule) private contextModule: ContextModule,\n @inject(transactionTypes.TransactionMapperService)\n private mapper: TransactionMapperService,\n @inject(transactionTypes.TransactionParserService)\n private parser: TransactionParserService,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice?: boolean;\n returnChainCode?: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(args),\n appName: \"Ethereum\",\n compatibleAppNames: ETHEREUM_PLUGINS,\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n },\n }),\n });\n }\n\n signPersonalMessage(args: {\n derivationPath: string;\n message: string | Uint8Array;\n }): SignPersonalMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignPersonalMessageTask(internalApi, args).run(),\n appName: \"Ethereum\",\n compatibleAppNames: ETHEREUM_PLUGINS,\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n },\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n options?: TransactionOptions;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n mapper: this.mapper,\n parser: this.parser,\n contextModule: this.contextModule,\n options: args.options ?? {},\n },\n }),\n });\n }\n\n signTypedData(args: {\n derivationPath: string;\n parser: TypedDataParserService;\n data: TypedData;\n }): SignTypedDataDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTypedDataDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n data: args.data,\n parser: args.parser,\n contextModule: this.contextModule,\n },\n }),\n });\n }\n}\n"],
5
- "mappings": "iOAKA,OACE,6BAAAA,EACA,gCAAAC,MACK,kCACP,OAAS,2BAAAC,MAA+B,kCACxC,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YAQnC,OAAS,6BAAAC,MAAiC,6EAC1C,OAAS,+BAAAC,MAAmC,wDAC5C,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,oBAAAC,MAAwB,4CAKjC,OAAS,qBAAAC,MAAyB,8BAClC,OAAS,oBAAAC,MAAwB,qBACjC,OAAS,+BAAAC,MAAmC,8DAGrC,IAAMC,EAAN,KAAmB,CACxB,YACqCC,EACUC,EAErCC,EAEAC,EACiCC,EACzC,CAPmC,SAAAJ,EACU,mBAAAC,EAErC,YAAAC,EAEA,YAAAC,EACiC,eAAAC,CACxC,CAEH,WAAWC,EAIgB,CACzB,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAIC,EAA6B,CAC7C,MAAO,CACL,QAAS,IAAIC,EAAkBF,CAAI,EACnC,QAAS,WACT,mBAAoBG,EACpB,wBAAyBH,EAAK,cAC1BI,EAAwB,cACxBA,EAAwB,IAC9B,CACF,CAAC,CACH,CAAC,CACH,CAEA,oBAAoBJ,EAGgB,CAClC,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAIK,EAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAIC,EAA4BD,EAAaN,CAAI,EAAE,IAAI,EACzD,QAAS,WACT,mBAAoBG,EACpB,wBAAyBC,EAAwB,mBACnD,CACF,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBJ,EAIgB,CAC9B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAIQ,EAA4B,CAC5C,MAAO,CACL,eAAgBR,EAAK,eACrB,YAAaA,EAAK,YAClB,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,cAAe,KAAK,cACpB,QAASA,EAAK,SAAW,CAAC,CAC5B,CACF,CAAC,CACH,CAAC,CACH,CAEA,cAAcA,EAIgB,CAC5B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAIS,EAA0B,CAC1C,MAAO,CACL,eAAgBT,EAAK,eACrB,KAAMA,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,aACtB,CACF,CAAC,CACH,CAAC,CACH,CACF,EAtFaN,EAANgB,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAc,GAAG,GACxBF,EAAA,EAAAC,EAAOC,EAAc,aAAa,GAClCF,EAAA,EAAAC,EAAOE,EAAiB,wBAAwB,GAEhDH,EAAA,EAAAC,EAAOE,EAAiB,wBAAwB,GAEhDH,EAAA,EAAAC,EAAOC,EAAc,SAAS,IARtBpB",
6
- "names": ["CallTaskInAppDeviceAction", "SendCommandInAppDeviceAction", "UserInteractionRequired", "inject", "injectable", "SignTypedDataDeviceAction", "SendSignPersonalMessageTask", "externalTypes", "transactionTypes", "GetAddressCommand", "ETHEREUM_PLUGINS", "SignTransactionDeviceAction", "EthAppBinder", "dmk", "contextModule", "mapper", "parser", "sessionId", "args", "SendCommandInAppDeviceAction", "GetAddressCommand", "ETHEREUM_PLUGINS", "UserInteractionRequired", "CallTaskInAppDeviceAction", "internalApi", "SendSignPersonalMessageTask", "SignTransactionDeviceAction", "SignTypedDataDeviceAction", "__decorateClass", "injectable", "__decorateParam", "inject", "externalTypes", "transactionTypes"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CallTaskInAppDeviceAction,\n SendCommandInAppDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { SignDelegationAuthorizationDAReturnType } from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { SignTypedDataDeviceAction } from \"@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction\";\nimport { SendSignPersonalMessageTask } from \"@internal/app-binder/task/SendSignPersonalMessageTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { GetAddressCommand } from \"./command/GetAddressCommand\";\nimport { SignTransactionDeviceAction } from \"./device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { SendSignAuthorizationDelegationTask } from \"./task/SendSignAuthorizationDelegationTask\";\n\n@injectable()\nexport class EthAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.ContextModule) private contextModule: ContextModule,\n @inject(transactionTypes.TransactionMapperService)\n private mapper: TransactionMapperService,\n @inject(transactionTypes.TransactionParserService)\n private parser: TransactionParserService,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice: boolean;\n returnChainCode: boolean;\n skipOpenApp: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(args),\n appName: \"Ethereum\",\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signPersonalMessage(args: {\n derivationPath: string;\n message: string | Uint8Array;\n skipOpenApp: boolean;\n }): SignPersonalMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignPersonalMessageTask(internalApi, args).run(),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n options?: TransactionOptions;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n mapper: this.mapper,\n parser: this.parser,\n contextModule: this.contextModule,\n options: args.options ?? {},\n },\n }),\n });\n }\n\n signTypedData(args: {\n derivationPath: string;\n parser: TypedDataParserService;\n data: TypedData;\n skipOpenApp: boolean;\n }): SignTypedDataDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTypedDataDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n data: args.data,\n parser: args.parser,\n contextModule: this.contextModule,\n skipOpenApp: args.skipOpenApp,\n },\n }),\n });\n }\n\n signDelegationAuthorization(args: {\n derivationPath: string;\n chainId: number;\n address: string;\n nonce: number;\n }): SignDelegationAuthorizationDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendSignAuthorizationDelegationTask(internalApi, args).run(),\n appName: \"Ethereum\",\n requiredUserInteraction:\n UserInteractionRequired.SignDelegationAuthorization,\n skipOpenApp: false,\n },\n }),\n });\n }\n}\n"],
5
+ "mappings": "iOAKA,OACE,6BAAAA,EACA,gCAAAC,MACK,kCACP,OAAS,2BAAAC,MAA+B,kCACxC,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YASnC,OAAS,6BAAAC,MAAiC,6EAC1C,OAAS,+BAAAC,MAAmC,wDAC5C,OAAS,iBAAAC,MAAqB,0BAC9B,OAAS,oBAAAC,MAAwB,4CAKjC,OAAS,qBAAAC,MAAyB,8BAClC,OAAS,+BAAAC,MAAmC,8DAC5C,OAAS,uCAAAC,MAA2C,6CAG7C,IAAMC,EAAN,KAAmB,CACxB,YACqCC,EACUC,EAErCC,EAEAC,EACiCC,EACzC,CAPmC,SAAAJ,EACU,mBAAAC,EAErC,YAAAC,EAEA,YAAAC,EACiC,eAAAC,CACxC,CAEH,WAAWC,EAKgB,CACzB,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAIC,EAA6B,CAC7C,MAAO,CACL,QAAS,IAAIC,EAAkBF,CAAI,EACnC,QAAS,WACT,wBAAyBA,EAAK,cAC1BG,EAAwB,cACxBA,EAAwB,KAC5B,YAAaH,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,oBAAoBA,EAIgB,CAClC,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAII,EAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAIC,EAA4BD,EAAaL,CAAI,EAAE,IAAI,EACzD,QAAS,WACT,wBAAyBG,EAAwB,oBACjD,YAAaH,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBA,EAIgB,CAC9B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAIO,EAA4B,CAC5C,MAAO,CACL,eAAgBP,EAAK,eACrB,YAAaA,EAAK,YAClB,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,cAAe,KAAK,cACpB,QAASA,EAAK,SAAW,CAAC,CAC5B,CACF,CAAC,CACH,CAAC,CACH,CAEA,cAAcA,EAKgB,CAC5B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAIQ,EAA0B,CAC1C,MAAO,CACL,eAAgBR,EAAK,eACrB,KAAMA,EAAK,KACX,OAAQA,EAAK,OACb,cAAe,KAAK,cACpB,YAAaA,EAAK,WACpB,CACF,CAAC,CACH,CAAC,CACH,CAEA,4BAA4BA,EAKgB,CAC1C,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAII,EAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAII,EAAoCJ,EAAaL,CAAI,EAAE,IAAI,EACjE,QAAS,WACT,wBACEG,EAAwB,4BAC1B,YAAa,EACf,CACF,CAAC,CACH,CAAC,CACH,CACF,EA/GaT,EAANgB,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAc,GAAG,GACxBF,EAAA,EAAAC,EAAOC,EAAc,aAAa,GAClCF,EAAA,EAAAC,EAAOE,EAAiB,wBAAwB,GAEhDH,EAAA,EAAAC,EAAOE,EAAiB,wBAAwB,GAEhDH,EAAA,EAAAC,EAAOC,EAAc,SAAS,IARtBpB",
6
+ "names": ["CallTaskInAppDeviceAction", "SendCommandInAppDeviceAction", "UserInteractionRequired", "inject", "injectable", "SignTypedDataDeviceAction", "SendSignPersonalMessageTask", "externalTypes", "transactionTypes", "GetAddressCommand", "SignTransactionDeviceAction", "SendSignAuthorizationDelegationTask", "EthAppBinder", "dmk", "contextModule", "mapper", "parser", "sessionId", "args", "SendCommandInAppDeviceAction", "GetAddressCommand", "UserInteractionRequired", "CallTaskInAppDeviceAction", "internalApi", "SendSignPersonalMessageTask", "SignTransactionDeviceAction", "SignTypedDataDeviceAction", "SendSignAuthorizationDelegationTask", "__decorateClass", "injectable", "__decorateParam", "inject", "externalTypes", "transactionTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{hexaStringToBuffer as v}from"@ledgerhq/device-management-kit";import{DeviceActionStatus as c}from"@ledgerhq/device-management-kit";import{SendCommandInAppDeviceAction as g}from"@ledgerhq/device-management-kit";import{UserInteractionRequired as S}from"@ledgerhq/device-management-kit";import{Transaction as y}from"ethers";import{from as A}from"rxjs";import{GetAddressCommand as h}from"./command/GetAddressCommand";import{ETHEREUM_PLUGINS as f}from"./constant/plugins";import{EthAppBinder as l}from"./EthAppBinder";describe("EthAppBinder",()=>{const a={sendCommand:vi.fn(),executeDeviceAction:vi.fn()},u={getContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn()},m={mapTransactionToSubset:vi.fn()},D={extractValue:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),describe("getAddress",()=>{it("should return the address, publicKey, and chainCode",()=>new Promise((s,r)=>{const e="0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43",i="04e3785ca";vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:A([{status:c.Completed,output:{address:e,publicKey:i,chainCode:void 0}}]),cancel:vi.fn()});const p=new l(a,u,m,D,"sessionId"),{observable:o}=p.getAddress({derivationPath:"44'/60'/3'/2/1"}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:{address:e,publicKey:i,chainCode:void 0}}]),s()}catch(n){r(n)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const s={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1};test("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const e={...s,checkOnDevice:!0};new l(a,u,m,D,"sessionId").getAddress(e),expect(a.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new g({input:{command:new h(e),appName:"Ethereum",requiredUserInteraction:S.VerifyAddress,compatibleAppNames:f}})})}),test("when checkOnDevice is false: UserInteractionRequired.None",()=>{const e={...s,checkOnDevice:!1};new l(a,u,m,D,"sessionId").getAddress(e),expect(a.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new g({input:{command:new h(e),appName:"Ethereum",requiredUserInteraction:S.None,compatibleAppNames:f}})})})})}),describe("signTransaction",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i=v(y.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized),d={};vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:A([{status:c.Completed,output:e}]),cancel:vi.fn()});const p=new l(a,u,m,D,"sessionId"),{observable:o}=p.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:i,options:d}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:e}]),s()}catch(n){r(n)}}})})),it("should return the signature without options",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i=v(y.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized);vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:A([{status:c.Completed,output:e}]),cancel:vi.fn()});const d=new l(a,u,m,D,"sessionId"),{observable:p}=d.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:i,options:void 0}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{r(t)},complete:()=>{try{expect(o).toEqual([{status:c.Completed,output:e}]),s()}catch(t){r(t)}}})}))}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i="Hello, World!";vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:A([{status:c.Completed,output:e}]),cancel:vi.fn()});const d=new l(a,u,m,D,"sessionId"),{observable:p}=d.signPersonalMessage({derivationPath:"44'/60'/3'/2/1",message:i}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{r(t)},complete:()=>{try{expect(o).toEqual([{status:c.Completed,output:e}]),s()}catch(t){r(t)}}})}))}),describe("signTypedData",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i={domain:{},types:{},primaryType:"test",message:{}},d={parse:vi.fn()};vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:A([{status:c.Completed,output:e}]),cancel:vi.fn()});const p=new l(a,u,m,D,"sessionId"),{observable:o}=p.signTypedData({derivationPath:"44'/60'/3'/2/1",parser:d,data:i}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:e}]),s()}catch(n){r(n)}}})}))})});
1
+ import{hexaStringToBuffer as v}from"@ledgerhq/device-management-kit";import{DeviceActionStatus as c}from"@ledgerhq/device-management-kit";import{SendCommandInAppDeviceAction as S}from"@ledgerhq/device-management-kit";import{UserInteractionRequired as h}from"@ledgerhq/device-management-kit";import{Transaction as y}from"ethers";import{from as m}from"rxjs";import{GetAddressCommand as f}from"./command/GetAddressCommand";import{EthAppBinder as A}from"./EthAppBinder";describe("EthAppBinder",()=>{const r={sendCommand:vi.fn(),executeDeviceAction:vi.fn()},d={getContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn(),getSolanaContext:vi.fn()},D={mapTransactionToSubset:vi.fn()},l={extractValue:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),describe("getAddress",()=>{it("should return the address, publicKey, and chainCode",()=>new Promise((i,a)=>{const e="0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43",s="04e3785ca";vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:{address:e,publicKey:s,chainCode:void 0}}]),cancel:vi.fn()});const p=new A(r,d,D,l,"sessionId"),{observable:o}=p.getAddress({derivationPath:"44'/60'/3'/2/1",checkOnDevice:!1,returnChainCode:!1,skipOpenApp:!1}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{a(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:{address:e,publicKey:s,chainCode:void 0}}]),i()}catch(n){a(n)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const i={derivationPath:"44'/60'/3'/2/1",checkOnDevice:!1,returnChainCode:!1,skipOpenApp:!1};test("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const e={...i,checkOnDevice:!0};new A(r,d,D,l,"sessionId").getAddress(e),expect(r.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new S({input:{command:new f(e),appName:"Ethereum",requiredUserInteraction:h.VerifyAddress,skipOpenApp:!1}})})}),test("when checkOnDevice is false: UserInteractionRequired.None",()=>{const e={...i,checkOnDevice:!1};new A(r,d,D,l,"sessionId").getAddress(e),expect(r.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new S({input:{command:new f(e),appName:"Ethereum",requiredUserInteraction:h.None,skipOpenApp:!1}})})})})}),describe("signTransaction",()=>{it("should return the signature",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s=v(y.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized),u={};vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const p=new A(r,d,D,l,"sessionId"),{observable:o}=p.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:s,options:u}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{a(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:e}]),i()}catch(n){a(n)}}})})),it("should return the signature without options",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s=v(y.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized);vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const u=new A(r,d,D,l,"sessionId"),{observable:p}=u.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:s,options:void 0}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{a(t)},complete:()=>{try{expect(o).toEqual([{status:c.Completed,output:e}]),i()}catch(t){a(t)}}})}))}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s="Hello, World!";vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const u=new A(r,d,D,l,"sessionId"),{observable:p}=u.signPersonalMessage({derivationPath:"44'/60'/3'/2/1",message:s,skipOpenApp:!1}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{a(t)},complete:()=>{try{expect(o).toEqual([{status:c.Completed,output:e}]),i()}catch(t){a(t)}}})}))}),describe("signDelegationAuthorization",()=>{it("should return the signature",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s=2,u=42,p="0xaddress";vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const o=new A(r,d,D,l,"sessionId"),{observable:t}=o.signDelegationAuthorization({derivationPath:"44'/60'/3'/2/1",chainId:s,address:p,nonce:u}),n=[];t.subscribe({next:g=>{n.push(g)},error:g=>{a(g)},complete:()=>{try{expect(n).toEqual([{status:c.Completed,output:e}]),i()}catch(g){a(g)}}})}))}),describe("signTypedData",()=>{it("should return the signature",()=>new Promise((i,a)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},s={domain:{},types:{},primaryType:"test",message:{}},u={parse:vi.fn()};vi.spyOn(r,"executeDeviceAction").mockReturnValue({observable:m([{status:c.Completed,output:e}]),cancel:vi.fn()});const p=new A(r,d,D,l,"sessionId"),{observable:o}=p.signTypedData({derivationPath:"44'/60'/3'/2/1",parser:u,data:s,skipOpenApp:!1}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{a(n)},complete:()=>{try{expect(t).toEqual([{status:c.Completed,output:e}]),i()}catch(n){a(n)}}})}))})});
2
2
  //# sourceMappingURL=EthAppBinder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/EthAppBinder.test.ts"],
4
- "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceActionState,\n type DeviceManagementKit,\n hexaStringToBuffer,\n} from \"@ledgerhq/device-management-kit\";\nimport { DeviceActionStatus } from \"@ledgerhq/device-management-kit\";\nimport { SendCommandInAppDeviceAction } from \"@ledgerhq/device-management-kit\";\nimport { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { Transaction } from \"ethers\";\nimport { from } from \"rxjs\";\n\nimport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport {\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport {\n type SignTypedDataDAError,\n type SignTypedDataDAIntermediateValue,\n type SignTypedDataDAOutput,\n} from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { GetAddressCommand } from \"./command/GetAddressCommand\";\nimport { ETHEREUM_PLUGINS } from \"./constant/plugins\";\nimport { EthAppBinder } from \"./EthAppBinder\";\n\ndescribe(\"EthAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: vi.fn(),\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const mockedContextModule: ContextModule = {\n getContext: vi.fn(),\n getContexts: vi.fn(),\n getTypedDataFilters: vi.fn(),\n getWeb3Checks: vi.fn(),\n };\n const mockedMapper: TransactionMapperService = {\n mapTransactionToSubset: vi.fn(),\n } as unknown as TransactionMapperService;\n const mockedParser: TransactionParserService = {\n extractValue: vi.fn(),\n } as unknown as TransactionParserService;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"getAddress\", () => {\n it(\"should return the address, publicKey, and chainCode\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const address = \"0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43\";\n const publicKey = \"04e3785ca\";\n const chainCode = undefined;\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: { address, publicKey, chainCode },\n } as DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.getAddress({\n derivationPath: \"44'/60'/3'/2/1\",\n });\n\n // THEN\n const states: DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: { address, publicKey, chainCode },\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n };\n\n test(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(params),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n }),\n });\n });\n\n test(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(params),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.None,\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signTransaction\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const transaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n to: \"0x1234567890123456789012345678901234567890\",\n value: 0n,\n }).unsignedSerialized,\n )!;\n const options = {};\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/60'/3'/2/1\",\n transaction,\n options,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n it(\"should return the signature without options\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const transaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n to: \"0x1234567890123456789012345678901234567890\",\n value: 0n,\n }).unsignedSerialized,\n )!;\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/60'/3'/2/1\",\n transaction,\n options: undefined,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const message = \"Hello, World!\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signPersonalMessage({\n derivationPath: \"44'/60'/3'/2/1\",\n message,\n });\n\n // THEN\n const states: DeviceActionState<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signTypedData\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const typedData: TypedData = {\n domain: {},\n types: {},\n primaryType: \"test\",\n message: {},\n };\n const parser: TypedDataParserService = {\n parse: vi.fn(),\n };\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTypedData({\n derivationPath: \"44'/60'/3'/2/1\",\n parser,\n data: typedData,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["hexaStringToBuffer", "DeviceActionStatus", "SendCommandInAppDeviceAction", "UserInteractionRequired", "Transaction", "from", "GetAddressCommand", "ETHEREUM_PLUGINS", "EthAppBinder", "mockedDmk", "mockedContextModule", "mockedMapper", "mockedParser", "resolve", "reject", "address", "publicKey", "appBinder", "observable", "states", "state", "err", "baseParams", "params", "signature", "transaction", "options", "message", "typedData", "parser"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceActionState,\n type DeviceManagementKit,\n hexaStringToBuffer,\n} from \"@ledgerhq/device-management-kit\";\nimport { DeviceActionStatus } from \"@ledgerhq/device-management-kit\";\nimport { SendCommandInAppDeviceAction } from \"@ledgerhq/device-management-kit\";\nimport { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { Transaction } from \"ethers\";\nimport { from } from \"rxjs\";\n\nimport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport {\n type SignDelegationAuthorizationDAError,\n type SignDelegationAuthorizationDAIntermediateValue,\n type SignDelegationAuthorizationDAOutput,\n} from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nimport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport {\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport {\n type SignTypedDataDAError,\n type SignTypedDataDAIntermediateValue,\n type SignTypedDataDAOutput,\n} from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { GetAddressCommand } from \"./command/GetAddressCommand\";\nimport { EthAppBinder } from \"./EthAppBinder\";\n\ndescribe(\"EthAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: vi.fn(),\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const mockedContextModule: ContextModule = {\n getContext: vi.fn(),\n getContexts: vi.fn(),\n getTypedDataFilters: vi.fn(),\n getWeb3Checks: vi.fn(),\n getSolanaContext: vi.fn(),\n };\n const mockedMapper: TransactionMapperService = {\n mapTransactionToSubset: vi.fn(),\n } as unknown as TransactionMapperService;\n const mockedParser: TransactionParserService = {\n extractValue: vi.fn(),\n } as unknown as TransactionParserService;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"getAddress\", () => {\n it(\"should return the address, publicKey, and chainCode\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const address = \"0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43\";\n const publicKey = \"04e3785ca\";\n const chainCode = undefined;\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: { address, publicKey, chainCode },\n } as DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.getAddress({\n derivationPath: \"44'/60'/3'/2/1\",\n checkOnDevice: false,\n returnChainCode: false,\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: { address, publicKey, chainCode },\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n checkOnDevice: false,\n returnChainCode: false,\n skipOpenApp: false,\n };\n\n test(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(params),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n }),\n });\n });\n\n test(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(params),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signTransaction\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const transaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n to: \"0x1234567890123456789012345678901234567890\",\n value: 0n,\n }).unsignedSerialized,\n )!;\n const options = {};\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/60'/3'/2/1\",\n transaction,\n options,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n it(\"should return the signature without options\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const transaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n to: \"0x1234567890123456789012345678901234567890\",\n value: 0n,\n }).unsignedSerialized,\n )!;\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/60'/3'/2/1\",\n transaction,\n options: undefined,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const message = \"Hello, World!\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signPersonalMessage({\n derivationPath: \"44'/60'/3'/2/1\",\n message,\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signDelegationAuthorization\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const chainId = 2;\n const nonce = 42;\n const address = \"0xaddress\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignDelegationAuthorizationDAOutput,\n SignDelegationAuthorizationDAError,\n SignDelegationAuthorizationDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signDelegationAuthorization({\n derivationPath: \"44'/60'/3'/2/1\",\n chainId,\n address,\n nonce,\n });\n\n // THEN\n const states: DeviceActionState<\n SignDelegationAuthorizationDAOutput,\n SignDelegationAuthorizationDAError,\n SignDelegationAuthorizationDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signTypedData\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const typedData: TypedData = {\n domain: {},\n types: {},\n primaryType: \"test\",\n message: {},\n };\n const parser: TypedDataParserService = {\n parse: vi.fn(),\n };\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTypedData({\n derivationPath: \"44'/60'/3'/2/1\",\n parser,\n data: typedData,\n skipOpenApp: false,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["hexaStringToBuffer", "DeviceActionStatus", "SendCommandInAppDeviceAction", "UserInteractionRequired", "Transaction", "from", "GetAddressCommand", "EthAppBinder", "mockedDmk", "mockedContextModule", "mockedMapper", "mockedParser", "resolve", "reject", "address", "publicKey", "appBinder", "observable", "states", "state", "err", "baseParams", "params", "signature", "transaction", "options", "message", "chainId", "nonce", "typedData", "parser"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ import{ApduBuilder as o,CommandResultFactory as e}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as d}from"@ledgerhq/signer-utils";import{Maybe as t}from"purify-ts";import{ETH_APP_ERRORS as a,EthAppCommandErrorFactory as n}from"./utils/ethAppErrors";class l{constructor(r){this.args=r}errorHelper=new d(a,n);getApdu(){const r={cla:224,ins:42,p1:this.args.isFirstChunk?1:0,p2:0};return new o(r).addBufferToData(this.args.data).build()}parseResponse(r){return t.fromNullable(this.errorHelper.getError(r)).orDefault(e({data:void 0}))}}export{l as ProvideProxyInfoCommand};
2
+ //# sourceMappingURL=ProvideProxyInfoCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/ProvideProxyInfoCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nexport type ProvideProxyInfoCommandArgs = {\n /**\n * The proxy info data to provide in chunks\n */\n readonly data: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\nexport class ProvideProxyInfoCommand\n implements Command<void, ProvideProxyInfoCommandArgs, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n\n constructor(private readonly args: ProvideProxyInfoCommandArgs) {}\n\n getApdu(): Apdu {\n const ProvideProxyInfoArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x2a,\n p1: this.args.isFirstChunk ? 0x01 : 0x00,\n p2: 0x00,\n };\n\n return new ApduBuilder(ProvideProxyInfoArgs)\n .addBufferToData(this.args.data)\n .build();\n }\n\n parseResponse(response: ApduResponse): CommandResult<void, EthErrorCodes> {\n return Maybe.fromNullable(this.errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: undefined }),\n );\n }\n}\n"],
5
+ "mappings": "AAAA,OAEE,eAAAA,EAKA,wBAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,SAAAC,MAAa,YAEtB,OACE,kBAAAC,EACA,6BAAAC,MAEK,uBAaA,MAAMC,CAEb,CAME,YAA6BC,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAIL,EACjCE,EACAC,CACF,EAIA,SAAgB,CACd,MAAMG,EAAwC,CAC5C,IAAK,IACL,IAAK,GACL,GAAI,KAAK,KAAK,aAAe,EAAO,EACpC,GAAI,CACN,EAEA,OAAO,IAAIR,EAAYQ,CAAoB,EACxC,gBAAgB,KAAK,KAAK,IAAI,EAC9B,MAAM,CACX,CAEA,cAAcC,EAA4D,CACxE,OAAON,EAAM,aAAa,KAAK,YAAY,SAASM,CAAQ,CAAC,EAAE,UAC7DR,EAAqB,CAAE,KAAM,MAAU,CAAC,CAC1C,CACF,CACF",
6
+ "names": ["ApduBuilder", "CommandResultFactory", "CommandErrorHelper", "Maybe", "ETH_APP_ERRORS", "EthAppCommandErrorFactory", "ProvideProxyInfoCommand", "args", "ProvideProxyInfoArgs", "response"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{isSuccessCommandResult as s}from"@ledgerhq/device-management-kit";import{EthAppCommandError as n}from"./utils/ethAppErrors";import{ProvideProxyInfoCommand as t}from"./ProvideProxyInfoCommand";describe("ProvideProxyInfoCommand",()=>{describe("getApdu",()=>{it("should return the raw APDU for the first chunk",()=>{const e={data:Uint8Array.from([1,2,3]),isFirstChunk:!0},r=new t(e).getApdu();expect(r.getRawApdu()).toStrictEqual(Uint8Array.from([224,42,1,0,3,1,2,3]))}),it("should return the raw APDU for the subsequent chunk",()=>{const e={data:Uint8Array.from([4,5,6]),isFirstChunk:!1},r=new t(e).getApdu();expect(r.getRawApdu()).toStrictEqual(Uint8Array.from([224,42,0,0,3,4,5,6]))})}),describe("parseResponse",()=>{it("should return an error if the response status code is invalid",()=>{const e={data:Uint8Array.from([]),statusCode:Uint8Array.from([109,0])},r=new t({data:new Uint8Array(0),isFirstChunk:!0}).parseResponse(e);if(s(r))throw new Error("Expected an error");expect(r.error).toBeDefined(),expect(r.error).toBeInstanceOf(n)}),it("should return a success result if the response status code is valid",()=>{const e={data:Uint8Array.from([]),statusCode:Uint8Array.from([144,0])},r=new t({data:new Uint8Array(0),isFirstChunk:!0}).parseResponse(e);expect(s(r)).toBe(!0)})})});
2
+ //# sourceMappingURL=ProvideProxyInfoCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/ProvideProxyInfoCommand.test.ts"],
4
+ "sourcesContent": ["import {\n type ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { EthAppCommandError } from \"./utils/ethAppErrors\";\nimport {\n ProvideProxyInfoCommand,\n type ProvideProxyInfoCommandArgs,\n} from \"./ProvideProxyInfoCommand\";\n\ndescribe(\"ProvideProxyInfoCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU for the first chunk\", () => {\n // GIVEN\n const args: ProvideProxyInfoCommandArgs = {\n data: Uint8Array.from([0x01, 0x02, 0x03]),\n isFirstChunk: true,\n };\n\n // WHEN\n const command = new ProvideProxyInfoCommand(args);\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x2a, 0x01, 0x00, 0x03, 0x01, 0x02, 0x03]),\n );\n });\n\n it(\"should return the raw APDU for the subsequent chunk\", () => {\n // GIVEN\n const args: ProvideProxyInfoCommandArgs = {\n data: Uint8Array.from([0x04, 0x05, 0x06]),\n isFirstChunk: false,\n };\n\n // WHEN\n const command = new ProvideProxyInfoCommand(args);\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x2a, 0x00, 0x00, 0x03, 0x04, 0x05, 0x06]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is invalid\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Uint8Array.from([]),\n statusCode: Uint8Array.from([0x6d, 0x00]), // Invalid status code\n };\n\n // WHEN\n const command = new ProvideProxyInfoCommand({\n data: new Uint8Array(0),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n throw new Error(\"Expected an error\");\n } else {\n expect(result.error).toBeDefined();\n expect(result.error).toBeInstanceOf(EthAppCommandError);\n }\n });\n\n it(\"should return a success result if the response status code is valid\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Uint8Array.from([]),\n statusCode: Uint8Array.from([0x90, 0x00]), // Success status code\n };\n\n // WHEN\n const command = new ProvideProxyInfoCommand({\n data: new Uint8Array(0),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n\n // THEN\n expect(isSuccessCommandResult(result)).toBe(true);\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAEE,0BAAAA,MACK,kCAEP,OAAS,sBAAAC,MAA0B,uBACnC,OACE,2BAAAC,MAEK,4BAEP,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,GAAG,iDAAkD,IAAM,CAEzD,MAAMC,EAAoC,CACxC,KAAM,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EACxC,aAAc,EAChB,EAIMC,EADU,IAAIF,EAAwBC,CAAI,EAC3B,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAClE,CACF,CAAC,EAED,GAAG,sDAAuD,IAAM,CAE9D,MAAMD,EAAoC,CACxC,KAAM,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EACxC,aAAc,EAChB,EAIMC,EADU,IAAIF,EAAwBC,CAAI,EAC3B,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAClE,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,gEAAiE,IAAM,CAExE,MAAMC,EAAyB,CAC7B,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAOMC,EAJU,IAAIJ,EAAwB,CAC1C,KAAM,IAAI,WAAW,CAAC,EACtB,aAAc,EAChB,CAAC,EACsB,cAAcG,CAAQ,EAG7C,GAAIL,EAAuBM,CAAM,EAC/B,MAAM,IAAI,MAAM,mBAAmB,EAEnC,OAAOA,EAAO,KAAK,EAAE,YAAY,EACjC,OAAOA,EAAO,KAAK,EAAE,eAAeL,CAAkB,CAE1D,CAAC,EAED,GAAG,sEAAuE,IAAM,CAE9E,MAAMI,EAAyB,CAC7B,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAC1C,EAOMC,EAJU,IAAIJ,EAAwB,CAC1C,KAAM,IAAI,WAAW,CAAC,EACtB,aAAc,EAChB,CAAC,EACsB,cAAcG,CAAQ,EAG7C,OAAOL,EAAuBM,CAAM,CAAC,EAAE,KAAK,EAAI,CAClD,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["isSuccessCommandResult", "EthAppCommandError", "ProvideProxyInfoCommand", "args", "apdu", "response", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{ApduBuilder as s,ApduParser as d,CommandResultFactory as e,InvalidStatusWordError as a}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as m}from"@ledgerhq/signer-utils";import{Just as u,Maybe as p,Nothing as g}from"purify-ts";import{ETH_APP_ERRORS as A,EthAppCommandErrorFactory as E}from"./utils/ethAppErrors";const l=32,h=32;class f{args;errorHelper=new m(A,E);constructor(t){this.args=t}getApdu(){const{data:t,isFirstChunk:r}=this.args,o={cla:224,ins:52,p1:r?1:0,p2:0};return new s(o).addBufferToData(t).build()}parseResponse(t){return p.fromNullable(this.errorHelper.getError(t)).orDefaultLazy(()=>{const r=new d(t),o=r.extract8BitUInt();if(o===void 0)return e({data:g});const n=r.encodeToHexaString(r.extractFieldByLength(l),!0);if(!n)return e({error:new a("R is missing")});const i=r.encodeToHexaString(r.extractFieldByLength(h),!0);return i?e({data:u({r:n,s:i,v:o})}):e({error:new a("S is missing")})})}}export{f as SignEIP7702AuthorizationCommand};
2
+ //# sourceMappingURL=SignAuthorizationDelegationCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/SignAuthorizationDelegationCommand.ts"],
4
+ "sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-personal-message\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Just, Maybe, Nothing } from \"purify-ts\";\n\nimport { type Signature } from \"@api/model/Signature\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\nexport type SignEIP7702AuthorizationCommandArgs = {\n /**\n * The data to sign in max 255 bytes chunks\n * Data is a concatenation of the following:\n * - Derivation path length (1 byte)\n * - Derivation path (4 bytes per element)\n * - Nonce (4 bytes)\n * - Chain ID (4 bytes)\n * - Address (20 bytes)\n */\n readonly data: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\nexport type SignEIP7702AuthorizationCommandResponse = Maybe<Signature>;\n\nexport class SignEIP7702AuthorizationCommand\n implements\n Command<\n SignEIP7702AuthorizationCommandResponse,\n SignEIP7702AuthorizationCommandArgs,\n EthErrorCodes\n >\n{\n readonly args: SignEIP7702AuthorizationCommandArgs;\n private readonly errorHelper = new CommandErrorHelper<\n SignEIP7702AuthorizationCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n constructor(args: SignEIP7702AuthorizationCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const { data, isFirstChunk } = this.args;\n const signEIP7702AuthorizationArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x34,\n p1: isFirstChunk ? 0x01 : 0x00,\n p2: 0x00,\n };\n\n return new ApduBuilder(signEIP7702AuthorizationArgs)\n .addBufferToData(data)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<SignEIP7702AuthorizationCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({ data: Nothing });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n r,\n s,\n v,\n }),\n });\n });\n }\n}\n"],
5
+ "mappings": "AACA,OAEE,eAAAA,EAEA,cAAAC,EAIA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBACnC,OAAS,QAAAC,EAAM,SAAAC,EAAO,WAAAC,MAAe,YAIrC,OACE,kBAAAC,EACA,6BAAAC,MAEK,uBAEP,MAAMC,EAAW,GACXC,EAAW,GAqBV,MAAMC,CAOb,CACW,KACQ,YAAc,IAAIR,EAGjCI,EAAgBC,CAAyB,EAE3C,YAAYI,EAA2C,CACrD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,KAAM,CAAE,KAAAC,EAAM,aAAAC,CAAa,EAAI,KAAK,KAC9BC,EAAgD,CACpD,IAAK,IACL,IAAK,GACL,GAAID,EAAe,EAAO,EAC1B,GAAI,CACN,EAEA,OAAO,IAAIf,EAAYgB,CAA4B,EAChD,gBAAgBF,CAAI,EACpB,MAAM,CACX,CAEA,cACEG,EACuE,CACvE,OAAOX,EAAM,aACX,KAAK,YAAY,SAASW,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAIjB,EAAWgB,CAAY,EAGpCE,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,OAAOjB,EAAqB,CAAE,KAAMK,CAAQ,CAAC,EAG/C,MAAMa,EAAIF,EAAO,mBACfA,EAAO,qBAAqBR,CAAQ,EACpC,EACF,EACA,GAAI,CAACU,EACH,OAAOlB,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,EAGH,MAAMkB,EAAIH,EAAO,mBACfA,EAAO,qBAAqBP,CAAQ,EACpC,EACF,EACA,OAAKU,EAMEnB,EAAqB,CAC1B,KAAMG,EAAK,CACT,EAAAe,EACA,EAAAC,EACA,EAAAF,CACF,CAAC,CACH,CAAC,EAXQjB,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,cAAc,CAClD,CAAC,CAUL,CAAC,CACH,CACF",
6
+ "names": ["ApduBuilder", "ApduParser", "CommandResultFactory", "InvalidStatusWordError", "CommandErrorHelper", "Just", "Maybe", "Nothing", "ETH_APP_ERRORS", "EthAppCommandErrorFactory", "R_LENGTH", "S_LENGTH", "SignEIP7702AuthorizationCommand", "args", "data", "isFirstChunk", "signEIP7702AuthorizationArgs", "apduResponse", "parser", "v", "r", "s"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{CommandResultFactory as o,InvalidStatusWordError as x,isSuccessCommandResult as c}from"@ledgerhq/device-management-kit";import{Just as i,Nothing as u}from"purify-ts";import{SignEIP7702AuthorizationCommand as s}from"./SignAuthorizationDelegationCommand";const n=Uint8Array.from([224,52,1,0,8,0,6,76,101,100,103,101,114]),d=Uint8Array.from([224,52,0,0,8,0,6,76,101,100,103,101,114]),a=new Uint8Array([27,151,164,202,143,105,70,51,89,38,1,245,162,62,11,204,85,60,157,10,144,211,163,66,45,87,85,8,169,40,152,185,110,105,80,208,46,116,233,193,2,193,100,162,37,83,48,130,202,189,216,144,239,196,99,246,127,96,206,254,140,63,135,207,206]);describe("SignEIP7702AuthorizationCommand",()=>{describe("getApdu",()=>{it("should return the first chunk raw APDU",()=>{const e={data:n.slice(5),isFirstChunk:!0},t=new s(e).getApdu();expect(t.getRawApdu()).toStrictEqual(n)}),it("should return the next chunk raw APDU",()=>{const e={data:n.slice(5),isFirstChunk:!1},t=new s(e).getApdu();expect(t.getRawApdu()).toStrictEqual(d)})}),describe("parseResponse",()=>{it("should return an error if the response status code is invalid",()=>{const e={data:Buffer.from([]),statusCode:Buffer.from([106,128])},t=new s({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(e);expect(c(t)).toBe(!1)}),it("should return success without result for first chunk",()=>{const e={statusCode:Buffer.from([144,0]),data:Buffer.from([])},t=new s({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(e);expect(t).toStrictEqual(o({data:u}))}),it("should return success if the response signature is valid",()=>{const e={statusCode:Buffer.from([144,0]),data:a},t=new s({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(e);expect(t).toStrictEqual(o({data:i({r:"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e",s:"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce",v:27})}))}),it("should return an error if r is missing",()=>{const e={statusCode:Buffer.from([144,0]),data:a.slice(0,32)},t=new s({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(e);expect(t).toStrictEqual(o({error:new x("R is missing")}))}),it("should return an error if s is missing",()=>{const e={statusCode:Buffer.from([144,0]),data:a.slice(0,64)},t=new s({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(e);expect(t).toStrictEqual(o({error:new x("S is missing")}))})})});
2
+ //# sourceMappingURL=SignAuthorizationDelegationCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/SignAuthorizationDelegationCommand.test.ts"],
4
+ "sourcesContent": ["import {\n type ApduResponse,\n CommandResultFactory,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport {\n SignEIP7702AuthorizationCommand,\n type SignEIP7702AuthorizationCommandArgs,\n} from \"./SignAuthorizationDelegationCommand\";\n\nconst FIRST_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x34, 0x01, 0x00, 0x08, 0x00, 0x06, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72,\n]);\n\nconst NEXT_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x34, 0x00, 0x00, 0x08, 0x00, 0x06, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72,\n]);\n\nconst SUCCESS_RESPONSE = new Uint8Array([\n 0x1b, 0x97, 0xa4, 0xca, 0x8f, 0x69, 0x46, 0x33, 0x59, 0x26, 0x01, 0xf5, 0xa2,\n 0x3e, 0x0b, 0xcc, 0x55, 0x3c, 0x9d, 0x0a, 0x90, 0xd3, 0xa3, 0x42, 0x2d, 0x57,\n 0x55, 0x08, 0xa9, 0x28, 0x98, 0xb9, 0x6e, 0x69, 0x50, 0xd0, 0x2e, 0x74, 0xe9,\n 0xc1, 0x02, 0xc1, 0x64, 0xa2, 0x25, 0x53, 0x30, 0x82, 0xca, 0xbd, 0xd8, 0x90,\n 0xef, 0xc4, 0x63, 0xf6, 0x7f, 0x60, 0xce, 0xfe, 0x8c, 0x3f, 0x87, 0xcf, 0xce,\n]);\n\ndescribe(\"SignEIP7702AuthorizationCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the first chunk raw APDU\", () => {\n // GIVEN\n const args: SignEIP7702AuthorizationCommandArgs = {\n data: FIRST_CHUNK_APDU.slice(5),\n isFirstChunk: true,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(FIRST_CHUNK_APDU);\n });\n\n it(\"should return the next chunk raw APDU\", () => {\n // GIVEN\n const args: SignEIP7702AuthorizationCommandArgs = {\n data: FIRST_CHUNK_APDU.slice(5),\n isFirstChunk: false,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(NEXT_CHUNK_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is invalid\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Buffer.from([]),\n statusCode: Buffer.from([0x6a, 0x80]), // Invalid status code\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return success without result for first chunk\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: Buffer.from([]),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: Nothing,\n }),\n );\n });\n\n it(\"should return success if the response signature is valid\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: Just({\n r: \"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e\",\n s: \"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce\",\n v: 27,\n }),\n }),\n );\n });\n\n it(\"should return an error if r is missing\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE.slice(0, 32),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n }),\n );\n });\n\n it(\"should return an error if s is missing\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE.slice(0, 64),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["CommandResultFactory", "InvalidStatusWordError", "isSuccessCommandResult", "Just", "Nothing", "SignEIP7702AuthorizationCommand", "FIRST_CHUNK_APDU", "NEXT_CHUNK_APDU", "SUCCESS_RESPONSE", "args", "apdu", "response", "result"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{DeviceModelId as S,isSuccessCommandResult as s,OpenAppDeviceAction as m,UnknownDAError as T,UserInteractionRequired as i,XStateDeviceAction as h}from"@ledgerhq/device-management-kit";import{Left as y,Right as E}from"purify-ts";import{and as x,assign as t,fromPromise as o,setup as I}from"xstate";import{SignTransactionDAStep as r}from"../../../../api/app-binder/SignTransactionDeviceActionTypes";import{GetAppConfiguration as A}from"../../../app-binder/command/GetAppConfigurationCommand";import{Web3CheckOptInCommand as k}from"../../../app-binder/command/Web3CheckOptInCommand";import{ETHEREUM_PLUGINS as v}from"../../../app-binder/constant/plugins";import{BuildTransactionContextTask as _}from"../../../app-binder/task/BuildTransactionContextTask";import{ProvideTransactionContextTask as f}from"../../../app-binder/task/ProvideTransactionContextTask";import{ProvideTransactionGenericContextTask as b}from"../../../app-binder/task/ProvideTransactionGenericContextTask";import{SendSignTransactionTask as P}from"../../../app-binder/task/SendSignTransactionTask";import{ApplicationChecker as D}from"../../../shared/utils/ApplicationChecker";class H extends h{makeStateMachine(a){const{getAppConfig:c,web3CheckOptIn:p,buildContext:u,provideContext:l,provideGenericContext:C,signTransaction:d}=this.extractDependencies(a);return I({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new m({input:{appName:"Ethereum"}}).makeStateMachine(a),getAppConfig:o(c),web3CheckOptIn:o(p),buildContext:o(u),provideContext:o(l),provideGenericContext:o(C),signTransaction:o(d)},guards:{noInternalError:({context:e})=>e._internalState.error===null,isGenericContext:({context:e})=>e._internalState.clearSignContexts!==null&&typeof e._internalState.clearSignContexts.transactionInfo=="string",isWeb3ChecksSupported:({context:e})=>new D(a.getDeviceSessionState(),e._internalState.appConfig).withMinVersionExclusive("1.15.0").excludeDeviceModel(S.NANO_S).check(),shouldOptIn:({context:e})=>!e._internalState.appConfig.web3ChecksEnabled&&!e._internalState.appConfig.web3ChecksOptIn},actions:{assignErrorFromEvent:t({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"SignTransactionDeviceAction",initial:"OpenAppDeviceAction",context:({input:e})=>({input:e,intermediateValue:{requiredUserInteraction:i.None,step:r.OPEN_APP},_internalState:{error:null,appConfig:null,clearSignContexts:null,serializedTransaction:null,chainId:null,web3Check:null,transactionType:null,isLegacy:!0,signature:null}}),states:{OpenAppDeviceAction:{exit:t({intermediateValue:{requiredUserInteraction:i.None,step:r.OPEN_APP}}),invoke:{id:"openAppStateMachine",input:{appName:"Ethereum",compatibleAppNames:v},src:"openAppStateMachine",onSnapshot:{actions:t({intermediateValue:e=>({...e.event.snapshot.context.intermediateValue,step:r.OPEN_APP})})},onDone:{actions:t({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:n=>({...e.context._internalState,error:n})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"GetAppConfig",guard:"noInternalError"},"Error"]},GetAppConfig:{entry:t({intermediateValue:{requiredUserInteraction:i.None,step:r.GET_APP_CONFIG}}),invoke:{id:"getAppConfig",src:"getAppConfig",onDone:{target:"GetAppConfigResultCheck",actions:[t({_internalState:({event:e,context:n})=>s(e.output)?{...n._internalState,appConfig:e.output.data}:{...n._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetAppConfigResultCheck:{always:[{target:"Web3ChecksOptIn",guard:x(["noInternalError","isWeb3ChecksSupported","shouldOptIn"])},{target:"BuildContext",guard:"noInternalError"},{target:"Error"}]},Web3ChecksOptIn:{entry:t({intermediateValue:{requiredUserInteraction:i.Web3ChecksOptIn,step:r.WEB3_CHECKS_OPT_IN}}),exit:t({intermediateValue:{requiredUserInteraction:i.None,step:r.WEB3_CHECKS_OPT_IN}}),invoke:{id:"web3CheckOptIn",src:"web3CheckOptIn",onDone:{target:"BuildContext",actions:[t({_internalState:({event:e,context:n})=>s(e.output)?{...n._internalState,appConfig:{...n._internalState.appConfig,web3ChecksEnabled:e.output.data.enabled}}:n._internalState})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContext:{entry:t({intermediateValue:{requiredUserInteraction:i.None,step:r.BUILD_CONTEXT}}),invoke:{id:"buildContext",src:"buildContext",input:({context:e})=>({contextModule:e.input.contextModule,mapper:e.input.mapper,transaction:e.input.transaction,options:e.input.options,appConfig:e._internalState.appConfig,derivationPath:e.input.derivationPath}),onDone:{target:"BuildContextResultCheck",actions:[t({_internalState:({event:e,context:n})=>({...n._internalState,clearSignContexts:e.output.clearSignContexts,web3Check:e.output.web3Check,serializedTransaction:e.output.serializedTransaction,chainId:e.output.chainId,transactionType:e.output.transactionType})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContextResultCheck:{always:[{target:"ProvideGenericContext",guard:"isGenericContext"},{target:"ProvideContext"}]},ProvideContext:{entry:t({intermediateValue:{requiredUserInteraction:i.None,step:r.PROVIDE_CONTEXT}}),invoke:{id:"provideContext",src:"provideContext",input:({context:e})=>({clearSignContexts:e._internalState.clearSignContexts,web3Check:e._internalState.web3Check}),onDone:{target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ProvideGenericContext:{entry:t({intermediateValue:{requiredUserInteraction:i.None,step:r.PROVIDE_GENERIC_CONTEXT}}),invoke:{id:"provideGenericContext",src:"provideGenericContext",input:({context:e})=>({contextModule:e.input.contextModule,transactionParser:e.input.parser,chainId:e._internalState.chainId,derivationPath:e.input.derivationPath,serializedTransaction:e._internalState.serializedTransaction,context:e._internalState.clearSignContexts,web3Check:e._internalState.web3Check}),onDone:{actions:t({_internalState:({event:e,context:n})=>{const{isLegacy:w,...g}=n._internalState;return e.output.caseOf({Just:()=>({...g,isLegacy:!1}),Nothing:()=>({...g,isLegacy:!1})})}}),target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransaction:{entry:t({intermediateValue:{requiredUserInteraction:i.SignTransaction,step:r.SIGN_TRANSACTION}}),exit:t({intermediateValue:{requiredUserInteraction:i.None,step:r.SIGN_TRANSACTION}}),invoke:{id:"signTransaction",src:"signTransaction",input:({context:e})=>({derivationPath:e.input.derivationPath,serializedTransaction:e._internalState.serializedTransaction,chainId:e._internalState.chainId,transactionType:e._internalState.transactionType,isLegacy:e._internalState.isLegacy}),onDone:{target:"SignTransactionResultCheck",actions:[t({_internalState:({event:e,context:n})=>s(e.output)?{...n._internalState,signature:e.output.data}:{...n._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransactionResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.signature?E(e._internalState.signature):y(e._internalState.error||new T("No error in final state"))})}extractDependencies(a){return{getAppConfig:async()=>a.sendCommand(new A),web3CheckOptIn:async()=>a.sendCommand(new k),buildContext:async e=>new _(a,e.input).run(),provideContext:async e=>new f(a,{clearSignContexts:e.input.clearSignContexts,web3Check:e.input.web3Check}).run(),provideGenericContext:async e=>new b(a,{contextModule:e.input.contextModule,transactionParser:e.input.transactionParser,chainId:e.input.chainId,derivationPath:e.input.derivationPath,serializedTransaction:e.input.serializedTransaction,context:e.input.context,web3Check:e.input.web3Check}).run(),signTransaction:async e=>new P(a,e.input).run()}}}export{H as SignTransactionDeviceAction};
1
+ import{DeviceModelId as s,isSuccessCommandResult as p,OpenAppDeviceAction as S,UnknownDAError as T,UserInteractionRequired as i,XStateDeviceAction as m}from"@ledgerhq/device-management-kit";import{Left as A,Right as y}from"purify-ts";import{and as h,assign as n,fromPromise as o,setup as E}from"xstate";import{SignTransactionDAStep as a}from"../../../../api/app-binder/SignTransactionDeviceActionTypes";import{GetAppConfiguration as b}from"../../../app-binder/command/GetAppConfigurationCommand";import{Web3CheckOptInCommand as x}from"../../../app-binder/command/Web3CheckOptInCommand";import{BuildSubContextTask as k}from"../../../app-binder/task/BuildSubContextTask";import{BuildTransactionContextTask as I}from"../../../app-binder/task/BuildTransactionContextTask";import{PreBuildContextTask as P}from"../../../app-binder/task/PreBuildContextTask";import{ProvideTransactionContextTask as _}from"../../../app-binder/task/ProvideTransactionContextTask";import{SendSignTransactionTask as v}from"../../../app-binder/task/SendSignTransactionTask";import{ApplicationChecker as D}from"../../../shared/utils/ApplicationChecker";class L extends m{makeStateMachine(r){const{getAppConfig:u,web3CheckOptIn:c,preBuildContext:l,buildContext:d,signTransaction:g,buildSubContextAndProvide:C}=this.extractDependencies(r);return E({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new S({input:{appName:"Ethereum"}}).makeStateMachine(r),getAppConfig:o(u),web3CheckOptIn:o(c),preBuildContext:o(l),buildContext:o(d),signTransaction:o(g),buildSubContextAndProvide:o(C)},guards:{noInternalError:({context:t})=>t._internalState.error===null,isWeb3ChecksSupported:({context:t})=>new D(r.getDeviceSessionState(),t._internalState.appConfig).withMinVersionExclusive("1.15.0").excludeDeviceModel(s.NANO_S).excludeDeviceModel(s.NANO_SP).excludeDeviceModel(s.NANO_X).check(),shouldOptIn:({context:t})=>!t._internalState.appConfig.web3ChecksEnabled&&!t._internalState.appConfig.web3ChecksOptIn,skipOpenApp:({context:t})=>!!t.input.options.skipOpenApp,hasContextToProvide:({context:t})=>t._internalState.clearSignContexts!==null&&t._internalState.clearSignContexts.length>0},actions:{assignErrorFromEvent:n({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignTransactionDeviceAction",initial:"InitialState",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:i.None,step:a.OPEN_APP},_internalState:{error:null,appConfig:null,clearSignContexts:null,clearSignContextsOptional:null,subset:null,transactionType:null,clearSigningType:null,signature:null}}),states:{InitialState:{always:[{target:"GetAppConfig",guard:"skipOpenApp"},"OpenAppDeviceAction"]},OpenAppDeviceAction:{invoke:{id:"openAppStateMachine",input:{appName:"Ethereum"},src:"openAppStateMachine",onSnapshot:{actions:n({intermediateValue:t=>({...t.event.snapshot.context.intermediateValue,step:a.OPEN_APP})})},onDone:{actions:n({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:e=>({...t.context._internalState,error:e})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"GetAppConfig",guard:"noInternalError"},"Error"]},GetAppConfig:{entry:n({intermediateValue:{requiredUserInteraction:i.None,step:a.GET_APP_CONFIG}}),invoke:{id:"getAppConfig",src:"getAppConfig",onDone:{target:"GetAppConfigResultCheck",actions:[n({_internalState:({event:t,context:e})=>p(t.output)?{...e._internalState,appConfig:t.output.data}:{...e._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetAppConfigResultCheck:{always:[{target:"Web3ChecksOptIn",guard:h(["noInternalError","isWeb3ChecksSupported","shouldOptIn"])},{target:"PreBuildContext",guard:"noInternalError"},{target:"Error"}]},Web3ChecksOptIn:{entry:n({intermediateValue:{requiredUserInteraction:i.Web3ChecksOptIn,step:a.WEB3_CHECKS_OPT_IN}}),invoke:{id:"web3CheckOptIn",src:"web3CheckOptIn",onDone:{target:"Web3ChecksOptInResult",actions:[n({_internalState:({event:t,context:e})=>p(t.output)?{...e._internalState,appConfig:{...e._internalState.appConfig,web3ChecksEnabled:t.output.data.enabled}}:e._internalState})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},Web3ChecksOptInResult:{entry:n(({context:t})=>({intermediateValue:{requiredUserInteraction:i.None,step:a.WEB3_CHECKS_OPT_IN_RESULT,result:t._internalState.appConfig.web3ChecksEnabled}})),after:{0:{target:"PreBuildContext"}}},PreBuildContext:{entry:n({intermediateValue:{requiredUserInteraction:i.None,step:a.PRE_BUILD_CONTEXT}}),invoke:{id:"preBuildContext",src:"preBuildContext",input:({context:t})=>({mapper:t.input.mapper,transaction:t.input.transaction}),onDone:{target:"BuildContext",actions:n({_internalState:({event:t,context:e})=>({...e._internalState,transactionType:t.output.type,subset:t.output.subset})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContext:{entry:n({intermediateValue:{requiredUserInteraction:i.None,step:a.BUILD_CONTEXT}}),invoke:{id:"buildContext",src:"buildContext",input:({context:t})=>({contextModule:t.input.contextModule,options:t.input.options,appConfig:t._internalState.appConfig,derivationPath:t.input.derivationPath,transaction:t.input.transaction,subset:t._internalState.subset}),onDone:{target:"HasContextToProvideCheck",actions:[n({_internalState:({event:t,context:e})=>({...e._internalState,clearSignContexts:t.output.clearSignContexts,clearSignContextsOptional:t.output.clearSignContextsOptional,clearSigningType:t.output.clearSigningType})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},HasContextToProvideCheck:{always:[{target:"BuildSubContextAndProvide",guard:"hasContextToProvide"},{target:"SignTransaction"}]},BuildSubContextAndProvide:{entry:n({intermediateValue:{requiredUserInteraction:i.None,step:a.BUILD_SUB_CONTEXT_AND_PROVIDE}}),exit:n({_internalState:({context:t})=>({...t._internalState,clearSignContexts:t._internalState.clearSignContexts.slice(1)})}),invoke:{id:"buildSubContextAndProvide",src:"buildSubContextAndProvide",input:({context:t})=>({context:t._internalState.clearSignContexts[0],contextOptional:t._internalState.clearSignContextsOptional,transactionParser:t.input.parser,transaction:t.input.transaction,contextModule:t.input.contextModule,subset:t._internalState.subset,derivationPath:t.input.derivationPath}),onDone:{target:"HasContextToProvideCheck"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransaction:{entry:n({intermediateValue:{requiredUserInteraction:i.SignTransaction,step:a.SIGN_TRANSACTION}}),invoke:{id:"signTransaction",src:"signTransaction",input:({context:t})=>({derivationPath:t.input.derivationPath,serializedTransaction:t.input.transaction,chainId:t._internalState.subset.chainId,transactionType:t._internalState.transactionType,clearSigningType:t._internalState.clearSigningType}),onDone:{target:"SignTransactionResultCheck",actions:[n({_internalState:({event:t,context:e})=>p(t.output)?{...e._internalState,signature:t.output.data}:{...e._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransactionResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:t})=>t._internalState.signature?y(t._internalState.signature):A(t._internalState.error||new T("No error in final state"))})}extractDependencies(r){return{getAppConfig:async()=>r.sendCommand(new b),web3CheckOptIn:async()=>r.sendCommand(new x),preBuildContext:async t=>Promise.resolve(new P({mapper:t.input.mapper,transaction:t.input.transaction}).run()),buildContext:async t=>new I(r,t.input).run(),buildSubContextAndProvide:async t=>{const{subcontextCallbacks:e}=new k(r,{context:t.input.context,contextOptional:t.input.contextOptional,transactionParser:t.input.transactionParser,subset:t.input.subset,contextModule:t.input.contextModule}).run();return new _(r,{context:t.input.context,subcontextsCallbacks:e,serializedTransaction:t.input.transaction,derivationPath:t.input.derivationPath}).run()},signTransaction:async t=>new v(r,{...t.input}).run()}}}export{L as SignTransactionDeviceAction};
2
2
  //# sourceMappingURL=SignTransactionDeviceAction.js.map