@ledgerhq/context-module 0.0.0-signer-eth-20250122093657 → 0.0.0-transaction-unfunded-20250917151052

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 +19 -19
  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
@@ -0,0 +1,2 @@
1
+ "use strict";var s=require("ethers"),r=require("purify-ts"),f=require("../../shared/model/ClearSignContext"),e=require("../../uniswap/constants/uniswap"),p=require("../../uniswap/data/DefaultCommandDecoderDataSource"),x=require("../../uniswap/data/EthersAbiDecoderDataSource"),i=require("./UniswapContextLoader");describe("UniswapContextLoader",()=>{const n={decode:vi.fn()},t={getTokenInfosPayload:vi.fn()};let c;describe("load",()=>{describe("with tokenDataSourceMock",()=>{beforeEach(()=>{vi.spyOn(t,"getTokenInfosPayload").mockImplementation(({address:a})=>Promise.resolve((0,r.Right)(`payload-${a}`))),c=new i.UniswapContextLoader(new p.DefaultCommandDecoderDataSource(new x.EthersAbiDecoderDataSource),t)}),it("should return an empty array if the selector is not UNISWAP_EXECUTE_SELECTOR",async()=>{const a={selector:"0x00000000",data:"0x00000000"},o=await c.load(a);expect(o).toEqual([])}),it("should return the external plugin context and the decoded contexts",async()=>{const a={chainId:1,data:"0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000067a4855b000000000000000000000000000000000000000000000000000000000000000300060c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000a18f07d736b90be5500000000000000000000000000000000000000000000000000000000b0b8122abd8412900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002bb9f599ce614feb2e1bbe58f180f370d05b39344e002710c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000017cc6042605381c158d2adab487434bde79aa61c000000000000000000000000000000000000000000000000000000000000005b000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000b0b8122abd84129c001a053efc49d03b694742500f49aa09df2360bd7e297fa730c745e0d4320b42fc33fa01ca1c85a46c561f624830fffbae2441ba0f2d54eb5b0f17e0e3561d10db0b7ee",selector:e.UNISWAP_EXECUTE_SELECTOR},o=await c.load(a);expect(o).toEqual([{type:f.ClearSignContextType.EXTERNAL_PLUGIN,payload:"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935"},{type:"token",payload:"payload-0xb9f599ce614feb2e1bbe58f180f370d05b39344e"},{type:"token",payload:"payload-0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}])}),it("should return the external plugin context and the decoded contexts with a permit",async()=>{const a={chainId:1,data:"0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000669b9ec100000000000000000000000000000000000000000000000000000000000000030a010c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000016000000000000000000000000055747be9f9f5beb232ad59fe7af013b81d95fd5e000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000066c32b0d0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b00000000000000000000000000000000000000000000000000000000669b9ec100000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000410d756f55acf289e9754faf91bba0a704b5c7c0aa4b1dfd551115ccbe4c7f290234e1a14265e1da0bc872a23627d997fe37a689c290d519f7b8c9bdde1b79108e1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000030ba49cbff5a00000000000000000000000000000000000000000000000089677c957272141800000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200271055747be9f9f5beb232ad59fe7af013b81d95fd5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000030ba49cbff5a000c001a0e406d9c91c8b46d959fcd31a28518a77bb248ebb316c5fab7b98335cce922f2aa0462cb970c32a8dbfe71c57b888c43b9ed04fce41d169dbfcc745445587adb771",selector:e.UNISWAP_EXECUTE_SELECTOR},o=await c.load(a);expect(o).toEqual([{type:f.ClearSignContextType.EXTERNAL_PLUGIN,payload:"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935"},{type:"token",payload:"payload-0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},{type:"token",payload:"payload-0x55747be9f9f5beb232ad59fe7af013b81d95fd5e"}])}),it("should return an empty array if the transaction is not supported",async()=>{const a={};vi.spyOn(n,"decode").mockReturnValue([]);const o=await c.load(a);expect(o).toEqual([])}),it("should return an empty array if a command is not supported",async()=>{const a={chainId:1,data:"0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000067a4bef600000000000000000000000000000000000000000000000000000000000000050b0105040c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000078e6708e70aed0f000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000059a16770000000000000000000000000000000000000000000000000078e6708e70aed0f00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb480001f4c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000027213e28d7fda5c57fe9e5dd923818dbccf71c4700000000000000000000000000000000000000000000000000000000003938700000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006f939b43d65be049b7533907db08e80ba6969f450000000000000000000000000000000000000000000000000000000059682f0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006f939b43d65be049b7533907db08e80ba6969f4500000000000000000000000000000000000000000000000000000000000000000cc080a07c86dd5813ec1f3725c402f8bea6105546d1093c59676023b971f1d83f61bd4ea02a353bf3028cabcbe68c5dc8906752bafe55afc86b6344edb3ffd8a3650332e8",selector:e.UNISWAP_EXECUTE_SELECTOR},o=await c.load(a);expect(o).toEqual([])})}),describe("with mocked ethers parseTransaction",()=>{beforeEach(()=>{vi.resetAllMocks(),c=new i.UniswapContextLoader(n,t)}),it("should return an array with contexts if 2 chain swaps are supported",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,chainId:66,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockReturnValue({args:["0x0809",["0x0001","0x0002"]]}),vi.spyOn(n,"decode").mockReturnValueOnce(["0x01","0x04","0x02"]).mockReturnValueOnce(["0x02","0x03"]),vi.spyOn(t,"getTokenInfosPayload").mockImplementation(({address:l})=>Promise.resolve((0,r.Right)(`payload-${l}`)));const d=await c.load(a);expect(n.decode).toHaveBeenNthCalledWith(1,e.UniswapSupportedCommand.V2_SWAP_EXACT_IN,"0x0001",66),expect(n.decode).toHaveBeenNthCalledWith(2,e.UniswapSupportedCommand.V2_SWAP_EXACT_OUT,"0x0002",66),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(1,{address:"0x01",chainId:66}),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(2,{address:"0x04",chainId:66}),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(3,{address:"0x02",chainId:66}),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(4,{address:"0x03",chainId:66}),expect(d).toEqual([{type:f.ClearSignContextType.EXTERNAL_PLUGIN,payload:"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935"},{type:"token",payload:"payload-0x01"},{type:"token",payload:"payload-0x04"},{type:"token",payload:"payload-0x02"},{type:"token",payload:"payload-0x03"}])}),it("should return an array with contexts if 1 chain swap with a non swap command",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,chainId:66,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockReturnValue({args:["0x0b0004",["0x0001","0x0002","0x0003"]]}),vi.spyOn(n,"decode").mockReturnValueOnce(["0x01"]).mockReturnValueOnce(["0x02","0x03"]).mockReturnValueOnce(["0x04"]),vi.spyOn(t,"getTokenInfosPayload").mockImplementation(({address:l})=>Promise.resolve((0,r.Right)(`payload-${l}`)));const d=await c.load(a);expect(n.decode).toHaveBeenNthCalledWith(1,e.UniswapSupportedCommand.WRAP_ETH,"0x0001",66),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(1,{address:"0x01",chainId:66}),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(2,{address:"0x02",chainId:66}),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(3,{address:"0x03",chainId:66}),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(4,{address:"0x04",chainId:66}),expect(d).toEqual([{type:f.ClearSignContextType.EXTERNAL_PLUGIN,payload:"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935"},{type:"token",payload:"payload-0x01"},{type:"token",payload:"payload-0x02"},{type:"token",payload:"payload-0x03"},{type:"token",payload:"payload-0x04"}])}),it("should return an array with contexts if one token is not found",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,chainId:66,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockReturnValue({args:["0x0809",["0x0001","0x0002"]]}),vi.spyOn(n,"decode").mockReturnValueOnce(["0x01","0x02"]).mockReturnValueOnce(["0x02","0x03"]),vi.spyOn(t,"getTokenInfosPayload").mockResolvedValueOnce((0,r.Left)("error")).mockImplementation(({address:l})=>Promise.resolve((0,r.Right)(`payload-${l}`)));const d=await c.load(a);expect(n.decode).toHaveBeenNthCalledWith(1,e.UniswapSupportedCommand.V2_SWAP_EXACT_IN,"0x0001",66),expect(n.decode).toHaveBeenNthCalledWith(2,e.UniswapSupportedCommand.V2_SWAP_EXACT_OUT,"0x0002",66),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(1,{address:"0x01",chainId:66}),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(2,{address:"0x02",chainId:66}),expect(t.getTokenInfosPayload).toHaveBeenNthCalledWith(3,{address:"0x03",chainId:66}),expect(d).toEqual([{type:f.ClearSignContextType.EXTERNAL_PLUGIN,payload:"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935"},{type:"error",error:"error"},{type:"token",payload:"payload-0x02"},{type:"token",payload:"payload-0x03"}])}),it("should return an empty array if the if 2 chain swaps are not supported",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,chainId:66,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockReturnValue({args:["0x0809",["0x0001","0x0002"]]}),vi.spyOn(n,"decode").mockReturnValueOnce(["0x01","0x02"]),vi.spyOn(n,"decode").mockReturnValueOnce(["0x03","0x04"]);const d=await c.load(a);expect(n.decode).toHaveBeenNthCalledWith(1,e.UniswapSupportedCommand.V2_SWAP_EXACT_IN,"0x0001",66),expect(n.decode).toHaveBeenNthCalledWith(2,e.UniswapSupportedCommand.V2_SWAP_EXACT_OUT,"0x0002",66),expect(t.getTokenInfosPayload).not.toHaveBeenCalled(),expect(d).toEqual([])}),it("should return an empty array if no command are returned from parseTransaction",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockReturnValue({args:[""]});const o=await c.load(a);expect(n.decode).not.toHaveBeenCalled(),expect(t.getTokenInfosPayload).not.toHaveBeenCalled(),expect(o).toEqual([])}),it("should return an empty array if no inputs are returned from parseTransaction",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockReturnValue({args:["0x08",[]]});const o=await c.load(a);expect(t.getTokenInfosPayload).not.toHaveBeenCalled(),expect(o).toEqual([])}),it("should return an empty array if parseTransaction throws an error",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockImplementation(()=>{throw new Error});const o=await c.load(a);expect(n.decode).not.toHaveBeenCalled(),expect(t.getTokenInfosPayload).not.toHaveBeenCalled(),expect(o).toEqual([])}),it("should return an empty array if the swap is with multiple pool versions",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,chainId:66,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockReturnValue({args:["0x080900",["0x00","0x01","0x02"]]}),vi.spyOn(n,"decode").mockReturnValue(["0x01","0x02"]);const d=await c.load(a);expect(n.decode).toHaveBeenNthCalledWith(1,e.UniswapSupportedCommand.V2_SWAP_EXACT_IN,"0x00",66),expect(n.decode).toHaveBeenNthCalledWith(2,e.UniswapSupportedCommand.V2_SWAP_EXACT_OUT,"0x01",66),expect(n.decode).toHaveBeenNthCalledWith(3,e.UniswapSupportedCommand.V3_SWAP_EXACT_IN,"0x02",66),expect(t.getTokenInfosPayload).not.toHaveBeenCalled(),expect(d).toEqual([])}),it("should return an empty array if the selector is not supported",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:"0x00000000",chainId:66,selector:e.UNISWAP_EXECUTE_SELECTOR},o=await c.load(a);expect(n.decode).not.toHaveBeenCalled(),expect(t.getTokenInfosPayload).not.toHaveBeenCalled(),expect(o).toEqual([])}),it("should return an empty array if the length of the commands and inputs are different",async()=>{const a={to:e.UNISWAP_UNIVERSAL_ROUTER_ADDRESS,data:e.UNISWAP_EXECUTE_SELECTOR,chainId:66,selector:e.UNISWAP_EXECUTE_SELECTOR};vi.spyOn(s.Interface.prototype,"parseTransaction").mockReturnValue({args:["0x0809",["0x0001"]]});const d=await c.load(a);expect(n.decode).not.toHaveBeenCalled(),expect(t.getTokenInfosPayload).not.toHaveBeenCalled(),expect(d).toEqual([])})})})});
2
+ //# sourceMappingURL=UniswapContextLoader.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/uniswap/domain/UniswapContextLoader.test.ts"],
4
+ "sourcesContent": ["import { Interface, type TransactionDescription } from \"ethers\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { ClearSignContextType } from \"@/shared/model/ClearSignContext\";\nimport { type TransactionContext } from \"@/shared/model/TransactionContext\";\nimport { type HttpTokenDataSource } from \"@/token/data/HttpTokenDataSource\";\nimport {\n UNISWAP_EXECUTE_SELECTOR,\n UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n UniswapSupportedCommand,\n} from \"@/uniswap/constants/uniswap\";\nimport { type CommandDecoderDataSource } from \"@/uniswap/data/CommandDecoderDataSource\";\nimport { DefaultCommandDecoderDataSource } from \"@/uniswap/data/DefaultCommandDecoderDataSource\";\nimport { EthersAbiDecoderDataSource } from \"@/uniswap/data/EthersAbiDecoderDataSource\";\n\nimport { UniswapContextLoader } from \"./UniswapContextLoader\";\n\ndescribe(\"UniswapContextLoader\", () => {\n const commandDecoderMock: CommandDecoderDataSource = {\n decode: vi.fn(),\n };\n const tokenDataSourceMock = {\n getTokenInfosPayload: vi.fn(),\n };\n let loader: UniswapContextLoader;\n\n describe(\"load\", () => {\n describe(\"with tokenDataSourceMock\", () => {\n beforeEach(() => {\n vi.spyOn(\n tokenDataSourceMock,\n \"getTokenInfosPayload\",\n ).mockImplementation(({ address }) =>\n Promise.resolve(Right(`payload-${address}`)),\n );\n loader = new UniswapContextLoader(\n new DefaultCommandDecoderDataSource(new EthersAbiDecoderDataSource()),\n tokenDataSourceMock as unknown as HttpTokenDataSource,\n );\n });\n\n it(\"should return an empty array if the selector is not UNISWAP_EXECUTE_SELECTOR\", async () => {\n // GIVEN\n const transactionContext = {\n selector: \"0x00000000\",\n data: \"0x00000000\",\n } as TransactionContext;\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(result).toEqual([]);\n });\n\n it(\"should return the external plugin context and the decoded contexts\", async () => {\n // GIVEN\n // https://etherscan.io/getRawTx?tx=0xc9821c32c1782d9ab6baf6f9ca4b2565bce11aaf5146a2d303215bda026f5e48\n const transactionContext = {\n chainId: 1,\n data: \"0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000067a4855b000000000000000000000000000000000000000000000000000000000000000300060c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000a18f07d736b90be5500000000000000000000000000000000000000000000000000000000b0b8122abd8412900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002bb9f599ce614feb2e1bbe58f180f370d05b39344e002710c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000017cc6042605381c158d2adab487434bde79aa61c000000000000000000000000000000000000000000000000000000000000005b000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000b0b8122abd84129c001a053efc49d03b694742500f49aa09df2360bd7e297fa730c745e0d4320b42fc33fa01ca1c85a46c561f624830fffbae2441ba0f2d54eb5b0f17e0e3561d10db0b7ee\",\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.EXTERNAL_PLUGIN,\n payload:\n \"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935\",\n },\n {\n type: \"token\",\n payload: \"payload-0xb9f599ce614feb2e1bbe58f180f370d05b39344e\",\n }, // ERC20\n {\n type: \"token\",\n payload: \"payload-0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n }, // WETH\n ]);\n });\n\n it(\"should return the external plugin context and the decoded contexts with a permit\", async () => {\n // GIVEN\n // https://etherscan.io/getRawTx?tx=0xc4df7ccc0527541d0e80856a8f38deedc48c84825e9355469ba02d873502ce2f\n // PERMIT2_PERMIT, V3_SWAP_EXACT_OUT, UNWRAP_ETH\n const transactionContext = {\n chainId: 1,\n data: \"0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000669b9ec100000000000000000000000000000000000000000000000000000000000000030a010c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000016000000000000000000000000055747be9f9f5beb232ad59fe7af013b81d95fd5e000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000066c32b0d0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b00000000000000000000000000000000000000000000000000000000669b9ec100000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000410d756f55acf289e9754faf91bba0a704b5c7c0aa4b1dfd551115ccbe4c7f290234e1a14265e1da0bc872a23627d997fe37a689c290d519f7b8c9bdde1b79108e1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000030ba49cbff5a00000000000000000000000000000000000000000000000089677c957272141800000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200271055747be9f9f5beb232ad59fe7af013b81d95fd5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000030ba49cbff5a000c001a0e406d9c91c8b46d959fcd31a28518a77bb248ebb316c5fab7b98335cce922f2aa0462cb970c32a8dbfe71c57b888c43b9ed04fce41d169dbfcc745445587adb771\",\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.EXTERNAL_PLUGIN,\n payload:\n \"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935\",\n },\n {\n type: \"token\",\n payload: \"payload-0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n }, // WETH\n {\n type: \"token\",\n payload: \"payload-0x55747be9f9f5beb232ad59fe7af013b81d95fd5e\",\n }, // ERC20\n ]);\n });\n\n it(\"should return an empty array if the transaction is not supported\", async () => {\n // GIVEN\n const transactionContext = {} as TransactionContext;\n vi.spyOn(commandDecoderMock, \"decode\").mockReturnValue([]);\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if a command is not supported\", async () => {\n // GIVEN\n // https://etherscan.io/getRawTx?tx=0xa628c8b3da2ad984aed0354d8ca4b4c3c42941491dc4e0d6a5f423fd65e6c90a\n // The command 0x05 (TRANSFER) is not supported\n const transactionContext = {\n chainId: 1,\n data: \"0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000067a4bef600000000000000000000000000000000000000000000000000000000000000050b0105040c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000078e6708e70aed0f000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000059a16770000000000000000000000000000000000000000000000000078e6708e70aed0f00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb480001f4c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000027213e28d7fda5c57fe9e5dd923818dbccf71c4700000000000000000000000000000000000000000000000000000000003938700000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006f939b43d65be049b7533907db08e80ba6969f450000000000000000000000000000000000000000000000000000000059682f0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006f939b43d65be049b7533907db08e80ba6969f4500000000000000000000000000000000000000000000000000000000000000000cc080a07c86dd5813ec1f3725c402f8bea6105546d1093c59676023b971f1d83f61bd4ea02a353bf3028cabcbe68c5dc8906752bafe55afc86b6344edb3ffd8a3650332e8\",\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(result).toEqual([]);\n });\n });\n\n describe(\"with mocked ethers parseTransaction\", () => {\n beforeEach(() => {\n vi.resetAllMocks();\n loader = new UniswapContextLoader(\n commandDecoderMock,\n tokenDataSourceMock as unknown as HttpTokenDataSource,\n );\n });\n\n it(\"should return an array with contexts if 2 chain swaps are supported\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n chainId: 0x42,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n const commands = `0x0809`; // V2_SWAP_EXACT_IN, V2_SWAP_EXACT_OUT\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockReturnValue({\n args: [commands, [\"0x0001\", \"0x0002\"]],\n } as TransactionDescription);\n vi.spyOn(commandDecoderMock, \"decode\")\n .mockReturnValueOnce([\"0x01\", \"0x04\", \"0x02\"])\n .mockReturnValueOnce([\"0x02\", \"0x03\"]);\n\n vi.spyOn(\n tokenDataSourceMock,\n \"getTokenInfosPayload\",\n ).mockImplementation(({ address }) =>\n Promise.resolve(Right(`payload-${address}`)),\n );\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 1,\n UniswapSupportedCommand.V2_SWAP_EXACT_IN,\n \"0x0001\",\n 0x42,\n );\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 2,\n UniswapSupportedCommand.V2_SWAP_EXACT_OUT,\n \"0x0002\",\n 0x42,\n );\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(1, { address: \"0x01\", chainId: 0x42 });\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(2, { address: \"0x04\", chainId: 0x42 });\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(3, { address: \"0x02\", chainId: 0x42 });\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(4, { address: \"0x03\", chainId: 0x42 });\n expect(result).toEqual([\n {\n type: ClearSignContextType.EXTERNAL_PLUGIN,\n payload:\n \"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935\",\n },\n {\n type: \"token\",\n payload: \"payload-0x01\",\n },\n {\n type: \"token\",\n payload: \"payload-0x04\",\n },\n {\n type: \"token\",\n payload: \"payload-0x02\",\n },\n {\n type: \"token\",\n payload: \"payload-0x03\",\n },\n ]);\n });\n\n it(\"should return an array with contexts if 1 chain swap with a non swap command\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n chainId: 0x42,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n const commands = `0x0b0004`; // WRAP_ETH, V3_SWAP_EXACT_IN, SWEEP\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockReturnValue({\n args: [commands, [\"0x0001\", \"0x0002\", \"0x0003\"]],\n } as TransactionDescription);\n vi.spyOn(commandDecoderMock, \"decode\")\n .mockReturnValueOnce([\"0x01\"])\n .mockReturnValueOnce([\"0x02\", \"0x03\"])\n .mockReturnValueOnce([\"0x04\"]);\n vi.spyOn(\n tokenDataSourceMock,\n \"getTokenInfosPayload\",\n ).mockImplementation(({ address }) =>\n Promise.resolve(Right(`payload-${address}`)),\n );\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 1,\n UniswapSupportedCommand.WRAP_ETH,\n \"0x0001\",\n 0x42,\n );\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(1, { address: \"0x01\", chainId: 0x42 });\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(2, { address: \"0x02\", chainId: 0x42 });\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(3, { address: \"0x03\", chainId: 0x42 });\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(4, { address: \"0x04\", chainId: 0x42 });\n expect(result).toEqual([\n {\n type: ClearSignContextType.EXTERNAL_PLUGIN,\n payload:\n \"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935\",\n },\n {\n type: \"token\",\n payload: \"payload-0x01\",\n },\n {\n type: \"token\",\n payload: \"payload-0x02\",\n },\n {\n type: \"token\",\n payload: \"payload-0x03\",\n },\n {\n type: \"token\",\n payload: \"payload-0x04\",\n },\n ]);\n });\n\n it(\"should return an array with contexts if one token is not found\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n chainId: 0x42,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n const commands = `0x0809`; // V2_SWAP_EXACT_IN, V2_SWAP_EXACT_OUT\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockReturnValue({\n args: [commands, [\"0x0001\", \"0x0002\"]],\n } as TransactionDescription);\n vi.spyOn(commandDecoderMock, \"decode\")\n .mockReturnValueOnce([\"0x01\", \"0x02\"])\n .mockReturnValueOnce([\"0x02\", \"0x03\"]);\n vi.spyOn(tokenDataSourceMock, \"getTokenInfosPayload\")\n .mockResolvedValueOnce(Left(\"error\"))\n .mockImplementation(({ address }) =>\n Promise.resolve(Right(`payload-${address}`)),\n );\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 1,\n UniswapSupportedCommand.V2_SWAP_EXACT_IN,\n \"0x0001\",\n 0x42,\n );\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 2,\n UniswapSupportedCommand.V2_SWAP_EXACT_OUT,\n \"0x0002\",\n 0x42,\n );\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(1, { address: \"0x01\", chainId: 0x42 });\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(2, { address: \"0x02\", chainId: 0x42 });\n expect(\n tokenDataSourceMock.getTokenInfosPayload,\n ).toHaveBeenNthCalledWith(3, { address: \"0x03\", chainId: 0x42 });\n expect(result).toEqual([\n {\n type: ClearSignContextType.EXTERNAL_PLUGIN,\n payload:\n \"07556e69737761703fc91a3afd70395cd496c647d5a6cc9d4b2b7fad3593564c3044022014391e8f355867a57fe88f6a5a4dbcb8bf8f888a9db3ff3449caf72d120396bd02200c13d9c3f79400fe0aa0434ac54d59b79503c9964a4abc3e8cd22763e0242935\",\n },\n {\n type: \"error\",\n error: \"error\",\n },\n {\n type: \"token\",\n payload: \"payload-0x02\",\n },\n {\n type: \"token\",\n payload: \"payload-0x03\",\n },\n ]);\n });\n\n it(\"should return an empty array if the if 2 chain swaps are not supported\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n chainId: 0x42,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n const commands = `0x0809`; // V2_SWAP_EXACT_IN, V2_SWAP_EXACT_OUT\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockReturnValue({\n args: [commands, [\"0x0001\", \"0x0002\"]],\n } as TransactionDescription);\n vi.spyOn(commandDecoderMock, \"decode\").mockReturnValueOnce([\n \"0x01\",\n \"0x02\",\n ]);\n vi.spyOn(commandDecoderMock, \"decode\").mockReturnValueOnce([\n \"0x03\", // should be 0x02\n \"0x04\",\n ]);\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 1,\n UniswapSupportedCommand.V2_SWAP_EXACT_IN,\n \"0x0001\",\n 0x42,\n );\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 2,\n UniswapSupportedCommand.V2_SWAP_EXACT_OUT,\n \"0x0002\",\n 0x42,\n );\n expect(tokenDataSourceMock.getTokenInfosPayload).not.toHaveBeenCalled();\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if no command are returned from parseTransaction\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockReturnValue({\n args: [\"\"],\n } as TransactionDescription);\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).not.toHaveBeenCalled();\n expect(tokenDataSourceMock.getTokenInfosPayload).not.toHaveBeenCalled();\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if no inputs are returned from parseTransaction\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockReturnValue({\n args: [\"0x08\", []],\n } as TransactionDescription);\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(tokenDataSourceMock.getTokenInfosPayload).not.toHaveBeenCalled();\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if parseTransaction throws an error\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockImplementation(\n () => {\n throw new Error();\n },\n );\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).not.toHaveBeenCalled();\n expect(tokenDataSourceMock.getTokenInfosPayload).not.toHaveBeenCalled();\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if the swap is with multiple pool versions\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n chainId: 0x42,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n const commands = `0x080900`; // V2_SWAP_EXACT_IN, V2_SWAP_EXACT_OUT, V3_SWAP_EXACT_IN\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockReturnValue({\n args: [commands, [\"0x00\", \"0x01\", \"0x02\"]],\n } as TransactionDescription);\n vi.spyOn(commandDecoderMock, \"decode\").mockReturnValue([\n \"0x01\",\n \"0x02\",\n ]);\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 1,\n UniswapSupportedCommand.V2_SWAP_EXACT_IN,\n \"0x00\",\n 0x42,\n );\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 2,\n UniswapSupportedCommand.V2_SWAP_EXACT_OUT,\n \"0x01\",\n 0x42,\n );\n expect(commandDecoderMock.decode).toHaveBeenNthCalledWith(\n 3,\n UniswapSupportedCommand.V3_SWAP_EXACT_IN,\n \"0x02\",\n 0x42,\n );\n expect(tokenDataSourceMock.getTokenInfosPayload).not.toHaveBeenCalled();\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if the selector is not supported\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: \"0x00000000\",\n chainId: 0x42,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).not.toHaveBeenCalled();\n expect(tokenDataSourceMock.getTokenInfosPayload).not.toHaveBeenCalled();\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if the length of the commands and inputs are different\", async () => {\n // GIVEN\n const transactionContext = {\n to: UNISWAP_UNIVERSAL_ROUTER_ADDRESS,\n data: UNISWAP_EXECUTE_SELECTOR,\n chainId: 0x42,\n selector: UNISWAP_EXECUTE_SELECTOR,\n } as TransactionContext;\n const commands = `0x0809`; // V2_SWAP_EXACT_IN, V2_SWAP_EXACT_OUT\n vi.spyOn(Interface.prototype, \"parseTransaction\").mockReturnValue({\n args: [commands, [\"0x0001\"]],\n } as TransactionDescription);\n\n // WHEN\n const result = await loader.load(transactionContext);\n\n // THEN\n expect(commandDecoderMock.decode).not.toHaveBeenCalled();\n expect(tokenDataSourceMock.getTokenInfosPayload).not.toHaveBeenCalled();\n expect(result).toEqual([]);\n });\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAuD,kBACvDC,EAA4B,qBAE5BC,EAAqC,2CAGrCC,EAIO,uCAEPC,EAAgD,0DAChDC,EAA2C,qDAE3CC,EAAqC,kCAErC,SAAS,uBAAwB,IAAM,CACrC,MAAMC,EAA+C,CACnD,OAAQ,GAAG,GAAG,CAChB,EACMC,EAAsB,CAC1B,qBAAsB,GAAG,GAAG,CAC9B,EACA,IAAIC,EAEJ,SAAS,OAAQ,IAAM,CACrB,SAAS,2BAA4B,IAAM,CACzC,WAAW,IAAM,CACf,GAAG,MACDD,EACA,sBACF,EAAE,mBAAmB,CAAC,CAAE,QAAAE,CAAQ,IAC9B,QAAQ,WAAQ,SAAM,WAAWA,CAAO,EAAE,CAAC,CAC7C,EACAD,EAAS,IAAI,uBACX,IAAI,kCAAgC,IAAI,4BAA4B,EACpED,CACF,CACF,CAAC,EAED,GAAG,+EAAgF,SAAY,CAE7F,MAAMG,EAAqB,CACzB,SAAU,aACV,KAAM,YACR,EAGMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOC,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,EAED,GAAG,qEAAsE,SAAY,CAGnF,MAAMD,EAAqB,CACzB,QAAS,EACT,KAAM,qtDACN,SAAU,0BACZ,EAGMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOC,CAAM,EAAE,QAAQ,CACrB,CACE,KAAM,uBAAqB,gBAC3B,QACE,8MACJ,EACA,CACE,KAAM,QACN,QAAS,oDACX,EACA,CACE,KAAM,QACN,QAAS,oDACX,CACF,CAAC,CACH,CAAC,EAED,GAAG,mFAAoF,SAAY,CAIjG,MAAMD,EAAqB,CACzB,QAAS,EACT,KAAM,qtEACN,SAAU,0BACZ,EAGMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOC,CAAM,EAAE,QAAQ,CACrB,CACE,KAAM,uBAAqB,gBAC3B,QACE,8MACJ,EACA,CACE,KAAM,QACN,QAAS,oDACX,EACA,CACE,KAAM,QACN,QAAS,oDACX,CACF,CAAC,CACH,CAAC,EAED,GAAG,mEAAoE,SAAY,CAEjF,MAAMD,EAAqB,CAAC,EAC5B,GAAG,MAAMJ,EAAoB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,EAGzD,MAAMK,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOC,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,EAED,GAAG,6DAA8D,SAAY,CAI3E,MAAMD,EAAqB,CACzB,QAAS,EACT,KAAM,uxEACN,SAAU,0BACZ,EAGMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOC,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,CACH,CAAC,EAED,SAAS,sCAAuC,IAAM,CACpD,WAAW,IAAM,CACf,GAAG,cAAc,EACjBH,EAAS,IAAI,uBACXF,EACAC,CACF,CACF,CAAC,EAED,GAAG,sEAAuE,SAAY,CAEpF,MAAMG,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,QAAS,GACT,SAAU,0BACZ,EAEA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,gBAAgB,CAChE,KAAM,CAFS,SAEE,CAAC,SAAU,QAAQ,CAAC,CACvC,CAA2B,EAC3B,GAAG,MAAMJ,EAAoB,QAAQ,EAClC,oBAAoB,CAAC,OAAQ,OAAQ,MAAM,CAAC,EAC5C,oBAAoB,CAAC,OAAQ,MAAM,CAAC,EAEvC,GAAG,MACDC,EACA,sBACF,EAAE,mBAAmB,CAAC,CAAE,QAAAE,CAAQ,IAC9B,QAAQ,WAAQ,SAAM,WAAWA,CAAO,EAAE,CAAC,CAC7C,EAGA,MAAME,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,iBACxB,SACA,EACF,EACA,OAAOA,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,kBACxB,SACA,EACF,EACA,OACEC,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OACEA,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OACEA,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OACEA,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OAAOI,CAAM,EAAE,QAAQ,CACrB,CACE,KAAM,uBAAqB,gBAC3B,QACE,8MACJ,EACA,CACE,KAAM,QACN,QAAS,cACX,EACA,CACE,KAAM,QACN,QAAS,cACX,EACA,CACE,KAAM,QACN,QAAS,cACX,EACA,CACE,KAAM,QACN,QAAS,cACX,CACF,CAAC,CACH,CAAC,EAED,GAAG,+EAAgF,SAAY,CAE7F,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,QAAS,GACT,SAAU,0BACZ,EAEA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,gBAAgB,CAChE,KAAM,CAFS,WAEE,CAAC,SAAU,SAAU,QAAQ,CAAC,CACjD,CAA2B,EAC3B,GAAG,MAAMJ,EAAoB,QAAQ,EAClC,oBAAoB,CAAC,MAAM,CAAC,EAC5B,oBAAoB,CAAC,OAAQ,MAAM,CAAC,EACpC,oBAAoB,CAAC,MAAM,CAAC,EAC/B,GAAG,MACDC,EACA,sBACF,EAAE,mBAAmB,CAAC,CAAE,QAAAE,CAAQ,IAC9B,QAAQ,WAAQ,SAAM,WAAWA,CAAO,EAAE,CAAC,CAC7C,EAGA,MAAME,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,SACxB,SACA,EACF,EACA,OACEC,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OACEA,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OACEA,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OACEA,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OAAOI,CAAM,EAAE,QAAQ,CACrB,CACE,KAAM,uBAAqB,gBAC3B,QACE,8MACJ,EACA,CACE,KAAM,QACN,QAAS,cACX,EACA,CACE,KAAM,QACN,QAAS,cACX,EACA,CACE,KAAM,QACN,QAAS,cACX,EACA,CACE,KAAM,QACN,QAAS,cACX,CACF,CAAC,CACH,CAAC,EAED,GAAG,iEAAkE,SAAY,CAE/E,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,QAAS,GACT,SAAU,0BACZ,EAEA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,gBAAgB,CAChE,KAAM,CAFS,SAEE,CAAC,SAAU,QAAQ,CAAC,CACvC,CAA2B,EAC3B,GAAG,MAAMJ,EAAoB,QAAQ,EAClC,oBAAoB,CAAC,OAAQ,MAAM,CAAC,EACpC,oBAAoB,CAAC,OAAQ,MAAM,CAAC,EACvC,GAAG,MAAMC,EAAqB,sBAAsB,EACjD,yBAAsB,QAAK,OAAO,CAAC,EACnC,mBAAmB,CAAC,CAAE,QAAAE,CAAQ,IAC7B,QAAQ,WAAQ,SAAM,WAAWA,CAAO,EAAE,CAAC,CAC7C,EAGF,MAAME,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,iBACxB,SACA,EACF,EACA,OAAOA,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,kBACxB,SACA,EACF,EACA,OACEC,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OACEA,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OACEA,EAAoB,oBACtB,EAAE,wBAAwB,EAAG,CAAE,QAAS,OAAQ,QAAS,EAAK,CAAC,EAC/D,OAAOI,CAAM,EAAE,QAAQ,CACrB,CACE,KAAM,uBAAqB,gBAC3B,QACE,8MACJ,EACA,CACE,KAAM,QACN,MAAO,OACT,EACA,CACE,KAAM,QACN,QAAS,cACX,EACA,CACE,KAAM,QACN,QAAS,cACX,CACF,CAAC,CACH,CAAC,EAED,GAAG,yEAA0E,SAAY,CAEvF,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,QAAS,GACT,SAAU,0BACZ,EAEA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,gBAAgB,CAChE,KAAM,CAFS,SAEE,CAAC,SAAU,QAAQ,CAAC,CACvC,CAA2B,EAC3B,GAAG,MAAMJ,EAAoB,QAAQ,EAAE,oBAAoB,CACzD,OACA,MACF,CAAC,EACD,GAAG,MAAMA,EAAoB,QAAQ,EAAE,oBAAoB,CACzD,OACA,MACF,CAAC,EAGD,MAAMK,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,iBACxB,SACA,EACF,EACA,OAAOA,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,kBACxB,SACA,EACF,EACA,OAAOC,EAAoB,oBAAoB,EAAE,IAAI,iBAAiB,EACtE,OAAOI,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,EAED,GAAG,gFAAiF,SAAY,CAE9F,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,SAAU,0BACZ,EACA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,gBAAgB,CAChE,KAAM,CAAC,EAAE,CACX,CAA2B,EAG3B,MAAMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,IAAI,iBAAiB,EACvD,OAAOC,EAAoB,oBAAoB,EAAE,IAAI,iBAAiB,EACtE,OAAOI,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,EAED,GAAG,+EAAgF,SAAY,CAE7F,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,SAAU,0BACZ,EACA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,gBAAgB,CAChE,KAAM,CAAC,OAAQ,CAAC,CAAC,CACnB,CAA2B,EAG3B,MAAMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOH,EAAoB,oBAAoB,EAAE,IAAI,iBAAiB,EACtE,OAAOI,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,EAED,GAAG,mEAAoE,SAAY,CAEjF,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,SAAU,0BACZ,EACA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,mBAChD,IAAM,CACJ,MAAM,IAAI,KACZ,CACF,EAGA,MAAMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,IAAI,iBAAiB,EACvD,OAAOC,EAAoB,oBAAoB,EAAE,IAAI,iBAAiB,EACtE,OAAOI,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,EAED,GAAG,0EAA2E,SAAY,CAExF,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,QAAS,GACT,SAAU,0BACZ,EAEA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,gBAAgB,CAChE,KAAM,CAFS,WAEE,CAAC,OAAQ,OAAQ,MAAM,CAAC,CAC3C,CAA2B,EAC3B,GAAG,MAAMJ,EAAoB,QAAQ,EAAE,gBAAgB,CACrD,OACA,MACF,CAAC,EAGD,MAAMK,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,iBACxB,OACA,EACF,EACA,OAAOA,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,kBACxB,OACA,EACF,EACA,OAAOA,EAAmB,MAAM,EAAE,wBAChC,EACA,0BAAwB,iBACxB,OACA,EACF,EACA,OAAOC,EAAoB,oBAAoB,EAAE,IAAI,iBAAiB,EACtE,OAAOI,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,EAED,GAAG,gEAAiE,SAAY,CAE9E,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,aACN,QAAS,GACT,SAAU,0BACZ,EAGMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,IAAI,iBAAiB,EACvD,OAAOC,EAAoB,oBAAoB,EAAE,IAAI,iBAAiB,EACtE,OAAOI,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,EAED,GAAG,sFAAuF,SAAY,CAEpG,MAAMD,EAAqB,CACzB,GAAI,mCACJ,KAAM,2BACN,QAAS,GACT,SAAU,0BACZ,EAEA,GAAG,MAAM,YAAU,UAAW,kBAAkB,EAAE,gBAAgB,CAChE,KAAM,CAFS,SAEE,CAAC,QAAQ,CAAC,CAC7B,CAA2B,EAG3B,MAAMC,EAAS,MAAMH,EAAO,KAAKE,CAAkB,EAGnD,OAAOJ,EAAmB,MAAM,EAAE,IAAI,iBAAiB,EACvD,OAAOC,EAAoB,oBAAoB,EAAE,IAAI,iBAAiB,EACtE,OAAOI,CAAM,EAAE,QAAQ,CAAC,CAAC,CAC3B,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_ethers", "import_purify_ts", "import_ClearSignContext", "import_uniswap", "import_DefaultCommandDecoderDataSource", "import_EthersAbiDecoderDataSource", "import_UniswapContextLoader", "commandDecoderMock", "tokenDataSourceMock", "loader", "address", "transactionContext", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var x=Object.create;var a=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var r in e)a(t,r,{get:e[r],enumerable:!0})},k=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of w(e))!L.call(t,i)&&i!==r&&a(t,i,{get:()=>e[i],enumerable:!(o=d(e,i))||o.enumerable});return t};var m=(t,e,r)=>(r=t!=null?x(T(t)):{},k(e||!t||!t.__esModule?a(r,"default",{value:t,enumerable:!0}):r,t)),v=t=>k(a({},"__esModule",{value:!0}),t),l=(t,e,r,o)=>{for(var i=o>1?void 0:o?d(e,r):e,c=t.length-1,n;c>=0;c--)(n=t[c])&&(i=(o?n(e,r,i):n(i))||i);return o&&i&&a(e,r,i),i},f=(t,e)=>(r,o)=>e(r,o,t);var I={};R(I,{HttpWeb3CheckDataSource:()=>s});module.exports=v(I);var u=m(require("axios")),p=require("inversify"),h=require("purify-ts"),b=require("../../config/di/configTypes"),y=require("../../pki/di/pkiTypes"),g=require("../../pki/model/KeyUsage"),C=require("../../shared/constant/HttpHeaders"),D=m(require("../../../package.json"));let s=class{constructor(e,r){this.config=e;this._certificateLoader=r;if(!this.config.originToken)throw new Error("Origin token is required")}async getWeb3Checks(e){const{from:r,deviceModelId:o}=e;let i,c,n;this.isTypedDataContext(e)?(c={msg:{from:r,data:e.data}},n=`${this.config.web3checks.url}/ethereum/scan/eip-712`):(c={tx:{from:r,raw:e.rawTx},chain:e.chainId},n=`${this.config.web3checks.url}/ethereum/scan/tx`);try{i=(await u.default.request({method:"POST",url:n,data:c,headers:{[C.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${D.default.version}`,[C.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken}})).data}catch{return(0,h.Left)(new Error("[ContextModule] HttpWeb3CheckDataSource: Failed to fetch web3 checks informations"))}if(!this.isWeb3CheckDto(i))return(0,h.Left)(new Error("[ContextModule] HttpWeb3CheckDataSource: Cannot exploit Web3 checks data received"));const W=await this._certificateLoader.loadCertificate({keyId:i.public_key_id,keyUsage:g.KeyUsage.TxSimulationSigner,targetDevice:o}),_={publicKeyId:i.public_key_id,descriptor:i.descriptor,certificate:W};return(0,h.Right)(_)}isTypedDataContext(e){return"data"in e}isWeb3CheckDto(e){return e!=null&&typeof e=="object"&&"public_key_id"in e&&e.public_key_id!=null&&typeof e.public_key_id=="string"&&"descriptor"in e&&e.descriptor!=null&&typeof e.descriptor=="string"}};s=l([(0,p.injectable)(),f(0,(0,p.inject)(b.configTypes.Config)),f(1,(0,p.inject)(y.pkiTypes.PkiCertificateLoader))],s);0&&(module.exports={HttpWeb3CheckDataSource});
2
+ //# sourceMappingURL=HttpWeb3CheckDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/data/HttpWeb3CheckDataSource.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport type { ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport {\n type Web3CheckContext,\n type Web3Checks,\n type Web3CheckTypedDataContext,\n} from \"@/web3-check/domain/web3CheckTypes\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { Web3CheckDataSource } from \"./Web3CheckDataSource\";\nimport { GetWeb3ChecksRequestDto, Web3CheckDto } from \"./Web3CheckDto\";\n\n@injectable()\nexport class HttpWeb3CheckDataSource implements Web3CheckDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n ) {\n if (!this.config.originToken) {\n throw new Error(\"Origin token is required\");\n }\n }\n\n async getWeb3Checks(\n context: Web3CheckContext,\n ): Promise<Either<Error, Web3Checks>> {\n const { from, deviceModelId } = context;\n let web3CheckDto: Web3CheckDto;\n let requestDto: GetWeb3ChecksRequestDto;\n let url: string;\n if (this.isTypedDataContext(context)) {\n requestDto = {\n msg: {\n from,\n data: context.data,\n },\n };\n url = `${this.config.web3checks.url}/ethereum/scan/eip-712`;\n } else {\n requestDto = {\n tx: {\n from,\n raw: context.rawTx,\n },\n chain: context.chainId,\n };\n url = `${this.config.web3checks.url}/ethereum/scan/tx`;\n }\n\n try {\n const response = await axios.request<Web3CheckDto>({\n method: \"POST\",\n url,\n data: requestDto,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n });\n web3CheckDto = response.data;\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpWeb3CheckDataSource: Failed to fetch web3 checks informations\",\n ),\n );\n }\n\n if (!this.isWeb3CheckDto(web3CheckDto)) {\n return Left(\n new Error(\n \"[ContextModule] HttpWeb3CheckDataSource: Cannot exploit Web3 checks data received\",\n ),\n );\n }\n\n const certificate = await this._certificateLoader.loadCertificate({\n keyId: web3CheckDto.public_key_id,\n keyUsage: KeyUsage.TxSimulationSigner,\n targetDevice: deviceModelId,\n });\n\n const result: Web3Checks = {\n publicKeyId: web3CheckDto.public_key_id,\n descriptor: web3CheckDto.descriptor,\n certificate,\n };\n\n return Right(result);\n }\n\n private isTypedDataContext(\n context: Web3CheckContext,\n ): context is Web3CheckTypedDataContext {\n return \"data\" in context;\n }\n\n private isWeb3CheckDto(dto: unknown): dto is Web3CheckDto {\n return (\n dto != null &&\n typeof dto == \"object\" &&\n \"public_key_id\" in dto &&\n dto.public_key_id != null &&\n typeof dto.public_key_id == \"string\" &&\n \"descriptor\" in dto &&\n dto.descriptor != null &&\n typeof dto.descriptor == \"string\"\n );\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAAyB,6BAEzBC,EAAyB,gCACzBC,EAGO,yCAMPC,EAAoB,iCAMb,IAAMC,EAAN,KAA6D,CAClE,YAC+CC,EAE5BC,EACjB,CAH6C,YAAAD,EAE5B,wBAAAC,EAEjB,GAAI,CAAC,KAAK,OAAO,YACf,MAAM,IAAI,MAAM,0BAA0B,CAE9C,CAEA,MAAM,cACJC,EACoC,CACpC,KAAM,CAAE,KAAAC,EAAM,cAAAC,CAAc,EAAIF,EAChC,IAAIG,EACAC,EACAC,EACA,KAAK,mBAAmBL,CAAO,GACjCI,EAAa,CACX,IAAK,CACH,KAAAH,EACA,KAAMD,EAAQ,IAChB,CACF,EACAK,EAAM,GAAG,KAAK,OAAO,WAAW,GAAG,2BAEnCD,EAAa,CACX,GAAI,CACF,KAAAH,EACA,IAAKD,EAAQ,KACf,EACA,MAAOA,EAAQ,OACjB,EACAK,EAAM,GAAG,KAAK,OAAO,WAAW,GAAG,qBAGrC,GAAI,CAUFF,GATiB,MAAM,EAAAG,QAAM,QAAsB,CACjD,OAAQ,OACR,IAAAD,EACA,KAAMD,EACN,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAG,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,GACuB,IAC1B,MAAiB,CACf,SAAO,QACL,IAAI,MACF,mFACF,CACF,CACF,CAEA,GAAI,CAAC,KAAK,eAAeJ,CAAY,EACnC,SAAO,QACL,IAAI,MACF,mFACF,CACF,EAGF,MAAMK,EAAc,MAAM,KAAK,mBAAmB,gBAAgB,CAChE,MAAOL,EAAa,cACpB,SAAU,WAAS,mBACnB,aAAcD,CAChB,CAAC,EAEKO,EAAqB,CACzB,YAAaN,EAAa,cAC1B,WAAYA,EAAa,WACzB,YAAAK,CACF,EAEA,SAAO,SAAMC,CAAM,CACrB,CAEQ,mBACNT,EACsC,CACtC,MAAO,SAAUA,CACnB,CAEQ,eAAeU,EAAmC,CACxD,OACEA,GAAO,MACP,OAAOA,GAAO,UACd,kBAAmBA,GACnBA,EAAI,eAAiB,MACrB,OAAOA,EAAI,eAAiB,UAC5B,eAAgBA,GAChBA,EAAI,YAAc,MAClB,OAAOA,EAAI,YAAc,QAE7B,CACF,EAjGab,EAANc,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,GACzBA,EAAA,eAAO,WAAS,oBAAoB,IAH5Bf",
6
+ "names": ["HttpWeb3CheckDataSource_exports", "__export", "HttpWeb3CheckDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_pkiTypes", "import_KeyUsage", "import_HttpHeaders", "import_package", "HttpWeb3CheckDataSource", "config", "_certificateLoader", "context", "from", "deviceModelId", "web3CheckDto", "requestDto", "url", "axios", "PACKAGE", "certificate", "result", "dto", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var f=Object.create;var p=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var w=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of m(e))!b.call(t,a)&&a!==o&&p(t,a,{get:()=>e[a],enumerable:!(r=h(e,a))||r.enumerable});return t};var l=(t,e,o)=>(o=t!=null?f(C(t)):{},w(e||!t||!t.__esModule?p(o,"default",{value:t,enumerable:!0}):o,t));var s=require("@ledgerhq/device-management-kit"),c=l(require("axios")),d=require("purify-ts"),u=require("../../shared/constant/HttpHeaders"),i=require("../../web3-check/data/HttpWeb3CheckDataSource"),k=l(require("../../../package.json"));vi.mock("axios");describe("HttpWeb3CheckDataSource",()=>{const t={web3checks:{url:"web3checksUrl"},originToken:"originToken"},e={loadCertificate:vi.fn()};beforeEach(()=>{vi.resetAllMocks()}),describe("getWeb3Checks",()=>{it("should return an object if the request is successful",async()=>{const o={deviceModelId:s.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1},r={public_key_id:"partner",descriptor:"descriptor"};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r}),vi.spyOn(e,"loadCertificate").mockResolvedValueOnce(void 0);const n=await new i.HttpWeb3CheckDataSource(t,e).getWeb3Checks(o);expect(n).toEqual((0,d.Right)({publicKeyId:"partner",descriptor:"descriptor"}))}),it("should return an object if the typed data request is successful",async()=>{const o={deviceModelId:s.DeviceModelId.FLEX,from:"from",data:"typed data"},r={public_key_id:"partner",descriptor:"descriptor"};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r}),vi.spyOn(e,"loadCertificate").mockResolvedValueOnce(void 0);const n=await new i.HttpWeb3CheckDataSource(t,e).getWeb3Checks(o);expect(n).toEqual((0,d.Right)({publicKeyId:"partner",descriptor:"descriptor"}))}),it("should return an object with a certificate if the request is successful",async()=>{const o={deviceModelId:s.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1},r={public_key_id:"partner",descriptor:"descriptor"};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r}),vi.spyOn(e,"loadCertificate").mockResolvedValueOnce({keyUsageNumber:11,payload:new Uint8Array([1])});const n=await new i.HttpWeb3CheckDataSource(t,e).getWeb3Checks(o);expect(n).toEqual((0,d.Right)({publicKeyId:"partner",descriptor:"descriptor",certificate:{keyUsageNumber:11,payload:new Uint8Array([1])}}))}),it("should return an error if the request fails",async()=>{const o={deviceModelId:s.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1};vi.spyOn(c.default,"request").mockRejectedValue(new Error("error"));const a=await new i.HttpWeb3CheckDataSource(t,e).getWeb3Checks(o);expect(a).toEqual((0,d.Left)(new Error("[ContextModule] HttpWeb3CheckDataSource: Failed to fetch web3 checks informations")))}),it("should return an error if the response is invalid",async()=>{const o={deviceModelId:s.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1},r={};vi.spyOn(c.default,"request").mockResolvedValue({data:r}),vi.spyOn(e,"loadCertificate").mockResolvedValue(void 0);const n=await new i.HttpWeb3CheckDataSource(t,e).getWeb3Checks(o);expect(n).toEqual((0,d.Left)(new Error("[ContextModule] HttpWeb3CheckDataSource: Cannot exploit Web3 checks data received")))}),it("should throw an error if origin token is not provided",()=>{expect(()=>new i.HttpWeb3CheckDataSource({...t,originToken:void 0},e)).toThrow("Origin token is required")}),it("should call axios with the correct headers",async()=>{const o={deviceModelId:s.DeviceModelId.FLEX,from:"from",rawTx:"rawTx",chainId:1};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:{}}),await new i.HttpWeb3CheckDataSource(t,e).getWeb3Checks(o),expect(c.default.request).toHaveBeenCalledWith(expect.objectContaining({headers:{[u.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${k.default.version}`,[u.LEDGER_ORIGIN_TOKEN_HEADER]:t.originToken}}))})})});
2
+ //# sourceMappingURL=HttpWeb3CheckDataSource.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/data/HttpWeb3CheckDataSource.test.ts"],
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport { HttpWeb3CheckDataSource } from \"@/web3-check/data/HttpWeb3CheckDataSource\";\nimport { type Web3CheckDto } from \"@/web3-check/data/Web3CheckDto\";\nimport type { Web3CheckTypedData } from \"@/web3-check/domain/web3CheckTypes\";\nimport { type Web3CheckContext } from \"@/web3-check/domain/web3CheckTypes\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpWeb3CheckDataSource\", () => {\n const config = {\n web3checks: {\n url: \"web3checksUrl\",\n },\n originToken: \"originToken\",\n } as ContextModuleConfig;\n const certificateLoaderMock = {\n loadCertificate: vi.fn(),\n };\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"getWeb3Checks\", () => {\n it(\"should return an object if the request is successful\", async () => {\n // GIVEN\n const params: Web3CheckContext = {\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n };\n const dto: Web3CheckDto = {\n public_key_id: \"partner\",\n descriptor: \"descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n vi.spyOn(certificateLoaderMock, \"loadCertificate\").mockResolvedValueOnce(\n undefined,\n );\n\n // WHEN\n const dataSource = new HttpWeb3CheckDataSource(\n config,\n certificateLoaderMock as unknown as PkiCertificateLoader,\n );\n const result = await dataSource.getWeb3Checks(params);\n\n // THEN\n expect(result).toEqual(\n Right({\n publicKeyId: \"partner\",\n descriptor: \"descriptor\",\n }),\n );\n });\n\n it(\"should return an object if the typed data request is successful\", async () => {\n // GIVEN\n const params: Web3CheckContext = {\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n data: \"typed data\" as unknown as Web3CheckTypedData,\n };\n const dto: Web3CheckDto = {\n public_key_id: \"partner\",\n descriptor: \"descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n vi.spyOn(certificateLoaderMock, \"loadCertificate\").mockResolvedValueOnce(\n undefined,\n );\n\n // WHEN\n const dataSource = new HttpWeb3CheckDataSource(\n config,\n certificateLoaderMock as unknown as PkiCertificateLoader,\n );\n const result = await dataSource.getWeb3Checks(params);\n\n // THEN\n expect(result).toEqual(\n Right({\n publicKeyId: \"partner\",\n descriptor: \"descriptor\",\n }),\n );\n });\n\n it(\"should return an object with a certificate if the request is successful\", async () => {\n // GIVEN\n const params: Web3CheckContext = {\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n };\n const dto: Web3CheckDto = {\n public_key_id: \"partner\",\n descriptor: \"descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n vi.spyOn(certificateLoaderMock, \"loadCertificate\").mockResolvedValueOnce({\n keyUsageNumber: 11,\n payload: new Uint8Array([0x01]),\n });\n\n // WHEN\n const dataSource = new HttpWeb3CheckDataSource(\n config,\n certificateLoaderMock as unknown as PkiCertificateLoader,\n );\n const result = await dataSource.getWeb3Checks(params);\n\n // THEN\n expect(result).toEqual(\n Right({\n publicKeyId: \"partner\",\n descriptor: \"descriptor\",\n certificate: { keyUsageNumber: 11, payload: new Uint8Array([0x01]) },\n }),\n );\n });\n\n it(\"should return an error if the request fails\", async () => {\n // GIVEN\n const params: Web3CheckContext = {\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n };\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const dataSource = new HttpWeb3CheckDataSource(\n config,\n certificateLoaderMock as unknown as PkiCertificateLoader,\n );\n const result = await dataSource.getWeb3Checks(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpWeb3CheckDataSource: Failed to fetch web3 checks informations\",\n ),\n ),\n );\n });\n\n it(\"should return an error if the response is invalid\", async () => {\n // GIVEN\n const params: Web3CheckContext = {\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n };\n const dto = {};\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n vi.spyOn(certificateLoaderMock, \"loadCertificate\").mockResolvedValue(\n undefined,\n );\n\n // WHEN\n const dataSource = new HttpWeb3CheckDataSource(\n config,\n certificateLoaderMock as unknown as PkiCertificateLoader,\n );\n const result = await dataSource.getWeb3Checks(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpWeb3CheckDataSource: Cannot exploit Web3 checks data received\",\n ),\n ),\n );\n });\n\n it(\"should throw an error if origin token is not provided\", () => {\n expect(\n () =>\n new HttpWeb3CheckDataSource(\n { ...config, originToken: undefined },\n certificateLoaderMock as unknown as PkiCertificateLoader,\n ),\n ).toThrow(\"Origin token is required\");\n });\n\n it(\"should call axios with the correct headers\", async () => {\n // GIVEN\n const params: Web3CheckContext = {\n deviceModelId: DeviceModelId.FLEX,\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: {} });\n\n // WHEN\n const dataSource = new HttpWeb3CheckDataSource(\n config,\n certificateLoaderMock as unknown as PkiCertificateLoader,\n );\n await dataSource.getWeb3Checks(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_axios", "import_purify_ts", "import_HttpHeaders", "import_HttpWeb3CheckDataSource", "import_package", "config", "certificateLoaderMock", "params", "dto", "axios", "result", "PACKAGE"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var i=(r,e,h,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of b(e))!k.call(r,t)&&t!==h&&o(r,t,{get:()=>e[t],enumerable:!(c=C(e,t))||c.enumerable});return r};var m=r=>i(o({},"__esModule",{value:!0}),r);var p={};module.exports=m(p);
2
+ //# sourceMappingURL=Web3CheckDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/data/Web3CheckDataSource.ts"],
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\n\nimport type {\n Web3CheckContext,\n Web3Checks,\n} from \"@/web3-check/domain/web3CheckTypes\";\n\nexport interface Web3CheckDataSource {\n getWeb3Checks(params: Web3CheckContext): Promise<Either<Error, Web3Checks>>;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["Web3CheckDataSource_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var h=(t,e,o,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of c(e))!b.call(t,s)&&s!==o&&r(t,s,{get:()=>e[s],enumerable:!(p=a(e,s))||p.enumerable});return t};var i=t=>h(r({},"__esModule",{value:!0}),t);var k={};module.exports=i(k);
2
+ //# sourceMappingURL=Web3CheckDto.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/data/Web3CheckDto.ts"],
4
+ "sourcesContent": ["import type { Web3CheckTypedData } from \"@/web3-check/domain/web3CheckTypes\";\n\nexport type GetWeb3ChecksTypedDataRequestDto = {\n msg: {\n from: string;\n data: Web3CheckTypedData;\n };\n};\n\nexport type GetWeb3ChecksRawTxRequestDto = {\n tx: {\n from: string;\n raw: string;\n };\n chain: number;\n};\n\nexport type GetWeb3ChecksRequestDto =\n | GetWeb3ChecksTypedDataRequestDto\n | GetWeb3ChecksRawTxRequestDto;\n\nexport type Web3CheckDto = {\n public_key_id: string;\n descriptor: string;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["Web3CheckDto_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var n=(e,o)=>{for(var r in o)c(e,r,{get:o[r],enumerable:!0})},u=(e,o,r,C)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of b(o))!f.call(e,t)&&t!==r&&c(e,t,{get:()=>o[t],enumerable:!(C=k(o,t))||C.enumerable});return e};var i=e=>u(c({},"__esModule",{value:!0}),e);var d={};n(d,{web3CheckModuleFactory:()=>W});module.exports=i(d);var m=require("inversify"),p=require("../../web3-check/data/HttpWeb3CheckDataSource"),h=require("../../web3-check/domain/DefaultWeb3CheckLoader"),a=require("./web3CheckTypes");const W=()=>new m.ContainerModule(({bind:e})=>{e(a.web3CheckTypes.Web3CheckDataSource).to(p.HttpWeb3CheckDataSource),e(a.web3CheckTypes.Web3CheckContextLoader).to(h.DefaultWeb3CheckContextLoader)});0&&(module.exports={web3CheckModuleFactory});
2
+ //# sourceMappingURL=web3CheckModuleFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/di/web3CheckModuleFactory.ts"],
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpWeb3CheckDataSource } from \"@/web3-check/data/HttpWeb3CheckDataSource\";\nimport { DefaultWeb3CheckContextLoader } from \"@/web3-check/domain/DefaultWeb3CheckLoader\";\n\nimport { web3CheckTypes } from \"./web3CheckTypes\";\n\nexport const web3CheckModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(web3CheckTypes.Web3CheckDataSource).to(HttpWeb3CheckDataSource);\n bind(web3CheckTypes.Web3CheckContextLoader).to(\n DefaultWeb3CheckContextLoader,\n );\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAAwC,qDACxCC,EAA8C,sDAE9CC,EAA+B,4BAExB,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": ["web3CheckModuleFactory_exports", "__export", "web3CheckModuleFactory", "__toCommonJS", "import_inversify", "import_HttpWeb3CheckDataSource", "import_DefaultWeb3CheckLoader", "import_web3CheckTypes", "bind"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var b=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var k=(o,e)=>{for(var t in e)b(o,t,{get:e[t],enumerable:!0})},S=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of a(e))!h.call(o,c)&&c!==t&&b(o,c,{get:()=>e[c],enumerable:!(r=C(e,c))||r.enumerable});return o};var W=o=>S(b({},"__esModule",{value:!0}),o);var x={};k(x,{web3CheckTypes:()=>n});module.exports=W(x);const n={Web3CheckDataSource:Symbol.for("Web3CheckDataSource"),Web3CheckContextLoader:Symbol.for("Web3CheckContextLoader")};0&&(module.exports={web3CheckTypes});
2
+ //# sourceMappingURL=web3CheckTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/di/web3CheckTypes.ts"],
4
+ "sourcesContent": ["export const web3CheckTypes = {\n Web3CheckDataSource: Symbol.for(\"Web3CheckDataSource\"),\n Web3CheckContextLoader: Symbol.for(\"Web3CheckContextLoader\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAiB,CAC5B,oBAAqB,OAAO,IAAI,qBAAqB,EACrD,uBAAwB,OAAO,IAAI,wBAAwB,CAC7D",
6
+ "names": ["web3CheckTypes_exports", "__export", "web3CheckTypes", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var S=(r,e)=>{for(var o in e)i(r,o,{get:e[o],enumerable:!0})},u=(r,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of W(e))!n.call(r,t)&&t!==o&&i(r,t,{get:()=>e[t],enumerable:!(c=p(e,t))||c.enumerable});return r};var d=r=>u(i({},"__esModule",{value:!0}),r),b=(r,e,o,c)=>{for(var t=c>1?void 0:c?p(e,o):e,h=r.length-1,s;h>=0;h--)(s=r[h])&&(t=(c?s(e,o,t):s(t))||t);return c&&t&&i(e,o,t),t},C=(r,e)=>(o,c)=>e(o,c,r);var f={};S(f,{DefaultWeb3CheckContextLoader:()=>a});module.exports=d(f);var m=require("inversify"),k=require("../../web3-check/di/web3CheckTypes");let a=class{_dataSource;constructor(e){this._dataSource=e}async load(e){return await this._dataSource.getWeb3Checks(e)}};a=b([(0,m.injectable)(),C(0,(0,m.inject)(k.web3CheckTypes.Web3CheckDataSource))],a);0&&(module.exports={DefaultWeb3CheckContextLoader});
2
+ //# sourceMappingURL=DefaultWeb3CheckLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/domain/DefaultWeb3CheckLoader.ts"],
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either } from \"purify-ts\";\n\nimport { type Web3CheckDataSource } from \"@/web3-check/data/Web3CheckDataSource\";\nimport { web3CheckTypes } from \"@/web3-check/di/web3CheckTypes\";\n\nimport { Web3CheckContextLoader } from \"./Web3CheckContextLoader\";\nimport { Web3CheckContext, Web3Checks } from \"./web3CheckTypes\";\n\n@injectable()\nexport class DefaultWeb3CheckContextLoader implements Web3CheckContextLoader {\n private _dataSource: Web3CheckDataSource;\n\n constructor(\n @inject(web3CheckTypes.Web3CheckDataSource)\n dataSource: Web3CheckDataSource,\n ) {\n this._dataSource = dataSource;\n }\n\n async load(\n web3CheckContext: Web3CheckContext,\n ): Promise<Either<Error, Web3Checks>> {\n return await this._dataSource.getWeb3Checks(web3CheckContext);\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAInCC,EAA+B,0CAMxB,IAAMC,EAAN,KAAsE,CACnE,YAER,YAEEC,EACA,CACA,KAAK,YAAcA,CACrB,CAEA,MAAM,KACJC,EACoC,CACpC,OAAO,MAAM,KAAK,YAAY,cAAcA,CAAgB,CAC9D,CACF,EAfaF,EAANG,EAAA,IADN,cAAW,EAKPC,EAAA,eAAO,iBAAe,mBAAmB,IAJjCJ",
6
+ "names": ["DefaultWeb3CheckLoader_exports", "__export", "DefaultWeb3CheckContextLoader", "__toCommonJS", "import_inversify", "import_web3CheckTypes", "DefaultWeb3CheckContextLoader", "dataSource", "web3CheckContext", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var t=require("../../web3-check/domain/DefaultWeb3CheckLoader");describe("DefaultWeb3CheckLoader",()=>{describe("load",()=>{it("should call the dataSource with the correct params",async()=>{const e={getWeb3Checks:vi.fn()},a={from:"from",rawTx:"rawTx",chainId:1};await new t.DefaultWeb3CheckContextLoader(e).load(a),expect(e.getWeb3Checks).toHaveBeenCalledWith({from:"from",rawTx:"rawTx",chainId:1})})})});
2
+ //# sourceMappingURL=DefaultWeb3CheckLoader.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/domain/DefaultWeb3CheckLoader.test.ts"],
4
+ "sourcesContent": ["import { DefaultWeb3CheckContextLoader } from \"@/web3-check/domain/DefaultWeb3CheckLoader\";\nimport { type Web3CheckContext } from \"@/web3-check/domain/web3CheckTypes\";\n\ndescribe(\"DefaultWeb3CheckLoader\", () => {\n describe(\"load\", () => {\n it(\"should call the dataSource with the correct params\", async () => {\n // GIVEN\n const dataSource = {\n getWeb3Checks: vi.fn(),\n };\n const web3CheckContext = {\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n } as unknown as Web3CheckContext;\n\n // WHEN\n const loader = new DefaultWeb3CheckContextLoader(dataSource);\n await loader.load(web3CheckContext);\n\n // THEN\n expect(dataSource.getWeb3Checks).toHaveBeenCalledWith({\n from: \"from\",\n rawTx: \"rawTx\",\n chainId: 1,\n });\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA8C,sDAG9C,SAAS,yBAA0B,IAAM,CACvC,SAAS,OAAQ,IAAM,CACrB,GAAG,qDAAsD,SAAY,CAEnE,MAAMC,EAAa,CACjB,cAAe,GAAG,GAAG,CACvB,EACMC,EAAmB,CACvB,KAAM,OACN,MAAO,QACP,QAAS,CACX,EAIA,MADe,IAAI,gCAA8BD,CAAU,EAC9C,KAAKC,CAAgB,EAGlC,OAAOD,EAAW,aAAa,EAAE,qBAAqB,CACpD,KAAM,OACN,MAAO,QACP,QAAS,CACX,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_DefaultWeb3CheckLoader", "dataSource", "web3CheckContext"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var C=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var k=(t,e,h,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of b(e))!i.call(t,o)&&o!==h&&C(t,o,{get:()=>e[o],enumerable:!(r=c(e,o))||r.enumerable});return t};var p=t=>k(C({},"__esModule",{value:!0}),t);var m={};module.exports=p(m);
2
+ //# sourceMappingURL=Web3CheckContextLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/domain/Web3CheckContextLoader.ts"],
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\n\nimport { type Web3CheckContext, type Web3Checks } from \"./web3CheckTypes\";\n\nexport interface Web3CheckContextLoader {\n load(web3CheckContext: Web3CheckContext): Promise<Either<Error, Web3Checks>>;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["Web3CheckContextLoader_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of c(e))!d.call(t,r)&&r!==o&&n(t,r,{get:()=>e[r],enumerable:!(i=a(e,r))||i.enumerable});return t};var s=t=>p(n({},"__esModule",{value:!0}),t);var y={};module.exports=s(y);
2
+ //# sourceMappingURL=web3CheckTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/web3-check/domain/web3CheckTypes.ts"],
4
+ "sourcesContent": ["import { type DeviceModelId } from \"@ledgerhq/device-management-kit\";\n\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nexport type Web3CheckTypedData = {\n domain: {\n name?: string;\n version?: string;\n chainId?: number;\n verifyingContract?: string;\n salt?: string;\n };\n types: Record<string, Array<{ name: string; type: string }>>;\n primaryType: string;\n message: Record<string, unknown>;\n};\n\nexport type Web3CheckTypedDataContext = {\n from: string;\n deviceModelId: DeviceModelId;\n data: Web3CheckTypedData;\n};\n\nexport type Web3CheckRawTxContext = {\n from: string;\n deviceModelId: DeviceModelId;\n rawTx: string;\n chainId: number;\n};\n\nexport type Web3CheckContext =\n | Web3CheckTypedDataContext\n | Web3CheckRawTxContext;\n\nexport type Web3Checks = {\n publicKeyId: string;\n descriptor: string;\n certificate?: PkiCertificate;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["web3CheckTypes_exports", "__toCommonJS"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/context-module",
3
- "version": "1.1.0",
3
+ "version": "1.6.0",
4
4
  "private": false,
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
@@ -20,37 +20,37 @@
20
20
  ],
21
21
  "scripts": {
22
22
  "prebuild": "rimraf lib",
23
- "build": "pnpm lmdk-build --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
23
+ "build": "pnpm ldmk-tool build --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
24
24
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
25
- "watch:builds": "pnpm lmdk-watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
25
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
26
26
  "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
27
27
  "lint": "eslint",
28
28
  "lint:fix": "pnpm lint --fix",
29
29
  "postpack": "find . -name '*.tgz' -exec cp {} ../../../dist/ \\; ",
30
30
  "prettier": "prettier . --check",
31
31
  "prettier:fix": "prettier . --write",
32
- "test": "jest",
33
- "test:watch": "pnpm test -- --watch",
34
- "test:coverage": "pnpm test -- --coverage",
32
+ "test": "vitest run",
33
+ "test:watch": "vitest",
34
+ "test:coverage": "vitest run --coverage",
35
35
  "typecheck": "tsc --noEmit"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@ledgerhq/device-management-kit": "workspace:*",
39
- "@ledgerhq/esbuild-tools": "workspace:*",
39
+ "@ledgerhq/ldmk-tool": "workspace:*",
40
40
  "@ledgerhq/eslint-config-dsdk": "workspace:*",
41
- "@ledgerhq/jest-config-dsdk": "workspace:*",
42
41
  "@ledgerhq/prettier-config-dsdk": "workspace:*",
43
42
  "@ledgerhq/tsconfig-dsdk": "workspace:*",
44
- "@types/crypto-js": "^4.2.2",
45
- "ts-node": "^10.9.2"
43
+ "@ledgerhq/vitest-config-dmk": "workspace:*",
44
+ "@types/crypto-js": "catalog:",
45
+ "ts-node": "catalog:"
46
46
  },
47
47
  "dependencies": {
48
- "axios": "^1.7.9",
49
- "crypto-js": "^4.2.0",
50
- "ethers": "6.13.4",
51
- "inversify": "^6.2.1",
52
- "purify-ts": "^2.1.0",
53
- "reflect-metadata": "^0.2.2"
48
+ "axios": "catalog:",
49
+ "crypto-js": "catalog:",
50
+ "ethers": "catalog:",
51
+ "inversify": "catalog:",
52
+ "purify-ts": "catalog:",
53
+ "reflect-metadata": "catalog:"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "@ledgerhq/device-management-kit": "workspace:*"
@@ -1,2 +1,2 @@
1
- import{DefaultContextModule as e}from"./DefaultContextModule";const r="https://crypto-assets-service.api.ledger.com/v1",o={cal:{url:r,mode:"prod",branch:"main"},defaultLoaders:!0,customLoaders:[],customTypedDataLoader:void 0};class n{config=o;constructor(){}removeDefaultLoaders(){return this.config.defaultLoaders=!1,this}addLoader(t){return this.config.customLoaders.push(t),this}addTypedDataLoader(t){return this.config.customTypedDataLoader=t,this}addCalConfig(t){return this.config.cal={...o.cal,...t},this}build(){return new e(this.config)}}export{n as ContextModuleBuilder,o as DEFAULT_CONFIG};
1
+ import{DefaultContextModule as t}from"./DefaultContextModule";const o="https://crypto-assets-service.api.ledger.com/v1",r="https://web3checks-backend.api.ledger.com/v3",n="https://nft.api.live.ledger.com",i={cal:{url:o,mode:"prod",branch:"main"},web3checks:{url:r},metadataServiceDomain:{url:n},defaultLoaders:!0,customLoaders:[],customTypedDataLoader:void 0,customSolanaLoader:void 0};class s{config=i;needOriginToken=!0;originToken;constructor({originToken:e}={}){this.originToken=e}removeDefaultLoaders(){return this.config.defaultLoaders=!1,this}addLoader(e){return this.config.customLoaders.push(e),this}addTypedDataLoader(e){return this.config.customTypedDataLoader=e,this}addWeb3CheckLoader(e){return this.needOriginToken=!1,this.config.customWeb3CheckLoader=e,this}addSolanaLoader(e){return this.config.customSolanaLoader=e,this}setCalConfig(e){return this.config.cal=e,this}setMetadataServiceConfig(e){return this.config.metadataServiceDomain=e,this}setWeb3ChecksConfig(e){return this.config.web3checks=e,this}build(){if(this.needOriginToken&&!this.originToken)throw new Error("Origin token is required");const e={...this.config,originToken:this.originToken};return new t(e)}}export{s as ContextModuleBuilder,i as DEFAULT_CONFIG};
2
2
  //# sourceMappingURL=ContextModuleBuilder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ContextModuleBuilder.ts"],
4
- "sourcesContent": ["import {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport { type TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst DEFAULT_CAL_URL = \"https://crypto-assets-service.api.ledger.com/v1\";\n\nexport const DEFAULT_CONFIG: ContextModuleConfig = {\n cal: {\n url: DEFAULT_CAL_URL,\n mode: \"prod\",\n branch: \"main\",\n },\n defaultLoaders: true,\n customLoaders: [],\n customTypedDataLoader: undefined,\n};\n\nexport class ContextModuleBuilder {\n private config: ContextModuleConfig = DEFAULT_CONFIG;\n\n constructor() {}\n\n /**\n * Remove default loaders from the list of loaders\n *\n * @returns this\n */\n removeDefaultLoaders() {\n this.config.defaultLoaders = false;\n return this;\n }\n\n /**\n * Add a custom loader to the list of loaders\n *\n * @param loader loader to add to the list of loaders\n * @returns this\n */\n addLoader(loader: ContextLoader) {\n this.config.customLoaders.push(loader);\n return this;\n }\n\n /**\n * Replace the default loader for typed data clear signing contexts\n *\n * @param loader loader to use for typed data clear signing contexts\n * @returns this\n */\n addTypedDataLoader(loader: TypedDataContextLoader) {\n this.config.customTypedDataLoader = loader;\n return this;\n }\n\n /**\n * Add a custom CAL configuration\n *\n * @param calConfig\n * @returns this\n */\n addCalConfig(calConfig: ContextModuleCalConfig) {\n this.config.cal = { ...DEFAULT_CONFIG.cal, ...calConfig };\n return this;\n }\n\n /**\n * Build the context module\n *\n * @returns the context module\n */\n build(): ContextModule {\n return new DefaultContextModule(this.config);\n }\n}\n"],
5
- "mappings": "AAOA,OAAS,wBAAAA,MAA4B,yBAErC,MAAMC,EAAkB,kDAEXC,EAAsC,CACjD,IAAK,CACH,IAAKD,EACL,KAAM,OACN,OAAQ,MACV,EACA,eAAgB,GAChB,cAAe,CAAC,EAChB,sBAAuB,MACzB,EAEO,MAAME,CAAqB,CACxB,OAA8BD,EAEtC,aAAc,CAAC,CAOf,sBAAuB,CACrB,YAAK,OAAO,eAAiB,GACtB,IACT,CAQA,UAAUE,EAAuB,CAC/B,YAAK,OAAO,cAAc,KAAKA,CAAM,EAC9B,IACT,CAQA,mBAAmBA,EAAgC,CACjD,YAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,aAAaC,EAAmC,CAC9C,YAAK,OAAO,IAAM,CAAE,GAAGH,EAAe,IAAK,GAAGG,CAAU,EACjD,IACT,CAOA,OAAuB,CACrB,OAAO,IAAIL,EAAqB,KAAK,MAAM,CAC7C,CACF",
6
- "names": ["DefaultContextModule", "DEFAULT_CAL_URL", "DEFAULT_CONFIG", "ContextModuleBuilder", "loader", "calConfig"]
4
+ "sourcesContent": ["import { type ContextModuleConstructorArgs } from \"./config/model/ContextModuleBuildArgs\";\nimport {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n type ContextModuleMetadataServiceConfig,\n type ContextModuleWeb3ChecksConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport { type SolanaContextLoader } from \"./solana/domain/SolanaContextLoader\";\nimport { type TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { type Web3CheckContextLoader } from \"./web3-check/domain/Web3CheckContextLoader\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\nconst DEFAULT_CAL_URL = \"https://crypto-assets-service.api.ledger.com/v1\";\nconst DEFAULT_WEB3_CHECKS_URL = \"https://web3checks-backend.api.ledger.com/v3\";\nconst DEFAULT_METADATA_SERVICE_DOMAIN = \"https://nft.api.live.ledger.com\";\n\nexport const DEFAULT_CONFIG: ContextModuleConfig = {\n cal: {\n url: DEFAULT_CAL_URL,\n mode: \"prod\",\n branch: \"main\",\n },\n web3checks: {\n url: DEFAULT_WEB3_CHECKS_URL,\n },\n metadataServiceDomain: {\n url: DEFAULT_METADATA_SERVICE_DOMAIN,\n },\n defaultLoaders: true,\n customLoaders: [],\n customTypedDataLoader: undefined,\n customSolanaLoader: undefined,\n};\n\nexport class ContextModuleBuilder {\n private config: ContextModuleConfig = DEFAULT_CONFIG;\n private needOriginToken: boolean = true;\n private originToken?: string;\n\n constructor({ originToken }: ContextModuleConstructorArgs = {}) {\n this.originToken = originToken;\n }\n\n /**\n * Remove default loaders from the list of loaders\n *\n * @returns this\n */\n removeDefaultLoaders() {\n this.config.defaultLoaders = false;\n return this;\n }\n\n /**\n * Add a custom loader to the list of loaders\n *\n * @param loader loader to add to the list of loaders\n * @returns this\n */\n addLoader(loader: ContextLoader) {\n this.config.customLoaders.push(loader);\n return this;\n }\n\n /**\n * Replace the default loader for typed data clear signing contexts\n *\n * @param loader loader to use for typed data clear signing contexts\n * @returns this\n */\n addTypedDataLoader(loader: TypedDataContextLoader) {\n this.config.customTypedDataLoader = loader;\n return this;\n }\n\n /**\n * Replace the default loader for web3 checks\n *\n * @param loader loader to use for web3 checks\n * @returns this\n */\n addWeb3CheckLoader(loader: Web3CheckContextLoader) {\n this.needOriginToken = false;\n this.config.customWeb3CheckLoader = loader;\n return this;\n }\n\n /**\n * Replace the default loader for Solana context\n *\n * @param loader loader to use for Solana context\n * @returns this\n */\n addSolanaLoader(loader: SolanaContextLoader) {\n this.config.customSolanaLoader = loader;\n return this;\n }\n\n /**\n * Add a custom CAL configuration\n *\n * @param calConfig\n * @returns this\n */\n setCalConfig(calConfig: ContextModuleCalConfig) {\n this.config.cal = calConfig;\n return this;\n }\n\n /**\n * Add a custom metadata service configuration\n *\n * @param metadataServiceConfig\n * @returns this\n */\n setMetadataServiceConfig(\n metadataServiceConfig: ContextModuleMetadataServiceConfig,\n ) {\n this.config.metadataServiceDomain = metadataServiceConfig;\n return this;\n }\n\n /**\n * Add a custom web3 checks configuration\n *\n * @param web3ChecksConfig\n * @returns this\n */\n setWeb3ChecksConfig(web3ChecksConfig: ContextModuleWeb3ChecksConfig) {\n this.config.web3checks = web3ChecksConfig;\n return this;\n }\n\n /**\n * Build the context module\n *\n * @returns the context module\n */\n build(): ContextModule {\n if (this.needOriginToken && !this.originToken) {\n throw new Error(\"Origin token is required\");\n }\n\n const config = { ...this.config, originToken: this.originToken };\n return new DefaultContextModule(config);\n }\n}\n"],
5
+ "mappings": "AAYA,OAAS,wBAAAA,MAA4B,yBAErC,MAAMC,EAAkB,kDAClBC,EAA0B,+CAC1BC,EAAkC,kCAE3BC,EAAsC,CACjD,IAAK,CACH,IAAKH,EACL,KAAM,OACN,OAAQ,MACV,EACA,WAAY,CACV,IAAKC,CACP,EACA,sBAAuB,CACrB,IAAKC,CACP,EACA,eAAgB,GAChB,cAAe,CAAC,EAChB,sBAAuB,OACvB,mBAAoB,MACtB,EAEO,MAAME,CAAqB,CACxB,OAA8BD,EAC9B,gBAA2B,GAC3B,YAER,YAAY,CAAE,YAAAE,CAAY,EAAkC,CAAC,EAAG,CAC9D,KAAK,YAAcA,CACrB,CAOA,sBAAuB,CACrB,YAAK,OAAO,eAAiB,GACtB,IACT,CAQA,UAAUC,EAAuB,CAC/B,YAAK,OAAO,cAAc,KAAKA,CAAM,EAC9B,IACT,CAQA,mBAAmBA,EAAgC,CACjD,YAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,mBAAmBA,EAAgC,CACjD,YAAK,gBAAkB,GACvB,KAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,gBAAgBA,EAA6B,CAC3C,YAAK,OAAO,mBAAqBA,EAC1B,IACT,CAQA,aAAaC,EAAmC,CAC9C,YAAK,OAAO,IAAMA,EACX,IACT,CAQA,yBACEC,EACA,CACA,YAAK,OAAO,sBAAwBA,EAC7B,IACT,CAQA,oBAAoBC,EAAiD,CACnE,YAAK,OAAO,WAAaA,EAClB,IACT,CAOA,OAAuB,CACrB,GAAI,KAAK,iBAAmB,CAAC,KAAK,YAChC,MAAM,IAAI,MAAM,0BAA0B,EAG5C,MAAMC,EAAS,CAAE,GAAG,KAAK,OAAQ,YAAa,KAAK,WAAY,EAC/D,OAAO,IAAIX,EAAqBW,CAAM,CACxC,CACF",
6
+ "names": ["DefaultContextModule", "DEFAULT_CAL_URL", "DEFAULT_WEB3_CHECKS_URL", "DEFAULT_METADATA_SERVICE_DOMAIN", "DEFAULT_CONFIG", "ContextModuleBuilder", "originToken", "loader", "calConfig", "metadataServiceConfig", "web3ChecksConfig", "config"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ContextModuleBuilder as o}from"./ContextModuleBuilder";import{DefaultContextModule as d}from"./DefaultContextModule";describe("ContextModuleBuilder",()=>{const u={url:"https://crypto-assets-service.api.ledger.com/v1",mode:"prod",branch:"main"};it("should return a default context module",()=>{const e=new o().build();expect(e).toBeInstanceOf(d)}),it("should return a custom context module",()=>{const t=new o,e={load:jest.fn()},n=t.removeDefaultLoaders().addLoader(e).build();expect(n).toBeInstanceOf(d)}),it("should return a custom context module with a custom typed data loader",()=>{const t=new o,e={load:jest.fn()},n=t.removeDefaultLoaders().addTypedDataLoader(e).build();expect(n).toBeInstanceOf(d)}),it("should return a custom context module with a custom config",()=>{const e=new o().addCalConfig(u).build();expect(e).toBeInstanceOf(d)})});
1
+ import{configTypes as s}from"./config/di/configTypes";import{ContextModuleBuilder as c}from"./ContextModuleBuilder";import{DefaultContextModule as r}from"./DefaultContextModule";describe("ContextModuleBuilder",()=>{const d={url:"https://cal/v1",mode:"prod",branch:"main"},a={url:"https://web3checks/v1"},i={originToken:"test"};beforeEach(()=>{vi.resetAllMocks()}),it("should return a default context module",()=>{const e=new c(i).build();expect(e).toBeInstanceOf(r)}),it("should return a custom context module",()=>{const t=new c(i),e={load:vi.fn()},o=t.removeDefaultLoaders().addLoader(e).build();expect(o).toBeInstanceOf(r)}),it("should return a custom context module with a custom typed data loader",()=>{const t=new c(i),e={load:vi.fn()},o=t.removeDefaultLoaders().addTypedDataLoader(e).build();expect(o).toBeInstanceOf(r),expect(o._typedDataLoader).toBe(e)}),it("should return a custom context module with a custom config",()=>{const e=new c(i).setCalConfig(d).setWeb3ChecksConfig(a).build(),o=e._container.get(s.Config);expect(e).toBeInstanceOf(r),expect(o.cal).toEqual(d),expect(o.web3checks).toEqual(a)}),it("should return a custom context module with a custom custom web3checks loader",()=>{const t=new c,e={load:vi.fn()},o=t.removeDefaultLoaders().addWeb3CheckLoader(e).build();expect(o).toBeInstanceOf(r),expect(o._web3CheckLoader).toBe(e)}),it("should throw an error if origin token is not provided",()=>{const t=new c;expect(()=>t.build()).toThrow("Origin token is required")}),it("should not throw an error if origin token is provided",()=>{const t=new c(i);expect(()=>t.build()).not.toThrow()}),it("should not throw an error if origin token is not provided and addWeb3CheckLoader is called",()=>{const t=new c;expect(()=>t.addWeb3CheckLoader({load:vi.fn()}).build()).not.toThrow()}),describe("setMetadataServiceConfig",()=>{it("should set the metadata service configuration",()=>{const t=new c(i),e={url:"https://custom-metadata-service.com/v3"},o=t.setMetadataServiceConfig(e).build(),n=o._container.get(s.Config);expect(o).toBeInstanceOf(r),expect(n.metadataServiceDomain).toEqual(e)}),it("should override the default metadata service configuration",()=>{const t=new c(i),e={url:"https://override-metadata-service.com/v1"},n=t.setMetadataServiceConfig(e).build()._container.get(s.Config);expect(n.metadataServiceDomain.url).toBe(e.url),expect(n.metadataServiceDomain.url).not.toBe("https://nft.api.live.ledger.com/v2")})}),describe("setCalConfig",()=>{it("should set the CAL configuration",()=>{const t=new c(i),e={url:"https://custom-cal-service.com/v2",mode:"test",branch:"next"},o=t.setCalConfig(e).build(),n=o._container.get(s.Config);expect(o).toBeInstanceOf(r),expect(n.cal).toEqual(e)}),it("should override the default CAL configuration",()=>{const t=new c(i),e={url:"https://override-cal-service.com/v1",mode:"prod",branch:"demo"},n=t.setCalConfig(e).build()._container.get(s.Config);expect(n.cal.url).toBe(e.url),expect(n.cal.mode).toBe(e.mode),expect(n.cal.branch).toBe(e.branch),expect(n.cal.url).not.toBe("https://crypto-assets-service.api.ledger.com/v1")})}),describe("setWeb3ChecksConfig",()=>{it("should set the web3 checks configuration",()=>{const t=new c(i),e={url:"https://custom-web3checks-service.com/v4"},o=t.setWeb3ChecksConfig(e).build(),n=o._container.get(s.Config);expect(o).toBeInstanceOf(r),expect(n.web3checks).toEqual(e)}),it("should override the default web3 checks configuration",()=>{const t=new c(i),e={url:"https://override-web3checks-service.com/v2"},n=t.setWeb3ChecksConfig(e).build()._container.get(s.Config);expect(n.web3checks.url).toBe(e.url),expect(n.web3checks.url).not.toBe("https://web3checks-backend.api.ledger.com/v3")})})});
2
2
  //# sourceMappingURL=ContextModuleBuilder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ContextModuleBuilder.test.ts"],
4
- "sourcesContent": ["import { type ContextModuleCalConfig } from \"./config/model/ContextModuleConfig\";\nimport { ContextModuleBuilder } from \"./ContextModuleBuilder\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\ndescribe(\"ContextModuleBuilder\", () => {\n const defaultCalConfig: ContextModuleCalConfig = {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n mode: \"prod\",\n branch: \"main\",\n };\n it(\"should return a default context module\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n\n const res = contextModuleBuilder.build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n const customLoader = { load: jest.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module with a custom typed data loader\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n const customLoader = { load: jest.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addTypedDataLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module with a custom config\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n\n const res = contextModuleBuilder.addCalConfig(defaultCalConfig).build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n});\n"],
5
- "mappings": "AACA,OAAS,wBAAAA,MAA4B,yBACrC,OAAS,wBAAAC,MAA4B,yBAErC,SAAS,uBAAwB,IAAM,CACrC,MAAMC,EAA2C,CAC/C,IAAK,kDACL,KAAM,OACN,OAAQ,MACV,EACA,GAAG,yCAA0C,IAAM,CAGjD,MAAMC,EAFuB,IAAIH,EAAqB,EAErB,MAAM,EAEvC,OAAOG,CAAG,EAAE,eAAeF,CAAoB,CACjD,CAAC,EAED,GAAG,wCAAyC,IAAM,CAChD,MAAMG,EAAuB,IAAIJ,EAC3BK,EAAe,CAAE,KAAM,KAAK,GAAG,CAAE,EAEjCF,EAAMC,EACT,qBAAqB,EACrB,UAAUC,CAAY,EACtB,MAAM,EAET,OAAOF,CAAG,EAAE,eAAeF,CAAoB,CACjD,CAAC,EAED,GAAG,wEAAyE,IAAM,CAChF,MAAMG,EAAuB,IAAIJ,EAC3BK,EAAe,CAAE,KAAM,KAAK,GAAG,CAAE,EAEjCF,EAAMC,EACT,qBAAqB,EACrB,mBAAmBC,CAAY,EAC/B,MAAM,EAET,OAAOF,CAAG,EAAE,eAAeF,CAAoB,CACjD,CAAC,EAED,GAAG,6DAA8D,IAAM,CAGrE,MAAME,EAFuB,IAAIH,EAAqB,EAErB,aAAaE,CAAgB,EAAE,MAAM,EAEtE,OAAOC,CAAG,EAAE,eAAeF,CAAoB,CACjD,CAAC,CACH,CAAC",
6
- "names": ["ContextModuleBuilder", "DefaultContextModule", "defaultCalConfig", "res", "contextModuleBuilder", "customLoader"]
4
+ "sourcesContent": ["import { type Container } from \"inversify\";\n\nimport { configTypes } from \"./config/di/configTypes\";\nimport { type ContextModuleConstructorArgs } from \"./config/model/ContextModuleBuildArgs\";\nimport {\n type ContextModuleCalConfig,\n type ContextModuleConfig,\n type ContextModuleMetadataServiceConfig,\n} from \"./config/model/ContextModuleConfig\";\nimport { ContextModuleBuilder } from \"./ContextModuleBuilder\";\nimport { DefaultContextModule } from \"./DefaultContextModule\";\n\ndescribe(\"ContextModuleBuilder\", () => {\n const defaultCalConfig: ContextModuleCalConfig = {\n url: \"https://cal/v1\",\n mode: \"prod\",\n branch: \"main\",\n };\n const defaultWeb3ChecksConfig = {\n url: \"https://web3checks/v1\",\n };\n const defaultBuilderArgs: ContextModuleConstructorArgs = {\n originToken: \"test\",\n };\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should return a default context module\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n\n const res = contextModuleBuilder.build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n });\n\n it(\"should return a custom context module with a custom typed data loader\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addTypedDataLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n // @ts-expect-error _typedDataLoader is private\n expect(res[\"_typedDataLoader\"]).toBe(customLoader);\n });\n\n it(\"should return a custom context module with a custom config\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n\n const res = contextModuleBuilder\n .setCalConfig(defaultCalConfig)\n .setWeb3ChecksConfig(defaultWeb3ChecksConfig)\n .build();\n // @ts-expect-error _container is private\n const config = (res[\"_container\"] as Container).get<ContextModuleConfig>(\n configTypes.Config,\n );\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n expect(config.cal).toEqual(defaultCalConfig);\n expect(config.web3checks).toEqual(defaultWeb3ChecksConfig);\n });\n\n it(\"should return a custom context module with a custom custom web3checks loader\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n const customLoader = { load: vi.fn() };\n\n const res = contextModuleBuilder\n .removeDefaultLoaders()\n .addWeb3CheckLoader(customLoader)\n .build();\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n // @ts-expect-error _web3CheckLoader is private\n expect(res[\"_web3CheckLoader\"]).toBe(customLoader);\n });\n\n it(\"should throw an error if origin token is not provided\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n\n expect(() => contextModuleBuilder.build()).toThrow(\n \"Origin token is required\",\n );\n });\n\n it(\"should not throw an error if origin token is provided\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n\n expect(() => contextModuleBuilder.build()).not.toThrow();\n });\n\n it(\"should not throw an error if origin token is not provided and addWeb3CheckLoader is called\", () => {\n const contextModuleBuilder = new ContextModuleBuilder();\n\n expect(() =>\n contextModuleBuilder.addWeb3CheckLoader({ load: vi.fn() }).build(),\n ).not.toThrow();\n });\n\n describe(\"setMetadataServiceConfig\", () => {\n it(\"should set the metadata service configuration\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customMetadataConfig: ContextModuleMetadataServiceConfig = {\n url: \"https://custom-metadata-service.com/v3\",\n };\n\n const res = contextModuleBuilder\n .setMetadataServiceConfig(customMetadataConfig)\n .build();\n const config = (res as DefaultContextModule)[\n \"_container\"\n ].get<ContextModuleConfig>(configTypes.Config);\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n expect(config.metadataServiceDomain).toEqual(customMetadataConfig);\n });\n\n it(\"should override the default metadata service configuration\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customMetadataConfig: ContextModuleMetadataServiceConfig = {\n url: \"https://override-metadata-service.com/v1\",\n };\n\n const res = contextModuleBuilder\n .setMetadataServiceConfig(customMetadataConfig)\n .build();\n const config = (res as DefaultContextModule)[\n \"_container\"\n ].get<ContextModuleConfig>(configTypes.Config);\n\n expect(config.metadataServiceDomain.url).toBe(customMetadataConfig.url);\n expect(config.metadataServiceDomain.url).not.toBe(\n \"https://nft.api.live.ledger.com/v2\",\n );\n });\n });\n\n describe(\"setCalConfig\", () => {\n it(\"should set the CAL configuration\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customCalConfig: ContextModuleCalConfig = {\n url: \"https://custom-cal-service.com/v2\",\n mode: \"test\",\n branch: \"next\",\n };\n\n const res = contextModuleBuilder.setCalConfig(customCalConfig).build();\n const config = (res as DefaultContextModule)[\n \"_container\"\n ].get<ContextModuleConfig>(configTypes.Config);\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n expect(config.cal).toEqual(customCalConfig);\n });\n\n it(\"should override the default CAL configuration\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customCalConfig: ContextModuleCalConfig = {\n url: \"https://override-cal-service.com/v1\",\n mode: \"prod\",\n branch: \"demo\",\n };\n\n const res = contextModuleBuilder.setCalConfig(customCalConfig).build();\n const config = (res as DefaultContextModule)[\n \"_container\"\n ].get<ContextModuleConfig>(configTypes.Config);\n\n expect(config.cal.url).toBe(customCalConfig.url);\n expect(config.cal.mode).toBe(customCalConfig.mode);\n expect(config.cal.branch).toBe(customCalConfig.branch);\n expect(config.cal.url).not.toBe(\n \"https://crypto-assets-service.api.ledger.com/v1\",\n );\n });\n });\n\n describe(\"setWeb3ChecksConfig\", () => {\n it(\"should set the web3 checks configuration\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customWeb3ChecksConfig = {\n url: \"https://custom-web3checks-service.com/v4\",\n };\n\n const res = contextModuleBuilder\n .setWeb3ChecksConfig(customWeb3ChecksConfig)\n .build();\n const config = (res as DefaultContextModule)[\n \"_container\"\n ].get<ContextModuleConfig>(configTypes.Config);\n\n expect(res).toBeInstanceOf(DefaultContextModule);\n expect(config.web3checks).toEqual(customWeb3ChecksConfig);\n });\n\n it(\"should override the default web3 checks configuration\", () => {\n const contextModuleBuilder = new ContextModuleBuilder(defaultBuilderArgs);\n const customWeb3ChecksConfig = {\n url: \"https://override-web3checks-service.com/v2\",\n };\n\n const res = contextModuleBuilder\n .setWeb3ChecksConfig(customWeb3ChecksConfig)\n .build();\n const config = (res as DefaultContextModule)[\n \"_container\"\n ].get<ContextModuleConfig>(configTypes.Config);\n\n expect(config.web3checks.url).toBe(customWeb3ChecksConfig.url);\n expect(config.web3checks.url).not.toBe(\n \"https://web3checks-backend.api.ledger.com/v3\",\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["configTypes", "ContextModuleBuilder", "DefaultContextModule", "defaultCalConfig", "defaultWeb3ChecksConfig", "defaultBuilderArgs", "res", "contextModuleBuilder", "customLoader", "config", "customMetadataConfig", "customCalConfig", "customWeb3ChecksConfig"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{transactionTypes as r}from"./transaction/di/transactionTypes";import{trustedNameTypes as n}from"./trusted-name/di/trustedNameTypes";import{externalPluginTypes as i}from"./external-plugin/di/externalPluginTypes";import{nftTypes as p}from"./nft/di/nftTypes";import{ClearSignContextType as d}from"./shared/model/ClearSignContext";import{tokenTypes as s}from"./token/di/tokenTypes";import{typedDataTypes as m}from"./typed-data/di/typedDataTypes";import{makeContainer as C}from"./di";class g{_container;_loaders;_typedDataLoader;constructor(t){this._container=C({config:t}),this._loaders=t.defaultLoaders?this._getDefaultLoaders():[],this._loaders.push(...t.customLoaders),this._typedDataLoader=t.customTypedDataLoader??this._getDefaultTypedDataLoader()}_getDefaultLoaders(){return[this._container.get(i.ExternalPluginContextLoader),this._container.get(n.TrustedNameContextLoader),this._container.get(p.NftContextLoader),this._container.get(s.TokenContextLoader),this._container.get(r.TransactionContextLoader)]}_getDefaultTypedDataLoader(){return this._container.get(m.TypedDataContextLoader)}async getContexts(t){const o=this._loaders.map(e=>e.load(t));return(await Promise.all(o)).flat()}async getContext(t){const o=this._loaders.filter(e=>e.loadField).map(e=>e.loadField(t));return(await Promise.all(o)).find(e=>e!==null)||{type:d.ERROR,error:new Error(`Field type not supported: ${t.type}`)}}async getTypedDataFilters(t){return this._typedDataLoader.load(t)}}export{g as DefaultContextModule};
1
+ import{Left as n}from"purify-ts";import{dynamicNetworkTypes as i}from"./dynamic-network/di/dynamicNetworkTypes";import{transactionTypes as p}from"./transaction/di/transactionTypes";import{trustedNameTypes as d}from"./trusted-name/di/trustedNameTypes";import{externalPluginTypes as s}from"./external-plugin/di/externalPluginTypes";import{nftTypes as C}from"./nft/di/nftTypes";import{ClearSignContextType as r}from"./shared/model/ClearSignContext";import{solanaContextTypes as m}from"./solana/di/solanaContextTypes";import{tokenTypes as l}from"./token/di/tokenTypes";import{typedDataTypes as c}from"./typed-data/di/typedDataTypes";import{uniswapTypes as x}from"./uniswap/di/uniswapTypes";import{web3CheckTypes as y}from"./web3-check/di/web3CheckTypes";import{makeContainer as L}from"./di";class E{_container;_loaders;_typedDataLoader;_web3CheckLoader;_solanaLoader;constructor(t){this._container=L({config:t}),this._loaders=t.defaultLoaders?this._getDefaultLoaders():[],this._loaders.push(...t.customLoaders),this._typedDataLoader=t.customTypedDataLoader??this._getDefaultTypedDataLoader(),this._web3CheckLoader=t.customWeb3CheckLoader??this._getWeb3CheckLoader(),this._solanaLoader=t.customSolanaLoader??this._getSolanaLoader()}_getDefaultLoaders(){return[this._container.get(s.ExternalPluginContextLoader),this._container.get(d.TrustedNameContextLoader),this._container.get(C.NftContextLoader),this._container.get(l.TokenContextLoader),this._container.get(p.TransactionContextLoader),this._container.get(x.UniswapContextLoader),this._container.get(i.DynamicNetworkContextLoader)]}_getDefaultTypedDataLoader(){return this._container.get(c.TypedDataContextLoader)}_getWeb3CheckLoader(){return this._container.get(y.Web3CheckContextLoader)}_getSolanaLoader(){try{return this._container.get(m.SolanaContextLoader)}catch{return{load:async t=>n(new Error("[ContextModule] - DefaultContextModule: no SolanaContextLoader bound"))}}}async getContexts(t){const o=this._loaders.map(e=>e.load(t));return(await Promise.all(o)).flat()}async getContext(t){const o=this._loaders.filter(e=>e.loadField).map(e=>e.loadField(t));return(await Promise.all(o)).find(e=>e!==null)||{type:r.ERROR,error:new Error(`Field type not supported: ${t.type}`)}}async getTypedDataFilters(t){return this._typedDataLoader.load(t)}async getWeb3Checks(t){return(await this._web3CheckLoader.load(t)).caseOf({Right:a=>({type:r.WEB3_CHECK,payload:a.descriptor,certificate:a.certificate}),Left:()=>null})}async getSolanaContext(t){return await this._solanaLoader.load(t)}}export{E as DefaultContextModule};
2
2
  //# sourceMappingURL=DefaultContextModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/DefaultContextModule.ts"],
4
- "sourcesContent": ["import { type Container } from \"inversify\";\n\nimport type { TypedDataClearSignContext } from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataContext } from \"@/shared/model/TypedDataContext\";\nimport { transactionTypes } from \"@/transaction/di/transactionTypes\";\nimport { trustedNameTypes } from \"@/trusted-name/di/trustedNameTypes\";\n\nimport { type ContextModuleConfig } from \"./config/model/ContextModuleConfig\";\nimport { externalPluginTypes } from \"./external-plugin/di/externalPluginTypes\";\nimport { type ExternalPluginContextLoader } from \"./external-plugin/domain/ExternalPluginContextLoader\";\nimport { nftTypes } from \"./nft/di/nftTypes\";\nimport { type NftContextLoader } from \"./nft/domain/NftContextLoader\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport {\n type ClearSignContext,\n ClearSignContextType,\n} from \"./shared/model/ClearSignContext\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"./shared/model/TransactionContext\";\nimport { tokenTypes } from \"./token/di/tokenTypes\";\nimport { type TokenContextLoader } from \"./token/domain/TokenContextLoader\";\nimport { type TransactionContextLoader } from \"./transaction/domain/TransactionContextLoader\";\nimport { type TrustedNameContextLoader } from \"./trusted-name/domain/TrustedNameContextLoader\";\nimport { typedDataTypes } from \"./typed-data/di/typedDataTypes\";\nimport type { TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { makeContainer } from \"./di\";\n\nexport class DefaultContextModule implements ContextModule {\n private _container: Container;\n private _loaders: ContextLoader[];\n private _typedDataLoader: TypedDataContextLoader;\n\n constructor(args: ContextModuleConfig) {\n this._container = makeContainer({ config: args });\n this._loaders = args.defaultLoaders ? this._getDefaultLoaders() : [];\n this._loaders.push(...args.customLoaders);\n this._typedDataLoader =\n args.customTypedDataLoader ?? this._getDefaultTypedDataLoader();\n }\n\n private _getDefaultLoaders(): ContextLoader[] {\n return [\n this._container.get<ExternalPluginContextLoader>(\n externalPluginTypes.ExternalPluginContextLoader,\n ),\n this._container.get<TrustedNameContextLoader>(\n trustedNameTypes.TrustedNameContextLoader,\n ),\n this._container.get<NftContextLoader>(nftTypes.NftContextLoader),\n this._container.get<TokenContextLoader>(tokenTypes.TokenContextLoader),\n this._container.get<TransactionContextLoader>(\n transactionTypes.TransactionContextLoader,\n ),\n ];\n }\n\n private _getDefaultTypedDataLoader(): TypedDataContextLoader {\n return this._container.get<TypedDataContextLoader>(\n typedDataTypes.TypedDataContextLoader,\n );\n }\n\n public async getContexts(\n transaction: TransactionContext,\n ): Promise<ClearSignContext[]> {\n const promises = this._loaders.map((fetcher) => fetcher.load(transaction));\n const responses = await Promise.all(promises);\n return responses.flat();\n }\n\n public async getContext(\n field: TransactionFieldContext,\n ): Promise<ClearSignContext> {\n const promises = this._loaders\n .filter((fetcher) => fetcher.loadField)\n .map((fetcher) => fetcher.loadField!(field));\n const responses = await Promise.all(promises);\n return (\n responses.find((resp) => resp !== null) || {\n type: ClearSignContextType.ERROR,\n error: new Error(`Field type not supported: ${field.type}`),\n }\n );\n }\n\n public async getTypedDataFilters(\n typedData: TypedDataContext,\n ): Promise<TypedDataClearSignContext> {\n return this._typedDataLoader.load(typedData);\n }\n}\n"],
5
- "mappings": "AAIA,OAAS,oBAAAA,MAAwB,oCACjC,OAAS,oBAAAC,MAAwB,qCAGjC,OAAS,uBAAAC,MAA2B,2CAEpC,OAAS,YAAAC,MAAgB,oBAGzB,OAEE,wBAAAC,MACK,kCAKP,OAAS,cAAAC,MAAkB,wBAI3B,OAAS,kBAAAC,MAAsB,iCAG/B,OAAS,iBAAAC,MAAqB,OAEvB,MAAMC,CAA8C,CACjD,WACA,SACA,iBAER,YAAYC,EAA2B,CACrC,KAAK,WAAaF,EAAc,CAAE,OAAQE,CAAK,CAAC,EAChD,KAAK,SAAWA,EAAK,eAAiB,KAAK,mBAAmB,EAAI,CAAC,EACnE,KAAK,SAAS,KAAK,GAAGA,EAAK,aAAa,EACxC,KAAK,iBACHA,EAAK,uBAAyB,KAAK,2BAA2B,CAClE,CAEQ,oBAAsC,CAC5C,MAAO,CACL,KAAK,WAAW,IACdP,EAAoB,2BACtB,EACA,KAAK,WAAW,IACdD,EAAiB,wBACnB,EACA,KAAK,WAAW,IAAsBE,EAAS,gBAAgB,EAC/D,KAAK,WAAW,IAAwBE,EAAW,kBAAkB,EACrE,KAAK,WAAW,IACdL,EAAiB,wBACnB,CACF,CACF,CAEQ,4BAAqD,CAC3D,OAAO,KAAK,WAAW,IACrBM,EAAe,sBACjB,CACF,CAEA,MAAa,YACXI,EAC6B,CAC7B,MAAMC,EAAW,KAAK,SAAS,IAAKC,GAAYA,EAAQ,KAAKF,CAAW,CAAC,EAEzE,OADkB,MAAM,QAAQ,IAAIC,CAAQ,GAC3B,KAAK,CACxB,CAEA,MAAa,WACXE,EAC2B,CAC3B,MAAMF,EAAW,KAAK,SACnB,OAAQC,GAAYA,EAAQ,SAAS,EACrC,IAAKA,GAAYA,EAAQ,UAAWC,CAAK,CAAC,EAE7C,OADkB,MAAM,QAAQ,IAAIF,CAAQ,GAEhC,KAAMG,GAASA,IAAS,IAAI,GAAK,CACzC,KAAMV,EAAqB,MAC3B,MAAO,IAAI,MAAM,6BAA6BS,EAAM,IAAI,EAAE,CAC5D,CAEJ,CAEA,MAAa,oBACXE,EACoC,CACpC,OAAO,KAAK,iBAAiB,KAAKA,CAAS,CAC7C,CACF",
6
- "names": ["transactionTypes", "trustedNameTypes", "externalPluginTypes", "nftTypes", "ClearSignContextType", "tokenTypes", "typedDataTypes", "makeContainer", "DefaultContextModule", "args", "transaction", "promises", "fetcher", "field", "resp", "typedData"]
4
+ "sourcesContent": ["import { type Container } from \"inversify\";\nimport { Left } from \"purify-ts\";\n\nimport { dynamicNetworkTypes } from \"@/dynamic-network/di/dynamicNetworkTypes\";\nimport { type DynamicNetworkContextLoader } from \"@/dynamic-network/domain/DynamicNetworkContextLoader\";\nimport type { TypedDataClearSignContext } from \"@/shared/model/TypedDataClearSignContext\";\nimport type { TypedDataContext } from \"@/shared/model/TypedDataContext\";\nimport { transactionTypes } from \"@/transaction/di/transactionTypes\";\nimport { trustedNameTypes } from \"@/trusted-name/di/trustedNameTypes\";\n\nimport { type ContextModuleConfig } from \"./config/model/ContextModuleConfig\";\nimport { externalPluginTypes } from \"./external-plugin/di/externalPluginTypes\";\nimport { type ExternalPluginContextLoader } from \"./external-plugin/domain/ExternalPluginContextLoader\";\nimport { nftTypes } from \"./nft/di/nftTypes\";\nimport { type NftContextLoader } from \"./nft/domain/NftContextLoader\";\nimport { type ContextLoader } from \"./shared/domain/ContextLoader\";\nimport {\n type ClearSignContext,\n type ClearSignContextSuccess,\n ClearSignContextType,\n} from \"./shared/model/ClearSignContext\";\nimport { type SolanaTransactionContext } from \"./shared/model/SolanaTransactionContext\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"./shared/model/TransactionContext\";\nimport { solanaContextTypes } from \"./solana/di/solanaContextTypes\";\nimport { type SolanaContextLoader } from \"./solana/domain/SolanaContextLoader\";\nimport { type SolanaTransactionContextResult } from \"./solana/domain/solanaContextTypes\";\nimport { tokenTypes } from \"./token/di/tokenTypes\";\nimport { type TokenContextLoader } from \"./token/domain/TokenContextLoader\";\nimport { type TransactionContextLoader } from \"./transaction/domain/TransactionContextLoader\";\nimport { type TrustedNameContextLoader } from \"./trusted-name/domain/TrustedNameContextLoader\";\nimport { typedDataTypes } from \"./typed-data/di/typedDataTypes\";\nimport type { TypedDataContextLoader } from \"./typed-data/domain/TypedDataContextLoader\";\nimport { uniswapTypes } from \"./uniswap/di/uniswapTypes\";\nimport { type UniswapContextLoader } from \"./uniswap/domain/UniswapContextLoader\";\nimport { web3CheckTypes } from \"./web3-check/di/web3CheckTypes\";\nimport { type Web3CheckContextLoader } from \"./web3-check/domain/Web3CheckContextLoader\";\nimport {\n type Web3CheckContext,\n type Web3Checks,\n} from \"./web3-check/domain/web3CheckTypes\";\nimport { type ContextModule } from \"./ContextModule\";\nimport { makeContainer } from \"./di\";\n\nexport class DefaultContextModule implements ContextModule {\n private _container: Container;\n private _loaders: ContextLoader[];\n private _typedDataLoader: TypedDataContextLoader;\n private _web3CheckLoader: Web3CheckContextLoader;\n private _solanaLoader: SolanaContextLoader;\n\n constructor(args: ContextModuleConfig) {\n this._container = makeContainer({ config: args });\n this._loaders = args.defaultLoaders ? this._getDefaultLoaders() : [];\n this._loaders.push(...args.customLoaders);\n this._typedDataLoader =\n args.customTypedDataLoader ?? this._getDefaultTypedDataLoader();\n this._web3CheckLoader =\n args.customWeb3CheckLoader ?? this._getWeb3CheckLoader();\n this._solanaLoader = args.customSolanaLoader ?? this._getSolanaLoader();\n }\n\n private _getDefaultLoaders(): ContextLoader[] {\n return [\n this._container.get<ExternalPluginContextLoader>(\n externalPluginTypes.ExternalPluginContextLoader,\n ),\n this._container.get<TrustedNameContextLoader>(\n trustedNameTypes.TrustedNameContextLoader,\n ),\n this._container.get<NftContextLoader>(nftTypes.NftContextLoader),\n this._container.get<TokenContextLoader>(tokenTypes.TokenContextLoader),\n this._container.get<TransactionContextLoader>(\n transactionTypes.TransactionContextLoader,\n ),\n this._container.get<UniswapContextLoader>(\n uniswapTypes.UniswapContextLoader,\n ),\n this._container.get<DynamicNetworkContextLoader>(\n dynamicNetworkTypes.DynamicNetworkContextLoader,\n ),\n ];\n }\n\n private _getDefaultTypedDataLoader(): TypedDataContextLoader {\n return this._container.get<TypedDataContextLoader>(\n typedDataTypes.TypedDataContextLoader,\n );\n }\n\n private _getWeb3CheckLoader(): Web3CheckContextLoader {\n return this._container.get<Web3CheckContextLoader>(\n web3CheckTypes.Web3CheckContextLoader,\n );\n }\n\n private _getSolanaLoader(): SolanaContextLoader {\n try {\n return this._container.get<SolanaContextLoader>(\n solanaContextTypes.SolanaContextLoader,\n );\n } catch {\n return {\n load: async (_ctx) =>\n Left(\n new Error(\n \"[ContextModule] - DefaultContextModule: no SolanaContextLoader bound\",\n ),\n ),\n };\n }\n }\n\n public async getContexts(\n transaction: TransactionContext,\n ): Promise<ClearSignContext[]> {\n const promises = this._loaders.map((fetcher) => fetcher.load(transaction));\n const responses = await Promise.all(promises);\n return responses.flat();\n }\n\n public async getContext(\n field: TransactionFieldContext,\n ): Promise<ClearSignContext> {\n const promises = this._loaders\n .filter((fetcher) => fetcher.loadField)\n .map((fetcher) => fetcher.loadField!(field));\n const responses = await Promise.all(promises);\n return (\n responses.find((resp) => resp !== null) || {\n type: ClearSignContextType.ERROR,\n error: new Error(`Field type not supported: ${field.type}`),\n }\n );\n }\n\n public async getTypedDataFilters(\n typedData: TypedDataContext,\n ): Promise<TypedDataClearSignContext> {\n return this._typedDataLoader.load(typedData);\n }\n\n public async getWeb3Checks(\n transactionContext: Web3CheckContext,\n ): Promise<ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null> {\n const web3Checks = await this._web3CheckLoader.load(transactionContext);\n\n return web3Checks.caseOf({\n Right: (checks: Web3Checks) => ({\n type: ClearSignContextType.WEB3_CHECK,\n payload: checks.descriptor,\n certificate: checks.certificate,\n }),\n Left: () => null,\n });\n }\n\n public async getSolanaContext(\n transactionContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult> {\n return await this._solanaLoader.load(transactionContext);\n }\n}\n"],
5
+ "mappings": "AACA,OAAS,QAAAA,MAAY,YAErB,OAAS,uBAAAC,MAA2B,2CAIpC,OAAS,oBAAAC,MAAwB,oCACjC,OAAS,oBAAAC,MAAwB,qCAGjC,OAAS,uBAAAC,MAA2B,2CAEpC,OAAS,YAAAC,MAAgB,oBAGzB,OAGE,wBAAAC,MACK,kCAMP,OAAS,sBAAAC,MAA0B,iCAGnC,OAAS,cAAAC,MAAkB,wBAI3B,OAAS,kBAAAC,MAAsB,iCAE/B,OAAS,gBAAAC,MAAoB,4BAE7B,OAAS,kBAAAC,MAAsB,iCAO/B,OAAS,iBAAAC,MAAqB,OAEvB,MAAMC,CAA8C,CACjD,WACA,SACA,iBACA,iBACA,cAER,YAAYC,EAA2B,CACrC,KAAK,WAAaF,EAAc,CAAE,OAAQE,CAAK,CAAC,EAChD,KAAK,SAAWA,EAAK,eAAiB,KAAK,mBAAmB,EAAI,CAAC,EACnE,KAAK,SAAS,KAAK,GAAGA,EAAK,aAAa,EACxC,KAAK,iBACHA,EAAK,uBAAyB,KAAK,2BAA2B,EAChE,KAAK,iBACHA,EAAK,uBAAyB,KAAK,oBAAoB,EACzD,KAAK,cAAgBA,EAAK,oBAAsB,KAAK,iBAAiB,CACxE,CAEQ,oBAAsC,CAC5C,MAAO,CACL,KAAK,WAAW,IACdV,EAAoB,2BACtB,EACA,KAAK,WAAW,IACdD,EAAiB,wBACnB,EACA,KAAK,WAAW,IAAsBE,EAAS,gBAAgB,EAC/D,KAAK,WAAW,IAAwBG,EAAW,kBAAkB,EACrE,KAAK,WAAW,IACdN,EAAiB,wBACnB,EACA,KAAK,WAAW,IACdQ,EAAa,oBACf,EACA,KAAK,WAAW,IACdT,EAAoB,2BACtB,CACF,CACF,CAEQ,4BAAqD,CAC3D,OAAO,KAAK,WAAW,IACrBQ,EAAe,sBACjB,CACF,CAEQ,qBAA8C,CACpD,OAAO,KAAK,WAAW,IACrBE,EAAe,sBACjB,CACF,CAEQ,kBAAwC,CAC9C,GAAI,CACF,OAAO,KAAK,WAAW,IACrBJ,EAAmB,mBACrB,CACF,MAAQ,CACN,MAAO,CACL,KAAM,MAAOQ,GACXf,EACE,IAAI,MACF,sEACF,CACF,CACJ,CACF,CACF,CAEA,MAAa,YACXgB,EAC6B,CAC7B,MAAMC,EAAW,KAAK,SAAS,IAAKC,GAAYA,EAAQ,KAAKF,CAAW,CAAC,EAEzE,OADkB,MAAM,QAAQ,IAAIC,CAAQ,GAC3B,KAAK,CACxB,CAEA,MAAa,WACXE,EAC2B,CAC3B,MAAMF,EAAW,KAAK,SACnB,OAAQC,GAAYA,EAAQ,SAAS,EACrC,IAAKA,GAAYA,EAAQ,UAAWC,CAAK,CAAC,EAE7C,OADkB,MAAM,QAAQ,IAAIF,CAAQ,GAEhC,KAAMG,GAASA,IAAS,IAAI,GAAK,CACzC,KAAMd,EAAqB,MAC3B,MAAO,IAAI,MAAM,6BAA6Ba,EAAM,IAAI,EAAE,CAC5D,CAEJ,CAEA,MAAa,oBACXE,EACoC,CACpC,OAAO,KAAK,iBAAiB,KAAKA,CAAS,CAC7C,CAEA,MAAa,cACXC,EAC0E,CAG1E,OAFmB,MAAM,KAAK,iBAAiB,KAAKA,CAAkB,GAEpD,OAAO,CACvB,MAAQC,IAAwB,CAC9B,KAAMjB,EAAqB,WAC3B,QAASiB,EAAO,WAChB,YAAaA,EAAO,WACtB,GACA,KAAM,IAAM,IACd,CAAC,CACH,CAEA,MAAa,iBACXD,EACyC,CACzC,OAAO,MAAM,KAAK,cAAc,KAAKA,CAAkB,CACzD,CACF",
6
+ "names": ["Left", "dynamicNetworkTypes", "transactionTypes", "trustedNameTypes", "externalPluginTypes", "nftTypes", "ClearSignContextType", "solanaContextTypes", "tokenTypes", "typedDataTypes", "uniswapTypes", "web3CheckTypes", "makeContainer", "DefaultContextModule", "args", "_ctx", "transaction", "promises", "fetcher", "field", "resp", "typedData", "transactionContext", "checks"]
7
7
  }