@ledgerhq/context-module 0.0.0-try-to-fix-20250429171448 → 0.0.0-verify-safe-address-20251016105127

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 (694) hide show
  1. package/lib/cjs/package.json +12 -12
  2. package/lib/cjs/src/ContextModule.js +1 -1
  3. package/lib/cjs/src/ContextModule.js.map +1 -1
  4. package/lib/cjs/src/ContextModuleBuilder.js +1 -1
  5. package/lib/cjs/src/ContextModuleBuilder.js.map +3 -3
  6. package/lib/cjs/src/ContextModuleBuilder.test.js +1 -1
  7. package/lib/cjs/src/ContextModuleBuilder.test.js.map +3 -3
  8. package/lib/cjs/src/DefaultContextModule.js +1 -1
  9. package/lib/cjs/src/DefaultContextModule.js.map +3 -3
  10. package/lib/cjs/src/DefaultContextModule.test.js +1 -1
  11. package/lib/cjs/src/DefaultContextModule.test.js.map +3 -3
  12. package/lib/cjs/src/calldata/data/CalldataDescriptorDataSource.js +2 -0
  13. package/lib/cjs/src/calldata/data/CalldataDescriptorDataSource.js.map +7 -0
  14. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.js +2 -0
  15. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.js.map +7 -0
  16. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.test.js +2 -0
  17. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.test.js.map +7 -0
  18. package/lib/cjs/src/calldata/data/dto/CalldataDto.js +2 -0
  19. package/lib/cjs/src/calldata/data/dto/CalldataDto.js.map +7 -0
  20. package/lib/cjs/src/calldata/di/calldataModuleFactory.js +2 -0
  21. package/lib/cjs/src/calldata/di/calldataModuleFactory.js.map +7 -0
  22. package/lib/cjs/src/calldata/di/calldataTypes.js +2 -0
  23. package/lib/cjs/src/calldata/di/calldataTypes.js.map +7 -0
  24. package/lib/cjs/src/calldata/domain/CalldataContextLoader.js +2 -0
  25. package/lib/cjs/src/calldata/domain/CalldataContextLoader.js.map +7 -0
  26. package/lib/cjs/src/calldata/domain/CalldataContextLoader.test.js +2 -0
  27. package/lib/cjs/src/calldata/domain/CalldataContextLoader.test.js.map +7 -0
  28. package/lib/cjs/src/config/di/configModuleFactory.js +1 -1
  29. package/lib/cjs/src/config/di/configModuleFactory.js.map +3 -3
  30. package/lib/cjs/src/config/model/ContextModuleConfig.js +1 -1
  31. package/lib/cjs/src/config/model/ContextModuleConfig.js.map +1 -1
  32. package/lib/cjs/src/di.js +1 -1
  33. package/lib/cjs/src/di.js.map +3 -3
  34. package/lib/cjs/src/dynamic-network/data/DynamicNetworkDataSource.js +2 -0
  35. package/lib/cjs/src/dynamic-network/data/DynamicNetworkDataSource.js.map +7 -0
  36. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +2 -0
  37. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +7 -0
  38. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +2 -0
  39. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +7 -0
  40. package/lib/cjs/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js +2 -0
  41. package/lib/cjs/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js.map +7 -0
  42. package/lib/cjs/src/dynamic-network/di/dynamicNetworkModuleFactory.js +2 -0
  43. package/lib/cjs/src/dynamic-network/di/dynamicNetworkModuleFactory.js.map +7 -0
  44. package/lib/cjs/src/dynamic-network/di/dynamicNetworkTypes.js +2 -0
  45. package/lib/cjs/src/dynamic-network/di/dynamicNetworkTypes.js.map +7 -0
  46. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js +2 -0
  47. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +7 -0
  48. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +2 -0
  49. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +7 -0
  50. package/lib/cjs/src/dynamic-network/model/DynamicNetworkConfiguration.js +2 -0
  51. package/lib/cjs/src/dynamic-network/model/DynamicNetworkConfiguration.js.map +7 -0
  52. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  53. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js.map +2 -2
  54. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  55. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  56. package/lib/cjs/src/external-plugin/di/externalPluginModuleFactory.js +1 -1
  57. package/lib/cjs/src/external-plugin/di/externalPluginModuleFactory.js.map +3 -3
  58. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.js +1 -1
  59. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.js.map +3 -3
  60. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.test.js +1 -1
  61. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.test.js.map +3 -3
  62. package/lib/cjs/src/index.js +1 -1
  63. package/lib/cjs/src/index.js.map +2 -2
  64. package/lib/cjs/src/nft/data/HttpNftDataSource.js +1 -1
  65. package/lib/cjs/src/nft/data/HttpNftDataSource.js.map +3 -3
  66. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js +1 -1
  67. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  68. package/lib/cjs/src/nft/di/nftModuleFactory.js +1 -1
  69. package/lib/cjs/src/nft/di/nftModuleFactory.js.map +3 -3
  70. package/lib/cjs/src/nft/di/nftTypes.js +1 -1
  71. package/lib/cjs/src/nft/di/nftTypes.js.map +2 -2
  72. package/lib/cjs/src/nft/domain/NftContextFieldLoader.js +2 -0
  73. package/lib/cjs/src/nft/domain/NftContextFieldLoader.js.map +7 -0
  74. package/lib/cjs/src/nft/domain/NftContextFieldLoader.test.js +2 -0
  75. package/lib/cjs/src/nft/domain/NftContextFieldLoader.test.js.map +7 -0
  76. package/lib/cjs/src/nft/domain/NftContextLoader.js +1 -1
  77. package/lib/cjs/src/nft/domain/NftContextLoader.js.map +3 -3
  78. package/lib/cjs/src/nft/domain/NftContextLoader.test.js +1 -1
  79. package/lib/cjs/src/nft/domain/NftContextLoader.test.js.map +3 -3
  80. package/lib/cjs/src/pki/di/pkiModuleFactory.js +1 -1
  81. package/lib/cjs/src/pki/di/pkiModuleFactory.js.map +3 -3
  82. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.js.map +2 -2
  83. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.test.js +1 -1
  84. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.test.js.map +3 -3
  85. package/lib/cjs/src/pki/model/KeyUsage.js +1 -1
  86. package/lib/cjs/src/pki/model/KeyUsage.js.map +2 -2
  87. package/lib/cjs/src/pki/model/PkiCertificateInfo.js +1 -1
  88. package/lib/cjs/src/pki/model/PkiCertificateInfo.js.map +1 -1
  89. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js +2 -0
  90. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js.map +7 -0
  91. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js +2 -0
  92. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js.map +7 -0
  93. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js +2 -0
  94. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js.map +7 -0
  95. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js +2 -0
  96. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js.map +7 -0
  97. package/lib/cjs/src/proxy/data/ProxyDataSource.js +2 -0
  98. package/lib/cjs/src/proxy/data/ProxyDataSource.js.map +7 -0
  99. package/lib/cjs/src/proxy/data/dto/ProxyDelegateCallDto.js +2 -0
  100. package/lib/cjs/src/proxy/data/dto/ProxyDelegateCallDto.js.map +7 -0
  101. package/lib/cjs/src/proxy/data/dto/ProxyImplementationAddressDto.js +2 -0
  102. package/lib/cjs/src/proxy/data/dto/ProxyImplementationAddressDto.js.map +7 -0
  103. package/lib/cjs/src/proxy/data/dto/SafeProxyImplementationAddressDto.js +2 -0
  104. package/lib/cjs/src/proxy/data/dto/SafeProxyImplementationAddressDto.js.map +7 -0
  105. package/lib/cjs/src/proxy/di/proxyModuleFactory.js +2 -0
  106. package/lib/cjs/src/proxy/di/proxyModuleFactory.js.map +7 -0
  107. package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js +2 -0
  108. package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js.map +7 -0
  109. package/lib/cjs/src/proxy/di/proxyTypes.js +2 -0
  110. package/lib/cjs/src/proxy/di/proxyTypes.js.map +7 -0
  111. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.js +2 -0
  112. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.js.map +7 -0
  113. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.test.js +2 -0
  114. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.test.js.map +7 -0
  115. package/lib/cjs/src/proxy/model/ProxyDelegateCall.js +2 -0
  116. package/lib/cjs/src/proxy/model/ProxyDelegateCall.js.map +7 -0
  117. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js +2 -0
  118. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js.map +7 -0
  119. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js +2 -0
  120. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js.map +7 -0
  121. package/lib/cjs/src/safe/data/SafeAccountDataSource.js +2 -0
  122. package/lib/cjs/src/safe/data/SafeAccountDataSource.js.map +7 -0
  123. package/lib/cjs/src/safe/data/dto/SafeAccountDto.js +2 -0
  124. package/lib/cjs/src/safe/data/dto/SafeAccountDto.js.map +7 -0
  125. package/lib/cjs/src/safe/di/safeModuleFactory.js +2 -0
  126. package/lib/cjs/src/safe/di/safeModuleFactory.js.map +7 -0
  127. package/lib/cjs/src/safe/di/safeModuleFactory.test.js +2 -0
  128. package/lib/cjs/src/safe/di/safeModuleFactory.test.js.map +7 -0
  129. package/lib/cjs/src/safe/di/safeTypes.js +2 -0
  130. package/lib/cjs/src/safe/di/safeTypes.js.map +7 -0
  131. package/lib/cjs/src/safe/domain/SafeAddressLoader.js +2 -0
  132. package/lib/cjs/src/safe/domain/SafeAddressLoader.js.map +7 -0
  133. package/lib/cjs/src/safe/domain/SafeAddressLoader.test.js +2 -0
  134. package/lib/cjs/src/safe/domain/SafeAddressLoader.test.js.map +7 -0
  135. package/lib/cjs/src/shared/constant/HttpHeaders.js +1 -1
  136. package/lib/cjs/src/shared/constant/HttpHeaders.js.map +1 -1
  137. package/lib/cjs/src/shared/domain/ContextFieldLoader.js +2 -0
  138. package/lib/cjs/src/shared/domain/ContextFieldLoader.js.map +7 -0
  139. package/lib/cjs/src/shared/domain/ContextLoader.js +1 -1
  140. package/lib/cjs/src/shared/domain/ContextLoader.js.map +1 -1
  141. package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
  142. package/lib/cjs/src/shared/model/ClearSignContext.js.map +3 -3
  143. package/lib/cjs/src/shared/model/SolanaTransactionContext.js +2 -0
  144. package/lib/cjs/src/shared/model/SolanaTransactionContext.js.map +7 -0
  145. package/lib/cjs/src/shared/model/TransactionSubset.js +1 -1
  146. package/lib/cjs/src/shared/model/TransactionSubset.js.map +1 -1
  147. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js +1 -1
  148. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js.map +3 -3
  149. package/lib/cjs/src/shared/model/TypedDataContext.js +1 -1
  150. package/lib/cjs/src/shared/model/TypedDataContext.js.map +1 -1
  151. package/lib/cjs/src/shared/utils/KeyUsageMapper.js +1 -1
  152. package/lib/cjs/src/shared/utils/KeyUsageMapper.js.map +2 -2
  153. package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js +1 -1
  154. package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js.map +2 -2
  155. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js +2 -0
  156. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +7 -0
  157. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +2 -0
  158. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +7 -0
  159. package/lib/cjs/src/solana/data/SolanaDataSource.js +2 -0
  160. package/lib/cjs/src/solana/data/SolanaDataSource.js.map +7 -0
  161. package/lib/cjs/src/solana/di/SolanaContextModuleFactory.js +2 -0
  162. package/lib/cjs/src/solana/di/SolanaContextModuleFactory.js.map +7 -0
  163. package/lib/cjs/src/solana/di/solanaContextTypes.js +2 -0
  164. package/lib/cjs/src/solana/di/solanaContextTypes.js.map +7 -0
  165. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js +2 -0
  166. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js.map +7 -0
  167. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js +2 -0
  168. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js.map +7 -0
  169. package/lib/cjs/src/solana/domain/SolanaContextLoader.js +2 -0
  170. package/lib/cjs/src/solana/domain/SolanaContextLoader.js.map +7 -0
  171. package/lib/cjs/src/solana/domain/solanaContextTypes.js +2 -0
  172. package/lib/cjs/src/solana/domain/solanaContextTypes.js.map +7 -0
  173. package/lib/cjs/src/token/data/HttpTokenDataSource.js +1 -1
  174. package/lib/cjs/src/token/data/HttpTokenDataSource.js.map +2 -2
  175. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js +1 -1
  176. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js.map +2 -2
  177. package/lib/cjs/src/token/di/tokenModuleFactory.js +1 -1
  178. package/lib/cjs/src/token/di/tokenModuleFactory.js.map +3 -3
  179. package/lib/cjs/src/token/di/tokenTypes.js +1 -1
  180. package/lib/cjs/src/token/di/tokenTypes.js.map +2 -2
  181. package/lib/cjs/src/token/domain/TokenContextFieldLoader.js +2 -0
  182. package/lib/cjs/src/token/domain/TokenContextFieldLoader.js.map +7 -0
  183. package/lib/cjs/src/token/domain/TokenContextFieldLoader.test.js +2 -0
  184. package/lib/cjs/src/token/domain/TokenContextFieldLoader.test.js.map +7 -0
  185. package/lib/cjs/src/token/domain/TokenContextLoader.js +1 -1
  186. package/lib/cjs/src/token/domain/TokenContextLoader.js.map +3 -3
  187. package/lib/cjs/src/token/domain/TokenContextLoader.test.js +1 -1
  188. package/lib/cjs/src/token/domain/TokenContextLoader.test.js.map +3 -3
  189. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  190. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  191. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  192. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  193. package/lib/cjs/src/trusted-name/data/TrustedNameDataSource.js +1 -1
  194. package/lib/cjs/src/trusted-name/data/TrustedNameDataSource.js.map +1 -1
  195. package/lib/cjs/src/trusted-name/data/TrustedNameDto.js +1 -1
  196. package/lib/cjs/src/trusted-name/data/TrustedNameDto.js.map +1 -1
  197. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  198. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  199. package/lib/cjs/src/trusted-name/di/trustedNameTypes.js +1 -1
  200. package/lib/cjs/src/trusted-name/di/trustedNameTypes.js.map +2 -2
  201. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.js +2 -0
  202. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.js.map +7 -0
  203. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js +2 -0
  204. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js.map +7 -0
  205. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  206. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  207. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  208. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +3 -3
  209. package/lib/cjs/src/typed-data/data/FiltersDto.js +1 -1
  210. package/lib/cjs/src/typed-data/data/FiltersDto.js.map +1 -1
  211. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  212. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  213. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  214. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  215. package/lib/cjs/src/typed-data/data/TypedDataDataSource.js +1 -1
  216. package/lib/cjs/src/typed-data/data/TypedDataDataSource.js.map +1 -1
  217. package/lib/cjs/src/typed-data/di/typedDataModuleFactory.js +1 -1
  218. package/lib/cjs/src/typed-data/di/typedDataModuleFactory.js.map +3 -3
  219. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  220. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  221. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  222. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +3 -3
  223. package/lib/cjs/src/uniswap/constants/uniswap.js +1 -1
  224. package/lib/cjs/src/uniswap/constants/uniswap.js.map +3 -3
  225. package/lib/cjs/src/uniswap/di/uniswapModuleFactory.js +1 -1
  226. package/lib/cjs/src/uniswap/di/uniswapModuleFactory.js.map +3 -3
  227. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.js +1 -1
  228. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.js.map +3 -3
  229. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.test.js +1 -1
  230. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.test.js.map +3 -3
  231. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js +1 -1
  232. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js.map +2 -2
  233. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js +1 -1
  234. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +2 -2
  235. package/lib/cjs/src/web3-check/di/web3CheckModuleFactory.js +1 -1
  236. package/lib/cjs/src/web3-check/di/web3CheckModuleFactory.js.map +3 -3
  237. package/lib/esm/package.json +12 -12
  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/calldata/data/CalldataDescriptorDataSource.js +1 -0
  247. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.js +2 -0
  248. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.js.map +7 -0
  249. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.test.js +2 -0
  250. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.test.js.map +7 -0
  251. package/lib/esm/src/calldata/di/calldataModuleFactory.js +2 -0
  252. package/lib/esm/src/calldata/di/calldataModuleFactory.js.map +7 -0
  253. package/lib/esm/src/calldata/di/calldataTypes.js +2 -0
  254. package/lib/esm/src/calldata/di/calldataTypes.js.map +7 -0
  255. package/lib/esm/src/calldata/domain/CalldataContextLoader.js +2 -0
  256. package/lib/esm/src/calldata/domain/CalldataContextLoader.js.map +7 -0
  257. package/lib/esm/src/calldata/domain/CalldataContextLoader.test.js +2 -0
  258. package/lib/esm/src/calldata/domain/CalldataContextLoader.test.js.map +7 -0
  259. package/lib/esm/src/config/di/configModuleFactory.js +1 -1
  260. package/lib/esm/src/config/di/configModuleFactory.js.map +3 -3
  261. package/lib/esm/src/di.js +1 -1
  262. package/lib/esm/src/di.js.map +3 -3
  263. package/lib/esm/src/dynamic-network/data/DynamicNetworkDataSource.js +1 -0
  264. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +2 -0
  265. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +7 -0
  266. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +2 -0
  267. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +7 -0
  268. package/lib/esm/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js +1 -0
  269. package/lib/esm/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js.map +7 -0
  270. package/lib/esm/src/dynamic-network/di/dynamicNetworkModuleFactory.js +2 -0
  271. package/lib/esm/src/dynamic-network/di/dynamicNetworkModuleFactory.js.map +7 -0
  272. package/lib/esm/src/dynamic-network/di/dynamicNetworkTypes.js +2 -0
  273. package/lib/esm/src/dynamic-network/di/dynamicNetworkTypes.js.map +7 -0
  274. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js +2 -0
  275. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +7 -0
  276. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +2 -0
  277. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +7 -0
  278. package/lib/esm/src/dynamic-network/model/DynamicNetworkConfiguration.js +1 -0
  279. package/lib/esm/src/dynamic-network/model/DynamicNetworkConfiguration.js.map +7 -0
  280. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  281. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
  282. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  283. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  284. package/lib/esm/src/external-plugin/di/externalPluginModuleFactory.js +1 -1
  285. package/lib/esm/src/external-plugin/di/externalPluginModuleFactory.js.map +3 -3
  286. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.js +1 -1
  287. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.js.map +3 -3
  288. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.test.js +1 -1
  289. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.test.js.map +3 -3
  290. package/lib/esm/src/index.js +1 -1
  291. package/lib/esm/src/index.js.map +2 -2
  292. package/lib/esm/src/nft/data/HttpNftDataSource.js +1 -1
  293. package/lib/esm/src/nft/data/HttpNftDataSource.js.map +3 -3
  294. package/lib/esm/src/nft/data/HttpNftDataSource.test.js +1 -1
  295. package/lib/esm/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  296. package/lib/esm/src/nft/di/nftModuleFactory.js +1 -1
  297. package/lib/esm/src/nft/di/nftModuleFactory.js.map +3 -3
  298. package/lib/esm/src/nft/di/nftTypes.js +1 -1
  299. package/lib/esm/src/nft/di/nftTypes.js.map +2 -2
  300. package/lib/esm/src/nft/domain/NftContextFieldLoader.js +2 -0
  301. package/lib/esm/src/nft/domain/NftContextFieldLoader.js.map +7 -0
  302. package/lib/esm/src/nft/domain/NftContextFieldLoader.test.js +2 -0
  303. package/lib/esm/src/nft/domain/NftContextFieldLoader.test.js.map +7 -0
  304. package/lib/esm/src/nft/domain/NftContextLoader.js +1 -1
  305. package/lib/esm/src/nft/domain/NftContextLoader.js.map +3 -3
  306. package/lib/esm/src/nft/domain/NftContextLoader.test.js +1 -1
  307. package/lib/esm/src/nft/domain/NftContextLoader.test.js.map +3 -3
  308. package/lib/esm/src/pki/di/pkiModuleFactory.js +1 -1
  309. package/lib/esm/src/pki/di/pkiModuleFactory.js.map +3 -3
  310. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.js.map +2 -2
  311. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.test.js +1 -1
  312. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.test.js.map +3 -3
  313. package/lib/esm/src/pki/model/KeyUsage.js +1 -1
  314. package/lib/esm/src/pki/model/KeyUsage.js.map +2 -2
  315. package/lib/esm/src/proxy/data/HttpProxyDataSource.js +2 -0
  316. package/lib/esm/src/proxy/data/HttpProxyDataSource.js.map +7 -0
  317. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js +2 -0
  318. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js.map +7 -0
  319. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js +2 -0
  320. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js.map +7 -0
  321. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js +2 -0
  322. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js.map +7 -0
  323. package/lib/esm/src/proxy/data/ProxyDataSource.js +1 -0
  324. package/lib/esm/src/proxy/data/ProxyDataSource.js.map +7 -0
  325. package/lib/esm/src/proxy/data/dto/ProxyDelegateCallDto.js +1 -0
  326. package/lib/esm/src/proxy/data/dto/ProxyDelegateCallDto.js.map +7 -0
  327. package/lib/esm/src/proxy/data/dto/ProxyImplementationAddressDto.js +1 -0
  328. package/lib/esm/src/proxy/data/dto/ProxyImplementationAddressDto.js.map +7 -0
  329. package/lib/esm/src/proxy/data/dto/SafeProxyImplementationAddressDto.js +1 -0
  330. package/lib/esm/src/proxy/data/dto/SafeProxyImplementationAddressDto.js.map +7 -0
  331. package/lib/esm/src/proxy/di/proxyModuleFactory.js +2 -0
  332. package/lib/esm/src/proxy/di/proxyModuleFactory.js.map +7 -0
  333. package/lib/esm/src/proxy/di/proxyModuleFactory.test.js +2 -0
  334. package/lib/esm/src/proxy/di/proxyModuleFactory.test.js.map +7 -0
  335. package/lib/esm/src/proxy/di/proxyTypes.js +2 -0
  336. package/lib/esm/src/proxy/di/proxyTypes.js.map +7 -0
  337. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.js +2 -0
  338. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.js.map +7 -0
  339. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.test.js +2 -0
  340. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.test.js.map +7 -0
  341. package/lib/esm/src/proxy/model/ProxyDelegateCall.js +1 -0
  342. package/lib/esm/src/proxy/model/ProxyDelegateCall.js.map +7 -0
  343. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js +2 -0
  344. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js.map +7 -0
  345. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js +2 -0
  346. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js.map +7 -0
  347. package/lib/esm/src/safe/data/SafeAccountDataSource.js +1 -0
  348. package/lib/esm/src/safe/data/SafeAccountDataSource.js.map +7 -0
  349. package/lib/esm/src/safe/data/dto/SafeAccountDto.js +1 -0
  350. package/lib/esm/src/safe/data/dto/SafeAccountDto.js.map +7 -0
  351. package/lib/esm/src/safe/di/safeModuleFactory.js +2 -0
  352. package/lib/esm/src/safe/di/safeModuleFactory.js.map +7 -0
  353. package/lib/esm/src/safe/di/safeModuleFactory.test.js +2 -0
  354. package/lib/esm/src/safe/di/safeModuleFactory.test.js.map +7 -0
  355. package/lib/esm/src/safe/di/safeTypes.js +2 -0
  356. package/lib/esm/src/safe/di/safeTypes.js.map +7 -0
  357. package/lib/esm/src/safe/domain/SafeAddressLoader.js +2 -0
  358. package/lib/esm/src/safe/domain/SafeAddressLoader.js.map +7 -0
  359. package/lib/esm/src/safe/domain/SafeAddressLoader.test.js +2 -0
  360. package/lib/esm/src/safe/domain/SafeAddressLoader.test.js.map +7 -0
  361. package/lib/esm/src/shared/constant/HttpHeaders.js +1 -1
  362. package/lib/esm/src/shared/constant/HttpHeaders.js.map +1 -1
  363. package/lib/esm/src/shared/domain/ContextFieldLoader.js +1 -0
  364. package/lib/esm/src/shared/domain/ContextFieldLoader.js.map +7 -0
  365. package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
  366. package/lib/esm/src/shared/model/ClearSignContext.js.map +3 -3
  367. package/lib/esm/src/shared/model/SolanaTransactionContext.js +1 -0
  368. package/lib/esm/src/shared/model/SolanaTransactionContext.js.map +7 -0
  369. package/lib/esm/src/shared/model/TypedDataClearSignContext.js +1 -1
  370. package/lib/esm/src/shared/model/TypedDataClearSignContext.js.map +3 -3
  371. package/lib/esm/src/shared/utils/KeyUsageMapper.js +1 -1
  372. package/lib/esm/src/shared/utils/KeyUsageMapper.js.map +2 -2
  373. package/lib/esm/src/shared/utils/KeyUsageMapper.test.js +1 -1
  374. package/lib/esm/src/shared/utils/KeyUsageMapper.test.js.map +2 -2
  375. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js +2 -0
  376. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +7 -0
  377. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +2 -0
  378. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +7 -0
  379. package/lib/esm/src/solana/data/SolanaDataSource.js +1 -0
  380. package/lib/esm/src/solana/data/SolanaDataSource.js.map +7 -0
  381. package/lib/esm/src/solana/di/SolanaContextModuleFactory.js +2 -0
  382. package/lib/esm/src/solana/di/SolanaContextModuleFactory.js.map +7 -0
  383. package/lib/esm/src/solana/di/solanaContextTypes.js +2 -0
  384. package/lib/esm/src/solana/di/solanaContextTypes.js.map +7 -0
  385. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js +2 -0
  386. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js.map +7 -0
  387. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js +2 -0
  388. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js.map +7 -0
  389. package/lib/esm/src/solana/domain/SolanaContextLoader.js +1 -0
  390. package/lib/esm/src/solana/domain/SolanaContextLoader.js.map +7 -0
  391. package/lib/esm/src/solana/domain/solanaContextTypes.js +1 -0
  392. package/lib/esm/src/solana/domain/solanaContextTypes.js.map +7 -0
  393. package/lib/esm/src/token/data/HttpTokenDataSource.js +1 -1
  394. package/lib/esm/src/token/data/HttpTokenDataSource.js.map +2 -2
  395. package/lib/esm/src/token/data/HttpTokenDataSource.test.js +1 -1
  396. package/lib/esm/src/token/data/HttpTokenDataSource.test.js.map +2 -2
  397. package/lib/esm/src/token/di/tokenModuleFactory.js +1 -1
  398. package/lib/esm/src/token/di/tokenModuleFactory.js.map +3 -3
  399. package/lib/esm/src/token/di/tokenTypes.js +1 -1
  400. package/lib/esm/src/token/di/tokenTypes.js.map +2 -2
  401. package/lib/esm/src/token/domain/TokenContextFieldLoader.js +2 -0
  402. package/lib/esm/src/token/domain/TokenContextFieldLoader.js.map +7 -0
  403. package/lib/esm/src/token/domain/TokenContextFieldLoader.test.js +2 -0
  404. package/lib/esm/src/token/domain/TokenContextFieldLoader.test.js.map +7 -0
  405. package/lib/esm/src/token/domain/TokenContextLoader.js +1 -1
  406. package/lib/esm/src/token/domain/TokenContextLoader.js.map +3 -3
  407. package/lib/esm/src/token/domain/TokenContextLoader.test.js +1 -1
  408. package/lib/esm/src/token/domain/TokenContextLoader.test.js.map +3 -3
  409. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  410. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  411. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  412. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  413. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  414. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  415. package/lib/esm/src/trusted-name/di/trustedNameTypes.js +1 -1
  416. package/lib/esm/src/trusted-name/di/trustedNameTypes.js.map +2 -2
  417. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.js +2 -0
  418. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.js.map +7 -0
  419. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js +2 -0
  420. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js.map +7 -0
  421. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  422. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  423. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  424. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +3 -3
  425. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  426. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  427. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  428. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  429. package/lib/esm/src/typed-data/di/typedDataModuleFactory.js +1 -1
  430. package/lib/esm/src/typed-data/di/typedDataModuleFactory.js.map +3 -3
  431. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  432. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  433. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  434. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +3 -3
  435. package/lib/esm/src/uniswap/constants/uniswap.js +1 -1
  436. package/lib/esm/src/uniswap/constants/uniswap.js.map +3 -3
  437. package/lib/esm/src/uniswap/di/uniswapModuleFactory.js +1 -1
  438. package/lib/esm/src/uniswap/di/uniswapModuleFactory.js.map +3 -3
  439. package/lib/esm/src/uniswap/domain/UniswapContextLoader.js +1 -1
  440. package/lib/esm/src/uniswap/domain/UniswapContextLoader.js.map +3 -3
  441. package/lib/esm/src/uniswap/domain/UniswapContextLoader.test.js +1 -1
  442. package/lib/esm/src/uniswap/domain/UniswapContextLoader.test.js.map +3 -3
  443. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js +1 -1
  444. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js.map +3 -3
  445. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js +1 -1
  446. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +3 -3
  447. package/lib/esm/src/web3-check/di/web3CheckModuleFactory.js +1 -1
  448. package/lib/esm/src/web3-check/di/web3CheckModuleFactory.js.map +3 -3
  449. package/lib/types/src/ContextModule.d.ts +6 -4
  450. package/lib/types/src/ContextModule.d.ts.map +1 -1
  451. package/lib/types/src/ContextModuleBuilder.d.ts +25 -3
  452. package/lib/types/src/ContextModuleBuilder.d.ts.map +1 -1
  453. package/lib/types/src/DefaultContextModule.d.ts +9 -3
  454. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  455. package/lib/types/src/{transaction/data/TransactionDataSource.d.ts → calldata/data/CalldataDescriptorDataSource.d.ts} +4 -4
  456. package/lib/types/src/calldata/data/CalldataDescriptorDataSource.d.ts.map +1 -0
  457. package/lib/types/src/{transaction/data/HttpTransactionDataSource.d.ts → calldata/data/HttpCalldataDescriptorDataSource.d.ts} +6 -5
  458. package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.d.ts.map +1 -0
  459. package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.test.d.ts +2 -0
  460. package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.test.d.ts.map +1 -0
  461. package/lib/types/src/{transaction/data → calldata/data/dto}/CalldataDto.d.ts +10 -1
  462. package/lib/types/src/calldata/data/dto/CalldataDto.d.ts.map +1 -0
  463. package/lib/types/src/calldata/di/calldataModuleFactory.d.ts +3 -0
  464. package/lib/types/src/calldata/di/calldataModuleFactory.d.ts.map +1 -0
  465. package/lib/types/src/calldata/di/calldataTypes.d.ts +6 -0
  466. package/lib/types/src/calldata/di/calldataTypes.d.ts.map +1 -0
  467. package/lib/types/src/calldata/domain/CalldataContextLoader.d.ts +23 -0
  468. package/lib/types/src/calldata/domain/CalldataContextLoader.d.ts.map +1 -0
  469. package/lib/types/src/calldata/domain/CalldataContextLoader.test.d.ts +2 -0
  470. package/lib/types/src/calldata/domain/CalldataContextLoader.test.d.ts.map +1 -0
  471. package/lib/types/src/config/di/configModuleFactory.d.ts.map +1 -1
  472. package/lib/types/src/config/model/ContextModuleConfig.d.ts +13 -0
  473. package/lib/types/src/config/model/ContextModuleConfig.d.ts.map +1 -1
  474. package/lib/types/src/di.d.ts.map +1 -1
  475. package/lib/types/src/dynamic-network/data/DynamicNetworkDataSource.d.ts +6 -0
  476. package/lib/types/src/dynamic-network/data/DynamicNetworkDataSource.d.ts.map +1 -0
  477. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts +13 -0
  478. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts.map +1 -0
  479. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.d.ts +2 -0
  480. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.d.ts.map +1 -0
  481. package/lib/types/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.d.ts +14 -0
  482. package/lib/types/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.d.ts.map +1 -0
  483. package/lib/types/src/dynamic-network/di/dynamicNetworkModuleFactory.d.ts +3 -0
  484. package/lib/types/src/dynamic-network/di/dynamicNetworkModuleFactory.d.ts.map +1 -0
  485. package/lib/types/src/dynamic-network/di/dynamicNetworkTypes.d.ts +5 -0
  486. package/lib/types/src/dynamic-network/di/dynamicNetworkTypes.d.ts.map +1 -0
  487. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts +19 -0
  488. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts.map +1 -0
  489. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.test.d.ts +2 -0
  490. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.test.d.ts.map +1 -0
  491. package/lib/types/src/dynamic-network/model/DynamicNetworkConfiguration.d.ts +16 -0
  492. package/lib/types/src/dynamic-network/model/DynamicNetworkConfiguration.d.ts.map +1 -0
  493. package/lib/types/src/external-plugin/data/HttpExternalPluginDataSource.d.ts.map +1 -1
  494. package/lib/types/src/external-plugin/domain/ExternalPluginContextLoader.d.ts +20 -5
  495. package/lib/types/src/external-plugin/domain/ExternalPluginContextLoader.d.ts.map +1 -1
  496. package/lib/types/src/index.d.ts +42 -1
  497. package/lib/types/src/index.d.ts.map +1 -1
  498. package/lib/types/src/nft/data/HttpNftDataSource.d.ts +3 -0
  499. package/lib/types/src/nft/data/HttpNftDataSource.d.ts.map +1 -1
  500. package/lib/types/src/nft/di/nftModuleFactory.d.ts.map +1 -1
  501. package/lib/types/src/nft/di/nftTypes.d.ts +1 -0
  502. package/lib/types/src/nft/di/nftTypes.d.ts.map +1 -1
  503. package/lib/types/src/nft/domain/NftContextFieldLoader.d.ts +15 -0
  504. package/lib/types/src/nft/domain/NftContextFieldLoader.d.ts.map +1 -0
  505. package/lib/types/src/nft/domain/NftContextFieldLoader.test.d.ts +2 -0
  506. package/lib/types/src/nft/domain/NftContextFieldLoader.test.d.ts.map +1 -0
  507. package/lib/types/src/nft/domain/NftContextLoader.d.ts +10 -5
  508. package/lib/types/src/nft/domain/NftContextLoader.d.ts.map +1 -1
  509. package/lib/types/src/pki/domain/DefaultPkiCertificateLoader.d.ts.map +1 -1
  510. package/lib/types/src/pki/model/KeyUsage.d.ts +2 -1
  511. package/lib/types/src/pki/model/KeyUsage.d.ts.map +1 -1
  512. package/lib/types/src/pki/model/PkiCertificateInfo.d.ts +1 -2
  513. package/lib/types/src/pki/model/PkiCertificateInfo.d.ts.map +1 -1
  514. package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts +13 -0
  515. package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts.map +1 -0
  516. package/lib/types/src/proxy/data/HttpProxyDataSource.test.d.ts +2 -0
  517. package/lib/types/src/proxy/data/HttpProxyDataSource.test.d.ts.map +1 -0
  518. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts +13 -0
  519. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts.map +1 -0
  520. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.test.d.ts +2 -0
  521. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.test.d.ts.map +1 -0
  522. package/lib/types/src/proxy/data/ProxyDataSource.d.ts +17 -0
  523. package/lib/types/src/proxy/data/ProxyDataSource.d.ts.map +1 -0
  524. package/lib/types/src/proxy/data/dto/ProxyDelegateCallDto.d.ts +5 -0
  525. package/lib/types/src/proxy/data/dto/ProxyDelegateCallDto.d.ts.map +1 -0
  526. package/lib/types/src/proxy/data/dto/ProxyImplementationAddressDto.d.ts +6 -0
  527. package/lib/types/src/proxy/data/dto/ProxyImplementationAddressDto.d.ts.map +1 -0
  528. package/lib/types/src/proxy/data/dto/SafeProxyImplementationAddressDto.d.ts +10 -0
  529. package/lib/types/src/proxy/data/dto/SafeProxyImplementationAddressDto.d.ts.map +1 -0
  530. package/lib/types/src/proxy/di/proxyModuleFactory.d.ts +4 -0
  531. package/lib/types/src/proxy/di/proxyModuleFactory.d.ts.map +1 -0
  532. package/lib/types/src/proxy/di/proxyModuleFactory.test.d.ts +2 -0
  533. package/lib/types/src/proxy/di/proxyModuleFactory.test.d.ts.map +1 -0
  534. package/lib/types/src/proxy/di/proxyTypes.d.ts +5 -0
  535. package/lib/types/src/proxy/di/proxyTypes.d.ts.map +1 -0
  536. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.d.ts +21 -0
  537. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.d.ts.map +1 -0
  538. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.test.d.ts +2 -0
  539. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.test.d.ts.map +1 -0
  540. package/lib/types/src/proxy/model/ProxyDelegateCall.d.ts +7 -0
  541. package/lib/types/src/proxy/model/ProxyDelegateCall.d.ts.map +1 -0
  542. package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts +11 -0
  543. package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts.map +1 -0
  544. package/lib/types/src/safe/data/HttpSafeAccountDataSource.test.d.ts +2 -0
  545. package/lib/types/src/safe/data/HttpSafeAccountDataSource.test.d.ts.map +1 -0
  546. package/lib/types/src/safe/data/SafeAccountDataSource.d.ts +20 -0
  547. package/lib/types/src/safe/data/SafeAccountDataSource.d.ts.map +1 -0
  548. package/lib/types/src/safe/data/dto/SafeAccountDto.d.ts +10 -0
  549. package/lib/types/src/safe/data/dto/SafeAccountDto.d.ts.map +1 -0
  550. package/lib/types/src/safe/di/safeModuleFactory.d.ts +3 -0
  551. package/lib/types/src/safe/di/safeModuleFactory.d.ts.map +1 -0
  552. package/lib/types/src/safe/di/safeModuleFactory.test.d.ts +2 -0
  553. package/lib/types/src/safe/di/safeModuleFactory.test.d.ts.map +1 -0
  554. package/lib/types/src/safe/di/safeTypes.d.ts +5 -0
  555. package/lib/types/src/safe/di/safeTypes.d.ts.map +1 -0
  556. package/lib/types/src/safe/domain/SafeAddressLoader.d.ts +19 -0
  557. package/lib/types/src/safe/domain/SafeAddressLoader.d.ts.map +1 -0
  558. package/lib/types/src/safe/domain/SafeAddressLoader.test.d.ts +2 -0
  559. package/lib/types/src/safe/domain/SafeAddressLoader.test.d.ts.map +1 -0
  560. package/lib/types/src/shared/constant/HttpHeaders.d.ts +1 -1
  561. package/lib/types/src/shared/constant/HttpHeaders.d.ts.map +1 -1
  562. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts +15 -0
  563. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts.map +1 -0
  564. package/lib/types/src/shared/domain/ContextLoader.d.ts +13 -5
  565. package/lib/types/src/shared/domain/ContextLoader.d.ts.map +1 -1
  566. package/lib/types/src/shared/model/ClearSignContext.d.ts +32 -9
  567. package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
  568. package/lib/types/src/shared/model/SolanaTransactionContext.d.ts +11 -0
  569. package/lib/types/src/shared/model/SolanaTransactionContext.d.ts.map +1 -0
  570. package/lib/types/src/shared/model/TransactionSubset.d.ts +3 -2
  571. package/lib/types/src/shared/model/TransactionSubset.d.ts.map +1 -1
  572. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts +33 -1
  573. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts.map +1 -1
  574. package/lib/types/src/shared/model/TypedDataContext.d.ts +3 -0
  575. package/lib/types/src/shared/model/TypedDataContext.d.ts.map +1 -1
  576. package/lib/types/src/shared/utils/KeyUsageMapper.d.ts +1 -2
  577. package/lib/types/src/shared/utils/KeyUsageMapper.d.ts.map +1 -1
  578. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts +13 -0
  579. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts.map +1 -0
  580. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.test.d.ts +2 -0
  581. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.test.d.ts.map +1 -0
  582. package/lib/types/src/solana/data/SolanaDataSource.d.ts +12 -0
  583. package/lib/types/src/solana/data/SolanaDataSource.d.ts.map +1 -0
  584. package/lib/types/src/solana/di/SolanaContextModuleFactory.d.ts +3 -0
  585. package/lib/types/src/solana/di/SolanaContextModuleFactory.d.ts.map +1 -0
  586. package/lib/types/src/solana/di/solanaContextTypes.d.ts +5 -0
  587. package/lib/types/src/solana/di/solanaContextTypes.d.ts.map +1 -0
  588. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts +11 -0
  589. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts.map +1 -0
  590. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.test.d.ts +2 -0
  591. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.test.d.ts.map +1 -0
  592. package/lib/types/src/solana/domain/SolanaContextLoader.d.ts +5 -0
  593. package/lib/types/src/solana/domain/SolanaContextLoader.d.ts.map +1 -0
  594. package/lib/types/src/solana/domain/solanaContextTypes.d.ts +27 -0
  595. package/lib/types/src/solana/domain/solanaContextTypes.d.ts.map +1 -0
  596. package/lib/types/src/token/data/HttpTokenDataSource.d.ts.map +1 -1
  597. package/lib/types/src/token/di/tokenModuleFactory.d.ts.map +1 -1
  598. package/lib/types/src/token/di/tokenTypes.d.ts +1 -0
  599. package/lib/types/src/token/di/tokenTypes.d.ts.map +1 -1
  600. package/lib/types/src/token/domain/TokenContextFieldLoader.d.ts +14 -0
  601. package/lib/types/src/token/domain/TokenContextFieldLoader.d.ts.map +1 -0
  602. package/lib/types/src/token/domain/TokenContextFieldLoader.test.d.ts +2 -0
  603. package/lib/types/src/token/domain/TokenContextFieldLoader.test.d.ts.map +1 -0
  604. package/lib/types/src/token/domain/TokenContextLoader.d.ts +10 -5
  605. package/lib/types/src/token/domain/TokenContextLoader.d.ts.map +1 -1
  606. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts +7 -3
  607. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts.map +1 -1
  608. package/lib/types/src/trusted-name/data/TrustedNameDataSource.d.ts +7 -2
  609. package/lib/types/src/trusted-name/data/TrustedNameDataSource.d.ts.map +1 -1
  610. package/lib/types/src/trusted-name/data/TrustedNameDto.d.ts +4 -5
  611. package/lib/types/src/trusted-name/data/TrustedNameDto.d.ts.map +1 -1
  612. package/lib/types/src/trusted-name/di/trustedNameModuleFactory.d.ts.map +1 -1
  613. package/lib/types/src/trusted-name/di/trustedNameTypes.d.ts +1 -0
  614. package/lib/types/src/trusted-name/di/trustedNameTypes.d.ts.map +1 -1
  615. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.d.ts +22 -0
  616. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.d.ts.map +1 -0
  617. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.test.d.ts +2 -0
  618. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.test.d.ts.map +1 -0
  619. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts +14 -6
  620. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts.map +1 -1
  621. package/lib/types/src/typed-data/data/FiltersDto.d.ts +32 -2
  622. package/lib/types/src/typed-data/data/FiltersDto.d.ts.map +1 -1
  623. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts +3 -0
  624. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
  625. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts +1 -0
  626. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts.map +1 -1
  627. package/lib/types/src/typed-data/data/TypedDataDataSource.d.ts +2 -1
  628. package/lib/types/src/typed-data/data/TypedDataDataSource.d.ts.map +1 -1
  629. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts +12 -1
  630. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts.map +1 -1
  631. package/lib/types/src/uniswap/constants/uniswap.d.ts +0 -1
  632. package/lib/types/src/uniswap/constants/uniswap.d.ts.map +1 -1
  633. package/lib/types/src/uniswap/domain/UniswapContextLoader.d.ts +10 -11
  634. package/lib/types/src/uniswap/domain/UniswapContextLoader.d.ts.map +1 -1
  635. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.d.ts.map +1 -1
  636. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  637. package/package.json +13 -13
  638. package/lib/cjs/src/shared/model/TransactionContext.js +0 -2
  639. package/lib/cjs/src/shared/model/TransactionContext.js.map +0 -7
  640. package/lib/cjs/src/transaction/data/CalldataDto.js +0 -2
  641. package/lib/cjs/src/transaction/data/CalldataDto.js.map +0 -7
  642. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js +0 -2
  643. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js.map +0 -7
  644. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js +0 -2
  645. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js.map +0 -7
  646. package/lib/cjs/src/transaction/data/TransactionDataSource.js +0 -2
  647. package/lib/cjs/src/transaction/data/TransactionDataSource.js.map +0 -7
  648. package/lib/cjs/src/transaction/di/transactionModuleFactory.js +0 -2
  649. package/lib/cjs/src/transaction/di/transactionModuleFactory.js.map +0 -7
  650. package/lib/cjs/src/transaction/di/transactionTypes.js +0 -2
  651. package/lib/cjs/src/transaction/di/transactionTypes.js.map +0 -7
  652. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js +0 -2
  653. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js.map +0 -7
  654. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js +0 -2
  655. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js.map +0 -7
  656. package/lib/cjs/src/uniswap/constants/plugin.js +0 -2
  657. package/lib/cjs/src/uniswap/constants/plugin.js.map +0 -7
  658. package/lib/esm/src/shared/model/TransactionContext.js +0 -1
  659. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js +0 -2
  660. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js.map +0 -7
  661. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js +0 -2
  662. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js.map +0 -7
  663. package/lib/esm/src/transaction/data/TransactionDataSource.js +0 -1
  664. package/lib/esm/src/transaction/di/transactionModuleFactory.js +0 -2
  665. package/lib/esm/src/transaction/di/transactionModuleFactory.js.map +0 -7
  666. package/lib/esm/src/transaction/di/transactionTypes.js +0 -2
  667. package/lib/esm/src/transaction/di/transactionTypes.js.map +0 -7
  668. package/lib/esm/src/transaction/domain/TransactionContextLoader.js +0 -2
  669. package/lib/esm/src/transaction/domain/TransactionContextLoader.js.map +0 -7
  670. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js +0 -2
  671. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js.map +0 -7
  672. package/lib/esm/src/uniswap/constants/plugin.js +0 -2
  673. package/lib/esm/src/uniswap/constants/plugin.js.map +0 -7
  674. package/lib/types/src/shared/model/TransactionContext.d.ts +0 -21
  675. package/lib/types/src/shared/model/TransactionContext.d.ts.map +0 -1
  676. package/lib/types/src/transaction/data/CalldataDto.d.ts.map +0 -1
  677. package/lib/types/src/transaction/data/HttpTransactionDataSource.d.ts.map +0 -1
  678. package/lib/types/src/transaction/data/HttpTransactionDataSource.test.d.ts +0 -2
  679. package/lib/types/src/transaction/data/HttpTransactionDataSource.test.d.ts.map +0 -1
  680. package/lib/types/src/transaction/data/TransactionDataSource.d.ts.map +0 -1
  681. package/lib/types/src/transaction/di/transactionModuleFactory.d.ts +0 -3
  682. package/lib/types/src/transaction/di/transactionModuleFactory.d.ts.map +0 -1
  683. package/lib/types/src/transaction/di/transactionTypes.d.ts +0 -5
  684. package/lib/types/src/transaction/di/transactionTypes.d.ts.map +0 -1
  685. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts +0 -10
  686. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts.map +0 -1
  687. package/lib/types/src/transaction/domain/TransactionContextLoader.test.d.ts +0 -2
  688. package/lib/types/src/transaction/domain/TransactionContextLoader.test.d.ts.map +0 -1
  689. package/lib/types/src/uniswap/constants/plugin.d.ts +0 -3
  690. package/lib/types/src/uniswap/constants/plugin.d.ts.map +0 -1
  691. /package/lib/esm/src/{shared/model/TransactionContext.js.map → calldata/data/CalldataDescriptorDataSource.js.map} +0 -0
  692. /package/lib/esm/src/{transaction/data → calldata/data/dto}/CalldataDto.js +0 -0
  693. /package/lib/esm/src/{transaction/data → calldata/data/dto}/CalldataDto.js.map +0 -0
  694. /package/lib/esm/src/{transaction/data/TransactionDataSource.js.map → dynamic-network/data/DynamicNetworkDataSource.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/nft/domain/NftContextFieldLoader.test.ts"],
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { type NftDataSource } from \"@/nft/data/NftDataSource\";\nimport { NftContextFieldLoader } from \"@/nft/domain/NftContextFieldLoader\";\nimport { ClearSignContextType } from \"@/shared/model/ClearSignContext\";\n\ndescribe(\"NftContextFieldLoader\", () => {\n const mockNftDataSource: NftDataSource = {\n getNftInfosPayload: vi.fn(),\n getSetPluginPayload: vi.fn(),\n };\n const nftContextFieldLoader = new NftContextFieldLoader(mockNftDataSource);\n\n const mockTransactionField = {\n chainId: 1,\n address: \"0x1234567890abcdef\",\n };\n\n const mockNftPayload = \"0x123456789abcdef0\";\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"canHandle\", () => {\n it(\"should return true for valid NFT field\", () => {\n // GIVEN\n const validField = {\n chainId: 1,\n address: \"0x1234567890abcdef\",\n };\n\n // THEN\n expect(\n nftContextFieldLoader.canHandle(validField, ClearSignContextType.NFT),\n ).toBe(true);\n });\n\n describe(\"should return false for invalid fields\", () => {\n const invalidFields = [\n { name: \"null\", value: null },\n { name: \"undefined\", value: undefined },\n { name: \"string\", value: \"invalid\" },\n { name: \"number\", value: 123 },\n { name: \"boolean\", value: true },\n { name: \"array\", value: [] },\n { name: \"empty object\", value: {} },\n {\n name: \"object missing chainId\",\n value: { address: \"0x123\" },\n },\n {\n name: \"object missing address\",\n value: { chainId: 1 },\n },\n ];\n\n test.each(invalidFields)(\"$name\", ({ value }) => {\n expect(\n nftContextFieldLoader.canHandle(value, ClearSignContextType.NFT),\n ).toBe(false);\n });\n });\n\n it(\"should return false for invalid expected type\", () => {\n expect(\n nftContextFieldLoader.canHandle(\n mockTransactionField,\n ClearSignContextType.TOKEN,\n ),\n ).toBe(false);\n });\n });\n\n describe(\"loadField\", () => {\n it(\"should return error context when NFT data source fails\", async () => {\n // GIVEN\n const error = new Error(\"NFT data source error\");\n vi.spyOn(mockNftDataSource, \"getNftInfosPayload\").mockResolvedValue(\n Left(error),\n );\n\n // WHEN\n const result =\n await nftContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(mockNftDataSource.getNftInfosPayload).toHaveBeenCalledWith({\n address: mockTransactionField.address,\n chainId: mockTransactionField.chainId,\n });\n expect(result).toEqual({\n type: ClearSignContextType.ERROR,\n error: error,\n });\n });\n\n it(\"should return NFT context when successful\", async () => {\n // GIVEN\n vi.spyOn(mockNftDataSource, \"getNftInfosPayload\").mockResolvedValue(\n Right(mockNftPayload),\n );\n\n // WHEN\n const result =\n await nftContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(mockNftDataSource.getNftInfosPayload).toHaveBeenCalledWith({\n address: mockTransactionField.address,\n chainId: mockTransactionField.chainId,\n });\n expect(result).toEqual({\n type: ClearSignContextType.NFT,\n payload: mockNftPayload,\n });\n });\n\n it(\"should handle different chain IDs and addresses correctly\", async () => {\n // GIVEN\n const customField = {\n ...mockTransactionField,\n chainId: 137,\n address: \"0xdeadbeef\",\n };\n vi.spyOn(mockNftDataSource, \"getNftInfosPayload\").mockResolvedValue(\n Right(mockNftPayload),\n );\n\n // WHEN\n const result = await nftContextFieldLoader.loadField(customField);\n\n // THEN\n expect(mockNftDataSource.getNftInfosPayload).toHaveBeenCalledWith({\n address: \"0xdeadbeef\",\n chainId: 137,\n });\n expect(result).toEqual({\n type: ClearSignContextType.NFT,\n payload: mockNftPayload,\n });\n });\n\n it(\"should preserve error message from NFT data source\", async () => {\n // GIVEN\n const specificError = new Error(\"Network timeout error\");\n vi.spyOn(mockNftDataSource, \"getNftInfosPayload\").mockResolvedValue(\n Left(specificError),\n );\n\n // WHEN\n const result =\n await nftContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(result).toEqual({\n type: ClearSignContextType.ERROR,\n error: specificError,\n });\n });\n\n it(\"should handle empty NFT payload\", async () => {\n // GIVEN\n const emptyPayload = \"\";\n vi.spyOn(mockNftDataSource, \"getNftInfosPayload\").mockResolvedValue(\n Right(emptyPayload),\n );\n\n // WHEN\n const result =\n await nftContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(result).toEqual({\n type: ClearSignContextType.NFT,\n payload: emptyPayload,\n });\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_purify_ts", "import_NftContextFieldLoader", "import_ClearSignContext", "mockNftDataSource", "nftContextFieldLoader", "mockTransactionField", "mockNftPayload", "validField", "invalidFields", "value", "error", "result", "customField", "specificError", "emptyPayload"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var b=(o,e)=>{for(var a in e)p(o,a,{get:e[a],enumerable:!0})},C=(o,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of F(e))!I.call(o,r)&&r!==a&&p(o,r,{get:()=>e[r],enumerable:!(t=u(e,r))||t.enumerable});return o};var N=o=>C(p({},"__esModule",{value:!0}),o),g=(o,e,a,t)=>{for(var r=t>1?void 0:t?u(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&p(e,a,r),r},y=(o,e)=>(a,t)=>e(a,t,o);var j={};b(j,{NftContextLoader:()=>l});module.exports=N(j);var x=require("@ledgerhq/device-management-kit"),c=require("inversify"),m=require("../../nft/di/nftTypes"),s=require("../../shared/model/ClearSignContext");var S=(n=>(n.Approve="0x095ea7b3",n.SetApprovalForAll="0xa22cb465",n.TransferFrom="0x23b872dd",n.SafeTransferFrom="0x42842e0e",n.SafeTransferFromWithData="0xb88d4fde",n))(S||{}),h=(t=>(t.SetApprovalForAll="0xa22cb465",t.SafeTransferFrom="0xf242432a",t.SafeBatchTransferFrom="0x2eb2c2d6",t))(h||{});const v=[...Object.values(S),...Object.values(h)];let l=class{_dataSource;constructor(e){this._dataSource=e}async load(e){const a=[];if(!e.to||!e.data||e.data==="0x")return[];const t=e.data.slice(0,10);if(!(0,x.isHexaString)(t))return[{type:s.ClearSignContextType.ERROR,error:new Error("Invalid selector")}];if(!this.isSelectorSupported(t))return[];const n=(await this._dataSource.getSetPluginPayload({chainId:e.chainId,address:e.to,selector:t})).caseOf({Left:i=>({type:s.ClearSignContextType.ERROR,error:i}),Right:i=>({type:s.ClearSignContextType.PLUGIN,payload:i})});if(n.type===s.ClearSignContextType.ERROR)return[n];a.push(n);const f=(await this._dataSource.getNftInfosPayload({chainId:e.chainId,address:e.to})).caseOf({Left:i=>({type:s.ClearSignContextType.ERROR,error:i}),Right:i=>({type:s.ClearSignContextType.NFT,payload:i})});return f.type===s.ClearSignContextType.ERROR?[f]:(a.push(f),a)}async loadField(e){return e.type!==s.ClearSignContextType.NFT?null:(await this._dataSource.getNftInfosPayload({address:e.address,chainId:e.chainId})).caseOf({Left:t=>({type:s.ClearSignContextType.ERROR,error:t}),Right:t=>({type:s.ClearSignContextType.NFT,payload:t})})}isSelectorSupported(e){return Object.values(v).includes(e)}};l=g([(0,c.injectable)(),y(0,(0,c.inject)(m.nftTypes.NftDataSource))],l);0&&(module.exports={NftContextLoader});
1
+ "use strict";var f=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var v=(r,e)=>{for(var a in e)f(r,a,{get:e[a],enumerable:!0})},F=(r,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of b(e))!N.call(r,o)&&o!==a&&f(r,o,{get:()=>e[o],enumerable:!(t=g(e,o))||t.enumerable});return r};var C=r=>F(f({},"__esModule",{value:!0}),r),y=(r,e,a,t)=>{for(var o=t>1?void 0:t?g(e,a):e,n=r.length-1,c;n>=0;n--)(c=r[n])&&(o=(t?c(e,a,o):c(o))||o);return t&&o&&f(e,a,o),o},S=(r,e)=>(a,t)=>e(a,t,r);var A={};v(A,{NftContextLoader:()=>i});module.exports=C(A);var x=require("@ledgerhq/device-management-kit"),p=require("inversify"),m=require("../../nft/di/nftTypes"),s=require("../../shared/model/ClearSignContext");var h=(n=>(n.Approve="0x095ea7b3",n.SetApprovalForAll="0xa22cb465",n.TransferFrom="0x23b872dd",n.SafeTransferFrom="0x42842e0e",n.SafeTransferFromWithData="0xb88d4fde",n))(h||{}),I=(t=>(t.SetApprovalForAll="0xa22cb465",t.SafeTransferFrom="0xf242432a",t.SafeBatchTransferFrom="0x2eb2c2d6",t))(I||{});const H=[...Object.values(h),...Object.values(I)],j=[s.ClearSignContextType.PLUGIN,s.ClearSignContextType.NFT];let i=class{_dataSource;constructor(e){this._dataSource=e}canHandle(e,a){return typeof e=="object"&&e!==null&&"to"in e&&"selector"in e&&"chainId"in e&&typeof e.chainId=="number"&&(0,x.isHexaString)(e.to)&&e.to!=="0x"&&(0,x.isHexaString)(e.selector)&&this.isSelectorSupported(e.selector)&&j.every(t=>a.includes(t))}async load(e){const a=[],{to:t,selector:o,chainId:n}=e,d=(await this._dataSource.getSetPluginPayload({chainId:n,address:t,selector:o})).caseOf({Left:l=>({type:s.ClearSignContextType.ERROR,error:l}),Right:l=>({type:s.ClearSignContextType.PLUGIN,payload:l})});if(d.type===s.ClearSignContextType.ERROR)return[d];a.push(d);const u=(await this._dataSource.getNftInfosPayload({chainId:n,address:t})).caseOf({Left:l=>({type:s.ClearSignContextType.ERROR,error:l}),Right:l=>({type:s.ClearSignContextType.NFT,payload:l})});return u.type===s.ClearSignContextType.ERROR?[u]:(a.push(u),a)}isSelectorSupported(e){return Object.values(H).includes(e)}};i=y([(0,p.injectable)(),S(0,(0,p.inject)(m.nftTypes.NftDataSource))],i);0&&(module.exports={NftContextLoader});
2
2
  //# sourceMappingURL=NftContextLoader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/nft/domain/NftContextLoader.ts"],
4
- "sourcesContent": ["import { HexaString, isHexaString } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport type { NftDataSource } from \"@/nft/data/NftDataSource\";\nimport { nftTypes } from \"@/nft/di/nftTypes\";\nimport { ContextLoader } from \"@/shared/domain/ContextLoader\";\nimport {\n ClearSignContext,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\nimport {\n TransactionContext,\n TransactionFieldContext,\n} from \"@/shared/model/TransactionContext\";\n\nenum ERC721_SUPPORTED_SELECTOR {\n Approve = \"0x095ea7b3\",\n SetApprovalForAll = \"0xa22cb465\",\n TransferFrom = \"0x23b872dd\",\n SafeTransferFrom = \"0x42842e0e\",\n SafeTransferFromWithData = \"0xb88d4fde\",\n}\n\nenum ERC1155_SUPPORTED_SELECTOR {\n SetApprovalForAll = \"0xa22cb465\",\n SafeTransferFrom = \"0xf242432a\",\n SafeBatchTransferFrom = \"0x2eb2c2d6\",\n}\n\nconst SUPPORTED_SELECTORS: HexaString[] = [\n ...Object.values(ERC721_SUPPORTED_SELECTOR),\n ...Object.values(ERC1155_SUPPORTED_SELECTOR),\n];\n\n@injectable()\nexport class NftContextLoader implements ContextLoader {\n private _dataSource: NftDataSource;\n\n constructor(@inject(nftTypes.NftDataSource) dataSource: NftDataSource) {\n this._dataSource = dataSource;\n }\n\n async load(transaction: TransactionContext): Promise<ClearSignContext[]> {\n const responses: ClearSignContext[] = [];\n\n if (!transaction.to || !transaction.data || transaction.data === \"0x\") {\n return [];\n }\n\n const selector = transaction.data.slice(0, 10);\n\n if (!isHexaString(selector)) {\n return [\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"Invalid selector\"),\n },\n ];\n }\n\n if (!this.isSelectorSupported(selector)) {\n return [];\n }\n\n // EXAMPLE:\n // https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D/plugin-selector/0x095ea7b3\n const getPluginPayloadResponse = await this._dataSource.getSetPluginPayload(\n {\n chainId: transaction.chainId,\n address: transaction.to,\n selector,\n },\n );\n\n const pluginPayload = getPluginPayloadResponse.caseOf({\n Left: (error): ClearSignContext => ({\n type: ClearSignContextType.ERROR,\n error,\n }),\n Right: (value): ClearSignContext => ({\n type: ClearSignContextType.PLUGIN,\n payload: value,\n }),\n });\n\n if (pluginPayload.type === ClearSignContextType.ERROR) {\n return [pluginPayload];\n }\n\n responses.push(pluginPayload);\n\n const getNftInfosPayloadResponse =\n await this._dataSource.getNftInfosPayload({\n chainId: transaction.chainId,\n address: transaction.to,\n });\n\n const nftInfosPayload = getNftInfosPayloadResponse.caseOf({\n Left: (error): ClearSignContext => ({\n type: ClearSignContextType.ERROR,\n error,\n }),\n Right: (value): ClearSignContext => ({\n type: ClearSignContextType.NFT,\n payload: value,\n }),\n });\n\n if (nftInfosPayload.type === ClearSignContextType.ERROR) {\n return [nftInfosPayload];\n }\n\n responses.push(nftInfosPayload);\n\n return responses;\n }\n\n async loadField(\n field: TransactionFieldContext,\n ): Promise<ClearSignContext | null> {\n if (field.type !== ClearSignContextType.NFT) {\n return null;\n }\n const payload = await this._dataSource.getNftInfosPayload({\n address: field.address,\n chainId: field.chainId,\n });\n return payload.caseOf({\n Left: (error): ClearSignContext => ({\n type: ClearSignContextType.ERROR,\n error,\n }),\n Right: (value): ClearSignContext => ({\n type: ClearSignContextType.NFT,\n payload: value,\n }),\n });\n }\n\n private isSelectorSupported(selector: HexaString) {\n return Object.values(SUPPORTED_SELECTORS).includes(selector);\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyC,2CACzCC,EAAmC,qBAGnCC,EAAyB,6BAEzBC,EAGO,2CAMP,IAAKC,OACHA,EAAA,QAAU,aACVA,EAAA,kBAAoB,aACpBA,EAAA,aAAe,aACfA,EAAA,iBAAmB,aACnBA,EAAA,yBAA2B,aALxBA,OAAA,IAQAC,OACHA,EAAA,kBAAoB,aACpBA,EAAA,iBAAmB,aACnBA,EAAA,sBAAwB,aAHrBA,OAAA,IAML,MAAMC,EAAoC,CACxC,GAAG,OAAO,OAAOF,CAAyB,EAC1C,GAAG,OAAO,OAAOC,CAA0B,CAC7C,EAGO,IAAME,EAAN,KAAgD,CAC7C,YAER,YAA4CC,EAA2B,CACrE,KAAK,YAAcA,CACrB,CAEA,MAAM,KAAKC,EAA8D,CACvE,MAAMC,EAAgC,CAAC,EAEvC,GAAI,CAACD,EAAY,IAAM,CAACA,EAAY,MAAQA,EAAY,OAAS,KAC/D,MAAO,CAAC,EAGV,MAAME,EAAWF,EAAY,KAAK,MAAM,EAAG,EAAE,EAE7C,GAAI,IAAC,gBAAaE,CAAQ,EACxB,MAAO,CACL,CACE,KAAM,uBAAqB,MAC3B,MAAO,IAAI,MAAM,kBAAkB,CACrC,CACF,EAGF,GAAI,CAAC,KAAK,oBAAoBA,CAAQ,EACpC,MAAO,CAAC,EAaV,MAAMC,GAR2B,MAAM,KAAK,YAAY,oBACtD,CACE,QAASH,EAAY,QACrB,QAASA,EAAY,GACrB,SAAAE,CACF,CACF,GAE+C,OAAO,CACpD,KAAOE,IAA6B,CAClC,KAAM,uBAAqB,MAC3B,MAAAA,CACF,GACA,MAAQC,IAA6B,CACnC,KAAM,uBAAqB,OAC3B,QAASA,CACX,EACF,CAAC,EAED,GAAIF,EAAc,OAAS,uBAAqB,MAC9C,MAAO,CAACA,CAAa,EAGvBF,EAAU,KAAKE,CAAa,EAQ5B,MAAMG,GALJ,MAAM,KAAK,YAAY,mBAAmB,CACxC,QAASN,EAAY,QACrB,QAASA,EAAY,EACvB,CAAC,GAEgD,OAAO,CACxD,KAAOI,IAA6B,CAClC,KAAM,uBAAqB,MAC3B,MAAAA,CACF,GACA,MAAQC,IAA6B,CACnC,KAAM,uBAAqB,IAC3B,QAASA,CACX,EACF,CAAC,EAED,OAAIC,EAAgB,OAAS,uBAAqB,MACzC,CAACA,CAAe,GAGzBL,EAAU,KAAKK,CAAe,EAEvBL,EACT,CAEA,MAAM,UACJM,EACkC,CAClC,OAAIA,EAAM,OAAS,uBAAqB,IAC/B,MAEO,MAAM,KAAK,YAAY,mBAAmB,CACxD,QAASA,EAAM,QACf,QAASA,EAAM,OACjB,CAAC,GACc,OAAO,CACpB,KAAOH,IAA6B,CAClC,KAAM,uBAAqB,MAC3B,MAAAA,CACF,GACA,MAAQC,IAA6B,CACnC,KAAM,uBAAqB,IAC3B,QAASA,CACX,EACF,CAAC,CACH,CAEQ,oBAAoBH,EAAsB,CAChD,OAAO,OAAO,OAAOL,CAAmB,EAAE,SAASK,CAAQ,CAC7D,CACF,EA3GaJ,EAANU,EAAA,IADN,cAAW,EAIGC,EAAA,eAAO,WAAS,aAAa,IAH/BX",
6
- "names": ["NftContextLoader_exports", "__export", "NftContextLoader", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_nftTypes", "import_ClearSignContext", "ERC721_SUPPORTED_SELECTOR", "ERC1155_SUPPORTED_SELECTOR", "SUPPORTED_SELECTORS", "NftContextLoader", "dataSource", "transaction", "responses", "selector", "pluginPayload", "error", "value", "nftInfosPayload", "field", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import { HexaString, isHexaString } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport type { NftDataSource } from \"@/nft/data/NftDataSource\";\nimport { nftTypes } from \"@/nft/di/nftTypes\";\nimport { ContextLoader } from \"@/shared/domain/ContextLoader\";\nimport {\n ClearSignContext,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\n\nexport type NftContextInput = {\n to: HexaString;\n selector: HexaString;\n chainId: number;\n};\n\nenum ERC721_SUPPORTED_SELECTOR {\n Approve = \"0x095ea7b3\",\n SetApprovalForAll = \"0xa22cb465\",\n TransferFrom = \"0x23b872dd\",\n SafeTransferFrom = \"0x42842e0e\",\n SafeTransferFromWithData = \"0xb88d4fde\",\n}\n\nenum ERC1155_SUPPORTED_SELECTOR {\n SetApprovalForAll = \"0xa22cb465\",\n SafeTransferFrom = \"0xf242432a\",\n SafeBatchTransferFrom = \"0x2eb2c2d6\",\n}\n\nconst SUPPORTED_SELECTORS: HexaString[] = [\n ...Object.values(ERC721_SUPPORTED_SELECTOR),\n ...Object.values(ERC1155_SUPPORTED_SELECTOR),\n];\n\nconst SUPPORTED_TYPES: ClearSignContextType[] = [\n ClearSignContextType.PLUGIN,\n ClearSignContextType.NFT,\n];\n\n@injectable()\nexport class NftContextLoader implements ContextLoader<NftContextInput> {\n private _dataSource: NftDataSource;\n\n constructor(@inject(nftTypes.NftDataSource) dataSource: NftDataSource) {\n this._dataSource = dataSource;\n }\n\n canHandle(\n input: unknown,\n expectedTypes: ClearSignContextType[],\n ): input is NftContextInput {\n return (\n typeof input === \"object\" &&\n input !== null &&\n \"to\" in input &&\n \"selector\" in input &&\n \"chainId\" in input &&\n typeof input.chainId === \"number\" &&\n isHexaString(input.to) &&\n input.to !== \"0x\" &&\n isHexaString(input.selector) &&\n this.isSelectorSupported(input.selector) &&\n SUPPORTED_TYPES.every((type) => expectedTypes.includes(type))\n );\n }\n\n async load(input: NftContextInput): Promise<ClearSignContext[]> {\n const responses: ClearSignContext[] = [];\n const { to, selector, chainId } = input;\n\n // EXAMPLE:\n // https://nft.api.live.ledger.com/v1/ethereum/1/contracts/0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D/plugin-selector/0x095ea7b3\n const getPluginPayloadResponse = await this._dataSource.getSetPluginPayload(\n {\n chainId,\n address: to,\n selector,\n },\n );\n\n const pluginPayload = getPluginPayloadResponse.caseOf({\n Left: (error): ClearSignContext => ({\n type: ClearSignContextType.ERROR,\n error,\n }),\n Right: (value): ClearSignContext => ({\n type: ClearSignContextType.PLUGIN,\n payload: value,\n }),\n });\n\n if (pluginPayload.type === ClearSignContextType.ERROR) {\n return [pluginPayload];\n }\n\n responses.push(pluginPayload);\n\n const getNftInfosPayloadResponse =\n await this._dataSource.getNftInfosPayload({\n chainId,\n address: to,\n });\n\n const nftInfosPayload = getNftInfosPayloadResponse.caseOf({\n Left: (error): ClearSignContext => ({\n type: ClearSignContextType.ERROR,\n error,\n }),\n Right: (value): ClearSignContext => ({\n type: ClearSignContextType.NFT,\n payload: value,\n }),\n });\n\n if (nftInfosPayload.type === ClearSignContextType.ERROR) {\n return [nftInfosPayload];\n }\n\n responses.push(nftInfosPayload);\n\n return responses;\n }\n\n private isSelectorSupported(selector: HexaString) {\n return Object.values(SUPPORTED_SELECTORS).includes(selector);\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyC,2CACzCC,EAAmC,qBAGnCC,EAAyB,6BAEzBC,EAGO,2CAQP,IAAKC,OACHA,EAAA,QAAU,aACVA,EAAA,kBAAoB,aACpBA,EAAA,aAAe,aACfA,EAAA,iBAAmB,aACnBA,EAAA,yBAA2B,aALxBA,OAAA,IAQAC,OACHA,EAAA,kBAAoB,aACpBA,EAAA,iBAAmB,aACnBA,EAAA,sBAAwB,aAHrBA,OAAA,IAML,MAAMC,EAAoC,CACxC,GAAG,OAAO,OAAOF,CAAyB,EAC1C,GAAG,OAAO,OAAOC,CAA0B,CAC7C,EAEME,EAA0C,CAC9C,uBAAqB,OACrB,uBAAqB,GACvB,EAGO,IAAMC,EAAN,KAAiE,CAC9D,YAER,YAA4CC,EAA2B,CACrE,KAAK,YAAcA,CACrB,CAEA,UACEC,EACAC,EAC0B,CAC1B,OACE,OAAOD,GAAU,UACjBA,IAAU,MACV,OAAQA,GACR,aAAcA,GACd,YAAaA,GACb,OAAOA,EAAM,SAAY,aACzB,gBAAaA,EAAM,EAAE,GACrBA,EAAM,KAAO,SACb,gBAAaA,EAAM,QAAQ,GAC3B,KAAK,oBAAoBA,EAAM,QAAQ,GACvCH,EAAgB,MAAOK,GAASD,EAAc,SAASC,CAAI,CAAC,CAEhE,CAEA,MAAM,KAAKF,EAAqD,CAC9D,MAAMG,EAAgC,CAAC,EACjC,CAAE,GAAAC,EAAI,SAAAC,EAAU,QAAAC,CAAQ,EAAIN,EAY5BO,GAR2B,MAAM,KAAK,YAAY,oBACtD,CACE,QAAAD,EACA,QAASF,EACT,SAAAC,CACF,CACF,GAE+C,OAAO,CACpD,KAAOG,IAA6B,CAClC,KAAM,uBAAqB,MAC3B,MAAAA,CACF,GACA,MAAQC,IAA6B,CACnC,KAAM,uBAAqB,OAC3B,QAASA,CACX,EACF,CAAC,EAED,GAAIF,EAAc,OAAS,uBAAqB,MAC9C,MAAO,CAACA,CAAa,EAGvBJ,EAAU,KAAKI,CAAa,EAQ5B,MAAMG,GALJ,MAAM,KAAK,YAAY,mBAAmB,CACxC,QAAAJ,EACA,QAASF,CACX,CAAC,GAEgD,OAAO,CACxD,KAAOI,IAA6B,CAClC,KAAM,uBAAqB,MAC3B,MAAAA,CACF,GACA,MAAQC,IAA6B,CACnC,KAAM,uBAAqB,IAC3B,QAASA,CACX,EACF,CAAC,EAED,OAAIC,EAAgB,OAAS,uBAAqB,MACzC,CAACA,CAAe,GAGzBP,EAAU,KAAKO,CAAe,EAEvBP,EACT,CAEQ,oBAAoBE,EAAsB,CAChD,OAAO,OAAO,OAAOT,CAAmB,EAAE,SAASS,CAAQ,CAC7D,CACF,EAtFaP,EAANa,EAAA,IADN,cAAW,EAIGC,EAAA,eAAO,WAAS,aAAa,IAH/Bd",
6
+ "names": ["NftContextLoader_exports", "__export", "NftContextLoader", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_nftTypes", "import_ClearSignContext", "ERC721_SUPPORTED_SELECTOR", "ERC1155_SUPPORTED_SELECTOR", "SUPPORTED_SELECTORS", "SUPPORTED_TYPES", "NftContextLoader", "dataSource", "input", "expectedTypes", "type", "responses", "to", "selector", "chainId", "pluginPayload", "error", "value", "nftInfosPayload", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("purify-ts"),d=require("../../nft/domain/NftContextLoader"),o=require("../../shared/model/ClearSignContext");describe("NftContextLoader",()=>{const r=vi.fn(),s=vi.fn();let c,e;beforeEach(()=>{vi.restoreAllMocks(),c={getNftInfosPayload:r,getSetPluginPayload:s},e=new d.NftContextLoader(c)}),describe("load function",()=>{it("should return an empty array if no dest",async()=>{const t={to:void 0,data:"0x01"},a=await e.load(t);expect(a).toEqual([])}),it("should return an empty array if undefined data",async()=>{const t={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",data:void 0},a=await e.load(t);expect(a).toEqual([])}),it("should return an empty array if empty data",async()=>{const t={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",data:"0x"},a=await e.load(t);expect(a).toEqual([])}),it("should return an empty array if selector not supported",async()=>{const t={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",data:"0x095ea7b20000000000000"},a=await e.load(t);expect(a).toEqual([])}),it("should return an error when transaction data is not a valid hex string",async()=>{const t={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",data:"notahexstring"},a=await e.load(t);expect(a).toEqual([{type:o.ClearSignContextType.ERROR,error:new Error("Invalid selector")}])}),it("should return an error when datasource get plugin payload return a Left",async()=>{const t={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",data:"0x095ea7b30000000000000"};s.mockResolvedValueOnce((0,n.Left)(new Error("error")));const a=await e.load(t);expect(a).toEqual([{type:o.ClearSignContextType.ERROR,error:new Error("error")}])}),it("should return an error when datasource get nft infos payload return a Left",async()=>{const t={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",data:"0x095ea7b30000000000000"};s.mockResolvedValueOnce((0,n.Right)("payload1")),r.mockResolvedValueOnce((0,n.Left)(new Error("error")));const a=await e.load(t);expect(a).toEqual([{type:o.ClearSignContextType.ERROR,error:new Error("error")}])}),it("should return a response",async()=>{const t={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",data:"0x095ea7b30000000000000"};s.mockResolvedValueOnce((0,n.Right)("payload1")),r.mockResolvedValueOnce((0,n.Right)("payload2"));const a=await e.load(t);expect(a).toEqual([{type:o.ClearSignContextType.PLUGIN,payload:"payload1"},{type:o.ClearSignContextType.NFT,payload:"payload2"}])})}),describe("loadField function",()=>{it("should return an error when field type if not supported",async()=>{const t={type:o.ClearSignContextType.TOKEN,chainId:7,address:"0x1234"},a=await e.loadField(t);expect(a).toEqual(null)}),it("should return a payload",async()=>{const t={type:o.ClearSignContextType.NFT,chainId:7,address:"0x1234"};r.mockResolvedValueOnce((0,n.Right)("payload"));const a=await e.loadField(t);expect(a).toEqual({type:o.ClearSignContextType.NFT,payload:"payload"})}),it("should return an error when unable to fetch the datasource",async()=>{const t={type:o.ClearSignContextType.NFT,chainId:7,address:"0x1234"};r.mockResolvedValueOnce((0,n.Left)(new Error("error")));const a=await e.loadField(t);expect(a).toEqual({type:o.ClearSignContextType.ERROR,error:new Error("error")})})})});
1
+ "use strict";var a=require("purify-ts"),d=require("../../nft/domain/NftContextLoader"),t=require("../../shared/model/ClearSignContext");describe("NftContextLoader",()=>{const l=vi.fn(),r=vi.fn();let c,o;beforeEach(()=>{vi.restoreAllMocks(),c={getNftInfosPayload:l,getSetPluginPayload:r},o=new d.NftContextLoader(c)}),describe("canHandle function",()=>{const e={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",selector:"0x095ea7b3",chainId:1};it("should return true for valid input",()=>{expect(o.canHandle(e,[t.ClearSignContextType.NFT,t.ClearSignContextType.PLUGIN])).toBe(!0)}),it("should return false for invalid expected type",()=>{expect(o.canHandle(e,[t.ClearSignContextType.TOKEN])).toBe(!1),expect(o.canHandle(e,[t.ClearSignContextType.PLUGIN])).toBe(!1),expect(o.canHandle(e,[t.ClearSignContextType.NFT])).toBe(!1)}),it.each([[null,"null input"],[void 0,"undefined input"],[{},"empty object"],["string","string input"],[123,"number input"],[{...e,to:void 0},"missing to"],[{...e,selector:void 0},"missing selector"],[{...e,chainId:void 0},"missing chainId"],[{...e,to:"invalid-hex"},"invalid to hex"],[{...e,to:"0x"},"empty to hex"],[{...e,selector:"invalid-hex"},"invalid selector hex"],[{...e,selector:"0x"},"empty selector hex"],[{...e,selector:"0x00000000"},"different selector"],[{...e,chainId:"1"},"string chainId"],[{...e,chainId:null},"null chainId"]])("should return false for %s",(n,i)=>{expect(o.canHandle(n,[t.ClearSignContextType.NFT,t.ClearSignContextType.PLUGIN])).toBe(!1)})}),describe("load function",()=>{it("should return an error when datasource get plugin payload return a Left",async()=>{const e={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",selector:"0x095ea7b3",chainId:1};r.mockResolvedValueOnce((0,a.Left)(new Error("error")));const n=await o.load(e);expect(n).toEqual([{type:t.ClearSignContextType.ERROR,error:new Error("error")}])}),it("should return an error when datasource get nft infos payload return a Left",async()=>{const e={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",selector:"0x095ea7b3",chainId:1};r.mockResolvedValueOnce((0,a.Right)("payload1")),l.mockResolvedValueOnce((0,a.Left)(new Error("error")));const n=await o.load(e);expect(n).toEqual([{type:t.ClearSignContextType.ERROR,error:new Error("error")}])}),it("should return a response",async()=>{const e={to:"0xdAC17F958D2ee523a2206206994597C13D831ec7",selector:"0x095ea7b3",chainId:1};r.mockResolvedValueOnce((0,a.Right)("payload1")),l.mockResolvedValueOnce((0,a.Right)("payload2"));const n=await o.load(e);expect(n).toEqual([{type:t.ClearSignContextType.PLUGIN,payload:"payload1"},{type:t.ClearSignContextType.NFT,payload:"payload2"}])})})});
2
2
  //# sourceMappingURL=NftContextLoader.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/nft/domain/NftContextLoader.test.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { type NftDataSource } from \"@/nft/data/NftDataSource\";\nimport { NftContextLoader } from \"@/nft/domain/NftContextLoader\";\nimport { ClearSignContextType } from \"@/shared/model/ClearSignContext\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"@/shared/model/TransactionContext\";\n\ndescribe(\"NftContextLoader\", () => {\n const spyGetNftInfosPayload = vi.fn();\n const spyGetPluginPayload = vi.fn();\n let mockDataSource: NftDataSource;\n let loader: NftContextLoader;\n\n beforeEach(() => {\n vi.restoreAllMocks();\n mockDataSource = {\n getNftInfosPayload: spyGetNftInfosPayload,\n getSetPluginPayload: spyGetPluginPayload,\n };\n loader = new NftContextLoader(mockDataSource);\n });\n\n describe(\"load function\", () => {\n it(\"should return an empty array if no dest\", async () => {\n const transaction = { to: undefined, data: \"0x01\" } as TransactionContext;\n\n const result = await loader.load(transaction);\n\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if undefined data\", async () => {\n const transaction = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n data: undefined,\n } as unknown as TransactionContext;\n\n const result = await loader.load(transaction);\n\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if empty data\", async () => {\n const transaction = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n data: \"0x\",\n } as unknown as TransactionContext;\n\n const result = await loader.load(transaction);\n\n expect(result).toEqual([]);\n });\n\n it(\"should return an empty array if selector not supported\", async () => {\n const transaction = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n data: \"0x095ea7b20000000000000\",\n } as unknown as TransactionContext;\n\n const result = await loader.load(transaction);\n\n expect(result).toEqual([]);\n });\n\n it(\"should return an error when transaction data is not a valid hex string\", async () => {\n const transaction = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n data: \"notahexstring\",\n } as TransactionContext;\n\n const result = await loader.load(transaction);\n\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"Invalid selector\"),\n },\n ]);\n });\n\n it(\"should return an error when datasource get plugin payload return a Left\", async () => {\n const transaction = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n data: \"0x095ea7b30000000000000\",\n } as TransactionContext;\n spyGetPluginPayload.mockResolvedValueOnce(Left(new Error(\"error\")));\n\n const result = await loader.load(transaction);\n\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"error\"),\n },\n ]);\n });\n\n it(\"should return an error when datasource get nft infos payload return a Left\", async () => {\n const transaction = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n data: \"0x095ea7b30000000000000\",\n } as TransactionContext;\n spyGetPluginPayload.mockResolvedValueOnce(Right(\"payload1\"));\n spyGetNftInfosPayload.mockResolvedValueOnce(Left(new Error(\"error\")));\n\n const result = await loader.load(transaction);\n\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"error\"),\n },\n ]);\n });\n\n it(\"should return a response\", async () => {\n const transaction = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n data: \"0x095ea7b30000000000000\",\n } as TransactionContext;\n spyGetPluginPayload.mockResolvedValueOnce(Right(\"payload1\"));\n spyGetNftInfosPayload.mockResolvedValueOnce(Right(\"payload2\"));\n\n const result = await loader.load(transaction);\n\n expect(result).toEqual([\n {\n type: ClearSignContextType.PLUGIN,\n payload: \"payload1\",\n },\n {\n type: ClearSignContextType.NFT,\n payload: \"payload2\",\n },\n ]);\n });\n });\n\n describe(\"loadField function\", () => {\n it(\"should return an error when field type if not supported\", async () => {\n const field: TransactionFieldContext = {\n type: ClearSignContextType.TOKEN,\n chainId: 7,\n address: \"0x1234\",\n };\n\n const result = await loader.loadField(field);\n\n expect(result).toEqual(null);\n });\n\n it(\"should return a payload\", async () => {\n // GIVEN\n const field: TransactionFieldContext = {\n type: ClearSignContextType.NFT,\n chainId: 7,\n address: \"0x1234\",\n };\n\n // WHEN\n spyGetNftInfosPayload.mockResolvedValueOnce(Right(\"payload\"));\n const result = await loader.loadField(field);\n\n // THEN\n expect(result).toEqual({\n type: ClearSignContextType.NFT,\n payload: \"payload\",\n });\n });\n\n it(\"should return an error when unable to fetch the datasource\", async () => {\n // GIVEN\n const field: TransactionFieldContext = {\n type: ClearSignContextType.NFT,\n chainId: 7,\n address: \"0x1234\",\n };\n\n // WHEN\n spyGetNftInfosPayload.mockResolvedValueOnce(Left(new Error(\"error\")));\n const result = await loader.loadField(field);\n\n // THEN\n expect(result).toEqual({\n type: ClearSignContextType.ERROR,\n error: new Error(\"error\"),\n });\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_purify_ts", "import_NftContextLoader", "import_ClearSignContext", "spyGetNftInfosPayload", "spyGetPluginPayload", "mockDataSource", "loader", "transaction", "result", "field"]
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { type NftDataSource } from \"@/nft/data/NftDataSource\";\nimport {\n type NftContextInput,\n NftContextLoader,\n} from \"@/nft/domain/NftContextLoader\";\nimport { ClearSignContextType } from \"@/shared/model/ClearSignContext\";\n\ndescribe(\"NftContextLoader\", () => {\n const spyGetNftInfosPayload = vi.fn();\n const spyGetPluginPayload = vi.fn();\n let mockDataSource: NftDataSource;\n let loader: NftContextLoader;\n\n beforeEach(() => {\n vi.restoreAllMocks();\n mockDataSource = {\n getNftInfosPayload: spyGetNftInfosPayload,\n getSetPluginPayload: spyGetPluginPayload,\n };\n loader = new NftContextLoader(mockDataSource);\n });\n\n describe(\"canHandle function\", () => {\n const validInput: NftContextInput = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n selector: \"0x095ea7b3\",\n chainId: 1,\n };\n\n it(\"should return true for valid input\", () => {\n expect(\n loader.canHandle(validInput, [\n ClearSignContextType.NFT,\n ClearSignContextType.PLUGIN,\n ]),\n ).toBe(true);\n });\n\n it(\"should return false for invalid expected type\", () => {\n expect(loader.canHandle(validInput, [ClearSignContextType.TOKEN])).toBe(\n false,\n );\n expect(loader.canHandle(validInput, [ClearSignContextType.PLUGIN])).toBe(\n false,\n );\n expect(loader.canHandle(validInput, [ClearSignContextType.NFT])).toBe(\n false,\n );\n });\n\n it.each([\n [null, \"null input\"],\n [undefined, \"undefined input\"],\n [{}, \"empty object\"],\n [\"string\", \"string input\"],\n [123, \"number input\"],\n [{ ...validInput, to: undefined }, \"missing to\"],\n [{ ...validInput, selector: undefined }, \"missing selector\"],\n [{ ...validInput, chainId: undefined }, \"missing chainId\"],\n [{ ...validInput, to: \"invalid-hex\" }, \"invalid to hex\"],\n [{ ...validInput, to: \"0x\" }, \"empty to hex\"],\n [{ ...validInput, selector: \"invalid-hex\" }, \"invalid selector hex\"],\n [{ ...validInput, selector: \"0x\" }, \"empty selector hex\"],\n [{ ...validInput, selector: \"0x00000000\" }, \"different selector\"],\n [{ ...validInput, chainId: \"1\" }, \"string chainId\"],\n [{ ...validInput, chainId: null }, \"null chainId\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.NFT,\n ClearSignContextType.PLUGIN,\n ]),\n ).toBe(false);\n });\n });\n\n describe(\"load function\", () => {\n it(\"should return an error when datasource get plugin payload return a Left\", async () => {\n const input: NftContextInput = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n selector: \"0x095ea7b3\",\n chainId: 1,\n };\n spyGetPluginPayload.mockResolvedValueOnce(Left(new Error(\"error\")));\n\n const result = await loader.load(input);\n\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"error\"),\n },\n ]);\n });\n\n it(\"should return an error when datasource get nft infos payload return a Left\", async () => {\n const input: NftContextInput = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n selector: \"0x095ea7b3\",\n chainId: 1,\n };\n spyGetPluginPayload.mockResolvedValueOnce(Right(\"payload1\"));\n spyGetNftInfosPayload.mockResolvedValueOnce(Left(new Error(\"error\")));\n\n const result = await loader.load(input);\n\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"error\"),\n },\n ]);\n });\n\n it(\"should return a response\", async () => {\n const input: NftContextInput = {\n to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n selector: \"0x095ea7b3\",\n chainId: 1,\n };\n spyGetPluginPayload.mockResolvedValueOnce(Right(\"payload1\"));\n spyGetNftInfosPayload.mockResolvedValueOnce(Right(\"payload2\"));\n\n const result = await loader.load(input);\n\n expect(result).toEqual([\n {\n type: ClearSignContextType.PLUGIN,\n payload: \"payload1\",\n },\n {\n type: ClearSignContextType.NFT,\n payload: \"payload2\",\n },\n ]);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_purify_ts", "import_NftContextLoader", "import_ClearSignContext", "spyGetNftInfosPayload", "spyGetPluginPayload", "mockDataSource", "loader", "validInput", "input", "_description", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var k=(t,o)=>{for(var i in o)a(t,i,{get:o[i],enumerable:!0})},C=(t,o,i,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of u(o))!d.call(t,e)&&e!==i&&a(t,e,{get:()=>o[e],enumerable:!(r=p(o,e))||r.enumerable});return t};var P=t=>C(a({},"__esModule",{value:!0}),t);var s={};k(s,{nanoPkiModuleFactory:()=>l});module.exports=P(s);var n=require("inversify"),c=require("../../pki/data/HttpPkiCertificateDataSource"),m=require("../../pki/domain/DefaultPkiCertificateLoader"),f=require("./pkiTypes");const l=()=>new n.ContainerModule((t,o,i,r)=>{t(f.pkiTypes.PkiCertificateDataSource).to(c.HttpPkiCertificateDataSource),t(f.pkiTypes.PkiCertificateLoader).to(m.DefaultPkiCertificateLoader)});0&&(module.exports={nanoPkiModuleFactory});
1
+ "use strict";var i=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var C=(t,o)=>{for(var r in o)i(t,r,{get:o[r],enumerable:!0})},P=(t,o,r,f)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of n(o))!u.call(t,e)&&e!==r&&i(t,e,{get:()=>o[e],enumerable:!(f=k(o,e))||f.enumerable});return t};var d=t=>P(i({},"__esModule",{value:!0}),t);var D={};C(D,{nanoPkiModuleFactory:()=>l});module.exports=d(D);var c=require("inversify"),m=require("../../pki/data/HttpPkiCertificateDataSource"),p=require("../../pki/domain/DefaultPkiCertificateLoader"),a=require("./pkiTypes");const l=()=>new c.ContainerModule(({bind:t})=>{t(a.pkiTypes.PkiCertificateDataSource).to(m.HttpPkiCertificateDataSource),t(a.pkiTypes.PkiCertificateLoader).to(p.DefaultPkiCertificateLoader)});0&&(module.exports={nanoPkiModuleFactory});
2
2
  //# sourceMappingURL=pkiModuleFactory.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/pki/di/pkiModuleFactory.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpPkiCertificateDataSource } from \"@/pki/data/HttpPkiCertificateDataSource\";\nimport { DefaultPkiCertificateLoader } from \"@/pki/domain/DefaultPkiCertificateLoader\";\n\nimport { pkiTypes } from \"./pkiTypes\";\n\nexport const nanoPkiModuleFactory = () =>\n new ContainerModule((bind, _unbind, _isBound, _rebind) => {\n bind(pkiTypes.PkiCertificateDataSource).to(HttpPkiCertificateDataSource);\n bind(pkiTypes.PkiCertificateLoader).to(DefaultPkiCertificateLoader);\n });\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA6C,mDAC7CC,EAA4C,oDAE5CC,EAAyB,sBAElB,MAAML,EAAuB,IAClC,IAAI,kBAAgB,CAACM,EAAMC,EAASC,EAAUC,IAAY,CACxDH,EAAK,WAAS,wBAAwB,EAAE,GAAG,8BAA4B,EACvEA,EAAK,WAAS,oBAAoB,EAAE,GAAG,6BAA2B,CACpE,CAAC",
6
- "names": ["pkiModuleFactory_exports", "__export", "nanoPkiModuleFactory", "__toCommonJS", "import_inversify", "import_HttpPkiCertificateDataSource", "import_DefaultPkiCertificateLoader", "import_pkiTypes", "bind", "_unbind", "_isBound", "_rebind"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpPkiCertificateDataSource } from \"@/pki/data/HttpPkiCertificateDataSource\";\nimport { DefaultPkiCertificateLoader } from \"@/pki/domain/DefaultPkiCertificateLoader\";\n\nimport { pkiTypes } from \"./pkiTypes\";\n\nexport const nanoPkiModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(pkiTypes.PkiCertificateDataSource).to(HttpPkiCertificateDataSource);\n bind(pkiTypes.PkiCertificateLoader).to(DefaultPkiCertificateLoader);\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA6C,mDAC7CC,EAA4C,oDAE5CC,EAAyB,sBAElB,MAAML,EAAuB,IAClC,IAAI,kBAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAK,WAAS,wBAAwB,EAAE,GAAG,8BAA4B,EACvEA,EAAK,WAAS,oBAAoB,EAAE,GAAG,6BAA2B,CACpE,CAAC",
6
+ "names": ["pkiModuleFactory_exports", "__export", "nanoPkiModuleFactory", "__toCommonJS", "import_inversify", "import_HttpPkiCertificateDataSource", "import_DefaultPkiCertificateLoader", "import_pkiTypes", "bind"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/pki/domain/DefaultPkiCertificateLoader.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { type PkiCertificateDataSource } from \"@/pki/data/PkiCertificateDataSource\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { type PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\n\nimport { PkiCertificateLoader } from \"./PkiCertificateLoader\";\n\n@injectable()\nexport class DefaultPkiCertificateLoader implements PkiCertificateLoader {\n private _dataSource: PkiCertificateDataSource;\n\n constructor(\n @inject(pkiTypes.PkiCertificateDataSource)\n dataSource: PkiCertificateDataSource,\n ) {\n this._dataSource = dataSource;\n }\n\n async loadCertificate(\n certificateInfos: PkiCertificateInfo,\n ): Promise<PkiCertificate | undefined> {\n const certificate =\n await this._dataSource.fetchCertificate(certificateInfos);\n\n return certificate.orDefault(undefined);\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAGnCC,EAAyB,6BAOlB,IAAMC,EAAN,KAAkE,CAC/D,YAER,YAEEC,EACA,CACA,KAAK,YAAcA,CACrB,CAEA,MAAM,gBACJC,EACqC,CAIrC,OAFE,MAAM,KAAK,YAAY,iBAAiBA,CAAgB,GAEvC,UAAU,MAAS,CACxC,CACF,EAlBaF,EAANG,EAAA,IADN,cAAW,EAKPC,EAAA,eAAO,WAAS,wBAAwB,IAJhCJ",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { type PkiCertificateDataSource } from \"@/pki/data/PkiCertificateDataSource\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { type PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\n\nimport { PkiCertificateLoader } from \"./PkiCertificateLoader\";\n\n@injectable()\nexport class DefaultPkiCertificateLoader implements PkiCertificateLoader {\n private _dataSource: PkiCertificateDataSource;\n\n constructor(\n @inject(pkiTypes.PkiCertificateDataSource)\n dataSource: PkiCertificateDataSource,\n ) {\n this._dataSource = dataSource;\n }\n\n async loadCertificate(\n certificateInfos: PkiCertificateInfo,\n ): Promise<PkiCertificate | undefined> {\n const certificate =\n await this._dataSource.fetchCertificate(certificateInfos);\n\n // TODO add logs error with certificate.left()\n return certificate.orDefault(undefined);\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAGnCC,EAAyB,6BAOlB,IAAMC,EAAN,KAAkE,CAC/D,YAER,YAEEC,EACA,CACA,KAAK,YAAcA,CACrB,CAEA,MAAM,gBACJC,EACqC,CAKrC,OAHE,MAAM,KAAK,YAAY,iBAAiBA,CAAgB,GAGvC,UAAU,MAAS,CACxC,CACF,EAnBaF,EAANG,EAAA,IADN,cAAW,EAKPC,EAAA,eAAO,WAAS,wBAAwB,IAJhCJ",
6
6
  "names": ["DefaultPkiCertificateLoader_exports", "__export", "DefaultPkiCertificateLoader", "__toCommonJS", "import_inversify", "import_pkiTypes", "DefaultPkiCertificateLoader", "dataSource", "certificateInfos", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=require("purify-ts"),r=require("../../pki/domain/DefaultPkiCertificateLoader"),o=require("../../pki/model/KeyId"),c=require("../../pki/model/KeyUsage");describe("DefaultPkiCertificateLoader",()=>{describe("loadCertificate",()=>{it("should call loadCertificate",async()=>{const e={targetDevice:"targetDevice",keyUsage:c.KeyUsage.Calldata,keyId:o.KeyId.CalNetwork},t={keyUsageNumber:11,payload:new Uint8Array([1,2,3,4,21,4,5,6,7,8])},a={fetchCertificate:vi.fn().mockResolvedValue((0,i.Right)(t))},f=await new r.DefaultPkiCertificateLoader(a).loadCertificate(e);expect(f).toEqual(t),expect(a.fetchCertificate).toHaveBeenCalledWith(e)})})});
1
+ "use strict";var i=require("purify-ts"),o=require("../../pki/domain/DefaultPkiCertificateLoader"),c=require("../../pki/model/KeyId"),f=require("../../pki/model/KeyUsage");describe("DefaultPkiCertificateLoader",()=>{describe("loadCertificate",()=>{it("should call loadCertificate",async()=>{const e={targetDevice:"targetDevice",keyUsage:f.KeyUsage.Calldata,keyId:c.KeyId.CalNetwork},a={keyUsageNumber:11,payload:new Uint8Array([1,2,3,4,21,4,5,6,7,8])},t={fetchCertificate:vi.fn().mockResolvedValue((0,i.Right)(a))},r=await new o.DefaultPkiCertificateLoader(t).loadCertificate(e);expect(r).toEqual(a),expect(t.fetchCertificate).toHaveBeenCalledWith(e)}),it("Returns undefined when the data source returns a Left(error)",async()=>{const e={targetDevice:"targetDevice",keyUsage:f.KeyUsage.Calldata,keyId:c.KeyId.CalNetwork},a=new Error("failed"),t={fetchCertificate:vi.fn().mockResolvedValue((0,i.Left)(a))},r=await new o.DefaultPkiCertificateLoader(t).loadCertificate(e);expect(r).toBeUndefined(),expect(t.fetchCertificate).toHaveBeenCalledWith(e)})})});
2
2
  //# sourceMappingURL=DefaultPkiCertificateLoader.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/pki/domain/DefaultPkiCertificateLoader.test.ts"],
4
- "sourcesContent": ["import { Right } from \"purify-ts\";\n\nimport { DefaultPkiCertificateLoader } from \"@/pki/domain/DefaultPkiCertificateLoader\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\n\ndescribe(\"DefaultPkiCertificateLoader\", () => {\n describe(\"loadCertificate\", () => {\n it(\"should call loadCertificate\", async () => {\n // GIVEN\n const certificateInfos: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: KeyId.CalNetwork,\n };\n const certificate = {\n keyUsageNumber: 11,\n payload: new Uint8Array([\n 0x01, 0x02, 0x03, 0x04, 0x15, 0x04, 0x05, 0x06, 0x07, 0x08,\n ]),\n };\n const dataSource = {\n fetchCertificate: vi.fn().mockResolvedValue(Right(certificate)),\n };\n\n // WHEN\n const loader = new DefaultPkiCertificateLoader(dataSource);\n const result = await loader.loadCertificate(certificateInfos);\n\n // THEN\n expect(result).toEqual(certificate);\n expect(dataSource.fetchCertificate).toHaveBeenCalledWith(\n certificateInfos,\n );\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAAsB,qBAEtBC,EAA4C,oDAC5CC,EAAsB,6BACtBC,EAAyB,gCAGzB,SAAS,8BAA+B,IAAM,CAC5C,SAAS,kBAAmB,IAAM,CAChC,GAAG,8BAA+B,SAAY,CAE5C,MAAMC,EAAuC,CAC3C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,QAAM,UACf,EACMC,EAAc,CAClB,eAAgB,GAChB,QAAS,IAAI,WAAW,CACtB,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,CACxD,CAAC,CACH,EACMC,EAAa,CACjB,iBAAkB,GAAG,GAAG,EAAE,qBAAkB,SAAMD,CAAW,CAAC,CAChE,EAIME,EAAS,MADA,IAAI,8BAA4BD,CAAU,EAC7B,gBAAgBF,CAAgB,EAG5D,OAAOG,CAAM,EAAE,QAAQF,CAAW,EAClC,OAAOC,EAAW,gBAAgB,EAAE,qBAClCF,CACF,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["import_purify_ts", "import_DefaultPkiCertificateLoader", "import_KeyId", "import_KeyUsage", "certificateInfos", "certificate", "dataSource", "result"]
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { DefaultPkiCertificateLoader } from \"@/pki/domain/DefaultPkiCertificateLoader\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type PkiCertificateInfo } from \"@/pki/model/PkiCertificateInfo\";\n\ndescribe(\"DefaultPkiCertificateLoader\", () => {\n describe(\"loadCertificate\", () => {\n it(\"should call loadCertificate\", async () => {\n // GIVEN\n const certificateInfos: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: KeyId.CalNetwork,\n };\n const certificate = {\n keyUsageNumber: 11,\n payload: new Uint8Array([\n 0x01, 0x02, 0x03, 0x04, 0x15, 0x04, 0x05, 0x06, 0x07, 0x08,\n ]),\n };\n const dataSource = {\n fetchCertificate: vi.fn().mockResolvedValue(Right(certificate)),\n };\n\n // WHEN\n const loader = new DefaultPkiCertificateLoader(dataSource);\n const result = await loader.loadCertificate(certificateInfos);\n\n // THEN\n expect(result).toEqual(certificate);\n expect(dataSource.fetchCertificate).toHaveBeenCalledWith(\n certificateInfos,\n );\n });\n\n it(\"Returns undefined when the data source returns a Left(error)\", async () => {\n // given\n const certificateInfos: PkiCertificateInfo = {\n targetDevice: \"targetDevice\",\n keyUsage: KeyUsage.Calldata,\n keyId: KeyId.CalNetwork,\n };\n const fetchError = new Error(\"failed\");\n const dataSource = {\n fetchCertificate: vi.fn().mockResolvedValue(Left(fetchError)),\n };\n const loader = new DefaultPkiCertificateLoader(dataSource);\n\n // when / then\n const result = await loader.loadCertificate(certificateInfos);\n expect(result).toBeUndefined();\n expect(dataSource.fetchCertificate).toHaveBeenCalledWith(\n certificateInfos,\n );\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA4B,qBAE5BC,EAA4C,oDAC5CC,EAAsB,6BACtBC,EAAyB,gCAGzB,SAAS,8BAA+B,IAAM,CAC5C,SAAS,kBAAmB,IAAM,CAChC,GAAG,8BAA+B,SAAY,CAE5C,MAAMC,EAAuC,CAC3C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,QAAM,UACf,EACMC,EAAc,CAClB,eAAgB,GAChB,QAAS,IAAI,WAAW,CACtB,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAAM,EAAM,CACxD,CAAC,CACH,EACMC,EAAa,CACjB,iBAAkB,GAAG,GAAG,EAAE,qBAAkB,SAAMD,CAAW,CAAC,CAChE,EAIME,EAAS,MADA,IAAI,8BAA4BD,CAAU,EAC7B,gBAAgBF,CAAgB,EAG5D,OAAOG,CAAM,EAAE,QAAQF,CAAW,EAClC,OAAOC,EAAW,gBAAgB,EAAE,qBAClCF,CACF,CACF,CAAC,EAED,GAAG,+DAAgE,SAAY,CAE7E,MAAMA,EAAuC,CAC3C,aAAc,eACd,SAAU,WAAS,SACnB,MAAO,QAAM,UACf,EACMI,EAAa,IAAI,MAAM,QAAQ,EAC/BF,EAAa,CACjB,iBAAkB,GAAG,GAAG,EAAE,qBAAkB,QAAKE,CAAU,CAAC,CAC9D,EAIMD,EAAS,MAHA,IAAI,8BAA4BD,CAAU,EAG7B,gBAAgBF,CAAgB,EAC5D,OAAOG,CAAM,EAAE,cAAc,EAC7B,OAAOD,EAAW,gBAAgB,EAAE,qBAClCF,CACF,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_purify_ts", "import_DefaultPkiCertificateLoader", "import_KeyId", "import_KeyUsage", "certificateInfos", "certificate", "dataSource", "result", "fetchError"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var e=Object.prototype.hasOwnProperty;var l=(n,r)=>{for(var a in r)i(n,a,{get:r[a],enumerable:!0})},h=(n,r,a,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of _(r))!e.call(n,o)&&o!==a&&i(n,o,{get:()=>r[o],enumerable:!(c=d(r,o))||c.enumerable});return n};var m=n=>h(i({},"__esModule",{value:!0}),n);var p={};l(p,{KeyUsage:()=>u});module.exports=m(p);var u=(t=>(t.GenuineCheck="genuine_check",t.ExchangePayload="exchange_payload",t.NftMeta="nft_meta",t.TrustedName="trusted_name",t.BackupProvider="backup_provider",t.ProtectOrchestrator="protect_orchestrator",t.PluginMeta="plugin_meta",t.CoinMeta="coin_meta",t.SeedIdAuth="seed_id_auth",t.TxSimulationSigner="tx_simu_signer",t.Calldata="calldata",t.Network="network",t))(u||{});0&&(module.exports={KeyUsage});
1
+ "use strict";var u=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var e=(i,r)=>{for(var o in r)u(i,o,{get:r[o],enumerable:!0})},m=(i,r,o,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of d(r))!l.call(i,n)&&n!==o&&u(i,n,{get:()=>r[n],enumerable:!(a=_(r,n))||a.enumerable});return i};var h=i=>m(u({},"__esModule",{value:!0}),i);var p={};e(p,{KeyUsage:()=>c});module.exports=h(p);var c=(t=>(t.GenuineCheck="genuine_check",t.ExchangePayload="exchange_payload",t.NftMeta="nft_meta",t.TrustedName="trusted_name",t.BackupProvider="backup_provider",t.ProtectOrchestrator="protect_orchestrator",t.PluginMeta="plugin_meta",t.CoinMeta="coin_meta",t.SeedIdAuth="seed_id_auth",t.TxSimulationSigner="tx_simu_signer",t.Calldata="calldata",t.Network="network",t.LESMultisig="les_multisig",t))(c||{});0&&(module.exports={KeyUsage});
2
2
  //# sourceMappingURL=KeyUsage.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/pki/model/KeyUsage.ts"],
4
- "sourcesContent": ["export enum KeyUsage {\n GenuineCheck = \"genuine_check\",\n ExchangePayload = \"exchange_payload\",\n NftMeta = \"nft_meta\",\n TrustedName = \"trusted_name\",\n BackupProvider = \"backup_provider\",\n ProtectOrchestrator = \"protect_orchestrator\",\n PluginMeta = \"plugin_meta\",\n CoinMeta = \"coin_meta\",\n SeedIdAuth = \"seed_id_auth\",\n TxSimulationSigner = \"tx_simu_signer\",\n Calldata = \"calldata\",\n Network = \"network\",\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAAO,IAAKE,OACVA,EAAA,aAAe,gBACfA,EAAA,gBAAkB,mBAClBA,EAAA,QAAU,WACVA,EAAA,YAAc,eACdA,EAAA,eAAiB,kBACjBA,EAAA,oBAAsB,uBACtBA,EAAA,WAAa,cACbA,EAAA,SAAW,YACXA,EAAA,WAAa,eACbA,EAAA,mBAAqB,iBACrBA,EAAA,SAAW,WACXA,EAAA,QAAU,UAZAA,OAAA",
4
+ "sourcesContent": ["export enum KeyUsage {\n GenuineCheck = \"genuine_check\",\n ExchangePayload = \"exchange_payload\",\n NftMeta = \"nft_meta\",\n TrustedName = \"trusted_name\",\n BackupProvider = \"backup_provider\",\n ProtectOrchestrator = \"protect_orchestrator\",\n PluginMeta = \"plugin_meta\",\n CoinMeta = \"coin_meta\",\n SeedIdAuth = \"seed_id_auth\",\n TxSimulationSigner = \"tx_simu_signer\",\n Calldata = \"calldata\",\n Network = \"network\",\n LESMultisig = \"les_multisig\",\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAAO,IAAKE,OACVA,EAAA,aAAe,gBACfA,EAAA,gBAAkB,mBAClBA,EAAA,QAAU,WACVA,EAAA,YAAc,eACdA,EAAA,eAAiB,kBACjBA,EAAA,oBAAsB,uBACtBA,EAAA,WAAa,cACbA,EAAA,SAAW,YACXA,EAAA,WAAa,eACbA,EAAA,mBAAqB,iBACrBA,EAAA,SAAW,WACXA,EAAA,QAAU,UACVA,EAAA,YAAc,eAbJA,OAAA",
6
6
  "names": ["KeyUsage_exports", "__export", "KeyUsage", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var p=(t,e,y,g)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of s(e))!o.call(t,i)&&i!==y&&r(t,i,{get:()=>e[i],enumerable:!(g=a(e,i))||g.enumerable});return t};var k=t=>p(r({},"__esModule",{value:!0}),t);var U={};module.exports=k(U);
1
+ "use strict";var g=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var y=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of a(e))!k.call(t,i)&&i!==n&&g(t,i,{get:()=>e[i],enumerable:!(r=s(e,i))||r.enumerable});return t};var c=t=>y(g({},"__esModule",{value:!0}),t);var f={};module.exports=c(f);
2
2
  //# sourceMappingURL=PkiCertificateInfo.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/pki/model/PkiCertificateInfo.ts"],
4
- "sourcesContent": ["import type { KeyUsage } from \"@/pki/model/KeyUsage\";\n\nexport type PkiCertificateInfo = {\n targetDevice: string;\n keyUsage: KeyUsage;\n keyId: string;\n};\n"],
4
+ "sourcesContent": ["export type PkiCertificateInfo = {\n targetDevice: string;\n keyUsage: string;\n keyId: string;\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["PkiCertificateInfo_exports", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var h=Object.create;var m=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var M=(o,e)=>{for(var r in e)m(o,r,{get:e[r],enumerable:!0})},f=(o,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of A(e))!$.call(o,t)&&t!==r&&m(o,t,{get:()=>e[t],enumerable:!(n=y(e,t))||n.enumerable});return o};var c=(o,e,r)=>(r=o!=null?h(I(o)):{},f(e||!o||!o.__esModule?m(r,"default",{value:o,enumerable:!0}):r,o)),N=o=>f(m({},"__esModule",{value:!0}),o),g=(o,e,r,n)=>{for(var t=n>1?void 0:n?y(e,r):e,a=o.length-1,s;a>=0;a--)(s=o[a])&&(t=(n?s(e,r,t):s(t))||t);return n&&t&&m(e,r,t),t},x=(o,e)=>(r,n)=>e(r,n,o);var R={};M(R,{HttpProxyDataSource:()=>d});module.exports=N(R);var D=c(require("axios")),l=require("inversify"),i=require("purify-ts"),u=require("../../config/di/configTypes"),E=require("../../pki/model/KeyId"),P=require("../../pki/model/KeyUsage"),p=require("../../shared/constant/HttpHeaders"),C=c(require("../../../package.json"));let d=class{constructor(e){this.config=e}async getProxyImplementationAddress({proxyAddress:e,chainId:r,challenge:n,calldata:t}){let a;try{a=(await D.default.request({method:"POST",url:`${this.config.metadataServiceDomain.url}/v2/ethereum/${r}/contract/proxy/delegate`,headers:{[p.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${C.default.version}`,[p.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken},data:{proxy:e,data:t,challenge:n}})).data}catch{return(0,i.Left)(new Error("[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy"))}return a?this.isProxyDelegateCallDto(a)?a.addresses[0]?(0,i.Right)({implementationAddress:a.addresses[0],signedDescriptor:a.signedDescriptor,keyId:E.KeyId.DomainMetadataKey,keyUsage:P.KeyUsage.TrustedName}):(0,i.Left)(new Error(`[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${e} on chain ${r}`)):(0,i.Left)(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e} on chain ${r}`)):(0,i.Left)(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e} on chain ${r}`))}isProxyDelegateCallDto(e){return typeof e=="object"&&e!==null&&"addresses"in e&&"signedDescriptor"in e&&Array.isArray(e.addresses)&&e.addresses.every(r=>typeof r=="string")&&typeof e.signedDescriptor=="string"}};d=g([(0,l.injectable)(),x(0,(0,l.inject)(u.configTypes.Config))],d);0&&(module.exports={HttpProxyDataSource});
2
+ //# sourceMappingURL=HttpProxyDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/data/HttpProxyDataSource.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 { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { ProxyDelegateCallDto } from \"./dto/ProxyDelegateCallDto\";\nimport {\n GetProxyImplementationAddressParam,\n ProxyDataSource,\n ProxyImplementationAddress,\n} from \"./ProxyDataSource\";\n\n@injectable()\nexport class HttpProxyDataSource implements ProxyDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n async getProxyImplementationAddress({\n proxyAddress,\n chainId,\n challenge,\n calldata,\n }: GetProxyImplementationAddressParam): Promise<\n Either<Error, ProxyImplementationAddress>\n > {\n let dto: ProxyDelegateCallDto | undefined;\n try {\n const response = await axios.request<ProxyDelegateCallDto>({\n method: \"POST\",\n url: `${this.config.metadataServiceDomain.url}/v2/ethereum/${chainId}/contract/proxy/delegate`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n data: {\n proxy: proxyAddress,\n data: calldata,\n challenge,\n },\n });\n dto = response.data;\n } catch (_error) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy`,\n ),\n );\n }\n\n if (!dto) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!this.isProxyDelegateCallDto(dto)) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!dto.addresses[0]) {\n return Left(\n new Error(\n `[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n return Right({\n implementationAddress: dto.addresses[0],\n signedDescriptor: dto.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n }\n\n /**\n * Type guard to validate ProxyDelegateCallDto\n */\n private isProxyDelegateCallDto(\n value: unknown,\n ): value is ProxyDelegateCallDto {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"addresses\" in value &&\n \"signedDescriptor\" in value &&\n Array.isArray(value.addresses) &&\n value.addresses.every((address) => typeof address === \"string\") &&\n typeof value.signedDescriptor === \"string\"\n );\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAAsB,6BACtBC,EAAyB,gCACzBC,EAGO,yCACPC,EAAoB,iCAUb,IAAMC,EAAN,KAAqD,CAC1D,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CAEH,MAAM,8BAA8B,CAClC,aAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,CACF,EAEE,CACA,IAAIC,EACJ,GAAI,CAcFA,GAbiB,MAAM,EAAAC,QAAM,QAA8B,CACzD,OAAQ,OACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBJ,CAAO,2BACpE,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAK,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,EACA,KAAM,CACJ,MAAON,EACP,KAAMG,EACN,UAAAD,CACF,CACF,CAAC,GACc,IACjB,MAAiB,CACf,SAAO,QACL,IAAI,MACF,qEACF,CACF,CACF,CAEA,OAAKE,EAQA,KAAK,uBAAuBA,CAAG,EAQ/BA,EAAI,UAAU,CAAC,KAQb,SAAM,CACX,sBAAuBA,EAAI,UAAU,CAAC,EACtC,iBAAkBA,EAAI,iBACtB,MAAO,QAAM,kBACb,SAAU,WAAS,WACrB,CAAC,KAZQ,QACL,IAAI,MACF,kFAAkFJ,CAAY,aAAaC,CAAO,EACpH,CACF,KAZO,QACL,IAAI,MACF,8FAA8FD,CAAY,aAAaC,CAAO,EAChI,CACF,KAZO,QACL,IAAI,MACF,mEAAmED,CAAY,aAAaC,CAAO,EACrG,CACF,CAyBJ,CAKQ,uBACNM,EAC+B,CAC/B,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,cAAeA,GACf,qBAAsBA,GACtB,MAAM,QAAQA,EAAM,SAAS,GAC7BA,EAAM,UAAU,MAAOC,GAAY,OAAOA,GAAY,QAAQ,GAC9D,OAAOD,EAAM,kBAAqB,QAEtC,CACF,EArFaT,EAANW,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBZ",
6
+ "names": ["HttpProxyDataSource_exports", "__export", "HttpProxyDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_KeyId", "import_KeyUsage", "import_HttpHeaders", "import_package", "HttpProxyDataSource", "config", "proxyAddress", "chainId", "challenge", "calldata", "dto", "axios", "PACKAGE", "value", "address", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var m=Object.create;var p=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var w=(a,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of g(e))!v.call(a,r)&&r!==s&&p(a,r,{get:()=>e[r],enumerable:!(t=h(e,r))||t.enumerable});return a};var u=(a,e,s)=>(s=a!=null?m(f(a)):{},w(e||!a||!a.__esModule?p(s,"default",{value:a,enumerable:!0}):s,a));var o=u(require("axios")),c=require("../../pki/model/KeyId"),l=require("../../pki/model/KeyUsage"),i=require("../../shared/constant/HttpHeaders"),x=u(require("../../../package.json")),y=require("./HttpProxyDataSource");vi.mock("axios");const d={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"};describe("HttpProxyDataSource",()=>{let a;beforeAll(()=>{a=new y.HttpProxyDataSource(d),vi.clearAllMocks()}),beforeEach(()=>{vi.clearAllMocks()});const e={proxyAddress:"0x1234567890123456789012345678901234567890",chainId:1,challenge:"test-challenge",calldata:"0xabcdef"},s={addresses:["0x9876543210987654321098765432109876543210"],signedDescriptor:"signed-descriptor-data"};describe("getProxyImplementationAddress",()=>{it("should call axios with correct URL, headers, and data",async()=>{const t=`context-module/${x.default.version}`,r=vi.fn(()=>Promise.resolve({data:s}));vi.spyOn(o.default,"request").mockImplementation(r),await a.getProxyImplementationAddress(e),expect(r).toHaveBeenCalledWith({method:"POST",url:`${d.metadataServiceDomain.url}/v2/ethereum/${e.chainId}/contract/proxy/delegate`,headers:{[i.LEDGER_CLIENT_VERSION_HEADER]:t,[i.LEDGER_ORIGIN_TOKEN_HEADER]:d.originToken},data:{proxy:e.proxyAddress,data:e.calldata,challenge:e.challenge}})}),it("should return Right with proxy implementation data when request succeeds with valid DTO",async()=>{vi.spyOn(o.default,"request").mockResolvedValue({data:s});const t=await a.getProxyImplementationAddress(e);expect(t.isRight()).toBe(!0),expect(t.extract()).toEqual({implementationAddress:s.addresses[0],signedDescriptor:s.signedDescriptor,keyId:c.KeyId.DomainMetadataKey,keyUsage:l.KeyUsage.TrustedName})}),it("should return Right with first address when multiple addresses are provided",async()=>{const t={addresses:["0x9876543210987654321098765432109876543210","0x1111111111111111111111111111111111111111"],signedDescriptor:"signed-descriptor-data"};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isRight()).toBe(!0),expect(r.extract()).toEqual({implementationAddress:t.addresses[0],signedDescriptor:t.signedDescriptor,keyId:c.KeyId.DomainMetadataKey,keyUsage:l.KeyUsage.TrustedName})}),it("should return Left with error when axios throws an error",async()=>{vi.spyOn(o.default,"request").mockRejectedValue(new Error("Network error"));const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error("[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy"))}),it("should return Left with error when response data is undefined",async()=>{vi.spyOn(o.default,"request").mockResolvedValue({data:void 0});const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response data is null",async()=>{vi.spyOn(o.default,"request").mockResolvedValue({data:null});const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses field is missing",async()=>{const{addresses:t,...r}=s;vi.spyOn(o.default,"request").mockResolvedValue({data:r});const n=await a.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is missing",async()=>{const{signedDescriptor:t,...r}=s;vi.spyOn(o.default,"request").mockResolvedValue({data:r});const n=await a.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses is not an array",async()=>{const t={...s,addresses:"not-an-array"};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses array contains non-string values",async()=>{const t={...s,addresses:[123,"valid-address"]};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is not a string",async()=>{const t={...s,signedDescriptor:123};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when addresses array is empty",async()=>{const t={addresses:[],signedDescriptor:"signed-descriptor-data"};vi.spyOn(o.default,"request").mockResolvedValue({data:t});const r=await a.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is not an object",async()=>{vi.spyOn(o.default,"request").mockResolvedValue({data:"not an object"});const t=await a.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should handle different chainId values correctly",async()=>{const t={...e,chainId:137};vi.spyOn(o.default,"request").mockResolvedValue({data:s});const r=await a.getProxyImplementationAddress(t);expect(r.isRight()).toBe(!0),expect(o.default.request).toHaveBeenCalledWith(expect.objectContaining({url:`${d.metadataServiceDomain.url}/v2/ethereum/137/contract/proxy/delegate`}))}),it("should handle different proxy addresses correctly",async()=>{const t="0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",r={...e,proxyAddress:t};vi.spyOn(o.default,"request").mockResolvedValue({data:s});const n=await a.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(o.default.request).toHaveBeenCalledWith(expect.objectContaining({data:expect.objectContaining({proxy:t})}))}),it("should handle different calldata values correctly",async()=>{const t="0x123456789abcdef",r={...e,calldata:t};vi.spyOn(o.default,"request").mockResolvedValue({data:s});const n=await a.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(o.default.request).toHaveBeenCalledWith(expect.objectContaining({data:expect.objectContaining({data:t})}))}),it("should pass challenge parameter correctly",async()=>{const t="custom-challenge-string",r={...e,challenge:t};vi.spyOn(o.default,"request").mockResolvedValue({data:s});const n=await a.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(o.default.request).toHaveBeenCalledWith(expect.objectContaining({data:expect.objectContaining({challenge:t})}))})})});
2
+ //# sourceMappingURL=HttpProxyDataSource.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/data/HttpProxyDataSource.test.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { type ProxyDelegateCallDto } from \"./dto/ProxyDelegateCallDto\";\nimport { HttpProxyDataSource } from \"./HttpProxyDataSource\";\nimport { type ProxyDataSource } from \"./ProxyDataSource\";\n\nvi.mock(\"axios\");\n\nconst config = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n} as ContextModuleConfig;\n\ndescribe(\"HttpProxyDataSource\", () => {\n let datasource: ProxyDataSource;\n\n beforeAll(() => {\n datasource = new HttpProxyDataSource(config);\n vi.clearAllMocks();\n });\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n const validParams = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n challenge: \"test-challenge\",\n calldata: \"0xabcdef\",\n };\n\n const validDto: ProxyDelegateCallDto = {\n addresses: [\"0x9876543210987654321098765432109876543210\"],\n signedDescriptor: \"signed-descriptor-data\",\n };\n\n describe(\"getProxyImplementationAddress\", () => {\n it(\"should call axios with correct URL, headers, and data\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: validDto }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith({\n method: \"POST\",\n url: `${config.metadataServiceDomain.url}/v2/ethereum/${validParams.chainId}/contract/proxy/delegate`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: version,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n data: {\n proxy: validParams.proxyAddress,\n data: validParams.calldata,\n challenge: validParams.challenge,\n },\n });\n });\n\n it(\"should return Right with proxy implementation data when request succeeds with valid DTO\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: validDto.addresses[0],\n signedDescriptor: validDto.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n });\n\n it(\"should return Right with first address when multiple addresses are provided\", async () => {\n // GIVEN\n const dtoWithMultipleAddresses: ProxyDelegateCallDto = {\n addresses: [\n \"0x9876543210987654321098765432109876543210\",\n \"0x1111111111111111111111111111111111111111\",\n ],\n signedDescriptor: \"signed-descriptor-data\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n data: dtoWithMultipleAddresses,\n });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: dtoWithMultipleAddresses.addresses[0],\n signedDescriptor: dtoWithMultipleAddresses.signedDescriptor,\n keyId: KeyId.DomainMetadataKey,\n keyUsage: KeyUsage.TrustedName,\n });\n });\n\n it(\"should return Left with error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpProxyDataSource: Failed to fetch delegate proxy\",\n ),\n );\n });\n\n it(\"should return Left with error when response data is undefined\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response data is null\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: null });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses field is missing\", async () => {\n // GIVEN\n const { addresses: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is missing\", async () => {\n // GIVEN\n const { signedDescriptor: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses is not an array\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, addresses: \"not-an-array\" };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses array contains non-string values\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, addresses: [123, \"valid-address\"] };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, signedDescriptor: 123 };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when addresses array is empty\", async () => {\n // GIVEN\n const invalidDto: ProxyDelegateCallDto = {\n addresses: [],\n signedDescriptor: \"signed-descriptor-data\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: No implementation address found for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is not an object\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: \"not an object\" });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpProxyDataSource: Invalid proxy delegate call response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should handle different chainId values correctly\", async () => {\n // GIVEN\n const paramsWithDifferentChainId = { ...validParams, chainId: 137 };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentChainId,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: `${config.metadataServiceDomain.url}/v2/ethereum/137/contract/proxy/delegate`,\n }),\n );\n });\n\n it(\"should handle different proxy addresses correctly\", async () => {\n // GIVEN\n const differentProxyAddress =\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\";\n const paramsWithDifferentAddress = {\n ...validParams,\n proxyAddress: differentProxyAddress,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentAddress,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n data: expect.objectContaining({\n proxy: differentProxyAddress,\n }),\n }),\n );\n });\n\n it(\"should handle different calldata values correctly\", async () => {\n // GIVEN\n const customCalldata = \"0x123456789abcdef\";\n const paramsWithCustomCalldata = {\n ...validParams,\n calldata: customCalldata,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomCalldata,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n data: expect.objectContaining({\n data: customCalldata,\n }),\n }),\n );\n });\n\n it(\"should pass challenge parameter correctly\", async () => {\n // GIVEN\n const customChallenge = \"custom-challenge-string\";\n const paramsWithCustomChallenge = {\n ...validParams,\n challenge: customChallenge,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomChallenge,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n data: expect.objectContaining({\n challenge: customChallenge,\n }),\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_axios", "import_KeyId", "import_KeyUsage", "import_HttpHeaders", "import_package", "import_HttpProxyDataSource", "config", "datasource", "validParams", "validDto", "version", "PACKAGE", "requestSpy", "axios", "result", "dtoWithMultipleAddresses", "_", "invalidDto", "paramsWithDifferentChainId", "differentProxyAddress", "paramsWithDifferentAddress", "customCalldata", "paramsWithCustomCalldata", "customChallenge", "paramsWithCustomChallenge"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var D=Object.create;var d=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var k=(t,e)=>{for(var o in e)d(t,o,{get:e[o],enumerable:!0})},c=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of P(e))!S.call(t,r)&&r!==o&&d(t,r,{get:()=>e[r],enumerable:!(n=f(e,r))||n.enumerable});return t};var x=(t,e,o)=>(o=t!=null?D(h(t)):{},c(e||!t||!t.__esModule?d(o,"default",{value:t,enumerable:!0}):o,t)),C=t=>c(d({},"__esModule",{value:!0}),t),g=(t,e,o,n)=>{for(var r=n>1?void 0:n?f(e,o):e,s=t.length-1,y;s>=0;s--)(y=t[s])&&(r=(n?y(e,o,r):y(r))||r);return n&&r&&d(e,o,r),r},A=(t,e)=>(o,n)=>e(o,n,t);var G={};k(G,{HttpSafeProxyDataSource:()=>m});module.exports=C(G);var E=x(require("axios")),p=require("inversify"),i=require("purify-ts"),l=require("../../config/di/configTypes"),a=require("../../shared/constant/HttpHeaders"),I=x(require("../../../package.json"));let m=class{constructor(e){this.config=e}async getProxyImplementationAddress({proxyAddress:e,chainId:o,challenge:n}){let r;try{r=(await E.default.request({method:"GET",url:`${this.config.metadataServiceDomain.url}/v3/ethereum/${o}/contract/proxy/${e}`,headers:{[a.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${I.default.version}`,[a.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken},params:{challenge:n,resolver:"SAFE_GATEWAY"}})).data}catch{return(0,i.Left)(new Error("[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation"))}return r?this.isSafeProxyImplementationAddressDto(r)?(0,i.Right)({implementationAddress:r.implementationAddress,signedDescriptor:r.signedDescriptor,keyId:r.keyId,keyUsage:r.keyUsage}):(0,i.Left)(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e} on chain ${o}`)):(0,i.Left)(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e} on chain ${o}`))}isSafeProxyImplementationAddressDto(e){return typeof e=="object"&&e!==null&&"proxyAddress"in e&&"implementationAddress"in e&&"standard"in e&&"signedDescriptor"in e&&"providedBy"in e&&"keyId"in e&&"keyUsage"in e&&typeof e.proxyAddress=="string"&&typeof e.implementationAddress=="string"&&typeof e.standard=="string"&&typeof e.signedDescriptor=="string"&&typeof e.providedBy=="string"&&typeof e.keyId=="string"&&typeof e.keyUsage=="string"}};m=g([(0,p.injectable)(),A(0,(0,p.inject)(l.configTypes.Config))],m);0&&(module.exports={HttpSafeProxyDataSource});
2
+ //# sourceMappingURL=HttpSafeProxyDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/data/HttpSafeProxyDataSource.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 {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { SafeProxyImplementationAddressDto } from \"./dto/SafeProxyImplementationAddressDto\";\nimport {\n GetProxyImplementationAddressParam,\n type ProxyDataSource,\n ProxyImplementationAddress,\n} from \"./ProxyDataSource\";\n\n@injectable()\nexport class HttpSafeProxyDataSource implements ProxyDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n async getProxyImplementationAddress({\n proxyAddress,\n chainId,\n challenge,\n }: GetProxyImplementationAddressParam): Promise<\n Either<Error, ProxyImplementationAddress>\n > {\n let dto: SafeProxyImplementationAddressDto | undefined;\n try {\n const response = await axios.request<SafeProxyImplementationAddressDto>({\n method: \"GET\",\n url: `${this.config.metadataServiceDomain.url}/v3/ethereum/${chainId}/contract/proxy/${proxyAddress}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n params: {\n challenge,\n resolver: \"SAFE_GATEWAY\",\n },\n });\n dto = response.data;\n } catch (_error) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation`,\n ),\n );\n }\n\n if (!dto) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n if (!this.isSafeProxyImplementationAddressDto(dto)) {\n return Left(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${proxyAddress} on chain ${chainId}`,\n ),\n );\n }\n\n return Right({\n implementationAddress: dto.implementationAddress,\n signedDescriptor: dto.signedDescriptor,\n keyId: dto.keyId,\n keyUsage: dto.keyUsage,\n });\n }\n\n /**\n * Type guard to validate SafeProxyImplementationAddressDto\n */\n private isSafeProxyImplementationAddressDto(\n value: unknown,\n ): value is SafeProxyImplementationAddressDto {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"proxyAddress\" in value &&\n \"implementationAddress\" in value &&\n \"standard\" in value &&\n \"signedDescriptor\" in value &&\n \"providedBy\" in value &&\n \"keyId\" in value &&\n \"keyUsage\" in value &&\n typeof value.proxyAddress === \"string\" &&\n typeof value.implementationAddress === \"string\" &&\n typeof value.standard === \"string\" &&\n typeof value.signedDescriptor === \"string\" &&\n typeof value.providedBy === \"string\" &&\n typeof value.keyId === \"string\" &&\n typeof value.keyUsage === \"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,EAGO,yCACPC,EAAoB,iCAUb,IAAMC,EAAN,KAAyD,CAC9D,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CAEH,MAAM,8BAA8B,CAClC,aAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAEE,CACA,IAAIC,EACJ,GAAI,CAaFA,GAZiB,MAAM,EAAAC,QAAM,QAA2C,CACtE,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,gBAAgBH,CAAO,mBAAmBD,CAAY,GACnG,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAK,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,EACA,OAAQ,CACN,UAAAH,EACA,SAAU,cACZ,CACF,CAAC,GACc,IACjB,MAAiB,CACf,SAAO,QACL,IAAI,MACF,oFACF,CACF,CACF,CAEA,OAAKC,EAQA,KAAK,oCAAoCA,CAAG,KAQ1C,SAAM,CACX,sBAAuBA,EAAI,sBAC3B,iBAAkBA,EAAI,iBACtB,MAAOA,EAAI,MACX,SAAUA,EAAI,QAChB,CAAC,KAZQ,QACL,IAAI,MACF,yFAAyFH,CAAY,aAAaC,CAAO,EAC3H,CACF,KAZO,QACL,IAAI,MACF,uEAAuED,CAAY,aAAaC,CAAO,EACzG,CACF,CAiBJ,CAKQ,oCACNK,EAC4C,CAC5C,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,iBAAkBA,GAClB,0BAA2BA,GAC3B,aAAcA,GACd,qBAAsBA,GACtB,eAAgBA,GAChB,UAAWA,GACX,aAAcA,GACd,OAAOA,EAAM,cAAiB,UAC9B,OAAOA,EAAM,uBAA0B,UACvC,OAAOA,EAAM,UAAa,UAC1B,OAAOA,EAAM,kBAAqB,UAClC,OAAOA,EAAM,YAAe,UAC5B,OAAOA,EAAM,OAAU,UACvB,OAAOA,EAAM,UAAa,QAE9B,CACF,EApFaR,EAANS,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBV",
6
+ "names": ["HttpSafeProxyDataSource_exports", "__export", "HttpSafeProxyDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpSafeProxyDataSource", "config", "proxyAddress", "chainId", "challenge", "dto", "axios", "PACKAGE", "value", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var x=Object.create;var c=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var v=(o,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of m(e))!f.call(o,r)&&r!==s&&c(o,r,{get:()=>e[r],enumerable:!(t=y(e,r))||t.enumerable});return o};var l=(o,e,s)=>(s=o!=null?x(h(o)):{},v(e||!o||!o.__esModule?c(s,"default",{value:o,enumerable:!0}):s,o));var a=l(require("axios")),d=require("../../shared/constant/HttpHeaders"),p=l(require("../../../package.json")),u=require("./HttpSafeProxyDataSource");vi.mock("axios");const i={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"};describe("HttpSafeProxyDataSource",()=>{let o;beforeAll(()=>{o=new u.HttpSafeProxyDataSource(i),vi.clearAllMocks()}),beforeEach(()=>{vi.clearAllMocks()});const e={proxyAddress:"0x1234567890123456789012345678901234567890",chainId:1,challenge:"test-challenge",calldata:"0xabcdef"},s={proxyAddress:"0x1234567890123456789012345678901234567890",implementationAddress:"0x9876543210987654321098765432109876543210",standard:"EIP-1967",signedDescriptor:"signed-descriptor-data",providedBy:"SAFE_GATEWAY",keyId:"testKeyId",keyUsage:"testKeyUsage"};describe("getProxyImplementationAddress",()=>{it("should call axios with correct URL, headers, and parameters",async()=>{const t=`context-module/${p.default.version}`,r=vi.fn(()=>Promise.resolve({data:s}));vi.spyOn(a.default,"request").mockImplementation(r),await o.getProxyImplementationAddress(e),expect(r).toHaveBeenCalledWith({method:"GET",url:`${i.metadataServiceDomain.url}/v3/ethereum/${e.chainId}/contract/proxy/${e.proxyAddress}`,headers:{[d.LEDGER_CLIENT_VERSION_HEADER]:t,[d.LEDGER_ORIGIN_TOKEN_HEADER]:i.originToken},params:{challenge:e.challenge,resolver:"SAFE_GATEWAY"}})}),it("should return Right with proxy implementation data when request succeeds with valid DTO",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:s});const t=await o.getProxyImplementationAddress(e);expect(t.isRight()).toBe(!0),expect(t.extract()).toEqual({implementationAddress:s.implementationAddress,signedDescriptor:s.signedDescriptor,keyId:"testKeyId",keyUsage:"testKeyUsage"})}),it("should return Left with error when axios throws an error",async()=>{vi.spyOn(a.default,"request").mockRejectedValue(new Error("Network error"));const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error("[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation"))}),it("should return Left with error when response data is undefined",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:void 0});const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response data is null",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:null});const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when proxyAddress is missing",async()=>{const{proxyAddress:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when implementationAddress is missing",async()=>{const{implementationAddress:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when standard is missing",async()=>{const{standard:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is missing",async()=>{const{signedDescriptor:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when providedBy is missing",async()=>{const{providedBy:t,...r}=s;vi.spyOn(a.default,"request").mockResolvedValue({data:r});const n=await o.getProxyImplementationAddress(e);expect(n.isLeft()).toBe(!0),expect(n.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when proxyAddress is not a string",async()=>{const t={...s,proxyAddress:123};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when implementationAddress is not a string",async()=>{const t={...s,implementationAddress:null};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when standard is not a string",async()=>{const t={...s,standard:[]};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when signedDescriptor is not a string",async()=>{const t={...s,signedDescriptor:{}};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when providedBy is not a string",async()=>{const t={...s,providedBy:!0};vi.spyOn(a.default,"request").mockResolvedValue({data:t});const r=await o.getProxyImplementationAddress(e);expect(r.isLeft()).toBe(!0),expect(r.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is not an object",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:"not an object"});const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should return Left with error when response is null",async()=>{vi.spyOn(a.default,"request").mockResolvedValue({data:null});const t=await o.getProxyImplementationAddress(e);expect(t.isLeft()).toBe(!0),expect(t.extract()).toEqual(new Error(`[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${e.proxyAddress} on chain ${e.chainId}`))}),it("should handle different chainId values correctly",async()=>{const t={...e,chainId:137};vi.spyOn(a.default,"request").mockResolvedValue({data:s});const r=await o.getProxyImplementationAddress(t);expect(r.isRight()).toBe(!0),expect(a.default.request).toHaveBeenCalledWith(expect.objectContaining({url:`${i.metadataServiceDomain.url}/v3/ethereum/137/contract/proxy/${e.proxyAddress}`}))}),it("should handle different proxy addresses correctly",async()=>{const t="0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",r={...e,proxyAddress:t};vi.spyOn(a.default,"request").mockResolvedValue({data:s});const n=await o.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(a.default.request).toHaveBeenCalledWith(expect.objectContaining({url:`${i.metadataServiceDomain.url}/v3/ethereum/${e.chainId}/contract/proxy/${t}`}))}),it("should pass challenge parameter correctly",async()=>{const t="custom-challenge-string",r={...e,challenge:t};vi.spyOn(a.default,"request").mockResolvedValue({data:s});const n=await o.getProxyImplementationAddress(r);expect(n.isRight()).toBe(!0),expect(a.default.request).toHaveBeenCalledWith(expect.objectContaining({params:{challenge:t,resolver:"SAFE_GATEWAY"}}))})})});
2
+ //# sourceMappingURL=HttpSafeProxyDataSource.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/data/HttpSafeProxyDataSource.test.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { type SafeProxyImplementationAddressDto } from \"./dto/SafeProxyImplementationAddressDto\";\nimport { HttpSafeProxyDataSource } from \"./HttpSafeProxyDataSource\";\nimport { type ProxyDataSource } from \"./ProxyDataSource\";\n\nvi.mock(\"axios\");\n\nconst config = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n} as ContextModuleConfig;\n\ndescribe(\"HttpSafeProxyDataSource\", () => {\n let datasource: ProxyDataSource;\n\n beforeAll(() => {\n datasource = new HttpSafeProxyDataSource(config);\n vi.clearAllMocks();\n });\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n const validParams = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n challenge: \"test-challenge\",\n calldata: \"0xabcdef\",\n };\n\n const validDto: SafeProxyImplementationAddressDto = {\n proxyAddress: \"0x1234567890123456789012345678901234567890\",\n implementationAddress: \"0x9876543210987654321098765432109876543210\",\n standard: \"EIP-1967\",\n signedDescriptor: \"signed-descriptor-data\",\n providedBy: \"SAFE_GATEWAY\",\n keyId: \"testKeyId\",\n keyUsage: \"testKeyUsage\",\n };\n\n describe(\"getProxyImplementationAddress\", () => {\n it(\"should call axios with correct URL, headers, and parameters\", async () => {\n // GIVEN\n const version = `context-module/${PACKAGE.version}`;\n const requestSpy = vi.fn(() => Promise.resolve({ data: validDto }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // WHEN\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(requestSpy).toHaveBeenCalledWith({\n method: \"GET\",\n url: `${config.metadataServiceDomain.url}/v3/ethereum/${validParams.chainId}/contract/proxy/${validParams.proxyAddress}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: version,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n params: {\n challenge: validParams.challenge,\n resolver: \"SAFE_GATEWAY\",\n },\n });\n });\n\n it(\"should return Right with proxy implementation data when request succeeds with valid DTO\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n implementationAddress: validDto.implementationAddress,\n signedDescriptor: validDto.signedDescriptor,\n keyId: \"testKeyId\",\n keyUsage: \"testKeyUsage\",\n });\n });\n\n it(\"should return Left with error when axios throws an error\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n \"[ContextModule] HttpSafeProxyDataSource: Failed to fetch safe proxy implementation\",\n ),\n );\n });\n\n it(\"should return Left with error when response data is undefined\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response data is null\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: null });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when proxyAddress is missing\", async () => {\n // GIVEN\n const { proxyAddress: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when implementationAddress is missing\", async () => {\n // GIVEN\n const { implementationAddress: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when standard is missing\", async () => {\n // GIVEN\n const { standard: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is missing\", async () => {\n // GIVEN\n const { signedDescriptor: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when providedBy is missing\", async () => {\n // GIVEN\n const { providedBy: _, ...invalidDto } = validDto;\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when proxyAddress is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, proxyAddress: 123 };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when implementationAddress is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, implementationAddress: null };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when standard is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, standard: [] };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when signedDescriptor is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, signedDescriptor: {} };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when providedBy is not a string\", async () => {\n // GIVEN\n const invalidDto = { ...validDto, providedBy: true };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: invalidDto });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is not an object\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: \"not an object\" });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: Invalid safe proxy response format for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should return Left with error when response is null\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: null });\n\n // WHEN\n const result =\n await datasource.getProxyImplementationAddress(validParams);\n\n // THEN\n expect(result.isLeft()).toBe(true);\n expect(result.extract()).toEqual(\n new Error(\n `[ContextModule] HttpSafeProxyDataSource: No data received for proxy ${validParams.proxyAddress} on chain ${validParams.chainId}`,\n ),\n );\n });\n\n it(\"should handle different chainId values correctly\", async () => {\n // GIVEN\n const paramsWithDifferentChainId = { ...validParams, chainId: 137 };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentChainId,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: `${config.metadataServiceDomain.url}/v3/ethereum/137/contract/proxy/${validParams.proxyAddress}`,\n }),\n );\n });\n\n it(\"should handle different proxy addresses correctly\", async () => {\n // GIVEN\n const differentProxyAddress =\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\";\n const paramsWithDifferentAddress = {\n ...validParams,\n proxyAddress: differentProxyAddress,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithDifferentAddress,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: `${config.metadataServiceDomain.url}/v3/ethereum/${validParams.chainId}/contract/proxy/${differentProxyAddress}`,\n }),\n );\n });\n\n it(\"should pass challenge parameter correctly\", async () => {\n // GIVEN\n const customChallenge = \"custom-challenge-string\";\n const paramsWithCustomChallenge = {\n ...validParams,\n challenge: customChallenge,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: validDto });\n\n // WHEN\n const result = await datasource.getProxyImplementationAddress(\n paramsWithCustomChallenge,\n );\n\n // THEN\n expect(result.isRight()).toBe(true);\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n params: {\n challenge: customChallenge,\n resolver: \"SAFE_GATEWAY\",\n },\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_axios", "import_HttpHeaders", "import_package", "import_HttpSafeProxyDataSource", "config", "datasource", "validParams", "validDto", "version", "PACKAGE", "requestSpy", "axios", "result", "_", "invalidDto", "paramsWithDifferentChainId", "differentProxyAddress", "paramsWithDifferentAddress", "customChallenge", "paramsWithCustomChallenge"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var d=(r,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of a(e))!m.call(r,t)&&t!==i&&n(r,t,{get:()=>e[t],enumerable:!(s=o(e,t))||s.enumerable});return r};var p=r=>d(n({},"__esModule",{value:!0}),r);var y={};module.exports=p(y);
2
+ //# sourceMappingURL=ProxyDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/data/ProxyDataSource.ts"],
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\n\nexport type GetProxyImplementationAddressParam = {\n proxyAddress: string;\n chainId: number;\n challenge: string;\n calldata: string;\n};\n\nexport type ProxyImplementationAddress = {\n implementationAddress: string;\n signedDescriptor: string;\n keyId: string;\n keyUsage: string;\n};\n\nexport interface ProxyDataSource {\n getProxyImplementationAddress(\n params: GetProxyImplementationAddressParam,\n ): Promise<Either<Error, ProxyImplementationAddress>>;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["ProxyDataSource_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var g=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var l=(r,e,i,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of a(e))!d.call(r,s)&&s!==i&&g(r,s,{get:()=>e[s],enumerable:!(t=o(e,s))||t.enumerable});return r};var n=r=>l(g({},"__esModule",{value:!0}),r);var p={};module.exports=n(p);
2
+ //# sourceMappingURL=ProxyDelegateCallDto.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/proxy/data/dto/ProxyDelegateCallDto.ts"],
4
+ "sourcesContent": ["export type ProxyDelegateCallDto = {\n addresses: string[];\n signedDescriptor: string;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["ProxyDelegateCallDto_exports", "__toCommonJS"]
7
+ }