@ledgerhq/context-module 0.0.0-signer-eth-20250122093657 → 0.0.0-transactionInspector-resolutionObj-20250916071327

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 (651) hide show
  1. package/README.md +17 -5
  2. package/lib/cjs/index.js.map +1 -1
  3. package/lib/cjs/package.json +16 -16
  4. package/lib/cjs/src/ContextModule.js +1 -1
  5. package/lib/cjs/src/ContextModule.js.map +1 -1
  6. package/lib/cjs/src/ContextModuleBuilder.js +1 -1
  7. package/lib/cjs/src/ContextModuleBuilder.js.map +3 -3
  8. package/lib/cjs/src/ContextModuleBuilder.test.js +1 -1
  9. package/lib/cjs/src/ContextModuleBuilder.test.js.map +3 -3
  10. package/lib/cjs/src/DefaultContextModule.js +1 -1
  11. package/lib/cjs/src/DefaultContextModule.js.map +3 -3
  12. package/lib/cjs/src/DefaultContextModule.test.js +1 -1
  13. package/lib/cjs/src/DefaultContextModule.test.js.map +3 -3
  14. package/lib/cjs/src/config/di/configModuleFactory.js +1 -1
  15. package/lib/cjs/src/config/di/configModuleFactory.js.map +3 -3
  16. package/lib/cjs/src/config/di/configTypes.js +1 -1
  17. package/lib/cjs/src/config/di/configTypes.js.map +2 -2
  18. package/lib/cjs/src/config/model/ContextModuleBuildArgs.js +2 -0
  19. package/lib/cjs/src/config/model/ContextModuleBuildArgs.js.map +7 -0
  20. package/lib/cjs/src/config/model/ContextModuleConfig.js +1 -1
  21. package/lib/cjs/src/config/model/ContextModuleConfig.js.map +1 -1
  22. package/lib/cjs/src/di.js +1 -1
  23. package/lib/cjs/src/di.js.map +3 -3
  24. package/lib/cjs/src/dynamic-network/data/DynamicNetworkDataSource.js +2 -0
  25. package/lib/cjs/src/dynamic-network/data/DynamicNetworkDataSource.js.map +7 -0
  26. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +2 -0
  27. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +7 -0
  28. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +2 -0
  29. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +7 -0
  30. package/lib/cjs/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js +2 -0
  31. package/lib/cjs/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js.map +7 -0
  32. package/lib/cjs/src/dynamic-network/di/dynamicNetworkModuleFactory.js +2 -0
  33. package/lib/cjs/src/dynamic-network/di/dynamicNetworkModuleFactory.js.map +7 -0
  34. package/lib/cjs/src/dynamic-network/di/dynamicNetworkTypes.js +2 -0
  35. package/lib/cjs/src/dynamic-network/di/dynamicNetworkTypes.js.map +7 -0
  36. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js +2 -0
  37. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +7 -0
  38. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +2 -0
  39. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +7 -0
  40. package/lib/cjs/src/dynamic-network/model/DynamicNetworkConfiguration.js +2 -0
  41. package/lib/cjs/src/dynamic-network/model/DynamicNetworkConfiguration.js.map +7 -0
  42. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  43. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
  44. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  45. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  46. package/lib/cjs/src/external-plugin/di/externalPluginModuleFactory.js +1 -1
  47. package/lib/cjs/src/external-plugin/di/externalPluginModuleFactory.js.map +3 -3
  48. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.js +1 -1
  49. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.js.map +3 -3
  50. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.test.js +1 -1
  51. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.test.js.map +3 -3
  52. package/lib/cjs/src/index.js +1 -1
  53. package/lib/cjs/src/index.js.map +2 -2
  54. package/lib/cjs/src/nft/data/HttpNftDataSource.js +1 -1
  55. package/lib/cjs/src/nft/data/HttpNftDataSource.js.map +3 -3
  56. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js +1 -1
  57. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  58. package/lib/cjs/src/nft/di/nftModuleFactory.js +1 -1
  59. package/lib/cjs/src/nft/di/nftModuleFactory.js.map +3 -3
  60. package/lib/cjs/src/nft/domain/NftContextLoader.js +1 -1
  61. package/lib/cjs/src/nft/domain/NftContextLoader.js.map +3 -3
  62. package/lib/cjs/src/nft/domain/NftContextLoader.test.js +1 -1
  63. package/lib/cjs/src/nft/domain/NftContextLoader.test.js.map +2 -2
  64. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.js +2 -0
  65. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.js.map +7 -0
  66. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.test.js +2 -0
  67. package/lib/cjs/src/pki/data/HttpPkiCertificateDataSource.test.js.map +7 -0
  68. package/lib/cjs/src/pki/data/PkiCertificateDataSource.js +2 -0
  69. package/lib/cjs/src/pki/data/PkiCertificateDataSource.js.map +7 -0
  70. package/lib/cjs/src/pki/data/pkiDataSourceTypes.js +2 -0
  71. package/lib/cjs/src/pki/data/pkiDataSourceTypes.js.map +7 -0
  72. package/lib/cjs/src/pki/di/pkiModuleFactory.js +2 -0
  73. package/lib/cjs/src/pki/di/pkiModuleFactory.js.map +7 -0
  74. package/lib/cjs/src/pki/di/pkiTypes.js +2 -0
  75. package/lib/cjs/src/pki/di/pkiTypes.js.map +7 -0
  76. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.js +2 -0
  77. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.js.map +7 -0
  78. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.test.js +2 -0
  79. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.test.js.map +7 -0
  80. package/lib/cjs/src/pki/domain/PkiCertificateLoader.js +2 -0
  81. package/lib/cjs/src/pki/domain/PkiCertificateLoader.js.map +7 -0
  82. package/lib/cjs/src/pki/model/KeyId.js +2 -0
  83. package/lib/cjs/src/pki/model/KeyId.js.map +7 -0
  84. package/lib/cjs/src/pki/model/KeyUsage.js +2 -0
  85. package/lib/cjs/src/pki/model/KeyUsage.js.map +7 -0
  86. package/lib/cjs/src/pki/model/PkiCertificate.js +2 -0
  87. package/lib/cjs/src/pki/model/PkiCertificate.js.map +7 -0
  88. package/lib/cjs/src/pki/model/PkiCertificateInfo.js +2 -0
  89. package/lib/cjs/src/pki/model/PkiCertificateInfo.js.map +7 -0
  90. package/lib/cjs/src/shared/constant/HttpHeaders.js +2 -0
  91. package/lib/cjs/src/shared/constant/HttpHeaders.js.map +7 -0
  92. package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
  93. package/lib/cjs/src/shared/model/ClearSignContext.js.map +2 -2
  94. package/lib/cjs/src/shared/model/SignatureTags.js +2 -0
  95. package/lib/cjs/src/shared/model/SignatureTags.js.map +7 -0
  96. package/lib/cjs/src/shared/model/SolanaTransactionContext.js +2 -0
  97. package/lib/cjs/src/shared/model/SolanaTransactionContext.js.map +7 -0
  98. package/lib/cjs/src/shared/model/TransactionContext.js +1 -1
  99. package/lib/cjs/src/shared/model/TransactionContext.js.map +1 -1
  100. package/lib/cjs/src/shared/model/TransactionSubset.js +1 -1
  101. package/lib/cjs/src/shared/model/TransactionSubset.js.map +1 -1
  102. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js +1 -1
  103. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js.map +2 -2
  104. package/lib/cjs/src/shared/utils/HexStringUtils.js +1 -1
  105. package/lib/cjs/src/shared/utils/HexStringUtils.js.map +3 -3
  106. package/lib/cjs/src/shared/utils/HexStringUtils.test.js +2 -0
  107. package/lib/cjs/src/shared/utils/HexStringUtils.test.js.map +7 -0
  108. package/lib/cjs/src/shared/utils/KeyUsageMapper.js +2 -0
  109. package/lib/cjs/src/shared/utils/KeyUsageMapper.js.map +7 -0
  110. package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js +2 -0
  111. package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js.map +7 -0
  112. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js +2 -0
  113. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +7 -0
  114. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +2 -0
  115. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +7 -0
  116. package/lib/cjs/src/solana/data/SolanaDataSource.js +2 -0
  117. package/lib/cjs/src/solana/data/SolanaDataSource.js.map +7 -0
  118. package/lib/cjs/src/solana/di/SolanaContextModuleFactory.js +2 -0
  119. package/lib/cjs/src/solana/di/SolanaContextModuleFactory.js.map +7 -0
  120. package/lib/cjs/src/solana/di/solanaContextTypes.js +2 -0
  121. package/lib/cjs/src/solana/di/solanaContextTypes.js.map +7 -0
  122. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js +2 -0
  123. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js.map +7 -0
  124. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js +2 -0
  125. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js.map +7 -0
  126. package/lib/cjs/src/solana/domain/SolanaContextLoader.js +2 -0
  127. package/lib/cjs/src/solana/domain/SolanaContextLoader.js.map +7 -0
  128. package/lib/cjs/src/solana/domain/solanaContextTypes.js +2 -0
  129. package/lib/cjs/src/solana/domain/solanaContextTypes.js.map +7 -0
  130. package/lib/cjs/src/token/data/HttpTokenDataSource.js +1 -1
  131. package/lib/cjs/src/token/data/HttpTokenDataSource.js.map +3 -3
  132. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js +1 -1
  133. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js.map +3 -3
  134. package/lib/cjs/src/token/di/tokenModuleFactory.js +1 -1
  135. package/lib/cjs/src/token/di/tokenModuleFactory.js.map +3 -3
  136. package/lib/cjs/src/token/domain/TokenContextLoader.js +1 -1
  137. package/lib/cjs/src/token/domain/TokenContextLoader.js.map +3 -3
  138. package/lib/cjs/src/token/domain/TokenContextLoader.test.js +1 -1
  139. package/lib/cjs/src/token/domain/TokenContextLoader.test.js.map +2 -2
  140. package/lib/cjs/src/transaction/data/HttpProxyDataSource.js +2 -0
  141. package/lib/cjs/src/transaction/data/HttpProxyDataSource.js.map +7 -0
  142. package/lib/cjs/src/transaction/data/HttpProxyDataSource.test.js +2 -0
  143. package/lib/cjs/src/transaction/data/HttpProxyDataSource.test.js.map +7 -0
  144. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js +1 -1
  145. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js.map +3 -3
  146. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js +1 -1
  147. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js.map +3 -3
  148. package/lib/cjs/src/transaction/data/TransactionDataSource.js +1 -1
  149. package/lib/cjs/src/transaction/data/TransactionDataSource.js.map +1 -1
  150. package/lib/cjs/src/transaction/data/{CalldataDto.js.map → dto/CalldataDto.js.map} +1 -1
  151. package/lib/cjs/src/transaction/data/dto/ProxyDelegateCallDto.js +2 -0
  152. package/lib/cjs/src/transaction/data/dto/ProxyDelegateCallDto.js.map +7 -0
  153. package/lib/cjs/src/transaction/data/dto/ProxyImplementationAddressDto.js +2 -0
  154. package/lib/cjs/src/transaction/data/dto/ProxyImplementationAddressDto.js.map +7 -0
  155. package/lib/cjs/src/transaction/di/transactionModuleFactory.js +1 -1
  156. package/lib/cjs/src/transaction/di/transactionModuleFactory.js.map +3 -3
  157. package/lib/cjs/src/transaction/di/transactionTypes.js +1 -1
  158. package/lib/cjs/src/transaction/di/transactionTypes.js.map +2 -2
  159. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js +1 -1
  160. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js.map +3 -3
  161. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js +1 -1
  162. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js.map +3 -3
  163. package/lib/cjs/src/transaction/model/ProxyDelegateCall.js +2 -0
  164. package/lib/cjs/src/transaction/model/ProxyDelegateCall.js.map +7 -0
  165. package/lib/cjs/src/transaction/model/ProxyImplementationAddress.js +2 -0
  166. package/lib/cjs/src/transaction/model/ProxyImplementationAddress.js.map +7 -0
  167. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  168. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  169. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  170. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  171. package/lib/cjs/src/trusted-name/data/TrustedNameDataSource.js +1 -1
  172. package/lib/cjs/src/trusted-name/data/TrustedNameDataSource.js.map +1 -1
  173. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  174. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  175. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  176. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  177. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  178. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +2 -2
  179. package/lib/cjs/src/typed-data/data/FiltersDto.js +1 -1
  180. package/lib/cjs/src/typed-data/data/FiltersDto.js.map +1 -1
  181. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  182. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  183. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  184. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  185. package/lib/cjs/src/typed-data/di/typedDataModuleFactory.js +1 -1
  186. package/lib/cjs/src/typed-data/di/typedDataModuleFactory.js.map +3 -3
  187. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  188. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  189. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  190. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +2 -2
  191. package/lib/cjs/src/uniswap/constants/plugin.js +2 -0
  192. package/lib/cjs/src/uniswap/constants/plugin.js.map +7 -0
  193. package/lib/cjs/src/uniswap/constants/uniswap.js +2 -0
  194. package/lib/cjs/src/uniswap/constants/uniswap.js.map +7 -0
  195. package/lib/cjs/src/uniswap/constants/weth.js +2 -0
  196. package/lib/cjs/src/uniswap/constants/weth.js.map +7 -0
  197. package/lib/cjs/src/uniswap/data/AbiDecoderDataSource.js +2 -0
  198. package/lib/cjs/src/uniswap/data/AbiDecoderDataSource.js.map +7 -0
  199. package/lib/cjs/src/uniswap/data/CommandDecoderDataSource.js +2 -0
  200. package/lib/cjs/src/uniswap/data/CommandDecoderDataSource.js.map +7 -0
  201. package/lib/cjs/src/uniswap/data/DefaultCommandDecoderDataSource.js +2 -0
  202. package/lib/cjs/src/uniswap/data/DefaultCommandDecoderDataSource.js.map +7 -0
  203. package/lib/cjs/src/uniswap/data/DefaultCommandDecoderDataSource.test.js +2 -0
  204. package/lib/cjs/src/uniswap/data/DefaultCommandDecoderDataSource.test.js.map +7 -0
  205. package/lib/cjs/src/uniswap/data/EthersAbiDecoderDataSource.js +2 -0
  206. package/lib/cjs/src/uniswap/data/EthersAbiDecoderDataSource.js.map +7 -0
  207. package/lib/cjs/src/uniswap/data/EthersAbiDecoderDataSource.test.js +2 -0
  208. package/lib/cjs/src/uniswap/data/EthersAbiDecoderDataSource.test.js.map +7 -0
  209. package/lib/cjs/src/uniswap/di/uniswapModuleFactory.js +2 -0
  210. package/lib/cjs/src/uniswap/di/uniswapModuleFactory.js.map +7 -0
  211. package/lib/cjs/src/uniswap/di/uniswapTypes.js +2 -0
  212. package/lib/cjs/src/uniswap/di/uniswapTypes.js.map +7 -0
  213. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.js +2 -0
  214. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.js.map +7 -0
  215. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.test.js +2 -0
  216. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.test.js.map +7 -0
  217. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js +2 -0
  218. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js.map +7 -0
  219. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js +2 -0
  220. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +7 -0
  221. package/lib/cjs/src/web3-check/data/Web3CheckDataSource.js +2 -0
  222. package/lib/cjs/src/web3-check/data/Web3CheckDataSource.js.map +7 -0
  223. package/lib/cjs/src/web3-check/data/Web3CheckDto.js +2 -0
  224. package/lib/cjs/src/web3-check/data/Web3CheckDto.js.map +7 -0
  225. package/lib/cjs/src/web3-check/di/web3CheckModuleFactory.js +2 -0
  226. package/lib/cjs/src/web3-check/di/web3CheckModuleFactory.js.map +7 -0
  227. package/lib/cjs/src/web3-check/di/web3CheckTypes.js +2 -0
  228. package/lib/cjs/src/web3-check/di/web3CheckTypes.js.map +7 -0
  229. package/lib/cjs/src/web3-check/domain/DefaultWeb3CheckLoader.js +2 -0
  230. package/lib/cjs/src/web3-check/domain/DefaultWeb3CheckLoader.js.map +7 -0
  231. package/lib/cjs/src/web3-check/domain/DefaultWeb3CheckLoader.test.js +2 -0
  232. package/lib/cjs/src/web3-check/domain/DefaultWeb3CheckLoader.test.js.map +7 -0
  233. package/lib/cjs/src/web3-check/domain/Web3CheckContextLoader.js +2 -0
  234. package/lib/cjs/src/web3-check/domain/Web3CheckContextLoader.js.map +7 -0
  235. package/lib/cjs/src/web3-check/domain/web3CheckTypes.js +2 -0
  236. package/lib/cjs/src/web3-check/domain/web3CheckTypes.js.map +7 -0
  237. package/lib/esm/package.json +16 -16
  238. package/lib/esm/src/ContextModuleBuilder.js +1 -1
  239. package/lib/esm/src/ContextModuleBuilder.js.map +3 -3
  240. package/lib/esm/src/ContextModuleBuilder.test.js +1 -1
  241. package/lib/esm/src/ContextModuleBuilder.test.js.map +3 -3
  242. package/lib/esm/src/DefaultContextModule.js +1 -1
  243. package/lib/esm/src/DefaultContextModule.js.map +3 -3
  244. package/lib/esm/src/DefaultContextModule.test.js +1 -1
  245. package/lib/esm/src/DefaultContextModule.test.js.map +3 -3
  246. package/lib/esm/src/config/di/configModuleFactory.js +1 -1
  247. package/lib/esm/src/config/di/configModuleFactory.js.map +3 -3
  248. package/lib/esm/src/config/di/configTypes.js +1 -1
  249. package/lib/esm/src/config/di/configTypes.js.map +2 -2
  250. package/lib/esm/src/config/model/ContextModuleBuildArgs.js +1 -0
  251. package/lib/esm/src/di.js +1 -1
  252. package/lib/esm/src/di.js.map +3 -3
  253. package/lib/esm/src/dynamic-network/data/DynamicNetworkDataSource.js +1 -0
  254. package/lib/esm/src/dynamic-network/data/DynamicNetworkDataSource.js.map +7 -0
  255. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +2 -0
  256. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +7 -0
  257. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +2 -0
  258. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +7 -0
  259. package/lib/esm/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js +1 -0
  260. package/lib/esm/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js.map +7 -0
  261. package/lib/esm/src/dynamic-network/di/dynamicNetworkModuleFactory.js +2 -0
  262. package/lib/esm/src/dynamic-network/di/dynamicNetworkModuleFactory.js.map +7 -0
  263. package/lib/esm/src/dynamic-network/di/dynamicNetworkTypes.js +2 -0
  264. package/lib/esm/src/dynamic-network/di/dynamicNetworkTypes.js.map +7 -0
  265. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js +2 -0
  266. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +7 -0
  267. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +2 -0
  268. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +7 -0
  269. package/lib/esm/src/dynamic-network/model/DynamicNetworkConfiguration.js +1 -0
  270. package/lib/esm/src/dynamic-network/model/DynamicNetworkConfiguration.js.map +7 -0
  271. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  272. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
  273. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  274. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  275. package/lib/esm/src/external-plugin/di/externalPluginModuleFactory.js +1 -1
  276. package/lib/esm/src/external-plugin/di/externalPluginModuleFactory.js.map +3 -3
  277. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.js +1 -1
  278. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.js.map +3 -3
  279. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.test.js +1 -1
  280. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.test.js.map +3 -3
  281. package/lib/esm/src/index.js +1 -1
  282. package/lib/esm/src/index.js.map +2 -2
  283. package/lib/esm/src/nft/data/HttpNftDataSource.js +1 -1
  284. package/lib/esm/src/nft/data/HttpNftDataSource.js.map +3 -3
  285. package/lib/esm/src/nft/data/HttpNftDataSource.test.js +1 -1
  286. package/lib/esm/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  287. package/lib/esm/src/nft/di/nftModuleFactory.js +1 -1
  288. package/lib/esm/src/nft/di/nftModuleFactory.js.map +3 -3
  289. package/lib/esm/src/nft/domain/NftContextLoader.js +1 -1
  290. package/lib/esm/src/nft/domain/NftContextLoader.js.map +3 -3
  291. package/lib/esm/src/nft/domain/NftContextLoader.test.js +1 -1
  292. package/lib/esm/src/nft/domain/NftContextLoader.test.js.map +2 -2
  293. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.js +2 -0
  294. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.js.map +7 -0
  295. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.test.js +2 -0
  296. package/lib/esm/src/pki/data/HttpPkiCertificateDataSource.test.js.map +7 -0
  297. package/lib/esm/src/pki/data/PkiCertificateDataSource.js +1 -0
  298. package/lib/esm/src/pki/data/PkiCertificateDataSource.js.map +7 -0
  299. package/lib/esm/src/pki/data/pkiDataSourceTypes.js +1 -0
  300. package/lib/esm/src/pki/data/pkiDataSourceTypes.js.map +7 -0
  301. package/lib/esm/src/pki/di/pkiModuleFactory.js +2 -0
  302. package/lib/esm/src/pki/di/pkiModuleFactory.js.map +7 -0
  303. package/lib/esm/src/pki/di/pkiTypes.js +2 -0
  304. package/lib/esm/src/pki/di/pkiTypes.js.map +7 -0
  305. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.js +2 -0
  306. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.js.map +7 -0
  307. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.test.js +2 -0
  308. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.test.js.map +7 -0
  309. package/lib/esm/src/pki/domain/PkiCertificateLoader.js +1 -0
  310. package/lib/esm/src/pki/domain/PkiCertificateLoader.js.map +7 -0
  311. package/lib/esm/src/pki/model/KeyId.js +2 -0
  312. package/lib/esm/src/pki/model/KeyId.js.map +7 -0
  313. package/lib/esm/src/pki/model/KeyUsage.js +2 -0
  314. package/lib/esm/src/pki/model/KeyUsage.js.map +7 -0
  315. package/lib/esm/src/pki/model/PkiCertificate.js +1 -0
  316. package/lib/esm/src/pki/model/PkiCertificate.js.map +7 -0
  317. package/lib/esm/src/pki/model/PkiCertificateInfo.js +1 -0
  318. package/lib/esm/src/pki/model/PkiCertificateInfo.js.map +7 -0
  319. package/lib/esm/src/shared/constant/HttpHeaders.js +2 -0
  320. package/lib/esm/src/shared/constant/HttpHeaders.js.map +7 -0
  321. package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
  322. package/lib/esm/src/shared/model/ClearSignContext.js.map +2 -2
  323. package/lib/esm/src/shared/model/SignatureTags.js +2 -0
  324. package/lib/esm/src/shared/model/SignatureTags.js.map +7 -0
  325. package/lib/esm/src/shared/model/SolanaTransactionContext.js +1 -0
  326. package/lib/esm/src/shared/model/SolanaTransactionContext.js.map +7 -0
  327. package/lib/esm/src/shared/model/TypedDataClearSignContext.js.map +2 -2
  328. package/lib/esm/src/shared/utils/HexStringUtils.js +1 -1
  329. package/lib/esm/src/shared/utils/HexStringUtils.js.map +3 -3
  330. package/lib/esm/src/shared/utils/HexStringUtils.test.js +2 -0
  331. package/lib/esm/src/shared/utils/HexStringUtils.test.js.map +7 -0
  332. package/lib/esm/src/shared/utils/KeyUsageMapper.js +2 -0
  333. package/lib/esm/src/shared/utils/KeyUsageMapper.js.map +7 -0
  334. package/lib/esm/src/shared/utils/KeyUsageMapper.test.js +2 -0
  335. package/lib/esm/src/shared/utils/KeyUsageMapper.test.js.map +7 -0
  336. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js +2 -0
  337. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +7 -0
  338. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +2 -0
  339. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +7 -0
  340. package/lib/esm/src/solana/data/SolanaDataSource.js +1 -0
  341. package/lib/esm/src/solana/data/SolanaDataSource.js.map +7 -0
  342. package/lib/esm/src/solana/di/SolanaContextModuleFactory.js +2 -0
  343. package/lib/esm/src/solana/di/SolanaContextModuleFactory.js.map +7 -0
  344. package/lib/esm/src/solana/di/solanaContextTypes.js +2 -0
  345. package/lib/esm/src/solana/di/solanaContextTypes.js.map +7 -0
  346. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js +2 -0
  347. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js.map +7 -0
  348. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js +2 -0
  349. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js.map +7 -0
  350. package/lib/esm/src/solana/domain/SolanaContextLoader.js +1 -0
  351. package/lib/esm/src/solana/domain/SolanaContextLoader.js.map +7 -0
  352. package/lib/esm/src/solana/domain/solanaContextTypes.js +1 -0
  353. package/lib/esm/src/solana/domain/solanaContextTypes.js.map +7 -0
  354. package/lib/esm/src/token/data/HttpTokenDataSource.js +1 -1
  355. package/lib/esm/src/token/data/HttpTokenDataSource.js.map +3 -3
  356. package/lib/esm/src/token/data/HttpTokenDataSource.test.js +1 -1
  357. package/lib/esm/src/token/data/HttpTokenDataSource.test.js.map +3 -3
  358. package/lib/esm/src/token/di/tokenModuleFactory.js +1 -1
  359. package/lib/esm/src/token/di/tokenModuleFactory.js.map +3 -3
  360. package/lib/esm/src/token/domain/TokenContextLoader.js +1 -1
  361. package/lib/esm/src/token/domain/TokenContextLoader.js.map +3 -3
  362. package/lib/esm/src/token/domain/TokenContextLoader.test.js +1 -1
  363. package/lib/esm/src/token/domain/TokenContextLoader.test.js.map +2 -2
  364. package/lib/esm/src/transaction/data/HttpProxyDataSource.js +2 -0
  365. package/lib/esm/src/transaction/data/HttpProxyDataSource.js.map +7 -0
  366. package/lib/esm/src/transaction/data/HttpProxyDataSource.test.js +2 -0
  367. package/lib/esm/src/transaction/data/HttpProxyDataSource.test.js.map +7 -0
  368. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js +1 -1
  369. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js.map +3 -3
  370. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js +1 -1
  371. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js.map +3 -3
  372. package/lib/esm/src/transaction/data/dto/CalldataDto.js.map +7 -0
  373. package/lib/esm/src/transaction/data/dto/ProxyDelegateCallDto.js +1 -0
  374. package/lib/esm/src/transaction/data/dto/ProxyDelegateCallDto.js.map +7 -0
  375. package/lib/esm/src/transaction/data/dto/ProxyImplementationAddressDto.js +1 -0
  376. package/lib/esm/src/transaction/data/dto/ProxyImplementationAddressDto.js.map +7 -0
  377. package/lib/esm/src/transaction/di/transactionModuleFactory.js +1 -1
  378. package/lib/esm/src/transaction/di/transactionModuleFactory.js.map +3 -3
  379. package/lib/esm/src/transaction/di/transactionTypes.js +1 -1
  380. package/lib/esm/src/transaction/di/transactionTypes.js.map +2 -2
  381. package/lib/esm/src/transaction/domain/TransactionContextLoader.js +1 -1
  382. package/lib/esm/src/transaction/domain/TransactionContextLoader.js.map +3 -3
  383. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js +1 -1
  384. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js.map +3 -3
  385. package/lib/esm/src/transaction/model/ProxyDelegateCall.js +1 -0
  386. package/lib/esm/src/transaction/model/ProxyDelegateCall.js.map +7 -0
  387. package/lib/esm/src/transaction/model/ProxyImplementationAddress.js +1 -0
  388. package/lib/esm/src/transaction/model/ProxyImplementationAddress.js.map +7 -0
  389. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  390. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  391. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  392. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  393. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  394. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  395. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  396. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  397. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  398. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +2 -2
  399. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  400. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  401. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  402. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  403. package/lib/esm/src/typed-data/di/typedDataModuleFactory.js +1 -1
  404. package/lib/esm/src/typed-data/di/typedDataModuleFactory.js.map +3 -3
  405. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  406. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  407. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  408. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +2 -2
  409. package/lib/esm/src/uniswap/constants/plugin.js +2 -0
  410. package/lib/esm/src/uniswap/constants/plugin.js.map +7 -0
  411. package/lib/esm/src/uniswap/constants/uniswap.js +2 -0
  412. package/lib/esm/src/uniswap/constants/uniswap.js.map +7 -0
  413. package/lib/esm/src/uniswap/constants/weth.js +2 -0
  414. package/lib/esm/src/uniswap/constants/weth.js.map +7 -0
  415. package/lib/esm/src/uniswap/data/AbiDecoderDataSource.js +1 -0
  416. package/lib/esm/src/uniswap/data/AbiDecoderDataSource.js.map +7 -0
  417. package/lib/esm/src/uniswap/data/CommandDecoderDataSource.js +1 -0
  418. package/lib/esm/src/uniswap/data/CommandDecoderDataSource.js.map +7 -0
  419. package/lib/esm/src/uniswap/data/DefaultCommandDecoderDataSource.js +2 -0
  420. package/lib/esm/src/uniswap/data/DefaultCommandDecoderDataSource.js.map +7 -0
  421. package/lib/esm/src/uniswap/data/DefaultCommandDecoderDataSource.test.js +2 -0
  422. package/lib/esm/src/uniswap/data/DefaultCommandDecoderDataSource.test.js.map +7 -0
  423. package/lib/esm/src/uniswap/data/EthersAbiDecoderDataSource.js +2 -0
  424. package/lib/esm/src/uniswap/data/EthersAbiDecoderDataSource.js.map +7 -0
  425. package/lib/esm/src/uniswap/data/EthersAbiDecoderDataSource.test.js +2 -0
  426. package/lib/esm/src/uniswap/data/EthersAbiDecoderDataSource.test.js.map +7 -0
  427. package/lib/esm/src/uniswap/di/uniswapModuleFactory.js +2 -0
  428. package/lib/esm/src/uniswap/di/uniswapModuleFactory.js.map +7 -0
  429. package/lib/esm/src/uniswap/di/uniswapTypes.js +2 -0
  430. package/lib/esm/src/uniswap/di/uniswapTypes.js.map +7 -0
  431. package/lib/esm/src/uniswap/domain/UniswapContextLoader.js +2 -0
  432. package/lib/esm/src/uniswap/domain/UniswapContextLoader.js.map +7 -0
  433. package/lib/esm/src/uniswap/domain/UniswapContextLoader.test.js +2 -0
  434. package/lib/esm/src/uniswap/domain/UniswapContextLoader.test.js.map +7 -0
  435. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js +2 -0
  436. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js.map +7 -0
  437. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js +2 -0
  438. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +7 -0
  439. package/lib/esm/src/web3-check/data/Web3CheckDataSource.js +1 -0
  440. package/lib/esm/src/web3-check/data/Web3CheckDataSource.js.map +7 -0
  441. package/lib/esm/src/web3-check/data/Web3CheckDto.js +1 -0
  442. package/lib/esm/src/web3-check/data/Web3CheckDto.js.map +7 -0
  443. package/lib/esm/src/web3-check/di/web3CheckModuleFactory.js +2 -0
  444. package/lib/esm/src/web3-check/di/web3CheckModuleFactory.js.map +7 -0
  445. package/lib/esm/src/web3-check/di/web3CheckTypes.js +2 -0
  446. package/lib/esm/src/web3-check/di/web3CheckTypes.js.map +7 -0
  447. package/lib/esm/src/web3-check/domain/DefaultWeb3CheckLoader.js +2 -0
  448. package/lib/esm/src/web3-check/domain/DefaultWeb3CheckLoader.js.map +7 -0
  449. package/lib/esm/src/web3-check/domain/DefaultWeb3CheckLoader.test.js +2 -0
  450. package/lib/esm/src/web3-check/domain/DefaultWeb3CheckLoader.test.js.map +7 -0
  451. package/lib/esm/src/web3-check/domain/Web3CheckContextLoader.js +1 -0
  452. package/lib/esm/src/web3-check/domain/Web3CheckContextLoader.js.map +7 -0
  453. package/lib/esm/src/web3-check/domain/web3CheckTypes.js +1 -0
  454. package/lib/esm/src/web3-check/domain/web3CheckTypes.js.map +7 -0
  455. package/lib/types/src/ContextModule.d.ts +5 -0
  456. package/lib/types/src/ContextModule.d.ts.map +1 -1
  457. package/lib/types/src/ContextModuleBuilder.d.ts +36 -3
  458. package/lib/types/src/ContextModuleBuilder.d.ts.map +1 -1
  459. package/lib/types/src/DefaultContextModule.d.ts +10 -1
  460. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  461. package/lib/types/src/config/di/configModuleFactory.d.ts.map +1 -1
  462. package/lib/types/src/config/di/configTypes.d.ts +1 -0
  463. package/lib/types/src/config/di/configTypes.d.ts.map +1 -1
  464. package/lib/types/src/config/model/ContextModuleBuildArgs.d.ts +4 -0
  465. package/lib/types/src/config/model/ContextModuleBuildArgs.d.ts.map +1 -0
  466. package/lib/types/src/config/model/ContextModuleConfig.d.ts +13 -0
  467. package/lib/types/src/config/model/ContextModuleConfig.d.ts.map +1 -1
  468. package/lib/types/src/di.d.ts.map +1 -1
  469. package/lib/types/src/dynamic-network/data/DynamicNetworkDataSource.d.ts +6 -0
  470. package/lib/types/src/dynamic-network/data/DynamicNetworkDataSource.d.ts.map +1 -0
  471. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts +13 -0
  472. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts.map +1 -0
  473. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.d.ts +2 -0
  474. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.d.ts.map +1 -0
  475. package/lib/types/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.d.ts +14 -0
  476. package/lib/types/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.d.ts.map +1 -0
  477. package/lib/types/src/dynamic-network/di/dynamicNetworkModuleFactory.d.ts +3 -0
  478. package/lib/types/src/dynamic-network/di/dynamicNetworkModuleFactory.d.ts.map +1 -0
  479. package/lib/types/src/dynamic-network/di/dynamicNetworkTypes.d.ts +5 -0
  480. package/lib/types/src/dynamic-network/di/dynamicNetworkTypes.d.ts.map +1 -0
  481. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts +15 -0
  482. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts.map +1 -0
  483. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.test.d.ts +2 -0
  484. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.test.d.ts.map +1 -0
  485. package/lib/types/src/dynamic-network/model/DynamicNetworkConfiguration.d.ts +16 -0
  486. package/lib/types/src/dynamic-network/model/DynamicNetworkConfiguration.d.ts.map +1 -0
  487. package/lib/types/src/external-plugin/data/HttpExternalPluginDataSource.d.ts.map +1 -1
  488. package/lib/types/src/external-plugin/domain/ExternalPluginContextLoader.d.ts +1 -1
  489. package/lib/types/src/external-plugin/domain/ExternalPluginContextLoader.d.ts.map +1 -1
  490. package/lib/types/src/index.d.ts +9 -0
  491. package/lib/types/src/index.d.ts.map +1 -1
  492. package/lib/types/src/nft/data/HttpNftDataSource.d.ts +3 -0
  493. package/lib/types/src/nft/data/HttpNftDataSource.d.ts.map +1 -1
  494. package/lib/types/src/nft/domain/NftContextLoader.d.ts +1 -1
  495. package/lib/types/src/nft/domain/NftContextLoader.d.ts.map +1 -1
  496. package/lib/types/src/pki/data/HttpPkiCertificateDataSource.d.ts +12 -0
  497. package/lib/types/src/pki/data/HttpPkiCertificateDataSource.d.ts.map +1 -0
  498. package/lib/types/src/pki/data/HttpPkiCertificateDataSource.test.d.ts +2 -0
  499. package/lib/types/src/pki/data/HttpPkiCertificateDataSource.test.d.ts.map +1 -0
  500. package/lib/types/src/pki/data/PkiCertificateDataSource.d.ts +7 -0
  501. package/lib/types/src/pki/data/PkiCertificateDataSource.d.ts.map +1 -0
  502. package/lib/types/src/pki/data/pkiDataSourceTypes.d.ts +23 -0
  503. package/lib/types/src/pki/data/pkiDataSourceTypes.d.ts.map +1 -0
  504. package/lib/types/src/pki/di/pkiModuleFactory.d.ts +3 -0
  505. package/lib/types/src/pki/di/pkiModuleFactory.d.ts.map +1 -0
  506. package/lib/types/src/pki/di/pkiTypes.d.ts +5 -0
  507. package/lib/types/src/pki/di/pkiTypes.d.ts.map +1 -0
  508. package/lib/types/src/pki/domain/DefaultPkiCertificateLoader.d.ts +10 -0
  509. package/lib/types/src/pki/domain/DefaultPkiCertificateLoader.d.ts.map +1 -0
  510. package/lib/types/src/pki/domain/DefaultPkiCertificateLoader.test.d.ts +2 -0
  511. package/lib/types/src/pki/domain/DefaultPkiCertificateLoader.test.d.ts.map +1 -0
  512. package/lib/types/src/pki/domain/PkiCertificateLoader.d.ts +6 -0
  513. package/lib/types/src/pki/domain/PkiCertificateLoader.d.ts.map +1 -0
  514. package/lib/types/src/pki/model/KeyId.d.ts +14 -0
  515. package/lib/types/src/pki/model/KeyId.d.ts.map +1 -0
  516. package/lib/types/src/pki/model/KeyUsage.d.ts +15 -0
  517. package/lib/types/src/pki/model/KeyUsage.d.ts.map +1 -0
  518. package/lib/types/src/pki/model/PkiCertificate.d.ts +5 -0
  519. package/lib/types/src/pki/model/PkiCertificate.d.ts.map +1 -0
  520. package/lib/types/src/pki/model/PkiCertificateInfo.d.ts +7 -0
  521. package/lib/types/src/pki/model/PkiCertificateInfo.d.ts.map +1 -0
  522. package/lib/types/src/shared/constant/HttpHeaders.d.ts +3 -0
  523. package/lib/types/src/shared/constant/HttpHeaders.d.ts.map +1 -0
  524. package/lib/types/src/shared/model/ClearSignContext.d.ts +7 -0
  525. package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
  526. package/lib/types/src/shared/model/SignatureTags.d.ts +3 -0
  527. package/lib/types/src/shared/model/SignatureTags.d.ts.map +1 -0
  528. package/lib/types/src/shared/model/SolanaTransactionContext.d.ts +11 -0
  529. package/lib/types/src/shared/model/SolanaTransactionContext.d.ts.map +1 -0
  530. package/lib/types/src/shared/model/TransactionContext.d.ts +2 -0
  531. package/lib/types/src/shared/model/TransactionContext.d.ts.map +1 -1
  532. package/lib/types/src/shared/model/TransactionSubset.d.ts +3 -1
  533. package/lib/types/src/shared/model/TransactionSubset.d.ts.map +1 -1
  534. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts +17 -5
  535. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts.map +1 -1
  536. package/lib/types/src/shared/utils/HexStringUtils.d.ts +1 -0
  537. package/lib/types/src/shared/utils/HexStringUtils.d.ts.map +1 -1
  538. package/lib/types/src/shared/utils/HexStringUtils.test.d.ts +2 -0
  539. package/lib/types/src/shared/utils/HexStringUtils.test.d.ts.map +1 -0
  540. package/lib/types/src/shared/utils/KeyUsageMapper.d.ts +6 -0
  541. package/lib/types/src/shared/utils/KeyUsageMapper.d.ts.map +1 -0
  542. package/lib/types/src/shared/utils/KeyUsageMapper.test.d.ts +2 -0
  543. package/lib/types/src/shared/utils/KeyUsageMapper.test.d.ts.map +1 -0
  544. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts +13 -0
  545. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts.map +1 -0
  546. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.test.d.ts +2 -0
  547. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.test.d.ts.map +1 -0
  548. package/lib/types/src/solana/data/SolanaDataSource.d.ts +12 -0
  549. package/lib/types/src/solana/data/SolanaDataSource.d.ts.map +1 -0
  550. package/lib/types/src/solana/di/SolanaContextModuleFactory.d.ts +3 -0
  551. package/lib/types/src/solana/di/SolanaContextModuleFactory.d.ts.map +1 -0
  552. package/lib/types/src/solana/di/solanaContextTypes.d.ts +5 -0
  553. package/lib/types/src/solana/di/solanaContextTypes.d.ts.map +1 -0
  554. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts +11 -0
  555. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts.map +1 -0
  556. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.test.d.ts +2 -0
  557. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.test.d.ts.map +1 -0
  558. package/lib/types/src/solana/domain/SolanaContextLoader.d.ts +5 -0
  559. package/lib/types/src/solana/domain/SolanaContextLoader.d.ts.map +1 -0
  560. package/lib/types/src/solana/domain/solanaContextTypes.d.ts +27 -0
  561. package/lib/types/src/solana/domain/solanaContextTypes.d.ts.map +1 -0
  562. package/lib/types/src/token/data/HttpTokenDataSource.d.ts.map +1 -1
  563. package/lib/types/src/token/domain/TokenContextLoader.d.ts +1 -1
  564. package/lib/types/src/token/domain/TokenContextLoader.d.ts.map +1 -1
  565. package/lib/types/src/transaction/data/HttpProxyDataSource.d.ts +33 -0
  566. package/lib/types/src/transaction/data/HttpProxyDataSource.d.ts.map +1 -0
  567. package/lib/types/src/transaction/data/HttpProxyDataSource.test.d.ts +2 -0
  568. package/lib/types/src/transaction/data/HttpProxyDataSource.test.d.ts.map +1 -0
  569. package/lib/types/src/transaction/data/HttpTransactionDataSource.d.ts +4 -3
  570. package/lib/types/src/transaction/data/HttpTransactionDataSource.d.ts.map +1 -1
  571. package/lib/types/src/transaction/data/TransactionDataSource.d.ts +2 -1
  572. package/lib/types/src/transaction/data/TransactionDataSource.d.ts.map +1 -1
  573. package/lib/types/src/transaction/data/dto/CalldataDto.d.ts.map +1 -0
  574. package/lib/types/src/transaction/data/dto/ProxyDelegateCallDto.d.ts +5 -0
  575. package/lib/types/src/transaction/data/dto/ProxyDelegateCallDto.d.ts.map +1 -0
  576. package/lib/types/src/transaction/data/dto/ProxyImplementationAddressDto.d.ts +6 -0
  577. package/lib/types/src/transaction/data/dto/ProxyImplementationAddressDto.d.ts.map +1 -0
  578. package/lib/types/src/transaction/di/transactionModuleFactory.d.ts.map +1 -1
  579. package/lib/types/src/transaction/di/transactionTypes.d.ts +1 -0
  580. package/lib/types/src/transaction/di/transactionTypes.d.ts.map +1 -1
  581. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts +4 -2
  582. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts.map +1 -1
  583. package/lib/types/src/transaction/model/ProxyDelegateCall.d.ts +5 -0
  584. package/lib/types/src/transaction/model/ProxyDelegateCall.d.ts.map +1 -0
  585. package/lib/types/src/transaction/model/ProxyImplementationAddress.d.ts +4 -0
  586. package/lib/types/src/transaction/model/ProxyImplementationAddress.d.ts.map +1 -0
  587. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts +2 -2
  588. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts.map +1 -1
  589. package/lib/types/src/trusted-name/data/TrustedNameDataSource.d.ts +2 -0
  590. package/lib/types/src/trusted-name/data/TrustedNameDataSource.d.ts.map +1 -1
  591. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts +1 -1
  592. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts.map +1 -1
  593. package/lib/types/src/typed-data/data/FiltersDto.d.ts +17 -1
  594. package/lib/types/src/typed-data/data/FiltersDto.d.ts.map +1 -1
  595. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts +2 -0
  596. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
  597. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts.map +1 -1
  598. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts.map +1 -1
  599. package/lib/types/src/uniswap/constants/plugin.d.ts +3 -0
  600. package/lib/types/src/uniswap/constants/plugin.d.ts.map +1 -0
  601. package/lib/types/src/uniswap/constants/uniswap.d.ts +21 -0
  602. package/lib/types/src/uniswap/constants/uniswap.d.ts.map +1 -0
  603. package/lib/types/src/uniswap/constants/weth.d.ts +20 -0
  604. package/lib/types/src/uniswap/constants/weth.d.ts.map +1 -0
  605. package/lib/types/src/uniswap/data/AbiDecoderDataSource.d.ts +5 -0
  606. package/lib/types/src/uniswap/data/AbiDecoderDataSource.d.ts.map +1 -0
  607. package/lib/types/src/uniswap/data/CommandDecoderDataSource.d.ts +6 -0
  608. package/lib/types/src/uniswap/data/CommandDecoderDataSource.d.ts.map +1 -0
  609. package/lib/types/src/uniswap/data/DefaultCommandDecoderDataSource.d.ts +14 -0
  610. package/lib/types/src/uniswap/data/DefaultCommandDecoderDataSource.d.ts.map +1 -0
  611. package/lib/types/src/uniswap/data/DefaultCommandDecoderDataSource.test.d.ts +2 -0
  612. package/lib/types/src/uniswap/data/DefaultCommandDecoderDataSource.test.d.ts.map +1 -0
  613. package/lib/types/src/uniswap/data/EthersAbiDecoderDataSource.d.ts +5 -0
  614. package/lib/types/src/uniswap/data/EthersAbiDecoderDataSource.d.ts.map +1 -0
  615. package/lib/types/src/uniswap/data/EthersAbiDecoderDataSource.test.d.ts +2 -0
  616. package/lib/types/src/uniswap/data/EthersAbiDecoderDataSource.test.d.ts.map +1 -0
  617. package/lib/types/src/uniswap/di/uniswapModuleFactory.d.ts +3 -0
  618. package/lib/types/src/uniswap/di/uniswapModuleFactory.d.ts.map +1 -0
  619. package/lib/types/src/uniswap/di/uniswapTypes.d.ts +6 -0
  620. package/lib/types/src/uniswap/di/uniswapTypes.d.ts.map +1 -0
  621. package/lib/types/src/uniswap/domain/UniswapContextLoader.d.ts +105 -0
  622. package/lib/types/src/uniswap/domain/UniswapContextLoader.d.ts.map +1 -0
  623. package/lib/types/src/uniswap/domain/UniswapContextLoader.test.d.ts +2 -0
  624. package/lib/types/src/uniswap/domain/UniswapContextLoader.test.d.ts.map +1 -0
  625. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.d.ts +14 -0
  626. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.d.ts.map +1 -0
  627. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.test.d.ts +2 -0
  628. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.test.d.ts.map +1 -0
  629. package/lib/types/src/web3-check/data/Web3CheckDataSource.d.ts +6 -0
  630. package/lib/types/src/web3-check/data/Web3CheckDataSource.d.ts.map +1 -0
  631. package/lib/types/src/web3-check/data/Web3CheckDto.d.ts +20 -0
  632. package/lib/types/src/web3-check/data/Web3CheckDto.d.ts.map +1 -0
  633. package/lib/types/src/web3-check/di/web3CheckModuleFactory.d.ts +3 -0
  634. package/lib/types/src/web3-check/di/web3CheckModuleFactory.d.ts.map +1 -0
  635. package/lib/types/src/web3-check/di/web3CheckTypes.d.ts +5 -0
  636. package/lib/types/src/web3-check/di/web3CheckTypes.d.ts.map +1 -0
  637. package/lib/types/src/web3-check/domain/DefaultWeb3CheckLoader.d.ts +10 -0
  638. package/lib/types/src/web3-check/domain/DefaultWeb3CheckLoader.d.ts.map +1 -0
  639. package/lib/types/src/web3-check/domain/DefaultWeb3CheckLoader.test.d.ts +2 -0
  640. package/lib/types/src/web3-check/domain/DefaultWeb3CheckLoader.test.d.ts.map +1 -0
  641. package/lib/types/src/web3-check/domain/Web3CheckContextLoader.d.ts +6 -0
  642. package/lib/types/src/web3-check/domain/Web3CheckContextLoader.d.ts.map +1 -0
  643. package/lib/types/src/web3-check/domain/web3CheckTypes.d.ts +35 -0
  644. package/lib/types/src/web3-check/domain/web3CheckTypes.d.ts.map +1 -0
  645. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  646. package/package.json +18 -18
  647. package/lib/types/src/transaction/data/CalldataDto.d.ts.map +0 -1
  648. /package/lib/cjs/src/transaction/data/{CalldataDto.js → dto/CalldataDto.js} +0 -0
  649. /package/lib/esm/src/{transaction/data/CalldataDto.js.map → config/model/ContextModuleBuildArgs.js.map} +0 -0
  650. /package/lib/esm/src/transaction/data/{CalldataDto.js → dto/CalldataDto.js} +0 -0
  651. /package/lib/types/src/transaction/data/{CalldataDto.d.ts → dto/CalldataDto.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/typed-data/data/FiltersDto.ts"],
4
- "sourcesContent": ["export type InstructionSignatures =\n | {\n prod: string;\n test?: string;\n }\n | {\n prod?: string;\n test: string;\n };\n\nexport type InstructionFieldV1 = {\n display_name: string;\n field_mappers_count?: never;\n field_path: string;\n signatures: InstructionSignatures;\n type: \"field\" | \"message\";\n format?: never;\n};\n\nexport type InstructionFieldV2 = {\n display_name: string;\n field_mappers_count?: never;\n field_path: string;\n descriptor: string;\n signatures: InstructionSignatures;\n format: \"raw\" | \"datetime\";\n coin_ref?: never;\n type: \"field\" | \"message\";\n};\n\nexport type InstructionFieldV2WithCoinRef = {\n display_name: string;\n field_mappers_count?: never;\n format: \"token\" | \"amount\";\n field_path: string;\n coin_ref: number;\n descriptor: string;\n signatures: InstructionSignatures;\n type: \"field\";\n};\n\nexport type InstructionContractInfo = {\n display_name: string;\n field_mappers_count: number;\n field_path?: never;\n descriptor: string;\n signatures: InstructionSignatures;\n type: \"message\";\n};\n\nexport type InstructionField =\n | InstructionFieldV1\n | InstructionFieldV2\n | InstructionFieldV2WithCoinRef\n | InstructionContractInfo;\n\nexport type FiltersDto = {\n descriptors_eip712: {\n [contractAddress: string]: {\n [schemaHash: string]: {\n schema: Record<string, { name: string; type: string }[]>;\n instructions: InstructionField[];\n };\n };\n };\n};\n"],
4
+ "sourcesContent": ["export type InstructionSignatures =\n | {\n prod: string;\n test?: string;\n }\n | {\n prod?: string;\n test: string;\n };\n\nexport type InstructionFieldV1 = {\n display_name: string;\n field_mappers_count?: never;\n field_path: string;\n signatures: InstructionSignatures;\n type: \"field\" | \"message\";\n format?: never;\n};\n\nexport type InstructionFieldV2 = {\n display_name: string;\n field_mappers_count?: never;\n field_path: string;\n descriptor: string;\n signatures: InstructionSignatures;\n format: \"raw\" | \"datetime\";\n coin_ref?: never;\n name_types?: never;\n name_sources?: never;\n type: \"field\" | \"message\";\n};\n\nexport type InstructionFieldV2WithCoinRef = {\n display_name: string;\n field_mappers_count?: never;\n format: \"token\" | \"amount\";\n field_path: string;\n coin_ref: number;\n name_types?: never;\n name_sources?: never;\n descriptor: string;\n signatures: InstructionSignatures;\n type: \"field\";\n};\n\nexport type InstructionFieldV2WithName = {\n display_name: string;\n field_mappers_count?: never;\n format: \"trusted-name\";\n field_path: string;\n coin_ref?: never;\n name_types: string[];\n name_sources: string[];\n descriptor: string;\n signatures: InstructionSignatures;\n type: \"field\";\n};\n\nexport type InstructionContractInfo = {\n display_name: string;\n field_mappers_count: number;\n field_path?: never;\n descriptor: string;\n signatures: InstructionSignatures;\n type: \"message\";\n};\n\nexport type InstructionField =\n | InstructionFieldV1\n | InstructionFieldV2\n | InstructionFieldV2WithCoinRef\n | InstructionFieldV2WithName\n | InstructionContractInfo;\n\nexport type FiltersDto = {\n descriptors_eip712: {\n [contractAddress: string]: {\n [schemaHash: string]: {\n schema: Record<string, { name: string; type: string }[]>;\n instructions: InstructionField[];\n };\n };\n };\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["FiltersDto_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var x=Object.create;var f=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var V=(o,e)=>{for(var t in e)f(o,t,{get:e[t],enumerable:!0})},h=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of T(e))!$.call(o,i)&&i!==t&&f(o,i,{get:()=>e[i],enumerable:!(r=g(e,i))||r.enumerable});return o};var y=(o,e,t)=>(t=o!=null?x(b(o)):{},h(e||!o||!o.__esModule?f(t,"default",{value:o,enumerable:!0}):t,o)),j=o=>h(f({},"__esModule",{value:!0}),o),C=(o,e,t,r)=>{for(var i=r>1?void 0:r?g(e,t):e,a=o.length-1,p;a>=0;a--)(p=o[a])&&(i=(r?p(e,t,i):p(i))||i);return r&&i&&f(e,t,i),i},_=(o,e)=>(t,r)=>e(t,r,o);var E={};V(E,{HttpTypedDataDataSource:()=>c});module.exports=j(E);var F=y(require("axios")),M=y(require("crypto-js/sha224")),m=require("inversify"),s=require("purify-ts"),D=require("../../config/di/configTypes"),I=y(require("../../../package.json"));let c=class{constructor(e){this.config=e}async getTypedDataFilters({chainId:e,address:t,schema:r,version:i}){let a;try{const p=await F.default.request({method:"GET",url:`${this.config.cal.url}/dapps`,params:{contracts:t,chain_id:e,output:"descriptors_eip712",descriptors_eip712_version:i,descriptors_eip712:"<set>",ref:`branch:${this.config.cal.branch}`},headers:{"X-Ledger-Client-Version":`context-module/${I.default.version}`}}),l=(0,M.default)(JSON.stringify(this.sortTypes(r)).replace(" ","")).toString();t=t.toLowerCase();const d=p.data?.[0]?.descriptors_eip712?.[t]?.[l];if(!d)return(0,s.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no typed data filters for address ${t} on chain ${e} for schema ${l}`));if(!d.schema||!Array.isArray(d.instructions))return(0,s.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no message info for address ${t} on chain ${e} for schema ${l}`));const u=[];for(const n of d.instructions)if(this.isInstructionContractInfo(n,this.config.cal.mode))a={displayName:n.display_name,signature:n.signatures[this.config.cal.mode],filtersCount:n.field_mappers_count};else if(i==="v1"&&this.isInstructionFieldV1(n,this.config.cal.mode))u.push({type:"raw",displayName:n.display_name,path:n.field_path,signature:n.signatures[this.config.cal.mode]});else if(this.isInstructionFieldV2(n,this.config.cal.mode))u.push({type:n.format,displayName:n.display_name,path:n.field_path,signature:n.signatures[this.config.cal.mode]});else if(this.isInstructionFieldV2WithCoinRef(n,this.config.cal.mode))u.push({type:n.format,displayName:n.display_name,path:n.field_path,signature:n.signatures[this.config.cal.mode],tokenIndex:n.coin_ref});else return(0,s.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: invalid typed data field for address ${t} on chain ${e} for schema ${l}`));return a?(0,s.Right)({messageInfo:a,filters:u}):(0,s.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no message info for address ${t} on chain ${e} for schema ${l}`))}catch{return(0,s.Left)(new Error("[ContextModule] HttpTypedDataDataSource: Failed to fetch typed data informations"))}}isInstructionFieldV1(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"}isInstructionFieldV2(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"&&typeof e.format=="string"&&["raw","datetime"].includes(e.format)&&e.coin_ref===void 0}isInstructionFieldV2WithCoinRef(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"&&typeof e.format=="string"&&["token","amount"].includes(e.format)&&typeof e.coin_ref=="number"}isInstructionContractInfo(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_mappers_count=="number"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"&&e.field_path===void 0}sortTypes(e){return Object.fromEntries(Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>[t,r.map(i=>({name:i.name,type:i.type}))]))}};c=C([(0,m.injectable)(),_(0,(0,m.inject)(D.configTypes.Config))],c);0&&(module.exports={HttpTypedDataDataSource});
1
+ "use strict";var x=Object.create;var u=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var V=(r,e)=>{for(var t in e)u(r,t,{get:e[t],enumerable:!0})},C=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of E(e))!b.call(r,n)&&n!==t&&u(r,n,{get:()=>e[n],enumerable:!(i=h(e,n))||i.enumerable});return r};var g=(r,e,t)=>(t=r!=null?x(S(r)):{},C(e||!r||!r.__esModule?u(t,"default",{value:r,enumerable:!0}):t,r)),N=r=>C(u({},"__esModule",{value:!0}),r),_=(r,e,t,i)=>{for(var n=i>1?void 0:i?h(e,t):e,s=r.length-1,a;s>=0;s--)(a=r[s])&&(n=(i?a(e,t,n):a(n))||n);return i&&n&&u(e,t,n),n},I=(r,e)=>(t,i)=>e(t,i,r);var $={};V($,{HttpTypedDataDataSource:()=>f});module.exports=N($);var F=g(require("axios")),M=g(require("crypto-js/sha224")),m=require("inversify"),p=require("purify-ts"),D=require("../../config/di/configTypes"),y=require("../../shared/constant/HttpHeaders"),T=g(require("../../../package.json"));let f=class{constructor(e){this.config=e}async getTypedDataFilters({chainId:e,address:t,schema:i,version:n}){let s;try{const a=await F.default.request({method:"GET",url:`${this.config.cal.url}/dapps`,params:{contracts:t,chain_id:e,output:"descriptors_eip712",descriptors_eip712_version:n,descriptors_eip712:"<set>",ref:`branch:${this.config.cal.branch}`},headers:{[y.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${T.default.version}`,[y.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken}}),c=(0,M.default)(JSON.stringify(this.sortTypes(i)).replace(" ","")).toString();t=t.toLowerCase();const d=a.data?.[0]?.descriptors_eip712?.[t]?.[c];if(!d)return(0,p.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no typed data filters for address ${t} on chain ${e} for schema ${c}`));if(!d.schema||!Array.isArray(d.instructions))return(0,p.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no message info for address ${t} on chain ${e} for schema ${c}`));const l=[];for(const o of d.instructions)if(this.isInstructionContractInfo(o,this.config.cal.mode))s={displayName:o.display_name,signature:o.signatures[this.config.cal.mode],filtersCount:o.field_mappers_count};else if(n==="v1"&&this.isInstructionFieldV1(o,this.config.cal.mode))l.push({type:"raw",displayName:o.display_name,path:o.field_path,signature:o.signatures[this.config.cal.mode]});else if(this.isInstructionFieldV2(o,this.config.cal.mode))l.push({type:o.format,displayName:o.display_name,path:o.field_path,signature:o.signatures[this.config.cal.mode]});else if(this.isInstructionFieldV2WithCoinRef(o,this.config.cal.mode))l.push({type:o.format,displayName:o.display_name,path:o.field_path,signature:o.signatures[this.config.cal.mode],tokenIndex:o.coin_ref});else if(this.isInstructionFieldV2WithName(o,this.config.cal.mode))l.push({type:o.format,displayName:o.display_name,path:o.field_path,signature:o.signatures[this.config.cal.mode],types:o.name_types,sources:o.name_sources,typesAndSourcesPayload:this.formatTrustedNameTypesAndSources(o)});else return(0,p.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: invalid typed data field for address ${t} on chain ${e} for schema ${c}`));return s?(0,p.Right)({messageInfo:s,filters:l}):(0,p.Left)(new Error(`[ContextModule] HttpTypedDataDataSource: no message info for address ${t} on chain ${e} for schema ${c}`))}catch{return(0,p.Left)(new Error("[ContextModule] HttpTypedDataDataSource: Failed to fetch typed data informations"))}}formatTrustedNameTypesAndSources(e){const t=e.name_types.length,i=e.name_sources.length,n=e.descriptor.slice((t+i)*2*-1,i*2*-1),s=e.descriptor.slice(i*2*-1),a=t.toString(16).padStart(2,"0"),c=i.toString(16).padStart(2,"0");return a+n+c+s}isInstructionFieldV1(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"}isInstructionFieldV2(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"&&typeof e.format=="string"&&["raw","datetime"].includes(e.format)&&e.coin_ref===void 0}isInstructionFieldV2WithCoinRef(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"&&typeof e.format=="string"&&["token","amount"].includes(e.format)&&typeof e.coin_ref=="number"}isInstructionFieldV2WithName(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_path=="string"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"&&typeof e.format=="string"&&e.format==="trusted-name"&&e.coin_ref===void 0&&Array.isArray(e.name_types)&&Array.isArray(e.name_sources)&&e.name_types.every(i=>typeof i=="string")&&e.name_sources.every(i=>typeof i=="string")}isInstructionContractInfo(e,t){return typeof e=="object"&&typeof e.display_name=="string"&&typeof e.field_mappers_count=="number"&&typeof e.signatures=="object"&&typeof e.signatures[t]=="string"&&e.field_path===void 0}sortTypes(e){return Object.fromEntries(Object.entries(e).sort(([t],[i])=>t.localeCompare(i)).map(([t,i])=>[t,i.map(n=>({name:n.name,type:n.type}))]))}};f=_([(0,m.injectable)(),I(0,(0,m.inject)(D.configTypes.Config))],f);0&&(module.exports={HttpTypedDataDataSource});
2
2
  //# sourceMappingURL=HttpTypedDataDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/typed-data/data/HttpTypedDataDataSource.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport SHA224 from \"crypto-js/sha224\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type {\n ContextModuleCalMode,\n ContextModuleConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport type {\n TypedDataFilter,\n TypedDataMessageInfo,\n} from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataSchema } from \"@/shared/model/TypedDataContext\";\nimport PACKAGE from \"@root/package.json\";\n\nimport type {\n FiltersDto,\n InstructionContractInfo,\n InstructionField,\n InstructionFieldV1,\n InstructionFieldV2,\n InstructionFieldV2WithCoinRef,\n} from \"./FiltersDto\";\nimport {\n GetTypedDataFiltersParams,\n GetTypedDataFiltersResult,\n TypedDataDataSource,\n} from \"./TypedDataDataSource\";\n\n@injectable()\nexport class HttpTypedDataDataSource implements TypedDataDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n public async getTypedDataFilters({\n chainId,\n address,\n schema,\n version,\n }: GetTypedDataFiltersParams): Promise<\n Either<Error, GetTypedDataFiltersResult>\n > {\n let messageInfo: TypedDataMessageInfo | undefined = undefined;\n\n try {\n const response = await axios.request<FiltersDto[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/dapps`,\n params: {\n contracts: address,\n chain_id: chainId,\n output: \"descriptors_eip712\",\n descriptors_eip712_version: version,\n descriptors_eip712: \"<set>\",\n ref: `branch:${this.config.cal.branch}`,\n },\n headers: {\n \"X-Ledger-Client-Version\": `context-module/${PACKAGE.version}`,\n },\n });\n\n // Try to get the filters JSON descriptor, from address and schema hash\n const schemaHash = SHA224(\n JSON.stringify(this.sortTypes(schema)).replace(\" \", \"\"),\n ).toString();\n address = address.toLowerCase();\n const filtersJson =\n response.data?.[0]?.descriptors_eip712?.[address]?.[schemaHash];\n if (!filtersJson) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no typed data filters for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n // Parse the message type, if available\n if (!filtersJson.schema || !Array.isArray(filtersJson.instructions)) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n // Parse all the filters\n const filters: TypedDataFilter[] = [];\n for (const field of filtersJson.instructions) {\n if (this.isInstructionContractInfo(field, this.config.cal.mode)) {\n messageInfo = {\n displayName: field.display_name,\n signature: field.signatures[this.config.cal.mode],\n filtersCount: field.field_mappers_count,\n };\n } else if (\n version === \"v1\" &&\n this.isInstructionFieldV1(field, this.config.cal.mode)\n ) {\n filters.push({\n type: \"raw\",\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n });\n } else if (this.isInstructionFieldV2(field, this.config.cal.mode)) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n });\n } else if (\n this.isInstructionFieldV2WithCoinRef(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n tokenIndex: field.coin_ref,\n });\n } else {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n }\n\n if (!messageInfo) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n return Right({ messageInfo, filters });\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpTypedDataDataSource: Failed to fetch typed data informations\",\n ),\n );\n }\n }\n\n private isInstructionFieldV1(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV1 & {\n signatures: { [key in ContextModuleCalMode]: string };\n } {\n // NOTE: Currently the backend return the same structure for V1 and V2,\n // so we can't distinguish them here, but we can still check the required fields\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\"\n );\n }\n\n private isInstructionFieldV2(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2 & {\n signatures: { [key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\"raw\", \"datetime\"].includes(data.format) &&\n data.coin_ref === undefined\n );\n }\n\n private isInstructionFieldV2WithCoinRef(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2WithCoinRef & {\n signatures: { [key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\"token\", \"amount\"].includes(data.format) &&\n typeof data.coin_ref === \"number\"\n );\n }\n\n private isInstructionContractInfo(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionContractInfo & {\n signatures: { [key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_mappers_count === \"number\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n data.field_path === undefined\n );\n }\n\n private sortTypes(types: TypedDataSchema): TypedDataSchema {\n return Object.fromEntries(\n Object.entries(types)\n .sort(([aKey], [bKey]) => aKey.localeCompare(bKey))\n .map(([key, value]) => [\n key,\n value.map((v) => ({ name: v.name, type: v.type })),\n ]),\n );\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["HttpTypedDataDataSource_exports", "__export", "HttpTypedDataDataSource", "__toCommonJS", "import_axios", "import_sha224", "import_inversify", "import_purify_ts", "import_configTypes", "import_package", "HttpTypedDataDataSource", "config", "chainId", "address", "schema", "version", "messageInfo", "response", "axios", "PACKAGE", "schemaHash", "SHA224", "filtersJson", "filters", "field", "data", "mode", "types", "aKey", "bKey", "key", "value", "v", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import axios from \"axios\";\nimport SHA224 from \"crypto-js/sha224\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type {\n ContextModuleCalMode,\n ContextModuleConfig,\n} from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport type {\n TypedDataFilter,\n TypedDataMessageInfo,\n} from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataSchema } from \"@/shared/model/TypedDataContext\";\nimport PACKAGE from \"@root/package.json\";\n\nimport type {\n FiltersDto,\n InstructionContractInfo,\n InstructionField,\n InstructionFieldV1,\n InstructionFieldV2,\n InstructionFieldV2WithCoinRef,\n InstructionFieldV2WithName,\n} from \"./FiltersDto\";\nimport {\n GetTypedDataFiltersParams,\n GetTypedDataFiltersResult,\n TypedDataDataSource,\n} from \"./TypedDataDataSource\";\n\n@injectable()\nexport class HttpTypedDataDataSource implements TypedDataDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n public async getTypedDataFilters({\n chainId,\n address,\n schema,\n version,\n }: GetTypedDataFiltersParams): Promise<\n Either<Error, GetTypedDataFiltersResult>\n > {\n let messageInfo: TypedDataMessageInfo | undefined = undefined;\n\n try {\n const response = await axios.request<FiltersDto[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/dapps`,\n params: {\n contracts: address,\n chain_id: chainId,\n output: \"descriptors_eip712\",\n descriptors_eip712_version: version,\n descriptors_eip712: \"<set>\",\n ref: `branch:${this.config.cal.branch}`,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n });\n\n // Try to get the filters JSON descriptor, from address and schema hash\n const schemaHash = SHA224(\n JSON.stringify(this.sortTypes(schema)).replace(\" \", \"\"),\n ).toString();\n address = address.toLowerCase();\n const filtersJson =\n response.data?.[0]?.descriptors_eip712?.[address]?.[schemaHash];\n if (!filtersJson) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no typed data filters for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n // Parse the message type, if available\n if (!filtersJson.schema || !Array.isArray(filtersJson.instructions)) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n // Parse all the filters\n const filters: TypedDataFilter[] = [];\n for (const field of filtersJson.instructions) {\n if (this.isInstructionContractInfo(field, this.config.cal.mode)) {\n messageInfo = {\n displayName: field.display_name,\n signature: field.signatures[this.config.cal.mode],\n filtersCount: field.field_mappers_count,\n };\n } else if (\n version === \"v1\" &&\n this.isInstructionFieldV1(field, this.config.cal.mode)\n ) {\n filters.push({\n type: \"raw\",\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n });\n } else if (this.isInstructionFieldV2(field, this.config.cal.mode)) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n });\n } else if (\n this.isInstructionFieldV2WithCoinRef(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n tokenIndex: field.coin_ref,\n });\n } else if (\n this.isInstructionFieldV2WithName(field, this.config.cal.mode)\n ) {\n filters.push({\n type: field.format,\n displayName: field.display_name,\n path: field.field_path,\n signature: field.signatures[this.config.cal.mode],\n types: field.name_types,\n sources: field.name_sources,\n typesAndSourcesPayload:\n this.formatTrustedNameTypesAndSources(field),\n });\n } else {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n }\n\n if (!messageInfo) {\n return Left(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address ${address} on chain ${chainId} for schema ${schemaHash}`,\n ),\n );\n }\n\n return Right({ messageInfo, filters });\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpTypedDataDataSource: Failed to fetch typed data informations\",\n ),\n );\n }\n }\n\n private formatTrustedNameTypesAndSources(\n field: InstructionFieldV2WithName,\n ): string {\n // Get number of types and sources\n const typesCount = field.name_types.length;\n const sourcesCount = field.name_sources.length;\n\n // Extract types and sources from the descriptor\n const types = field.descriptor.slice(\n (typesCount + sourcesCount) * 2 * -1,\n sourcesCount * 2 * -1,\n );\n const sources = field.descriptor.slice(sourcesCount * 2 * -1);\n\n // Convert counts into hex strings\n const typesCountHex = typesCount.toString(16).padStart(2, \"0\");\n const sourcesCountHex = sourcesCount.toString(16).padStart(2, \"0\");\n\n // Return the payload\n return typesCountHex + types + sourcesCountHex + sources;\n }\n\n private isInstructionFieldV1(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV1 & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n // NOTE: Currently the backend return the same structure for V1 and V2,\n // so we can't distinguish them here, but we can still check the required fields\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\"\n );\n }\n\n private isInstructionFieldV2(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2 & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\"raw\", \"datetime\"].includes(data.format) &&\n data.coin_ref === undefined\n );\n }\n\n private isInstructionFieldV2WithCoinRef(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2WithCoinRef & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n [\"token\", \"amount\"].includes(data.format) &&\n typeof data.coin_ref === \"number\"\n );\n }\n\n private isInstructionFieldV2WithName(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionFieldV2WithName & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_path === \"string\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n typeof data.format === \"string\" &&\n data.format === \"trusted-name\" &&\n data.coin_ref === undefined &&\n Array.isArray(data.name_types) &&\n Array.isArray(data.name_sources) &&\n data.name_types.every((t) => typeof t === \"string\") &&\n data.name_sources.every((s) => typeof s === \"string\")\n );\n }\n\n private isInstructionContractInfo(\n data: InstructionField,\n mode: ContextModuleCalMode,\n ): data is InstructionContractInfo & {\n signatures: { [_key in ContextModuleCalMode]: string };\n } {\n return (\n typeof data === \"object\" &&\n typeof data.display_name === \"string\" &&\n typeof data.field_mappers_count === \"number\" &&\n typeof data.signatures === \"object\" &&\n typeof data.signatures[mode] === \"string\" &&\n data.field_path === undefined\n );\n }\n\n private sortTypes(types: TypedDataSchema): TypedDataSchema {\n return Object.fromEntries(\n Object.entries(types)\n .sort(([aKey], [bKey]) => aKey.localeCompare(bKey))\n .map(([key, value]) => [\n key,\n value.map((v) => ({ name: v.name, type: v.type })),\n ]),\n );\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmB,+BACnBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAK5BC,EAGO,yCAMPC,EAAoB,iCAkBb,IAAMC,EAAN,KAA6D,CAClE,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CAEH,MAAa,oBAAoB,CAC/B,QAAAC,EACA,QAAAC,EACA,OAAAC,EACA,QAAAC,CACF,EAEE,CACA,IAAIC,EAEJ,GAAI,CACF,MAAMC,EAAW,MAAM,EAAAC,QAAM,QAAsB,CACjD,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,IAAI,GAAG,SAC3B,OAAQ,CACN,UAAWL,EACX,SAAUD,EACV,OAAQ,qBACR,2BAA4BG,EAC5B,mBAAoB,QACpB,IAAK,UAAU,KAAK,OAAO,IAAI,MAAM,EACvC,EACA,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAI,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,EAGKC,KAAa,EAAAC,SACjB,KAAK,UAAU,KAAK,UAAUP,CAAM,CAAC,EAAE,QAAQ,IAAK,EAAE,CACxD,EAAE,SAAS,EACXD,EAAUA,EAAQ,YAAY,EAC9B,MAAMS,EACJL,EAAS,OAAO,CAAC,GAAG,qBAAqBJ,CAAO,IAAIO,CAAU,EAChE,GAAI,CAACE,EACH,SAAO,QACL,IAAI,MACF,8EAA8ET,CAAO,aAAaD,CAAO,eAAeQ,CAAU,EACpI,CACF,EAIF,GAAI,CAACE,EAAY,QAAU,CAAC,MAAM,QAAQA,EAAY,YAAY,EAChE,SAAO,QACL,IAAI,MACF,wEAAwET,CAAO,aAAaD,CAAO,eAAeQ,CAAU,EAC9H,CACF,EAIF,MAAMG,EAA6B,CAAC,EACpC,UAAWC,KAASF,EAAY,aAC9B,GAAI,KAAK,0BAA0BE,EAAO,KAAK,OAAO,IAAI,IAAI,EAC5DR,EAAc,CACZ,YAAaQ,EAAM,aACnB,UAAWA,EAAM,WAAW,KAAK,OAAO,IAAI,IAAI,EAChD,aAAcA,EAAM,mBACtB,UAEAT,IAAY,MACZ,KAAK,qBAAqBS,EAAO,KAAK,OAAO,IAAI,IAAI,EAErDD,EAAQ,KAAK,CACX,KAAM,MACN,YAAaC,EAAM,aACnB,KAAMA,EAAM,WACZ,UAAWA,EAAM,WAAW,KAAK,OAAO,IAAI,IAAI,CAClD,CAAC,UACQ,KAAK,qBAAqBA,EAAO,KAAK,OAAO,IAAI,IAAI,EAC9DD,EAAQ,KAAK,CACX,KAAMC,EAAM,OACZ,YAAaA,EAAM,aACnB,KAAMA,EAAM,WACZ,UAAWA,EAAM,WAAW,KAAK,OAAO,IAAI,IAAI,CAClD,CAAC,UAED,KAAK,gCAAgCA,EAAO,KAAK,OAAO,IAAI,IAAI,EAEhED,EAAQ,KAAK,CACX,KAAMC,EAAM,OACZ,YAAaA,EAAM,aACnB,KAAMA,EAAM,WACZ,UAAWA,EAAM,WAAW,KAAK,OAAO,IAAI,IAAI,EAChD,WAAYA,EAAM,QACpB,CAAC,UAED,KAAK,6BAA6BA,EAAO,KAAK,OAAO,IAAI,IAAI,EAE7DD,EAAQ,KAAK,CACX,KAAMC,EAAM,OACZ,YAAaA,EAAM,aACnB,KAAMA,EAAM,WACZ,UAAWA,EAAM,WAAW,KAAK,OAAO,IAAI,IAAI,EAChD,MAAOA,EAAM,WACb,QAASA,EAAM,aACf,uBACE,KAAK,iCAAiCA,CAAK,CAC/C,CAAC,MAED,UAAO,QACL,IAAI,MACF,iFAAiFX,CAAO,aAAaD,CAAO,eAAeQ,CAAU,EACvI,CACF,EAIJ,OAAKJ,KAQE,SAAM,CAAE,YAAAA,EAAa,QAAAO,CAAQ,CAAC,KAP5B,QACL,IAAI,MACF,wEAAwEV,CAAO,aAAaD,CAAO,eAAeQ,CAAU,EAC9H,CACF,CAIJ,MAAiB,CACf,SAAO,QACL,IAAI,MACF,kFACF,CACF,CACF,CACF,CAEQ,iCACNI,EACQ,CAER,MAAMC,EAAaD,EAAM,WAAW,OAC9BE,EAAeF,EAAM,aAAa,OAGlCG,EAAQH,EAAM,WAAW,OAC5BC,EAAaC,GAAgB,EAAI,GAClCA,EAAe,EAAI,EACrB,EACME,EAAUJ,EAAM,WAAW,MAAME,EAAe,EAAI,EAAE,EAGtDG,EAAgBJ,EAAW,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,EACvDK,EAAkBJ,EAAa,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,EAGjE,OAAOG,EAAgBF,EAAQG,EAAkBF,CACnD,CAEQ,qBACNG,EACAC,EAGA,CAGA,OACE,OAAOD,GAAS,UAChB,OAAOA,EAAK,cAAiB,UAC7B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,WAAWC,CAAI,GAAM,QAErC,CAEQ,qBACND,EACAC,EAGA,CACA,OACE,OAAOD,GAAS,UAChB,OAAOA,EAAK,cAAiB,UAC7B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,WAAWC,CAAI,GAAM,UACjC,OAAOD,EAAK,QAAW,UACvB,CAAC,MAAO,UAAU,EAAE,SAASA,EAAK,MAAM,GACxCA,EAAK,WAAa,MAEtB,CAEQ,gCACNA,EACAC,EAGA,CACA,OACE,OAAOD,GAAS,UAChB,OAAOA,EAAK,cAAiB,UAC7B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,WAAWC,CAAI,GAAM,UACjC,OAAOD,EAAK,QAAW,UACvB,CAAC,QAAS,QAAQ,EAAE,SAASA,EAAK,MAAM,GACxC,OAAOA,EAAK,UAAa,QAE7B,CAEQ,6BACNA,EACAC,EAGA,CACA,OACE,OAAOD,GAAS,UAChB,OAAOA,EAAK,cAAiB,UAC7B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,WAAWC,CAAI,GAAM,UACjC,OAAOD,EAAK,QAAW,UACvBA,EAAK,SAAW,gBAChBA,EAAK,WAAa,QAClB,MAAM,QAAQA,EAAK,UAAU,GAC7B,MAAM,QAAQA,EAAK,YAAY,GAC/BA,EAAK,WAAW,MAAOE,GAAM,OAAOA,GAAM,QAAQ,GAClDF,EAAK,aAAa,MAAOG,GAAM,OAAOA,GAAM,QAAQ,CAExD,CAEQ,0BACNH,EACAC,EAGA,CACA,OACE,OAAOD,GAAS,UAChB,OAAOA,EAAK,cAAiB,UAC7B,OAAOA,EAAK,qBAAwB,UACpC,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,WAAWC,CAAI,GAAM,UACjCD,EAAK,aAAe,MAExB,CAEQ,UAAUJ,EAAyC,CACzD,OAAO,OAAO,YACZ,OAAO,QAAQA,CAAK,EACjB,KAAK,CAAC,CAACQ,CAAI,EAAG,CAACC,CAAI,IAAMD,EAAK,cAAcC,CAAI,CAAC,EACjD,IAAI,CAAC,CAACC,EAAKC,CAAK,IAAM,CACrBD,EACAC,EAAM,IAAKC,IAAO,CAAE,KAAMA,EAAE,KAAM,KAAMA,EAAE,IAAK,EAAE,CACnD,CAAC,CACL,CACF,CACF,EAhQa7B,EAAN8B,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjB/B",
6
+ "names": ["HttpTypedDataDataSource_exports", "__export", "HttpTypedDataDataSource", "__toCommonJS", "import_axios", "import_sha224", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpTypedDataDataSource", "config", "chainId", "address", "schema", "version", "messageInfo", "response", "axios", "PACKAGE", "schemaHash", "SHA224", "filtersJson", "filters", "field", "typesCount", "sourcesCount", "types", "sources", "typesCountHex", "sourcesCountHex", "data", "mode", "t", "s", "aKey", "bKey", "key", "value", "v", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.create;var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var x=(d,t)=>{for(var e in t)r(d,e,{get:t[e],enumerable:!0})},n=(d,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of m(t))!h.call(d,c)&&c!==e&&r(d,c,{get:()=>t[c],enumerable:!(a=u(t,c))||a.enumerable});return d};var o=(d,t,e)=>(e=d!=null?l(y(d)):{},n(t||!d||!d.__esModule?r(e,"default",{value:d,enumerable:!0}):e,d)),g=d=>n(r({},"__esModule",{value:!0}),d);var v={};x(v,{buildDescriptor:()=>f});module.exports=g(v);var s=o(require("axios")),b=require("purify-ts"),i=require("../../typed-data/data/HttpTypedDataDataSource"),p=o(require("../../../package.json"));jest.mock("axios");const f=d=>[{descriptors_eip712:{"0x000000000022d473030f116ddee9f6b43ac78ba3":{"4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3":{schema:{DutchOutput:[{name:"token",type:"address"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}],EIP712Domain:[{name:"name",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],ExclusiveDutchOrder:[{name:"info",type:"OrderInfo"},{name:"decayStartTime",type:"uint256"},{name:"decayEndTime",type:"uint256"},{name:"exclusiveFiller",type:"address"},{name:"exclusivityOverrideBps",type:"uint256"},{name:"inputToken",type:"address"},{name:"inputStartAmount",type:"uint256"},{name:"inputEndAmount",type:"uint256"},{name:"outputs",type:"DutchOutput[]"}],OrderInfo:[{name:"reactor",type:"address"},{name:"swapper",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"additionalValidationContract",type:"address"},{name:"additionalValidationData",type:"bytes"}],PermitWitnessTransferFrom:[{name:"permitted",type:"TokenPermissions"},{name:"spender",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"witness",type:"ExclusiveDutchOrder"}],TokenPermissions:[{name:"token",type:"address"},{name:"amount",type:"uint256"}]},instructions:d}}}}];describe("HttpTypedDataDataSource",()=>{let d;const t={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{type:"address",name:"token"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}],EIP712Domain:[{name:"name",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}]};beforeAll(()=>{const e={cal:{url:"https://crypto-assets-service.api.ledger.com/v1",mode:"prod"}};d=new i.HttpTypedDataDataSource(e),jest.clearAllMocks()}),it("should call axios with the ledger client version header",async()=>{const e=`context-module/${p.default.version}`,a=jest.fn(()=>Promise.resolve({data:[]}));jest.spyOn(s.default,"request").mockImplementation(a),await d.getTypedDataFilters({chainId:1,address:"0x00",version:"v2",schema:{}}),expect(a).toHaveBeenCalledWith(expect.objectContaining({headers:{"X-Ledger-Client-Version":e}}))}),it("should return V2 filters when axios response is correct",async()=>{const e=f([{display_name:"Permit2",field_mappers_count:4,descriptor:"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432",signatures:{prod:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},type:"message"},{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"},{display_name:"Amount allowance",format:"amount",field_path:"details.amount",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e616d6f756e74416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f"},type:"field"},{display_name:"Approve to spender",format:"raw",field_path:"spender",descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df37370656e646572417070726f766520746f207370656e646572",signatures:{prod:"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f"},type:"field"},{display_name:"Approval expire",format:"datetime",field_path:"details.expiration",descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e65787069726174696f6e417070726f76616c20657870697265",signatures:{prod:"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff"},type:"field"}]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022D473030F116DDEE9F6B43AC78BA3",version:"v2",schema:t});expect(a).toEqual((0,b.Right)({messageInfo:{displayName:"Permit2",filtersCount:4,signature:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},filters:[{type:"token",displayName:"Amount allowance",path:"details.token",tokenIndex:0,signature:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},{type:"amount",displayName:"Amount allowance",path:"details.amount",tokenIndex:0,signature:"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f"},{type:"raw",displayName:"Approve to spender",path:"spender",signature:"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f"},{type:"datetime",displayName:"Approval expire",path:"details.expiration",signature:"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff"}]}))}),it("should return V1 filters when axios response is correct",async()=>{const e=f([{display_name:"Permit2",field_mappers_count:4,descriptor:"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432",signatures:{prod:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},type:"message"},{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"},{display_name:"Amount allowance",format:"amount",field_path:"details.amount",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e616d6f756e74416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f"},type:"field"},{display_name:"Approve to spender",format:"raw",field_path:"spender",descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df37370656e646572417070726f766520746f207370656e646572",signatures:{prod:"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f"},type:"field"},{display_name:"Approval expire",format:"datetime",field_path:"details.expiration",descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e65787069726174696f6e417070726f76616c20657870697265",signatures:{prod:"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff"},type:"field"}]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a).toEqual((0,b.Right)({messageInfo:{displayName:"Permit2",filtersCount:4,signature:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},filters:[{type:"raw",displayName:"Amount allowance",path:"details.token",signature:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},{type:"raw",displayName:"Amount allowance",path:"details.amount",signature:"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f"},{type:"raw",displayName:"Approve to spender",path:"spender",signature:"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f"},{type:"raw",displayName:"Approval expire",path:"details.expiration",signature:"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff"}]}))}),it("should return an error when data is empty",async()=>{jest.spyOn(s.default,"request").mockResolvedValue({data:void 0});const e=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(e.isLeft()).toEqual(!0),expect(e.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: no typed data filters for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error when schema is not found",async()=>{const e=f([]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error when schema is undefined",async()=>{const e=f(void 0);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if no message info is found",async()=>{const e=f([{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if message info display name is missing",async()=>{const e=f([{field_mappers_count:4,descriptor:"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432",signatures:{prod:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},type:"message"}]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if field path is invalid",async()=>{const e=f([{display_name:"Amount allowance",format:"token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if field display_name is invalid",async()=>{const e=f([{format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if field signatures.prod is missing",async()=>{const e=f([{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{test:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error on token fileds with coin ref to null",async()=>{const e=f([{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:null,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);jest.spyOn(s.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v2",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error when axios throws an error",async()=>{jest.spyOn(s.default,"request").mockRejectedValue(new Error("error"));const e=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(e.isLeft()).toEqual(!0)})});0&&(module.exports={buildDescriptor});
1
+ "use strict";var m=Object.create;var r=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var D=(d,t)=>{for(var e in t)r(d,e,{get:t[e],enumerable:!0})},i=(d,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of h(t))!v.call(d,s)&&s!==e&&r(d,s,{get:()=>t[s],enumerable:!(a=y(t,s))||a.enumerable});return d};var o=(d,t,e)=>(e=d!=null?m(x(d)):{},i(t||!d||!d.__esModule?r(e,"default",{value:d,enumerable:!0}):e,d)),g=d=>i(r({},"__esModule",{value:!0}),d);var w={};D(w,{buildDescriptor:()=>f});module.exports=g(w);var c=o(require("axios")),n=require("purify-ts"),b=require("../../shared/constant/HttpHeaders"),l=require("../../typed-data/data/HttpTypedDataDataSource"),u=o(require("../../../package.json"));vi.mock("axios");const f=d=>[{descriptors_eip712:{"0x000000000022d473030f116ddee9f6b43ac78ba3":{"4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3":{schema:{DutchOutput:[{name:"token",type:"address"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}],EIP712Domain:[{name:"name",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],ExclusiveDutchOrder:[{name:"info",type:"OrderInfo"},{name:"decayStartTime",type:"uint256"},{name:"decayEndTime",type:"uint256"},{name:"exclusiveFiller",type:"address"},{name:"exclusivityOverrideBps",type:"uint256"},{name:"inputToken",type:"address"},{name:"inputStartAmount",type:"uint256"},{name:"inputEndAmount",type:"uint256"},{name:"outputs",type:"DutchOutput[]"}],OrderInfo:[{name:"reactor",type:"address"},{name:"swapper",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"additionalValidationContract",type:"address"},{name:"additionalValidationData",type:"bytes"}],PermitWitnessTransferFrom:[{name:"permitted",type:"TokenPermissions"},{name:"spender",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"witness",type:"ExclusiveDutchOrder"}],TokenPermissions:[{name:"token",type:"address"},{name:"amount",type:"uint256"}]},instructions:d}}}}],p={web3checks:{url:"web3checksUrl"},cal:{url:"https://crypto-assets-service.api.ledger.com/v1",mode:"prod"},originToken:"originToken"};describe("HttpTypedDataDataSource",()=>{let d;const t={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{type:"address",name:"token"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}],EIP712Domain:[{name:"name",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}]};beforeAll(()=>{d=new l.HttpTypedDataDataSource(p),vi.clearAllMocks()}),it("should call axios with the ledger client version header",async()=>{const e=`context-module/${u.default.version}`,a=vi.fn(()=>Promise.resolve({data:[]}));vi.spyOn(c.default,"request").mockImplementation(a),await d.getTypedDataFilters({chainId:1,address:"0x00",version:"v2",schema:{}}),expect(a).toHaveBeenCalledWith(expect.objectContaining({headers:{[b.LEDGER_CLIENT_VERSION_HEADER]:e,[b.LEDGER_ORIGIN_TOKEN_HEADER]:p.originToken}}))}),it("should return V2 filters when axios response is correct",async()=>{const e=f([{display_name:"Permit2",field_mappers_count:4,descriptor:"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432",signatures:{prod:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},type:"message"},{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"},{display_name:"Spender name",format:"trusted-name",field_path:"details.spender",name_types:["contract"],name_sources:["cal","local","ens"],descriptor:"2c000000000000a4b1ff970a61a04b1ca14834a43f5de4533ebddb5cc8d4dd8410bdcf861c48d353f8e3a9b738282a0fd9ba7239f59baa90997370656e6465725370656e64657202010002",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d54"},type:"field"},{display_name:"Amount allowance",format:"amount",field_path:"details.amount",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e616d6f756e74416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f"},type:"field"},{display_name:"Approve to spender",format:"raw",field_path:"spender",descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df37370656e646572417070726f766520746f207370656e646572",signatures:{prod:"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f"},type:"field"},{display_name:"Approval expire",format:"datetime",field_path:"details.expiration",descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e65787069726174696f6e417070726f76616c20657870697265",signatures:{prod:"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff"},type:"field"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022D473030F116DDEE9F6B43AC78BA3",version:"v2",schema:t});expect(a).toEqual((0,n.Right)({messageInfo:{displayName:"Permit2",filtersCount:4,signature:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},filters:[{type:"token",displayName:"Amount allowance",path:"details.token",tokenIndex:0,signature:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},{type:"trusted-name",displayName:"Spender name",path:"details.spender",signature:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d54",types:["contract"],sources:["cal","local","ens"],typesAndSourcesPayload:"010203010002"},{type:"amount",displayName:"Amount allowance",path:"details.amount",tokenIndex:0,signature:"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f"},{type:"raw",displayName:"Approve to spender",path:"spender",signature:"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f"},{type:"datetime",displayName:"Approval expire",path:"details.expiration",signature:"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff"}]}))}),it("should return V1 filters when axios response is correct",async()=>{const e=f([{display_name:"Permit2",field_mappers_count:4,descriptor:"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432",signatures:{prod:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},type:"message"},{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"},{display_name:"Amount allowance",format:"amount",field_path:"details.amount",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e616d6f756e74416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f"},type:"field"},{display_name:"Approve to spender",format:"raw",field_path:"spender",descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df37370656e646572417070726f766520746f207370656e646572",signatures:{prod:"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f"},type:"field"},{display_name:"Approval expire",format:"datetime",field_path:"details.expiration",descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e65787069726174696f6e417070726f76616c20657870697265",signatures:{prod:"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff"},type:"field"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a).toEqual((0,n.Right)({messageInfo:{displayName:"Permit2",filtersCount:4,signature:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},filters:[{type:"raw",displayName:"Amount allowance",path:"details.token",signature:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},{type:"raw",displayName:"Amount allowance",path:"details.amount",signature:"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f"},{type:"raw",displayName:"Approve to spender",path:"spender",signature:"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f"},{type:"raw",displayName:"Approval expire",path:"details.expiration",signature:"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff"}]}))}),it("should return an error when data is empty",async()=>{vi.spyOn(c.default,"request").mockResolvedValue({data:void 0});const e=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(e.isLeft()).toEqual(!0),expect(e.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: no typed data filters for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error when schema is not found",async()=>{const e=f([]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error when schema is undefined",async()=>{const e=f(void 0);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if no message info is found",async()=>{const e=f([{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if message info display name is missing",async()=>{const e=f([{field_mappers_count:4,descriptor:"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432",signatures:{prod:"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce"},type:"message"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if field path is invalid",async()=>{const e=f([{display_name:"Amount allowance",format:"token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if field display_name is invalid",async()=>{const e=f([{format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error if field signatures.prod is missing",async()=>{const e=f([{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:0,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{test:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error on token fileds with coin ref to null",async()=>{const e=f([{display_name:"Amount allowance",format:"token",field_path:"details.token",coin_ref:null,descriptor:"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v2",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error on trusted names without sources and types",async()=>{const e=f([{display_name:"Amount allowance",format:"trusted-name",field_path:"details.token",descriptor:"2c000000000000a4b1ff970a61a04b1ca14834a43f5de4533ebddb5cc8d4dd8410bdcf861c48d353f8e3a9b738282a0fd9ba7239f59baa90997370656e6465725370656e64657202010002",signatures:{prod:"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53"},type:"field"}]);vi.spyOn(c.default,"request").mockResolvedValue({data:e});const a=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v2",schema:t});expect(a.isLeft()).toEqual(!0),expect(a.extract()).toEqual(new Error("[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3"))}),it("should return an error when axios throws an error",async()=>{vi.spyOn(c.default,"request").mockRejectedValue(new Error("error"));const e=await d.getTypedDataFilters({chainId:1,address:"0x000000000022d473030f116ddee9f6b43ac78ba3",version:"v1",schema:t});expect(e.isLeft()).toEqual(!0)})});0&&(module.exports={buildDescriptor});
2
2
  //# sourceMappingURL=HttpTypedDataDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/typed-data/data/HttpTypedDataDataSource.test.ts"],
4
- "sourcesContent": ["import axios from \"axios\";\nimport { Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpTypedDataDataSource } from \"@/typed-data/data/HttpTypedDataDataSource\";\nimport { type TypedDataDataSource } from \"@/typed-data/data/TypedDataDataSource\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { type FiltersDto, type InstructionField } from \"./FiltersDto\";\n\njest.mock(\"axios\");\n\nexport const buildDescriptor = (\n instructions: InstructionField[],\n): FiltersDto[] => [\n {\n descriptors_eip712: {\n \"0x000000000022d473030f116ddee9f6b43ac78ba3\": {\n \"4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3\": {\n schema: {\n DutchOutput: [\n {\n name: \"token\",\n type: \"address\",\n },\n {\n name: \"startAmount\",\n type: \"uint256\",\n },\n {\n name: \"endAmount\",\n type: \"uint256\",\n },\n {\n name: \"recipient\",\n type: \"address\",\n },\n ],\n EIP712Domain: [\n {\n name: \"name\",\n type: \"string\",\n },\n {\n name: \"chainId\",\n type: \"uint256\",\n },\n {\n name: \"verifyingContract\",\n type: \"address\",\n },\n ],\n ExclusiveDutchOrder: [\n {\n name: \"info\",\n type: \"OrderInfo\",\n },\n {\n name: \"decayStartTime\",\n type: \"uint256\",\n },\n {\n name: \"decayEndTime\",\n type: \"uint256\",\n },\n {\n name: \"exclusiveFiller\",\n type: \"address\",\n },\n {\n name: \"exclusivityOverrideBps\",\n type: \"uint256\",\n },\n {\n name: \"inputToken\",\n type: \"address\",\n },\n {\n name: \"inputStartAmount\",\n type: \"uint256\",\n },\n {\n name: \"inputEndAmount\",\n type: \"uint256\",\n },\n {\n name: \"outputs\",\n type: \"DutchOutput[]\",\n },\n ],\n OrderInfo: [\n {\n name: \"reactor\",\n type: \"address\",\n },\n {\n name: \"swapper\",\n type: \"address\",\n },\n {\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n name: \"additionalValidationContract\",\n type: \"address\",\n },\n {\n name: \"additionalValidationData\",\n type: \"bytes\",\n },\n ],\n PermitWitnessTransferFrom: [\n {\n name: \"permitted\",\n type: \"TokenPermissions\",\n },\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n name: \"witness\",\n type: \"ExclusiveDutchOrder\",\n },\n ],\n TokenPermissions: [\n {\n name: \"token\",\n type: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n },\n instructions,\n },\n },\n },\n },\n];\n\ndescribe(\"HttpTypedDataDataSource\", () => {\n let datasource: TypedDataDataSource;\n\n const TEST_TYPES = {\n PermitSingle: [\n {\n name: \"details\",\n type: \"PermitDetails\",\n },\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"sigDeadline\",\n type: \"uint256\",\n },\n ],\n PermitDetails: [\n {\n type: \"address\",\n name: \"token\",\n },\n {\n name: \"amount\",\n type: \"uint160\",\n },\n {\n name: \"expiration\",\n type: \"uint48\",\n },\n {\n name: \"nonce\",\n type: \"uint48\",\n },\n ],\n EIP712Domain: [\n {\n name: \"name\",\n type: \"string\",\n },\n {\n name: \"chainId\",\n type: \"uint256\",\n },\n {\n name: \"verifyingContract\",\n type: \"address\",\n },\n ],\n };\n\n beforeAll(() => {\n const config = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n mode: \"prod\",\n },\n } as ContextModuleConfig;\n datasource = new HttpTypedDataDataSource(config);\n jest.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version header\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = jest.fn(() => Promise.resolve({ data: [] }));\n jest.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x00\",\n version: \"v2\",\n schema: {},\n });\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: { \"X-Ledger-Client-Version\": version },\n }),\n );\n });\n\n it(\"should return V2 filters when axios response is correct\", async () => {\n // GIVEN\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Permit2\",\n field_mappers_count: 4,\n descriptor:\n \"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432\",\n signatures: {\n prod: \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n type: \"message\",\n },\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n },\n {\n display_name: \"Amount allowance\",\n format: \"amount\",\n field_path: \"details.amount\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e616d6f756e74416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f\",\n },\n type: \"field\",\n },\n {\n display_name: \"Approve to spender\",\n format: \"raw\",\n field_path: \"spender\",\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df37370656e646572417070726f766520746f207370656e646572\",\n signatures: {\n prod: \"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f\",\n },\n type: \"field\",\n },\n {\n display_name: \"Approval expire\",\n format: \"datetime\",\n field_path: \"details.expiration\",\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e65787069726174696f6e417070726f76616c20657870697265\",\n signatures: {\n prod: \"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff\",\n },\n type: \"field\",\n },\n ]);\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022D473030F116DDEE9F6B43AC78BA3\",\n version: \"v2\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result).toEqual(\n Right({\n messageInfo: {\n displayName: \"Permit2\",\n filtersCount: 4,\n signature:\n \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n filters: [\n {\n type: \"token\",\n displayName: \"Amount allowance\",\n path: \"details.token\",\n tokenIndex: 0,\n signature:\n \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n {\n type: \"amount\",\n displayName: \"Amount allowance\",\n path: \"details.amount\",\n tokenIndex: 0,\n signature:\n \"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f\",\n },\n {\n type: \"raw\",\n displayName: \"Approve to spender\",\n path: \"spender\",\n signature:\n \"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f\",\n },\n {\n type: \"datetime\",\n displayName: \"Approval expire\",\n path: \"details.expiration\",\n signature:\n \"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff\",\n },\n ],\n }),\n );\n });\n\n it(\"should return V1 filters when axios response is correct\", async () => {\n // GIVEN\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Permit2\",\n field_mappers_count: 4,\n descriptor:\n \"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432\",\n signatures: {\n prod: \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n type: \"message\",\n },\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n },\n {\n display_name: \"Amount allowance\",\n format: \"amount\",\n field_path: \"details.amount\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e616d6f756e74416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f\",\n },\n type: \"field\",\n },\n {\n display_name: \"Approve to spender\",\n format: \"raw\",\n field_path: \"spender\",\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df37370656e646572417070726f766520746f207370656e646572\",\n signatures: {\n prod: \"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f\",\n },\n type: \"field\",\n },\n {\n display_name: \"Approval expire\",\n format: \"datetime\",\n field_path: \"details.expiration\",\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e65787069726174696f6e417070726f76616c20657870697265\",\n signatures: {\n prod: \"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff\",\n },\n type: \"field\",\n },\n ]);\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result).toEqual(\n Right({\n messageInfo: {\n displayName: \"Permit2\",\n filtersCount: 4,\n signature:\n \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n filters: [\n {\n type: \"raw\",\n displayName: \"Amount allowance\",\n path: \"details.token\",\n signature:\n \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n {\n type: \"raw\",\n displayName: \"Amount allowance\",\n path: \"details.amount\",\n signature:\n \"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f\",\n },\n {\n type: \"raw\",\n displayName: \"Approve to spender\",\n path: \"spender\",\n signature:\n \"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f\",\n },\n {\n type: \"raw\",\n displayName: \"Approval expire\",\n path: \"details.expiration\",\n signature:\n \"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff\",\n },\n ],\n }),\n );\n });\n\n it(\"should return an error when data is empty\", async () => {\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no typed data filters for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error when schema is not found\", async () => {\n const filtersDTO = buildDescriptor([]);\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error when schema is undefined\", async () => {\n const filtersDTO = buildDescriptor(\n undefined as unknown as InstructionField[],\n );\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if no message info is found\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n },\n ]);\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if message info display name is missing\", async () => {\n const filtersDTO = buildDescriptor([\n {\n // display_name: \"Permit2\",\n field_mappers_count: 4,\n descriptor:\n \"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432\",\n signatures: {\n prod: \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n type: \"message\",\n } as InstructionField,\n ]);\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if field path is invalid\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n // field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as InstructionField,\n ]);\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if field display_name is invalid\", async () => {\n const filtersDTO = buildDescriptor([\n {\n // display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as InstructionField,\n ]);\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if field signatures.prod is missing\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n test: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as InstructionField,\n ]);\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error on token fileds with coin ref to null\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: null,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as unknown as InstructionField,\n ]);\n // GIVEN\n jest.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v2\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error when axios throws an error\", async () => {\n // GIVEN\n jest.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n });\n});\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAsB,qBAGtBC,EAAwC,qDAExCC,EAAoB,iCAIpB,KAAK,KAAK,OAAO,EAEV,MAAML,EACXM,GACiB,CACjB,CACE,mBAAoB,CAClB,6CAA8C,CAC5C,2DAA4D,CAC1D,OAAQ,CACN,YAAa,CACX,CACE,KAAM,QACN,KAAM,SACR,EACA,CACE,KAAM,cACN,KAAM,SACR,EACA,CACE,KAAM,YACN,KAAM,SACR,EACA,CACE,KAAM,YACN,KAAM,SACR,CACF,EACA,aAAc,CACZ,CACE,KAAM,OACN,KAAM,QACR,EACA,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,oBACN,KAAM,SACR,CACF,EACA,oBAAqB,CACnB,CACE,KAAM,OACN,KAAM,WACR,EACA,CACE,KAAM,iBACN,KAAM,SACR,EACA,CACE,KAAM,eACN,KAAM,SACR,EACA,CACE,KAAM,kBACN,KAAM,SACR,EACA,CACE,KAAM,yBACN,KAAM,SACR,EACA,CACE,KAAM,aACN,KAAM,SACR,EACA,CACE,KAAM,mBACN,KAAM,SACR,EACA,CACE,KAAM,iBACN,KAAM,SACR,EACA,CACE,KAAM,UACN,KAAM,eACR,CACF,EACA,UAAW,CACT,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,QACN,KAAM,SACR,EACA,CACE,KAAM,WACN,KAAM,SACR,EACA,CACE,KAAM,+BACN,KAAM,SACR,EACA,CACE,KAAM,2BACN,KAAM,OACR,CACF,EACA,0BAA2B,CACzB,CACE,KAAM,YACN,KAAM,kBACR,EACA,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,QACN,KAAM,SACR,EACA,CACE,KAAM,WACN,KAAM,SACR,EACA,CACE,KAAM,UACN,KAAM,qBACR,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,QACN,KAAM,SACR,EACA,CACE,KAAM,SACN,KAAM,SACR,CACF,CACF,EACA,aAAAA,CACF,CACF,CACF,CACF,CACF,EAEA,SAAS,0BAA2B,IAAM,CACxC,IAAIC,EAEJ,MAAMC,EAAa,CACjB,aAAc,CACZ,CACE,KAAM,UACN,KAAM,eACR,EACA,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,cACN,KAAM,SACR,CACF,EACA,cAAe,CACb,CACE,KAAM,UACN,KAAM,OACR,EACA,CACE,KAAM,SACN,KAAM,SACR,EACA,CACE,KAAM,aACN,KAAM,QACR,EACA,CACE,KAAM,QACN,KAAM,QACR,CACF,EACA,aAAc,CACZ,CACE,KAAM,OACN,KAAM,QACR,EACA,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,oBACN,KAAM,SACR,CACF,CACF,EAEA,UAAU,IAAM,CACd,MAAMC,EAAS,CACb,IAAK,CACH,IAAK,kDACL,KAAM,MACR,CACF,EACAF,EAAa,IAAI,0BAAwBE,CAAM,EAC/C,KAAK,cAAc,CACrB,CAAC,EAED,GAAG,0DAA2D,SAAY,CAExE,MAAMC,EAAU,kBAAkB,EAAAC,QAAQ,OAAO,GAC3CC,EAAa,KAAK,GAAG,IAAM,QAAQ,QAAQ,CAAE,KAAM,CAAC,CAAE,CAAC,CAAC,EAC9D,KAAK,MAAM,EAAAC,QAAO,SAAS,EAAE,mBAAmBD,CAAU,EAG1D,MAAML,EAAW,oBAAoB,CACnC,QAAS,EACT,QAAS,OACT,QAAS,KACT,OAAQ,CAAC,CACX,CAAC,EAGD,OAAOK,CAAU,EAAE,qBACjB,OAAO,iBAAiB,CACtB,QAAS,CAAE,0BAA2BF,CAAQ,CAChD,CAAC,CACH,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CAExE,MAAMI,EAAad,EAAgB,CACjC,CACE,aAAc,UACd,oBAAqB,EACrB,WACE,qIACF,WAAY,CACV,KAAM,8IACR,EACA,KAAM,SACR,EACA,CACE,aAAc,mBACd,OAAQ,QACR,WAAY,gBACZ,SAAU,EACV,WACE,+KACF,WAAY,CACV,KAAM,8IACR,EACA,KAAM,OACR,EACA,CACE,aAAc,mBACd,OAAQ,SACR,WAAY,iBACZ,SAAU,EACV,WACE,iLACF,WAAY,CACV,KAAM,gJACR,EACA,KAAM,OACR,EACA,CACE,aAAc,qBACd,OAAQ,MACR,WAAY,UACZ,WACE,uKACF,WAAY,CACV,KAAM,gJACR,EACA,KAAM,OACR,EACA,CACE,aAAc,kBACd,OAAQ,WACR,WAAY,qBACZ,WACE,uLACF,WAAY,CACV,KAAM,8IACR,EACA,KAAM,OACR,CACF,CAAC,EACD,KAAK,MAAM,EAAAa,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMC,CAAW,CAAC,EAGnE,MAAMC,EAAS,MAAMR,EAAW,oBAAoB,CAClD,QAAS,EACT,QAAS,6CACT,QAAS,KACT,OAAQC,CACV,CAAC,EAGD,OAAOO,CAAM,EAAE,WACb,SAAM,CACJ,YAAa,CACX,YAAa,UACb,aAAc,EACd,UACE,8IACJ,EACA,QAAS,CACP,CACE,KAAM,QACN,YAAa,mBACb,KAAM,gBACN,WAAY,EACZ,UACE,8IACJ,EACA,CACE,KAAM,SACN,YAAa,mBACb,KAAM,iBACN,WAAY,EACZ,UACE,gJACJ,EACA,CACE,KAAM,MACN,YAAa,qBACb,KAAM,UACN,UACE,gJACJ,EACA,CACE,KAAM,WACN,YAAa,kBACb,KAAM,qBACN,UACE,8IACJ,CACF,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,0DAA2D,SAAY,CAExE,MAAMD,EAAad,EAAgB,CACjC,CACE,aAAc,UACd,oBAAqB,EACrB,WACE,qIACF,WAAY,CACV,KAAM,8IACR,EACA,KAAM,SACR,EACA,CACE,aAAc,mBACd,OAAQ,QACR,WAAY,gBACZ,SAAU,EACV,WACE,+KACF,WAAY,CACV,KAAM,8IACR,EACA,KAAM,OACR,EACA,CACE,aAAc,mBACd,OAAQ,SACR,WAAY,iBACZ,SAAU,EACV,WACE,iLACF,WAAY,CACV,KAAM,gJACR,EACA,KAAM,OACR,EACA,CACE,aAAc,qBACd,OAAQ,MACR,WAAY,UACZ,WACE,uKACF,WAAY,CACV,KAAM,gJACR,EACA,KAAM,OACR,EACA,CACE,aAAc,kBACd,OAAQ,WACR,WAAY,qBACZ,WACE,uLACF,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",
6
- "names": ["HttpTypedDataDataSource_test_exports", "__export", "buildDescriptor", "__toCommonJS", "import_axios", "import_purify_ts", "import_HttpTypedDataDataSource", "import_package", "instructions", "datasource", "TEST_TYPES", "config", "version", "PACKAGE", "requestSpy", "axios", "filtersDTO", "result"]
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport { HttpTypedDataDataSource } from \"@/typed-data/data/HttpTypedDataDataSource\";\nimport { type TypedDataDataSource } from \"@/typed-data/data/TypedDataDataSource\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { type FiltersDto, type InstructionField } from \"./FiltersDto\";\n\nvi.mock(\"axios\");\n\nexport const buildDescriptor = (\n instructions: InstructionField[],\n): FiltersDto[] => [\n {\n descriptors_eip712: {\n \"0x000000000022d473030f116ddee9f6b43ac78ba3\": {\n \"4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3\": {\n schema: {\n DutchOutput: [\n {\n name: \"token\",\n type: \"address\",\n },\n {\n name: \"startAmount\",\n type: \"uint256\",\n },\n {\n name: \"endAmount\",\n type: \"uint256\",\n },\n {\n name: \"recipient\",\n type: \"address\",\n },\n ],\n EIP712Domain: [\n {\n name: \"name\",\n type: \"string\",\n },\n {\n name: \"chainId\",\n type: \"uint256\",\n },\n {\n name: \"verifyingContract\",\n type: \"address\",\n },\n ],\n ExclusiveDutchOrder: [\n {\n name: \"info\",\n type: \"OrderInfo\",\n },\n {\n name: \"decayStartTime\",\n type: \"uint256\",\n },\n {\n name: \"decayEndTime\",\n type: \"uint256\",\n },\n {\n name: \"exclusiveFiller\",\n type: \"address\",\n },\n {\n name: \"exclusivityOverrideBps\",\n type: \"uint256\",\n },\n {\n name: \"inputToken\",\n type: \"address\",\n },\n {\n name: \"inputStartAmount\",\n type: \"uint256\",\n },\n {\n name: \"inputEndAmount\",\n type: \"uint256\",\n },\n {\n name: \"outputs\",\n type: \"DutchOutput[]\",\n },\n ],\n OrderInfo: [\n {\n name: \"reactor\",\n type: \"address\",\n },\n {\n name: \"swapper\",\n type: \"address\",\n },\n {\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n name: \"additionalValidationContract\",\n type: \"address\",\n },\n {\n name: \"additionalValidationData\",\n type: \"bytes\",\n },\n ],\n PermitWitnessTransferFrom: [\n {\n name: \"permitted\",\n type: \"TokenPermissions\",\n },\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n name: \"witness\",\n type: \"ExclusiveDutchOrder\",\n },\n ],\n TokenPermissions: [\n {\n name: \"token\",\n type: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n },\n instructions,\n },\n },\n },\n },\n];\n\nconst config = {\n web3checks: {\n url: \"web3checksUrl\",\n },\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n mode: \"prod\",\n },\n originToken: \"originToken\",\n} as ContextModuleConfig;\ndescribe(\"HttpTypedDataDataSource\", () => {\n let datasource: TypedDataDataSource;\n\n const TEST_TYPES = {\n PermitSingle: [\n {\n name: \"details\",\n type: \"PermitDetails\",\n },\n {\n name: \"spender\",\n type: \"address\",\n },\n {\n name: \"sigDeadline\",\n type: \"uint256\",\n },\n ],\n PermitDetails: [\n {\n type: \"address\",\n name: \"token\",\n },\n {\n name: \"amount\",\n type: \"uint160\",\n },\n {\n name: \"expiration\",\n type: \"uint48\",\n },\n {\n name: \"nonce\",\n type: \"uint48\",\n },\n ],\n EIP712Domain: [\n {\n name: \"name\",\n type: \"string\",\n },\n {\n name: \"chainId\",\n type: \"uint256\",\n },\n {\n name: \"verifyingContract\",\n type: \"address\",\n },\n ],\n };\n\n beforeAll(() => {\n datasource = new HttpTypedDataDataSource(config);\n vi.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version header\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: [] }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x00\",\n version: \"v2\",\n schema: {},\n });\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: version,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n }),\n );\n });\n\n it(\"should return V2 filters when axios response is correct\", async () => {\n // GIVEN\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Permit2\",\n field_mappers_count: 4,\n descriptor:\n \"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432\",\n signatures: {\n prod: \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n type: \"message\",\n },\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n },\n {\n display_name: \"Spender name\",\n format: \"trusted-name\",\n field_path: \"details.spender\",\n name_types: [\"contract\"],\n name_sources: [\"cal\", \"local\", \"ens\"],\n descriptor:\n \"2c000000000000a4b1ff970a61a04b1ca14834a43f5de4533ebddb5cc8d4dd8410bdcf861c48d353f8e3a9b738282a0fd9ba7239f59baa90997370656e6465725370656e64657202010002\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d54\",\n },\n type: \"field\",\n },\n {\n display_name: \"Amount allowance\",\n format: \"amount\",\n field_path: \"details.amount\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e616d6f756e74416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f\",\n },\n type: \"field\",\n },\n {\n display_name: \"Approve to spender\",\n format: \"raw\",\n field_path: \"spender\",\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df37370656e646572417070726f766520746f207370656e646572\",\n signatures: {\n prod: \"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f\",\n },\n type: \"field\",\n },\n {\n display_name: \"Approval expire\",\n format: \"datetime\",\n field_path: \"details.expiration\",\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e65787069726174696f6e417070726f76616c20657870697265\",\n signatures: {\n prod: \"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff\",\n },\n type: \"field\",\n },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022D473030F116DDEE9F6B43AC78BA3\",\n version: \"v2\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result).toEqual(\n Right({\n messageInfo: {\n displayName: \"Permit2\",\n filtersCount: 4,\n signature:\n \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n filters: [\n {\n type: \"token\",\n displayName: \"Amount allowance\",\n path: \"details.token\",\n tokenIndex: 0,\n signature:\n \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n {\n type: \"trusted-name\",\n displayName: \"Spender name\",\n path: \"details.spender\",\n signature:\n \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d54\",\n types: [\"contract\"],\n sources: [\"cal\", \"local\", \"ens\"],\n typesAndSourcesPayload: \"010203010002\",\n },\n {\n type: \"amount\",\n displayName: \"Amount allowance\",\n path: \"details.amount\",\n tokenIndex: 0,\n signature:\n \"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f\",\n },\n {\n type: \"raw\",\n displayName: \"Approve to spender\",\n path: \"spender\",\n signature:\n \"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f\",\n },\n {\n type: \"datetime\",\n displayName: \"Approval expire\",\n path: \"details.expiration\",\n signature:\n \"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff\",\n },\n ],\n }),\n );\n });\n\n it(\"should return V1 filters when axios response is correct\", async () => {\n // GIVEN\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Permit2\",\n field_mappers_count: 4,\n descriptor:\n \"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432\",\n signatures: {\n prod: \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n type: \"message\",\n },\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n },\n {\n display_name: \"Amount allowance\",\n format: \"amount\",\n field_path: \"details.amount\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e616d6f756e74416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f\",\n },\n type: \"field\",\n },\n {\n display_name: \"Approve to spender\",\n format: \"raw\",\n field_path: \"spender\",\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df37370656e646572417070726f766520746f207370656e646572\",\n signatures: {\n prod: \"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f\",\n },\n type: \"field\",\n },\n {\n display_name: \"Approval expire\",\n format: \"datetime\",\n field_path: \"details.expiration\",\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e65787069726174696f6e417070726f76616c20657870697265\",\n signatures: {\n prod: \"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff\",\n },\n type: \"field\",\n },\n ]);\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result).toEqual(\n Right({\n messageInfo: {\n displayName: \"Permit2\",\n filtersCount: 4,\n signature:\n \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n filters: [\n {\n type: \"raw\",\n displayName: \"Amount allowance\",\n path: \"details.token\",\n signature:\n \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n {\n type: \"raw\",\n displayName: \"Amount allowance\",\n path: \"details.amount\",\n signature:\n \"30450221008f9e2f33b35872e63b2024a6d4938525c6e72364604da2d5e21b3d7fa44cac8a02207d4fe42c9d3994a322dae99adc2c56157435c177c51831103fdaf3cef12bb19f\",\n },\n {\n type: \"raw\",\n displayName: \"Approve to spender\",\n path: \"spender\",\n signature:\n \"3045022100dddb92141e3b3f21dafb60c8d5093e28b25a8dc4f926ed501b6d2021203f68bc02201abca405540e72b5b70120a428967b776edb8a88ebd9b1d7aa320c3df602027f\",\n },\n {\n type: \"raw\",\n displayName: \"Approval expire\",\n path: \"details.expiration\",\n signature:\n \"3044022060a11c1b15d07e7172e2e68a4e4aa5cbd3b5af900907634b1bce58000eab9fb502201e40963d9e2b00948ce16d3817756329e11a81e8b14b762adff68db4b3a4b8ff\",\n },\n ],\n }),\n );\n });\n\n it(\"should return an error when data is empty\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no typed data filters for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error when schema is not found\", async () => {\n const filtersDTO = buildDescriptor([]);\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error when schema is undefined\", async () => {\n const filtersDTO = buildDescriptor(\n undefined as unknown as InstructionField[],\n );\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if no message info is found\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n },\n ]);\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: no message info for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if message info display name is missing\", async () => {\n const filtersDTO = buildDescriptor([\n {\n // display_name: \"Permit2\",\n field_mappers_count: 4,\n descriptor:\n \"b7000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3045065726d697432\",\n signatures: {\n prod: \"304402201675b7d8507b40de5136c386815afdad8012cb8e3f0e0a126c758d6fbb3f6b0f0220595cbfeeab7591d0eebe40f0e4ea8ea53beeaf89ee50b7faf97f97bdf36abbce\",\n },\n type: \"message\",\n } as InstructionField,\n ]);\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if field path is invalid\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n // field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as InstructionField,\n ]);\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if field display_name is invalid\", async () => {\n const filtersDTO = buildDescriptor([\n {\n // display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as InstructionField,\n ]);\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error if field signatures.prod is missing\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: 0,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n test: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as InstructionField,\n ]);\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error on token fileds with coin ref to null\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"token\",\n field_path: \"details.token\",\n coin_ref: null,\n descriptor:\n \"48000000000000a4b1000000000022d473030f116ddee9f6b43ac78ba34d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df364657461696c732e746f6b656e416d6f756e7420616c6c6f77616e6365\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as unknown as InstructionField,\n ]);\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v2\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error on trusted names without sources and types\", async () => {\n const filtersDTO = buildDescriptor([\n {\n display_name: \"Amount allowance\",\n format: \"trusted-name\",\n field_path: \"details.token\",\n descriptor:\n \"2c000000000000a4b1ff970a61a04b1ca14834a43f5de4533ebddb5cc8d4dd8410bdcf861c48d353f8e3a9b738282a0fd9ba7239f59baa90997370656e6465725370656e64657202010002\",\n signatures: {\n prod: \"30440220238723d4ddd47baf829d547802a2017476bf68e03d0b920fd46aa543de81d5b902206123218eae82c5f898454c45262e5b0b839dc9d84b2b0926fe14e8218b5b0d53\",\n },\n type: \"field\",\n } as unknown as InstructionField,\n ]);\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: filtersDTO });\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v2\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpTypedDataDataSource: invalid typed data field for address 0x000000000022d473030f116ddee9f6b43ac78ba3 on chain 1 for schema 4d593149e876e739220f3b5ede1b38a0213d76c4705b1547c4323df3`,\n ),\n );\n });\n\n it(\"should return an error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const result = await datasource.getTypedDataFilters({\n chainId: 1,\n address: \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n version: \"v1\",\n schema: TEST_TYPES,\n });\n\n // THEN\n expect(result.isLeft()).toEqual(true);\n });\n});\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAsB,qBAGtBC,EAGO,yCACPC,EAAwC,qDAExCC,EAAoB,iCAIpB,GAAG,KAAK,OAAO,EAER,MAAMN,EACXO,GACiB,CACjB,CACE,mBAAoB,CAClB,6CAA8C,CAC5C,2DAA4D,CAC1D,OAAQ,CACN,YAAa,CACX,CACE,KAAM,QACN,KAAM,SACR,EACA,CACE,KAAM,cACN,KAAM,SACR,EACA,CACE,KAAM,YACN,KAAM,SACR,EACA,CACE,KAAM,YACN,KAAM,SACR,CACF,EACA,aAAc,CACZ,CACE,KAAM,OACN,KAAM,QACR,EACA,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,oBACN,KAAM,SACR,CACF,EACA,oBAAqB,CACnB,CACE,KAAM,OACN,KAAM,WACR,EACA,CACE,KAAM,iBACN,KAAM,SACR,EACA,CACE,KAAM,eACN,KAAM,SACR,EACA,CACE,KAAM,kBACN,KAAM,SACR,EACA,CACE,KAAM,yBACN,KAAM,SACR,EACA,CACE,KAAM,aACN,KAAM,SACR,EACA,CACE,KAAM,mBACN,KAAM,SACR,EACA,CACE,KAAM,iBACN,KAAM,SACR,EACA,CACE,KAAM,UACN,KAAM,eACR,CACF,EACA,UAAW,CACT,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,QACN,KAAM,SACR,EACA,CACE,KAAM,WACN,KAAM,SACR,EACA,CACE,KAAM,+BACN,KAAM,SACR,EACA,CACE,KAAM,2BACN,KAAM,OACR,CACF,EACA,0BAA2B,CACzB,CACE,KAAM,YACN,KAAM,kBACR,EACA,CACE,KAAM,UACN,KAAM,SACR,EACA,CACE,KAAM,QACN,KAAM,SACR,EACA,CACE,KAAM,WACN,KAAM,SACR,EACA,CACE,KAAM,UACN,KAAM,qBACR,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,QACN,KAAM,SACR,EACA,CACE,KAAM,SACN,KAAM,S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",
6
+ "names": ["HttpTypedDataDataSource_test_exports", "__export", "buildDescriptor", "__toCommonJS", "import_axios", "import_purify_ts", "import_HttpHeaders", "import_HttpTypedDataDataSource", "import_package", "instructions", "config", "datasource", "TEST_TYPES", "version", "PACKAGE", "requestSpy", "axios", "filtersDTO", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var f=(t,o)=>{for(var a in o)p(t,a,{get:o[a],enumerable:!0})},T=(t,o,a,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of i(o))!u.call(t,e)&&e!==a&&p(t,e,{get:()=>o[e],enumerable:!(r=y(o,e))||r.enumerable});return t};var c=t=>T(p({},"__esModule",{value:!0}),t);var s={};f(s,{typedDataModuleFactory:()=>l});module.exports=c(s);var n=require("inversify"),D=require("../../typed-data/data/HttpTypedDataDataSource"),d=require("../../typed-data/di/typedDataTypes"),m=require("../../typed-data/domain/DefaultTypedDataContextLoader");const l=()=>new n.ContainerModule((t,o,a,r)=>{t(d.typedDataTypes.TypedDataDataSource).to(D.HttpTypedDataDataSource),t(d.typedDataTypes.TypedDataContextLoader).to(m.DefaultTypedDataContextLoader)});0&&(module.exports={typedDataModuleFactory});
1
+ "use strict";var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var T=(t,o)=>{for(var e in o)r(t,e,{get:o[e],enumerable:!0})},c=(t,o,e,d)=>{if(o&&typeof o=="object"||typeof o=="function")for(let a of n(o))!u.call(t,a)&&a!==e&&r(t,a,{get:()=>o[a],enumerable:!(d=f(o,a))||d.enumerable});return t};var i=t=>c(r({},"__esModule",{value:!0}),t);var x={};T(x,{typedDataModuleFactory:()=>l});module.exports=i(x);var D=require("inversify"),m=require("../../typed-data/data/HttpTypedDataDataSource"),p=require("../../typed-data/di/typedDataTypes"),y=require("../../typed-data/domain/DefaultTypedDataContextLoader");const l=()=>new D.ContainerModule(({bind:t})=>{t(p.typedDataTypes.TypedDataDataSource).to(m.HttpTypedDataDataSource),t(p.typedDataTypes.TypedDataContextLoader).to(y.DefaultTypedDataContextLoader)});0&&(module.exports={typedDataModuleFactory});
2
2
  //# sourceMappingURL=typedDataModuleFactory.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/typed-data/di/typedDataModuleFactory.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpTypedDataDataSource } from \"@/typed-data/data/HttpTypedDataDataSource\";\nimport { typedDataTypes } from \"@/typed-data/di/typedDataTypes\";\nimport { DefaultTypedDataContextLoader } from \"@/typed-data/domain/DefaultTypedDataContextLoader\";\n\nexport const typedDataModuleFactory = () =>\n new ContainerModule((bind, _unbind, _isBound, _rebind) => {\n bind(typedDataTypes.TypedDataDataSource).to(HttpTypedDataDataSource);\n bind(typedDataTypes.TypedDataContextLoader).to(\n DefaultTypedDataContextLoader,\n );\n });\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAAwC,qDACxCC,EAA+B,0CAC/BC,EAA8C,6DAEvC,MAAML,EAAyB,IACpC,IAAI,kBAAgB,CAACM,EAAMC,EAASC,EAAUC,IAAY,CACxDH,EAAK,iBAAe,mBAAmB,EAAE,GAAG,yBAAuB,EACnEA,EAAK,iBAAe,sBAAsB,EAAE,GAC1C,+BACF,CACF,CAAC",
6
- "names": ["typedDataModuleFactory_exports", "__export", "typedDataModuleFactory", "__toCommonJS", "import_inversify", "import_HttpTypedDataDataSource", "import_typedDataTypes", "import_DefaultTypedDataContextLoader", "bind", "_unbind", "_isBound", "_rebind"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpTypedDataDataSource } from \"@/typed-data/data/HttpTypedDataDataSource\";\nimport { typedDataTypes } from \"@/typed-data/di/typedDataTypes\";\nimport { DefaultTypedDataContextLoader } from \"@/typed-data/domain/DefaultTypedDataContextLoader\";\n\nexport const typedDataModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(typedDataTypes.TypedDataDataSource).to(HttpTypedDataDataSource);\n bind(typedDataTypes.TypedDataContextLoader).to(\n DefaultTypedDataContextLoader,\n );\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAAwC,qDACxCC,EAA+B,0CAC/BC,EAA8C,6DAEvC,MAAML,EAAyB,IACpC,IAAI,kBAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAK,iBAAe,mBAAmB,EAAE,GAAG,yBAAuB,EACnEA,EAAK,iBAAe,sBAAsB,EAAE,GAC1C,+BACF,CACF,CAAC",
6
+ "names": ["typedDataModuleFactory_exports", "__export", "typedDataModuleFactory", "__toCommonJS", "import_inversify", "import_HttpTypedDataDataSource", "import_typedDataTypes", "import_DefaultTypedDataContextLoader", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var C=(o,e)=>{for(var t in e)m(o,t,{get:e[t],enumerable:!0})},F=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of v(e))!I.call(o,a)&&a!==t&&m(o,a,{get:()=>e[a],enumerable:!(r=h(e,a))||r.enumerable});return o};var A=o=>F(m({},"__esModule",{value:!0}),o),S=(o,e,t,r)=>{for(var a=r>1?void 0:r?h(e,t):e,s=o.length-1,n;s>=0;s--)(n=o[s])&&(a=(r?n(e,t,a):n(a))||a);return r&&a&&m(e,t,a),a},u=(o,e)=>(t,r)=>e(t,r,o);var R={};C(R,{DefaultTypedDataContextLoader:()=>c});module.exports=A(R);var y=require("inversify"),k=require("../../shared/model/TypedDataClearSignContext"),D=require("../../token/di/tokenTypes"),g=require("../../typed-data/di/typedDataTypes");let c=class{constructor(e,t){this.dataSource=e;this.tokenDataSource=t}async load(e){const t=await this.dataSource.getTypedDataFilters({address:e.verifyingContract,chainId:e.chainId,version:e.version,schema:e.schema});if(t.isLeft())return{type:"error",error:t.extract()};const{messageInfo:r,filters:a}=t.unsafeCoerce(),s={},n={};for(const i of a){if(s[i.path]=i,i.type!=="token"&&i.type!=="amount")continue;const T=i.tokenIndex;if(n[T]===void 0){if(i.type==="token"){const p=e.fieldsValues.filter(d=>d.path===i.path);if(p.length===0)continue;const f=p[0],l=this.convertAddressToHexaString(f.value);if(p.every(d=>this.convertAddressToHexaString(d.value)===l)){const d=e.chainId;(await this.tokenDataSource.getTokenInfosPayload({address:l,chainId:d})).ifRight(x=>{n[T]=x})}}else if(i.type==="amount"&&T===k.VERIFYING_CONTRACT_TOKEN_INDEX){const p=e.verifyingContract,f=e.chainId;(await this.tokenDataSource.getTokenInfosPayload({address:p,chainId:f})).ifRight(d=>{n[T]=d})}}}return{type:"success",messageInfo:r,filters:s,tokens:n}}convertAddressToHexaString(e){return`0x${Array.from(e,t=>t.toString(16).padStart(2,"0")).join("").padStart(40,"0")}`}};c=S([(0,y.injectable)(),u(0,(0,y.inject)(g.typedDataTypes.TypedDataDataSource)),u(1,(0,y.inject)(D.tokenTypes.TokenDataSource))],c);0&&(module.exports={DefaultTypedDataContextLoader});
1
+ "use strict";var u=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var A=(o,e)=>{for(var t in e)u(o,t,{get:e[t],enumerable:!0})},F=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of I(e))!C.call(o,a)&&a!==t&&u(o,a,{get:()=>e[a],enumerable:!(r=S(e,a))||r.enumerable});return o};var H=o=>F(u({},"__esModule",{value:!0}),o),g=(o,e,t,r)=>{for(var a=r>1?void 0:r?S(e,t):e,c=o.length-1,p;c>=0;c--)(p=o[c])&&(a=(r?p(e,t,a):p(a))||a);return r&&a&&u(e,t,a),a},h=(o,e)=>(t,r)=>e(t,r,o);var R={};A(R,{DefaultTypedDataContextLoader:()=>T});module.exports=H(R);var m=require("inversify"),k=require("../../shared/model/TypedDataClearSignContext"),D=require("../../token/di/tokenTypes"),v=require("../../typed-data/di/typedDataTypes");let T=class{constructor(e,t){this.dataSource=e;this.tokenDataSource=t}async load(e){const t=await this.dataSource.getTypedDataFilters({address:e.verifyingContract,chainId:e.chainId,version:e.version,schema:e.schema});if(t.isLeft())return{type:"error",error:t.extract()};const{messageInfo:r,filters:a}=t.unsafeCoerce(),c={},p={},l={};for(const n of a){if(c[n.path]=n,n.type==="trusted-name"){const i=e.fieldsValues.filter(s=>s.path===n.path);if(i.length!==0){const s=i[0],y=this.convertAddressToHexaString(s.value);p[n.path]=y}continue}if(n.type!=="token"&&n.type!=="amount")continue;const f=n.tokenIndex;if(l[f]===void 0){if(n.type==="token"){const i=e.fieldsValues.filter(d=>d.path===n.path);if(i.length===0)continue;const s=i[0],y=this.convertAddressToHexaString(s.value);if(i.every(d=>this.convertAddressToHexaString(d.value)===y)){const d=e.chainId;(await this.tokenDataSource.getTokenInfosPayload({address:y,chainId:d})).ifRight(x=>{l[f]=x})}}else if(n.type==="amount"&&f===k.VERIFYING_CONTRACT_TOKEN_INDEX){const i=e.verifyingContract,s=e.chainId;(await this.tokenDataSource.getTokenInfosPayload({address:i,chainId:s})).ifRight(d=>{l[f]=d})}}}return{type:"success",messageInfo:r,filters:c,trustedNamesAddresses:p,tokens:l}}convertAddressToHexaString(e){return`0x${Array.from(e,t=>t.toString(16).padStart(2,"0")).join("").padStart(40,"0")}`}};T=g([(0,m.injectable)(),h(0,(0,m.inject)(v.typedDataTypes.TypedDataDataSource)),h(1,(0,m.inject)(D.tokenTypes.TokenDataSource))],T);0&&(module.exports={DefaultTypedDataContextLoader});
2
2
  //# sourceMappingURL=DefaultTypedDataContextLoader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/typed-data/domain/DefaultTypedDataContextLoader.ts"],
4
- "sourcesContent": ["import type { HexaString } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport type {\n TypedDataClearSignContext,\n TypedDataFilter,\n TypedDataFilterPath,\n TypedDataToken,\n TypedDataTokenIndex,\n} from \"@/shared/model/TypedDataClearSignContext\";\nimport { VERIFYING_CONTRACT_TOKEN_INDEX } from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataContext } from \"@/shared/model/TypedDataContext\";\nimport type { TokenDataSource } from \"@/token/data/TokenDataSource\";\nimport { tokenTypes } from \"@/token/di/tokenTypes\";\nimport type { TypedDataDataSource } from \"@/typed-data/data/TypedDataDataSource\";\nimport { typedDataTypes } from \"@/typed-data/di/typedDataTypes\";\nimport type { TypedDataContextLoader } from \"@/typed-data/domain/TypedDataContextLoader\";\n\n@injectable()\nexport class DefaultTypedDataContextLoader implements TypedDataContextLoader {\n constructor(\n @inject(typedDataTypes.TypedDataDataSource)\n private dataSource: TypedDataDataSource,\n @inject(tokenTypes.TokenDataSource)\n private tokenDataSource: TokenDataSource,\n ) {}\n\n async load(typedData: TypedDataContext): Promise<TypedDataClearSignContext> {\n // Get the typed data filters from the data source\n const data = await this.dataSource.getTypedDataFilters({\n address: typedData.verifyingContract,\n chainId: typedData.chainId,\n version: typedData.version,\n schema: typedData.schema,\n });\n\n // If there was an error getting the typed data filters, return an error immediately\n if (data.isLeft()) {\n return {\n type: \"error\",\n error: data.extract(),\n };\n }\n\n // Else, extract the message info and filters\n const { messageInfo, filters } = data.unsafeCoerce();\n\n // Loop through the typed data filters to extract informations\n const mappedFilters: Record<TypedDataFilterPath, TypedDataFilter> = {};\n const mappedTokens: Record<TypedDataTokenIndex, TypedDataToken> = {};\n for (const filter of filters) {\n // Add the filter to the clear signing context\n mappedFilters[filter.path] = filter;\n if (filter.type !== \"token\" && filter.type !== \"amount\") {\n continue; // no token reference\n }\n\n // If the filter references a token, retrieve its descriptor from the tokens data source\n const tokenIndex = filter.tokenIndex;\n if (mappedTokens[tokenIndex] !== undefined) {\n continue; // Already fetched for a previous filter\n }\n\n // If the filter is a token, get token address from typed message values, and fetch descriptor\n if (filter.type === \"token\") {\n const values = typedData.fieldsValues.filter(\n (entry) => entry.path === filter.path,\n );\n if (values.length === 0) {\n // No value matching the referenced token. It may be located in an empty array.\n continue;\n }\n const value = values[0]!;\n const address = this.convertAddressToHexaString(value.value);\n\n // Arrays with different tokens are not supported since there is only 1 tokenIndex per filter.\n // Only fetch tokens if all values are the same.\n if (\n values.every(\n (entry) => this.convertAddressToHexaString(entry.value) === address,\n )\n ) {\n // Fetch descriptor\n const chainId = typedData.chainId;\n const payload = await this.tokenDataSource.getTokenInfosPayload({\n address,\n chainId,\n });\n payload.ifRight((p) => {\n mappedTokens[tokenIndex] = p;\n });\n }\n }\n\n // If the filter is an amount with a reference to the verifyingContract, fetch verifyingContract descriptor.\n // This is because descriptors data-sources should be compatible with Ledger devices specifications:\n // https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#amount-join-value\n else if (\n filter.type === \"amount\" &&\n tokenIndex === VERIFYING_CONTRACT_TOKEN_INDEX\n ) {\n const address = typedData.verifyingContract;\n const chainId = typedData.chainId;\n const payload = await this.tokenDataSource.getTokenInfosPayload({\n address,\n chainId,\n });\n payload.ifRight((p) => {\n mappedTokens[tokenIndex] = p;\n });\n }\n }\n\n return {\n type: \"success\",\n messageInfo,\n filters: mappedFilters,\n tokens: mappedTokens,\n };\n }\n\n private convertAddressToHexaString(address: Uint8Array): HexaString {\n // Address size is 20 bytes so 40 characters, padded with zeros on the left\n return `0x${Array.from(address, (byte) =>\n byte.toString(16).padStart(2, \"0\"),\n )\n .join(\"\")\n .padStart(40, \"0\")}`;\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmC,qBASnCC,EAA+C,oDAG/CC,EAA2B,iCAE3BC,EAA+B,0CAIxB,IAAMC,EAAN,KAAsE,CAC3E,YAEUC,EAEAC,EACR,CAHQ,gBAAAD,EAEA,qBAAAC,CACP,CAEH,MAAM,KAAKC,EAAiE,CAE1E,MAAMC,EAAO,MAAM,KAAK,WAAW,oBAAoB,CACrD,QAASD,EAAU,kBACnB,QAASA,EAAU,QACnB,QAASA,EAAU,QACnB,OAAQA,EAAU,MACpB,CAAC,EAGD,GAAIC,EAAK,OAAO,EACd,MAAO,CACL,KAAM,QACN,MAAOA,EAAK,QAAQ,CACtB,EAIF,KAAM,CAAE,YAAAC,EAAa,QAAAC,CAAQ,EAAIF,EAAK,aAAa,EAG7CG,EAA8D,CAAC,EAC/DC,EAA4D,CAAC,EACnE,UAAWC,KAAUH,EAAS,CAG5B,GADAC,EAAcE,EAAO,IAAI,EAAIA,EACzBA,EAAO,OAAS,SAAWA,EAAO,OAAS,SAC7C,SAIF,MAAMC,EAAaD,EAAO,WAC1B,GAAID,EAAaE,CAAU,IAAM,QAKjC,GAAID,EAAO,OAAS,QAAS,CAC3B,MAAME,EAASR,EAAU,aAAa,OACnCS,GAAUA,EAAM,OAASH,EAAO,IACnC,EACA,GAAIE,EAAO,SAAW,EAEpB,SAEF,MAAME,EAAQF,EAAO,CAAC,EAChBG,EAAU,KAAK,2BAA2BD,EAAM,KAAK,EAI3D,GACEF,EAAO,MACJC,GAAU,KAAK,2BAA2BA,EAAM,KAAK,IAAME,CAC9D,EACA,CAEA,MAAMC,EAAUZ,EAAU,SACV,MAAM,KAAK,gBAAgB,qBAAqB,CAC9D,QAAAW,EACA,QAAAC,CACF,CAAC,GACO,QAASC,GAAM,CACrBR,EAAaE,CAAU,EAAIM,CAC7B,CAAC,CACH,CACF,SAMEP,EAAO,OAAS,UAChBC,IAAe,iCACf,CACA,MAAMI,EAAUX,EAAU,kBACpBY,EAAUZ,EAAU,SACV,MAAM,KAAK,gBAAgB,qBAAqB,CAC9D,QAAAW,EACA,QAAAC,CACF,CAAC,GACO,QAASC,GAAM,CACrBR,EAAaE,CAAU,EAAIM,CAC7B,CAAC,CACH,EACF,CAEA,MAAO,CACL,KAAM,UACN,YAAAX,EACA,QAASE,EACT,OAAQC,CACV,CACF,CAEQ,2BAA2BM,EAAiC,CAElE,MAAO,KAAK,MAAM,KAAKA,EAAUG,GAC/BA,EAAK,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CACnC,EACG,KAAK,EAAE,EACP,SAAS,GAAI,GAAG,CAAC,EACtB,CACF,EA9GajB,EAANkB,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,iBAAe,mBAAmB,GAEzCA,EAAA,eAAO,aAAW,eAAe,IAJzBnB",
6
- "names": ["DefaultTypedDataContextLoader_exports", "__export", "DefaultTypedDataContextLoader", "__toCommonJS", "import_inversify", "import_TypedDataClearSignContext", "import_tokenTypes", "import_typedDataTypes", "DefaultTypedDataContextLoader", "dataSource", "tokenDataSource", "typedData", "data", "messageInfo", "filters", "mappedFilters", "mappedTokens", "filter", "tokenIndex", "values", "entry", "value", "address", "chainId", "p", "byte", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import type { HexaString } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport type {\n TypedDataClearSignContext,\n TypedDataFilter,\n TypedDataFilterPath,\n TypedDataToken,\n TypedDataTokenIndex,\n} from \"@/shared/model/TypedDataClearSignContext\";\nimport { VERIFYING_CONTRACT_TOKEN_INDEX } from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataContext } from \"@/shared/model/TypedDataContext\";\nimport type { TokenDataSource } from \"@/token/data/TokenDataSource\";\nimport { tokenTypes } from \"@/token/di/tokenTypes\";\nimport type { TypedDataDataSource } from \"@/typed-data/data/TypedDataDataSource\";\nimport { typedDataTypes } from \"@/typed-data/di/typedDataTypes\";\nimport type { TypedDataContextLoader } from \"@/typed-data/domain/TypedDataContextLoader\";\n\n@injectable()\nexport class DefaultTypedDataContextLoader implements TypedDataContextLoader {\n constructor(\n @inject(typedDataTypes.TypedDataDataSource)\n private dataSource: TypedDataDataSource,\n @inject(tokenTypes.TokenDataSource)\n private tokenDataSource: TokenDataSource,\n ) {}\n\n async load(typedData: TypedDataContext): Promise<TypedDataClearSignContext> {\n // Get the typed data filters from the data source\n const data = await this.dataSource.getTypedDataFilters({\n address: typedData.verifyingContract,\n chainId: typedData.chainId,\n version: typedData.version,\n schema: typedData.schema,\n });\n\n // If there was an error getting the typed data filters, return an error immediately\n if (data.isLeft()) {\n return {\n type: \"error\",\n error: data.extract(),\n };\n }\n\n // Else, extract the message info and filters\n const { messageInfo, filters } = data.unsafeCoerce();\n\n // Loop through the typed data filters to extract informations\n const mappedFilters: Record<TypedDataFilterPath, TypedDataFilter> = {};\n const mappedTrustedNames: Record<TypedDataFilterPath, HexaString> = {};\n const mappedTokens: Record<TypedDataTokenIndex, TypedDataToken> = {};\n for (const filter of filters) {\n // Add the filter to the clear signing context\n mappedFilters[filter.path] = filter;\n\n // If the filter is a trusted name, get the according address from typed message values.\n // don't fetch the descriptor yet since a device challenge will be needed.\n if (filter.type === \"trusted-name\") {\n const values = typedData.fieldsValues.filter(\n (entry) => entry.path === filter.path,\n );\n if (values.length !== 0) {\n const value = values[0]!;\n const address = this.convertAddressToHexaString(value.value);\n mappedTrustedNames[filter.path] = address;\n }\n continue;\n }\n\n // If the filter references a token, retrieve its descriptor from the tokens data source\n if (filter.type !== \"token\" && filter.type !== \"amount\") {\n continue; // no token reference\n }\n const tokenIndex = filter.tokenIndex;\n if (mappedTokens[tokenIndex] !== undefined) {\n continue; // Already fetched for a previous filter\n }\n\n // If the filter is a token, get token address from typed message values, and fetch descriptor\n if (filter.type === \"token\") {\n const values = typedData.fieldsValues.filter(\n (entry) => entry.path === filter.path,\n );\n if (values.length === 0) {\n // No value matching the referenced token. It may be located in an empty array.\n continue;\n }\n const value = values[0]!;\n const address = this.convertAddressToHexaString(value.value);\n\n // Arrays with different tokens are not supported since there is only 1 tokenIndex per filter.\n // Only fetch tokens if all values are the same.\n if (\n values.every(\n (entry) => this.convertAddressToHexaString(entry.value) === address,\n )\n ) {\n // Fetch descriptor\n const chainId = typedData.chainId;\n const payload = await this.tokenDataSource.getTokenInfosPayload({\n address,\n chainId,\n });\n payload.ifRight((p) => {\n mappedTokens[tokenIndex] = p;\n });\n }\n }\n\n // If the filter is an amount with a reference to the verifyingContract, fetch verifyingContract descriptor.\n // This is because descriptors data-sources should be compatible with Ledger devices specifications:\n // https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#amount-join-value\n else if (\n filter.type === \"amount\" &&\n tokenIndex === VERIFYING_CONTRACT_TOKEN_INDEX\n ) {\n const address = typedData.verifyingContract;\n const chainId = typedData.chainId;\n const payload = await this.tokenDataSource.getTokenInfosPayload({\n address,\n chainId,\n });\n payload.ifRight((p) => {\n mappedTokens[tokenIndex] = p;\n });\n }\n }\n\n return {\n type: \"success\",\n messageInfo,\n filters: mappedFilters,\n trustedNamesAddresses: mappedTrustedNames,\n tokens: mappedTokens,\n };\n }\n\n private convertAddressToHexaString(address: Uint8Array): HexaString {\n // Address size is 20 bytes so 40 characters, padded with zeros on the left\n return `0x${Array.from(address, (byte) =>\n byte.toString(16).padStart(2, \"0\"),\n )\n .join(\"\")\n .padStart(40, \"0\")}`;\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmC,qBASnCC,EAA+C,oDAG/CC,EAA2B,iCAE3BC,EAA+B,0CAIxB,IAAMC,EAAN,KAAsE,CAC3E,YAEUC,EAEAC,EACR,CAHQ,gBAAAD,EAEA,qBAAAC,CACP,CAEH,MAAM,KAAKC,EAAiE,CAE1E,MAAMC,EAAO,MAAM,KAAK,WAAW,oBAAoB,CACrD,QAASD,EAAU,kBACnB,QAASA,EAAU,QACnB,QAASA,EAAU,QACnB,OAAQA,EAAU,MACpB,CAAC,EAGD,GAAIC,EAAK,OAAO,EACd,MAAO,CACL,KAAM,QACN,MAAOA,EAAK,QAAQ,CACtB,EAIF,KAAM,CAAE,YAAAC,EAAa,QAAAC,CAAQ,EAAIF,EAAK,aAAa,EAG7CG,EAA8D,CAAC,EAC/DC,EAA8D,CAAC,EAC/DC,EAA4D,CAAC,EACnE,UAAWC,KAAUJ,EAAS,CAM5B,GAJAC,EAAcG,EAAO,IAAI,EAAIA,EAIzBA,EAAO,OAAS,eAAgB,CAClC,MAAMC,EAASR,EAAU,aAAa,OACnCS,GAAUA,EAAM,OAASF,EAAO,IACnC,EACA,GAAIC,EAAO,SAAW,EAAG,CACvB,MAAME,EAAQF,EAAO,CAAC,EAChBG,EAAU,KAAK,2BAA2BD,EAAM,KAAK,EAC3DL,EAAmBE,EAAO,IAAI,EAAII,CACpC,CACA,QACF,CAGA,GAAIJ,EAAO,OAAS,SAAWA,EAAO,OAAS,SAC7C,SAEF,MAAMK,EAAaL,EAAO,WAC1B,GAAID,EAAaM,CAAU,IAAM,QAKjC,GAAIL,EAAO,OAAS,QAAS,CAC3B,MAAMC,EAASR,EAAU,aAAa,OACnCS,GAAUA,EAAM,OAASF,EAAO,IACnC,EACA,GAAIC,EAAO,SAAW,EAEpB,SAEF,MAAME,EAAQF,EAAO,CAAC,EAChBG,EAAU,KAAK,2BAA2BD,EAAM,KAAK,EAI3D,GACEF,EAAO,MACJC,GAAU,KAAK,2BAA2BA,EAAM,KAAK,IAAME,CAC9D,EACA,CAEA,MAAME,EAAUb,EAAU,SACV,MAAM,KAAK,gBAAgB,qBAAqB,CAC9D,QAAAW,EACA,QAAAE,CACF,CAAC,GACO,QAASC,GAAM,CACrBR,EAAaM,CAAU,EAAIE,CAC7B,CAAC,CACH,CACF,SAMEP,EAAO,OAAS,UAChBK,IAAe,iCACf,CACA,MAAMD,EAAUX,EAAU,kBACpBa,EAAUb,EAAU,SACV,MAAM,KAAK,gBAAgB,qBAAqB,CAC9D,QAAAW,EACA,QAAAE,CACF,CAAC,GACO,QAASC,GAAM,CACrBR,EAAaM,CAAU,EAAIE,CAC7B,CAAC,CACH,EACF,CAEA,MAAO,CACL,KAAM,UACN,YAAAZ,EACA,QAASE,EACT,sBAAuBC,EACvB,OAAQC,CACV,CACF,CAEQ,2BAA2BK,EAAiC,CAElE,MAAO,KAAK,MAAM,KAAKA,EAAUI,GAC/BA,EAAK,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CACnC,EACG,KAAK,EAAE,EACP,SAAS,GAAI,GAAG,CAAC,EACtB,CACF,EA9HalB,EAANmB,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,iBAAe,mBAAmB,GAEzCA,EAAA,eAAO,aAAW,eAAe,IAJzBpB",
6
+ "names": ["DefaultTypedDataContextLoader_exports", "__export", "DefaultTypedDataContextLoader", "__toCommonJS", "import_inversify", "import_TypedDataClearSignContext", "import_tokenTypes", "import_typedDataTypes", "DefaultTypedDataContextLoader", "dataSource", "tokenDataSource", "typedData", "data", "messageInfo", "filters", "mappedFilters", "mappedTrustedNames", "mappedTokens", "filter", "values", "entry", "value", "address", "tokenIndex", "chainId", "p", "byte", "__decorateClass", "__decorateParam"]
7
7
  }