@ledgerhq/device-signer-kit-ethereum 0.0.0-rn-hid-20250221115747 → 0.0.0-rn-hid-sync-onboarding-behavior-20250516114041

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 (332) hide show
  1. package/README.md +14 -2
  2. package/lib/cjs/api/SignerEth.js +1 -1
  3. package/lib/cjs/api/SignerEth.js.map +1 -1
  4. package/lib/cjs/api/SignerEthBuilder.js +1 -1
  5. package/lib/cjs/api/SignerEthBuilder.js.map +3 -3
  6. package/lib/cjs/api/SignerEthBuilder.test.js +1 -1
  7. package/lib/cjs/api/SignerEthBuilder.test.js.map +3 -3
  8. package/lib/cjs/api/app-binder/GetConfigCommandTypes.js +2 -0
  9. package/lib/cjs/api/app-binder/GetConfigCommandTypes.js.map +7 -0
  10. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  11. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +3 -3
  12. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  13. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +3 -3
  14. package/lib/cjs/api/index.js +1 -1
  15. package/lib/cjs/api/index.js.map +3 -3
  16. package/lib/cjs/api/model/AddressOptions.js +1 -1
  17. package/lib/cjs/api/model/AddressOptions.js.map +1 -1
  18. package/lib/cjs/api/model/MessageOptions.js +2 -0
  19. package/lib/cjs/api/model/MessageOptions.js.map +7 -0
  20. package/lib/cjs/api/model/TransactionOptions.js +1 -1
  21. package/lib/cjs/api/model/TransactionOptions.js.map +1 -1
  22. package/lib/cjs/api/model/TypedDataOptions.js +2 -0
  23. package/lib/cjs/api/model/TypedDataOptions.js.map +7 -0
  24. package/lib/cjs/internal/DefaultSignerEth.js +1 -1
  25. package/lib/cjs/internal/DefaultSignerEth.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 +2 -2
  36. package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
  37. package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +2 -2
  38. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
  39. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
  40. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
  41. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
  42. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js +2 -0
  43. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
  44. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
  45. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +7 -0
  46. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
  47. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js.map +2 -2
  48. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
  49. package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
  50. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
  51. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
  52. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
  53. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
  54. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  55. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  56. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  57. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  58. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  59. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  60. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  61. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  62. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  63. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  64. package/lib/cjs/internal/app-binder/di/appBinderModule.js +1 -1
  65. package/lib/cjs/internal/app-binder/di/appBinderModule.js.map +3 -3
  66. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  67. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  68. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  69. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  70. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  71. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  72. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  73. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  74. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
  75. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
  76. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
  77. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
  78. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  79. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  80. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  81. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  82. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  83. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  84. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  85. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  86. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +1 -1
  87. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +3 -3
  88. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js +1 -1
  89. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +3 -3
  90. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +1 -1
  91. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +2 -2
  92. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
  93. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
  94. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
  95. package/lib/cjs/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
  96. package/lib/cjs/internal/di.js +1 -1
  97. package/lib/cjs/internal/di.js.map +2 -2
  98. package/lib/cjs/internal/message/di/messageModule.js +1 -1
  99. package/lib/cjs/internal/message/di/messageModule.js.map +3 -3
  100. package/lib/cjs/internal/message/di/messageModule.test.js +1 -1
  101. package/lib/cjs/internal/message/di/messageModule.test.js.map +2 -2
  102. package/lib/cjs/internal/message/use-case/SignMessageUseCase.js +1 -1
  103. package/lib/cjs/internal/message/use-case/SignMessageUseCase.js.map +3 -3
  104. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  105. package/lib/cjs/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  106. package/lib/cjs/internal/shared/utils/ApplicationChecker.js +2 -0
  107. package/lib/cjs/internal/shared/utils/ApplicationChecker.js.map +7 -0
  108. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js +2 -0
  109. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js.map +7 -0
  110. package/lib/cjs/internal/transaction/di/transactionModule.js +1 -1
  111. package/lib/cjs/internal/transaction/di/transactionModule.js.map +3 -3
  112. package/lib/cjs/internal/transaction/di/transactionModule.test.js +1 -1
  113. package/lib/cjs/internal/transaction/di/transactionModule.test.js.map +2 -2
  114. package/lib/cjs/internal/typed-data/di/typedDataModule.js +1 -1
  115. package/lib/cjs/internal/typed-data/di/typedDataModule.js.map +3 -3
  116. package/lib/cjs/internal/typed-data/di/typedDataModule.test.js +1 -1
  117. package/lib/cjs/internal/typed-data/di/typedDataModule.test.js.map +2 -2
  118. package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
  119. package/lib/cjs/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
  120. package/lib/cjs/internal/typed-data/service/TypedDataParser.js +1 -1
  121. package/lib/cjs/internal/typed-data/service/TypedDataParser.js.map +3 -3
  122. package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js +1 -1
  123. package/lib/cjs/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
  124. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
  125. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
  126. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  127. package/lib/cjs/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  128. package/lib/cjs/package.json +13 -14
  129. package/lib/esm/api/SignerEthBuilder.js +1 -1
  130. package/lib/esm/api/SignerEthBuilder.js.map +3 -3
  131. package/lib/esm/api/SignerEthBuilder.test.js +1 -1
  132. package/lib/esm/api/SignerEthBuilder.test.js.map +3 -3
  133. package/lib/esm/api/app-binder/GetConfigCommandTypes.js +1 -0
  134. package/lib/esm/api/app-binder/GetConfigCommandTypes.js.map +7 -0
  135. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -0
  136. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +4 -4
  137. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -0
  138. package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +4 -4
  139. package/lib/esm/api/index.js +1 -1
  140. package/lib/esm/api/index.js.map +3 -3
  141. package/lib/esm/api/model/MessageOptions.js +1 -0
  142. package/lib/esm/api/model/MessageOptions.js.map +7 -0
  143. package/lib/esm/api/model/TypedDataOptions.js +1 -0
  144. package/lib/esm/api/model/TypedDataOptions.js.map +7 -0
  145. package/lib/esm/internal/DefaultSignerEth.js +1 -1
  146. package/lib/esm/internal/DefaultSignerEth.js.map +3 -3
  147. package/lib/esm/internal/address/di/addressModule.js +1 -1
  148. package/lib/esm/internal/address/di/addressModule.js.map +3 -3
  149. package/lib/esm/internal/address/di/addressModule.test.js +1 -1
  150. package/lib/esm/internal/address/di/addressModule.test.js.map +2 -2
  151. package/lib/esm/internal/address/use-case/GetAddressUseCase.js +1 -1
  152. package/lib/esm/internal/address/use-case/GetAddressUseCase.js.map +2 -2
  153. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js +1 -1
  154. package/lib/esm/internal/address/use-case/GetAddressUseCase.test.js.map +2 -2
  155. package/lib/esm/internal/app-binder/EthAppBinder.js +1 -1
  156. package/lib/esm/internal/app-binder/EthAppBinder.js.map +2 -2
  157. package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
  158. package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +2 -2
  159. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
  160. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
  161. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
  162. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
  163. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js +2 -0
  164. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
  165. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
  166. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +7 -0
  167. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
  168. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js.map +2 -2
  169. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
  170. package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
  171. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
  172. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
  173. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
  174. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
  175. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  176. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  177. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  178. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  179. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  180. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  181. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  182. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  183. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  184. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  185. package/lib/esm/internal/app-binder/di/appBinderModule.js +1 -1
  186. package/lib/esm/internal/app-binder/di/appBinderModule.js.map +3 -3
  187. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  188. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  189. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  190. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  191. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  192. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  193. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  194. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  195. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
  196. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
  197. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
  198. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
  199. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  200. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  201. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  202. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  203. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  204. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  205. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  206. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  207. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +1 -1
  208. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +3 -3
  209. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js +1 -1
  210. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +3 -3
  211. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +1 -1
  212. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +2 -2
  213. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js +2 -0
  214. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.js.map +7 -0
  215. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js +2 -0
  216. package/lib/esm/internal/app-binder/task/SignTypedDataLegacyTask.test.js.map +7 -0
  217. package/lib/esm/internal/di.js +1 -1
  218. package/lib/esm/internal/di.js.map +2 -2
  219. package/lib/esm/internal/message/di/messageModule.js +1 -1
  220. package/lib/esm/internal/message/di/messageModule.js.map +3 -3
  221. package/lib/esm/internal/message/di/messageModule.test.js +1 -1
  222. package/lib/esm/internal/message/di/messageModule.test.js.map +2 -2
  223. package/lib/esm/internal/message/use-case/SignMessageUseCase.js +1 -1
  224. package/lib/esm/internal/message/use-case/SignMessageUseCase.js.map +3 -3
  225. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js +1 -1
  226. package/lib/esm/internal/message/use-case/SignMessageUseCase.test.js.map +2 -2
  227. package/lib/esm/internal/shared/utils/ApplicationChecker.js +2 -0
  228. package/lib/esm/internal/shared/utils/ApplicationChecker.js.map +7 -0
  229. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js +2 -0
  230. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js.map +7 -0
  231. package/lib/esm/internal/transaction/di/transactionModule.js +1 -1
  232. package/lib/esm/internal/transaction/di/transactionModule.js.map +3 -3
  233. package/lib/esm/internal/transaction/di/transactionModule.test.js +1 -1
  234. package/lib/esm/internal/transaction/di/transactionModule.test.js.map +2 -2
  235. package/lib/esm/internal/typed-data/di/typedDataModule.js +1 -1
  236. package/lib/esm/internal/typed-data/di/typedDataModule.js.map +3 -3
  237. package/lib/esm/internal/typed-data/di/typedDataModule.test.js +1 -1
  238. package/lib/esm/internal/typed-data/di/typedDataModule.test.js.map +2 -2
  239. package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js +1 -1
  240. package/lib/esm/internal/typed-data/service/DefaultTypedDataParserService.js.map +2 -2
  241. package/lib/esm/internal/typed-data/service/TypedDataParser.js +1 -1
  242. package/lib/esm/internal/typed-data/service/TypedDataParser.js.map +3 -3
  243. package/lib/esm/internal/typed-data/service/TypedDataParser.test.js +1 -1
  244. package/lib/esm/internal/typed-data/service/TypedDataParser.test.js.map +2 -2
  245. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js +1 -1
  246. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.js.map +3 -3
  247. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js +1 -1
  248. package/lib/esm/internal/typed-data/use-case/SignTypedDataUseCase.test.js.map +2 -2
  249. package/lib/esm/package.json +13 -14
  250. package/lib/types/api/SignerEth.d.ts +4 -2
  251. package/lib/types/api/SignerEth.d.ts.map +1 -1
  252. package/lib/types/api/SignerEthBuilder.d.ts +4 -2
  253. package/lib/types/api/SignerEthBuilder.d.ts.map +1 -1
  254. package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts +7 -0
  255. package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts.map +1 -0
  256. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +20 -3
  257. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  258. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +20 -1
  259. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
  260. package/lib/types/api/index.d.ts +2 -2
  261. package/lib/types/api/index.d.ts.map +1 -1
  262. package/lib/types/api/model/AddressOptions.d.ts +1 -0
  263. package/lib/types/api/model/AddressOptions.d.ts.map +1 -1
  264. package/lib/types/api/model/MessageOptions.d.ts +4 -0
  265. package/lib/types/api/model/MessageOptions.d.ts.map +1 -0
  266. package/lib/types/api/model/TransactionOptions.d.ts +1 -0
  267. package/lib/types/api/model/TransactionOptions.d.ts.map +1 -1
  268. package/lib/types/api/model/TypedDataOptions.d.ts +4 -0
  269. package/lib/types/api/model/TypedDataOptions.d.ts.map +1 -0
  270. package/lib/types/internal/DefaultSignerEth.d.ts +5 -3
  271. package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
  272. package/lib/types/internal/address/di/addressModule.d.ts.map +1 -1
  273. package/lib/types/internal/address/use-case/GetAddressUseCase.d.ts.map +1 -1
  274. package/lib/types/internal/app-binder/EthAppBinder.d.ts +5 -2
  275. package/lib/types/internal/app-binder/EthAppBinder.d.ts.map +1 -1
  276. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +10 -0
  277. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -0
  278. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts +2 -0
  279. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts.map +1 -0
  280. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts +17 -0
  281. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts.map +1 -0
  282. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts +2 -0
  283. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts.map +1 -0
  284. package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts +8 -1
  285. package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts.map +1 -1
  286. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts +15 -0
  287. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts.map +1 -0
  288. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.test.d.ts +2 -0
  289. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.test.d.ts.map +1 -0
  290. package/lib/types/internal/app-binder/command/utils/ethAppErrors.d.ts.map +1 -1
  291. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +9 -4
  292. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
  293. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +8 -2
  294. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
  295. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  296. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -1
  297. package/lib/types/internal/app-binder/di/appBinderModule.d.ts.map +1 -1
  298. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +10 -5
  299. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
  300. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +8 -3
  301. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +1 -1
  302. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +30 -0
  303. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +1 -0
  304. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts +2 -0
  305. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts.map +1 -0
  306. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +7 -4
  307. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
  308. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +3 -2
  309. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +1 -1
  310. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts.map +1 -1
  311. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts +1 -0
  312. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts.map +1 -1
  313. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts +12 -0
  314. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.d.ts.map +1 -0
  315. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts +2 -0
  316. package/lib/types/internal/app-binder/task/SignTypedDataLegacyTask.test.d.ts.map +1 -0
  317. package/lib/types/internal/di.d.ts.map +1 -1
  318. package/lib/types/internal/message/di/messageModule.d.ts.map +1 -1
  319. package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts +2 -1
  320. package/lib/types/internal/message/use-case/SignMessageUseCase.d.ts.map +1 -1
  321. package/lib/types/internal/shared/utils/ApplicationChecker.d.ts +13 -0
  322. package/lib/types/internal/shared/utils/ApplicationChecker.d.ts.map +1 -0
  323. package/lib/types/internal/shared/utils/ApplicationChecker.test.d.ts +2 -0
  324. package/lib/types/internal/shared/utils/ApplicationChecker.test.d.ts.map +1 -0
  325. package/lib/types/internal/transaction/di/transactionModule.d.ts.map +1 -1
  326. package/lib/types/internal/typed-data/di/typedDataModule.d.ts.map +1 -1
  327. package/lib/types/internal/typed-data/service/TypedDataParser.d.ts +4 -2
  328. package/lib/types/internal/typed-data/service/TypedDataParser.d.ts.map +1 -1
  329. package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts +2 -1
  330. package/lib/types/internal/typed-data/use-case/SignTypedDataUseCase.d.ts.map +1 -1
  331. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  332. package/package.json +19 -20
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/transaction/di/transactionModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { EthersRawTransactionMapper } from \"@internal/transaction/service/mapper/EthersRawTransactionMapper\";\nimport { TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { SignTransactionUseCase } from \"@internal/transaction/use-case/SignTransactionUseCase\";\n\nexport const transactionModuleFactory = () =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n _rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind(transactionTypes.SignTransactionUseCase).to(SignTransactionUseCase);\n bind(transactionTypes.TransactionMapperService).to(\n TransactionMapperService,\n );\n bind(transactionTypes.TransactionParserService).to(\n TransactionParserService,\n );\n bind(transactionTypes.TransactionMappers).to(EthersRawTransactionMapper);\n },\n );\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,oBAAAC,MAAwB,4CACjC,OAAS,8BAAAC,MAAkC,kEAC3C,OAAS,4BAAAC,MAAgC,gEACzC,OAAS,4BAAAC,MAAgC,gEACzC,OAAS,0BAAAC,MAA8B,wDAEhC,MAAMC,EAA2B,IACtC,IAAIN,EACF,CACEO,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EAAKN,EAAiB,sBAAsB,EAAE,GAAGI,CAAsB,EACvEE,EAAKN,EAAiB,wBAAwB,EAAE,GAC9CE,CACF,EACAI,EAAKN,EAAiB,wBAAwB,EAAE,GAC9CG,CACF,EACAG,EAAKN,EAAiB,kBAAkB,EAAE,GAAGC,CAA0B,CACzE,CACF",
6
- "names": ["ContainerModule", "transactionTypes", "EthersRawTransactionMapper", "TransactionMapperService", "TransactionParserService", "SignTransactionUseCase", "transactionModuleFactory", "bind", "_unbind", "_isBound", "_rebind", "_unbindAsync", "_onActivation", "_onDeactivation"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { EthersRawTransactionMapper } from \"@internal/transaction/service/mapper/EthersRawTransactionMapper\";\nimport { TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { SignTransactionUseCase } from \"@internal/transaction/use-case/SignTransactionUseCase\";\n\nexport const transactionModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(transactionTypes.SignTransactionUseCase).to(SignTransactionUseCase);\n bind(transactionTypes.TransactionMapperService).to(\n TransactionMapperService,\n );\n bind(transactionTypes.TransactionParserService).to(\n TransactionParserService,\n );\n bind(transactionTypes.TransactionMappers).to(EthersRawTransactionMapper);\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,oBAAAC,MAAwB,4CACjC,OAAS,8BAAAC,MAAkC,kEAC3C,OAAS,4BAAAC,MAAgC,gEACzC,OAAS,4BAAAC,MAAgC,gEACzC,OAAS,0BAAAC,MAA8B,wDAEhC,MAAMC,EAA2B,IACtC,IAAIN,EAAgB,CAAC,CAAE,KAAAO,CAAK,IAAM,CAChCA,EAAKN,EAAiB,sBAAsB,EAAE,GAAGI,CAAsB,EACvEE,EAAKN,EAAiB,wBAAwB,EAAE,GAC9CE,CACF,EACAI,EAAKN,EAAiB,wBAAwB,EAAE,GAC9CG,CACF,EACAG,EAAKN,EAAiB,kBAAkB,EAAE,GAAGC,CAA0B,CACzE,CAAC",
6
+ "names": ["ContainerModule", "transactionTypes", "EthersRawTransactionMapper", "TransactionMapperService", "TransactionParserService", "SignTransactionUseCase", "transactionModuleFactory", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Container as o}from"inversify";import{transactionModuleFactory as a}from"./transactionModule";import{transactionTypes as r}from"./transactionTypes";describe("transactionModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=a(),t=new o,t.load(e)}),it("should return the transaction module",()=>{expect(e).toBeDefined()}),it("should bind a transaction mapper",()=>{expect(t.getAll(r.TransactionMappers)).toHaveLength(1)})})});
1
+ import{Container as o}from"inversify";import{transactionModuleFactory as a}from"./transactionModule";import{transactionTypes as n}from"./transactionTypes";describe("transactionModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=a(),t=new o,t.loadSync(e)}),it("should return the transaction module",()=>{expect(e).toBeDefined()}),it("should bind a transaction mapper",()=>{expect(t.getAll(n.TransactionMappers)).toHaveLength(1)})})});
2
2
  //# sourceMappingURL=transactionModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/transaction/di/transactionModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { transactionModuleFactory } from \"./transactionModule\";\nimport { transactionTypes } from \"./transactionTypes\";\n\ndescribe(\"transactionModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof transactionModuleFactory>;\n beforeEach(() => {\n mod = transactionModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the transaction module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should bind a transaction mapper\", () => {\n expect(\n container.getAll(transactionTypes.TransactionMappers),\n ).toHaveLength(1);\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,4BAAAC,MAAgC,sBACzC,OAAS,oBAAAC,MAAwB,qBAEjC,SAAS,2BAA4B,IAAM,CACzC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAyB,EAC/BE,EAAY,IAAIH,EAChBG,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,uCAAwC,IAAM,CAC/C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,OACED,EAAU,OAAOD,EAAiB,kBAAkB,CACtD,EAAE,aAAa,CAAC,CAClB,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { transactionModuleFactory } from \"./transactionModule\";\nimport { transactionTypes } from \"./transactionTypes\";\n\ndescribe(\"transactionModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof transactionModuleFactory>;\n beforeEach(() => {\n mod = transactionModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the transaction module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should bind a transaction mapper\", () => {\n expect(\n container.getAll(transactionTypes.TransactionMappers),\n ).toHaveLength(1);\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,4BAAAC,MAAgC,sBACzC,OAAS,oBAAAC,MAAwB,qBAEjC,SAAS,2BAA4B,IAAM,CACzC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAyB,EAC/BE,EAAY,IAAIH,EAChBG,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,uCAAwC,IAAM,CAC/C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,OACED,EAAU,OAAOD,EAAiB,kBAAkB,CACtD,EAAE,aAAa,CAAC,CAClB,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["Container", "transactionModuleFactory", "transactionTypes", "container", "mod"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ContainerModule as a}from"inversify";import{typedDataTypes as t}from"../../typed-data/di/typedDataTypes";import{DefaultTypedDataParserService as o}from"../../typed-data/service/DefaultTypedDataParserService";import{SignTypedDataUseCase as r}from"../../typed-data/use-case/SignTypedDataUseCase";const _=()=>new a((e,i,n,p,d,s,y)=>{e(t.SignTypedDataUseCase).to(r),e(t.TypedDataParserService).to(o)});export{_ as typedDataModuleFactory};
1
+ import{ContainerModule as t}from"inversify";import{typedDataTypes as a}from"../../typed-data/di/typedDataTypes";import{DefaultTypedDataParserService as r}from"../../typed-data/service/DefaultTypedDataParserService";import{SignTypedDataUseCase as o}from"../../typed-data/use-case/SignTypedDataUseCase";const y=()=>new t(({bind:e})=>{e(a.SignTypedDataUseCase).to(o),e(a.TypedDataParserService).to(r)});export{y as typedDataModuleFactory};
2
2
  //# sourceMappingURL=typedDataModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/typed-data/di/typedDataModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { typedDataTypes } from \"@internal/typed-data/di/typedDataTypes\";\nimport { DefaultTypedDataParserService } from \"@internal/typed-data/service/DefaultTypedDataParserService\";\nimport { SignTypedDataUseCase } from \"@internal/typed-data/use-case/SignTypedDataUseCase\";\n\nexport const typedDataModuleFactory = () =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n _rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind(typedDataTypes.SignTypedDataUseCase).to(SignTypedDataUseCase);\n bind(typedDataTypes.TypedDataParserService).to(\n DefaultTypedDataParserService,\n );\n },\n );\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,kBAAAC,MAAsB,yCAC/B,OAAS,iCAAAC,MAAqC,6DAC9C,OAAS,wBAAAC,MAA4B,qDAE9B,MAAMC,EAAyB,IACpC,IAAIJ,EACF,CACEK,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EAAKJ,EAAe,oBAAoB,EAAE,GAAGE,CAAoB,EACjEE,EAAKJ,EAAe,sBAAsB,EAAE,GAC1CC,CACF,CACF,CACF",
6
- "names": ["ContainerModule", "typedDataTypes", "DefaultTypedDataParserService", "SignTypedDataUseCase", "typedDataModuleFactory", "bind", "_unbind", "_isBound", "_rebind", "_unbindAsync", "_onActivation", "_onDeactivation"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { typedDataTypes } from \"@internal/typed-data/di/typedDataTypes\";\nimport { DefaultTypedDataParserService } from \"@internal/typed-data/service/DefaultTypedDataParserService\";\nimport { SignTypedDataUseCase } from \"@internal/typed-data/use-case/SignTypedDataUseCase\";\n\nexport const typedDataModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(typedDataTypes.SignTypedDataUseCase).to(SignTypedDataUseCase);\n bind(typedDataTypes.TypedDataParserService).to(\n DefaultTypedDataParserService,\n );\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,kBAAAC,MAAsB,yCAC/B,OAAS,iCAAAC,MAAqC,6DAC9C,OAAS,wBAAAC,MAA4B,qDAE9B,MAAMC,EAAyB,IACpC,IAAIJ,EAAgB,CAAC,CAAE,KAAAK,CAAK,IAAM,CAChCA,EAAKJ,EAAe,oBAAoB,EAAE,GAAGE,CAAoB,EACjEE,EAAKJ,EAAe,sBAAsB,EAAE,GAC1CC,CACF,CACF,CAAC",
6
+ "names": ["ContainerModule", "typedDataTypes", "DefaultTypedDataParserService", "SignTypedDataUseCase", "typedDataModuleFactory", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Container as o}from"inversify";import{typedDataModuleFactory as a}from"./typedDataModule";describe("TypedDataModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=a(),t=new o,t.load(e)}),it("should return the typed data module",()=>{expect(e).toBeDefined()})})});
1
+ import{Container as o}from"inversify";import{typedDataModuleFactory as a}from"./typedDataModule";describe("TypedDataModuleFactory",()=>{describe("Default",()=>{let t,e;beforeEach(()=>{e=a(),t=new o,t.loadSync(e)}),it("should return the typed data module",()=>{expect(e).toBeDefined()})})});
2
2
  //# sourceMappingURL=typedDataModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/typed-data/di/typedDataModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { typedDataModuleFactory } from \"./typedDataModule\";\n\ndescribe(\"TypedDataModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof typedDataModuleFactory>;\n beforeEach(() => {\n mod = typedDataModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the typed data module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,oBAEvC,SAAS,yBAA0B,IAAM,CACvC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAuB,EAC7BC,EAAY,IAAIF,EAChBE,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { typedDataModuleFactory } from \"./typedDataModule\";\n\ndescribe(\"TypedDataModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof typedDataModuleFactory>;\n beforeEach(() => {\n mod = typedDataModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the typed data module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,0BAAAC,MAA8B,oBAEvC,SAAS,yBAA0B,IAAM,CACvC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAAuB,EAC7BC,EAAY,IAAIF,EAChBE,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["Container", "typedDataModuleFactory", "container", "mod"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var c=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var i=(n,r,s,o)=>{for(var e=o>1?void 0:o?y(r,s):r,t=n.length-1,p;t>=0;t--)(p=n[t])&&(e=(o?p(r,s,e):p(e))||e);return o&&e&&c(r,s,e),e};import{injectable as d}from"inversify";import{TypedDataParser as T}from"./TypedDataParser";let m=class{parse(r){const s=new T(r.types),o=s.getStructDefinitions(),e=s.parse("EIP712Domain",r.domain),t=s.parse(r.primaryType,r.message);return e.chain(p=>t.map(a=>({types:o,domain:p,message:a})))}};m=i([d()],m);export{m as DefaultTypedDataParserService};
1
+ var c=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var i=(n,r,s,o)=>{for(var e=o>1?void 0:o?y(r,s):r,t=n.length-1,m;t>=0;t--)(m=n[t])&&(e=(o?m(r,s,e):m(e))||e);return o&&e&&c(r,s,e),e};import{injectable as d}from"inversify";import{TypedDataParser as T}from"./TypedDataParser";let p=class{parse(r){const s=new T(r.types,r.domain),o=s.getStructDefinitions(),e=s.parse("EIP712Domain",r.domain),t=s.parse(r.primaryType,r.message);return e.chain(m=>t.map(a=>({types:o,domain:m,message:a})))}};p=i([d()],p);export{p as DefaultTypedDataParserService};
2
2
  //# sourceMappingURL=DefaultTypedDataParserService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/typed-data/service/DefaultTypedDataParserService.ts"],
4
- "sourcesContent": ["import { injectable } from \"inversify\";\nimport { Either } from \"purify-ts\";\n\nimport { TypedData } from \"@api/model/TypedData\";\n\nimport { TypedDataParser } from \"./TypedDataParser\";\nimport {\n ParsedTypedData,\n TypedDataParserService,\n} from \"./TypedDataParserService\";\n\n@injectable()\nexport class DefaultTypedDataParserService implements TypedDataParserService {\n parse(data: TypedData): Either<Error, ParsedTypedData> {\n const parser = new TypedDataParser(data.types);\n const types = parser.getStructDefinitions();\n const domainResult = parser.parse(\n \"EIP712Domain\",\n data.domain as Record<string, unknown>,\n );\n const messageResult = parser.parse(data.primaryType, data.message);\n return domainResult.chain((domain) =>\n messageResult.map((message) => ({\n types,\n domain,\n message,\n })),\n );\n }\n}\n"],
5
- "mappings": "wMAAA,OAAS,cAAAA,MAAkB,YAK3B,OAAS,mBAAAC,MAAuB,oBAOzB,IAAMC,EAAN,KAAsE,CAC3E,MAAMC,EAAiD,CACrD,MAAMC,EAAS,IAAIC,EAAgBF,EAAK,KAAK,EACvCG,EAAQF,EAAO,qBAAqB,EACpCG,EAAeH,EAAO,MAC1B,eACAD,EAAK,MACP,EACMK,EAAgBJ,EAAO,MAAMD,EAAK,YAAaA,EAAK,OAAO,EACjE,OAAOI,EAAa,MAAOE,GACzBD,EAAc,IAAKE,IAAa,CAC9B,MAAAJ,EACA,OAAAG,EACA,QAAAC,CACF,EAAE,CACJ,CACF,CACF,EAjBaR,EAANS,EAAA,CADNC,EAAW,GACCV",
4
+ "sourcesContent": ["import { injectable } from \"inversify\";\nimport { Either } from \"purify-ts\";\n\nimport { TypedData } from \"@api/model/TypedData\";\n\nimport { TypedDataParser } from \"./TypedDataParser\";\nimport {\n ParsedTypedData,\n TypedDataParserService,\n} from \"./TypedDataParserService\";\n\n@injectable()\nexport class DefaultTypedDataParserService implements TypedDataParserService {\n parse(data: TypedData): Either<Error, ParsedTypedData> {\n const parser = new TypedDataParser(data.types, data.domain);\n const types = parser.getStructDefinitions();\n const domainResult = parser.parse(\n \"EIP712Domain\",\n data.domain as Record<string, unknown>,\n );\n const messageResult = parser.parse(data.primaryType, data.message);\n return domainResult.chain((domain) =>\n messageResult.map((message) => ({\n types,\n domain,\n message,\n })),\n );\n }\n}\n"],
5
+ "mappings": "wMAAA,OAAS,cAAAA,MAAkB,YAK3B,OAAS,mBAAAC,MAAuB,oBAOzB,IAAMC,EAAN,KAAsE,CAC3E,MAAMC,EAAiD,CACrD,MAAMC,EAAS,IAAIC,EAAgBF,EAAK,MAAOA,EAAK,MAAM,EACpDG,EAAQF,EAAO,qBAAqB,EACpCG,EAAeH,EAAO,MAC1B,eACAD,EAAK,MACP,EACMK,EAAgBJ,EAAO,MAAMD,EAAK,YAAaA,EAAK,OAAO,EACjE,OAAOI,EAAa,MAAOE,GACzBD,EAAc,IAAKE,IAAa,CAC9B,MAAAJ,EACA,OAAAG,EACA,QAAAC,CACF,EAAE,CACJ,CACF,CACF,EAjBaR,EAANS,EAAA,CADNC,EAAW,GACCV",
6
6
  "names": ["injectable", "TypedDataParser", "DefaultTypedDataParserService", "data", "parser", "TypedDataParser", "types", "domainResult", "messageResult", "domain", "message", "__decorateClass", "injectable"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Just as s,Left as d,Maybe as f,Nothing as o,Right as m}from"purify-ts";import{ArrayType as T,PrimitiveType as y,StructType as p,TypedDataValueArray as h,TypedDataValueField as V,TypedDataValueRoot as g}from"../../typed-data/model/Types";import{encodeTypedDataValue as v}from"./TypedDataEncoder";class R{structs;constructor(t){const e={};for(const[r,i]of Object.entries(t)){const n={};for(const a of i)n[a.name]=this.parseType(a.type);e[r]=n}this.structs=e}getStructDefinitions(){return this.structs}parse(t,e){if(!this.isRecord(e))return d(new Error("Message is not a record"));const r=[{path:"",type:"",value:new g(t)}];return this.visitValue(t,e,"",i=>r.push(i))?m(r):d(new Error("Failed to parse"))}isRecord(t){return typeof t=="object"&&t!==null}parseType(t){return this.tryParsePrimitiveType(t).mapOrDefault(e=>e,this.tryParseArrayType(t).mapOrDefault(e=>e,new p(t)))}tryParsePrimitiveType(t){{const e=t.match(/^(((u?)int)(\d+))$/);if(e){const r=parseInt(e[4]);return r%8!==0||r===0||r>256?o:s(new y(e[1],e[3]?"uint":"int",s(r/8)))}}{const e=t.match(/^((bytes)(\d*))$/);if(e){const r=e[3]?parseInt(e[3]):null;return r!==null&&(r===0||r>32)?o:s(new y(e[1],"bytes",f.fromNullable(r)))}}return t==="address"||t==="bool"||t==="string"?s(new y(t,t,o)):o}tryParseArrayType(t){const e=t.match(/^([^[[]*)(((\[\d*\])*)\[\d*\])$/);if(e){const r=[...e[2].matchAll(/\[(\d*)\]/g)];if(r&&r.length>0){const i=r.map(([,a])=>a?s(parseInt(a)):o),n=this.tryParsePrimitiveType(e[1]).mapOrDefault(a=>a,new p(e[1]));return s(new T(t,n,e[1]+e[3],i[i.length-1],i))}}return o}visitValue(t,e,r,i){return this.tryVisitStructValue(t,e,r,i)||this.tryVisitPrimitiveValue(t,e,r,i)||this.tryVisitArrayValue(t,e,r,i)}tryVisitPrimitiveValue(t,e,r,i){return!this.isRecord(e)&&!Array.isArray(e)&&this.tryParsePrimitiveType(t).chain(n=>v(n,e).ifJust(a=>{i({path:r,type:t,value:new V(a)})})).isJust()}tryVisitStructValue(t,e,r,i){const n=this.structs[t];if(n===void 0||!this.isRecord(e))return!1;for(const[a,u]of Object.entries(n)){const l=e[a];if(l===void 0)return!1;const c=r.length?`${r}.${a}`:a;if(!this.visitValue(u.typeName,l,`${c}`,i))return!1}return!0}tryVisitArrayValue(t,e,r,i){return Array.isArray(e)&&this.tryParseArrayType(t).filter(n=>n.count.mapOrDefault(a=>e.length==a,!0)).mapOrDefault(n=>{i({path:r,type:t,value:new h(e.length)});for(const a of e){const u=r.length?`${r}.[]`:"[]";if(!this.visitValue(n.rowType,a,`${u}`,i))return!1}return!0},!1)}}export{R as TypedDataParser};
1
+ import{Just as o,Left as p,Maybe as m,Nothing as u,Right as f}from"purify-ts";import{ArrayType as T,PrimitiveType as d,StructType as l,TypedDataValueArray as h,TypedDataValueField as g,TypedDataValueRoot as V}from"../../typed-data/model/Types";import{encodeTypedDataValue as D}from"./TypedDataEncoder";class N{domainTypeName="EIP712Domain";domainDefaultTypes={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"};structs;constructor(t,e){if(!(this.domainTypeName in t)){const i=[];Object.entries(this.domainDefaultTypes).forEach(([n,a])=>{n in e&&i.push({name:n,type:a})}),i.length>0&&(t[this.domainTypeName]=i)}const r={};for(const[i,n]of Object.entries(t)){const a={};for(const s of n)a[s.name]=this.parseType(s.type);r[i]=a}this.structs=r}getStructDefinitions(){return this.structs}parse(t,e){if(!this.isRecord(e))return p(new Error("Message is not a record"));const r=[{path:"",type:"",value:new V(t)}];return this.visitValue(t,e,"",i=>r.push(i))?f(r):p(new Error("Failed to parse"))}isRecord(t){return typeof t=="object"&&t!==null}parseType(t){return this.tryParsePrimitiveType(t).mapOrDefault(e=>e,this.tryParseArrayType(t).mapOrDefault(e=>e,new l(t)))}tryParsePrimitiveType(t){{const e=t.match(/^(((u?)int)(\d+))$/);if(e){const r=parseInt(e[4]);return r%8!==0||r===0||r>256?u:o(new d(e[1],e[3]?"uint":"int",o(r/8)))}}{const e=t.match(/^((bytes)(\d*))$/);if(e){const r=e[3]?parseInt(e[3]):null;return r!==null&&(r===0||r>32)?u:o(new d(e[1],"bytes",m.fromNullable(r)))}}return t==="address"||t==="bool"||t==="string"?o(new d(t,t,u)):u}tryParseArrayType(t){const e=t.match(/^([^[[]*)(((\[\d*\])*)\[\d*\])$/);if(e){const r=[...e[2].matchAll(/\[(\d*)\]/g)];if(r&&r.length>0){const i=r.map(([,a])=>a?o(parseInt(a)):u),n=this.tryParsePrimitiveType(e[1]).mapOrDefault(a=>a,new l(e[1]));return o(new T(t,n,e[1]+e[3],i[i.length-1],i))}}return u}visitValue(t,e,r,i){return this.tryVisitStructValue(t,e,r,i)||this.tryVisitPrimitiveValue(t,e,r,i)||this.tryVisitArrayValue(t,e,r,i)}tryVisitPrimitiveValue(t,e,r,i){return!this.isRecord(e)&&!Array.isArray(e)&&this.tryParsePrimitiveType(t).chain(n=>D(n,e).ifJust(a=>{i({path:r,type:t,value:new g(a)})})).isJust()}tryVisitStructValue(t,e,r,i){const n=this.structs[t];if(n===void 0||!this.isRecord(e))return!1;for(const[a,s]of Object.entries(n)){const y=e[a];if(y===void 0)return!1;const c=r.length?`${r}.${a}`:a;if(!this.visitValue(s.typeName,y,`${c}`,i))return!1}return!0}tryVisitArrayValue(t,e,r,i){return Array.isArray(e)&&this.tryParseArrayType(t).filter(n=>n.count.mapOrDefault(a=>e.length==a,!0)).mapOrDefault(n=>{i({path:r,type:t,value:new h(e.length)});for(const a of e){const s=r.length?`${r}.[]`:"[]";if(!this.visitValue(n.rowType,a,`${s}`,i))return!1}return!0},!1)}}export{N as TypedDataParser};
2
2
  //# sourceMappingURL=TypedDataParser.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/typed-data/service/TypedDataParser.ts"],
4
- "sourcesContent": ["import { type Either, Just, Left, Maybe, Nothing, Right } from \"purify-ts\";\n\nimport { type TypedDataField } from \"@api/model/TypedData\";\nimport {\n ArrayType,\n type FieldName,\n type FieldType,\n PrimitiveType,\n type StructName,\n StructType,\n type TypedDataValue,\n TypedDataValueArray,\n TypedDataValueField,\n TypedDataValueRoot,\n} from \"@internal/typed-data/model/Types\";\n\nimport { encodeTypedDataValue } from \"./TypedDataEncoder\";\n\n/**\n * A parser for EIP-712 typed data messages.\n *\n * ```typescript\n * const types = {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'age', type: 'uint256' },\n * { name: \"wallets\", type: \"address[]\" },\n * ],\n * };\n * const parser = new TypedDataParser(types);\n *\n * const message = {\n * name: 'Alice',\n * age: 30,\n * wallets: [\n * \"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\",\n * \"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\",\n * ],\n * };\n * const rootType = 'Person';\n *\n * const result = parser.parse(rootType, message);\n * ```\n */\nexport class TypedDataParser {\n private readonly structs: Record<StructName, Record<FieldName, FieldType>>;\n\n /**\n * Creates a new instance of the TypedDataParser class.\n * @param types The types to be used for parsing the message.\n */\n constructor(types: Record<string, Array<TypedDataField>>) {\n // Parse the types to be used later for parsing a message.\n const structs: Record<StructName, Record<FieldName, FieldType>> = {};\n for (const [typedName, typedData] of Object.entries(types)) {\n const parsedTypedData: Record<FieldName, FieldType> = {};\n for (const data of typedData) {\n parsedTypedData[data.name] = this.parseType(data.type);\n }\n structs[typedName] = parsedTypedData;\n }\n this.structs = structs;\n }\n\n /**\n * Returns the parsed definitions of custom structs as defined in the types passed to the constructor.\n * @returns The struct definitions.\n */\n public getStructDefinitions(): Record<\n StructName,\n Record<FieldName, FieldType>\n > {\n return this.structs;\n }\n\n /**\n * Parses a message according to the primary type and the types passed to the constructor.\n * @param primaryType The root type of the message.\n * @param message The message to parse.\n * @returns An Either containing the parsed values or an error.\n */\n public parse(\n primaryType: string,\n message: unknown,\n ): Either<Error, Array<TypedDataValue>> {\n if (!this.isRecord(message)) {\n return Left(new Error(\"Message is not a record\"));\n }\n const values: Array<TypedDataValue> = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(primaryType),\n },\n ];\n return this.visitValue(primaryType, message, \"\", (val) => values.push(val))\n ? Right(values)\n : Left(new Error(\"Failed to parse\"));\n }\n\n private isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n }\n\n /**\n * Parses a type string description into a PrimitiveType, ArrayType, or StructType object.\n * The description string should match https://eips.ethereum.org/EIPS/eip-712#definition-of-typed-structured-data-%F0%9D%95%8A\n * Any string which doesn't match those patterns is considered a custom struct.\n * @param type The type string to parse.\n * @returns The parsed type object.\n */\n private parseType(type: string): PrimitiveType | ArrayType | StructType {\n return this.tryParsePrimitiveType(type).mapOrDefault(\n (just) => just,\n this.tryParseArrayType(type).mapOrDefault(\n (just) => just,\n new StructType(type),\n ),\n );\n }\n\n private tryParsePrimitiveType(type: string): Maybe<PrimitiveType> {\n // int8 to int256 and uint8 to uint256\n {\n const match = type.match(/^(((u?)int)(\\d+))$/);\n if (match) {\n const size = parseInt(match[4]!);\n if (size % 8 !== 0 || size === 0 || size > 256) {\n return Nothing; // Unsupported number\n }\n return Just(\n new PrimitiveType(\n match[1]!, // typeName such as uint64\n match[3] ? \"uint\" : \"int\", // name such as uint\n Just(size / 8), // size in bytes such as 8 for an uint64\n ),\n );\n }\n }\n\n // bytes1 to bytes32, or bytes (dynamic size)\n {\n const match = type.match(/^((bytes)(\\d*))$/);\n if (match) {\n const size = match[3] ? parseInt(match[3]) : null;\n if (size !== null && (size === 0 || size > 32)) {\n return Nothing; // Unsupported byte array\n }\n return Just(\n new PrimitiveType(\n match[1]!, // typename such as bytes32\n \"bytes\", // name\n Maybe.fromNullable(size), // size in bytes, or null for a dynamic size\n ),\n );\n }\n }\n\n // Other primitive types\n if (type === \"address\" || type === \"bool\" || type === \"string\") {\n return Just(\n new PrimitiveType(\n type, // typeName\n type, // name\n Nothing, // size not applicable for those types\n ),\n );\n }\n\n // Not a primitive type\n return Nothing;\n }\n\n private tryParseArrayType(type: string): Maybe<ArrayType> {\n // Try to match an array such as: foo[2][][3]\n const match = type.match(/^([^[[]*)(((\\[\\d*\\])*)\\[\\d*\\])$/);\n if (match) {\n const matchLevels = [...match[2]!.matchAll(/\\[(\\d*)\\]/g)];\n if (matchLevels && matchLevels.length > 0) {\n const levels = matchLevels.map(([, size]) =>\n size ? Just(parseInt(size)) : Nothing,\n );\n const rootType = this.tryParsePrimitiveType(match[1]!).mapOrDefault(\n (just) => just,\n new StructType(match[1]!),\n );\n return Just(\n new ArrayType(\n type, // typeName such as: foo[2][][3]\n rootType, // rootType such as: foo\n match[1]! + match[3], // rowType such as: foo[2][]\n levels[levels.length - 1]!, // rows count such as: 3\n levels, // All levels for that array (null for dynamic size), such as: [2, null, 3]\n ),\n );\n }\n }\n\n // Not an array\n return Nothing;\n }\n\n /**\n * Visits a value and its children recursively, parsing them into TypedDataValue objects.\n * @param type The type of the value.\n * @param value The value to visit.\n * @param path The path of the value.\n * @param callback The callback to call for each parsed value.\n * @returns True if the value and its children were successfully parsed, false otherwise.\n */\n private visitValue(\n type: string,\n value: unknown,\n path: string,\n callback: (parsedValue: TypedDataValue) => void,\n ): boolean {\n return (\n this.tryVisitStructValue(type, value, path, callback) ||\n this.tryVisitPrimitiveValue(type, value, path, callback) ||\n this.tryVisitArrayValue(type, value, path, callback)\n );\n }\n\n private tryVisitPrimitiveValue(\n type: string,\n value: unknown,\n path: string,\n callback: (parsedValue: TypedDataValue) => void,\n ): boolean {\n // Basic type (address, bool, uint256, etc)\n return (\n !this.isRecord(value) &&\n !Array.isArray(value) &&\n this.tryParsePrimitiveType(type)\n .chain((primitiveType) =>\n encodeTypedDataValue(primitiveType, value).ifJust((encoded) => {\n callback({\n path,\n type,\n value: new TypedDataValueField(encoded),\n });\n }),\n )\n .isJust()\n );\n }\n\n private tryVisitStructValue(\n type: string,\n value: unknown,\n path: string,\n callback: (parsedValue: TypedDataValue) => void,\n ): boolean {\n const structType = this.structs[type];\n if (structType === undefined || !this.isRecord(value)) {\n return false;\n }\n for (const [fieldName, fieldType] of Object.entries(structType)) {\n const fieldValue = value[fieldName];\n if (fieldValue === undefined) {\n return false;\n }\n const nextPath = path.length ? `${path}.${fieldName}` : fieldName;\n if (\n !this.visitValue(\n fieldType.typeName,\n fieldValue,\n `${nextPath}`,\n callback,\n )\n ) {\n return false;\n }\n }\n return true;\n }\n\n private tryVisitArrayValue(\n type: string,\n value: unknown,\n path: string,\n callback: (parsedValue: TypedDataValue) => void,\n ): boolean {\n return (\n Array.isArray(value) &&\n this.tryParseArrayType(type)\n .filter((t) => t.count.mapOrDefault((c) => value.length == c, true))\n .mapOrDefault((t) => {\n callback({\n path: path,\n type,\n value: new TypedDataValueArray(value.length),\n });\n for (const entry of value) {\n const nextPath = path.length ? `${path}.[]` : \"[]\";\n if (!this.visitValue(t.rowType, entry, `${nextPath}`, callback)) {\n return false;\n }\n }\n return true;\n }, false)\n );\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["Just", "Left", "Maybe", "Nothing", "Right", "ArrayType", "PrimitiveType", "StructType", "TypedDataValueArray", "TypedDataValueField", "TypedDataValueRoot", "encodeTypedDataValue", "TypedDataParser", "types", "structs", "typedName", "typedData", "parsedTypedData", "data", "primaryType", "message", "values", "val", "value", "type", "just", "match", "size", "matchLevels", "levels", "rootType", "path", "callback", "primitiveType", "encoded", "structType", "fieldName", "fieldType", "fieldValue", "nextPath", "t", "c", "entry"]
4
+ "sourcesContent": ["import { type Either, Just, Left, Maybe, Nothing, Right } from \"purify-ts\";\n\nimport type { TypedDataDomain, TypedDataField } from \"@api/model/TypedData\";\nimport {\n ArrayType,\n type FieldName,\n type FieldType,\n PrimitiveType,\n type StructName,\n StructType,\n type TypedDataValue,\n TypedDataValueArray,\n TypedDataValueField,\n TypedDataValueRoot,\n} from \"@internal/typed-data/model/Types\";\n\nimport { encodeTypedDataValue } from \"./TypedDataEncoder\";\n\n/**\n * A parser for EIP-712 typed data messages.\n *\n * ```typescript\n * const types = {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'age', type: 'uint256' },\n * { name: \"wallets\", type: \"address[]\" },\n * ],\n * };\n * const parser = new TypedDataParser(types);\n *\n * const message = {\n * name: 'Alice',\n * age: 30,\n * wallets: [\n * \"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\",\n * \"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\",\n * ],\n * };\n * const rootType = 'Person';\n *\n * const result = parser.parse(rootType, message);\n * ```\n */\nexport class TypedDataParser {\n // Domain types from EIP712 specification:\n // https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator\n private readonly domainTypeName: string = \"EIP712Domain\";\n private readonly domainDefaultTypes: Record<string, string> = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\",\n };\n\n private readonly structs: Record<StructName, Record<FieldName, FieldType>>;\n\n /**\n * Creates a new instance of the TypedDataParser class.\n * @param types The types to be used for parsing the message.\n */\n constructor(\n types: Record<string, Array<TypedDataField>>,\n domain: TypedDataDomain,\n ) {\n // Append EIP712Domain to types if missing\n if (!(this.domainTypeName in types)) {\n const domainTypes: Array<TypedDataField> = [];\n Object.entries(this.domainDefaultTypes).forEach(([name, type]) => {\n if (name in domain) {\n domainTypes.push({ name, type });\n }\n });\n if (domainTypes.length > 0) {\n types[this.domainTypeName] = domainTypes;\n }\n }\n\n // Parse the types to be used later for parsing a message.\n const structs: Record<StructName, Record<FieldName, FieldType>> = {};\n for (const [typedName, typedData] of Object.entries(types)) {\n const parsedTypedData: Record<FieldName, FieldType> = {};\n for (const data of typedData) {\n parsedTypedData[data.name] = this.parseType(data.type);\n }\n structs[typedName] = parsedTypedData;\n }\n this.structs = structs;\n }\n\n /**\n * Returns the parsed definitions of custom structs as defined in the types passed to the constructor.\n * @returns The struct definitions.\n */\n public getStructDefinitions(): Record<\n StructName,\n Record<FieldName, FieldType>\n > {\n return this.structs;\n }\n\n /**\n * Parses a message according to the primary type and the types passed to the constructor.\n * @param primaryType The root type of the message.\n * @param message The message to parse.\n * @returns An Either containing the parsed values or an error.\n */\n public parse(\n primaryType: string,\n message: unknown,\n ): Either<Error, Array<TypedDataValue>> {\n if (!this.isRecord(message)) {\n return Left(new Error(\"Message is not a record\"));\n }\n const values: Array<TypedDataValue> = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(primaryType),\n },\n ];\n return this.visitValue(primaryType, message, \"\", (val) => values.push(val))\n ? Right(values)\n : Left(new Error(\"Failed to parse\"));\n }\n\n private isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n }\n\n /**\n * Parses a type string description into a PrimitiveType, ArrayType, or StructType object.\n * The description string should match https://eips.ethereum.org/EIPS/eip-712#definition-of-typed-structured-data-%F0%9D%95%8A\n * Any string which doesn't match those patterns is considered a custom struct.\n * @param type The type string to parse.\n * @returns The parsed type object.\n */\n private parseType(type: string): PrimitiveType | ArrayType | StructType {\n return this.tryParsePrimitiveType(type).mapOrDefault(\n (just) => just,\n this.tryParseArrayType(type).mapOrDefault(\n (just) => just,\n new StructType(type),\n ),\n );\n }\n\n private tryParsePrimitiveType(type: string): Maybe<PrimitiveType> {\n // int8 to int256 and uint8 to uint256\n {\n const match = type.match(/^(((u?)int)(\\d+))$/);\n if (match) {\n const size = parseInt(match[4]!);\n if (size % 8 !== 0 || size === 0 || size > 256) {\n return Nothing; // Unsupported number\n }\n return Just(\n new PrimitiveType(\n match[1]!, // typeName such as uint64\n match[3] ? \"uint\" : \"int\", // name such as uint\n Just(size / 8), // size in bytes such as 8 for an uint64\n ),\n );\n }\n }\n\n // bytes1 to bytes32, or bytes (dynamic size)\n {\n const match = type.match(/^((bytes)(\\d*))$/);\n if (match) {\n const size = match[3] ? parseInt(match[3]) : null;\n if (size !== null && (size === 0 || size > 32)) {\n return Nothing; // Unsupported byte array\n }\n return Just(\n new PrimitiveType(\n match[1]!, // typename such as bytes32\n \"bytes\", // name\n Maybe.fromNullable(size), // size in bytes, or null for a dynamic size\n ),\n );\n }\n }\n\n // Other primitive types\n if (type === \"address\" || type === \"bool\" || type === \"string\") {\n return Just(\n new PrimitiveType(\n type, // typeName\n type, // name\n Nothing, // size not applicable for those types\n ),\n );\n }\n\n // Not a primitive type\n return Nothing;\n }\n\n private tryParseArrayType(type: string): Maybe<ArrayType> {\n // Try to match an array such as: foo[2][][3]\n const match = type.match(/^([^[[]*)(((\\[\\d*\\])*)\\[\\d*\\])$/);\n if (match) {\n const matchLevels = [...match[2]!.matchAll(/\\[(\\d*)\\]/g)];\n if (matchLevels && matchLevels.length > 0) {\n const levels = matchLevels.map(([, size]) =>\n size ? Just(parseInt(size)) : Nothing,\n );\n const rootType = this.tryParsePrimitiveType(match[1]!).mapOrDefault(\n (just) => just,\n new StructType(match[1]!),\n );\n return Just(\n new ArrayType(\n type, // typeName such as: foo[2][][3]\n rootType, // rootType such as: foo\n match[1]! + match[3], // rowType such as: foo[2][]\n levels[levels.length - 1]!, // rows count such as: 3\n levels, // All levels for that array (null for dynamic size), such as: [2, null, 3]\n ),\n );\n }\n }\n\n // Not an array\n return Nothing;\n }\n\n /**\n * Visits a value and its children recursively, parsing them into TypedDataValue objects.\n * @param type The type of the value.\n * @param value The value to visit.\n * @param path The path of the value.\n * @param callback The callback to call for each parsed value.\n * @returns True if the value and its children were successfully parsed, false otherwise.\n */\n private visitValue(\n type: string,\n value: unknown,\n path: string,\n callback: (parsedValue: TypedDataValue) => void,\n ): boolean {\n return (\n this.tryVisitStructValue(type, value, path, callback) ||\n this.tryVisitPrimitiveValue(type, value, path, callback) ||\n this.tryVisitArrayValue(type, value, path, callback)\n );\n }\n\n private tryVisitPrimitiveValue(\n type: string,\n value: unknown,\n path: string,\n callback: (parsedValue: TypedDataValue) => void,\n ): boolean {\n // Basic type (address, bool, uint256, etc)\n return (\n !this.isRecord(value) &&\n !Array.isArray(value) &&\n this.tryParsePrimitiveType(type)\n .chain((primitiveType) =>\n encodeTypedDataValue(primitiveType, value).ifJust((encoded) => {\n callback({\n path,\n type,\n value: new TypedDataValueField(encoded),\n });\n }),\n )\n .isJust()\n );\n }\n\n private tryVisitStructValue(\n type: string,\n value: unknown,\n path: string,\n callback: (parsedValue: TypedDataValue) => void,\n ): boolean {\n const structType = this.structs[type];\n if (structType === undefined || !this.isRecord(value)) {\n return false;\n }\n for (const [fieldName, fieldType] of Object.entries(structType)) {\n const fieldValue = value[fieldName];\n if (fieldValue === undefined) {\n return false;\n }\n const nextPath = path.length ? `${path}.${fieldName}` : fieldName;\n if (\n !this.visitValue(\n fieldType.typeName,\n fieldValue,\n `${nextPath}`,\n callback,\n )\n ) {\n return false;\n }\n }\n return true;\n }\n\n private tryVisitArrayValue(\n type: string,\n value: unknown,\n path: string,\n callback: (parsedValue: TypedDataValue) => void,\n ): boolean {\n return (\n Array.isArray(value) &&\n this.tryParseArrayType(type)\n .filter((t) => t.count.mapOrDefault((c) => value.length == c, true))\n .mapOrDefault((t) => {\n callback({\n path: path,\n type,\n value: new TypedDataValueArray(value.length),\n });\n for (const entry of value) {\n const nextPath = path.length ? `${path}.[]` : \"[]\";\n if (!this.visitValue(t.rowType, entry, `${nextPath}`, callback)) {\n return false;\n }\n }\n return true;\n }, false)\n );\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Just", "Left", "Maybe", "Nothing", "Right", "ArrayType", "PrimitiveType", "StructType", "TypedDataValueArray", "TypedDataValueField", "TypedDataValueRoot", "encodeTypedDataValue", "TypedDataParser", "types", "domain", "domainTypes", "name", "type", "structs", "typedName", "typedData", "parsedTypedData", "data", "primaryType", "message", "values", "val", "value", "just", "match", "size", "matchLevels", "levels", "rootType", "path", "callback", "primitiveType", "encoded", "structType", "fieldName", "fieldType", "fieldValue", "nextPath", "t", "c", "entry"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{hexaStringToBuffer as u}from"@ledgerhq/device-management-kit";import{Just as s,Nothing as o,Right as w}from"purify-ts";import{ArrayType as d,PrimitiveType as r,StructType as m,TypedDataValueArray as b,TypedDataValueField as y,TypedDataValueRoot as f}from"../../typed-data/model/Types";import{TypedDataParser as p}from"./TypedDataParser";describe("TypedDataParser - types parsing",()=>{it("Parse primitive types bytes",()=>{const i={TestStruct:[{name:"test1",type:"bytes"},{name:"test2",type:"bytes1"},{name:"test3",type:"bytes2"},{name:"test4",type:"bytes31"},{name:"test5",type:"bytes32"}]},e=new p(i),t={TestStruct:{test1:new r("bytes","bytes",o),test2:new r("bytes1","bytes",s(1)),test3:new r("bytes2","bytes",s(2)),test4:new r("bytes31","bytes",s(31)),test5:new r("bytes32","bytes",s(32))}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse primitive types bytes, out of bound",()=>{const i={TestStruct:[{name:"invalid1",type:"bytes0"},{name:"invalid2",type:"bytes33"}]},e=new p(i),t={TestStruct:{invalid1:new m("bytes0"),invalid2:new m("bytes33")}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse primitive types number",()=>{const i={TestStruct:[{name:"test1",type:"int8"},{name:"test2",type:"uint8"},{name:"test3",type:"int16"},{name:"test4",type:"uint32"},{name:"test5",type:"uint64"},{name:"test6",type:"int128"},{name:"test7",type:"int136"},{name:"test8",type:"int144"},{name:"test9",type:"uint240"},{name:"test10",type:"uint248"},{name:"test11",type:"uint256"},{name:"test12",type:"int256"}]},e=new p(i),t={TestStruct:{test1:new r("int8","int",s(1)),test2:new r("uint8","uint",s(1)),test3:new r("int16","int",s(2)),test4:new r("uint32","uint",s(4)),test5:new r("uint64","uint",s(8)),test6:new r("int128","int",s(16)),test7:new r("int136","int",s(17)),test8:new r("int144","int",s(18)),test9:new r("uint240","uint",s(30)),test10:new r("uint248","uint",s(31)),test11:new r("uint256","uint",s(32)),test12:new r("int256","int",s(32))}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse primitive types number, out of bound",()=>{const i={TestStruct:[{name:"invalid1",type:"int0"},{name:"invalid2",type:"uint0"},{name:"invalid3",type:"int7"},{name:"invalid4",type:"int257"},{name:"invalid5",type:"uint257"},{name:"invalid6",type:"int512"}]},e=new p(i),t={TestStruct:{invalid1:new m("int0"),invalid2:new m("uint0"),invalid3:new m("int7"),invalid4:new m("int257"),invalid5:new m("uint257"),invalid6:new m("int512")}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse primitive types others",()=>{const i={TestStruct:[{name:"test1",type:"address"},{name:"test2",type:"bool"},{name:"test3",type:"string"}]},e=new p(i),t={TestStruct:{test1:new r("address","address",o),test2:new r("bool","bool",o),test3:new r("string","string",o)}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse arrays",()=>{const i={TestStruct:[{name:"test1",type:"address[]"},{name:"test2",type:"uint16[3]"},{name:"test3",type:"custom[2][][3]"},{name:"test4",type:"string[2][][3][]"}]},e=new p(i),t={TestStruct:{test1:new d("address[]",new r("address","address",o),"address",o,[o]),test2:new d("uint16[3]",new r("uint16","uint",s(2)),"uint16",s(3),[s(3)]),test3:new d("custom[2][][3]",new m("custom"),"custom[2][]",s(3),[s(2),o,s(3)]),test4:new d("string[2][][3][]",new r("string","string",o),"string[2][][3]",o,[s(2),o,s(3),o])}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse custom struct",()=>{const i={TestStruct:[{name:"test",type:"MyCustomStructure"}]},e=new p(i),t={TestStruct:{test:new m("MyCustomStructure")}};expect(e.getStructDefinitions()).toStrictEqual(t)})});describe("TypedDataParser - message parsing",()=>{const i={domain:{chainId:0,name:"Ether Mail",verifyingContract:"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",version:"1"},message:{contents:"Hello, Bob!",from:{name:"Cow",wallets:["0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826","0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF"]},to:[{wallets:["0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB","0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57","0xB0B0b0b0b0b0B000000000000000000000000000"],name:"Bob"}]},primaryType:"Mail",types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Mail:[{name:"from",type:"Person"},{name:"to",type:"Person[1]"},{name:"contents",type:"string"}],Person:[{name:"name",type:"string"},{name:"wallets",type:"address[]"}]}};it("Parse an EIP712 message",()=>{const e=i.types,t=i.primaryType,n=i.message,a=new p(e).parse(t,n),l=[{path:"",type:"",value:new f(t)},{path:"from.name",type:"string",value:new y(new TextEncoder().encode("Cow"))},{path:"from.wallets",type:"address[]",value:new b(2)},{path:"from.wallets.[]",type:"address",value:new y(u("0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"))},{path:"from.wallets.[]",type:"address",value:new y(u("0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF"))},{path:"to",type:"Person[1]",value:new b(1)},{path:"to.[].name",type:"string",value:new y(new TextEncoder().encode("Bob"))},{path:"to.[].wallets",type:"address[]",value:new b(3)},{path:"to.[].wallets.[]",type:"address",value:new y(u("0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"))},{path:"to.[].wallets.[]",type:"address",value:new y(u("0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57"))},{path:"to.[].wallets.[]",type:"address",value:new y(u("0xB0B0b0b0b0b0B000000000000000000000000000"))},{path:"contents",type:"string",value:new y(new TextEncoder().encode("Hello, Bob!"))}];expect(a).toStrictEqual(w(l))}),it("Parse an EIP712 domain",()=>{const e=i.types,t="EIP712Domain",n=i.domain,c=new p(e),a=[{path:"",type:"",value:new f(t)},{path:"name",type:"string",value:new y(new TextEncoder().encode("Ether Mail"))},{path:"version",type:"string",value:new y(new TextEncoder().encode("1"))},{path:"chainId",type:"uint256",value:new y(Uint8Array.from([0]))},{path:"verifyingContract",type:"address",value:new y(u("0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"))}],l=c.parse(t,n);expect(l).toStrictEqual(w(a))}),it("Invalid primary type",()=>{const e=i.types,t="unknown",n=i.domain,a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Struct points to an unknown custom type",()=>{const e={Mail:[{name:"from",type:"Person"}]},t="Mail",n={from:"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Array contains an unknown custom type",()=>{const e={Mail:[{name:"from",type:"Person[]"}]},t="Mail",n={from:["0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"]},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Invalid primitive value",()=>{const e={Mail:[{name:"from",type:"uint8"}]},t="Mail",n={from:3e3},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Array instead of primitive value",()=>{const e={Mail:[{name:"from",type:"uint8"}]},t="Mail",n={from:[42]},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Struct instead of primitive value",()=>{const e={Mail:[{name:"from",type:"uint8"}]},t="Mail",n={from:{data:42}},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Struct value not a record",()=>{const e={Mail:[{name:"from",type:"Person"}],Person:[{name:"data",type:"uint8"}]},t="Mail",n={from:42},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Struct field not present in value",()=>{const e={Mail:[{name:"from",type:"uint8"}]},t="Mail",n={to:42},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Array value not an array",()=>{const e={Mail:[{name:"from",type:"uint8[]"}]},t="Mail",n={from:42},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)}),it("Array value with invalid size",()=>{const e={Mail:[{name:"from",type:"uint8[3]"}]},t="Mail",n={from:[42]},a=new p(e).parse(t,n);expect(a.isLeft()).toStrictEqual(!0)})});
1
+ import{hexaStringToBuffer as m}from"@ledgerhq/device-management-kit";import{Just as a,Nothing as c,Right as w}from"purify-ts";import{ArrayType as d,PrimitiveType as n,StructType as o,TypedDataValueArray as b,TypedDataValueField as u,TypedDataValueRoot as C}from"../../typed-data/model/Types";import{TypedDataParser as p}from"./TypedDataParser";describe("TypedDataParser - types parsing",()=>{it("Parse primitive types bytes",()=>{const s={TestStruct:[{name:"test1",type:"bytes"},{name:"test2",type:"bytes1"},{name:"test3",type:"bytes2"},{name:"test4",type:"bytes31"},{name:"test5",type:"bytes32"}]},e=new p(s,{}),t={TestStruct:{test1:new n("bytes","bytes",c),test2:new n("bytes1","bytes",a(1)),test3:new n("bytes2","bytes",a(2)),test4:new n("bytes31","bytes",a(31)),test5:new n("bytes32","bytes",a(32))}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse primitive types bytes, out of bound",()=>{const s={TestStruct:[{name:"invalid1",type:"bytes0"},{name:"invalid2",type:"bytes33"}]},e=new p(s,{}),t={TestStruct:{invalid1:new o("bytes0"),invalid2:new o("bytes33")}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse primitive types number",()=>{const s={TestStruct:[{name:"test1",type:"int8"},{name:"test2",type:"uint8"},{name:"test3",type:"int16"},{name:"test4",type:"uint32"},{name:"test5",type:"uint64"},{name:"test6",type:"int128"},{name:"test7",type:"int136"},{name:"test8",type:"int144"},{name:"test9",type:"uint240"},{name:"test10",type:"uint248"},{name:"test11",type:"uint256"},{name:"test12",type:"int256"}]},e=new p(s,{}),t={TestStruct:{test1:new n("int8","int",a(1)),test2:new n("uint8","uint",a(1)),test3:new n("int16","int",a(2)),test4:new n("uint32","uint",a(4)),test5:new n("uint64","uint",a(8)),test6:new n("int128","int",a(16)),test7:new n("int136","int",a(17)),test8:new n("int144","int",a(18)),test9:new n("uint240","uint",a(30)),test10:new n("uint248","uint",a(31)),test11:new n("uint256","uint",a(32)),test12:new n("int256","int",a(32))}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse primitive types number, out of bound",()=>{const s={TestStruct:[{name:"invalid1",type:"int0"},{name:"invalid2",type:"uint0"},{name:"invalid3",type:"int7"},{name:"invalid4",type:"int257"},{name:"invalid5",type:"uint257"},{name:"invalid6",type:"int512"}]},e=new p(s,{}),t={TestStruct:{invalid1:new o("int0"),invalid2:new o("uint0"),invalid3:new o("int7"),invalid4:new o("int257"),invalid5:new o("uint257"),invalid6:new o("int512")}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse primitive types others",()=>{const s={TestStruct:[{name:"test1",type:"address"},{name:"test2",type:"bool"},{name:"test3",type:"string"}]},e=new p(s,{}),t={TestStruct:{test1:new n("address","address",c),test2:new n("bool","bool",c),test3:new n("string","string",c)}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse arrays",()=>{const s={TestStruct:[{name:"test1",type:"address[]"},{name:"test2",type:"uint16[3]"},{name:"test3",type:"custom[2][][3]"},{name:"test4",type:"string[2][][3][]"}]},e=new p(s,{}),t={TestStruct:{test1:new d("address[]",new n("address","address",c),"address",c,[c]),test2:new d("uint16[3]",new n("uint16","uint",a(2)),"uint16",a(3),[a(3)]),test3:new d("custom[2][][3]",new o("custom"),"custom[2][]",a(3),[a(2),c,a(3)]),test4:new d("string[2][][3][]",new n("string","string",c),"string[2][][3]",c,[a(2),c,a(3),c])}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Parse custom struct",()=>{const s={TestStruct:[{name:"test",type:"MyCustomStructure"}]},e=new p(s,{}),t={TestStruct:{test:new o("MyCustomStructure")}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Don't append domain default types if already present",()=>{const s={EIP712Domain:[{name:"name",type:"string"}],TestStruct:[{name:"test",type:"MyCustomStructure"}]},e=new p(s,{name:"Seaport",version:"1.5",chainId:1,verifyingContract:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",salt:"0x42"}),t={EIP712Domain:{name:new n("string","string",c)},TestStruct:{test:new o("MyCustomStructure")}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Append domain default types",()=>{const s={TestStruct:[{name:"test",type:"MyCustomStructure"}]},e=new p(s,{name:"Seaport",version:"1.5",chainId:1,verifyingContract:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",salt:"0x42"}),t={EIP712Domain:{name:new n("string","string",c),version:new n("string","string",c),chainId:new n("uint256","uint",a(32)),verifyingContract:new n("address","address",c),salt:new n("bytes32","bytes",a(32))},TestStruct:{test:new o("MyCustomStructure")}};expect(e.getStructDefinitions()).toStrictEqual(t)}),it("Append partial domain default types",()=>{const s={TestStruct:[{name:"test",type:"MyCustomStructure"}]},e=new p(s,{name:"Seaport",chainId:1,verifyingContract:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC"}),t={EIP712Domain:{name:new n("string","string",c),chainId:new n("uint256","uint",a(32)),verifyingContract:new n("address","address",c)},TestStruct:{test:new o("MyCustomStructure")}};expect(e.getStructDefinitions()).toStrictEqual(t)})});describe("TypedDataParser - message parsing",()=>{const s={domain:{chainId:0,name:"Ether Mail",verifyingContract:"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",version:"1"},message:{contents:"Hello, Bob!",from:{name:"Cow",wallets:["0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826","0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF"]},to:[{wallets:["0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB","0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57","0xB0B0b0b0b0b0B000000000000000000000000000"],name:"Bob"}]},primaryType:"Mail",types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Mail:[{name:"from",type:"Person"},{name:"to",type:"Person[1]"},{name:"contents",type:"string"}],Person:[{name:"name",type:"string"},{name:"wallets",type:"address[]"}]}};it("Parse an EIP712 message",()=>{const e=s.types,t=s.primaryType,r=s.message,i=new p(e,{}).parse(t,r),l=[{path:"",type:"",value:new C(t)},{path:"from.name",type:"string",value:new u(new TextEncoder().encode("Cow"))},{path:"from.wallets",type:"address[]",value:new b(2)},{path:"from.wallets.[]",type:"address",value:new u(m("0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"))},{path:"from.wallets.[]",type:"address",value:new u(m("0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF"))},{path:"to",type:"Person[1]",value:new b(1)},{path:"to.[].name",type:"string",value:new u(new TextEncoder().encode("Bob"))},{path:"to.[].wallets",type:"address[]",value:new b(3)},{path:"to.[].wallets.[]",type:"address",value:new u(m("0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"))},{path:"to.[].wallets.[]",type:"address",value:new u(m("0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57"))},{path:"to.[].wallets.[]",type:"address",value:new u(m("0xB0B0b0b0b0b0B000000000000000000000000000"))},{path:"contents",type:"string",value:new u(new TextEncoder().encode("Hello, Bob!"))}];expect(i).toStrictEqual(w(l))}),it("Parse an EIP712 domain",()=>{const e=s.types,t="EIP712Domain",r=s.domain,y=new p(e,{}),i=[{path:"",type:"",value:new C(t)},{path:"name",type:"string",value:new u(new TextEncoder().encode("Ether Mail"))},{path:"version",type:"string",value:new u(new TextEncoder().encode("1"))},{path:"chainId",type:"uint256",value:new u(Uint8Array.from([0]))},{path:"verifyingContract",type:"address",value:new u(m("0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"))}],l=y.parse(t,r);expect(l).toStrictEqual(w(i))}),it("Invalid primary type",()=>{const e=s.types,t="unknown",r=s.domain,i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Struct points to an unknown custom type",()=>{const e={Mail:[{name:"from",type:"Person"}]},t="Mail",r={from:"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Array contains an unknown custom type",()=>{const e={Mail:[{name:"from",type:"Person[]"}]},t="Mail",r={from:["0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"]},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Invalid primitive value",()=>{const e={Mail:[{name:"from",type:"uint8"}]},t="Mail",r={from:3e3},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Array instead of primitive value",()=>{const e={Mail:[{name:"from",type:"uint8"}]},t="Mail",r={from:[42]},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Struct instead of primitive value",()=>{const e={Mail:[{name:"from",type:"uint8"}]},t="Mail",r={from:{data:42}},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Struct value not a record",()=>{const e={Mail:[{name:"from",type:"Person"}],Person:[{name:"data",type:"uint8"}]},t="Mail",r={from:42},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Struct field not present in value",()=>{const e={Mail:[{name:"from",type:"uint8"}]},t="Mail",r={to:42},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Array value not an array",()=>{const e={Mail:[{name:"from",type:"uint8[]"}]},t="Mail",r={from:42},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)}),it("Array value with invalid size",()=>{const e={Mail:[{name:"from",type:"uint8[3]"}]},t="Mail",r={from:[42]},i=new p(e,{}).parse(t,r);expect(i.isLeft()).toStrictEqual(!0)})});
2
2
  //# sourceMappingURL=TypedDataParser.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/typed-data/service/TypedDataParser.test.ts"],
4
- "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing, Right } from \"purify-ts\";\n\nimport { type TypedData } from \"@api/model/TypedData\";\nimport {\n ArrayType,\n PrimitiveType,\n StructType,\n TypedDataValueArray,\n TypedDataValueField,\n TypedDataValueRoot,\n} from \"@internal/typed-data/model/Types\";\n\nimport { TypedDataParser } from \"./TypedDataParser\";\n\ndescribe(\"TypedDataParser - types parsing\", () => {\n it(\"Parse primitive types bytes\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"test1\", type: \"bytes\" },\n { name: \"test2\", type: \"bytes1\" },\n { name: \"test3\", type: \"bytes2\" },\n { name: \"test4\", type: \"bytes31\" },\n { name: \"test5\", type: \"bytes32\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const expected = {\n TestStruct: {\n test1: new PrimitiveType(\"bytes\", \"bytes\", Nothing),\n test2: new PrimitiveType(\"bytes1\", \"bytes\", Just(1)),\n test3: new PrimitiveType(\"bytes2\", \"bytes\", Just(2)),\n test4: new PrimitiveType(\"bytes31\", \"bytes\", Just(31)),\n test5: new PrimitiveType(\"bytes32\", \"bytes\", Just(32)),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse primitive types bytes, out of bound\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"invalid1\", type: \"bytes0\" },\n { name: \"invalid2\", type: \"bytes33\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const expected = {\n TestStruct: {\n invalid1: new StructType(\"bytes0\"),\n invalid2: new StructType(\"bytes33\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse primitive types number\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"test1\", type: \"int8\" },\n { name: \"test2\", type: \"uint8\" },\n { name: \"test3\", type: \"int16\" },\n { name: \"test4\", type: \"uint32\" },\n { name: \"test5\", type: \"uint64\" },\n { name: \"test6\", type: \"int128\" },\n { name: \"test7\", type: \"int136\" },\n { name: \"test8\", type: \"int144\" },\n { name: \"test9\", type: \"uint240\" },\n { name: \"test10\", type: \"uint248\" },\n { name: \"test11\", type: \"uint256\" },\n { name: \"test12\", type: \"int256\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const expected = {\n TestStruct: {\n test1: new PrimitiveType(\"int8\", \"int\", Just(1)),\n test2: new PrimitiveType(\"uint8\", \"uint\", Just(1)),\n test3: new PrimitiveType(\"int16\", \"int\", Just(2)),\n test4: new PrimitiveType(\"uint32\", \"uint\", Just(4)),\n test5: new PrimitiveType(\"uint64\", \"uint\", Just(8)),\n test6: new PrimitiveType(\"int128\", \"int\", Just(16)),\n test7: new PrimitiveType(\"int136\", \"int\", Just(17)),\n test8: new PrimitiveType(\"int144\", \"int\", Just(18)),\n test9: new PrimitiveType(\"uint240\", \"uint\", Just(30)),\n test10: new PrimitiveType(\"uint248\", \"uint\", Just(31)),\n test11: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n test12: new PrimitiveType(\"int256\", \"int\", Just(32)),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse primitive types number, out of bound\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"invalid1\", type: \"int0\" },\n { name: \"invalid2\", type: \"uint0\" },\n { name: \"invalid3\", type: \"int7\" },\n { name: \"invalid4\", type: \"int257\" },\n { name: \"invalid5\", type: \"uint257\" },\n { name: \"invalid6\", type: \"int512\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const expected = {\n TestStruct: {\n invalid1: new StructType(\"int0\"),\n invalid2: new StructType(\"uint0\"),\n invalid3: new StructType(\"int7\"),\n invalid4: new StructType(\"int257\"),\n invalid5: new StructType(\"uint257\"),\n invalid6: new StructType(\"int512\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse primitive types others\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"test1\", type: \"address\" },\n { name: \"test2\", type: \"bool\" },\n { name: \"test3\", type: \"string\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const expected = {\n TestStruct: {\n test1: new PrimitiveType(\"address\", \"address\", Nothing),\n test2: new PrimitiveType(\"bool\", \"bool\", Nothing),\n test3: new PrimitiveType(\"string\", \"string\", Nothing),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse arrays\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"test1\", type: \"address[]\" },\n { name: \"test2\", type: \"uint16[3]\" },\n { name: \"test3\", type: \"custom[2][][3]\" },\n { name: \"test4\", type: \"string[2][][3][]\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const expected = {\n TestStruct: {\n test1: new ArrayType(\n \"address[]\",\n new PrimitiveType(\"address\", \"address\", Nothing),\n \"address\",\n Nothing,\n [Nothing],\n ),\n test2: new ArrayType(\n \"uint16[3]\",\n new PrimitiveType(\"uint16\", \"uint\", Just(2)),\n \"uint16\",\n Just(3),\n [Just(3)],\n ),\n test3: new ArrayType(\n \"custom[2][][3]\",\n new StructType(\"custom\"),\n \"custom[2][]\",\n Just(3),\n [Just(2), Nothing, Just(3)],\n ),\n test4: new ArrayType(\n \"string[2][][3][]\",\n new PrimitiveType(\"string\", \"string\", Nothing),\n \"string[2][][3]\",\n Nothing,\n [Just(2), Nothing, Just(3), Nothing],\n ),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse custom struct\", () => {\n // GIVEN\n const types = {\n TestStruct: [{ name: \"test\", type: \"MyCustomStructure\" }],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const expected = {\n TestStruct: {\n test: new StructType(\"MyCustomStructure\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n});\n\ndescribe(\"TypedDataParser - message parsing\", () => {\n const MESSAGE: TypedData = {\n domain: {\n chainId: 0,\n name: \"Ether Mail\",\n verifyingContract: \"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\",\n version: \"1\",\n },\n message: {\n contents: \"Hello, Bob!\",\n from: {\n name: \"Cow\",\n wallets: [\n \"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\",\n \"0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF\",\n ],\n },\n to: [\n {\n wallets: [\n \"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\",\n \"0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57\",\n \"0xB0B0b0b0b0b0B000000000000000000000000000\",\n ],\n name: \"Bob\",\n },\n ],\n },\n primaryType: \"Mail\",\n types: {\n EIP712Domain: [\n { name: \"name\", type: \"string\" },\n { name: \"version\", type: \"string\" },\n { name: \"chainId\", type: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\" },\n ],\n Mail: [\n { name: \"from\", type: \"Person\" },\n { name: \"to\", type: \"Person[1]\" },\n { name: \"contents\", type: \"string\" },\n ],\n Person: [\n { name: \"name\", type: \"string\" },\n { name: \"wallets\", type: \"address[]\" },\n ],\n },\n };\n\n it(\"Parse an EIP712 message\", () => {\n // GIVEN\n const types = MESSAGE.types;\n const primaryType = MESSAGE.primaryType;\n const message = MESSAGE.message;\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n const expected = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(primaryType),\n },\n {\n path: \"from.name\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Cow\")),\n },\n {\n path: \"from.wallets\",\n type: \"address[]\",\n value: new TypedDataValueArray(2),\n },\n {\n path: \"from.wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\")!,\n ),\n },\n {\n path: \"from.wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF\")!,\n ),\n },\n { path: \"to\", type: \"Person[1]\", value: new TypedDataValueArray(1) },\n {\n path: \"to.[].name\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Bob\")),\n },\n {\n path: \"to.[].wallets\",\n type: \"address[]\",\n value: new TypedDataValueArray(3),\n },\n {\n path: \"to.[].wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\")!,\n ),\n },\n {\n path: \"to.[].wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57\")!,\n ),\n },\n {\n path: \"to.[].wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xB0B0b0b0b0b0B000000000000000000000000000\")!,\n ),\n },\n {\n path: \"contents\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Hello, Bob!\")),\n },\n ];\n expect(parsed).toStrictEqual(Right(expected));\n });\n\n it(\"Parse an EIP712 domain\", () => {\n // GIVEN\n const types = MESSAGE.types;\n const primaryType = \"EIP712Domain\";\n const message = MESSAGE.domain;\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const expected = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(primaryType),\n },\n {\n path: \"name\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Ether Mail\")),\n },\n {\n path: \"version\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"1\")),\n },\n {\n path: \"chainId\",\n type: \"uint256\",\n value: new TypedDataValueField(Uint8Array.from([0])),\n },\n {\n path: \"verifyingContract\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\")!,\n ),\n },\n ];\n const parsed = parser.parse(primaryType, message);\n expect(parsed).toStrictEqual(Right(expected));\n });\n\n it(\"Invalid primary type\", () => {\n // GIVEN\n const types = MESSAGE.types;\n const primaryType = \"unknown\";\n const message = MESSAGE.domain;\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Struct points to an unknown custom type\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"Person\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: \"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\",\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Array contains an unknown custom type\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"Person[]\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: [\"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\"],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Invalid primitive value\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: 3000,\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Array instead of primitive value\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: [42],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Struct instead of primitive value\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: { data: 42 },\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Struct value not a record\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"Person\" }],\n Person: [{ name: \"data\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: 42,\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Struct field not present in value\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n to: 42,\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Array value not an array\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8[]\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: 42,\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Array value with invalid size\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8[3]\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: [42],\n };\n // WHEN\n const parser = new TypedDataParser(types);\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing, Right } from \"purify-ts\";\n\nimport { type TypedData } from \"@api/model/TypedData\";\nimport {\n ArrayType,\n PrimitiveType,\n StructType,\n TypedDataValueArray,\n TypedDataValueField,\n TypedDataValueRoot,\n} from \"@internal/typed-data/model/Types\";\n\nimport { TypedDataParser } from \"./TypedDataParser\";\n\ndescribe(\"TypedDataParser - types parsing\", () => {\n it(\"Parse primitive types bytes\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"test1\", type: \"bytes\" },\n { name: \"test2\", type: \"bytes1\" },\n { name: \"test3\", type: \"bytes2\" },\n { name: \"test4\", type: \"bytes31\" },\n { name: \"test5\", type: \"bytes32\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const expected = {\n TestStruct: {\n test1: new PrimitiveType(\"bytes\", \"bytes\", Nothing),\n test2: new PrimitiveType(\"bytes1\", \"bytes\", Just(1)),\n test3: new PrimitiveType(\"bytes2\", \"bytes\", Just(2)),\n test4: new PrimitiveType(\"bytes31\", \"bytes\", Just(31)),\n test5: new PrimitiveType(\"bytes32\", \"bytes\", Just(32)),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse primitive types bytes, out of bound\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"invalid1\", type: \"bytes0\" },\n { name: \"invalid2\", type: \"bytes33\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const expected = {\n TestStruct: {\n invalid1: new StructType(\"bytes0\"),\n invalid2: new StructType(\"bytes33\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse primitive types number\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"test1\", type: \"int8\" },\n { name: \"test2\", type: \"uint8\" },\n { name: \"test3\", type: \"int16\" },\n { name: \"test4\", type: \"uint32\" },\n { name: \"test5\", type: \"uint64\" },\n { name: \"test6\", type: \"int128\" },\n { name: \"test7\", type: \"int136\" },\n { name: \"test8\", type: \"int144\" },\n { name: \"test9\", type: \"uint240\" },\n { name: \"test10\", type: \"uint248\" },\n { name: \"test11\", type: \"uint256\" },\n { name: \"test12\", type: \"int256\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const expected = {\n TestStruct: {\n test1: new PrimitiveType(\"int8\", \"int\", Just(1)),\n test2: new PrimitiveType(\"uint8\", \"uint\", Just(1)),\n test3: new PrimitiveType(\"int16\", \"int\", Just(2)),\n test4: new PrimitiveType(\"uint32\", \"uint\", Just(4)),\n test5: new PrimitiveType(\"uint64\", \"uint\", Just(8)),\n test6: new PrimitiveType(\"int128\", \"int\", Just(16)),\n test7: new PrimitiveType(\"int136\", \"int\", Just(17)),\n test8: new PrimitiveType(\"int144\", \"int\", Just(18)),\n test9: new PrimitiveType(\"uint240\", \"uint\", Just(30)),\n test10: new PrimitiveType(\"uint248\", \"uint\", Just(31)),\n test11: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n test12: new PrimitiveType(\"int256\", \"int\", Just(32)),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse primitive types number, out of bound\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"invalid1\", type: \"int0\" },\n { name: \"invalid2\", type: \"uint0\" },\n { name: \"invalid3\", type: \"int7\" },\n { name: \"invalid4\", type: \"int257\" },\n { name: \"invalid5\", type: \"uint257\" },\n { name: \"invalid6\", type: \"int512\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const expected = {\n TestStruct: {\n invalid1: new StructType(\"int0\"),\n invalid2: new StructType(\"uint0\"),\n invalid3: new StructType(\"int7\"),\n invalid4: new StructType(\"int257\"),\n invalid5: new StructType(\"uint257\"),\n invalid6: new StructType(\"int512\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse primitive types others\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"test1\", type: \"address\" },\n { name: \"test2\", type: \"bool\" },\n { name: \"test3\", type: \"string\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const expected = {\n TestStruct: {\n test1: new PrimitiveType(\"address\", \"address\", Nothing),\n test2: new PrimitiveType(\"bool\", \"bool\", Nothing),\n test3: new PrimitiveType(\"string\", \"string\", Nothing),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse arrays\", () => {\n // GIVEN\n const types = {\n TestStruct: [\n { name: \"test1\", type: \"address[]\" },\n { name: \"test2\", type: \"uint16[3]\" },\n { name: \"test3\", type: \"custom[2][][3]\" },\n { name: \"test4\", type: \"string[2][][3][]\" },\n ],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const expected = {\n TestStruct: {\n test1: new ArrayType(\n \"address[]\",\n new PrimitiveType(\"address\", \"address\", Nothing),\n \"address\",\n Nothing,\n [Nothing],\n ),\n test2: new ArrayType(\n \"uint16[3]\",\n new PrimitiveType(\"uint16\", \"uint\", Just(2)),\n \"uint16\",\n Just(3),\n [Just(3)],\n ),\n test3: new ArrayType(\n \"custom[2][][3]\",\n new StructType(\"custom\"),\n \"custom[2][]\",\n Just(3),\n [Just(2), Nothing, Just(3)],\n ),\n test4: new ArrayType(\n \"string[2][][3][]\",\n new PrimitiveType(\"string\", \"string\", Nothing),\n \"string[2][][3]\",\n Nothing,\n [Just(2), Nothing, Just(3), Nothing],\n ),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Parse custom struct\", () => {\n // GIVEN\n const types = {\n TestStruct: [{ name: \"test\", type: \"MyCustomStructure\" }],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const expected = {\n TestStruct: {\n test: new StructType(\"MyCustomStructure\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Don't append domain default types if already present\", () => {\n // GIVEN\n const types = {\n EIP712Domain: [{ name: \"name\", type: \"string\" }],\n TestStruct: [{ name: \"test\", type: \"MyCustomStructure\" }],\n };\n // WHEN\n const parser = new TypedDataParser(types, {\n name: \"Seaport\",\n version: \"1.5\",\n chainId: 1,\n verifyingContract: \"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC\",\n salt: \"0x42\",\n });\n // THEN\n const expected = {\n EIP712Domain: {\n name: new PrimitiveType(\"string\", \"string\", Nothing),\n },\n TestStruct: {\n test: new StructType(\"MyCustomStructure\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Append domain default types\", () => {\n // GIVEN\n const types = {\n TestStruct: [{ name: \"test\", type: \"MyCustomStructure\" }],\n };\n // WHEN\n const parser = new TypedDataParser(types, {\n name: \"Seaport\",\n version: \"1.5\",\n chainId: 1,\n verifyingContract: \"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC\",\n salt: \"0x42\",\n });\n // THEN\n const expected = {\n EIP712Domain: {\n name: new PrimitiveType(\"string\", \"string\", Nothing),\n version: new PrimitiveType(\"string\", \"string\", Nothing),\n chainId: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n verifyingContract: new PrimitiveType(\"address\", \"address\", Nothing),\n salt: new PrimitiveType(\"bytes32\", \"bytes\", Just(32)),\n },\n TestStruct: {\n test: new StructType(\"MyCustomStructure\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n\n it(\"Append partial domain default types\", () => {\n // GIVEN\n const types = {\n TestStruct: [{ name: \"test\", type: \"MyCustomStructure\" }],\n };\n // WHEN\n const parser = new TypedDataParser(types, {\n name: \"Seaport\",\n chainId: 1,\n verifyingContract: \"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC\",\n });\n // THEN\n const expected = {\n EIP712Domain: {\n name: new PrimitiveType(\"string\", \"string\", Nothing),\n chainId: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n verifyingContract: new PrimitiveType(\"address\", \"address\", Nothing),\n },\n TestStruct: {\n test: new StructType(\"MyCustomStructure\"),\n },\n };\n expect(parser.getStructDefinitions()).toStrictEqual(expected);\n });\n});\n\ndescribe(\"TypedDataParser - message parsing\", () => {\n const MESSAGE: TypedData = {\n domain: {\n chainId: 0,\n name: \"Ether Mail\",\n verifyingContract: \"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\",\n version: \"1\",\n },\n message: {\n contents: \"Hello, Bob!\",\n from: {\n name: \"Cow\",\n wallets: [\n \"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\",\n \"0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF\",\n ],\n },\n to: [\n {\n wallets: [\n \"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\",\n \"0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57\",\n \"0xB0B0b0b0b0b0B000000000000000000000000000\",\n ],\n name: \"Bob\",\n },\n ],\n },\n primaryType: \"Mail\",\n types: {\n EIP712Domain: [\n { name: \"name\", type: \"string\" },\n { name: \"version\", type: \"string\" },\n { name: \"chainId\", type: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\" },\n ],\n Mail: [\n { name: \"from\", type: \"Person\" },\n { name: \"to\", type: \"Person[1]\" },\n { name: \"contents\", type: \"string\" },\n ],\n Person: [\n { name: \"name\", type: \"string\" },\n { name: \"wallets\", type: \"address[]\" },\n ],\n },\n };\n\n it(\"Parse an EIP712 message\", () => {\n // GIVEN\n const types = MESSAGE.types;\n const primaryType = MESSAGE.primaryType;\n const message = MESSAGE.message;\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n const expected = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(primaryType),\n },\n {\n path: \"from.name\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Cow\")),\n },\n {\n path: \"from.wallets\",\n type: \"address[]\",\n value: new TypedDataValueArray(2),\n },\n {\n path: \"from.wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\")!,\n ),\n },\n {\n path: \"from.wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF\")!,\n ),\n },\n { path: \"to\", type: \"Person[1]\", value: new TypedDataValueArray(1) },\n {\n path: \"to.[].name\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Bob\")),\n },\n {\n path: \"to.[].wallets\",\n type: \"address[]\",\n value: new TypedDataValueArray(3),\n },\n {\n path: \"to.[].wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB\")!,\n ),\n },\n {\n path: \"to.[].wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57\")!,\n ),\n },\n {\n path: \"to.[].wallets.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xB0B0b0b0b0b0B000000000000000000000000000\")!,\n ),\n },\n {\n path: \"contents\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Hello, Bob!\")),\n },\n ];\n expect(parsed).toStrictEqual(Right(expected));\n });\n\n it(\"Parse an EIP712 domain\", () => {\n // GIVEN\n const types = MESSAGE.types;\n const primaryType = \"EIP712Domain\";\n const message = MESSAGE.domain;\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const expected = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(primaryType),\n },\n {\n path: \"name\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Ether Mail\")),\n },\n {\n path: \"version\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"1\")),\n },\n {\n path: \"chainId\",\n type: \"uint256\",\n value: new TypedDataValueField(Uint8Array.from([0])),\n },\n {\n path: \"verifyingContract\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\")!,\n ),\n },\n ];\n const parsed = parser.parse(primaryType, message);\n expect(parsed).toStrictEqual(Right(expected));\n });\n\n it(\"Invalid primary type\", () => {\n // GIVEN\n const types = MESSAGE.types;\n const primaryType = \"unknown\";\n const message = MESSAGE.domain;\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Struct points to an unknown custom type\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"Person\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: \"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\",\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Array contains an unknown custom type\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"Person[]\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: [\"0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826\"],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Invalid primitive value\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: 3000,\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Array instead of primitive value\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: [42],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Struct instead of primitive value\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: { data: 42 },\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Struct value not a record\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"Person\" }],\n Person: [{ name: \"data\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: 42,\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Struct field not present in value\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n to: 42,\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Array value not an array\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8[]\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: 42,\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n\n it(\"Array value with invalid size\", () => {\n // GIVEN\n const types = {\n Mail: [{ name: \"from\", type: \"uint8[3]\" }],\n };\n const primaryType = \"Mail\";\n const message = {\n from: [42],\n };\n // WHEN\n const parser = new TypedDataParser(types, {});\n // THEN\n const parsed = parser.parse(primaryType, message);\n expect(parsed.isLeft()).toStrictEqual(true);\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,sBAAAA,MAA0B,kCACnC,OAAS,QAAAC,EAAM,WAAAC,EAAS,SAAAC,MAAa,YAGrC,OACE,aAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,uBAAAC,EACA,uBAAAC,EACA,sBAAAC,MACK,mCAEP,OAAS,mBAAAC,MAAuB,oBAEhC,SAAS,kCAAmC,IAAM,CAChD,GAAG,8BAA+B,IAAM,CAEtC,MAAMC,EAAQ,CACZ,WAAY,CACV,CAAE,KAAM,QAAS,KAAM,OAAQ,EAC/B,CAAE,KAAM,QAAS,KAAM,QAAS,EAChC,CAAE,KAAM,QAAS,KAAM,QAAS,EAChC,CAAE,KAAM,QAAS,KAAM,SAAU,EACjC,CAAE,KAAM,QAAS,KAAM,SAAU,CACnC,CACF,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CAAC,CAAC,EAEtCE,EAAW,CACf,WAAY,CACV,MAAO,IAAIR,EAAc,QAAS,QAASH,CAAO,EAClD,MAAO,IAAIG,EAAc,SAAU,QAASJ,EAAK,CAAC,CAAC,EACnD,MAAO,IAAII,EAAc,SAAU,QAASJ,EAAK,CAAC,CAAC,EACnD,MAAO,IAAII,EAAc,UAAW,QAASJ,EAAK,EAAE,CAAC,EACrD,MAAO,IAAII,EAAc,UAAW,QAASJ,EAAK,EAAE,CAAC,CACvD,CACF,EACA,OAAOW,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,4CAA6C,IAAM,CAEpD,MAAMF,EAAQ,CACZ,WAAY,CACV,CAAE,KAAM,WAAY,KAAM,QAAS,EACnC,CAAE,KAAM,WAAY,KAAM,SAAU,CACtC,CACF,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CAAC,CAAC,EAEtCE,EAAW,CACf,WAAY,CACV,SAAU,IAAIP,EAAW,QAAQ,EACjC,SAAU,IAAIA,EAAW,SAAS,CACpC,CACF,EACA,OAAOM,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,+BAAgC,IAAM,CAEvC,MAAMF,EAAQ,CACZ,WAAY,CACV,CAAE,KAAM,QAAS,KAAM,MAAO,EAC9B,CAAE,KAAM,QAAS,KAAM,OAAQ,EAC/B,CAAE,KAAM,QAAS,KAAM,OAAQ,EAC/B,CAAE,KAAM,QAAS,KAAM,QAAS,EAChC,CAAE,KAAM,QAAS,KAAM,QAAS,EAChC,CAAE,KAAM,QAAS,KAAM,QAAS,EAChC,CAAE,KAAM,QAAS,KAAM,QAAS,EAChC,CAAE,KAAM,QAAS,KAAM,QAAS,EAChC,CAAE,KAAM,QAAS,KAAM,SAAU,EACjC,CAAE,KAAM,SAAU,KAAM,SAAU,EAClC,CAAE,KAAM,SAAU,KAAM,SAAU,EAClC,CAAE,KAAM,SAAU,KAAM,QAAS,CACnC,CACF,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CAAC,CAAC,EAEtCE,EAAW,CACf,WAAY,CACV,MAAO,IAAIR,EAAc,OAAQ,MAAOJ,EAAK,CAAC,CAAC,EAC/C,MAAO,IAAII,EAAc,QAAS,OAAQJ,EAAK,CAAC,CAAC,EACjD,MAAO,IAAII,EAAc,QAAS,MAAOJ,EAAK,CAAC,CAAC,EAChD,MAAO,IAAII,EAAc,SAAU,OAAQJ,EAAK,CAAC,CAAC,EAClD,MAAO,IAAII,EAAc,SAAU,OAAQJ,EAAK,CAAC,CAAC,EAClD,MAAO,IAAII,EAAc,SAAU,MAAOJ,EAAK,EAAE,CAAC,EAClD,MAAO,IAAII,EAAc,SAAU,MAAOJ,EAAK,EAAE,CAAC,EAClD,MAAO,IAAII,EAAc,SAAU,MAAOJ,EAAK,EAAE,CAAC,EAClD,MAAO,IAAII,EAAc,UAAW,OAAQJ,EAAK,EAAE,CAAC,EACpD,OAAQ,IAAII,EAAc,UAAW,OAAQJ,EAAK,EAAE,CAAC,EACrD,OAAQ,IAAII,EAAc,UAAW,OAAQJ,EAAK,EAAE,CAAC,EACrD,OAAQ,IAAII,EAAc,SAAU,MAAOJ,EAAK,EAAE,CAAC,CACrD,CACF,EACA,OAAOW,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,6CAA8C,IAAM,CAErD,MAAMF,EAAQ,CACZ,WAAY,CACV,CAAE,KAAM,WAAY,KAAM,MAAO,EACjC,CAAE,KAAM,WAAY,KAAM,OAAQ,EAClC,CAAE,KAAM,WAAY,KAAM,MAAO,EACjC,CAAE,KAAM,WAAY,KAAM,QAAS,EACnC,CAAE,KAAM,WAAY,KAAM,SAAU,EACpC,CAAE,KAAM,WAAY,KAAM,QAAS,CACrC,CACF,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CAAC,CAAC,EAEtCE,EAAW,CACf,WAAY,CACV,SAAU,IAAIP,EAAW,MAAM,EAC/B,SAAU,IAAIA,EAAW,OAAO,EAChC,SAAU,IAAIA,EAAW,MAAM,EAC/B,SAAU,IAAIA,EAAW,QAAQ,EACjC,SAAU,IAAIA,EAAW,SAAS,EAClC,SAAU,IAAIA,EAAW,QAAQ,CACnC,CACF,EACA,OAAOM,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,+BAAgC,IAAM,CAEvC,MAAMF,EAAQ,CACZ,WAAY,CACV,CAAE,KAAM,QAAS,KAAM,SAAU,EACjC,CAAE,KAAM,QAAS,KAAM,MAAO,EAC9B,CAAE,KAAM,QAAS,KAAM,QAAS,CAClC,CACF,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CAAC,CAAC,EAEtCE,EAAW,CACf,WAAY,CACV,MAAO,IAAIR,EAAc,UAAW,UAAWH,CAAO,EACtD,MAAO,IAAIG,EAAc,OAAQ,OAAQH,CAAO,EAChD,MAAO,IAAIG,EAAc,SAAU,SAAUH,CAAO,CACtD,CACF,EACA,OAAOU,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,eAAgB,IAAM,CAEvB,MAAMF,EAAQ,CACZ,WAAY,CACV,CAAE,KAAM,QAAS,KAAM,WAAY,EACnC,CAAE,KAAM,QAAS,KAAM,WAAY,EACnC,CAAE,KAAM,QAAS,KAAM,gBAAiB,EACxC,CAAE,KAAM,QAAS,KAAM,kBAAmB,CAC5C,CACF,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CAAC,CAAC,EAEtCE,EAAW,CACf,WAAY,CACV,MAAO,IAAIT,EACT,YACA,IAAIC,EAAc,UAAW,UAAWH,CAAO,EAC/C,UACAA,EACA,CAACA,CAAO,CACV,EACA,MAAO,IAAIE,EACT,YACA,IAAIC,EAAc,SAAU,OAAQJ,EAAK,CAAC,CAAC,EAC3C,SACAA,EAAK,CAAC,EACN,CAACA,EAAK,CAAC,CAAC,CACV,EACA,MAAO,IAAIG,EACT,iBACA,IAAIE,EAAW,QAAQ,EACvB,cACAL,EAAK,CAAC,EACN,CAACA,EAAK,CAAC,EAAGC,EAASD,EAAK,CAAC,CAAC,CAC5B,EACA,MAAO,IAAIG,EACT,mBACA,IAAIC,EAAc,SAAU,SAAUH,CAAO,EAC7C,iBACAA,EACA,CAACD,EAAK,CAAC,EAAGC,EAASD,EAAK,CAAC,EAAGC,CAAO,CACrC,CACF,CACF,EACA,OAAOU,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,sBAAuB,IAAM,CAE9B,MAAMF,EAAQ,CACZ,WAAY,CAAC,CAAE,KAAM,OAAQ,KAAM,mBAAoB,CAAC,CAC1D,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CAAC,CAAC,EAEtCE,EAAW,CACf,WAAY,CACV,KAAM,IAAIP,EAAW,mBAAmB,CAC1C,CACF,EACA,OAAOM,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,uDAAwD,IAAM,CAE/D,MAAMF,EAAQ,CACZ,aAAc,CAAC,CAAE,KAAM,OAAQ,KAAM,QAAS,CAAC,EAC/C,WAAY,CAAC,CAAE,KAAM,OAAQ,KAAM,mBAAoB,CAAC,CAC1D,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CACxC,KAAM,UACN,QAAS,MACT,QAAS,EACT,kBAAmB,6CACnB,KAAM,MACR,CAAC,EAEKE,EAAW,CACf,aAAc,CACZ,KAAM,IAAIR,EAAc,SAAU,SAAUH,CAAO,CACrD,EACA,WAAY,CACV,KAAM,IAAII,EAAW,mBAAmB,CAC1C,CACF,EACA,OAAOM,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,8BAA+B,IAAM,CAEtC,MAAMF,EAAQ,CACZ,WAAY,CAAC,CAAE,KAAM,OAAQ,KAAM,mBAAoB,CAAC,CAC1D,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CACxC,KAAM,UACN,QAAS,MACT,QAAS,EACT,kBAAmB,6CACnB,KAAM,MACR,CAAC,EAEKE,EAAW,CACf,aAAc,CACZ,KAAM,IAAIR,EAAc,SAAU,SAAUH,CAAO,EACnD,QAAS,IAAIG,EAAc,SAAU,SAAUH,CAAO,EACtD,QAAS,IAAIG,EAAc,UAAW,OAAQJ,EAAK,EAAE,CAAC,EACtD,kBAAmB,IAAII,EAAc,UAAW,UAAWH,CAAO,EAClE,KAAM,IAAIG,EAAc,UAAW,QAASJ,EAAK,EAAE,CAAC,CACtD,EACA,WAAY,CACV,KAAM,IAAIK,EAAW,mBAAmB,CAC1C,CACF,EACA,OAAOM,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,EAED,GAAG,sCAAuC,IAAM,CAE9C,MAAMF,EAAQ,CACZ,WAAY,CAAC,CAAE,KAAM,OAAQ,KAAM,mBAAoB,CAAC,CAC1D,EAEMC,EAAS,IAAIF,EAAgBC,EAAO,CACxC,KAAM,UACN,QAAS,EACT,kBAAmB,4CACrB,CAAC,EAEKE,EAAW,CACf,aAAc,CACZ,KAAM,IAAIR,EAAc,SAAU,SAAUH,CAAO,EACnD,QAAS,IAAIG,EAAc,UAAW,OAAQJ,EAAK,EAAE,CAAC,EACtD,kBAAmB,IAAII,EAAc,UAAW,UAAWH,CAAO,CACpE,EACA,WAAY,CACV,KAAM,IAAII,EAAW,mBAAmB,CAC1C,CACF,EACA,OAAOM,EAAO,qBAAqB,CAAC,EAAE,cAAcC,CAAQ,CAC9D,CAAC,CACH,CAAC,EAED,SAAS,oCAAqC,IAAM,CAClD,MAAMC,EAAqB,CACzB,OAAQ,CACN,QAAS,EACT,KAAM,aACN,kBAAmB,6CACnB,QAAS,GACX,EACA,QAAS,CACP,SAAU,cACV,KAAM,CACJ,KAAM,MACN,QAAS,CACP,6CACA,4CACF,CACF,EACA,GAAI,CACF,CACE,QAAS,CACP,6CACA,6CACA,4CACF,EACA,KAAM,KACR,CACF,CACF,EACA,YAAa,OACb,MAAO,CACL,aAAc,CACZ,CAAE,KAAM,OAAQ,KAAM,QAAS,EAC/B,CAAE,KAAM,UAAW,KAAM,QAAS,EAClC,CAAE,KAAM,UAAW,KAAM,SAAU,EACnC,CAAE,KAAM,oBAAqB,KAAM,SAAU,CAC/C,EACA,KAAM,CACJ,CAAE,KAAM,OAAQ,KAAM,QAAS,EAC/B,CAAE,KAAM,KAAM,KAAM,WAAY,EAChC,CAAE,KAAM,WAAY,KAAM,QAAS,CACrC,EACA,OAAQ,CACN,CAAE,KAAM,OAAQ,KAAM,QAAS,EAC/B,CAAE,KAAM,UAAW,KAAM,WAAY,CACvC,CACF,CACF,EAEA,GAAG,0BAA2B,IAAM,CAElC,MAAMH,EAAQG,EAAQ,MAChBC,EAAcD,EAAQ,YACtBE,EAAUF,EAAQ,QAIlBG,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAC1CH,EAAW,CACf,CACE,KAAM,GACN,KAAM,GACN,MAAO,IAAIJ,EAAmBM,CAAW,CAC3C,EACA,CACE,KAAM,YACN,KAAM,SACN,MAAO,IAAIP,EAAoB,IAAI,YAAY,EAAE,OAAO,KAAK,CAAC,CAChE,EACA,CACE,KAAM,eACN,KAAM,YACN,MAAO,IAAID,EAAoB,CAAC,CAClC,EACA,CACE,KAAM,kBACN,KAAM,UACN,MAAO,IAAIC,EACTR,EAAmB,4CAA4C,CACjE,CACF,EACA,CACE,KAAM,kBACN,KAAM,UACN,MAAO,IAAIQ,EACTR,EAAmB,4CAA4C,CACjE,CACF,EACA,CAAE,KAAM,KAAM,KAAM,YAAa,MAAO,IAAIO,EAAoB,CAAC,CAAE,EACnE,CACE,KAAM,aACN,KAAM,SACN,MAAO,IAAIC,EAAoB,IAAI,YAAY,EAAE,OAAO,KAAK,CAAC,CAChE,EACA,CACE,KAAM,gBACN,KAAM,YACN,MAAO,IAAID,EAAoB,CAAC,CAClC,EACA,CACE,KAAM,mBACN,KAAM,UACN,MAAO,IAAIC,EACTR,EAAmB,4CAA4C,CACjE,CACF,EACA,CACE,KAAM,mBACN,KAAM,UACN,MAAO,IAAIQ,EACTR,EAAmB,4CAA4C,CACjE,CACF,EACA,CACE,KAAM,mBACN,KAAM,UACN,MAAO,IAAIQ,EACTR,EAAmB,4CAA4C,CACjE,CACF,EACA,CACE,KAAM,WACN,KAAM,SACN,MAAO,IAAIQ,EAAoB,IAAI,YAAY,EAAE,OAAO,aAAa,CAAC,CACxE,CACF,EACA,OAAOS,CAAM,EAAE,cAAcd,EAAMU,CAAQ,CAAC,CAC9C,CAAC,EAED,GAAG,yBAA0B,IAAM,CAEjC,MAAMF,EAAQG,EAAQ,MAChBC,EAAc,eACdC,EAAUF,EAAQ,OAElBF,EAAS,IAAIF,EAAgBC,EAAO,CAAC,CAAC,EAEtCE,EAAW,CACf,CACE,KAAM,GACN,KAAM,GACN,MAAO,IAAIJ,EAAmBM,CAAW,CAC3C,EACA,CACE,KAAM,OACN,KAAM,SACN,MAAO,IAAIP,EAAoB,IAAI,YAAY,EAAE,OAAO,YAAY,CAAC,CACvE,EACA,CACE,KAAM,UACN,KAAM,SACN,MAAO,IAAIA,EAAoB,IAAI,YAAY,EAAE,OAAO,GAAG,CAAC,CAC9D,EACA,CACE,KAAM,UACN,KAAM,UACN,MAAO,IAAIA,EAAoB,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CACrD,EACA,CACE,KAAM,oBACN,KAAM,UACN,MAAO,IAAIA,EACTR,EAAmB,4CAA4C,CACjE,CACF,CACF,EACMiB,EAASL,EAAO,MAAMG,EAAaC,CAAO,EAChD,OAAOC,CAAM,EAAE,cAAcd,EAAMU,CAAQ,CAAC,CAC9C,CAAC,EAED,GAAG,uBAAwB,IAAM,CAE/B,MAAMF,EAAQG,EAAQ,MAChBC,EAAc,UACdC,EAAUF,EAAQ,OAIlBG,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,0CAA2C,IAAM,CAElD,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,QAAS,CAAC,CACzC,EACMI,EAAc,OACdC,EAAU,CACd,KAAM,4CACR,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,wCAAyC,IAAM,CAEhD,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,UAAW,CAAC,CAC3C,EACMI,EAAc,OACdC,EAAU,CACd,KAAM,CAAC,4CAA4C,CACrD,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,0BAA2B,IAAM,CAElC,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,OAAQ,CAAC,CACxC,EACMI,EAAc,OACdC,EAAU,CACd,KAAM,GACR,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,mCAAoC,IAAM,CAE3C,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,OAAQ,CAAC,CACxC,EACMI,EAAc,OACdC,EAAU,CACd,KAAM,CAAC,EAAE,CACX,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,oCAAqC,IAAM,CAE5C,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,OAAQ,CAAC,CACxC,EACMI,EAAc,OACdC,EAAU,CACd,KAAM,CAAE,KAAM,EAAG,CACnB,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,4BAA6B,IAAM,CAEpC,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,QAAS,CAAC,EACvC,OAAQ,CAAC,CAAE,KAAM,OAAQ,KAAM,OAAQ,CAAC,CAC1C,EACMI,EAAc,OACdC,EAAU,CACd,KAAM,EACR,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,oCAAqC,IAAM,CAE5C,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,OAAQ,CAAC,CACxC,EACMI,EAAc,OACdC,EAAU,CACd,GAAI,EACN,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,2BAA4B,IAAM,CAEnC,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,SAAU,CAAC,CAC1C,EACMI,EAAc,OACdC,EAAU,CACd,KAAM,EACR,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,EAED,GAAG,gCAAiC,IAAM,CAExC,MAAMN,EAAQ,CACZ,KAAM,CAAC,CAAE,KAAM,OAAQ,KAAM,UAAW,CAAC,CAC3C,EACMI,EAAc,OACdC,EAAU,CACd,KAAM,CAAC,EAAE,CACX,EAIMC,EAFS,IAAIP,EAAgBC,EAAO,CAAC,CAAC,EAEtB,MAAMI,EAAaC,CAAO,EAChD,OAAOC,EAAO,OAAO,CAAC,EAAE,cAAc,EAAI,CAC5C,CAAC,CACH,CAAC",
6
6
  "names": ["hexaStringToBuffer", "Just", "Nothing", "Right", "ArrayType", "PrimitiveType", "StructType", "TypedDataValueArray", "TypedDataValueField", "TypedDataValueRoot", "TypedDataParser", "types", "parser", "expected", "MESSAGE", "primaryType", "message", "parsed"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var y=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var m=(i,r,p,t)=>{for(var e=t>1?void 0:t?c(r,p):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(e=(t?o(r,p,e):o(e))||e);return t&&e&&y(r,p,e),e},d=(i,r)=>(p,t)=>r(p,t,i);import{inject as s,injectable as T}from"inversify";import{appBinderTypes as D}from"../../app-binder/di/appBinderTypes";import{typedDataTypes as B}from"../../typed-data/di/typedDataTypes";let a=class{_appBinding;_parser;constructor(r,p){this._appBinding=r,this._parser=p}execute(r,p){return this._appBinding.signTypedData({derivationPath:r,parser:this._parser,data:p})}};a=m([T(),d(0,s(D.AppBinding)),d(1,s(B.TypedDataParserService))],a);export{a as SignTypedDataUseCase};
1
+ var y=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var s=(i,p,r,e)=>{for(var t=e>1?void 0:e?T(p,r):p,n=i.length-1,o;n>=0;n--)(o=i[n])&&(t=(e?o(p,r,t):o(t))||t);return e&&t&&y(p,r,t),t},d=(i,p)=>(r,e)=>p(r,e,i);import{inject as m,injectable as D}from"inversify";import{appBinderTypes as c}from"../../app-binder/di/appBinderTypes";import{typedDataTypes as f}from"../../typed-data/di/typedDataTypes";let a=class{_appBinding;_parser;constructor(p,r){this._appBinding=p,this._parser=r}execute(p,r,e){return this._appBinding.signTypedData({derivationPath:p,parser:this._parser,data:r,skipOpenApp:e?.skipOpenApp??!1})}};a=s([D(),d(0,m(c.AppBinding)),d(1,m(f.TypedDataParserService))],a);export{a as SignTypedDataUseCase};
2
2
  //# sourceMappingURL=SignTypedDataUseCase.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/typed-data/use-case/SignTypedDataUseCase.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { EthAppBinder } from \"@internal/app-binder/EthAppBinder\";\nimport { typedDataTypes } from \"@internal/typed-data/di/typedDataTypes\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\n@injectable()\nexport class SignTypedDataUseCase {\n private _appBinding: EthAppBinder;\n private _parser: TypedDataParserService;\n\n constructor(\n @inject(appBinderTypes.AppBinding) appBinding: EthAppBinder,\n @inject(typedDataTypes.TypedDataParserService)\n typedDataParserService: TypedDataParserService,\n ) {\n this._appBinding = appBinding;\n this._parser = typedDataParserService;\n }\n\n execute(\n derivationPath: string,\n typedData: TypedData,\n ): SignTypedDataDAReturnType {\n return this._appBinding.signTypedData({\n derivationPath,\n parser: this._parser,\n data: typedData,\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAInC,OAAS,kBAAAC,MAAsB,yCAE/B,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAA2B,CACxB,YACA,QAER,YACqCC,EAEnCC,EACA,CACA,KAAK,YAAcD,EACnB,KAAK,QAAUC,CACjB,CAEA,QACEC,EACAC,EAC2B,CAC3B,OAAO,KAAK,YAAY,cAAc,CACpC,eAAAD,EACA,OAAQ,KAAK,QACb,KAAMC,CACR,CAAC,CACH,CACF,EAvBaJ,EAANK,EAAA,CADNC,EAAW,EAMPC,EAAA,EAAAC,EAAOC,EAAe,UAAU,GAChCF,EAAA,EAAAC,EAAOE,EAAe,sBAAsB,IANpCV",
6
- "names": ["inject", "injectable", "appBinderTypes", "typedDataTypes", "SignTypedDataUseCase", "appBinding", "typedDataParserService", "derivationPath", "typedData", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes", "typedDataTypes"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { TypedDataOptions } from \"@api/model/TypedDataOptions\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { EthAppBinder } from \"@internal/app-binder/EthAppBinder\";\nimport { typedDataTypes } from \"@internal/typed-data/di/typedDataTypes\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\n@injectable()\nexport class SignTypedDataUseCase {\n private _appBinding: EthAppBinder;\n private _parser: TypedDataParserService;\n\n constructor(\n @inject(appBinderTypes.AppBinding) appBinding: EthAppBinder,\n @inject(typedDataTypes.TypedDataParserService)\n typedDataParserService: TypedDataParserService,\n ) {\n this._appBinding = appBinding;\n this._parser = typedDataParserService;\n }\n\n execute(\n derivationPath: string,\n typedData: TypedData,\n options?: TypedDataOptions,\n ): SignTypedDataDAReturnType {\n return this._appBinding.signTypedData({\n derivationPath,\n parser: this._parser,\n data: typedData,\n skipOpenApp: options?.skipOpenApp ?? false,\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAKnC,OAAS,kBAAAC,MAAsB,yCAE/B,OAAS,kBAAAC,MAAsB,yCAIxB,IAAMC,EAAN,KAA2B,CACxB,YACA,QAER,YACqCC,EAEnCC,EACA,CACA,KAAK,YAAcD,EACnB,KAAK,QAAUC,CACjB,CAEA,QACEC,EACAC,EACAC,EAC2B,CAC3B,OAAO,KAAK,YAAY,cAAc,CACpC,eAAAF,EACA,OAAQ,KAAK,QACb,KAAMC,EACN,YAAaC,GAAS,aAAe,EACvC,CAAC,CACH,CACF,EAzBaL,EAANM,EAAA,CADNC,EAAW,EAMPC,EAAA,EAAAC,EAAOC,EAAe,UAAU,GAChCF,EAAA,EAAAC,EAAOE,EAAe,sBAAsB,IANpCX",
6
+ "names": ["inject", "injectable", "appBinderTypes", "typedDataTypes", "SignTypedDataUseCase", "appBinding", "typedDataParserService", "derivationPath", "typedData", "options", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes", "typedDataTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{SignTypedDataUseCase as s}from"./SignTypedDataUseCase";describe("SignTypedDataUseCase",()=>{it("should call signTypedData on appBinder with the correct arguments",()=>{const e="m/44'/60'/0'/0/0",a={domain:{},types:{},primaryType:"test",message:{}},t={parse:vi.fn()},p={signTypedData:vi.fn()};new s(p,t).execute(e,a),expect(p.signTypedData).toHaveBeenCalledWith({derivationPath:e,parser:t,data:a})})});
1
+ import{SignTypedDataUseCase as s}from"./SignTypedDataUseCase";describe("SignTypedDataUseCase",()=>{it("should call signTypedData on appBinder with the correct arguments",()=>{const e="m/44'/60'/0'/0/0",a={domain:{},types:{},primaryType:"test",message:{}},t={parse:vi.fn()},p={signTypedData:vi.fn()};new s(p,t).execute(e,a),expect(p.signTypedData).toHaveBeenCalledWith({derivationPath:e,parser:t,data:a,skipOpenApp:!1})})});
2
2
  //# sourceMappingURL=SignTypedDataUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/typed-data/use-case/SignTypedDataUseCase.test.ts"],
4
- "sourcesContent": ["import { type TypedData } from \"@api/model/TypedData\";\nimport { type EthAppBinder } from \"@internal/app-binder/EthAppBinder\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { SignTypedDataUseCase } from \"./SignTypedDataUseCase\";\n\ndescribe(\"SignTypedDataUseCase\", () => {\n it(\"should call signTypedData on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"m/44'/60'/0'/0/0\";\n const typedData: TypedData = {\n domain: {},\n types: {},\n primaryType: \"test\",\n message: {},\n };\n const parser: TypedDataParserService = {\n parse: vi.fn(),\n };\n const appBinder = {\n signTypedData: vi.fn(),\n };\n const signTypedDataUseCase = new SignTypedDataUseCase(\n appBinder as unknown as EthAppBinder,\n parser,\n );\n\n // When\n signTypedDataUseCase.execute(derivationPath, typedData);\n\n // Then\n expect(appBinder.signTypedData).toHaveBeenCalledWith({\n derivationPath,\n parser,\n data: typedData,\n });\n });\n});\n"],
5
- "mappings": "AAIA,OAAS,wBAAAA,MAA4B,yBAErC,SAAS,uBAAwB,IAAM,CACrC,GAAG,oEAAqE,IAAM,CAE5E,MAAMC,EAAiB,mBACjBC,EAAuB,CAC3B,OAAQ,CAAC,EACT,MAAO,CAAC,EACR,YAAa,OACb,QAAS,CAAC,CACZ,EACMC,EAAiC,CACrC,MAAO,GAAG,GAAG,CACf,EACMC,EAAY,CAChB,cAAe,GAAG,GAAG,CACvB,EAC6B,IAAIJ,EAC/BI,EACAD,CACF,EAGqB,QAAQF,EAAgBC,CAAS,EAGtD,OAAOE,EAAU,aAAa,EAAE,qBAAqB,CACnD,eAAAH,EACA,OAAAE,EACA,KAAMD,CACR,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { type TypedData } from \"@api/model/TypedData\";\nimport { type EthAppBinder } from \"@internal/app-binder/EthAppBinder\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { SignTypedDataUseCase } from \"./SignTypedDataUseCase\";\n\ndescribe(\"SignTypedDataUseCase\", () => {\n it(\"should call signTypedData on appBinder with the correct arguments\", () => {\n // Given\n const derivationPath = \"m/44'/60'/0'/0/0\";\n const typedData: TypedData = {\n domain: {},\n types: {},\n primaryType: \"test\",\n message: {},\n };\n const parser: TypedDataParserService = {\n parse: vi.fn(),\n };\n const appBinder = {\n signTypedData: vi.fn(),\n };\n const signTypedDataUseCase = new SignTypedDataUseCase(\n appBinder as unknown as EthAppBinder,\n parser,\n );\n\n // When\n signTypedDataUseCase.execute(derivationPath, typedData);\n\n // Then\n expect(appBinder.signTypedData).toHaveBeenCalledWith({\n derivationPath,\n parser,\n data: typedData,\n skipOpenApp: false,\n });\n });\n});\n"],
5
+ "mappings": "AAIA,OAAS,wBAAAA,MAA4B,yBAErC,SAAS,uBAAwB,IAAM,CACrC,GAAG,oEAAqE,IAAM,CAE5E,MAAMC,EAAiB,mBACjBC,EAAuB,CAC3B,OAAQ,CAAC,EACT,MAAO,CAAC,EACR,YAAa,OACb,QAAS,CAAC,CACZ,EACMC,EAAiC,CACrC,MAAO,GAAG,GAAG,CACf,EACMC,EAAY,CAChB,cAAe,GAAG,GAAG,CACvB,EAC6B,IAAIJ,EAC/BI,EACAD,CACF,EAGqB,QAAQF,EAAgBC,CAAS,EAGtD,OAAOE,EAAU,aAAa,EAAE,qBAAqB,CACnD,eAAAH,EACA,OAAAE,EACA,KAAMD,EACN,YAAa,EACf,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["SignTypedDataUseCase", "derivationPath", "typedData", "parser", "appBinder"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/device-signer-kit-ethereum",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "private": false,
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
@@ -20,9 +20,9 @@
20
20
  ],
21
21
  "scripts": {
22
22
  "prebuild": "rimraf lib",
23
- "build": "pnpm lmdk-build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
23
+ "build": "pnpm ldmk-tool build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
24
24
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
25
- "watch:builds": "pnpm lmdk-watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
25
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
26
26
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
27
27
  "lint": "eslint",
28
28
  "lint:fix": "pnpm lint --fix",
@@ -36,25 +36,24 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@ledgerhq/signer-utils": "workspace:*",
39
- "ethers": "6.13.4",
40
- "inversify": "^6.2.2",
41
- "inversify-logger-middleware": "^3.1.0",
42
- "purify-ts": "^2.1.0",
43
- "reflect-metadata": "^0.2.2",
44
- "semver": "^7.6.3",
45
- "xstate": "^5.19.2"
39
+ "ethers": "catalog:",
40
+ "inversify": "catalog:",
41
+ "purify-ts": "catalog:",
42
+ "reflect-metadata": "catalog:",
43
+ "semver": "catalog:",
44
+ "xstate": "catalog:"
46
45
  },
47
46
  "devDependencies": {
48
47
  "@ledgerhq/context-module": "workspace:*",
49
48
  "@ledgerhq/device-management-kit": "workspace:*",
50
- "@ledgerhq/esbuild-tools": "workspace:*",
49
+ "@ledgerhq/ldmk-tool": "workspace:*",
51
50
  "@ledgerhq/eslint-config-dsdk": "workspace:*",
52
51
  "@ledgerhq/prettier-config-dsdk": "workspace:*",
53
52
  "@ledgerhq/tsconfig-dsdk": "workspace:*",
54
53
  "@ledgerhq/vitest-config-dmk": "workspace:*",
55
- "@types/semver": "^7.5.8",
56
- "rxjs": "^7.8.1",
57
- "ts-node": "^10.9.2"
54
+ "@types/semver": "catalog:",
55
+ "rxjs": "catalog:",
56
+ "ts-node": "catalog:"
58
57
  },
59
58
  "peerDependencies": {
60
59
  "@ledgerhq/context-module": "workspace:*",
@@ -1,14 +1,16 @@
1
1
  import { type GetAddressDAReturnType } from "./app-binder/GetAddressDeviceActionTypes";
2
2
  import { type SignTypedDataDAReturnType } from "./app-binder/SignTypedDataDeviceActionTypes";
3
3
  import { type AddressOptions } from "./model/AddressOptions";
4
+ import { type MessageOptions } from "./model/MessageOptions";
4
5
  import { type TransactionOptions } from "./model/TransactionOptions";
5
6
  import { type TypedData } from "./model/TypedData";
7
+ import { type TypedDataOptions } from "./model/TypedDataOptions";
6
8
  import { type SignPersonalMessageDAReturnType } from "./app-binder/SignPersonalMessageDeviceActionTypes";
7
9
  import { type SignTransactionDAReturnType } from "./app-binder/SignTransactionDeviceActionTypes";
8
10
  export interface SignerEth {
9
11
  signTransaction: (derivationPath: string, transaction: Uint8Array, options?: TransactionOptions) => SignTransactionDAReturnType;
10
- signMessage: (derivationPath: string, message: string | Uint8Array) => SignPersonalMessageDAReturnType;
11
- signTypedData: (derivationPath: string, typedData: TypedData) => SignTypedDataDAReturnType;
12
+ signMessage: (derivationPath: string, message: string | Uint8Array, options?: MessageOptions) => SignPersonalMessageDAReturnType;
13
+ signTypedData: (derivationPath: string, typedData: TypedData, options?: TypedDataOptions) => SignTypedDataDAReturnType;
12
14
  getAddress: (derivationPath: string, options?: AddressOptions) => GetAddressDAReturnType;
13
15
  }
14
16
  //# sourceMappingURL=SignerEth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignerEth.d.ts","sourceRoot":"","sources":["../../../src/api/SignerEth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AACzG,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAEjG,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,CACf,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,kBAAkB,KACzB,2BAA2B,CAAC;IACjC,WAAW,EAAE,CACX,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GAAG,UAAU,KACzB,+BAA+B,CAAC;IACrC,aAAa,EAAE,CACb,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,KACjB,yBAAyB,CAAC;IAC/B,UAAU,EAAE,CACV,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,cAAc,KACrB,sBAAsB,CAAC;CAC7B"}
1
+ {"version":3,"file":"SignerEth.d.ts","sourceRoot":"","sources":["../../../src/api/SignerEth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AACzG,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAEjG,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,CACf,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,UAAU,EACvB,OAAO,CAAC,EAAE,kBAAkB,KACzB,2BAA2B,CAAC;IACjC,WAAW,EAAE,CACX,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,OAAO,CAAC,EAAE,cAAc,KACrB,+BAA+B,CAAC;IACrC,aAAa,EAAE,CACb,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,gBAAgB,KACvB,yBAAyB,CAAC;IAC/B,UAAU,EAAE,CACV,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,cAAc,KACrB,sBAAsB,CAAC;CAC7B"}