@1delta/margin-fetcher 0.0.77 → 0.0.79

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 (269) hide show
  1. package/dist/_esm-32O7VXQT.js +3641 -0
  2. package/dist/_esm-32O7VXQT.js.map +1 -0
  3. package/dist/abis/aave/AaveOracle.d.ts +50 -0
  4. package/dist/abis/aave/AaveOracle.d.ts.map +1 -0
  5. package/dist/abis/aave/AavePoolAndDataProvider.d.ts +1618 -0
  6. package/dist/abis/aave/AavePoolAndDataProvider.d.ts.map +1 -0
  7. package/dist/abis/aave/AavePoolV3Upgraded.d.ts +1134 -0
  8. package/dist/abis/aave/AavePoolV3Upgraded.d.ts.map +1 -0
  9. package/dist/abis/aave/AaveV3ProtocolDataProvider.d.ts +420 -0
  10. package/dist/abis/aave/AaveV3ProtocolDataProvider.d.ts.map +1 -0
  11. package/dist/abis/aave/VariableDebtToken.d.ts +635 -0
  12. package/dist/abis/aave/VariableDebtToken.d.ts.map +1 -0
  13. package/dist/abis/aave-v2/ProtocolDataProvider.d.ts +238 -0
  14. package/dist/abis/aave-v2/ProtocolDataProvider.d.ts.map +1 -0
  15. package/dist/abis/aave-v2/YLDR.d.ts +209 -0
  16. package/dist/abis/aave-v2/YLDR.d.ts.map +1 -0
  17. package/dist/abis/aave-v3/AavePoolDataProviderLegacy.d.ts +406 -0
  18. package/dist/abis/aave-v3/AavePoolDataProviderLegacy.d.ts.map +1 -0
  19. package/dist/abis/aave-v3/AavePoolLegacy.d.ts +819 -0
  20. package/dist/abis/aave-v3/AavePoolLegacy.d.ts.map +1 -0
  21. package/dist/abis/aave-v3/YLDR.d.ts +36 -0
  22. package/dist/abis/aave-v3/YLDR.d.ts.map +1 -0
  23. package/dist/abis/aurelius/Rewarder.d.ts +90 -0
  24. package/dist/abis/aurelius/Rewarder.d.ts.map +1 -0
  25. package/dist/abis/compound-v2/CompoundLens.d.ts +656 -0
  26. package/dist/abis/compound-v2/CompoundLens.d.ts.map +1 -0
  27. package/dist/abis/compound-v2/Comptroller.d.ts +1615 -0
  28. package/dist/abis/compound-v2/Comptroller.d.ts.map +1 -0
  29. package/dist/abis/compound-v3/Comet.d.ts +1382 -0
  30. package/dist/abis/compound-v3/Comet.d.ts.map +1 -0
  31. package/dist/abis/compound-v3/CometExt.d.ts +411 -0
  32. package/dist/abis/compound-v3/CometExt.d.ts.map +1 -0
  33. package/dist/abis/compound-v3/CometLens.d.ts +152 -0
  34. package/dist/abis/compound-v3/CometLens.d.ts.map +1 -0
  35. package/dist/abis/compound-v3/CometRewards.d.ts +253 -0
  36. package/dist/abis/compound-v3/CometRewards.d.ts.map +1 -0
  37. package/dist/abis/compound-v3/IrGetter.d.ts +24 -0
  38. package/dist/abis/compound-v3/IrGetter.d.ts.map +1 -0
  39. package/dist/abis/flashloan-united/flashAbi.d.ts +54 -0
  40. package/dist/abis/flashloan-united/flashAbi.d.ts.map +1 -0
  41. package/dist/abis/init/InitLens.d.ts +158 -0
  42. package/dist/abis/init/InitLens.d.ts.map +1 -0
  43. package/dist/abis/lendle/IncentivesController.d.ts +404 -0
  44. package/dist/abis/lendle/IncentivesController.d.ts.map +1 -0
  45. package/dist/abis/lendle/MultiFeeDistribution.d.ts +624 -0
  46. package/dist/abis/lendle/MultiFeeDistribution.d.ts.map +1 -0
  47. package/dist/abis/meridian/PullRewardsIncentivesController.d.ts +74 -0
  48. package/dist/abis/meridian/PullRewardsIncentivesController.d.ts.map +1 -0
  49. package/dist/abis/morpho/blue.d.ts +76 -0
  50. package/dist/abis/morpho/blue.d.ts.map +1 -0
  51. package/dist/abis/morpho/lens.d.ts +39 -0
  52. package/dist/abis/morpho/lens.d.ts.map +1 -0
  53. package/dist/abis/multicall/Multicall.d.ts +80 -0
  54. package/dist/abis/multicall/Multicall.d.ts.map +1 -0
  55. package/dist/abis/oracle/AaveOracle.d.ts +50 -0
  56. package/dist/abis/oracle/AaveOracle.d.ts.map +1 -0
  57. package/dist/abis/oracle/Api3Oracle.d.ts +48 -0
  58. package/dist/abis/oracle/Api3Oracle.d.ts.map +1 -0
  59. package/dist/abis/oracle/ChainLinkAggregator.d.ts +372 -0
  60. package/dist/abis/oracle/ChainLinkAggregator.d.ts.map +1 -0
  61. package/dist/abis/oracle/ProxyOracle.d.ts +12 -0
  62. package/dist/abis/oracle/ProxyOracle.d.ts.map +1 -0
  63. package/dist/abis/oracle/RWADynamicOracle.d.ts +12 -0
  64. package/dist/abis/oracle/RWADynamicOracle.d.ts.map +1 -0
  65. package/dist/abis/oracle/UniV3.d.ts +50 -0
  66. package/dist/abis/oracle/UniV3.d.ts.map +1 -0
  67. package/dist/abis/oracle/UniswapV2Pair.d.ts +513 -0
  68. package/dist/abis/oracle/UniswapV2Pair.d.ts.map +1 -0
  69. package/dist/assets/index.d.ts +15 -0
  70. package/dist/assets/index.d.ts.map +1 -0
  71. package/dist/assets/liquidityThresholds.d.ts +39 -0
  72. package/dist/assets/liquidityThresholds.d.ts.map +1 -0
  73. package/dist/ccip-DSCWXCSY-ZTHOXJV6.js +4 -0
  74. package/dist/ccip-DSCWXCSY-ZTHOXJV6.js.map +1 -0
  75. package/dist/ccip-V63HKYUC.js +5 -0
  76. package/dist/ccip-V63HKYUC.js.map +1 -0
  77. package/dist/chunk-5R4LXFCO.js +4078 -0
  78. package/dist/chunk-5R4LXFCO.js.map +1 -0
  79. package/dist/chunk-BYTNVMX7.js +369 -0
  80. package/dist/chunk-BYTNVMX7.js.map +1 -0
  81. package/dist/chunk-O4JCFUFK.js +3974 -0
  82. package/dist/chunk-O4JCFUFK.js.map +1 -0
  83. package/dist/chunk-PR4QN5HX.js +39 -0
  84. package/dist/chunk-PR4QN5HX.js.map +1 -0
  85. package/dist/flash-liquidity/assets.d.ts +21 -0
  86. package/dist/flash-liquidity/assets.d.ts.map +1 -0
  87. package/dist/flash-liquidity/fetchLiquidity.d.ts +4 -0
  88. package/dist/flash-liquidity/fetchLiquidity.d.ts.map +1 -0
  89. package/dist/flash-liquidity/index.d.ts +3 -0
  90. package/dist/flash-liquidity/index.d.ts.map +1 -0
  91. package/dist/flash-liquidity/types.d.ts +24 -0
  92. package/dist/flash-liquidity/types.d.ts.map +1 -0
  93. package/dist/flash-liquidity/utils.d.ts +12 -0
  94. package/dist/flash-liquidity/utils.d.ts.map +1 -0
  95. package/dist/index.d.ts +8 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +24454 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/lending/aave-v2-type/misc.d.ts +8 -0
  100. package/dist/lending/aave-v2-type/misc.d.ts.map +1 -0
  101. package/dist/lending/aave-v2-type/publicCallBuild.d.ts +7 -0
  102. package/dist/lending/aave-v2-type/publicCallBuild.d.ts.map +1 -0
  103. package/dist/lending/aave-v2-type/publicCallParse.d.ts +8 -0
  104. package/dist/lending/aave-v2-type/publicCallParse.d.ts.map +1 -0
  105. package/dist/lending/aave-v3-type/publicCallBuild.d.ts +5 -0
  106. package/dist/lending/aave-v3-type/publicCallBuild.d.ts.map +1 -0
  107. package/dist/lending/aave-v3-type/publicCallParse.d.ts +9 -0
  108. package/dist/lending/aave-v3-type/publicCallParse.d.ts.map +1 -0
  109. package/dist/lending/addresses/aave.d.ts +10 -0
  110. package/dist/lending/addresses/aave.d.ts.map +1 -0
  111. package/dist/lending/addresses/aaveV2.d.ts +6 -0
  112. package/dist/lending/addresses/aaveV2.d.ts.map +1 -0
  113. package/dist/lending/addresses/aurelius.d.ts +12 -0
  114. package/dist/lending/addresses/aurelius.d.ts.map +1 -0
  115. package/dist/lending/addresses/compoundV3.d.ts +9 -0
  116. package/dist/lending/addresses/compoundV3.d.ts.map +1 -0
  117. package/dist/lending/addresses/contracts.d.ts +4 -0
  118. package/dist/lending/addresses/contracts.d.ts.map +1 -0
  119. package/dist/lending/addresses/hana.d.ts +6 -0
  120. package/dist/lending/addresses/hana.d.ts.map +1 -0
  121. package/dist/lending/addresses/index.d.ts +2 -0
  122. package/dist/lending/addresses/index.d.ts.map +1 -0
  123. package/dist/lending/addresses/init.d.ts +4 -0
  124. package/dist/lending/addresses/init.d.ts.map +1 -0
  125. package/dist/lending/addresses/lendle.d.ts +12 -0
  126. package/dist/lending/addresses/lendle.d.ts.map +1 -0
  127. package/dist/lending/addresses/meridian.d.ts +15 -0
  128. package/dist/lending/addresses/meridian.d.ts.map +1 -0
  129. package/dist/lending/addresses/takotako.d.ts +12 -0
  130. package/dist/lending/addresses/takotako.d.ts.map +1 -0
  131. package/dist/lending/compound-v3/publicCallBuild.d.ts +3 -0
  132. package/dist/lending/compound-v3/publicCallBuild.d.ts.map +1 -0
  133. package/dist/lending/compound-v3/publicCallParse.d.ts +8 -0
  134. package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -0
  135. package/dist/lending/fetchLender.d.ts +9 -0
  136. package/dist/lending/fetchLender.d.ts.map +1 -0
  137. package/dist/lending/fetchLenderAll.d.ts +9 -0
  138. package/dist/lending/fetchLenderAll.d.ts.map +1 -0
  139. package/dist/lending/fetchLenderExt.d.ts +9 -0
  140. package/dist/lending/fetchLenderExt.d.ts.map +1 -0
  141. package/dist/lending/index.d.ts +6 -0
  142. package/dist/lending/index.d.ts.map +1 -0
  143. package/dist/lending/init/publicCallBuild.d.ts +7 -0
  144. package/dist/lending/init/publicCallBuild.d.ts.map +1 -0
  145. package/dist/lending/init/publicCallParse.d.ts +11 -0
  146. package/dist/lending/init/publicCallParse.d.ts.map +1 -0
  147. package/dist/lending/meta/index.d.ts +19 -0
  148. package/dist/lending/meta/index.d.ts.map +1 -0
  149. package/dist/lending/morpho/chainsConfigs.d.ts +21 -0
  150. package/dist/lending/morpho/chainsConfigs.d.ts.map +1 -0
  151. package/dist/lending/morpho/constants/markets.d.ts +4 -0
  152. package/dist/lending/morpho/constants/markets.d.ts.map +1 -0
  153. package/dist/lending/morpho/convertPublic.d.ts +7 -0
  154. package/dist/lending/morpho/convertPublic.d.ts.map +1 -0
  155. package/dist/lending/morpho/fetchPublic.d.ts +3 -0
  156. package/dist/lending/morpho/fetchPublic.d.ts.map +1 -0
  157. package/dist/lending/morpho/getMarketsFromChain.d.ts +8 -0
  158. package/dist/lending/morpho/getMarketsFromChain.d.ts.map +1 -0
  159. package/dist/lending/morpho/publicCallBuild.d.ts +10 -0
  160. package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -0
  161. package/dist/lending/morpho/utils/evmParser.d.ts +22 -0
  162. package/dist/lending/morpho/utils/evmParser.d.ts.map +1 -0
  163. package/dist/lending/morpho/utils/mathLib.d.ts +125 -0
  164. package/dist/lending/morpho/utils/mathLib.d.ts.map +1 -0
  165. package/dist/lending/morpho/utils/parsers.d.ts +10 -0
  166. package/dist/lending/morpho/utils/parsers.d.ts.map +1 -0
  167. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts +4 -0
  168. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -0
  169. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts +8 -0
  170. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -0
  171. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts +4 -0
  172. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -0
  173. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts +8 -0
  174. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -0
  175. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts +9 -0
  176. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -0
  177. package/dist/lending/user-data/abis.d.ts +9200 -0
  178. package/dist/lending/user-data/abis.d.ts.map +1 -0
  179. package/dist/lending/user-data/compound-v3/index.d.ts +3 -0
  180. package/dist/lending/user-data/compound-v3/index.d.ts.map +1 -0
  181. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +4 -0
  182. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -0
  183. package/dist/lending/user-data/compound-v3/userCallParse.d.ts +8 -0
  184. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -0
  185. package/dist/lending/user-data/fetchUserData.d.ts +28 -0
  186. package/dist/lending/user-data/fetchUserData.d.ts.map +1 -0
  187. package/dist/lending/user-data/index.d.ts +2 -0
  188. package/dist/lending/user-data/index.d.ts.map +1 -0
  189. package/dist/lending/user-data/init/userCallBuild.d.ts +8 -0
  190. package/dist/lending/user-data/init/userCallBuild.d.ts.map +1 -0
  191. package/dist/lending/user-data/init/userCallParse.d.ts +8 -0
  192. package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -0
  193. package/dist/lending/user-data/morpho/decoder.d.ts +21 -0
  194. package/dist/lending/user-data/morpho/decoder.d.ts.map +1 -0
  195. package/dist/lending/user-data/morpho/morphoLib.d.ts +5 -0
  196. package/dist/lending/user-data/morpho/morphoLib.d.ts.map +1 -0
  197. package/dist/lending/user-data/morpho/types.d.ts +12 -0
  198. package/dist/lending/user-data/morpho/types.d.ts.map +1 -0
  199. package/dist/lending/user-data/morpho/userCallBuild.d.ts +8 -0
  200. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -0
  201. package/dist/lending/user-data/morpho/userCallParse.d.ts +10 -0
  202. package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -0
  203. package/dist/lending/user-data/utils/createGeneralUserState.d.ts +45 -0
  204. package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -0
  205. package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts +16 -0
  206. package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts.map +1 -0
  207. package/dist/lending/user-data/utils/formatting/generalFormatters.d.ts +55 -0
  208. package/dist/lending/user-data/utils/formatting/generalFormatters.d.ts.map +1 -0
  209. package/dist/lending/user-data/utils/formatting/index.d.ts +2 -0
  210. package/dist/lending/user-data/utils/formatting/index.d.ts.map +1 -0
  211. package/dist/lending/user-data/utils/index.d.ts +8 -0
  212. package/dist/lending/user-data/utils/index.d.ts.map +1 -0
  213. package/dist/lending-pairs/computeLendingPairs.d.ts +52 -0
  214. package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -0
  215. package/dist/lending-pairs/index.d.ts +2 -0
  216. package/dist/lending-pairs/index.d.ts.map +1 -0
  217. package/dist/prices/defillama/index.d.ts +3 -0
  218. package/dist/prices/defillama/index.d.ts.map +1 -0
  219. package/dist/prices/index.d.ts +4 -0
  220. package/dist/prices/index.d.ts.map +1 -0
  221. package/dist/prices/main-prices/addresses/api3.d.ts +6 -0
  222. package/dist/prices/main-prices/addresses/api3.d.ts.map +1 -0
  223. package/dist/prices/main-prices/addresses/chainlink.d.ts +734 -0
  224. package/dist/prices/main-prices/addresses/chainlink.d.ts.map +1 -0
  225. package/dist/prices/main-prices/fetchOracleData.d.ts +17 -0
  226. package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -0
  227. package/dist/prices/main-prices/index.d.ts +2 -0
  228. package/dist/prices/main-prices/index.d.ts.map +1 -0
  229. package/dist/prices/pendle/fetchPendlePrices.d.ts +47 -0
  230. package/dist/prices/pendle/fetchPendlePrices.d.ts.map +1 -0
  231. package/dist/prices/pendle/index.d.ts +2 -0
  232. package/dist/prices/pendle/index.d.ts.map +1 -0
  233. package/dist/secp256k1-XP7IUONI.js +2208 -0
  234. package/dist/secp256k1-XP7IUONI.js.map +1 -0
  235. package/dist/types/apiReturnType.d.ts +72 -0
  236. package/dist/types/apiReturnType.d.ts.map +1 -0
  237. package/dist/types/general.d.ts +18 -0
  238. package/dist/types/general.d.ts.map +1 -0
  239. package/dist/types/index.d.ts +6 -0
  240. package/dist/types/index.d.ts.map +1 -0
  241. package/dist/types/lender/aave-v2-types.d.ts +80 -0
  242. package/dist/types/lender/aave-v2-types.d.ts.map +1 -0
  243. package/dist/types/lender/aave-v3-types.d.ts +158 -0
  244. package/dist/types/lender/aave-v3-types.d.ts.map +1 -0
  245. package/dist/types/lender/compound-v3-types.d.ts +32 -0
  246. package/dist/types/lender/compound-v3-types.d.ts.map +1 -0
  247. package/dist/types/lender/init-types.d.ts +40 -0
  248. package/dist/types/lender/init-types.d.ts.map +1 -0
  249. package/dist/types/lender/morpho-types.d.ts +110 -0
  250. package/dist/types/lender/morpho-types.d.ts.map +1 -0
  251. package/dist/types/lenderTypes.d.ts +229 -0
  252. package/dist/types/lenderTypes.d.ts.map +1 -0
  253. package/dist/types/misc.d.ts +47 -0
  254. package/dist/types/misc.d.ts.map +1 -0
  255. package/dist/types/providers.d.ts +12 -0
  256. package/dist/types/providers.d.ts.map +1 -0
  257. package/dist/utils/constants.d.ts +7 -0
  258. package/dist/utils/constants.d.ts.map +1 -0
  259. package/dist/utils/index.d.ts +20 -0
  260. package/dist/utils/index.d.ts.map +1 -0
  261. package/dist/utils/multicall.d.ts +6 -0
  262. package/dist/utils/multicall.d.ts.map +1 -0
  263. package/dist/utils/parsing.d.ts +17 -0
  264. package/dist/utils/parsing.d.ts.map +1 -0
  265. package/dist/yields/index.d.ts +21 -0
  266. package/dist/yields/index.d.ts.map +1 -0
  267. package/dist/yields/yieldTypes.d.ts +76 -0
  268. package/dist/yields/yieldTypes.d.ts.map +1 -0
  269. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/abis/aave-v2/ProtocolDataProvider.ts","../src/abis/lendle/IncentivesController.ts","../src/abis/aurelius/Rewarder.ts","../src/abis/oracle/UniswapV2Pair.ts","../src/abis/aave/AavePoolV3Upgraded.ts","../src/abis/aave/AaveV3ProtocolDataProvider.ts","../src/abis/init/InitLens.ts","../src/abis/compound-v3/Comet.ts","../src/abis/compound-v3/CometExt.ts","../src/abis/compound-v3/IrGetter.ts","../../../node_modules/.pnpm/@1delta+lender-registry@0.0.7/node_modules/@1delta/lender-registry/dist/index.mjs","../../../node_modules/.pnpm/@1delta+data-sdk@0.0.8/node_modules/@1delta/data-sdk/dist/index.mjs","../src/utils/index.ts","../src/assets/index.ts","../src/lending/aave-v2-type/publicCallBuild.ts","../../../node_modules/.pnpm/@1delta+chain-registry@0.0.2/node_modules/@1delta/chain-registry/dist/index.mjs","../src/lending/aave-v3-type/publicCallBuild.ts","../src/lending/addresses/init.ts","../src/lending/init/publicCallBuild.ts","../src/lending/addresses/compoundV3.ts","../src/lending/compound-v3/publicCallBuild.ts","../../../node_modules/.pnpm/viem@2.38.0_typescript@5.9.3_zod@3.25.76/node_modules/viem/errors/unit.ts","../../../node_modules/.pnpm/viem@2.38.0_typescript@5.9.3_zod@3.25.76/node_modules/viem/utils/unit/parseUnits.ts","../../../node_modules/.pnpm/viem@2.38.0_typescript@5.9.3_zod@3.25.76/node_modules/viem/constants/address.ts","../src/utils/parsing.ts","../src/lending/aave-v2-type/publicCallParse.ts","../src/lending/aave-v3-type/publicCallParse.ts","../src/lending/init/publicCallParse.ts","../src/lending/compound-v3/publicCallParse.ts","../src/abis/aave-v3/AavePoolLegacy.ts","../src/abis/aave-v3/AavePoolDataProviderLegacy.ts","../src/abis/aave-v2/YLDR.ts","../src/lending/user-data/morpho/userCallBuild.ts","../src/lending/morpho/constants/markets.ts","../src/lending/user-data/utils/formatting/generalFormatters.ts","../src/lending/user-data/utils/createGeneralUserState.ts","../src/lending/user-data/utils/createMultiAccountStyleUserState.ts","../src/lending/user-data/utils/index.ts","../src/lending/morpho/utils/parsers.ts","../src/lending/morpho/convertPublic.ts","../src/lending/morpho/fetchPublic.ts","../src/lending/morpho/publicCallBuild.ts","../src/lending/morpho/utils/evmParser.ts","../src/lending/morpho/utils/mathLib.ts","../src/lending/morpho/getMarketsFromChain.ts","../src/abis/morpho/lens.ts","../src/lending/fetchLender.ts","../src/lending/fetchLenderExt.ts","../src/lending/fetchLenderAll.ts","../src/utils/multicall.ts","../src/types/lenderTypes.ts","../src/lending/user-data/aave-v2-type/userCallBuild.ts","../src/lending/user-data/aave-v3-type/userCallBuild.ts","../src/lending/user-data/init/userCallBuild.ts","../src/lending/user-data/compound-v3/userCallBuild.ts","../src/abis/aave/AavePoolAndDataProvider.ts","../src/abis/aave/VariableDebtToken.ts","../src/abis/lendle/MultiFeeDistribution.ts","../src/abis/meridian/PullRewardsIncentivesController.ts","../src/abis/compound-v3/CometRewards.ts","../src/abis/aave-v3/YLDR.ts","../src/abis/morpho/blue.ts","../src/lending/user-data/abis.ts","../src/lending/user-data/aave-v2-type/userCallParse.ts","../src/lending/user-data/aave-v3-type/userCallParse.ts","../src/lending/user-data/init/userCallParse.ts","../src/lending/user-data/compound-v3/userCallParse.ts","../src/lending/user-data/aave-v3-type/userCallParseYldr.ts","../src/lending/user-data/morpho/decoder.ts","../src/lending/user-data/morpho/userCallParse.ts","../src/lending/user-data/fetchUserData.ts","../src/lending/meta/index.ts","../src/assets/liquidityThresholds.ts","../src/lending-pairs/computeLendingPairs.ts","../src/prices/pendle/fetchPendlePrices.ts","../src/yields/yieldTypes.ts","../src/yields/index.ts","../src/prices/defillama/index.ts","../src/abis/oracle/AaveOracle.ts","../src/abis/oracle/ChainLinkAggregator.ts","../src/abis/oracle/Api3Oracle.ts","../src/abis/oracle/RWADynamicOracle.ts","../src/prices/main-prices/addresses/api3.ts","../src/prices/main-prices/addresses/chainlink.ts","../src/abis/oracle/ProxyOracle.ts","../src/abis/oracle/UniV3.ts","../src/prices/main-prices/fetchOracleData.ts","../../../node_modules/.pnpm/@1delta+dex-registry@0.0.87/node_modules/@1delta/dex-registry/dist/index.mjs","../src/flash-liquidity/assets.ts","../src/abis/flashloan-united/flashAbi.ts","../src/utils/constants.ts","../src/flash-liquidity/fetchLiquidity.ts","../src/flash-liquidity/utils.ts"],"names":["chains","data","_","decimals","lodash","SECONDS_PER_YEAR","apyToApr","balanceData","aprData","MathLib","linearAdaptation","multicallRetry","getEvmClient","getAbi","depositsRaw","deposits","createAaveV3Entry","query","aavePools","aaveOracles","morphoOracles","compoundV3Pools","morphoPools","aaveReserves","compoundV2Reserves","compoundV3Reserves","initConfig","aaveTokens","LENDER_MODE_NO_MODE","cf","kHYPE","zeroAddress","uniq"],"mappings":"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","file":"index.js","sourcesContent":["export const ProtocolDataProviderAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getConfiguration\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"type\": \"constructor\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"addressesProvider\",\n \"internalType\": \"contract ILendingPoolAddressesProvider\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"contract ILendingPoolAddressesProvider\"\n }\n ],\n \"name\": \"ADDRESSES_PROVIDER\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"tuple[]\",\n \"name\": \"\",\n \"internalType\": \"struct AaveProtocolDataProvider.TokenData[]\",\n \"components\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"address\"\n }\n ]\n }\n ],\n \"name\": \"getAllATokens\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"tuple[]\",\n \"name\": \"\",\n \"internalType\": \"struct AaveProtocolDataProvider.TokenData[]\",\n \"components\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"address\"\n }\n ]\n }\n ],\n \"name\": \"getAllReservesTokens\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"decimals\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"ltv\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"liquidationThreshold\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"liquidationBonus\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"reserveFactor\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"bool\",\n \"name\": \"usageAsCollateralEnabled\",\n \"internalType\": \"bool\"\n },\n {\n \"type\": \"bool\",\n \"name\": \"borrowingEnabled\",\n \"internalType\": \"bool\"\n },\n {\n \"type\": \"bool\",\n \"name\": \"stableBorrowRateEnabled\",\n \"internalType\": \"bool\"\n },\n {\n \"type\": \"bool\",\n \"name\": \"isActive\",\n \"internalType\": \"bool\"\n },\n {\n \"type\": \"bool\",\n \"name\": \"isFrozen\",\n \"internalType\": \"bool\"\n }\n ],\n \"name\": \"getReserveConfigurationData\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"asset\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"availableLiquidity\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"totalStableDebt\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"totalVariableDebt\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"liquidityRate\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"variableBorrowRate\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"stableBorrowRate\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"averageStableBorrowRate\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"liquidityIndex\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"variableBorrowIndex\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint40\",\n \"name\": \"lastUpdateTimestamp\",\n \"internalType\": \"uint40\"\n }\n ],\n \"name\": \"getReserveData\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"asset\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"aTokenAddress\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"stableDebtTokenAddress\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"variableDebtTokenAddress\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"getReserveTokensAddresses\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"asset\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"currentATokenBalance\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"currentStableDebt\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"currentVariableDebt\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"principalStableDebt\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"scaledVariableDebt\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"stableBorrowRate\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"liquidityRate\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint40\",\n \"name\": \"stableRateLastUpdated\",\n \"internalType\": \"uint40\"\n },\n {\n \"type\": \"bool\",\n \"name\": \"usageAsCollateralEnabled\",\n \"internalType\": \"bool\"\n }\n ],\n \"name\": \"getUserReserveData\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"asset\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"internalType\": \"address\"\n }\n ]\n }\n] as const","export const IncentivesControllerAbi = [\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"VERSION\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"addPool\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_token\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"_allocPoint\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"batchUpdateAllocPoint\",\n \"inputs\": [\n {\n \"type\": \"address[]\",\n \"name\": \"_tokens\",\n \"internalType\": \"address[]\"\n },\n {\n \"type\": \"uint256[]\",\n \"name\": \"_allocPoints\",\n \"internalType\": \"uint256[]\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"claim\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_user\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address[]\",\n \"name\": \"_tokens\",\n \"internalType\": \"address[]\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"claimReceiver\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256[]\",\n \"name\": \"\",\n \"internalType\": \"uint256[]\"\n }\n ],\n \"name\": \"claimableReward\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_user\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address[]\",\n \"name\": \"_tokens\",\n \"internalType\": \"address[]\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint128\",\n \"name\": \"startTimeOffset\",\n \"internalType\": \"uint128\"\n },\n {\n \"type\": \"uint128\",\n \"name\": \"rewardsPerSecond\",\n \"internalType\": \"uint128\"\n }\n ],\n \"name\": \"emissionSchedule\",\n \"inputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"handleAction\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_user\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"_balance\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"_totalSupply\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"initialize\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"owner\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint128[]\",\n \"name\": \"_startTimeOffset\",\n \"internalType\": \"uint128[]\"\n },\n {\n \"type\": \"uint128[]\",\n \"name\": \"_rewardsPerSecond\",\n \"internalType\": \"uint128[]\"\n },\n {\n \"type\": \"address\",\n \"name\": \"_poolConfigurator\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"_rewardMinter\",\n \"internalType\": \"contract IMultiFeeDistribution\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"_maxMintable\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"_startTime\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"maxMintableTokens\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"mintedTokens\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"owner\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"poolConfigurator\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"totalSupply\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"allocPoint\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"lastRewardTime\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"accRewardPerShare\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"address\",\n \"name\": \"onwardIncentives\",\n \"internalType\": \"contract IOnwardIncentivesController\"\n }\n ],\n \"name\": \"poolInfo\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"poolLength\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"registeredTokens\",\n \"inputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"renounceOwnership\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"contract IMultiFeeDistribution\"\n }\n ],\n \"name\": \"rewardMinter\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"rewardsPerSecond\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"setClaimReceiver\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_user\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"_receiver\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"setOnwardIncentives\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_token\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"_incentives\",\n \"internalType\": \"contract IOnwardIncentivesController\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"startTime\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"totalAllocPoint\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"newOwner\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"userBaseClaimable\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"rewardDebt\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"userInfo\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"BalanceUpdated\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"token\",\n \"indexed\": true\n },\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"balance\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"totalSupply\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"previousOwner\",\n \"indexed\": true\n },\n {\n \"type\": \"address\",\n \"name\": \"newOwner\",\n \"indexed\": true\n }\n ],\n \"anonymous\": false\n }\n] as const","export const RewarderAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getAllUserRewardsBalance\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"rewardTokens\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"unclaimedAmounts\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"reward\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserUnclaimedRewardsFromStorage\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"claimAllRewardsToSelf\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"rewardTokens\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"claimedAmounts\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"reward\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getRewardsData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const","export const UniswapV2PairAbi = [\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"bytes32\",\n \"name\": \"\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"name\": \"DOMAIN_SEPARATOR\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"MINIMUM_LIQUIDITY\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"bytes32\",\n \"name\": \"\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"name\": \"PERMIT_TYPEHASH\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"allowance\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [\n {\n \"type\": \"bool\",\n \"name\": \"\",\n \"internalType\": \"bool\"\n }\n ],\n \"name\": \"approve\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"spender\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"value\",\n \"internalType\": \"uint256\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"balanceOf\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"amount0\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount1\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"burn\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"internalType\": \"address\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint8\",\n \"name\": \"\",\n \"internalType\": \"uint8\"\n }\n ],\n \"name\": \"decimals\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"factory\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint112\",\n \"name\": \"_reserve0\",\n \"internalType\": \"uint112\"\n },\n {\n \"type\": \"uint112\",\n \"name\": \"_reserve1\",\n \"internalType\": \"uint112\"\n },\n {\n \"type\": \"uint32\",\n \"name\": \"_blockTimestampLast\",\n \"internalType\": \"uint32\"\n }\n ],\n \"name\": \"getReserves\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"initialize\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_token0\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"_token1\",\n \"internalType\": \"address\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"kLast\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"liquidity\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"internalType\": \"address\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"string\",\n \"name\": \"\",\n \"internalType\": \"string\"\n }\n ],\n \"name\": \"name\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"nonces\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"permit\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"owner\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"spender\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"value\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"deadline\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint8\",\n \"name\": \"v\",\n \"internalType\": \"uint8\"\n },\n {\n \"type\": \"bytes32\",\n \"name\": \"r\",\n \"internalType\": \"bytes32\"\n },\n {\n \"type\": \"bytes32\",\n \"name\": \"s\",\n \"internalType\": \"bytes32\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"price0CumulativeLast\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"price1CumulativeLast\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"skim\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"internalType\": \"address\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"swap\",\n \"inputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"amount0Out\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount1Out\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"bytes\",\n \"name\": \"data\",\n \"internalType\": \"bytes\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"string\",\n \"name\": \"\",\n \"internalType\": \"string\"\n }\n ],\n \"name\": \"symbol\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"sync\",\n \"inputs\": [],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"token0\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"token1\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"totalSupply\",\n \"inputs\": [],\n \"constant\": true\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [\n {\n \"type\": \"bool\",\n \"name\": \"\",\n \"internalType\": \"bool\"\n }\n ],\n \"name\": \"transfer\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"value\",\n \"internalType\": \"uint256\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [\n {\n \"type\": \"bool\",\n \"name\": \"\",\n \"internalType\": \"bool\"\n }\n ],\n \"name\": \"transferFrom\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"from\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"value\",\n \"internalType\": \"uint256\"\n }\n ],\n \"constant\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Approval\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"owner\",\n \"indexed\": true\n },\n {\n \"type\": \"address\",\n \"name\": \"spender\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"value\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Burn\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"sender\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount0\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount1\",\n \"indexed\": false\n },\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"indexed\": true\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Mint\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"sender\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount0\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount1\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Swap\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"sender\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount0In\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount1In\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount0Out\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount1Out\",\n \"indexed\": false\n },\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"indexed\": true\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Sync\",\n \"inputs\": [\n {\n \"type\": \"uint112\",\n \"name\": \"reserve0\",\n \"indexed\": false\n },\n {\n \"type\": \"uint112\",\n \"name\": \"reserve1\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Transfer\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"from\",\n \"indexed\": true\n },\n {\n \"type\": \"address\",\n \"name\": \"to\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"value\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n }\n] as const","export const AavePoolV3UpgradedAbi = [\n {\n \"inputs\": [],\n \"name\": \"ADDRESSES_PROVIDER\",\n \"outputs\": [\n {\n \"internalType\": \"contract IPoolAddressesProvider\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"BRIDGE_PROTOCOL_FEE\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"FLASHLOAN_PREMIUM_TOTAL\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"FLASHLOAN_PREMIUM_TO_PROTOCOL\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_NUMBER_RESERVES\",\n \"outputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"\",\n \"type\": \"uint16\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"POOL_REVISION\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"fee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"backUnbacked\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"borrow\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n },\n {\n \"components\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"ltv\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"label\",\n \"type\": \"string\"\n }\n ],\n \"internalType\": \"struct DataTypes.EModeCategoryBaseConfiguration\",\n \"name\": \"category\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"configureEModeCategory\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"borrowableBitmap\",\n \"type\": \"uint128\"\n }\n ],\n \"name\": \"configureEModeCategoryBorrowableBitmap\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"collateralBitmap\",\n \"type\": \"uint128\"\n }\n ],\n \"name\": \"configureEModeCategoryCollateralBitmap\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"deposit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"dropReserve\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"balanceFromBefore\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"balanceToBefore\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"finalizeTransfer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"receiverAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"interestRateModes\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"flashLoan\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"receiverAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"flashLoanSimple\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getBorrowLogic\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getBridgeLogic\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getConfiguration\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getEModeCategoryBorrowableBitmap\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getEModeCategoryCollateralBitmap\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getEModeCategoryCollateralConfig\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"ltv\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint16\"\n }\n ],\n \"internalType\": \"struct DataTypes.CollateralConfig\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getEModeCategoryData\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"ltv\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"priceSource\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"label\",\n \"type\": \"string\"\n }\n ],\n \"internalType\": \"struct DataTypes.EModeCategoryLegacy\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getEModeCategoryLabel\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getEModeLogic\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getFlashLoanLogic\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getLiquidationGracePeriod\",\n \"outputs\": [\n {\n \"internalType\": \"uint40\",\n \"name\": \"\",\n \"type\": \"uint40\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getLiquidationLogic\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getPoolLogic\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"id\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"getReserveAddressById\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveDataExtended\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"configuration\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"liquidityIndex\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"currentLiquidityRate\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"variableBorrowIndex\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"currentVariableBorrowRate\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"__deprecatedStableBorrowRate\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"lastUpdateTimestamp\",\n \"type\": \"uint40\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"id\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"liquidationGracePeriodUntil\",\n \"type\": \"uint40\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"aTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"__deprecatedStableDebtTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"variableDebtTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"interestRateStrategyAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"accruedToTreasury\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"unbacked\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"isolationModeTotalDebt\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"virtualUnderlyingBalance\",\n \"type\": \"uint128\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveData\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveNormalizedIncome\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveNormalizedVariableDebt\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getReservesCount\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getReservesList\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getSupplyLogic\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserAccountData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalCollateralBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalDebtBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"availableBorrowsBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentLiquidationThreshold\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"ltv\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"healthFactor\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserConfiguration\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.UserConfigurationMap\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserEMode\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getVirtualUnderlyingBalance\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"aTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"variableDebtAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"interestRateStrategyAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initReserve\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"contract IPoolAddressesProvider\",\n \"name\": \"provider\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"collateralAsset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"debtAsset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"debtToCover\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"receiveAToken\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"liquidationCall\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"mintToTreasury\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"mintUnbacked\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"repay\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"repayWithATokens\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"permitV\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitR\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitS\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"repayWithPermit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"rescueTokens\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"resetIsolationModeTotalDebt\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"configuration\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"setConfiguration\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"until\",\n \"type\": \"uint40\"\n }\n ],\n \"name\": \"setLiquidationGracePeriod\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"rateStrategyAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setReserveInterestRateStrategyAddress\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"categoryId\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"setUserEMode\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"useAsCollateral\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setUserUseReserveAsCollateral\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"supply\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"permitV\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitR\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitS\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"supplyWithPermit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"syncIndexesState\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"syncRatesState\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"protocolFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"updateBridgeProtocolFee\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"flashLoanPremiumTotal\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"flashLoanPremiumToProtocol\",\n \"type\": \"uint128\"\n }\n ],\n \"name\": \"updateFlashloanPremiums\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const","export const AaveV3ProtocolDataProviderAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"contract IPoolAddressesProvider\",\n \"name\": \"addressesProvider\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [],\n \"name\": \"ADDRESSES_PROVIDER\",\n \"outputs\": [\n {\n \"internalType\": \"contract IPoolAddressesProvider\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getATokenTotalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getAllATokens\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"internalType\": \"struct IPoolDataProvider.TokenData[]\",\n \"name\": \"\",\n \"type\": \"tuple[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getAllReservesTokens\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"internalType\": \"struct IPoolDataProvider.TokenData[]\",\n \"name\": \"\",\n \"type\": \"tuple[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getDebtCeiling\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getDebtCeilingDecimals\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getFlashLoanEnabled\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getInterestRateStrategyAddress\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"irStrategyAddress\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getIsVirtualAccActive\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getLiquidationProtocolFee\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"isPaused\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveCaps\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"borrowCap\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"supplyCap\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveConfigurationData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"decimals\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"ltv\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"reserveFactor\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"usageAsCollateralEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"borrowingEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"stableBorrowRateEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isActive\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isFrozen\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"unbacked\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"accruedToTreasuryScaled\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalAToken\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalStableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalVariableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidityRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"variableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"stableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"averageStableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidityIndex\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"variableBorrowIndex\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"lastUpdateTimestamp\",\n \"type\": \"uint40\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveTokensAddresses\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"aTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"stableDebtTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"variableDebtTokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getSiloedBorrowing\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getTotalDebt\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUnbackedMintCap\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserReserveData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentATokenBalance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentStableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentVariableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"principalStableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"scaledVariableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"stableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidityRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"stableRateLastUpdated\",\n \"type\": \"uint40\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"usageAsCollateralEnabled\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getVirtualUnderlyingBalance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const","export const InitLensAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"mode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"getMarketData\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"mode\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"underlying\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"collateralFactor\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"borrowFactor\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxHealthAfterLiq\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"supplyCap\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"borrowCap\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"canMint\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"canBurn\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"canBorrow\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"canRepay\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"canFlash\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalSupply\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"supplyRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"borrowRate\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct MarketData[]\",\n \"name\": \"data\",\n \"type\": \"tuple[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"viewer\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserPositionData\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"posId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"mode\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"approved\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isApprovedForAll\",\n \"type\": \"bool\"\n }\n ],\n \"internalType\": \"struct PosMeta[]\",\n \"name\": \"posMeta\",\n \"type\": \"tuple[]\"\n },\n {\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"underlying\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct PosData[][]\",\n \"name\": \"collaterals\",\n \"type\": \"tuple[][]\"\n },\n {\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"underlying\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct PosData[][]\",\n \"name\": \"debts\",\n \"type\": \"tuple[][]\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const","export const CometAbi = [\n {\n \"stateMutability\": \"payable\",\n \"type\": \"fallback\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"absorber\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address[]\",\n \"name\": \"accounts\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"absorb\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"accrueAccount\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"manager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"approveThis\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"balanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseBorrowMin\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseMinForRewards\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseToken\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseTokenPriceFeed\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseTrackingBorrowSpeed\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseTrackingSupplySpeed\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"borrowBalanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"borrowKink\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"borrowPerSecondInterestRateBase\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"borrowPerSecondInterestRateSlopeHigh\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"borrowPerSecondInterestRateSlopeLow\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"minAmount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"baseAmount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"buyCollateral\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"extensionDelegate\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"i\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getAssetInfo\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"offset\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"priceFeed\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"scale\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"borrowCollateralFactor\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"liquidateCollateralFactor\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"liquidationFactor\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"supplyCap\",\n \"type\": \"uint128\"\n }\n ],\n \"internalType\": \"struct CometCore.AssetInfo\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getAssetInfoByAddress\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"offset\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"priceFeed\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"scale\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"borrowCollateralFactor\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"liquidateCollateralFactor\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"liquidationFactor\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"supplyCap\",\n \"type\": \"uint128\"\n }\n ],\n \"internalType\": \"struct CometCore.AssetInfo\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"utilization\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getBorrowRate\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getCollateralReserves\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"priceFeed\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getPrice\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getReserves\",\n \"outputs\": [\n {\n \"internalType\": \"int256\",\n \"name\": \"\",\n \"type\": \"int256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"utilization\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getSupplyRate\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getUtilization\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"governor\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"manager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"hasPermission\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"initializeStorage\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isAbsorbPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isAllowed\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isBorrowCollateralized\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isBuyPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isLiquidatable\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isSupplyPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isTransferPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"isWithdrawPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"liquidatorPoints\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"numAbsorbs\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"numAbsorbed\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"approxSpend\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"_reserved\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"numAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"supplyPaused\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"transferPaused\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"withdrawPaused\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"absorbPaused\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"buyPaused\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"pause\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"pauseGuardian\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"baseAmount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"quoteCollateral\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"storeFrontPriceFactor\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"supply\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"dst\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"supplyFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"supplyKink\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"supplyPerSecondInterestRateBase\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"supplyPerSecondInterestRateSlopeHigh\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"supplyPerSecondInterestRateSlopeLow\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"dst\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"supplyTo\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"targetReserves\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalBorrow\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"totalsCollateral\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"totalSupplyAsset\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"_reserved\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"trackingIndexScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"dst\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transfer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"dst\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transferAsset\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"src\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"dst\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transferAssetFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"src\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"dst\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transferFrom\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userBasic\",\n \"outputs\": [\n {\n \"internalType\": \"int104\",\n \"name\": \"principal\",\n \"type\": \"int104\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseTrackingIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseTrackingAccrued\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"assetsIn\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"_reserved\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userCollateral\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"balance\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"_reserved\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userNonce\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"withdraw\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"src\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"withdrawFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"withdrawReserves\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"withdrawTo\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"manager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isAllowed_\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"allow\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"manager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isAllowed_\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"expiry\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"allowBySig\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"allowance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"approve\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseAccrualScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseIndexScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"baseTrackingAccrued\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"collateralBalanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"factorScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"manager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"hasPermission\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isAllowed\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"liquidatorPoints\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"numAbsorbs\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"numAbsorbed\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"approxSpend\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"_reserved\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"maxAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"priceScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalsBasic\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseSupplyIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseBorrowIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"trackingSupplyIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"trackingBorrowIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint104\",\n \"name\": \"totalSupplyBase\",\n \"type\": \"uint104\"\n },\n {\n \"internalType\": \"uint104\",\n \"name\": \"totalBorrowBase\",\n \"type\": \"uint104\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"lastAccrualTime\",\n \"type\": \"uint40\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"pauseFlags\",\n \"type\": \"uint8\"\n }\n ],\n \"internalType\": \"struct CometStorage.TotalsBasic\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"totalsCollateral\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"totalSupplyAsset\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"_reserved\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userBasic\",\n \"outputs\": [\n {\n \"internalType\": \"int104\",\n \"name\": \"principal\",\n \"type\": \"int104\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseTrackingIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseTrackingAccrued\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"assetsIn\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"_reserved\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userCollateral\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"balance\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"_reserved\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userNonce\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"version\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const ","export const CometExtAbi = [\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Approval\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"manager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isAllowed_\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"allow\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"manager\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isAllowed_\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"expiry\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"allowBySig\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"allowance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"approve\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseAccrualScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"baseIndexScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"baseTrackingAccrued\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"collateralBalanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"factorScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"manager\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"hasPermission\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isAllowed\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"liquidatorPoints\",\n \"outputs\": [\n {\n \"internalType\": \"uint32\",\n \"name\": \"numAbsorbs\",\n \"type\": \"uint32\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"numAbsorbed\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"approxSpend\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"_reserved\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"maxAssets\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"priceScale\",\n \"outputs\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"\",\n \"type\": \"uint64\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalsBasic\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseSupplyIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseBorrowIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"trackingSupplyIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"trackingBorrowIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint104\",\n \"name\": \"totalSupplyBase\",\n \"type\": \"uint104\"\n },\n {\n \"internalType\": \"uint104\",\n \"name\": \"totalBorrowBase\",\n \"type\": \"uint104\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"lastAccrualTime\",\n \"type\": \"uint40\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"pauseFlags\",\n \"type\": \"uint8\"\n }\n ],\n \"internalType\": \"struct CometStorage.TotalsBasic\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"totalsCollateral\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"totalSupplyAsset\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"_reserved\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userBasic\",\n \"outputs\": [\n {\n \"internalType\": \"int104\",\n \"name\": \"principal\",\n \"type\": \"int104\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseTrackingIndex\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"baseTrackingAccrued\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"assetsIn\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"_reserved\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userCollateral\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"balance\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"_reserved\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"userNonce\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"version\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const","export const IrgetterAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"comet\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getCometInterest\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"borrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"supplyRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"utilization\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const","// src/lenders.ts\nvar Lender = /* @__PURE__ */ ((Lender2) => {\n Lender2[\"AAVE_V3\"] = \"AAVE_V3\";\n Lender2[\"AAVE_V3_PRIME\"] = \"AAVE_V3_PRIME\";\n Lender2[\"AAVE_V3_ETHER_FI\"] = \"AAVE_V3_ETHER_FI\";\n Lender2[\"AAVE_V3_HORIZON\"] = \"AAVE_V3_HORIZON\";\n Lender2[\"AAVE_V2\"] = \"AAVE_V2\";\n Lender2[\"AURELIUS\"] = \"AURELIUS\";\n Lender2[\"LENDLE\"] = \"LENDLE\";\n Lender2[\"LENDLE_CMETH\"] = \"LENDLE_CMETH\";\n Lender2[\"LENDLE_SUSDE\"] = \"LENDLE_SUSDE\";\n Lender2[\"LENDLE_PT_CMETH\"] = \"LENDLE_PT_CMETH\";\n Lender2[\"MERIDIAN\"] = \"MERIDIAN\";\n Lender2[\"TAKOTAKO\"] = \"TAKOTAKO\";\n Lender2[\"TAKOTAKO_ETH\"] = \"TAKOTAKO_ETH\";\n Lender2[\"HANA\"] = \"HANA\";\n Lender2[\"YLDR\"] = \"YLDR\";\n Lender2[\"MAGSIN\"] = \"MAGSIN\";\n Lender2[\"SPARK\"] = \"SPARK\";\n Lender2[\"NEREUS\"] = \"NEREUS\";\n Lender2[\"KINZA\"] = \"KINZA\";\n Lender2[\"GRANARY\"] = \"GRANARY\";\n Lender2[\"LORE\"] = \"LORE\";\n Lender2[\"LENDOS\"] = \"LENDOS\";\n Lender2[\"IRONCLAD\"] = \"IRONCLAD\";\n Lender2[\"MOLEND\"] = \"MOLEND\";\n Lender2[\"SEISMIC\"] = \"SEISMIC\";\n Lender2[\"POLTER\"] = \"POLTER\";\n Lender2[\"AGAVE\"] = \"AGAVE\";\n Lender2[\"MOOLA\"] = \"MOOLA\";\n Lender2[\"XLEND\"] = \"XLEND\";\n Lender2[\"KLAP\"] = \"KLAP\";\n Lender2[\"RHOMBUS\"] = \"RHOMBUS\";\n Lender2[\"RMM\"] = \"RMM\";\n Lender2[\"KLAYBANK\"] = \"KLAYBANK\";\n Lender2[\"SAKE\"] = \"SAKE\";\n Lender2[\"SAKE_ASTAR\"] = \"SAKE_ASTAR\";\n Lender2[\"LAYERBANK_V3\"] = \"LAYERBANK_V3\";\n Lender2[\"COLEND\"] = \"COLEND\";\n Lender2[\"COLEND_LSTBTC\"] = \"COLEND_LSTBTC\";\n Lender2[\"PAC\"] = \"PAC\";\n Lender2[\"VALAS\"] = \"VALAS\";\n Lender2[\"HYPERLEND\"] = \"HYPERLEND\";\n Lender2[\"HYPURRFI\"] = \"HYPURRFI\";\n Lender2[\"HYPERYIELD\"] = \"HYPERYIELD\";\n Lender2[\"MOONCAKE\"] = \"MOONCAKE\";\n Lender2[\"PHIAT\"] = \"PHIAT\";\n Lender2[\"RADIANT_V2\"] = \"RADIANT_V2\";\n Lender2[\"FATHOM\"] = \"FATHOM\";\n Lender2[\"U235\"] = \"U235\";\n Lender2[\"QUOKKA_LEND\"] = \"QUOKKA_LEND\";\n Lender2[\"ZEROLEND\"] = \"ZEROLEND\";\n Lender2[\"ZEROLEND_STABLECOINS_RWA\"] = \"ZEROLEND_STABLECOINS_RWA\";\n Lender2[\"ZEROLEND_ETH_LRTS\"] = \"ZEROLEND_ETH_LRTS\";\n Lender2[\"ZEROLEND_BTC_LRTS\"] = \"ZEROLEND_BTC_LRTS\";\n Lender2[\"ZEROLEND_CROAK\"] = \"ZEROLEND_CROAK\";\n Lender2[\"ZEROLEND_FOXY\"] = \"ZEROLEND_FOXY\";\n Lender2[\"LENDLE_SUSDE_USDT\"] = \"LENDLE_SUSDE_USDT\";\n Lender2[\"LENDLE_METH_WETH\"] = \"LENDLE_METH_WETH\";\n Lender2[\"LENDLE_METH_USDE\"] = \"LENDLE_METH_USDE\";\n Lender2[\"LENDLE_CMETH_WETH\"] = \"LENDLE_CMETH_WETH\";\n Lender2[\"LENDLE_CMETH_USDE\"] = \"LENDLE_CMETH_USDE\";\n Lender2[\"LENDLE_CMETH_WMNT\"] = \"LENDLE_CMETH_WMNT\";\n Lender2[\"LENDLE_FBTC_WETH\"] = \"LENDLE_FBTC_WETH\";\n Lender2[\"LENDLE_FBTC_USDE\"] = \"LENDLE_FBTC_USDE\";\n Lender2[\"LENDLE_FBTC_WMNT\"] = \"LENDLE_FBTC_WMNT\";\n Lender2[\"LENDLE_WMNT_WETH\"] = \"LENDLE_WMNT_WETH\";\n Lender2[\"LENDLE_WMNT_USDE\"] = \"LENDLE_WMNT_USDE\";\n Lender2[\"AVALON\"] = \"AVALON\";\n Lender2[\"AVALON_SOLVBTC\"] = \"AVALON_SOLVBTC\";\n Lender2[\"AVALON_SWELLBTC\"] = \"AVALON_SWELLBTC\";\n Lender2[\"AVALON_PUMPBTC\"] = \"AVALON_PUMPBTC\";\n Lender2[\"AVALON_UNIBTC\"] = \"AVALON_UNIBTC\";\n Lender2[\"AVALON_EBTC_LBTC\"] = \"AVALON_EBTC_LBTC\";\n Lender2[\"AVALON_USDA\"] = \"AVALON_USDA\";\n Lender2[\"AVALON_SKAIA\"] = \"AVALON_SKAIA\";\n Lender2[\"AVALON_LORENZO\"] = \"AVALON_LORENZO\";\n Lender2[\"AVALON_INNOVATION\"] = \"AVALON_INNOVATION\";\n Lender2[\"AVALON_UBTC\"] = \"AVALON_UBTC\";\n Lender2[\"AVALON_OBTC\"] = \"AVALON_OBTC\";\n Lender2[\"AVALON_BEETS\"] = \"AVALON_BEETS\";\n Lender2[\"AVALON_UNIIOTX\"] = \"AVALON_UNIIOTX\";\n Lender2[\"AVALON_BOB\"] = \"AVALON_BOB\";\n Lender2[\"AVALON_STBTC\"] = \"AVALON_STBTC\";\n Lender2[\"AVALON_WBTC\"] = \"AVALON_WBTC\";\n Lender2[\"AVALON_LBTC\"] = \"AVALON_LBTC\";\n Lender2[\"AVALON_XAUM\"] = \"AVALON_XAUM\";\n Lender2[\"AVALON_LISTA\"] = \"AVALON_LISTA\";\n Lender2[\"AVALON_USDX\"] = \"AVALON_USDX\";\n Lender2[\"COMPOUND_V2\"] = \"COMPOUND_V2\";\n Lender2[\"OVIX\"] = \"OVIX\";\n Lender2[\"VENUS\"] = \"VENUS\";\n Lender2[\"VENUS_ETH\"] = \"VENUS_ETH\";\n Lender2[\"VENUS_BNB\"] = \"VENUS_BNB\";\n Lender2[\"VENUS_BTC\"] = \"VENUS_BTC\";\n Lender2[\"VENUS_MEME\"] = \"VENUS_MEME\";\n Lender2[\"VENUS_DEFI\"] = \"VENUS_DEFI\";\n Lender2[\"VENUS_GAMEFI\"] = \"VENUS_GAMEFI\";\n Lender2[\"VENUS_STABLE\"] = \"VENUS_STABLE\";\n Lender2[\"VENUS_TRON\"] = \"VENUS_TRON\";\n Lender2[\"VENUS_ETHENA\"] = \"VENUS_ETHENA\";\n Lender2[\"VENUS_CURVE\"] = \"VENUS_CURVE\";\n Lender2[\"SEGMENT\"] = \"SEGMENT\";\n Lender2[\"ENCLABS\"] = \"ENCLABS\";\n Lender2[\"ENCLABS_LST\"] = \"ENCLABS_LST\";\n Lender2[\"ENCLABS_PT_USD\"] = \"ENCLABS_PT_USD\";\n Lender2[\"ENCLABS_PT_ETH\"] = \"ENCLABS_PT_ETH\";\n Lender2[\"BENQI\"] = \"BENQI\";\n Lender2[\"BENQI_AVALANCE_ECOSYSTEM\"] = \"BENQI_AVALANCE_ECOSYSTEM\";\n Lender2[\"COMPOUND_V3_USDC\"] = \"COMPOUND_V3_USDC\";\n Lender2[\"COMPOUND_V3_USDT\"] = \"COMPOUND_V3_USDT\";\n Lender2[\"COMPOUND_V3_USDE\"] = \"COMPOUND_V3_USDE\";\n Lender2[\"COMPOUND_V3_USDBC\"] = \"COMPOUND_V3_USDBC\";\n Lender2[\"COMPOUND_V3_USDCE\"] = \"COMPOUND_V3_USDCE\";\n Lender2[\"COMPOUND_V3_USDS\"] = \"COMPOUND_V3_USDS\";\n Lender2[\"COMPOUND_V3_WETH\"] = \"COMPOUND_V3_WETH\";\n Lender2[\"COMPOUND_V3_WRON\"] = \"COMPOUND_V3_WRON\";\n Lender2[\"COMPOUND_V3_AERO\"] = \"COMPOUND_V3_AERO\";\n Lender2[\"COMPOUND_V3_WSTETH\"] = \"COMPOUND_V3_WSTETH\";\n Lender2[\"COMPOUND_V3_WBTC\"] = \"COMPOUND_V3_WBTC\";\n Lender2[\"INIT\"] = \"INIT\";\n Lender2[\"MORPHO_BLUE\"] = \"MORPHO_BLUE\";\n Lender2[\"SWAYLEND_USDC\"] = \"SWAYLEND_USDC\";\n return Lender2;\n})(Lender || {});\nvar AAVE_V32_LENDERS = [\n \"AAVE_V3\" /* AAVE_V3 */,\n \"AAVE_V3_PRIME\" /* AAVE_V3_PRIME */,\n \"AAVE_V3_ETHER_FI\" /* AAVE_V3_ETHER_FI */,\n \"AAVE_V3_HORIZON\" /* AAVE_V3_HORIZON */,\n \"LENDLE_CMETH\" /* LENDLE_CMETH */,\n \"LENDLE_PT_CMETH\" /* LENDLE_PT_CMETH */,\n \"LENDLE_SUSDE\" /* LENDLE_SUSDE */,\n \"LENDLE_SUSDE_USDT\" /* LENDLE_SUSDE_USDT */,\n \"LENDLE_METH_WETH\" /* LENDLE_METH_WETH */,\n \"LENDLE_METH_USDE\" /* LENDLE_METH_USDE */,\n \"LENDLE_CMETH_WETH\" /* LENDLE_CMETH_WETH */,\n \"LENDLE_CMETH_USDE\" /* LENDLE_CMETH_USDE */,\n \"LENDLE_CMETH_WMNT\" /* LENDLE_CMETH_WMNT */,\n \"LENDLE_FBTC_WETH\" /* LENDLE_FBTC_WETH */,\n \"LENDLE_FBTC_USDE\" /* LENDLE_FBTC_USDE */,\n \"LENDLE_FBTC_WMNT\" /* LENDLE_FBTC_WMNT */,\n \"LENDLE_WMNT_WETH\" /* LENDLE_WMNT_WETH */,\n \"LENDLE_WMNT_USDE\" /* LENDLE_WMNT_USDE */,\n \"HYPERLEND\" /* HYPERLEND */,\n \"LAYERBANK_V3\" /* LAYERBANK_V3 */\n];\nvar AAVE_V2_LENDERS = [\n \"AAVE_V2\" /* AAVE_V2 */,\n \"AURELIUS\" /* AURELIUS */,\n \"LENDLE\" /* LENDLE */,\n \"MERIDIAN\" /* MERIDIAN */,\n \"TAKOTAKO\" /* TAKOTAKO */,\n \"TAKOTAKO_ETH\" /* TAKOTAKO_ETH */,\n \"NEREUS\" /* NEREUS */,\n \"GRANARY\" /* GRANARY */,\n \"LORE\" /* LORE */,\n \"IRONCLAD\" /* IRONCLAD */,\n \"MOLEND\" /* MOLEND */,\n \"POLTER\" /* POLTER */,\n \"SEISMIC\" /* SEISMIC */,\n \"AGAVE\" /* AGAVE */,\n \"MOOLA\" /* MOOLA */,\n \"KLAP\" /* KLAP */,\n \"KLAYBANK\" /* KLAYBANK */,\n \"VALAS\" /* VALAS */,\n \"PHIAT\" /* PHIAT */,\n \"RADIANT_V2\" /* RADIANT_V2 */,\n \"MAGSIN\" /* MAGSIN */\n];\nvar AAVE_V3_LENDERS = [\n \"HANA\" /* HANA */,\n \"YLDR\" /* YLDR */,\n \"SPARK\" /* SPARK */,\n \"KINZA\" /* KINZA */,\n \"LENDOS\" /* LENDOS */,\n \"XLEND\" /* XLEND */,\n \"RHOMBUS\" /* RHOMBUS */,\n \"RMM\" /* RMM */,\n \"SAKE\" /* SAKE */,\n \"SAKE_ASTAR\" /* SAKE_ASTAR */,\n \"COLEND\" /* COLEND */,\n \"COLEND_LSTBTC\" /* COLEND_LSTBTC */,\n \"PAC\" /* PAC */,\n \"HYPERYIELD\" /* HYPERYIELD */,\n \"HYPURRFI\" /* HYPURRFI */,\n \"FATHOM\" /* FATHOM */,\n \"U235\" /* U235 */,\n \"QUOKKA_LEND\" /* QUOKKA_LEND */,\n // zerolends\n \"ZEROLEND\" /* ZEROLEND */,\n \"ZEROLEND_STABLECOINS_RWA\" /* ZEROLEND_STABLECOINS_RWA */,\n \"ZEROLEND_ETH_LRTS\" /* ZEROLEND_ETH_LRTS */,\n \"ZEROLEND_BTC_LRTS\" /* ZEROLEND_BTC_LRTS */,\n \"ZEROLEND_CROAK\" /* ZEROLEND_CROAK */,\n \"ZEROLEND_FOXY\" /* ZEROLEND_FOXY */,\n // avalons\n \"AVALON\" /* AVALON */,\n \"AVALON_SOLVBTC\" /* AVALON_SOLVBTC */,\n \"AVALON_SWELLBTC\" /* AVALON_SWELLBTC */,\n \"AVALON_PUMPBTC\" /* AVALON_PUMPBTC */,\n \"AVALON_UNIBTC\" /* AVALON_UNIBTC */,\n \"AVALON_EBTC_LBTC\" /* AVALON_EBTC_LBTC */,\n \"AVALON_USDA\" /* AVALON_USDA */,\n \"AVALON_SKAIA\" /* AVALON_SKAIA */,\n \"AVALON_LORENZO\" /* AVALON_LORENZO */,\n \"AVALON_INNOVATION\" /* AVALON_INNOVATION */,\n \"AVALON_UBTC\" /* AVALON_UBTC */,\n \"AVALON_OBTC\" /* AVALON_OBTC */,\n \"AVALON_BEETS\" /* AVALON_BEETS */,\n \"AVALON_UNIIOTX\" /* AVALON_UNIIOTX */,\n \"AVALON_BOB\" /* AVALON_BOB */,\n \"AVALON_STBTC\" /* AVALON_STBTC */,\n \"AVALON_WBTC\" /* AVALON_WBTC */,\n \"AVALON_LBTC\" /* AVALON_LBTC */,\n \"AVALON_XAUM\" /* AVALON_XAUM */,\n \"AVALON_LISTA\" /* AVALON_LISTA */,\n \"AVALON_USDX\" /* AVALON_USDX */,\n \"MOONCAKE\" /* MOONCAKE */,\n ...AAVE_V32_LENDERS\n];\nvar AAVE_LENDERS = [...AAVE_V3_LENDERS, ...AAVE_V2_LENDERS];\nvar COMPOUND_V2_LENDERS = [\n \"COMPOUND_V2\" /* COMPOUND_V2 */,\n \"OVIX\" /* OVIX */,\n \"VENUS\" /* VENUS */,\n \"VENUS_ETH\" /* VENUS_ETH */,\n \"VENUS_BNB\" /* VENUS_BNB */,\n \"VENUS_BTC\" /* VENUS_BTC */,\n \"VENUS_MEME\" /* VENUS_MEME */,\n \"VENUS_DEFI\" /* VENUS_DEFI */,\n \"VENUS_GAMEFI\" /* VENUS_GAMEFI */,\n \"VENUS_STABLE\" /* VENUS_STABLE */,\n \"VENUS_TRON\" /* VENUS_TRON */,\n \"VENUS_ETHENA\" /* VENUS_ETHENA */,\n \"VENUS_CURVE\" /* VENUS_CURVE */,\n \"SEGMENT\" /* SEGMENT */,\n \"ENCLABS\" /* ENCLABS */,\n \"ENCLABS_LST\" /* ENCLABS_LST */,\n \"ENCLABS_PT_USD\" /* ENCLABS_PT_USD */,\n \"ENCLABS_PT_ETH\" /* ENCLABS_PT_ETH */,\n \"BENQI\" /* BENQI */,\n \"BENQI_AVALANCE_ECOSYSTEM\" /* BENQI_AVALANCE_ECOSYSTEM */\n];\nvar COMPOUND_V3_LENDERS = [\n \"COMPOUND_V3_USDC\" /* COMPOUND_V3_USDC */,\n \"COMPOUND_V3_USDT\" /* COMPOUND_V3_USDT */,\n \"COMPOUND_V3_USDE\" /* COMPOUND_V3_USDE */,\n \"COMPOUND_V3_USDBC\" /* COMPOUND_V3_USDBC */,\n \"COMPOUND_V3_USDCE\" /* COMPOUND_V3_USDCE */,\n \"COMPOUND_V3_USDS\" /* COMPOUND_V3_USDS */,\n \"COMPOUND_V3_WETH\" /* COMPOUND_V3_WETH */,\n \"COMPOUND_V3_AERO\" /* COMPOUND_V3_AERO */,\n \"COMPOUND_V3_WSTETH\" /* COMPOUND_V3_WSTETH */\n];\nvar MORPHO_BLUE_LENDERS = [\"MORPHO_BLUE\" /* MORPHO_BLUE */];\nvar LenderGroups = /* @__PURE__ */ ((LenderGroups2) => {\n LenderGroups2[LenderGroups2[\"AaveV2\"] = 0] = \"AaveV2\";\n LenderGroups2[LenderGroups2[\"AaveV3\"] = 1] = \"AaveV3\";\n LenderGroups2[LenderGroups2[\"CompoundV2\"] = 2] = \"CompoundV2\";\n LenderGroups2[LenderGroups2[\"CompoundV3\"] = 3] = \"CompoundV3\";\n LenderGroups2[LenderGroups2[\"MorphoBlue\"] = 4] = \"MorphoBlue\";\n return LenderGroups2;\n})(LenderGroups || {});\nvar LenderIds = /* @__PURE__ */ ((LenderIds2) => {\n LenderIds2[LenderIds2[\"UP_TO_AAVE_V3\"] = 1e3] = \"UP_TO_AAVE_V3\";\n LenderIds2[LenderIds2[\"UP_TO_AAVE_V2\"] = 2e3] = \"UP_TO_AAVE_V2\";\n LenderIds2[LenderIds2[\"UP_TO_COMPOUND_V3\"] = 3e3] = \"UP_TO_COMPOUND_V3\";\n LenderIds2[LenderIds2[\"UP_TO_COMPOUND_V2\"] = 4e3] = \"UP_TO_COMPOUND_V2\";\n LenderIds2[LenderIds2[\"UP_TO_MORPHO\"] = 5e3] = \"UP_TO_MORPHO\";\n return LenderIds2;\n})(LenderIds || {});\nfunction getLenderId(lender) {\n switch (lender) {\n case 0 /* AaveV2 */:\n return 2e3 /* UP_TO_AAVE_V2 */ - 1;\n case 1 /* AaveV3 */:\n return 1e3 /* UP_TO_AAVE_V3 */ - 1;\n case 2 /* CompoundV2 */:\n return 4e3 /* UP_TO_COMPOUND_V2 */ - 1;\n case 3 /* CompoundV3 */:\n return 3e3 /* UP_TO_COMPOUND_V3 */ - 1;\n case 4 /* MorphoBlue */:\n return 5e3 /* UP_TO_MORPHO */ - 1;\n default:\n throw new Error(\"Unsupported lender\");\n }\n}\nfunction getLenderGroup(lender) {\n if (AAVE_LENDERS.includes(lender)) {\n return AAVE_V2_LENDERS.includes(lender) ? 0 /* AaveV2 */ : 1 /* AaveV3 */;\n }\n if (COMPOUND_V2_LENDERS.includes(lender)) {\n return 2 /* CompoundV2 */;\n }\n if (COMPOUND_V3_LENDERS.includes(lender)) {\n return 3 /* CompoundV3 */;\n }\n if (MORPHO_BLUE_LENDERS.includes(lender)) {\n return 4 /* MorphoBlue */;\n }\n throw new Error(\"Unsupported lender\");\n}\n\nexport { AAVE_LENDERS, AAVE_V2_LENDERS, AAVE_V32_LENDERS, AAVE_V3_LENDERS, COMPOUND_V2_LENDERS, COMPOUND_V3_LENDERS, Lender, LenderGroups, LenderIds, MORPHO_BLUE_LENDERS, getLenderGroup, getLenderId };\n","// src/chains.ts\nvar GLOBAL_CHAIN_DATA_KEY = \"__1delta_chain_registry__\";\nglobalThis[GLOBAL_CHAIN_DATA_KEY] = {};\nfunction getGlobalData() {\n return globalThis[GLOBAL_CHAIN_DATA_KEY];\n}\nfunction initializeChainData({ chainsOverride }) {\n if (chainsOverride) globalThis[GLOBAL_CHAIN_DATA_KEY] = chainsOverride;\n}\nvar chains = () => getGlobalData();\n\n// src/lending.ts\nvar GLOBAL_LENDER_DATA_KEY = \"__1delta_lender_registry__\";\nglobalThis[GLOBAL_LENDER_DATA_KEY] = {\n aaveTokens: {},\n aavePools: {},\n compoundV3Pools: {},\n morphoPools: {},\n compoundV3BaseData: {},\n compoundV2Pools: {},\n compoundV2Tokens: {},\n initConfig: {},\n aaveReserves: {},\n compoundV2Reserves: {},\n compoundV3Reserves: {},\n aaveOracles: {},\n morphoOracles: {}\n};\nfunction getGlobalData2() {\n return globalThis[GLOBAL_LENDER_DATA_KEY];\n}\nfunction initializeLenderData({\n aaveTokensOverride,\n aavePoolsOverride,\n aaveOraclesOverride,\n compoundV3PoolsOverride,\n compoundV3BaseDataOverride,\n morphoPoolsOverride,\n compoundV2TokensOverride,\n compoundV2PoolsOverride,\n initConfigOverride,\n aaveReservesOverride,\n compoundV3ReservesOverride,\n compoundV2ReservesOverride,\n morphoOraclesOverride\n}) {\n const data = getGlobalData2();\n if (aaveTokensOverride) data.aaveTokens = aaveTokensOverride;\n if (aaveOraclesOverride) data.aaveOracles = aaveOraclesOverride;\n if (aavePoolsOverride) data.aavePools = aavePoolsOverride;\n if (compoundV3PoolsOverride) data.compoundV3Pools = compoundV3PoolsOverride;\n if (morphoPoolsOverride) data.morphoPools = morphoPoolsOverride;\n if (compoundV3BaseDataOverride) data.compoundV3BaseData = compoundV3BaseDataOverride;\n if (compoundV2TokensOverride) data.compoundV2Tokens = compoundV2TokensOverride;\n if (compoundV2PoolsOverride) data.compoundV2Pools = compoundV2PoolsOverride;\n if (initConfigOverride) data.initConfig = initConfigOverride;\n if (aaveReservesOverride) data.aaveReserves = aaveReservesOverride;\n if (compoundV3ReservesOverride) data.compoundV3Reserves = compoundV3ReservesOverride;\n if (compoundV2ReservesOverride) data.compoundV2Reserves = compoundV2ReservesOverride;\n if (morphoOraclesOverride) data.morphoOracles = morphoOraclesOverride;\n}\nvar aaveTokens = () => getGlobalData2()?.aaveTokens;\nvar aavePools = () => getGlobalData2()?.aavePools;\nvar aaveOracles = () => getGlobalData2()?.aaveOracles;\nvar morphoOracles = () => getGlobalData2()?.morphoOracles;\nvar aaveReserves = () => getGlobalData2()?.aaveReserves;\nvar compoundV3Reserves = () => getGlobalData2()?.compoundV3Reserves;\nvar compoundV2Reserves = () => getGlobalData2()?.compoundV2Reserves;\nvar compoundV3Pools = () => getGlobalData2()?.compoundV3Pools;\nvar morphoPools = () => getGlobalData2()?.morphoPools;\nvar compoundV3BaseData = () => getGlobalData2()?.compoundV3BaseData;\nvar compoundV2Pools = () => getGlobalData2()?.compoundV2Pools;\nvar compoundV2Tokens = () => getGlobalData2()?.compoundV2Tokens;\nvar initConfig = () => getGlobalData2()?.initConfig;\n\nexport { aaveOracles, aavePools, aaveReserves, aaveTokens, chains, compoundV2Pools, compoundV2Reserves, compoundV2Tokens, compoundV3BaseData, compoundV3Pools, compoundV3Reserves, initConfig, initializeChainData, initializeLenderData, morphoOracles, morphoPools };\n","import {\n AAVE_V2_LENDERS,\n AAVE_V3_LENDERS,\n Lender,\n AAVE_V32_LENDERS,\n} from '@1delta/lender-registry'\nimport {\n aavePools,\n aaveReserves,\n compoundV3Pools,\n compoundV3Reserves,\n initConfig,\n morphoPools,\n} from '@1delta/data-sdk'\nimport lodash from 'lodash';\n\n// pull the functions you need\nconst { uniq } = lodash;\n\nconst COMPOUND_V3_KEY = 'COMPOUND_V3'\n\nexport function isCompoundV3(lender: string) {\n return lender?.startsWith(COMPOUND_V3_KEY)\n}\n\nexport function isCompoundV3Type(lender: string) {\n return lender?.startsWith(COMPOUND_V3_KEY)\n}\n\nexport function isInit(lender: string) {\n return lender === Lender.INIT\n}\n\nexport function isMorphoType(lender: string) {\n return lender?.startsWith('MORPHO_BLUE')\n}\n\nexport function isAaveV3Type(lender: string) {\n return AAVE_V3_LENDERS.includes(lender as any)\n}\n\nexport function isAaveV2Type(lender: string) {\n return AAVE_V2_LENDERS.includes(lender as any)\n}\n\nexport function isYLDR(lender: string) {\n return lender === Lender.YLDR\n}\n\nexport function isAaveV32Type(lender: string) {\n return AAVE_V32_LENDERS.includes(lender as any)\n}\n\nexport function isAaveType(lender: string) {\n return [...AAVE_V3_LENDERS, ...AAVE_V2_LENDERS].includes(lender as any)\n}\n\nexport const getLendersForChain = (c: string) => {\n let lenders: string[] = []\n // aaves\n Object.entries(aavePools() ?? {}).forEach(([l, data]) => {\n const chains = Object.keys(data)\n if (chains.includes(c)) lenders.push(l)\n })\n\n // compound V3s\n\n if (compoundV3Pools()?.[c])\n lenders = [...lenders, ...Object.keys(compoundV3Pools()?.[c])]\n\n // init\n Object.entries(initConfig() ?? {}).forEach(([l, data]) => {\n const chains = Object.keys(data)\n if (chains.includes(c)) lenders.push(l)\n })\n\n // morpho\n Object.entries(morphoPools() ?? {}).forEach(([l, data]) => {\n const chains = Object.keys(data)\n if (chains.includes(c)) lenders.push(l)\n })\n\n return lenders\n}\n\n/** Filter lenders by protocol list */\nexport const filterLendersByProtocol = (\n allLenders: string[],\n protocolList?: string[],\n): string[] => {\n // return all lenders if no filter is provided\n if (!protocolList || protocolList.length === 0) {\n return allLenders\n }\n\n const hasMorpho = protocolList.includes(Lender.MORPHO_BLUE)\n // Filter lenders based on protocol list\n return allLenders.filter(\n (lender) =>\n protocolList.includes(lender) ||\n (hasMorpho && lender?.startsWith('MORPHO_BLUE')),\n )\n}\n\n/** All aave protocols per chain */\nexport const getAavesForChain = () => {\n let lenders: { [c: string]: string[] } = {}\n Object.entries(aavePools() ?? {}).forEach(([l, data]) => {\n Object.entries(data).forEach(([chain, data]) => {\n if (!lenders[chain]) lenders[chain] = []\n lenders[chain] = uniq([...lenders[chain], l])\n })\n })\n return lenders\n}\n\nexport const getLenderAssets = (\n chainId: string | number | undefined,\n lendingProtocol = Lender.AAVE_V3,\n): string[] => {\n if (!chainId) return []\n if (isAaveType(lendingProtocol))\n return aaveReserves()?.[lendingProtocol]?.[chainId] ?? []\n if (isCompoundV3(lendingProtocol))\n return compoundV3Reserves()?.[lendingProtocol]?.[chainId] ?? []\n return []\n}\n\nexport function isMultiMarket(lender: string) {\n return lender?.startsWith('MORPHO_BLUE')\n}\n","import { isAaveType, isCompoundV3 } from '../utils'\nimport {\n aaveTokens,\n aavePools,\n aaveReserves,\n compoundV3Reserves,\n} from '@1delta/data-sdk'\n\n/** No specific configuration */\nexport const LENDER_MODE_NO_MODE = 0\n\nexport function getAaveStyleProtocolTokenMap(chainId: string, lender: string) {\n return aaveTokens()?.[lender]?.[chainId] as any\n}\n\nexport const getAaveAssets = (\n chainId: string | undefined,\n lendingProtocol: string | undefined,\n): string[] => {\n if (isAaveType(lendingProtocol ?? ''))\n return aaveReserves()?.[lendingProtocol ?? '']?.[chainId ?? ''] ?? []\n return []\n}\n\nexport const getCompoundV3Assets = (\n chainId: string | undefined,\n lendingProtocol: string | undefined,\n): string[] => {\n if (isCompoundV3(lendingProtocol ?? ''))\n return compoundV3Reserves()?.[lendingProtocol ?? '']?.[chainId ?? '']\n return []\n}\n\nexport function getAaveTypePoolDataProviderAddress(\n chainId: string,\n lender: string,\n) {\n // @ts-ignore\n return aavePools()?.[lender]?.[chainId]?.protocolDataProvider\n}\n\nexport function getAaveTypePoolAddress(\n chainId: string,\n lender: string,\n): string {\n // @ts-ignore\n return aavePools()?.[lender]?.[chainId]?.pool\n}\n\n/**\n * Convert a string (asset symbol) to a Supported asset, considering also naming conflicts\n * @param a string\n * @returns SupportedAsset\n */\nexport const toOracleKey = (a: string) => {\n return a\n}\n\nexport const toGenericPriceKey = (assetAddress: string, chainId: string) => {\n return chainId + '-' + assetAddress\n}\n","import {\n getAaveAssets,\n getAaveTypePoolDataProviderAddress,\n} from '../../assets'\nimport { Lender } from '@1delta/lender-registry'\n\nexport const buildAaveV2StyleLenderReserveCall = (\n chainId: string,\n lender: Lender,\n) => {\n const providerAddress = getAaveTypePoolDataProviderAddress(chainId, lender)\n const underlyingTokensArray = getAaveAssets(chainId, lender)\n switch (lender) {\n default:\n return [\n ...underlyingTokensArray.flatMap((tk) => [\n {\n address: providerAddress,\n name: 'getReserveData',\n params: [tk],\n },\n {\n address: providerAddress,\n name: 'getReserveConfigurationData',\n params: [tk],\n },\n ]),\n ]\n }\n}\n","// src/chains.ts\nvar Chain = /* @__PURE__ */ ((Chain2) => {\n Chain2[\"ETHEREUM_MAINNET\"] = \"1\";\n Chain2[\"OP_MAINNET\"] = \"10\";\n Chain2[\"GNOSIS\"] = \"100\";\n Chain2[\"GTON_MAINNET\"] = \"1000\";\n Chain2[\"ETHOS\"] = \"100000000\";\n Chain2[\"QUARKCHAIN_MAINNET_SHARD_0\"] = \"100001\";\n Chain2[\"QUARKCHAIN_MAINNET_SHARD_1\"] = \"100002\";\n Chain2[\"QUARKCHAIN_MAINNET_SHARD_2\"] = \"100003\";\n Chain2[\"QUARKCHAIN_MAINNET_SHARD_3\"] = \"100004\";\n Chain2[\"QUARKCHAIN_MAINNET_SHARD_4\"] = \"100005\";\n Chain2[\"QUARKCHAIN_MAINNET_SHARD_5\"] = \"100006\";\n Chain2[\"QUARKCHAIN_MAINNET_SHARD_6\"] = \"100007\";\n Chain2[\"QUARKCHAIN_MAINNET_SHARD_7\"] = \"100008\";\n Chain2[\"VECHAIN\"] = \"100009\";\n Chain2[\"GON_CHAIN\"] = \"10024\";\n Chain2[\"AEON_CHAIN\"] = \"10025\";\n Chain2[\"TECTUM_EMISSION_TOKEN\"] = \"1003\";\n Chain2[\"EURUS_MAINNET\"] = \"1008\";\n Chain2[\"JUMBOCHAIN_MAINNET\"] = \"1009\";\n Chain2[\"METANOVA_VERSE\"] = \"10096\";\n Chain2[\"GLOBAL_TRUST_NETWORK\"] = \"101010\";\n Chain2[\"SOVERUN_MAINNET\"] = \"10101010\";\n Chain2[\"REBUS_CLASSIC_MAINNET\"] = \"1011\";\n Chain2[\"MAXXCHAIN_MAINNET\"] = \"10201\";\n Chain2[\"CREDITCOIN\"] = \"102030\";\n Chain2[\"GLSCAN\"] = \"10222\";\n Chain2[\"ALIENX_MAINNET\"] = \"10241024\";\n Chain2[\"ARTHERA_MAINNET\"] = \"10242\";\n Chain2[\"ZERO_XTADE\"] = \"10248\";\n Chain2[\"BITTORRENT_CHAIN_DONAU\"] = \"1029\";\n Chain2[\"WORLDLAND_MAINNET\"] = \"103\";\n Chain2[\"CONFLUX_ESPACE\"] = \"1030\";\n Chain2[\"CRYSTALEUM\"] = \"103090\";\n Chain2[\"TAO_EVM_MAINNET\"] = \"10321\";\n Chain2[\"KASPACLASSIC_MAINNET\"] = \"104566\";\n Chain2[\"NUMBERS_MAINNET\"] = \"10507\";\n Chain2[\"STRATIS_MAINNET\"] = \"105105\";\n Chain2[\"VELAS_EVM_MAINNET\"] = \"106\";\n Chain2[\"THUNDERCORE_MAINNET\"] = \"108\";\n Chain2[\"MINTARA_MAINNET\"] = \"1080\";\n Chain2[\"CRYPTOCOINPAY\"] = \"10823\";\n Chain2[\"LAMINA1\"] = \"10849\";\n Chain2[\"LAMINA1_IDENTITY\"] = \"10850\";\n Chain2[\"METIS_ANDROMEDA_MAINNET\"] = \"1088\";\n Chain2[\"BROCHAIN_MAINNET\"] = \"108801\";\n Chain2[\"HUMANS_AI_MAINNET\"] = \"1089\";\n Chain2[\"SHIBARIUM\"] = \"109\";\n Chain2[\"QUADRANS_BLOCKCHAIN\"] = \"10946\";\n Chain2[\"DYMENSION\"] = \"1100\";\n Chain2[\"KB_CHAIN\"] = \"11000\";\n Chain2[\"POLYGON_ZKEVM\"] = \"1101\";\n Chain2[\"BLXQ_MAINNET\"] = \"1108\";\n Chain2[\"WEMIX3_0_MAINNET\"] = \"1111\";\n Chain2[\"ASTRA\"] = \"11110\";\n Chain2[\"WAGMI\"] = \"11111\";\n Chain2[\"SIBERIUM_NETWORK\"] = \"111111\";\n Chain2[\"RE_AL\"] = \"111188\";\n Chain2[\"HASHBIT_MAINNET\"] = \"11119\";\n Chain2[\"ALPHABET_MAINNET\"] = \"111222333444\";\n Chain2[\"CORE_BLOCKCHAIN_MAINNET\"] = \"1116\";\n Chain2[\"DOGCOIN_MAINNET\"] = \"1117\";\n Chain2[\"COINBIT_MAINNET\"] = \"112\";\n Chain2[\"SHINE_CHAIN\"] = \"11221\";\n Chain2[\"HAQQ_NETWORK\"] = \"11235\";\n Chain2[\"METACHAIN_ONE_MAINNET\"] = \"112358\";\n Chain2[\"TAKER_CHAIN_MAINNET\"] = \"1125\";\n Chain2[\"TILTYARD_SUBNET\"] = \"1127469\";\n Chain2[\"PALM\"] = \"11297108109\";\n Chain2[\"DEHVO\"] = \"113\";\n Chain2[\"LISK\"] = \"1135\";\n Chain2[\"EGOLD_CHAIN\"] = \"11451\";\n Chain2[\"CYBERDECKNET\"] = \"1146703430\";\n Chain2[\"SYMPLEXIA_SMART_CHAIN\"] = \"1149\";\n Chain2[\"BEVM_MAINNET\"] = \"11501\";\n Chain2[\"SATSCHAIN\"] = \"11521\";\n Chain2[\"UPTICK_MAINNET\"] = \"117\";\n Chain2[\"ARTELA_MAINNET\"] = \"11820\";\n Chain2[\"CLUBMOS_MAINNET\"] = \"1188\";\n Chain2[\"POLYGON_SUPERNET_ARIANEE\"] = \"11891\";\n Chain2[\"ENULS_MAINNET\"] = \"119\";\n Chain2[\"IORA_CHAIN\"] = \"1197\";\n Chain2[\"CUCKOO_CHAIN\"] = \"1200\";\n Chain2[\"SATOSHICHAIN_MAINNET\"] = \"12009\";\n Chain2[\"WORLD_TRADE_TECHNICAL_CHAIN_MAINNET\"] = \"1202\";\n Chain2[\"ATERNOS\"] = \"12020\";\n Chain2[\"LUMMIO_NETWORK\"] = \"12020498\";\n Chain2[\"SINGULARITY_ZERO_MAINNET\"] = \"12052\";\n Chain2[\"SAITABLOCKCHAINSBC\"] = \"1209\";\n Chain2[\"REALCHAIN_MAINNET\"] = \"121\";\n Chain2[\"FUSHUMA\"] = \"121224\";\n Chain2[\"BRC_CHAIN_MAINNET\"] = \"12123\";\n Chain2[\"POPCATEUM_MAINNET\"] = \"1213\";\n Chain2[\"ENTERCHAIN_MAINNET\"] = \"1214\";\n Chain2[\"ADF_CHAIN\"] = \"1215\";\n Chain2[\"FUSE_MAINNET\"] = \"122\";\n Chain2[\"EXZO_NETWORK_MAINNET\"] = \"1229\";\n Chain2[\"FIBONACCI_MAINNET\"] = \"12306\";\n Chain2[\"ULTRON_MAINNET\"] = \"1231\";\n Chain2[\"HUDDLE01_DRTC_CHAIN\"] = \"12323\";\n Chain2[\"L3X_PROTOCOL\"] = \"12324\";\n Chain2[\"GEMCHAIN\"] = \"123321\";\n Chain2[\"STEP_NETWORK\"] = \"1234\";\n Chain2[\"PIN\"] = \"123420000558\";\n Chain2[\"VOLMEX\"] = \"123420000588\";\n Chain2[\"SHARECLE_MAINNET\"] = \"1234567\";\n Chain2[\"ITX_MAINNET\"] = \"1235\";\n Chain2[\"GDPR_MAINNET\"] = \"12358\";\n Chain2[\"ARC_MAINNET\"] = \"1243\";\n Chain2[\"OM_PLATFORM_MAINNET\"] = \"1246\";\n Chain2[\"DOGETHER_MAINNET\"] = \"1248\";\n Chain2[\"RSS3_VSL_MAINNET\"] = \"12553\";\n Chain2[\"OYCHAIN_MAINNET\"] = \"126\";\n Chain2[\"HUMAN_PROTOCOL\"] = \"1273227453\";\n Chain2[\"OFFICIAL_VASYL\"] = \"1278060416\";\n Chain2[\"HUOBI_ECO_CHAIN_MAINNET\"] = \"128\";\n Chain2[\"HALO_MAINNET\"] = \"1280\";\n Chain2[\"MOONBEAM\"] = \"1284\";\n Chain2[\"MOONRIVER\"] = \"1285\";\n Chain2[\"INNOVATOR_CHAIN\"] = \"129\";\n Chain2[\"ARGOCHAIN\"] = \"1299\";\n Chain2[\"UNICHAIN\"] = \"130\";\n Chain2[\"GLUE_MAINNET\"] = \"1300\";\n Chain2[\"SPS\"] = \"13000\";\n Chain2[\"DOS_FUJI_SUBNET\"] = \"1311\";\n Chain2[\"JAIHO_CHAIN\"] = \"1313\";\n Chain2[\"ETHO_PROTOCOL\"] = \"1313114\";\n Chain2[\"AURORA_MAINNET\"] = \"1313161554\";\n Chain2[\"POWERGOLD\"] = \"1313161560\";\n Chain2[\"TURBO\"] = \"1313161567\";\n Chain2[\"ALYX_MAINNET\"] = \"1314\";\n Chain2[\"ETND_CHAIN_MAINNETS\"] = \"131419\";\n Chain2[\"AIA_MAINNET\"] = \"1319\";\n Chain2[\"SEI_NETWORK\"] = \"1329\";\n Chain2[\"CREDIT_SMART_CHAIN\"] = \"13308\";\n Chain2[\"IMMUTABLE_ZKEVM\"] = \"13371\";\n Chain2[\"PHOENIX_MAINNET\"] = \"13381\";\n Chain2[\"ELYSIUM_MAINNET\"] = \"1339\";\n Chain2[\"MASA\"] = \"13396\";\n Chain2[\"IEXEC_SIDECHAIN\"] = \"134\";\n Chain2[\"BLITZ_SUBNET\"] = \"1343\";\n Chain2[\"SKALE_TITAN_HUB\"] = \"1350216234\";\n Chain2[\"CIC_CHAIN_MAINNET\"] = \"1353\";\n Chain2[\"DEAMCHAIN_MAINNET\"] = \"136\";\n Chain2[\"KRONOBIT_MAINNET\"] = \"13600\";\n Chain2[\"ZAFIRIUM_MAINNET\"] = \"1369\";\n Chain2[\"POLYGON_MAINNET\"] = \"137\";\n Chain2[\"RAMESTTA_MAINNET\"] = \"1370\";\n Chain2[\"KALAR_CHAIN\"] = \"1379\";\n Chain2[\"DEFI_ORACLE_META_MAINNET\"] = \"138\";\n Chain2[\"RARI_CHAIN_MAINNET\"] = \"1380012617\";\n Chain2[\"RAPTORCHAIN\"] = \"1380996178\";\n Chain2[\"SUSONO\"] = \"13812\";\n Chain2[\"AMSTAR_MAINNET\"] = \"1388\";\n Chain2[\"WOOPCHAIN_MAINNET\"] = \"139\";\n Chain2[\"JOSEON_MAINNET\"] = \"1392\";\n Chain2[\"FLARE_MAINNET\"] = \"14\";\n Chain2[\"ETERNAL_MAINNET\"] = \"140\";\n Chain2[\"BITHARVEST_CHAIN_MAINNET\"] = \"14149\";\n Chain2[\"BITLAZER\"] = \"14235\";\n Chain2[\"ICPLAZA_MAINNET\"] = \"142857\";\n Chain2[\"ANDUSCHAIN_MAINNET\"] = \"14288640\";\n Chain2[\"RIKEZA_NETWORK_MAINNET\"] = \"1433\";\n Chain2[\"PHI_NETWORK_V2\"] = \"144\";\n Chain2[\"CTEX_SCAN_BLOCKCHAIN\"] = \"1455\";\n Chain2[\"ZKBASE_MAINNET\"] = \"1456\";\n Chain2[\"SONIC_MAINNET\"] = \"146\";\n Chain2[\"FLAG_MAINNET\"] = \"147\";\n Chain2[\"SHIMMEREVM\"] = \"148\";\n Chain2[\"VANA\"] = \"1480\";\n Chain2[\"SKALE_NEBULA_HUB\"] = \"1482601649\";\n Chain2[\"VITRUVEO_MAINNET\"] = \"1490\";\n Chain2[\"BEVM_CANARY\"] = \"1501\";\n Chain2[\"SHERPAX_MAINNET\"] = \"1506\";\n Chain2[\"REDBELLY_NETWORK_MAINNET\"] = \"151\";\n Chain2[\"GPT_MAINNET\"] = \"1511670449\";\n Chain2[\"STORY\"] = \"1514\";\n Chain2[\"BEAGLE_MESSAGING_CHAIN\"] = \"1515\";\n Chain2[\"POODL_MAINNET\"] = \"15259\";\n Chain2[\"ODYSSEY_CHAIN_MAINNET\"] = \"153153\";\n Chain2[\"KYMTC_MAINNET\"] = \"15430\";\n Chain2[\"DATACORE_SMART_CHAIN\"] = \"1555\";\n Chain2[\"LOOPNETWORK_MAINNET\"] = \"15551\";\n Chain2[\"TENET\"] = \"1559\";\n Chain2[\"SKALE_CALYPSO_HUB\"] = \"1564830818\";\n Chain2[\"PUPPYNET\"] = \"157\";\n Chain2[\"STARCHAIN\"] = \"1578\";\n Chain2[\"ROBURNA_MAINNET\"] = \"158\";\n Chain2[\"CRYPTOX\"] = \"158245\";\n Chain2[\"XCOIN\"] = \"158345\";\n Chain2[\"BETHERANCE\"] = \"1605\";\n Chain2[\"DEFIVERSE_MAINNET\"] = \"16116\";\n Chain2[\"CYPHERIUM_MAINNET\"] = \"16166\";\n Chain2[\"ETHEREUM_INSCRIPTION_MAINNET\"] = \"1617\";\n Chain2[\"PLYR_PHI\"] = \"16180\";\n Chain2[\"GRAVITY_ALPHA_MAINNET\"] = \"1625\";\n Chain2[\"PIVOTAL_MAINNET\"] = \"1648\";\n Chain2[\"GENESYS_MAINNET\"] = \"16507\";\n Chain2[\"ECLAT_MAINNET\"] = \"165279\";\n Chain2[\"OMNI\"] = \"166\";\n Chain2[\"HARMONY_MAINNET_SHARD_0\"] = \"1666600000\";\n Chain2[\"HARMONY_MAINNET_SHARD_1\"] = \"1666600001\";\n Chain2[\"TAIKO_ALETHIA\"] = \"167000\";\n Chain2[\"AIRDAO_MAINNET\"] = \"16718\";\n Chain2[\"AIOZ_NETWORK\"] = \"168\";\n Chain2[\"ZCHAINS\"] = \"168168\";\n Chain2[\"NERO_MAINNET\"] = \"1689\";\n Chain2[\"MANTA_PACIFIC_MAINNET\"] = \"169\";\n Chain2[\"ANYTYPE_EVM_CHAIN\"] = \"1701\";\n Chain2[\"GARNET_HOLESKY\"] = \"17069\";\n Chain2[\"TBSI_MAINNET\"] = \"1707\";\n Chain2[\"ONCHAIN_POINTS\"] = \"17071\";\n Chain2[\"CO2E_LEDGER\"] = \"171\";\n Chain2[\"DORIC_NETWORK\"] = \"1717\";\n Chain2[\"G8CHAIN_MAINNET\"] = \"17171\";\n Chain2[\"WADZCHAIN_MAINNET\"] = \"171717\";\n Chain2[\"ECLIPSE_SUBNET\"] = \"17172\";\n Chain2[\"PALETTE_CHAIN_MAINNET\"] = \"1718\";\n Chain2[\"KONET_MAINNET\"] = \"17217\";\n Chain2[\"REYA_NETWORK\"] = \"1729\";\n Chain2[\"METAL_L2\"] = \"1750\";\n Chain2[\"DC_MAINNET\"] = \"176\";\n Chain2[\"HASHKEY_CHAIN\"] = \"177\";\n Chain2[\"PARTYCHAIN\"] = \"1773\";\n Chain2[\"GAUSS_MAINNET\"] = \"1777\";\n Chain2[\"EOS_EVM_NETWORK\"] = \"17777\";\n Chain2[\"ABEY_MAINNET\"] = \"179\";\n Chain2[\"AME_CHAIN_MAINNET\"] = \"180\";\n Chain2[\"MANDE_NETWORK_MAINNET\"] = \"18071918\";\n Chain2[\"SMART_TRADE_NETWORKS\"] = \"18122\";\n Chain2[\"PROOF_OF_MEMES\"] = \"18159\";\n Chain2[\"CUBE_CHAIN_MAINNET\"] = \"1818\";\n Chain2[\"IOST_MAINNET\"] = \"182\";\n Chain2[\"RUBY_SMART_CHAIN_MAINNET\"] = \"1821\";\n Chain2[\"PLAYBLOCK\"] = \"1829\";\n Chain2[\"ETHERNITY\"] = \"183\";\n Chain2[\"MINT_MAINNET\"] = \"185\";\n Chain2[\"HIGHOCTANE_SUBNET\"] = \"1853\";\n Chain2[\"SEELE_MAINNET\"] = \"186\";\n Chain2[\"SONEIUM\"] = \"1868\";\n Chain2[\"MXC_ZKEVM_MOONCHAIN\"] = \"18686\";\n Chain2[\"DOJIMA\"] = \"187\";\n Chain2[\"WHITECHAIN\"] = \"1875\";\n Chain2[\"BMC_MAINNET\"] = \"188\";\n Chain2[\"BITICA_CHAIN_MAINNET\"] = \"188710\";\n Chain2[\"TITAN_TKX\"] = \"18888\";\n Chain2[\"LIGHTLINK_PHOENIX_MAINNET\"] = \"1890\";\n Chain2[\"BON_NETWORK\"] = \"1898\";\n Chain2[\"REDEFI_LAYER_2\"] = \"1899\";\n Chain2[\"SONGBIRD_CANARY_NETWORK\"] = \"19\";\n Chain2[\"CMDAO_BBQ_CHAIN\"] = \"190\";\n Chain2[\"HOME_VERSE_MAINNET\"] = \"19011\";\n Chain2[\"SPORTS_CHAIN_NETWORK\"] = \"1904\";\n Chain2[\"BITCICHAIN_MAINNET\"] = \"1907\";\n Chain2[\"MERKLE_SCAN\"] = \"1909\";\n Chain2[\"SCALIND\"] = \"1911\";\n Chain2[\"LOCACHAIN_MAINNET\"] = \"19180\";\n Chain2[\"BLOCKX_MAINNET\"] = \"19191\";\n Chain2[\"DECENTRACONNECT_SOCIAL\"] = \"19224\";\n Chain2[\"SWELLCHAIN\"] = \"1923\";\n Chain2[\"GATHER_MAINNET_NETWORK\"] = \"192837465\";\n Chain2[\"CRYPTO_EMERGENCY\"] = \"193\";\n Chain2[\"R0AR_CHAIN\"] = \"193939\";\n Chain2[\"SEC_MAINNET\"] = \"19516\";\n Chain2[\"X_LAYER_MAINNET\"] = \"196\";\n Chain2[\"LBRY_MAINNET\"] = \"19600\";\n Chain2[\"SELENDRA_NETWORK_MAINNET\"] = \"1961\";\n Chain2[\"SUPER_SMART_CHAIN_MAINNET\"] = \"1970\";\n Chain2[\"ONUS_CHAIN_MAINNET\"] = \"1975\";\n Chain2[\"NTITY_MAINNET\"] = \"197710212030\";\n Chain2[\"BITCHAIN_MAINNET\"] = \"198\";\n Chain2[\"BTCIX_NETWORK\"] = \"19845\";\n Chain2[\"SATOSHIE\"] = \"1985\";\n Chain2[\"DEEPBRAINCHAIN_MAINNET\"] = \"19880818\";\n Chain2[\"BITTORRENT_CHAIN_MAINNET\"] = \"199\";\n Chain2[\"EKTA\"] = \"1994\";\n Chain2[\"SANKO\"] = \"1996\";\n Chain2[\"KYOTO\"] = \"1997\";\n Chain2[\"ULTRA_EVM_NETWORK\"] = \"19991\";\n Chain2[\"ELASTOS_SMART_CHAIN\"] = \"20\";\n Chain2[\"ARBITRUM_ON_XDAI\"] = \"200\";\n Chain2[\"DOGECHAIN_MAINNET\"] = \"2000\";\n Chain2[\"CAMELARK_MAINNET\"] = \"20001\";\n Chain2[\"MILKOMEDA_C1_MAINNET\"] = \"2001\";\n Chain2[\"MILKOMEDA_A1_MAINNET\"] = \"2002\";\n Chain2[\"ZOO_MAINNET\"] = \"200200\";\n Chain2[\"METALINK_NETWORK\"] = \"2004\";\n Chain2[\"NIZA_CHAIN_MAINNET\"] = \"20041\";\n Chain2[\"BITLAYER_MAINNET\"] = \"200901\";\n Chain2[\"ALAYA_MAINNET\"] = \"201018\";\n Chain2[\"MAINNETZ_MAINNET\"] = \"2016\";\n Chain2[\"MYTHICAL_CHAIN\"] = \"201804\";\n Chain2[\"SMARTMESH_MAINNET\"] = \"20180430\";\n Chain2[\"QUARKBLOCKCHAIN\"] = \"20181205\";\n Chain2[\"RONIN_MAINNET\"] = \"2020\";\n Chain2[\"PEGO_NETWORK\"] = \"20201022\";\n Chain2[\"EDGEWARE_EDGEEVM_MAINNET\"] = \"2021\";\n Chain2[\"BETHEL_SYDNEY\"] = \"202202\";\n Chain2[\"DBK_CHAIN\"] = \"20240603\";\n Chain2[\"BLOCKFIT\"] = \"202424\";\n Chain2[\"RANGERS_PROTOCOL_MAINNET\"] = \"2025\";\n Chain2[\"ETP_MAINNET\"] = \"20256789\";\n Chain2[\"EDGELESS_NETWORK\"] = \"2026\";\n Chain2[\"WOWCHAIN_MAINNET\"] = \"203\";\n Chain2[\"CENTRIFUGE\"] = \"2031\";\n Chain2[\"KIWI_SUBNET\"] = \"2037\";\n Chain2[\"ALEPH_ZERO\"] = \"2039\";\n Chain2[\"OPBNB_MAINNET\"] = \"204\";\n Chain2[\"VANAR_MAINNET\"] = \"2040\";\n Chain2[\"X1_NETWORK\"] = \"204005\";\n Chain2[\"XUSD_ONE_STABLECHAIN_MAINNET\"] = \"20441\";\n Chain2[\"SKALE_EUROPA_HUB\"] = \"2046399126\";\n Chain2[\"STRATOS\"] = \"2048\";\n Chain2[\"MOVO_SMART_CHAIN_MAINNET\"] = \"2049\";\n Chain2[\"VINUCHAIN_NETWORK\"] = \"207\";\n Chain2[\"METACCES_MAINNET\"] = \"2071\";\n Chain2[\"P12_CHAIN\"] = \"20736\";\n Chain2[\"JONO11_SUBNET\"] = \"20765\";\n Chain2[\"QUOKKACOIN_MAINNET\"] = \"2077\";\n Chain2[\"PLIAN_MAINNET_MAIN\"] = \"2099156\";\n Chain2[\"BITNET\"] = \"210\";\n Chain2[\"ECOBALL_MAINNET\"] = \"2100\";\n Chain2[\"CORN\"] = \"21000000\";\n Chain2[\"C4EI\"] = \"21004\";\n Chain2[\"PLATON_MAINNET\"] = \"210425\";\n Chain2[\"EXOSAMA_NETWORK\"] = \"2109\";\n Chain2[\"UCHAIN_MAINNET\"] = \"2112\";\n Chain2[\"ALL_ABOUT_HEALTHY\"] = \"21133\";\n Chain2[\"LITENTRY\"] = \"212013\";\n Chain2[\"CATENA_MAINNET\"] = \"2121\";\n Chain2[\"METAPLAYERONE_MAINNET\"] = \"2122\";\n Chain2[\"DCPAY_MAINNET\"] = \"21223\";\n Chain2[\"B2_HUB_MAINNET\"] = \"213\";\n Chain2[\"CENNZNET_AZALEA\"] = \"21337\";\n Chain2[\"LESTNET\"] = \"21363\";\n Chain2[\"SHINARIUM_MAINNET\"] = \"214\";\n Chain2[\"ONENESS_NETWORK\"] = \"2140\";\n Chain2[\"BOSAGORA_MAINNET\"] = \"2151\";\n Chain2[\"FINDORA_MAINNET\"] = \"2152\";\n Chain2[\"SIRIUSNET_V2\"] = \"217\";\n Chain2[\"OMCHAIN_MAINNET\"] = \"21816\";\n Chain2[\"GAME7\"] = \"2187\";\n Chain2[\"BSL_MAINNET\"] = \"21912\";\n Chain2[\"SNAXCHAIN\"] = \"2192\";\n Chain2[\"MOONSAMA_NETWORK\"] = \"2199\";\n Chain2[\"ANTOFY_MAINNET\"] = \"2202\";\n Chain2[\"TAYCAN\"] = \"22023\";\n Chain2[\"BITCOIN_EVM\"] = \"2203\";\n Chain2[\"MAS_MAINNET\"] = \"220315\";\n Chain2[\"EXCELON_MAINNET\"] = \"22052002\";\n Chain2[\"BLOCKEX_MAINNET\"] = \"221\";\n Chain2[\"REAPCHAIN_MAINNET\"] = \"221230\";\n Chain2[\"EVANESCO_MAINNET\"] = \"2213\";\n Chain2[\"KAVA\"] = \"2222\";\n Chain2[\"NAUTILUS_MAINNET\"] = \"22222\";\n Chain2[\"HYDRATION\"] = \"222222\";\n Chain2[\"COINWEB_BNB_SHARD\"] = \"2222222\";\n Chain2[\"VCHAIN_MAINNET\"] = \"2223\";\n Chain2[\"DEEPL_MAINNET\"] = \"222555\";\n Chain2[\"B2_MAINNET\"] = \"223\";\n Chain2[\"KREST_NETWORK\"] = \"2241\";\n Chain2[\"TAF_ECO_CHAIN_MAINNET\"] = \"224168\";\n Chain2[\"CONET_MAINNET\"] = \"224400\";\n Chain2[\"CONET_HOLESKY\"] = \"224433\";\n Chain2[\"LACHAIN_MAINNET\"] = \"225\";\n Chain2[\"PROM\"] = \"227\";\n Chain2[\"MAP_PROTOCOL\"] = \"22776\";\n Chain2[\"SWAPDEX\"] = \"230\";\n Chain2[\"BOMB_CHAIN\"] = \"2300\";\n Chain2[\"PREMIUMBLOCK\"] = \"23023\";\n Chain2[\"CRATD2C\"] = \"2310\";\n Chain2[\"LENS\"] = \"232\";\n Chain2[\"OASIS_SAPPHIRE\"] = \"23294\";\n Chain2[\"ALTCOINCHAIN\"] = \"2330\";\n Chain2[\"SOMA_NETWORK_MAINNET\"] = \"2332\";\n Chain2[\"OMNIA_CHAIN\"] = \"2342\";\n Chain2[\"GOAT_NETWORK\"] = \"2345\";\n Chain2[\"DREYERX_MAINNET\"] = \"23451\";\n Chain2[\"SILICON_ZKEVM\"] = \"2355\";\n Chain2[\"BLAST_ZKEVM_MAINNET\"] = \"238\";\n Chain2[\"TAC_MAINNET\"] = \"239\";\n Chain2[\"TCG_VERSE_MAINNET\"] = \"2400\";\n Chain2[\"K2_MAINNET\"] = \"2410\";\n Chain2[\"XODEX\"] = \"2415\";\n Chain2[\"PLINGA_MAINNET\"] = \"242\";\n Chain2[\"RUFUS\"] = \"2420\";\n Chain2[\"KING_OF_LEGENDS_MAINNET\"] = \"2425\";\n Chain2[\"NEON_EVM_MAINNET\"] = \"245022934\";\n Chain2[\"ENERGY_WEB_CHAIN\"] = \"246\";\n Chain2[\"HYBRID_CHAIN_NETWORK_MAINNET\"] = \"2468\";\n Chain2[\"SIX_DEGREE_OF_OUTREACH\"] = \"2477\";\n Chain2[\"OASYS_MAINNET\"] = \"248\";\n Chain2[\"NOW_CHAIN_MAINNET\"] = \"2488\";\n Chain2[\"CRONOS_MAINNET\"] = \"25\";\n Chain2[\"FANTOM_OPERA\"] = \"250\";\n Chain2[\"LIQUIDLAYER_MAINNET\"] = \"25186\";\n Chain2[\"FRAXTAL\"] = \"252\";\n Chain2[\"INEVM_MAINNET\"] = \"2525\";\n Chain2[\"GLIDE_L2_PROTOCOL_XP\"] = \"253\";\n Chain2[\"EVERCLEAR_MAINNET\"] = \"25327\";\n Chain2[\"FLAME\"] = \"253368190\";\n Chain2[\"SWAN_CHAIN_MAINNET\"] = \"254\";\n Chain2[\"KROMA\"] = \"255\";\n Chain2[\"BAHAMUT_HORIZON\"] = \"2552\";\n Chain2[\"CMP_MAINNET\"] = \"256256\";\n Chain2[\"TECHPAY_MAINNET\"] = \"2569\";\n Chain2[\"HAMMER_CHAIN_MAINNET\"] = \"25888\";\n Chain2[\"NEONLINK_MAINNET\"] = \"259\";\n Chain2[\"GURU_NETWORK\"] = \"260\";\n Chain2[\"PHO_BLOCKCHAIN_MAINNET\"] = \"2605\";\n Chain2[\"POCRNET\"] = \"2606\";\n Chain2[\"FERRUM_QUANTUM_PORTAL_NETWORK\"] = \"26100\";\n Chain2[\"REDLIGHT_CHAIN_MAINNET\"] = \"2611\";\n Chain2[\"EZCHAIN_C_CHAIN_MAINNET\"] = \"2612\";\n Chain2[\"SUR_BLOCKCHAIN_NETWORK\"] = \"262\";\n Chain2[\"DUCATUSX\"] = \"26483\";\n Chain2[\"AILAYER_MAINNET\"] = \"2649\";\n Chain2[\"HERTZ_NETWORK_MAINNET\"] = \"26600\";\n Chain2[\"OASISCHAIN_MAINNET\"] = \"26863\";\n Chain2[\"HIGH_PERFORMANCE_BLOCKCHAIN\"] = \"269\";\n Chain2[\"SHIBACHAIN\"] = \"27\";\n Chain2[\"XTERIO_CHAIN_ETH\"] = \"2702128\";\n Chain2[\"EXCOINCIAL_CHAIN_MAINNET\"] = \"27082022\";\n Chain2[\"EGONCOIN_MAINNET\"] = \"271\";\n Chain2[\"DCHAIN\"] = \"2716446429837000\";\n Chain2[\"K_LAOS\"] = \"2718\";\n Chain2[\"NXY_AREA_51\"] = \"272247\";\n Chain2[\"NXY_OASIS\"] = \"272520\";\n Chain2[\"XR_ONE\"] = \"273\";\n Chain2[\"LACHAIN\"] = \"274\";\n Chain2[\"ABSTRACT\"] = \"2741\";\n Chain2[\"NANON\"] = \"2748\";\n Chain2[\"GM_NETWORK_MAINNET\"] = \"2777\";\n Chain2[\"ZEROONE_MAINNET_SUBNET\"] = \"27827\";\n Chain2[\"RAZOR_SKALE_CHAIN\"] = \"278611351\";\n Chain2[\"BPX_CHAIN\"] = \"279\";\n Chain2[\"ATHENE_PARTHENON\"] = \"281123\";\n Chain2[\"MORPH\"] = \"2818\";\n Chain2[\"VIZING_MAINNET\"] = \"28518\";\n Chain2[\"BOBA_NETWORK\"] = \"288\";\n Chain2[\"AARMA_MAINNET\"] = \"2889\";\n Chain2[\"GENESIS_L1\"] = \"29\";\n Chain2[\"FLACHAIN_MAINNET\"] = \"29032022\";\n Chain2[\"ELUX_CHAIN\"] = \"2907\";\n Chain2[\"ORDERLY_MAINNET\"] = \"291\";\n Chain2[\"HYCHAIN\"] = \"2911\";\n Chain2[\"NEXA_METANET\"] = \"29223\";\n Chain2[\"DAVINCI\"] = \"293\";\n Chain2[\"HEDERA_MAINNET\"] = \"295\";\n Chain2[\"MCH_VERSE_MAINNET\"] = \"29548\";\n Chain2[\"HEDERA_PREVIEWNET\"] = \"297\";\n Chain2[\"BITYUAN_MAINNET\"] = \"2999\";\n Chain2[\"ROOTSTOCK_MAINNET\"] = \"30\";\n Chain2[\"QCHAIN_MAINNET\"] = \"30000\";\n Chain2[\"CENNZNET_NIKAU\"] = \"3001\";\n Chain2[\"CANXIUM_MAINNET\"] = \"3003\";\n Chain2[\"MIYOU_MAINNET\"] = \"30088\";\n Chain2[\"PLAYA3ULL_GAMES\"] = \"3011\";\n Chain2[\"BC_HYPER_CHAIN_MAINNET\"] = \"3030\";\n Chain2[\"ORLANDO_CHAIN\"] = \"3031\";\n Chain2[\"ZKSATS_MAINNET\"] = \"305\";\n Chain2[\"BIFROST_MAINNET\"] = \"3068\";\n Chain2[\"FURTHEON\"] = \"308\";\n Chain2[\"ONE_WORLD_CHAIN_MAINNET\"] = \"309075\";\n Chain2[\"OMAX_MAINNET\"] = \"311\";\n Chain2[\"ONELEDGER_MAINNET\"] = \"311752642\";\n Chain2[\"CLOUDTX_MAINNET\"] = \"31223\";\n Chain2[\"NEUROCHAIN_MAINNET\"] = \"313\";\n Chain2[\"FILECOIN_MAINNET\"] = \"314\";\n Chain2[\"WIREX_PAY_MAINNET\"] = \"31415\";\n Chain2[\"WORLDECOMONEY\"] = \"315\";\n Chain2[\"KCC_MAINNET\"] = \"321\";\n Chain2[\"PAREX_MAINNET\"] = \"322202\";\n Chain2[\"COSVM_MAINNET\"] = \"323\";\n Chain2[\"SANTIMENT_INTELLIGENCE_NETWORK\"] = \"32382\";\n Chain2[\"ZKSYNC_MAINNET\"] = \"324\";\n Chain2[\"BITGERT_MAINNET\"] = \"32520\";\n Chain2[\"FUSION_MAINNET\"] = \"32659\";\n Chain2[\"ZILLIQA_EVM\"] = \"32769\";\n Chain2[\"ZILLIQA_2_EVM_PROTO_MAINNET\"] = \"32770\";\n Chain2[\"NAL_MAINNET\"] = \"328527\";\n Chain2[\"ZILLIQA_EVM_ISOLATED_SERVER\"] = \"32990\";\n Chain2[\"ENTANGLE_MAINNET\"] = \"33033\";\n Chain2[\"TTCOIN_SMART_CHAIN_MAINNET\"] = \"330844\";\n Chain2[\"CURTIS\"] = \"33111\";\n Chain2[\"APECHAIN\"] = \"33139\";\n Chain2[\"CLOUDVERSE_SUBNET\"] = \"33210\";\n Chain2[\"WEB3Q_MAINNET\"] = \"333\";\n Chain2[\"MELD\"] = \"333000333\";\n Chain2[\"BLOOM_GENESIS_MAINNET\"] = \"333313\";\n Chain2[\"AVES_MAINNET\"] = \"33333\";\n Chain2[\"WEB3Q_GALILEO\"] = \"3334\";\n Chain2[\"PEAQ\"] = \"3338\";\n Chain2[\"SLINGSHOT\"] = \"33401\";\n Chain2[\"SHIDEN\"] = \"336\";\n Chain2[\"MERONEUM\"] = \"3366\";\n Chain2[\"UPCHAIN_MAINNET\"] = \"336666\";\n Chain2[\"FUNKI\"] = \"33979\";\n Chain2[\"SECURECHAIN_MAINNET\"] = \"34\";\n Chain2[\"PARIBU_NET_MAINNET\"] = \"3400\";\n Chain2[\"EVOLVE_MAINNET\"] = \"3424\";\n Chain2[\"MODE\"] = \"34443\";\n Chain2[\"TSC_MAINNET\"] = \"345\";\n Chain2[\"ZEUS_MAINNET\"] = \"34504\";\n Chain2[\"GTCSCAN\"] = \"3490\";\n Chain2[\"CITRONUS_CITRO\"] = \"34949059\";\n Chain2[\"JFIN_CHAIN\"] = \"3501\";\n Chain2[\"J2O_TARO\"] = \"35011\";\n Chain2[\"JFINPOS\"] = \"3502\";\n Chain2[\"Q_MAINNET\"] = \"35441\";\n Chain2[\"BITFINITY_NETWORK_MAINNET\"] = \"355110\";\n Chain2[\"DXCHAIN_MAINNET\"] = \"36\";\n Chain2[\"SHAPE\"] = \"360\";\n Chain2[\"PANDOPROJECT_MAINNET\"] = \"3601\";\n Chain2[\"LAVITA_MAINNET\"] = \"360890\";\n Chain2[\"THETA_MAINNET\"] = \"361\";\n Chain2[\"DIGIT_SOUL_SMART_CHAIN_2\"] = \"363636\";\n Chain2[\"BOTANIX_MAINNET\"] = \"3637\";\n Chain2[\"ICHAIN_NETWORK\"] = \"3639\";\n Chain2[\"JOULEVERSE_MAINNET\"] = \"3666\";\n Chain2[\"PULSECHAIN\"] = \"369\";\n Chain2[\"BITTEX_MAINNET\"] = \"3690\";\n Chain2[\"EMPIRE_NETWORK\"] = \"3693\";\n Chain2[\"SENJEPOWERS_MAINNET\"] = \"3699\";\n Chain2[\"XPLA_MAINNET\"] = \"37\";\n Chain2[\"CROSSBELL\"] = \"3737\";\n Chain2[\"ASTAR_ZKEVM\"] = \"3776\";\n Chain2[\"ALVEYCHAIN_MAINNET\"] = \"3797\";\n Chain2[\"ZKAMOEBA_MAINNET\"] = \"381\";\n Chain2[\"METAL_C_CHAIN\"] = \"381931\";\n Chain2[\"METAL_TAHOE_C_CHAIN\"] = \"381932\";\n Chain2[\"ZENIQ\"] = \"383414847825\";\n Chain2[\"CONNECTORMANAGER\"] = \"38400\";\n Chain2[\"CONNECTORMANAGER_ROBIN\"] = \"38401\";\n Chain2[\"CRONOS_ZKEVM_MAINNET\"] = \"388\";\n Chain2[\"KALYCHAIN_MAINNET\"] = \"3888\";\n Chain2[\"U2U_SOLARIS_MAINNET\"] = \"39\";\n Chain2[\"DRAC_NETWORK\"] = \"3912\";\n Chain2[\"PRM_MAINNET\"] = \"39656\";\n Chain2[\"DYNO_MAINNET\"] = \"3966\";\n Chain2[\"PAYNETWORK_MAINNET\"] = \"3969\";\n Chain2[\"NEAR_PROTOCOL\"] = \"397\";\n Chain2[\"OHO_MAINNET\"] = \"39815\";\n Chain2[\"NATIV3_MAINNET\"] = \"399\";\n Chain2[\"KINGDOM_CHAIN\"] = \"39916801\";\n Chain2[\"YUANCHAIN_MAINNET\"] = \"3999\";\n Chain2[\"TELOS_EVM_MAINNET\"] = \"40\";\n Chain2[\"OZONE_CHAIN_MAINNET\"] = \"4000\";\n Chain2[\"DIV_CHAIN\"] = \"40000\";\n Chain2[\"ALTLAYER_ZERO_GAS_NETWORK\"] = \"4000003\";\n Chain2[\"X1_FASTNET\"] = \"4003\";\n Chain2[\"SYNDR_L3\"] = \"404\";\n Chain2[\"TIPBOXCOIN_MAINNET\"] = \"404040\";\n Chain2[\"BAHAMUT_OCEAN\"] = \"4058\";\n Chain2[\"NAHMII_3_MAINNET\"] = \"4061\";\n Chain2[\"MUSTER_MAINNET\"] = \"4078\";\n Chain2[\"ZEROTH_MAINNET\"] = \"4088\";\n Chain2[\"BITINDI_MAINNET\"] = \"4099\";\n Chain2[\"PEPE_CHAIN_MAINNET\"] = \"411\";\n Chain2[\"ALEPH_ZERO_EVM\"] = \"41455\";\n Chain2[\"OPULENT_X_BETA\"] = \"41500\";\n Chain2[\"CROSSFI_MAINNET\"] = \"4158\";\n Chain2[\"SX_NETWORK_MAINNET\"] = \"416\";\n Chain2[\"SX_ROLLUP\"] = \"4162\";\n Chain2[\"PHI_NETWORK_V1\"] = \"4181\";\n Chain2[\"EDU_CHAIN\"] = \"41923\";\n Chain2[\"LUKSO_MAINNET\"] = \"42\";\n Chain2[\"MERLIN_MAINNET\"] = \"4200\";\n Chain2[\"INFINAEON\"] = \"420000\";\n Chain2[\"PMON_CHAIN\"] = \"42001\";\n Chain2[\"VECTOR_SMART_CHAIN\"] = \"420042\";\n Chain2[\"DONATUZ\"] = \"42026\";\n Chain2[\"KEKCHAIN\"] = \"420420\";\n Chain2[\"WESTEND_ASSET_HUB\"] = \"420420421\";\n Chain2[\"ARBITRUM_ONE\"] = \"42161\";\n Chain2[\"ARBITRUM_NOVA\"] = \"42170\";\n Chain2[\"VIRIDIS_MAINNET\"] = \"422\";\n Chain2[\"CELO_MAINNET\"] = \"42220\";\n Chain2[\"OASIS_EMERALD\"] = \"42262\";\n Chain2[\"GOLDXCHAIN_MAINNET\"] = \"42355\";\n Chain2[\"PGN_PUBLIC_GOODS_NETWORK\"] = \"424\";\n Chain2[\"NEXI_MAINNET\"] = \"4242\";\n Chain2[\"ASSET_CHAIN_MAINNET\"] = \"42420\";\n Chain2[\"NEXI_V2_MAINNET\"] = \"4243\";\n Chain2[\"STENIX_MAINNET\"] = \"425\";\n Chain2[\"THE_WIDOWS_MITE\"] = \"426\";\n Chain2[\"ZEETH_CHAIN\"] = \"427\";\n Chain2[\"ZKFAIR_MAINNET\"] = \"42766\";\n Chain2[\"ETHERLINK_MAINNET\"] = \"42793\";\n Chain2[\"GESO_VERSE\"] = \"428\";\n Chain2[\"HEMI_NETWORK\"] = \"43111\";\n Chain2[\"AVALANCHE_C_CHAIN\"] = \"43114\";\n Chain2[\"ECHOS_CHAIN\"] = \"4321\";\n Chain2[\"DEXALOT_SUBNET\"] = \"432204\";\n Chain2[\"BEAM\"] = \"4337\";\n Chain2[\"BOYAA_MAINNET\"] = \"434\";\n Chain2[\"CRAB_NETWORK\"] = \"44\";\n Chain2[\"CREDIT_SMART_CHAIN_MAINNET\"] = \"4400\";\n Chain2[\"GRAPHITE_MAINNET\"] = \"440017\";\n Chain2[\"HTMLCOIN_MAINNET\"] = \"4444\";\n Chain2[\"FRENCHAIN\"] = \"44444\";\n Chain2[\"QUANTUM_NETWORK\"] = \"44445\";\n Chain2[\"HYDRA_CHAIN\"] = \"4488\";\n Chain2[\"AUTOBAHN_NETWORK\"] = \"45000\";\n Chain2[\"EMONEY_NETWORK_MAINNET\"] = \"4545\";\n Chain2[\"SWAMPS_L2\"] = \"45454\";\n Chain2[\"DEELANCE_MAINNET\"] = \"45510\";\n Chain2[\"BLESSNET\"] = \"45513\";\n Chain2[\"ARZIO_CHAIN\"] = \"456\";\n Chain2[\"DARWINIA_NETWORK\"] = \"46\";\n Chain2[\"VERY_MAINNET\"] = \"4613\";\n Chain2[\"AREON_NETWORK_MAINNET\"] = \"463\";\n Chain2[\"MST_CHAIN\"] = \"4646\";\n Chain2[\"APPCHAIN\"] = \"466\";\n Chain2[\"IOTEX_NETWORK_MAINNET\"] = \"4689\";\n Chain2[\"ACRIA_INTELLICHAIN\"] = \"47\";\n Chain2[\"ULTRA_PRO_MAINNET\"] = \"473861\";\n Chain2[\"OPENCHAIN_MAINNET\"] = \"474142\";\n Chain2[\"NEO_X_MAINNET\"] = \"47763\";\n Chain2[\"FORM_NETWORK\"] = \"478\";\n Chain2[\"REDEFI_LAYER_1\"] = \"47803\";\n Chain2[\"REI_NETWORK\"] = \"47805\";\n Chain2[\"ENNOTHEM_MAINNET_PROTEROZOIC\"] = \"48\";\n Chain2[\"WORLD_CHAIN\"] = \"480\";\n Chain2[\"ZIRCUIT_MAINNET\"] = \"48900\";\n Chain2[\"GLOBEL_CHAIN\"] = \"4893\";\n Chain2[\"OEV_NETWORK\"] = \"4913\";\n Chain2[\"VENIDIUM_MAINNET\"] = \"4919\";\n Chain2[\"RUPAYA\"] = \"499\";\n Chain2[\"XDC_NETWORK\"] = \"50\";\n Chain2[\"CAMINO_C_CHAIN\"] = \"500\";\n Chain2[\"MANTLE\"] = \"5000\";\n Chain2[\"CITRONUS\"] = \"50000\";\n Chain2[\"YOOLDO_VERSE_MAINNET\"] = \"50005\";\n Chain2[\"TREASURENET_MAINNET_ALPHA\"] = \"5002\";\n Chain2[\"SOPHON\"] = \"50104\";\n Chain2[\"ONIGIRI_SUBNET\"] = \"5040\";\n Chain2[\"PLAYDAPP_NETWORK\"] = \"504441\";\n Chain2[\"SKATE_MAINNET\"] = \"5050\";\n Chain2[\"PIONEER_ZERO_CHAIN\"] = \"5080\";\n Chain2[\"ERBIE_MAINNET\"] = \"50888\";\n Chain2[\"XDC_APOTHEM_NETWORK\"] = \"51\";\n Chain2[\"SYNDICATE_CHAIN\"] = \"510\";\n Chain2[\"HAM\"] = \"5112\";\n Chain2[\"NUMBLOCK_CHAIN\"] = \"5112023\";\n Chain2[\"DOUBLE_A_CHAIN_MAINNET\"] = \"512\";\n Chain2[\"DISCHAIN\"] = \"513100\";\n Chain2[\"BAHAMUT\"] = \"5165\";\n Chain2[\"SMART_LAYER_NETWORK\"] = \"5169\";\n Chain2[\"SARDIS_MAINNET\"] = \"51712\";\n Chain2[\"TLCHAIN_NETWORK_MAINNET\"] = \"5177\";\n Chain2[\"COINEX_SMART_CHAIN_MAINNET\"] = \"52\";\n Chain2[\"XT_SMART_CHAIN_MAINNET\"] = \"520\";\n Chain2[\"ELECTRONEUM_MAINNET\"] = \"52014\";\n Chain2[\"HUMANODE_MAINNET\"] = \"5234\";\n Chain2[\"DOCOIN_COMMUNITY_CHAIN\"] = \"526916\";\n Chain2[\"FXCORE_MAINNET_NETWORK\"] = \"530\";\n Chain2[\"DOID\"] = \"53277\";\n Chain2[\"SUPERSEED\"] = \"5330\";\n Chain2[\"NETSBO\"] = \"5333\";\n Chain2[\"CANDLE\"] = \"534\";\n Chain2[\"SCROLL\"] = \"534352\";\n Chain2[\"SHINARIUM_BETA\"] = \"534849\";\n Chain2[\"BEANECO_SMARTCHAIN\"] = \"535037\";\n Chain2[\"OPTRUST_MAINNET\"] = \"537\";\n Chain2[\"SETTLUS\"] = \"5371\";\n Chain2[\"DFK_CHAIN\"] = \"53935\";\n Chain2[\"OPENPIECE_MAINNET\"] = \"54\";\n Chain2[\"OVERPROTOCOL_MAINNET\"] = \"54176\";\n Chain2[\"EDEXA_MAINNET\"] = \"5424\";\n Chain2[\"ZERO_NETWORK\"] = \"543210\";\n Chain2[\"EGOCHAIN\"] = \"5439\";\n Chain2[\"SAGA\"] = \"5464\";\n Chain2[\"ZYX_MAINNET\"] = \"55\";\n Chain2[\"RIVER\"] = \"550\";\n Chain2[\"TITAN\"] = \"55004\";\n Chain2[\"POINTPAY_MAINNET\"] = \"5511\";\n Chain2[\"SUPERPOSITION\"] = \"55244\";\n Chain2[\"VELA1_CHAIN_MAINNET\"] = \"555\";\n Chain2[\"NAHMII_2_MAINNET\"] = \"5551\";\n Chain2[\"CHAIN_VERSE_MAINNET\"] = \"5555\";\n Chain2[\"REI_CHAIN_MAINNET\"] = \"55555\";\n Chain2[\"IMVERSED_MAINNET\"] = \"5555555\";\n Chain2[\"DUSTBOY_IOT\"] = \"555888\";\n Chain2[\"FLAMMA_MAINNET\"] = \"55614\";\n Chain2[\"BNB_SMART_CHAIN_MAINNET\"] = \"56\";\n Chain2[\"LAMBDA_CHAIN_MAINNET\"] = \"56026\";\n Chain2[\"BOBA_BNB_MAINNET\"] = \"56288\";\n Chain2[\"QIE_BLOCKCHAIN\"] = \"5656\";\n Chain2[\"TANSSI_DEMO\"] = \"5678\";\n Chain2[\"VELO_LABS_MAINNET\"] = \"56789\";\n Chain2[\"SYSCOIN_MAINNET\"] = \"57\";\n Chain2[\"ROLLUX_MAINNET\"] = \"570\";\n Chain2[\"INK\"] = \"57073\";\n Chain2[\"METACHAIN_MAINNET\"] = \"571\";\n Chain2[\"COINSEC_NETWORK\"] = \"57451\";\n Chain2[\"FILENOVA_MAINNET\"] = \"579\";\n Chain2[\"ONTOLOGY_MAINNET\"] = \"58\";\n Chain2[\"TANGLE\"] = \"5845\";\n Chain2[\"CHANG_CHAIN_FOUNDATION_MAINNET\"] = \"5858\";\n Chain2[\"WEGOCHAIN_RUBIDIUM_MAINNET\"] = \"5869\";\n Chain2[\"LINEA\"] = \"59144\";\n Chain2[\"ASTAR\"] = \"592\";\n Chain2[\"GENESYS_CODE_MAINNET\"] = \"59971\";\n Chain2[\"GOCHAIN\"] = \"60\";\n Chain2[\"BOUNCEBIT_MAINNET\"] = \"6001\";\n Chain2[\"TRES_MAINNET\"] = \"6066\";\n Chain2[\"BOB\"] = \"60808\";\n Chain2[\"ETHEREUM_CLASSIC\"] = \"61\";\n Chain2[\"ORANGE_CHAIN_MAINNET\"] = \"61022\";\n Chain2[\"TREASURE\"] = \"61166\";\n Chain2[\"UPTN\"] = \"6119\";\n Chain2[\"EIOB_MAINNET\"] = \"612\";\n Chain2[\"GRAPHLINQ_BLOCKCHAIN_MAINNET\"] = \"614\";\n Chain2[\"KAICHAIN\"] = \"61406\";\n Chain2[\"ETICA_MAINNET\"] = \"61803\";\n Chain2[\"SKYNET\"] = \"619\";\n Chain2[\"DOKEN_SUPER_CHAIN_MAINNET\"] = \"61916\";\n Chain2[\"OPTOPIA_MAINNET\"] = \"62050\";\n Chain2[\"HYPRA_MAINNET\"] = \"622277\";\n Chain2[\"BINARY_MAINNET\"] = \"624\";\n Chain2[\"MULTIVAC_MAINNET\"] = \"62621\";\n Chain2[\"RAILS\"] = \"6278\";\n Chain2[\"LAOS\"] = \"6283\";\n Chain2[\"ESYNC_NETWORK_MAINNET\"] = \"63000\";\n Chain2[\"GEIST_MAINNET\"] = \"63157\";\n Chain2[\"NFB_CHAIN\"] = \"632\";\n Chain2[\"AURA_MAINNET\"] = \"6322\";\n Chain2[\"AVOCADO\"] = \"634\";\n Chain2[\"BEAR_NETWORK_CHAIN_MAINNET\"] = \"641230\";\n Chain2[\"ENDURANCE_SMART_CHAIN_MAINNET\"] = \"648\";\n Chain2[\"ALL_MAINNET\"] = \"651940\";\n Chain2[\"VECNO_MAINNET\"] = \"65357\";\n Chain2[\"KALICHAIN\"] = \"654\";\n Chain2[\"SCOLCOIN_MAINNET\"] = \"65450\";\n Chain2[\"CYBERCHAIN_MAINNET\"] = \"65535\";\n Chain2[\"AUTOMATA_MAINNET\"] = \"65536\";\n Chain2[\"OKXCHAIN_MAINNET\"] = \"66\";\n Chain2[\"XAI_MAINNET\"] = \"660279\";\n Chain2[\"ULTRONSMARTCHAIN\"] = \"662\";\n Chain2[\"PIXIE_CHAIN_MAINNET\"] = \"6626\";\n Chain2[\"CYBRIA_MAINNET\"] = \"6661\";\n Chain2[\"PDC_MAINNET\"] = \"666301171999\";\n Chain2[\"SAFEANWANG_MAINNET\"] = \"6666665\";\n Chain2[\"DEGEN_CHAIN\"] = \"666666666\";\n Chain2[\"STORCHAIN\"] = \"6667\";\n Chain2[\"EDGE_MATRIX_CHAIN\"] = \"6678\";\n Chain2[\"JUNCACHAIN\"] = \"668\";\n Chain2[\"CONWAI_MAINNET\"] = \"668668\";\n Chain2[\"IRISHUB\"] = \"6688\";\n Chain2[\"PAXB_MAINNET\"] = \"6701\";\n Chain2[\"COMPVERSE_MAINNET\"] = \"6779\";\n Chain2[\"GOLD_SMART_CHAIN_MAINNET\"] = \"6789\";\n Chain2[\"RACE_MAINNET\"] = \"6805\";\n Chain2[\"KARURA_NETWORK\"] = \"686\";\n Chain2[\"POOLS_MAINNET\"] = \"6868\";\n Chain2[\"WON_NETWORK\"] = \"686868\";\n Chain2[\"DM2_VERSE_MAINNET\"] = \"68770\";\n Chain2[\"MTT_MAINNET\"] = \"6880\";\n Chain2[\"REDSTONE\"] = \"690\";\n Chain2[\"LAIKA_MAINNET\"] = \"6942\";\n Chain2[\"TOMB_CHAIN_MAINNET\"] = \"6969\";\n Chain2[\"MATCHAIN\"] = \"698\";\n Chain2[\"THAICHAIN\"] = \"7\";\n Chain2[\"HOO_SMART_CHAIN\"] = \"70\";\n Chain2[\"ZETACHAIN_MAINNET\"] = \"7000\";\n Chain2[\"THINKIUM_MAINNET_CHAIN_0\"] = \"70000\";\n Chain2[\"THINKIUM_MAINNET_CHAIN_1\"] = \"70001\";\n Chain2[\"THINKIUM_MAINNET_CHAIN_2\"] = \"70002\";\n Chain2[\"BST_CHAIN\"] = \"7007\";\n Chain2[\"THINKIUM_MAINNET_CHAIN_103\"] = \"70103\";\n Chain2[\"ELLA_THE_HEART\"] = \"7027\";\n Chain2[\"FIDESINNOVA\"] = \"706883\";\n Chain2[\"BLOCKCHAIN_STATION_MAINNET\"] = \"707\";\n Chain2[\"PLANQ_MAINNET\"] = \"7070\";\n Chain2[\"PROOF_OF_PLAY_APEX\"] = \"70700\";\n Chain2[\"PROOF_OF_PLAY_BOSS\"] = \"70701\";\n Chain2[\"HIGHBURY\"] = \"710\";\n Chain2[\"NUME\"] = \"7100\";\n Chain2[\"TILTYARD_MAINNET_SUBNET\"] = \"710420\";\n Chain2[\"GUAPCOINX\"] = \"71111\";\n Chain2[\"ZERO_XL3\"] = \"7117\";\n Chain2[\"VRCSCAN_MAINNET\"] = \"713\";\n Chain2[\"GODWOKEN_MAINNET\"] = \"71402\";\n Chain2[\"ZETHER_MAINNET\"] = \"715131\";\n Chain2[\"BITROCK_MAINNET\"] = \"7171\";\n Chain2[\"SHIBARIUM_BETA\"] = \"719\";\n Chain2[\"EXSAT_MAINNET\"] = \"7200\";\n Chain2[\"LYCAN_CHAIN\"] = \"721\";\n Chain2[\"ERAM_MAINNET\"] = \"721529\";\n Chain2[\"SAAKURU_MAINNET\"] = \"7225878\";\n Chain2[\"INITVERSE_MAINNET\"] = \"7233\";\n Chain2[\"TRON_MAINNET\"] = \"728126428\";\n Chain2[\"CAGA_MAINNET\"] = \"72888\";\n Chain2[\"GROK_CHAIN_MAINNET\"] = \"72992\";\n Chain2[\"FNCY\"] = \"73\";\n Chain2[\"LOVELY_NETWORK_MAINNET\"] = \"730\";\n Chain2[\"XPLA_VERSE\"] = \"7300\";\n Chain2[\"ICB_NETWORK\"] = \"73115\";\n Chain2[\"HORIZEN_EON_MAINNET\"] = \"7332\";\n Chain2[\"SHYFT_MAINNET\"] = \"7341\";\n Chain2[\"OPENVESSEL\"] = \"7355310\";\n Chain2[\"MIXIN_VIRTUAL_MACHINE\"] = \"73927\";\n Chain2[\"IDCHAIN_MAINNET\"] = \"74\";\n Chain2[\"TRANCHED_MAINNET\"] = \"743\";\n Chain2[\"EVM_ON_FLOW\"] = \"747\";\n Chain2[\"RABA_NETWORK_MAINNET\"] = \"7484\";\n Chain2[\"DECIMAL_SMART_CHAIN_MAINNET\"] = \"75\";\n Chain2[\"MEVERSE_CHAIN_MAINNET\"] = \"7518\";\n Chain2[\"TERNOA\"] = \"752025\";\n Chain2[\"RIVALZ\"] = \"753\";\n Chain2[\"GEEK_VERSE_MAINNET\"] = \"75512\";\n Chain2[\"CYBER_MAINNET\"] = \"7560\";\n Chain2[\"PAYSCAN_CHAIN\"] = \"756689\";\n Chain2[\"ADIL_CHAIN_V2_MAINNET\"] = \"7576\";\n Chain2[\"MIEXS_SMARTCHAIN\"] = \"761412\";\n Chain2[\"QL1\"] = \"766\";\n Chain2[\"THE_ROOT_NETWORK_MAINNET\"] = \"7668\";\n Chain2[\"POA_NETWORK_SOKOL\"] = \"77\";\n Chain2[\"CANTO\"] = \"7700\";\n Chain2[\"BORACHAIN_MAINNET\"] = \"77001\";\n Chain2[\"VENTION_SMART_CHAIN_MAINNET\"] = \"77612\";\n Chain2[\"MODULARIUM\"] = \"776877\";\n Chain2[\"GDCC_MAINNET\"] = \"7774\";\n Chain2[\"PANDASEA_MAINNET\"] = \"7776\";\n Chain2[\"TORONET_MAINNET\"] = \"77777\";\n Chain2[\"ZORA\"] = \"7777777\";\n Chain2[\"ORENIUM_MAINNET_PROTOCOL\"] = \"7778\";\n Chain2[\"DRAGONFLY_MAINNET_HEXAPOD\"] = \"78281\";\n Chain2[\"AMPLIFY_SUBNET\"] = \"78430\";\n Chain2[\"BULLETIN_SUBNET\"] = \"78431\";\n Chain2[\"CONDUIT_SUBNET\"] = \"78432\";\n Chain2[\"MAAL_CHAIN\"] = \"786\";\n Chain2[\"MAALCHAIN_V2\"] = \"7862\";\n Chain2[\"POWERLOOM_MAINNET\"] = \"7865\";\n Chain2[\"ZEBRO_SMART_CHAIN\"] = \"786786\";\n Chain2[\"ACALA_NETWORK\"] = \"787\";\n Chain2[\"KINTO_MAINNET\"] = \"7887\";\n Chain2[\"PATEX\"] = \"789\";\n Chain2[\"ARDENIUM_ATHENA\"] = \"7895\";\n Chain2[\"ARENA_Z\"] = \"7897\";\n Chain2[\"ZENITH_MAINNET\"] = \"79\";\n Chain2[\"DOT_BLOX\"] = \"7923\";\n Chain2[\"MO_MAINNET\"] = \"7924\";\n Chain2[\"SX_TORONTO_ROLLUP\"] = \"79479957\";\n Chain2[\"DOS_CHAIN\"] = \"7979\";\n Chain2[\"UBIQ\"] = \"8\";\n Chain2[\"GENECHAIN\"] = \"80\";\n Chain2[\"LUCID_BLOCKCHAIN\"] = \"800\";\n Chain2[\"TELEPORT\"] = \"8000\";\n Chain2[\"OCTASPACE\"] = \"800001\";\n Chain2[\"PLIAN_MAINNET_SUBCHAIN_1\"] = \"8007736\";\n Chain2[\"POLYNOMIAL\"] = \"8008\";\n Chain2[\"FHENIX_HELIUM\"] = \"8008135\";\n Chain2[\"BERACHAIN\"] = \"80094\";\n Chain2[\"HIZOCO_MAINNET\"] = \"80096\";\n Chain2[\"ISUNCOIN_MAINNET\"] = \"8017\";\n Chain2[\"BOAT_MAINNET\"] = \"8047\";\n Chain2[\"EVOZ_MAINNET\"] = \"805\";\n Chain2[\"SHARDEUM_LIBERTY_1_X\"] = \"8080\";\n Chain2[\"HOKUM\"] = \"8080808\";\n Chain2[\"SHARDEUM_LIBERTY_2_X\"] = \"8081\";\n Chain2[\"SHARDEUM_SPHINX_1_X\"] = \"8082\";\n Chain2[\"FORTA_CHAIN\"] = \"80931\";\n Chain2[\"JAPAN_OPEN_CHAIN_MAINNET\"] = \"81\";\n Chain2[\"ZKLINK_NOVA_MAINNET\"] = \"810180\";\n Chain2[\"NORDEK_MAINNET\"] = \"81041\";\n Chain2[\"SG_VERSE_MAINNET\"] = \"812397\";\n Chain2[\"QITMEER_NETWORK_MAINNET\"] = \"813\";\n Chain2[\"BLAST\"] = \"81457\";\n Chain2[\"QUANTUM_CHAIN_MAINNET\"] = \"81720\";\n Chain2[\"BEONE_CHAIN_MAINNET\"] = \"818\";\n Chain2[\"TORUS_MAINNET\"] = \"8192\";\n Chain2[\"METER_MAINNET\"] = \"82\";\n Chain2[\"CALLISTO_MAINNET\"] = \"820\";\n Chain2[\"KAIA_MAINNET\"] = \"8217\";\n Chain2[\"SPACE_SUBNET\"] = \"8227\";\n Chain2[\"DAILY_NETWORK_MAINNET\"] = \"824\";\n Chain2[\"VEMP_HORIZON\"] = \"82614\";\n Chain2[\"BLOCKTON_BLOCKCHAIN\"] = \"8272\";\n Chain2[\"CURVE_MAINNET\"] = \"827431\";\n Chain2[\"LORENZO\"] = \"8329\";\n Chain2[\"B3\"] = \"8333\";\n Chain2[\"ZEDXION\"] = \"83872\";\n Chain2[\"TARAXA_MAINNET\"] = \"841\";\n Chain2[\"THAT_MAINNET\"] = \"8428\";\n Chain2[\"BASE\"] = \"8453\";\n Chain2[\"O_CHAIN\"] = \"84841\";\n Chain2[\"AERIE_NETWORK\"] = \"84886\";\n Chain2[\"HONGKONG_MAINNET\"] = \"852\";\n Chain2[\"DODAO\"] = \"855456\";\n Chain2[\"GATECHAIN_MAINNET\"] = \"86\";\n Chain2[\"ELECTRA_NETWORK\"] = \"861\";\n Chain2[\"HELA_OFFICIAL_RUNTIME_MAINNET\"] = \"8668\";\n Chain2[\"FANTASIA_CHAIN_MAINNET\"] = \"868\";\n Chain2[\"NOVA_NETWORK\"] = \"87\";\n Chain2[\"TOOL_GLOBAL_MAINNET\"] = \"8723\";\n Chain2[\"STORAGECHAIN_MAINNET\"] = \"8726\";\n Chain2[\"BULLIONS_SMART_CHAIN\"] = \"8732\";\n Chain2[\"ALPH_NETWORK\"] = \"8738\";\n Chain2[\"BANDAI_NAMCO_RESEARCH_VERSE_MAINNET\"] = \"876\";\n Chain2[\"DEXIT_NETWORK\"] = \"877\";\n Chain2[\"BLOCX_MAINNET\"] = \"879151\";\n Chain2[\"HAPCHAIN\"] = \"8794598\";\n Chain2[\"AMBROS_CHAIN_MAINNET\"] = \"880\";\n Chain2[\"HAVEN1\"] = \"8811\";\n Chain2[\"IOTA_EVM\"] = \"8822\";\n Chain2[\"MARO_BLOCKCHAIN_MAINNET\"] = \"8848\";\n Chain2[\"INOAI\"] = \"88559\";\n Chain2[\"SUPERLUMIO\"] = \"8866\";\n Chain2[\"LIF3_CHAIN\"] = \"8869\";\n Chain2[\"WANCHAIN\"] = \"888\";\n Chain2[\"UNIQUE\"] = \"8880\";\n Chain2[\"ZKASINO_MAINNET\"] = \"88800\";\n Chain2[\"QUARTZ_BY_UNIQUE\"] = \"8881\";\n Chain2[\"UNIT_ZERO_STAGENET\"] = \"88819\";\n Chain2[\"SAPPHIRE_BY_UNIQUE\"] = \"8883\";\n Chain2[\"XANACHAIN\"] = \"8888\";\n Chain2[\"CHILIZ_CHAIN_MAINNET\"] = \"88888\";\n Chain2[\"REXX_MAINNET\"] = \"888882\";\n Chain2[\"VISION_MAINNET\"] = \"888888\";\n Chain2[\"T_E_A_M_BLOCKCHAIN\"] = \"88888888\";\n Chain2[\"ANCIENT8\"] = \"888888888\";\n Chain2[\"UNITE\"] = \"88899\";\n Chain2[\"MAMMOTH_MAINNET\"] = \"8898\";\n Chain2[\"JIBCHAIN_L1\"] = \"8899\";\n Chain2[\"PTCESCAN_MAINNET\"] = \"889910246\";\n Chain2[\"ALGEN\"] = \"8911\";\n Chain2[\"ALGEN_LAYER2\"] = \"8921\";\n Chain2[\"REYA_CRONOS\"] = \"89346162\";\n Chain2[\"GIANT_MAMMOTH_MAINNET\"] = \"8989\";\n Chain2[\"MAXI_CHAIN_MAINNET\"] = \"899\";\n Chain2[\"GARIZON_STAGE0\"] = \"90\";\n Chain2[\"POSICHAIN_MAINNET_SHARD_0\"] = \"900000\";\n Chain2[\"UBIT_SMARTCHAIN_MAINNET\"] = \"90002\";\n Chain2[\"EVMOS\"] = \"9001\";\n Chain2[\"SHIDO_MAINNET_BLOCK\"] = \"9008\";\n Chain2[\"BERYLBIT_MAINNET\"] = \"9012\";\n Chain2[\"NEXA_MAINNET_BLOCK\"] = \"9025\";\n Chain2[\"GARIZON_STAGE1\"] = \"91\";\n Chain2[\"TAPROOT_MAINNET\"] = \"911\";\n Chain2[\"HENEZ_CHAIN_MAINNET\"] = \"91111\";\n Chain2[\"METADAP_ENTERPRISE_MAINNET\"] = \"91120\";\n Chain2[\"ASTRIA_EVM_DUSKNET\"] = \"912559\";\n Chain2[\"SLERFCHAIN_MAINNET\"] = \"918\";\n Chain2[\"GARIZON_STAGE2\"] = \"92\";\n Chain2[\"CODEFIN_MAINNET\"] = \"9223\";\n Chain2[\"YIDARK_CHAIN_MAINNET\"] = \"927\";\n Chain2[\"GARIZON_STAGE3\"] = \"93\";\n Chain2[\"XCAP\"] = \"9322252\";\n Chain2[\"HAUST_MAINNET\"] = \"938\";\n Chain2[\"EVOKE_MAINNET\"] = \"9395\";\n Chain2[\"SWISSDLT\"] = \"94\";\n Chain2[\"CAMDL_MAINNET\"] = \"95\";\n Chain2[\"SRICHAIN\"] = \"95432\";\n Chain2[\"JONO12_SUBNET\"] = \"955081\";\n Chain2[\"ELUVIO_CONTENT_FABRIC\"] = \"955305\";\n Chain2[\"LYRA_CHAIN\"] = \"957\";\n Chain2[\"BITKUB_CHAIN\"] = \"96\";\n Chain2[\"BTC20_SMART_CHAIN\"] = \"963\";\n Chain2[\"LUX_MAINNET\"] = \"96369\";\n Chain2[\"ETHXY\"] = \"969\";\n Chain2[\"REBUS_MAINNET\"] = \"9696\";\n Chain2[\"OORT_MAINNET\"] = \"970\";\n Chain2[\"TETRON_SMART_CHAIN\"] = \"97055\";\n Chain2[\"OORT_ASCRAEUS\"] = \"972\";\n Chain2[\"PALM_SMART_CHAIN\"] = \"973\";\n Chain2[\"SIDRA_CHAIN\"] = \"97453\";\n Chain2[\"METABENZ_CHAIN\"] = \"97766\";\n Chain2[\"PEPENETWORK_MAINNET\"] = \"9779\";\n Chain2[\"OPTIMUSZ7_MAINNET\"] = \"9797\";\n Chain2[\"SIX_PROTOCOL\"] = \"98\";\n Chain2[\"TOP_MAINNET_EVM\"] = \"980\";\n Chain2[\"IMPERIUM_MAINNET\"] = \"9819\";\n Chain2[\"FORMA\"] = \"984122\";\n Chain2[\"FORMA_SKETCHPAD\"] = \"984123\";\n Chain2[\"MEMO_SMART_CHAIN_MAINNET\"] = \"985\";\n Chain2[\"BINARYCHAIN_MAINNET\"] = \"987\";\n Chain2[\"ECROX_CHAIN_MAINNET\"] = \"988207\";\n Chain2[\"PLUME_LEGACY\"] = \"98865\";\n Chain2[\"DOGELAYER_MAINNET\"] = \"9888\";\n Chain2[\"LARISSA_CHAIN\"] = \"9898\";\n Chain2[\"POA_NETWORK_CORE\"] = \"99\";\n Chain2[\"ELIBERTY_MAINNET\"] = \"990\";\n Chain2[\"ZYTRON_LINEA_MAINNET\"] = \"9901\";\n Chain2[\"ESPENTO_MAINNET\"] = \"9911\";\n Chain2[\"LUMIA_MAINNET\"] = \"994873017\";\n Chain2[\"FIVE_IRECHAIN_MAINNET\"] = \"995\";\n Chain2[\"COMBO_MAINNET\"] = \"9980\";\n Chain2[\"VOLLEY_MAINNET\"] = \"9981\";\n Chain2[\"MFEV_CHAIN_MAINNET\"] = \"9982\";\n Chain2[\"AGUNG_NETWORK\"] = \"9990\";\n Chain2[\"MIND_SMART_CHAIN_MAINNET\"] = \"9996\";\n Chain2[\"AMCHAIN\"] = \"999999\";\n Chain2[\"FLUENCE\"] = \"9999999\";\n Chain2[\"VOLCANO_CHAIN_MAINNET\"] = \"10085\";\n Chain2[\"BEVM_SIGNET\"] = \"11504\";\n Chain2[\"BASECAMP\"] = \"123420001114\";\n Chain2[\"COINZAX\"] = \"1310\";\n Chain2[\"TUXAPPCOIN\"] = \"1313161573\";\n Chain2[\"REACTIVE_MAINNET\"] = \"1597\";\n Chain2[\"MUD_CHAIN\"] = \"168169\";\n Chain2[\"PRIVIX_CHAIN_MAINNET\"] = \"16969696\";\n Chain2[\"WITNESS_CHAIN\"] = \"1702448187\";\n Chain2[\"ETHPAR_MAINNET\"] = \"1727\";\n Chain2[\"ACTION_MAINNET\"] = \"21000\";\n Chain2[\"MAGICHAIN\"] = \"24125\";\n Chain2[\"ATLETA_NETWORK\"] = \"2440\";\n Chain2[\"APERTUM\"] = \"2786\";\n Chain2[\"XFERCHAIN_MAINNET\"] = \"28125\";\n Chain2[\"ZKCANDY_MAINNET\"] = \"320\";\n Chain2[\"PEPE_UNCHAINED\"] = \"3409\";\n Chain2[\"XONE_MAINNET\"] = \"3721\";\n Chain2[\"ARCADIA_MAINNET\"] = \"4278608\";\n Chain2[\"MEMECORE\"] = \"4352\";\n Chain2[\"JUNEO_MAINNET\"] = \"45003\";\n Chain2[\"TRUMPCHAIN\"] = \"4547\";\n Chain2[\"BLACKFORT_EXCHANGE_NETWORK\"] = \"488\";\n Chain2[\"BIRDLAYER\"] = \"53456\";\n Chain2[\"RARIMO\"] = \"7368\";\n Chain2[\"OONE_CHAIN_MAINNET\"] = \"777888\";\n Chain2[\"EMERALDZ\"] = \"789789\";\n Chain2[\"ONFA_CHAIN\"] = \"8691942025\";\n Chain2[\"WEBER_GOVERNANCE_MAINNET\"] = \"881\";\n Chain2[\"MIRACLE_CHAIN\"] = \"92278\";\n Chain2[\"Z_CHAIN\"] = \"9369\";\n Chain2[\"LUMOZ_CHAIN_MAINNET\"] = \"96370\";\n Chain2[\"LAGOM_MAINNET\"] = \"986\";\n Chain2[\"PLUME_MAINNET\"] = \"98866\";\n Chain2[\"POINTLEDGER\"] = \"9889\";\n Chain2[\"FUEL\"] = \"fuel\";\n Chain2[\"SOCOTRA_JUNE_CHAIN\"] = \"101003\";\n Chain2[\"OPENGPU_MAINNET\"] = \"1071\";\n Chain2[\"STATEMESH\"] = \"1134\";\n Chain2[\"PERENNIAL\"] = \"1424\";\n Chain2[\"ONINO_MAINNET\"] = \"1425\";\n Chain2[\"EVENTUM_MAINNET\"] = \"161803\";\n Chain2[\"ESPORTS_CHAIN\"] = \"17735\";\n Chain2[\"SWISSTRONIK_MAINNET\"] = \"1848\";\n Chain2[\"ALTBLOCKSCAN_MAINNET\"] = \"191919\";\n Chain2[\"FIRACHAIN\"] = \"194\";\n Chain2[\"XPHERE_MAINNET\"] = \"20250217\";\n Chain2[\"VCITYCHAIN_MAINNET\"] = \"20250825\";\n Chain2[\"IDN_MAINNET\"] = \"215\";\n Chain2[\"CHOOCHAIN\"] = \"247\";\n Chain2[\"TRON_SHASTA\"] = \"2494104990\";\n Chain2[\"COTI\"] = \"2632500\";\n Chain2[\"MEZO\"] = \"31612\";\n Chain2[\"BASEDAI\"] = \"32323\";\n Chain2[\"PENTAGON_CHAIN\"] = \"3344\";\n Chain2[\"R5_NETWORK\"] = \"337\";\n Chain2[\"GUNZ\"] = \"43419\";\n Chain2[\"JUNEO_DAI1_CHAIN\"] = \"45004\";\n Chain2[\"JUNEO_USDT1_CHAIN\"] = \"45005\";\n Chain2[\"JUNEO_USD1_CHAIN\"] = \"45006\";\n Chain2[\"JUNEO_MBTC1_CHAIN\"] = \"45007\";\n Chain2[\"JUNEO_GLD1_CHAIN\"] = \"45008\";\n Chain2[\"JUNEO_LTC1_CHAIN\"] = \"45009\";\n Chain2[\"JUNEO_DOGE1_CHAIN\"] = \"45010\";\n Chain2[\"JUNEO_EUR1_CHAIN\"] = \"45011\";\n Chain2[\"JUNEO_SGD1_CHAIN\"] = \"45012\";\n Chain2[\"JUNEO_BCH1_CHAIN\"] = \"45013\";\n Chain2[\"JUNEO_LINK1_CHAIN\"] = \"45014\";\n Chain2[\"INERTIA_SCAN\"] = \"5433\";\n Chain2[\"WINR_PROTOCOL_MAINNET\"] = \"777777\";\n Chain2[\"DRAW_COIN\"] = \"7788\";\n Chain2[\"POWERLOOM_MAINNET_V2\"] = \"7869\";\n Chain2[\"SHARDEUM\"] = \"8118\";\n Chain2[\"XCHAIN\"] = \"94524\";\n Chain2[\"HYPEREVM\"] = \"999\";\n Chain2[\"LAYER_EDGE_MAINNET\"] = \"4207\";\n Chain2[\"ROGUE_CHAIN\"] = \"560013\";\n Chain2[\"DEINFRA_MAINNET\"] = \"100501\";\n Chain2[\"MONSOON_\"] = \"100610\";\n Chain2[\"ALTHEA_L1_MAINNET\"] = \"258432\";\n Chain2[\"REALIO\"] = \"3301\";\n Chain2[\"GANCHAIN_L1\"] = \"4048\";\n Chain2[\"REDDIO\"] = \"50342\";\n Chain2[\"KATANA\"] = \"747474\";\n Chain2[\"ROME_MAINNET_0_PALATINE\"] = \"7531\";\n Chain2[\"ROME_MAINNET_0_AVENTINE\"] = \"7532\";\n Chain2[\"PAY1_NETWORK\"] = \"98964\";\n Chain2[\"ENI_MAINNET\"] = \"173\";\n Chain2[\"HUMANITY_PROTOCOL\"] = \"6985385\";\n Chain2[\"WORLDMOBILECHAIN_MAINNET\"] = \"869\";\n Chain2[\"PLASMA_MAINNET\"] = \"9745\";\n Chain2[\"SOVA\"] = \"100021\";\n Chain2[\"OPENLEDGER_MAINNET\"] = \"1612\";\n Chain2[\"STUDIO_BLOCKCHAIN_MAINNET\"] = \"240241\";\n Chain2[\"JOVAY_MAINNET\"] = \"5734951\";\n Chain2[\"MANTRACHAIN_MAINNET\"] = \"5888\";\n return Chain2;\n})(Chain || {});\n\nexport { Chain };\n","import { Lender } from '@1delta/lender-registry'\nimport { Call } from '../../utils/multicall'\nimport {\n getAaveAssets,\n getAaveTypePoolAddress,\n getAaveTypePoolDataProviderAddress,\n} from '../../assets'\nimport { isAaveV32Type } from '../../utils'\nimport { Chain } from '@1delta/chain-registry'\n\nfunction range(n: number): number[] {\n return Array.from({ length: n + 1 }, (_, i) => i)\n}\n\n/** Dynamic E-mode lengths for querying as Aave V3 can have quite a lot */\nexport const AAVE_V3_EMODES = (chain: string, lender: string) => {\n if (chain === Chain.ETHEREUM_MAINNET) {\n if (lender === Lender.AAVE_V3) return range(33)\n if (lender === Lender.AAVE_V3_PRIME) return range(10)\n }\n if (chain === Chain.ARBITRUM_ONE) {\n if (lender === Lender.AAVE_V3) return range(10)\n }\n if (chain === Chain.BASE) {\n if (lender === Lender.AAVE_V3) return range(12)\n }\n\n return [0, 1, 2, 3, 4, 5, 6]\n}\n\nfunction yldrBaseline(assetsToQuery: string[], providerAddress: string) {\n return assetsToQuery.flatMap((tk) => [\n {\n address: providerAddress,\n name: 'getReserveData',\n params: [tk],\n },\n {\n address: providerAddress,\n name: 'getReserveConfigurationData',\n params: [tk],\n },\n ])\n}\n\nfunction aaveV3baseline(\n assetsToQuery: string[],\n providerAddress: string,\n poolAddress: string,\n legacy = false,\n) {\n const callDecimals: Call = {\n address: providerAddress,\n name: 'getDebtCeilingDecimals',\n params: [],\n }\n\n const callReservesList: Call = {\n address: poolAddress,\n name: 'getReservesList',\n params: [],\n }\n\n const callsBase = assetsToQuery.flatMap((tk) => [\n {\n address: providerAddress,\n name: 'getReserveData',\n params: [tk],\n },\n {\n address: providerAddress,\n name: 'getReserveConfigurationData',\n params: [tk],\n },\n {\n address: providerAddress,\n name: 'getSiloedBorrowing',\n params: [tk],\n },\n {\n address: providerAddress,\n name: 'getReserveCaps',\n params: [tk],\n },\n {\n address: providerAddress,\n name: 'getDebtCeiling',\n params: [tk],\n },\n ...(legacy\n ? [\n {\n address: providerAddress,\n name: 'getReserveEModeCategory',\n params: [tk],\n },\n ]\n : []),\n ])\n\n return {\n callsBase,\n callReservesList,\n callDecimals,\n }\n}\n\nexport const buildAaveV3StyleLenderReserveCall = (\n chainId: string,\n lender: Lender,\n) => {\n const providerAddress = getAaveTypePoolDataProviderAddress(chainId, lender)\n const assetsToQuery = getAaveAssets(chainId, lender)\n const poolAddress = getAaveTypePoolAddress(chainId, lender)\n if (isAaveV32Type(lender)) {\n const getEModeCategoryData: Call[] = AAVE_V3_EMODES(\n chainId,\n lender,\n ).flatMap((eMode) => {\n return [\n {\n address: poolAddress,\n name: 'getEModeCategoryData',\n params: [eMode],\n },\n {\n address: poolAddress,\n name: 'getEModeCategoryBorrowableBitmap',\n params: [eMode],\n },\n {\n address: poolAddress,\n name: 'getEModeCategoryCollateralBitmap',\n params: [eMode],\n },\n ]\n })\n\n const { callDecimals, callReservesList, callsBase } = aaveV3baseline(\n assetsToQuery,\n providerAddress,\n poolAddress,\n )\n\n const calls = [\n ...callsBase,\n ...getEModeCategoryData,\n callReservesList,\n callDecimals,\n ]\n return calls\n }\n switch (lender) {\n case Lender.YLDR: {\n const calls = yldrBaseline(assetsToQuery, providerAddress)\n return calls\n }\n default: {\n const getEModeCategoryData: Call[] = AAVE_V3_EMODES(\n chainId,\n lender,\n ).flatMap((eMode) => ({\n address: poolAddress,\n name: 'getEModeCategoryData',\n params: [eMode],\n }))\n\n const { callDecimals, callsBase } = aaveV3baseline(\n assetsToQuery,\n providerAddress,\n poolAddress,\n true,\n )\n\n const calls = [...callsBase, ...getEModeCategoryData, callDecimals]\n return calls\n }\n }\n}\n","import { Chain } from \"@1delta/chain-registry\"\n\nexport function getInitPosManagerAddress(chainId: string) {\n // @ts-ignore\n return addressesInitCore.PosManager[chainId]\n}\n\nexport function getInitCoreAddress(chainId: string) {\n // @ts-ignore\n return addressesInitCore.Core[chainId]\n}\n\nexport function getInitLensAddress(chainId: string) {\n // @ts-ignore\n return addressesInitCore.PublicLens[chainId]\n}\n\nconst addressesInitCore = {\n InitOracle: {\n [Chain.MANTLE]: '0x4E195A32b2f6eBa9c4565bA49bef34F23c2C0350'\n },\n Core: {\n [Chain.MANTLE]: '0x972BcB0284cca0152527c4f70f8F689852bCAFc5'\n },\n Config: {\n [Chain.MANTLE]: '0x007F91636E0f986068Ef27c950FA18734BA553Ac'\n },\n PosManager: {\n [Chain.MANTLE]: '0x0e7401707CD08c03CDb53DAEF3295DDFb68BBa92'\n },\n Lens: {\n [Chain.MANTLE]: '0x7d2b278b8ef87bEb83AeC01243ff2Fed57456042'\n },\n PublicLens: {\n [Chain.MANTLE]: '0xDf75fF0452eDf4897B051A54b406eB384503Ac39'\n },\n}","import { Lender } from '@1delta/lender-registry'\nimport { Call } from \"../../utils/multicall\"\nimport { getInitLensAddress } from \"../addresses/init\"\n\nexport const INIT_MODES = [1, 2, 3, 4, 5, 6]\n\nexport const INIT_EMODE_LABELS: { [mode: number]: string } = {\n [1]: 'Default',\n [2]: 'Blue Chip Volatile',\n [3]: 'Stablecoins',\n [4]: 'ETH correlated',\n [5]: 'Ethena',\n [6]: 'BTC',\n}\n\n\nexport const buildInitStyleLenderReserveCall = (chainId: string, lender: Lender) => {\n const lensAddress = getInitLensAddress(chainId)\n const calls: Call[] = INIT_MODES.map((mode) => {\n return {\n address: lensAddress,\n name: 'getMarketData',\n params: [mode],\n }\n })\n\n return calls\n\n}","import { Chain } from '@1delta/chain-registry'\nimport { Lender } from '@1delta/lender-registry'\nimport { compoundV3BaseData, compoundV3Pools } from '@1delta/data-sdk'\n\nexport function getCompoundV3CometAddress(\n chainId: string,\n lender = Lender.COMPOUND_V3_USDCE,\n): string | undefined {\n return compoundV3Pools()?.[chainId]?.[lender]\n}\n\nexport function getCompoundV3CometRewardsAddress(chainId: string) {\n // @ts-ignore\n return addressesCompoundV3.cometRewards[chainId]\n}\n\nexport function getCompoundV3CometLens(chainId: string) {\n // @ts-ignore\n return addressesCompoundV3.lens[chainId]\n}\n\nconst addressesCompoundV3 = {\n lens: {\n [Chain.POLYGON_MAINNET]: '0x4eDA401658c5286d16c4d342884F32280B4E8b1b',\n [Chain.MANTLE]: '0x32B31A066c8dd3F7b77283Ba1d89Ddaf6DA0a8aE',\n [Chain.ARBITRUM_ONE]: '0x13D9c35f4901491Ac4FFebd3100238BBfFBD7181',\n [Chain.BASE]: '0x7e2D250E4FD0EeD6BD2cB3DC525A2b9f12508152',\n [Chain.OP_MAINNET]: '0xA453ba397c61B0c292EA3959A858821145B2707F',\n [Chain.ETHEREUM_MAINNET]: '0xCe434378adacC51d54312c872113D687Ac19B516',\n [Chain.UNICHAIN]: '0x0bd7473CbBf81d9dD936c61117eD230d95006CA2',\n [Chain.LINEA]: '0x7a59ddbB76521E8982Fa3A08598C9a83b14A6C07',\n [Chain.SCROLL]: '0x32198Ee619fAd24169fa94A149Cb5205701C6AB1',\n [Chain.PLASMA_MAINNET]: '0x0bd7473CbBf81d9dD936c61117eD230d95006CA2',\n },\n cometRewards: {\n [Chain.POLYGON_MAINNET]: '0x45939657d1CA34A8FA39A924B71D28Fe8431e581',\n [Chain.MANTLE]: '0xCd83CbBFCE149d141A5171C3D6a0F0fCCeE225Ab',\n [Chain.ARBITRUM_ONE]: '0x88730d254A2f7e6AC8388c3198aFd694bA9f7fae',\n [Chain.BASE]: '0x123964802e6ABabBE1Bc9547D72Ef1B69B00A6b1',\n [Chain.OP_MAINNET]: '0x443EA0340cb75a160F31A440722dec7b5bc3C2E9',\n [Chain.ETHEREUM_MAINNET]: '0x1B0e765F6224C21223AeA2af16c1C46E38885a40',\n [Chain.SCROLL]: '0x70167D30964cbFDc315ECAe02441Af747bE0c5Ee',\n [Chain.LINEA]: '0x2c7118c4C88B9841FCF839074c26Ae8f035f2921',\n },\n}\n\nexport function getCompoundV3BaseAsset(\n lender: Lender | string,\n chainId: string,\n) {\n return compoundV3BaseData()?.[lender]?.[chainId]\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { getCompoundV3Assets } from \"../../assets\"\nimport { getCompoundV3BaseAsset, getCompoundV3CometAddress, getCompoundV3CometLens } from \"../addresses/compoundV3\"\nimport { Call } from \"../../utils/multicall\"\n\nexport const buildCompoundV3StyleLenderReserveCall = (chainId: string, lender: Lender) => {\n\n const baseAssetData = getCompoundV3BaseAsset(lender, chainId)\n const underlyingArray = getCompoundV3Assets(chainId, lender)\n const cometContractAddress = getCompoundV3CometAddress(chainId, lender)!\n const assetsToQuery = underlyingArray\n const tokensNoBase = assetsToQuery.filter(a => a !== baseAssetData.baseAsset)\n\n const callsAssetInfoAndTotals: Call[] = tokensNoBase.flatMap((tk) => {\n return [\n {\n address: cometContractAddress,\n name: 'getAssetInfoByAddress',\n params: [tk],\n },\n {\n address: cometContractAddress,\n name: 'totalsCollateral',\n params: [tk],\n }\n ]\n })\n\n const callSupplyRewards: Call = {\n address: cometContractAddress,\n name: 'baseTrackingSupplySpeed',\n params: [],\n }\n\n const callBorrowRewards: Call = {\n address: cometContractAddress,\n name: 'baseTrackingBorrowSpeed',\n params: [],\n }\n\n const callIndexScale: Call = {\n address: cometContractAddress,\n name: 'baseIndexScale',\n params: [],\n }\n\n const callSupply: Call = {\n address: cometContractAddress,\n name: 'totalSupply',\n params: [],\n }\n\n const callBorrow: Call = {\n address: cometContractAddress,\n name: 'totalBorrow',\n params: [],\n }\n\n const callInterest: Call = {\n address: getCompoundV3CometLens(chainId),\n name: 'getCometInterest',\n params: [cometContractAddress],\n }\n const calls = [\n ...callsAssetInfoAndTotals,\n callSupplyRewards,\n callBorrowRewards,\n callIndexScale, // rewards data\n callSupply,\n callBorrow, // supply / borrow\n callInterest\n ]\n return calls\n}","import { BaseError } from './base.js'\n\nexport type InvalidDecimalNumberErrorType = InvalidDecimalNumberError & {\n name: 'InvalidDecimalNumberError'\n}\nexport class InvalidDecimalNumberError extends BaseError {\n constructor({ value }: { value: string }) {\n super(`Number \\`${value}\\` is not a valid decimal number.`, {\n name: 'InvalidDecimalNumberError',\n })\n }\n}\n","import { InvalidDecimalNumberError } from '../../errors/unit.js'\nimport type { ErrorType } from '../../errors/utils.js'\n\nexport type ParseUnitsErrorType = ErrorType\n\n/**\n * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).\n *\n * - Docs: https://viem.sh/docs/utilities/parseUnits\n *\n * @example\n * import { parseUnits } from 'viem'\n *\n * parseUnits('420', 9)\n * // 420000000000n\n */\nexport function parseUnits(value: string, decimals: number) {\n if (!/^(-?)([0-9]*)\\.?([0-9]*)$/.test(value))\n throw new InvalidDecimalNumberError({ value })\n\n let [integer, fraction = '0'] = value.split('.')\n\n const negative = integer.startsWith('-')\n if (negative) integer = integer.slice(1)\n\n // trim trailing zeros.\n fraction = fraction.replace(/(0+)$/, '')\n\n // round off if the fraction is larger than the number of decimals.\n if (decimals === 0) {\n if (Math.round(Number(`.${fraction}`)) === 1)\n integer = `${BigInt(integer) + 1n}`\n fraction = ''\n } else if (fraction.length > decimals) {\n const [left, unit, right] = [\n fraction.slice(0, decimals - 1),\n fraction.slice(decimals - 1, decimals),\n fraction.slice(decimals),\n ]\n\n const rounded = Math.round(Number(`${unit}.${right}`))\n if (rounded > 9)\n fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0')\n else fraction = `${left}${rounded}`\n\n if (fraction.length > decimals) {\n fraction = fraction.slice(1)\n integer = `${BigInt(integer) + 1n}`\n }\n\n fraction = fraction.slice(0, decimals)\n } else {\n fraction = fraction.padEnd(decimals, '0')\n }\n\n return BigInt(`${negative ? '-' : ''}${integer}${fraction}`)\n}\n","export const entryPoint06Address =\n '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789' as const\nexport const entryPoint07Address =\n '0x0000000071727De22E5E9d8BAf0edAc6f37da032' as const\nexport const entryPoint08Address =\n '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108' as const\n\nexport const ethAddress = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' as const\n\nexport const zeroAddress = '0x0000000000000000000000000000000000000000' as const\n","import { Chain } from '@1delta/chain-registry'\nimport { Lender } from '@1delta/lender-registry'\nimport { formatEther, formatUnits } from 'viem'\nimport { isCompoundV3 } from '.'\n\nexport const BPS = 10000\n\nexport const parseRawAmount = (answer?: string, decimals = 18): string => {\n if (!answer || answer === '0x') return '0'\n try {\n return formatUnits(BigInt(answer ?? '0'), decimals ?? 18)\n } catch (e) {\n return '0'\n }\n}\n\nexport enum TimeScale {\n BLOCK,\n MS,\n}\n\nconst BLOCK_TIMES: { [chainId: string]: number } = {\n 5: 12,\n 1: 12,\n 56: 3,\n}\n\n// Converters from apy to apr and reversed\n\nconst SECONDS_PER_YEAR = 31536000\n\nexport const aprToApy = (apr: number) => {\n return (1 + apr / SECONDS_PER_YEAR) ** SECONDS_PER_YEAR - 1\n}\n\nexport const apyToApr = (apy: number) => {\n return ((apy + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR\n}\n\nexport const apyToAprPercent = (apy: number) => {\n return (\n 100 * ((apy / 100 + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR\n )\n}\n\nexport const formatAaveYieldToNumber = (n?: string | bigint): number => {\n if (!n) return 0\n return Number(formatEther(BigInt(n) / BigInt(1e7)))\n}\n\nexport const calculateRateForCompound = (\n n: string,\n chainId: string,\n lender = Lender.COMPOUND_V3_USDCE,\n): number => {\n let scale = TimeScale.MS\n if (isCompoundV3(lender) || Lender.COMPOUND_V2) {\n scale = TimeScale.BLOCK\n } else if (chainId === Chain.BNB_SMART_CHAIN_MAINNET) {\n scale = TimeScale.BLOCK\n }\n const rate = Number(formatEther(BigInt(n)))\n if (scale === TimeScale.BLOCK)\n return (\n (Math.pow((rate * 60 * 60 * 24) / (BLOCK_TIMES[chainId] ?? 1) + 1, 365) -\n 1) *\n 100\n )\n\n return (Math.pow(rate * 60 * 60 * 24 + 1, 365) - 1) * 100\n}\nexport const formatAaveRawApyToApr = (raw: bigint | string | undefined) => {\n const apy = formatAaveYieldToNumber(raw)\n return apyToApr(apy / 100) * 100\n}\n\n// converts rate per second to rate per year\nexport const convertRateToApr = (ratePerSecond: number | string) => {\n const rps = Number(ratePerSecond)\n if (isNaN(rps)) return 0\n return rps * 3600 * 24 * 365 * 100\n}\n\nexport const formatAavePrice = (price: string, exponent = 10n): number => {\n try {\n return Number(\n formatEther(\n BigInt(price ?? '0') *\n // 10^(18 - decimals)\n 10n ** (exponent),\n ),\n )\n } catch {\n return NaN\n }\n}\n\nexport const formatMorphoPrice = (\n price: string,\n collateralDec: number,\n debtDec: number,\n): number => {\n try {\n return Number(\n formatUnits(\n BigInt(price ?? '0'),\n // 10^(18 - decimals)\n 36 + collateralDec - debtDec,\n ),\n )\n } catch {\n return NaN\n }\n}\n","import { Lender } from '@1delta/lender-registry'\nimport {\n getAaveAssets,\n LENDER_MODE_NO_MODE,\n toGenericPriceKey,\n toOracleKey,\n} from '../../assets'\nimport { BPS, formatAaveRawApyToApr, parseRawAmount } from '../../utils/parsing'\nimport {\n AaveV2GeneralPublicResponse,\n AaveV2TypeGetReserveConfigurationData,\n AaveV2TypeGetReserveDataIndexes,\n} from '../../types/lender/aave-v2-types'\nimport { AdditionalYields } from '../../types'\nimport { GenericTokenList } from '../../types'\nimport { Chain } from '@1delta/chain-registry'\n\nexport const getAaveV2ReservesDataConverter = (\n lender: Lender,\n chainId: string,\n prices: { [asset: string]: number },\n additionalYields: AdditionalYields,\n tokenList: GenericTokenList = {},\n): [(data: any[]) => AaveV2GeneralPublicResponse | undefined, number] => {\n switch (lender) {\n /** AAVE V2 style with rewards from state */\n default: {\n const assetsToQuery = getAaveAssets(chainId, lender)\n\n const expectedNumberOfCalls = assetsToQuery.length * 2\n\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n\n const resultReserves: any = {}\n\n for (let i = 0; i < assetsToQuery.length; i++) {\n const asset = assetsToQuery[i]\n const reserveData = data[i * 2]\n const configData = data[i * 2 + 1]\n\n const assetMeta = tokenList[asset]\n const decimals = assetMeta?.decimals ?? 18\n\n const totalStableDebt = parseRawAmount(\n reserveData?.[\n AaveV2TypeGetReserveDataIndexes.totalStableDebt\n ]?.toString(),\n decimals,\n )\n const totalVariableDebt = parseRawAmount(\n reserveData?.[\n AaveV2TypeGetReserveDataIndexes.totalVariableDebt\n ]?.toString(),\n decimals,\n )\n const liquidity = Number(\n parseRawAmount(\n reserveData?.[\n AaveV2TypeGetReserveDataIndexes.availableLiquidity\n ]?.toString(),\n decimals,\n ),\n )\n const totalAToken =\n liquidity + Number(totalStableDebt) + Number(totalVariableDebt)\n\n const oracleKey =\n toOracleKey(assetMeta?.assetGroup) ??\n toGenericPriceKey(asset, chainId)\n const price = prices[oracleKey] ?? 1\n\n const totalDepositsUSD = Number(totalAToken) * price\n const totalDebtUSD = Number(totalVariableDebt) * price\n\n resultReserves[asset] = {\n poolId: asset,\n underlying: asset,\n asset: assetMeta,\n // token amounts\n totalDeposits: totalAToken,\n totalDebtStable: totalStableDebt,\n totalDebt: totalVariableDebt,\n totalLiquidity: liquidity,\n // USD amounts\n totalDepositsUSD,\n totalDebtStableUSD: Number(totalStableDebt) * price,\n totalDebtUSD,\n totalLiquidityUSD: liquidity * price,\n // rates\n depositRate: formatAaveRawApyToApr(\n reserveData?.[\n AaveV2TypeGetReserveDataIndexes.liquidityRate\n ]?.toString(),\n ),\n variableBorrowRate: formatAaveRawApyToApr(\n reserveData?.[\n AaveV2TypeGetReserveDataIndexes.variableBorrowRate\n ]?.toString(),\n ),\n stableBorrowRate: formatAaveRawApyToApr(\n reserveData?.[\n AaveV2TypeGetReserveDataIndexes.stableBorrowRate\n ]?.toString(),\n ),\n stakingYield: additionalYields?.intrinsicYields[oracleKey] ?? 0,\n\n // rewards\n rewards:\n lender === Lender.MERIDIAN &&\n chainId === Chain.TAIKO_ALETHIA &&\n additionalYields?.lenderRewards\n ? {\n TAIKO: {\n depositRate:\n additionalYields?.lenderRewards[Lender.MERIDIAN]?.[\n asset\n ]?.deposit ?? 0,\n variableBorrowRate:\n additionalYields?.lenderRewards[Lender.MERIDIAN]?.[\n asset\n ]?.borrow ?? 0,\n stableBorrowRate: 0,\n },\n }\n : {},\n decimals: Number(\n configData?.[AaveV2TypeGetReserveConfigurationData.decimals],\n ),\n config: {\n [LENDER_MODE_NO_MODE]: {\n category: LENDER_MODE_NO_MODE,\n // collateral factors\n borrowCollateralFactor:\n Number(\n configData?.[\n AaveV2TypeGetReserveConfigurationData.ltv\n ].toString(),\n ) / BPS,\n collateralFactor:\n Number(\n configData?.[\n AaveV2TypeGetReserveConfigurationData\n .liquidationThreshold\n ].toString(),\n ) / BPS,\n borrowFactor: 1,\n },\n },\n liquidationBonus:\n Number(\n configData?.[\n AaveV2TypeGetReserveConfigurationData.liquidationBonus\n ].toString(),\n ) / BPS,\n // flags\n collateralActive:\n configData?.[\n AaveV2TypeGetReserveConfigurationData.usageAsCollateralEnabled\n ],\n borrowingEnabled:\n configData?.[\n AaveV2TypeGetReserveConfigurationData.borrowingEnabled\n ],\n hasStable:\n configData?.[\n AaveV2TypeGetReserveConfigurationData.stableBorrowRateEnabled\n ],\n isActive:\n configData?.[AaveV2TypeGetReserveConfigurationData.isActive],\n isFrozen:\n configData?.[AaveV2TypeGetReserveConfigurationData.isFrozen],\n }\n }\n\n return {\n data: resultReserves,\n chainId,\n }\n },\n expectedNumberOfCalls,\n ]\n }\n }\n}\n","import {\n AaveV3GeneralPublicResponse,\n AaveV3GetreserveConfigDataIndexes,\n AaveV3GetReservesIndexes,\n YLDRTypeGetReserveConfigurationData,\n YLDRTypeGetReserveDataIndexes,\n} from '../../types/lender/aave-v3-types'\nimport { AAVE_V3_EMODES } from './publicCallBuild'\nimport { AdditionalYields } from '../../types'\nimport { BPS, formatAaveRawApyToApr, parseRawAmount } from '../../utils/parsing'\nimport { Lender } from '@1delta/lender-registry'\nimport {\n getAaveAssets,\n LENDER_MODE_NO_MODE,\n toGenericPriceKey,\n toOracleKey,\n} from '../../assets'\nimport { GenericTokenList } from '../../types'\nimport { isAaveV32Type } from '../../utils'\n\nexport const getAaveV3ReservesDataConverter = (\n lender: Lender,\n chainId: string,\n prices: { [asset: string]: number },\n additionalYields: AdditionalYields,\n tokenList: GenericTokenList = {},\n): [(data: any[]) => AaveV3GeneralPublicResponse | undefined, number] => {\n if (isAaveV32Type(lender))\n return parseAave32(\n chainId,\n lender,\n prices,\n additionalYields,\n tokenList,\n ) as any\n switch (lender) {\n /** AAVE V3 style with rewards from state */\n case Lender.YLDR:\n return parseYLDRCall(\n chainId,\n lender,\n additionalYields,\n prices,\n tokenList,\n ) as any\n default: {\n const assetsToQuery = getAaveAssets(chainId, lender)\n const allModes = AAVE_V3_EMODES(chainId, lender)\n const expectedNumberOfCalls =\n assetsToQuery.length * 6 + allModes.length + 1\n\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n const emodeDataResult = data.slice(\n assetsToQuery.length * 6,\n assetsToQuery.length * 6 + allModes.length,\n )\n const resultReserves: any = {}\n const decimalsCeiling = data[expectedNumberOfCalls - 1]\n\n let eModeConfigs: any = {}\n allModes.forEach((mode, index) => {\n const rawCfg = emodeDataResult[index]\n if (\n (mode === 0 || rawCfg?.label !== '') &&\n Number(rawCfg.ltv) !== 0\n ) {\n eModeConfigs[mode] = {\n category: mode,\n label: rawCfg.label,\n borrowCollateralFactor: rawCfg.ltv / BPS,\n collateralFactor: rawCfg.liquidationThreshold / BPS,\n borrowFactor: 1,\n }\n }\n })\n\n for (let i = 0; i < assetsToQuery.length; i++) {\n const asset = assetsToQuery[i]\n\n const reserveData = data[i * 6]\n const configData = data[i * 6 + 1]\n /** Unused so far */\n // const siloedBorrowing = data[i * 6 + 2]\n const reserveCaps = data[i * 6 + 3]\n const debtCeiling = data[i * 6 + 4]\n const reserveEMode = data[i * 6 + 5]\n\n const assetMeta = tokenList[asset]\n\n const decimals = assetMeta?.decimals ?? 18\n\n const totalDeposits = parseRawAmount(\n reserveData?.[AaveV3GetReservesIndexes.totalAToken]?.toString(),\n decimals,\n )\n const totalDebtStable = parseRawAmount(\n reserveData?.[\n AaveV3GetReservesIndexes.totalStableDebt\n ]?.toString(),\n decimals,\n )\n const totalDebt = parseRawAmount(\n reserveData?.[\n AaveV3GetReservesIndexes.totalVariableDebt\n ]?.toString(),\n decimals,\n )\n const liquidity =\n Number(totalDeposits) -\n Number(totalDebt) -\n Number(totalDebtStable)\n const price =\n prices[\n toOracleKey(assetMeta?.assetGroup) ??\n toGenericPriceKey(asset, chainId)\n ]\n\n resultReserves[asset] = {\n poolId: asset,\n underlying: asset,\n asset: assetMeta,\n // raw amounts\n totalDeposits,\n totalDebtStable,\n totalDebt,\n totalLiquidity: liquidity,\n // USD amounts\n totalDepositsUSD: Number(totalDeposits) * price,\n totalDebtStableUSD: Number(totalDebtStable) * price,\n totalDebtUSD: Number(totalDebt) * price,\n totalLiquidityUSD: liquidity * price,\n // rates\n depositRate: formatAaveRawApyToApr(\n reserveData?.[\n AaveV3GetReservesIndexes.liquidityRate\n ]?.toString(),\n ),\n variableBorrowRate: formatAaveRawApyToApr(\n reserveData?.[\n AaveV3GetReservesIndexes.variableBorrowRate\n ]?.toString(),\n ),\n stableBorrowRate: formatAaveRawApyToApr(\n reserveData?.[\n AaveV3GetReservesIndexes.stableBorrowRate\n ]?.toString(),\n ),\n stakingYield:\n additionalYields.intrinsicYields[\n toOracleKey(assetMeta?.assetGroup)\n ] ?? 0,\n // rewards\n rewards: {},\n }\n const eModeCategory = Number(reserveEMode?.toString())\n resultReserves[asset] = {\n ...resultReserves[asset],\n decimals: Number(\n configData?.[AaveV3GetreserveConfigDataIndexes.decimals],\n ),\n\n config: populateEModes(\n Number(configData?.[AaveV3GetreserveConfigDataIndexes.ltv]) /\n BPS,\n Number(\n configData?.[\n AaveV3GetreserveConfigDataIndexes.liquidationThreshold\n ],\n ) / BPS,\n eModeCategory,\n eModeConfigs,\n allModes,\n ),\n\n // flags\n collateralActive:\n configData?.[\n AaveV3GetreserveConfigDataIndexes.usageAsCollateralEnabled\n ],\n borrowingEnabled:\n configData?.[\n AaveV3GetreserveConfigDataIndexes.borrowingEnabled\n ],\n hasStable:\n configData?.[\n AaveV3GetreserveConfigDataIndexes.stableBorrowRateEnabled\n ],\n isActive:\n configData?.[AaveV3GetreserveConfigDataIndexes.isActive],\n isFrozen:\n configData?.[AaveV3GetreserveConfigDataIndexes.isFrozen],\n\n // caps\n borrowCap: Number(reserveCaps[0]?.toString()),\n supplyCap: Number(reserveCaps[1]?.toString()),\n debtCeiling: parseRawAmount(\n debtCeiling[i]?.toString(),\n Number(decimalsCeiling?.toString()),\n ),\n }\n }\n return {\n data: resultReserves,\n chainId,\n eModes: eModeConfigs,\n }\n },\n expectedNumberOfCalls,\n ]\n }\n }\n}\n\nconst populateEModes = (\n borrowCollateralFactor: number,\n collateralFactor: number,\n eModeCategory: number,\n eModeConfigs: any,\n allModes: any[],\n) => {\n let data: any = {}\n allModes.forEach((e) => {\n if (e === 0)\n data[e] = {\n label: 'Disabled',\n category: e,\n borrowCollateralFactor,\n collateralFactor,\n borrowFactor: 1,\n }\n if (e > 0 && eModeConfigs[e]?.label && eModeConfigs[e]?.label !== '') {\n data[e] = {}\n // add base data\n data[e].label = eModeConfigs[e]?.label\n data[e].debtDisabled = true\n data[e].category = e\n data[e].borrowFactor = 1\n data[e].collateralFactor = collateralFactor\n data[e].borrowCollateralFactor = borrowCollateralFactor\n\n if (e > 0 && e === eModeCategory && eModeConfigs[e]) {\n data[e] = {\n ...data[e],\n category: e,\n borrowCollateralFactor: eModeConfigs[e]?.borrowCollateralFactor ?? 0,\n collateralFactor: eModeConfigs[e]?.collateralFactor ?? 0,\n borrowFactor: 1,\n debtDisabled: false,\n }\n }\n }\n })\n return data\n}\n\nconst populateEModes32 = (\n borrowCollateralFactor: number,\n collateralFactor: number,\n collateralBitmap: any,\n debtBitmap: any,\n assetIndex: number,\n eModeConfigs: any,\n allModes: any[],\n) => {\n let data: any = {}\n allModes.forEach((e) => {\n if (e === 0)\n data[e] = {\n label: 'Disabled',\n category: e,\n borrowCollateralFactor,\n collateralFactor,\n borrowFactor: 1,\n }\n if (e > 0) {\n // only add if configs defined\n if (eModeConfigs[e]?.label && eModeConfigs[e]?.label !== '') {\n data[e] = {}\n // add base data\n data[e].label = eModeConfigs[e]?.label ?? 'Default'\n data[e].debtDisabled = true\n data[e].category = e\n data[e].borrowFactor = 1\n data[e].collateralFactor = collateralFactor\n data[e].borrowCollateralFactor = borrowCollateralFactor\n data[e].debtDisabled = !!eModeConfigs[e]\n // override info if mode explicitly provided\n if (eModeConfigs[e]) {\n data[e] = {\n ...data[e],\n category: e,\n borrowCollateralFactor:\n eModeConfigs[e]?.borrowCollateralFactor ?? 0,\n collateralFactor: eModeConfigs[e]?.collateralFactor ?? 0,\n borrowFactor: 1,\n collateralDisabled: !isReserveEnabledOnBitmap(\n collateralBitmap[e],\n assetIndex,\n ),\n debtDisabled: !isReserveEnabledOnBitmap(debtBitmap[e], assetIndex),\n }\n }\n }\n }\n })\n return data\n}\n\n/** Replica of aave's bitmap checker */\nfunction isReserveEnabledOnBitmap(\n bitmap: bigint,\n reserveIndex: number,\n): boolean {\n try {\n return ((bitmap >> BigInt(reserveIndex)) & 1n) !== 0n\n } catch {\n return false\n }\n}\n\nexport function parseYLDRCall(\n chainId: string,\n lender: Lender,\n additionalYields: any,\n prices: any,\n tokenList: any,\n): [(data: any[]) => any | undefined, number] {\n const assetsToQuery = getAaveAssets(chainId, lender)\n\n const expectedNumberOfCalls = assetsToQuery.length * 2\n\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n const resultReserves: any = {}\n\n for (let i = 0; i < assetsToQuery.length; i++) {\n const asset = assetsToQuery[i]\n const reserveData = data[i * 2]\n const configData = data[i * 2 + 1]\n\n const assetMeta = tokenList[asset]\n const decimals = assetMeta?.decimals ?? 18\n\n const totalVariableDebt = parseRawAmount(\n reserveData?.[\n YLDRTypeGetReserveDataIndexes.totalVariableDebt\n ]?.toString(),\n decimals,\n )\n const totalAToken = parseRawAmount(\n reserveData?.[YLDRTypeGetReserveDataIndexes.totalYToken]?.toString(),\n decimals,\n )\n const liquidity = Number(totalAToken) - Number(totalVariableDebt)\n\n const oracleKey =\n toOracleKey(assetMeta?.assetGroup) ??\n toGenericPriceKey(asset, chainId)\n const price = prices[oracleKey] ?? 1\n\n const totalDepositsUSD = Number(totalAToken) * price\n const totalDebtUSD = Number(totalVariableDebt) * price\n\n resultReserves[asset] = {\n poolId: asset,\n underlying: asset,\n asset: assetMeta,\n // token amounts\n totalDeposits: totalAToken,\n totalDebtStable: 0,\n totalDebt: totalVariableDebt,\n totalLiquidity: liquidity,\n // USD amounts\n totalDepositsUSD,\n totalDebtStableUSD: 0,\n totalDebtUSD,\n totalLiquidityUSD: liquidity * price,\n // rates\n depositRate: formatAaveRawApyToApr(\n reserveData?.[\n YLDRTypeGetReserveDataIndexes.liquidityRate\n ]?.toString(),\n ),\n variableBorrowRate: formatAaveRawApyToApr(\n reserveData?.[\n YLDRTypeGetReserveDataIndexes.variableBorrowRate\n ]?.toString(),\n ),\n stableBorrowRate: 0,\n stakingYield: additionalYields.intrinsicYields[oracleKey] ?? 0,\n\n // rewards\n rewards: {},\n decimals: Number(\n configData?.[YLDRTypeGetReserveConfigurationData.decimals],\n ),\n config: {\n [LENDER_MODE_NO_MODE]: {\n category: LENDER_MODE_NO_MODE,\n // collateral factors\n borrowCollateralFactor:\n Number(\n configData?.[\n YLDRTypeGetReserveConfigurationData.ltv\n ]?.toString(),\n ) / BPS,\n collateralFactor:\n Number(\n configData?.[\n YLDRTypeGetReserveConfigurationData.liquidationThreshold\n ]?.toString(),\n ) / BPS,\n borrowFactor: 1,\n },\n },\n liquidationBonus:\n Number(\n configData?.[\n YLDRTypeGetReserveConfigurationData.liquidationBonus\n ]?.toString(),\n ) / BPS,\n // flags\n collateralActive:\n configData?.[\n YLDRTypeGetReserveConfigurationData.usageAsCollateralEnabled\n ],\n borrowingEnabled:\n configData?.[YLDRTypeGetReserveConfigurationData.borrowingEnabled],\n hasStable: false,\n isActive: configData?.[YLDRTypeGetReserveConfigurationData.isActive],\n isFrozen: configData?.[YLDRTypeGetReserveConfigurationData.isFrozen],\n }\n }\n\n return {\n data: resultReserves,\n chainId,\n eModes: {},\n }\n },\n expectedNumberOfCalls,\n ]\n}\n\nfunction parseAave32(\n chainId: string,\n lender: string,\n prices: any,\n additionalYields: any,\n tokenList: any,\n) {\n const assetsToQuery = getAaveAssets(chainId, lender)\n\n const allModes = AAVE_V3_EMODES(chainId, lender)\n const expectedNumberOfCalls =\n assetsToQuery.length * 5 + allModes.length * 3 + 2\n\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n\n const emodeDataResult = data.slice(\n assetsToQuery.length * 5,\n assetsToQuery.length * 5 + allModes.length * 3,\n )\n const resultReserves: any = {}\n\n const reservesList = data[expectedNumberOfCalls - 2]\n const decimalsCeiling = data[expectedNumberOfCalls - 1]\n\n let eModeConfigs: any = {}\n let collateralBitmap: any = {}\n let debtBitmap: any = {}\n allModes.forEach((mode, index) => {\n const rawCfg = emodeDataResult[3 * index]\n if (rawCfg && (mode === 0 || rawCfg?.label !== '')) {\n eModeConfigs[mode] = {\n category: mode,\n label: rawCfg.label,\n borrowCollateralFactor: rawCfg.ltv / BPS,\n collateralFactor: rawCfg.liquidationThreshold / BPS,\n borrowFactor: 1,\n }\n debtBitmap[mode] = emodeDataResult[3 * index + 1]\n collateralBitmap[mode] = emodeDataResult[3 * index + 2]\n }\n })\n\n // we get the reserves list to obtain the index per reserve\n const lowerReservesList = (reservesList as string[])?.map((a) =>\n a.toLowerCase(),\n )\n\n for (let i = 0; i < assetsToQuery.length; i++) {\n const asset = assetsToQuery[i]\n\n const reserveData = data[i * 5]\n const configData = data[i * 5 + 1]\n /** Unused so far */\n // const siloedBorrowing = data[i * 5 + 2]\n const reserveCaps = data[i * 5 + 3]\n const debtCeiling = data[i * 5 + 4]\n\n const assetMeta = tokenList[asset]\n\n const decimals = assetMeta?.decimals ?? 18\n const totalDeposits = parseRawAmount(\n reserveData?.[AaveV3GetReservesIndexes.totalAToken]?.toString(),\n decimals,\n )\n const totalDebtStable = parseRawAmount(\n reserveData?.[AaveV3GetReservesIndexes.totalStableDebt]?.toString(),\n decimals,\n )\n const totalDebt = parseRawAmount(\n reserveData?.[AaveV3GetReservesIndexes.totalVariableDebt]?.toString(),\n decimals,\n )\n const liquidity =\n Number(totalDeposits) - Number(totalDebt) - Number(totalDebtStable)\n const price =\n prices[toOracleKey(assetMeta?.assetGroup!)] ??\n toGenericPriceKey(asset, chainId)\n\n resultReserves[asset] = {\n poolId: asset,\n underlying: asset,\n asset: assetMeta,\n // raw amounts\n totalDeposits,\n totalDebtStable,\n totalDebt,\n totalLiquidity: liquidity,\n // USD amounts\n totalDepositsUSD: Number(totalDeposits) * price,\n totalDebtStableUSD: Number(totalDebtStable) * price,\n totalDebtUSD: Number(totalDebt) * price,\n totalLiquidityUSD: liquidity * price,\n // rates\n depositRate: formatAaveRawApyToApr(\n reserveData?.[AaveV3GetReservesIndexes.liquidityRate]?.toString(),\n ),\n variableBorrowRate: formatAaveRawApyToApr(\n reserveData?.[\n AaveV3GetReservesIndexes.variableBorrowRate\n ]?.toString(),\n ),\n stableBorrowRate: formatAaveRawApyToApr(\n reserveData?.[\n AaveV3GetReservesIndexes.stableBorrowRate\n ]?.toString(),\n ),\n\n stakingYield:\n additionalYields.intrinsicYields[\n toOracleKey(assetMeta?.assetGroup)\n ] ?? 0,\n // rewards\n rewards: {},\n }\n const assetIndex = lowerReservesList.indexOf(asset)\n const activeEmodes = allModes\n .map((mode) =>\n isReserveEnabledOnBitmap(debtBitmap[mode], assetIndex) ||\n isReserveEnabledOnBitmap(collateralBitmap[mode], assetIndex)\n ? mode\n : -1,\n )\n .filter((m) => m !== undefined && m > 0)\n\n const eModeCategory = activeEmodes.length === 0 ? 0 : activeEmodes[0] // Number(emodeResult[index].toString())\n\n resultReserves[asset] = {\n ...resultReserves[asset],\n decimals: Number(\n configData?.[AaveV3GetreserveConfigDataIndexes.decimals],\n ),\n\n config: populateEModes32(\n Number(configData?.[AaveV3GetreserveConfigDataIndexes.ltv]) / BPS,\n Number(\n configData?.[\n AaveV3GetreserveConfigDataIndexes.liquidationThreshold\n ],\n ) / BPS,\n collateralBitmap,\n debtBitmap,\n assetIndex,\n eModeConfigs,\n allModes,\n ),\n\n // flags\n collateralActive:\n configData?.[\n AaveV3GetreserveConfigDataIndexes.usageAsCollateralEnabled\n ],\n borrowingEnabled:\n configData?.[AaveV3GetreserveConfigDataIndexes.borrowingEnabled],\n hasStable:\n configData?.[\n AaveV3GetreserveConfigDataIndexes.stableBorrowRateEnabled\n ],\n isActive: configData?.[AaveV3GetreserveConfigDataIndexes.isActive],\n isFrozen: configData?.[AaveV3GetreserveConfigDataIndexes.isFrozen],\n\n // caps\n borrowCap: Number(reserveCaps[0]?.toString()),\n supplyCap: Number(reserveCaps[1]?.toString()),\n debtCeiling: parseRawAmount(\n debtCeiling[i]?.toString(),\n Number(decimalsCeiling?.toString()),\n ),\n }\n }\n return {\n data: resultReserves,\n chainId,\n eModes: eModeConfigs,\n }\n },\n expectedNumberOfCalls,\n ]\n}\n","import { InitGeneralPublicResponse } from '../../types/lender/init-types'\nimport { AdditionalYields } from '../../types'\nimport { INIT_MODES } from './publicCallBuild'\nimport { toGenericPriceKey, toOracleKey } from '../../assets'\nimport { convertRateToApr, parseRawAmount } from '../../utils/parsing'\nimport { Lender } from '@1delta/lender-registry'\nimport { GenericTokenList } from '../../types'\n\nexport const INIT_EMODE_LABELS: { [mode: number]: string } = {\n [1]: 'Default',\n [2]: 'Blue Chip Volatile',\n [3]: 'Stablecoins',\n [4]: 'ETH correlated',\n [5]: 'Ethena',\n [6]: 'BTC',\n}\n\nexport const getInitReservesDataConverter = (\n lender: Lender,\n chainId: string,\n prices: { [asset: string]: number },\n additionalYields: AdditionalYields,\n tokenList: GenericTokenList = {},\n): [(data: any[]) => InitGeneralPublicResponse | undefined, number] => {\n const expectedNumberOfCalls = INIT_MODES.length\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n const modeOne = 0\n let result = Object.assign(\n {},\n ...data[modeOne]?.map((dat: any) => {\n const asset = dat?.underlying.toLowerCase()\n const meta = tokenList[asset]\n const totalDeposits = parseRawAmount(\n dat?.totalSupply.toString(),\n meta?.decimals,\n )\n const totalDebt = parseRawAmount(\n dat?.totalDebt.toString(),\n meta.decimals,\n )\n const oracleKey =\n toOracleKey(meta?.assetGroup!) ?? toGenericPriceKey(asset, chainId)\n const price = prices[oracleKey]\n const liquidity = Number(totalDeposits) - Number(totalDebt)\n return {\n [asset]: {\n poolId: asset,\n underlying: asset,\n asset: meta,\n borrowCap: parseRawAmount(\n dat?.borrowCap.toString(),\n meta.decimals,\n ),\n canBurn: Boolean(dat?.canBurn),\n canFlash: Boolean(dat?.canFlash),\n canMint: Boolean(dat?.canMint),\n canRepay: Boolean(dat?.canRepay),\n totalDeposits,\n totalDebt,\n totalDepositsUSD: price * Number(totalDeposits),\n totalDebtUSD: price * Number(totalDebt),\n totalLiquidity: liquidity,\n totalLiquidityUSD: liquidity * price,\n depositRate: convertRateToApr(\n Number(parseRawAmount(dat?.supplyRate.toString(), 18)),\n ),\n variableBorrowRate: convertRateToApr(\n Number(parseRawAmount(dat?.borrowRate.toString(), 18)),\n ),\n stableBorrowRate: 0,\n stakingYield: additionalYields.intrinsicYields[oracleKey] ?? 0,\n rewards: {},\n config: {},\n borrowingEnabled: totalDebt !== '0',\n },\n }\n }),\n )\n\n let eModes: any = {}\n INIT_MODES.forEach((mode, index) => {\n data[index]?.forEach((multicallData: any) => {\n const asset = multicallData?.underlying.toLowerCase()\n const cf = Number(parseRawAmount(multicallData.collateralFactor, 18))\n const modeData = {\n category: mode,\n label: INIT_EMODE_LABELS[mode],\n borrowCollateralFactor: cf,\n collateralFactor: cf,\n borrowFactor: Number(\n parseRawAmount(multicallData.borrowFactor, 18),\n ),\n maxHealthAfterLiq: Number(\n parseRawAmount(multicallData.maxHealthAfterLiq, 18),\n ),\n }\n if (!eModes[mode]) eModes[mode] = modeData\n result[asset].config[mode] = modeData\n })\n })\n\n Object.entries(eModes).forEach(([modeId, data]: [string, any]) => {\n Object.entries(result)?.forEach(([key, _]: [string, any]) => {\n if (!result[key].config[modeId]) {\n let mode = {\n ...data,\n debtDisabled: true,\n collateralDisabled: true,\n collateralFactor: 0,\n borrowCollateralFactor: 0,\n borrowFactor: 340282366920938500000, // disabled flag\n }\n result[key].config[modeId] = mode\n }\n })\n })\n\n return { data: result, eModes, chainId }\n },\n expectedNumberOfCalls,\n ]\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { AdditionalYields } from '../../types'\nimport {\n CometInterestRateIndexes,\n CompoundV3GeneralPublicResponse,\n} from '../../types/lender/compound-v3-types'\nimport {\n getCompoundV3Assets,\n LENDER_MODE_NO_MODE,\n toGenericPriceKey,\n toOracleKey,\n} from '../../assets'\nimport { getCompoundV3BaseAsset } from '../addresses/compoundV3'\nimport { calculateRateForCompound, parseRawAmount } from '../../utils/parsing'\nimport { GenericTokenList } from '../../types'\n\nconst COMET_RISK_DECIMALS = 18\nconst SECONDS_PER_DAY = 3600 * 24\nconst DAYS_IN_YEAR = 365\n\nexport const getCompoundV3ReservesDataConverter = (\n lender: Lender,\n chainId: string,\n prices: { [asset: string]: number },\n additionalYields: AdditionalYields,\n tokenList: GenericTokenList = {},\n): [(data: any[]) => CompoundV3GeneralPublicResponse | undefined, number] => {\n const assetsToQuery = getCompoundV3Assets(chainId, lender)\n const baseAssetData = getCompoundV3BaseAsset(lender, chainId)\n const tokensNoBase = assetsToQuery.filter(\n (a) => a !== baseAssetData.baseAsset,\n )\n\n const baseLength = tokensNoBase.length * 2\n const expectedNumberOfCalls = baseLength + 6\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n let result: any = {}\n for (let i = 0; i < tokensNoBase.length; i++) {\n const asset = tokensNoBase[i]\n const resultsAssetInfo = data[i * 2]\n const resultsTotals = data[i * 2 + 1]\n const assetMeta = tokenList[asset]\n const decimals = assetMeta?.decimals ?? 18\n const totals = parseRawAmount(resultsTotals[0], decimals)\n const oracleKey =\n toOracleKey(assetMeta?.assetGroup) ??\n toGenericPriceKey(asset, chainId)\n\n const totalUsd = Number(totals) * (prices[oracleKey] ?? 1)\n\n result[asset] = {\n poolId: asset,\n underlying: asset,\n asset: assetMeta,\n config: {\n [LENDER_MODE_NO_MODE]: {\n category: LENDER_MODE_NO_MODE,\n // collateral factors\n borrowCollateralFactor: parseRawAmount(\n resultsAssetInfo.borrowCollateralFactor.toString(),\n COMET_RISK_DECIMALS,\n ),\n collateralFactor: parseRawAmount(\n resultsAssetInfo.liquidateCollateralFactor.toString(),\n COMET_RISK_DECIMALS,\n ),\n borrowFactor: 1,\n },\n },\n supplyCap: parseRawAmount(\n resultsAssetInfo.supplyCap.toString(),\n decimals,\n ),\n\n // interest rates\n variableBorrowRate: 0,\n stableBorrowRate: 0,\n depositRate: 0,\n stakingYield: additionalYields.intrinsicYields[oracleKey] ?? 0,\n\n utilization: 0,\n // debt and liquidity are zero\n totalDebt: 0,\n totalDebtUSD: 0,\n totalLiquidity: totals,\n totalLiquidityUSD: totalUsd,\n // deposits are different outputs for base asset and others\n totalDeposits: totals,\n totalDepositsUSD: totalUsd,\n // rewards\n rewards: {},\n isActive: true,\n isFrozen: false,\n borrowingEnabled: false,\n }\n }\n\n const baseMeta = tokenList[baseAssetData.baseAsset]\n\n // parse data for rewards calculation\n const decimals = baseMeta?.decimals ?? 18\n const resultsSupplyRewards = Number(data[baseLength]?.toString())\n const resultsBorrowRewards = Number(data[baseLength + 1]?.toString())\n const resultsIndexScale = data[baseLength + 2]?.toString()\n const resultsSupply = parseRawAmount(\n data[baseLength + 3]?.toString(),\n decimals,\n )\n const resultsBorrow = parseRawAmount(\n data[baseLength + 4]?.toString(),\n decimals,\n )\n\n const compToSuppliersPerDay =\n (resultsSupplyRewards / Number(resultsIndexScale)) * SECONDS_PER_DAY\n const compToBorrowersPerDay =\n (resultsBorrowRewards / Number(resultsIndexScale)) * SECONDS_PER_DAY\n\n const resultsInterest = data[baseLength + 5]\n\n const oracleKeyBase =\n toOracleKey(baseMeta?.assetGroup) ??\n toGenericPriceKey(baseAssetData.baseAsset, chainId)\n const price = prices[oracleKeyBase] ?? 1\n const liquidity = Number(resultsSupply) - Number(resultsBorrow)\n const compPrice = prices['COMP']\n\n const baseData = {\n [baseAssetData.baseAsset]: {\n poolId: baseAssetData.baseAsset,\n underlying: baseAssetData.baseAsset,\n asset: baseMeta,\n // collateral factots\n borrowCollateralFactor: 0,\n collateralFactor: 0,\n supplyCap: 0,\n\n config: {\n [LENDER_MODE_NO_MODE]: {\n category: LENDER_MODE_NO_MODE,\n // collateral factors\n borrowCollateralFactor: 0,\n collateralFactor: 0,\n borrowFactor: 1,\n },\n },\n // interest rates\n variableBorrowRate: calculateRateForCompound(\n resultsInterest[CometInterestRateIndexes.borrowRate].toString(),\n chainId,\n lender,\n ),\n depositRate: calculateRateForCompound(\n resultsInterest[CometInterestRateIndexes.supplyRate].toString(),\n chainId,\n lender,\n ),\n stableBorrowRate: 0,\n utilization: parseRawAmount(\n resultsInterest[CometInterestRateIndexes.utilization].toString(),\n COMET_RISK_DECIMALS,\n ),\n\n totalLiquidity: liquidity,\n totalLiquidityUSD: liquidity * price,\n\n totalDebt: resultsBorrow,\n totalDeposits: resultsSupply,\n\n totalDebtUSD: Number(resultsBorrow) * price,\n totalDepositsUSD: Number(resultsSupply) * price,\n // rewards\n rewards: {\n COMP: {\n depositRate:\n (((compPrice * compToSuppliersPerDay) / Number(resultsSupply)) *\n DAYS_IN_YEAR *\n 100) /\n price,\n variableBorrowRate:\n (((compPrice * compToBorrowersPerDay) / Number(resultsBorrow)) *\n DAYS_IN_YEAR *\n 100) /\n price,\n stableBorrowRate: 0,\n },\n },\n borrowingEnabled: true,\n isActive: true,\n isFrozen: false,\n stakingYield: additionalYields.intrinsicYields[oracleKeyBase] ?? 0,\n },\n }\n return { data: { ...result, ...baseData }, chainId }\n },\n expectedNumberOfCalls,\n ]\n}\n","export const AavePoolLegacyAbi = [\n {\n \"inputs\": [],\n \"name\": \"BRIDGE_PROTOCOL_FEE\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"FLASHLOAN_PREMIUM_TOTAL\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"FLASHLOAN_PREMIUM_TO_PROTOCOL\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_NUMBER_RESERVES\",\n \"outputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"\",\n \"type\": \"uint16\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_STABLE_RATE_BORROW_SIZE_PERCENT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"fee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"backUnbacked\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"borrow\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n },\n {\n \"components\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"ltv\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"priceSource\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"label\",\n \"type\": \"string\"\n }\n ],\n \"internalType\": \"struct DataTypes.EModeCategory\",\n \"name\": \"config\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"configureEModeCategory\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"deposit\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"asset\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"address\",\n \"name\": \"onBehalfOf\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint16\",\n \"name\": \"referralCode\",\n \"internalType\": \"uint16\"\n }\n ]\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"dropReserve\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"balanceFromBefore\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"balanceToBefore\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"finalizeTransfer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"receiverAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"interestRateModes\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"flashLoan\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"receiverAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"flashLoanSimple\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getConfiguration\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getEModeCategoryData\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"ltv\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"priceSource\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"label\",\n \"type\": \"string\"\n }\n ],\n \"internalType\": \"struct DataTypes.EModeCategory\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"id\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"getReserveAddressById\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveNormalizedIncome\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveNormalizedVariableDebt\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getReservesList\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserAccountData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalCollateralBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalDebtBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"availableBorrowsBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentLiquidationThreshold\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"ltv\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"healthFactor\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserConfiguration\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.UserConfigurationMap\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserEMode\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"aTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"stableDebtAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"variableDebtAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"interestRateStrategyAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initReserve\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"collateralAsset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"debtAsset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"debtToCover\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"receiveAToken\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"liquidationCall\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"mintToTreasury\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"mintUnbacked\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"rebalanceStableBorrowRate\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"repay\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"repayWithATokens\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"permitV\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitR\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitS\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"repayWithPermit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"rescueTokens\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"resetIsolationModeTotalDebt\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"configuration\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"setConfiguration\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"rateStrategyAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setReserveInterestRateStrategyAddress\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"categoryId\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"setUserEMode\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"useAsCollateral\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setUserUseReserveAsCollateral\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"supply\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"permitV\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitR\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitS\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"supplyWithPermit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"swapBorrowRateMode\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"bridgeProtocolFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"updateBridgeProtocolFee\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"flashLoanPremiumTotal\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"flashLoanPremiumToProtocol\",\n \"type\": \"uint128\"\n }\n ],\n \"name\": \"updateFlashloanPremiums\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const","export const AavePoolDataProviderLegacyAbi = [\n {\n \"inputs\": [{\n \"internalType\": \"contract IPoolAddressesProvider\",\n \"name\": \"addressesProvider\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n},\n{\n \"inputs\": [],\n \"name\": \"ADDRESSES_PROVIDER\",\n \"outputs\": [{\n \"internalType\": \"contract IPoolAddressesProvider\",\n \"name\": \"\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getATokenTotalSupply\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [],\n \"name\": \"getAllATokens\",\n \"outputs\": [{\n \"components\": [{\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n }],\n \"internalType\": \"struct IPoolDataProvider.TokenData[]\",\n \"name\": \"\",\n \"type\": \"tuple[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [],\n \"name\": \"getAllReservesTokens\",\n \"outputs\": [{\n \"components\": [{\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n }],\n \"internalType\": \"struct IPoolDataProvider.TokenData[]\",\n \"name\": \"\",\n \"type\": \"tuple[]\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getDebtCeiling\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [],\n \"name\": \"getDebtCeilingDecimals\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getFlashLoanEnabled\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getInterestRateStrategyAddress\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"irStrategyAddress\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getLiquidationProtocolFee\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getPaused\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"isPaused\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getReserveCaps\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"borrowCap\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"supplyCap\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getReserveConfigurationData\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"decimals\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"ltv\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"reserveFactor\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"usageAsCollateralEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"borrowingEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"stableBorrowRateEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isActive\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isFrozen\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getReserveData\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"unbacked\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"accruedToTreasuryScaled\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalAToken\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalStableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalVariableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidityRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"variableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"stableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"averageStableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidityIndex\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"variableBorrowIndex\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"lastUpdateTimestamp\",\n \"type\": \"uint40\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getReserveEModeCategory\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getReserveTokensAddresses\",\n \"outputs\": [{\n \"internalType\": \"address\",\n \"name\": \"aTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"stableDebtTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"variableDebtTokenAddress\",\n \"type\": \"address\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getSiloedBorrowing\",\n \"outputs\": [{\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getTotalDebt\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }],\n \"name\": \"getUnbackedMintCap\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n},\n{\n \"inputs\": [{\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }],\n \"name\": \"getUserReserveData\",\n \"outputs\": [{\n \"internalType\": \"uint256\",\n \"name\": \"currentATokenBalance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentStableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentVariableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"principalStableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"scaledVariableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"stableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidityRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"stableRateLastUpdated\",\n \"type\": \"uint40\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"usageAsCollateralEnabled\",\n \"type\": \"bool\"\n }],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n}] as const","export const YLDRProtocolDataProviderAbi = [\n {\n type: 'constructor',\n inputs: [\n {\n type: 'address',\n name: 'addressesProvider',\n internalType: 'contract ILendingPoolAddressesProvider',\n },\n ],\n },\n {\n type: 'function',\n stateMutability: 'view',\n outputs: [\n {\n type: 'address',\n name: '',\n internalType: 'contract ILendingPoolAddressesProvider',\n },\n ],\n name: 'ADDRESSES_PROVIDER',\n inputs: [],\n },\n {\n type: 'function',\n stateMutability: 'view',\n outputs: [\n {\n type: 'tuple[]',\n name: '',\n internalType: 'struct AaveProtocolDataProvider.TokenData[]',\n components: [\n {\n type: 'string',\n },\n {\n type: 'address',\n },\n ],\n },\n ],\n name: 'getAllATokens',\n inputs: [],\n },\n {\n type: 'function',\n stateMutability: 'view',\n outputs: [\n {\n type: 'tuple[]',\n name: '',\n internalType: 'struct AaveProtocolDataProvider.TokenData[]',\n components: [\n {\n type: 'string',\n },\n {\n type: 'address',\n },\n ],\n },\n ],\n name: 'getAllReservesTokens',\n inputs: [],\n },\n {\n inputs: [{ internalType: 'address', name: 'asset', type: 'address' }],\n name: 'getReserveConfigurationData',\n outputs: [\n { internalType: 'uint256', name: 'decimals', type: 'uint256' },\n { internalType: 'uint256', name: 'ltv', type: 'uint256' },\n {\n internalType: 'uint256',\n name: 'liquidationThreshold',\n type: 'uint256',\n },\n { internalType: 'uint256', name: 'liquidationBonus', type: 'uint256' },\n { internalType: 'uint256', name: 'reserveFactor', type: 'uint256' },\n { internalType: 'bool', name: 'usageAsCollateralEnabled', type: 'bool' },\n { internalType: 'bool', name: 'borrowingEnabled', type: 'bool' },\n { internalType: 'bool', name: 'isActive', type: 'bool' },\n { internalType: 'bool', name: 'isFrozen', type: 'bool' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'asset',\n type: 'address',\n },\n ],\n name: 'getReserveData',\n outputs: [\n {\n internalType: 'uint256',\n name: 'accruedToTreasuryScaled',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'totalYToken',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'totalVariableDebt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'liquidityRate',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'variableBorrowRate',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'liquidityIndex',\n type: 'uint256',\n },\n { internalType: 'uint256', name: 'variableBorrowIndex', type: 'uint256' },\n { internalType: 'uint40', name: 'lastUpdateTimestamp', type: 'uint40' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n type: 'function',\n stateMutability: 'view',\n outputs: [\n {\n type: 'address',\n name: 'aTokenAddress',\n internalType: 'address',\n },\n {\n type: 'address',\n name: 'stableDebtTokenAddress',\n internalType: 'address',\n },\n {\n type: 'address',\n name: 'variableDebtTokenAddress',\n internalType: 'address',\n },\n ],\n name: 'getReserveTokensAddresses',\n inputs: [\n {\n type: 'address',\n name: 'asset',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'function',\n stateMutability: 'view',\n outputs: [\n {\n type: 'uint256',\n name: 'currentATokenBalance',\n internalType: 'uint256',\n },\n {\n type: 'uint256',\n name: 'currentStableDebt',\n internalType: 'uint256',\n },\n {\n type: 'uint256',\n name: 'currentVariableDebt',\n internalType: 'uint256',\n },\n {\n type: 'uint256',\n name: 'principalStableDebt',\n internalType: 'uint256',\n },\n {\n type: 'uint256',\n name: 'scaledVariableDebt',\n internalType: 'uint256',\n },\n {\n type: 'uint256',\n name: 'stableBorrowRate',\n internalType: 'uint256',\n },\n {\n type: 'uint256',\n name: 'liquidityRate',\n internalType: 'uint256',\n },\n {\n type: 'uint40',\n name: 'stableRateLastUpdated',\n internalType: 'uint40',\n },\n {\n type: 'bool',\n name: 'usageAsCollateralEnabled',\n internalType: 'bool',\n },\n ],\n name: 'getUserReserveData',\n inputs: [\n {\n type: 'address',\n name: 'asset',\n internalType: 'address',\n },\n {\n type: 'address',\n name: 'user',\n internalType: 'address',\n },\n ],\n },\n] as const\n","import { Lender } from '@1delta/lender-registry'\nimport { Chain } from '@1delta/chain-registry'\nimport { Call } from '../../../utils/multicall'\nimport { morphoPools } from '@1delta/data-sdk'\nimport lodash from 'lodash';\n\n// pull the functions you need\nconst { chunk } = lodash;\n\nexport const MORPHO_LENS: { [c: string]: string } = {\n [Chain.HEMI_NETWORK]: '0x1170Ef5B1A7f9c4F0ce34Ddf66CC0e6090Fd107E',\n [Chain.BASE]: '0x05f3f58716a88A52493Be45aA0871c55b3748f18',\n [Chain.POLYGON_MAINNET]: '0x04102873b1A80647879Aa8B8a119F07aE08f457a',\n [Chain.OP_MAINNET]: '0x61895aEB0a42679E2Df8EE64334C405a8d47D244',\n [Chain.ARBITRUM_ONE]: '0xeaC918F73Ba5b11D21D31a72BD00ca4A22865C3f',\n [Chain.KATANA]: '0xCe434378adacC51d54312c872113D687Ac19B516',\n [Chain.HYPEREVM]: '0x6Bc6aCB905c1216B0119C87Bf9E178ce298310FA',\n [Chain.SONEIUM]: '0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d',\n [Chain.ETHEREUM_MAINNET]: '0x4b5458BB47dCBC1a41B31b41e1a8773dE312BE9d',\n [Chain.PLASMA_MAINNET]: '0xcB6Eb8df68153cebF60E1872273Ef52075a5C297',\n}\n\nconst getBaseMorphoCalls = (\n lender: string,\n chainId: string,\n account: string,\n marketsToQuery: string[],\n) => {\n const mbPool = morphoPools()?.[lender]?.[chainId]\n return marketsToQuery.flatMap((id) => [\n {\n // @ts-ignore\n address: mbPool,\n name: 'position',\n params: ['0x' + id.split('_')[1], account],\n },\n {\n // @ts-ignore\n address: mbPool,\n name: 'market',\n params: ['0x' + id.split('_')[1]],\n },\n ])\n}\n\nexport const buildMorphoUserCall = (\n chainId: string,\n account: string,\n lender: Lender,\n marketsToQuery: string[],\n): Call[] => {\n const calls = getBaseMorphoCalls(lender, chainId, account, marketsToQuery)\n\n return calls\n}\n\nexport const buildMorphoUserCallWithLens = (\n chainId: string,\n account: string,\n lender: Lender,\n marketsToQuery: string[],\n): Call[] => {\n // 100 per call\n const marketSlices = chunk(marketsToQuery, 100)\n return marketSlices.flatMap((marketsInChunk) => ({\n address: MORPHO_LENS[chainId],\n name: 'getUserDataCompact',\n params: [\n marketsInChunk.map((a) => a.replace('MORPHO_BLUE_', '0x')),\n account,\n // @ts-ignore\n morphoPools()?.[lender]?.[chainId],\n ],\n }))\n}\n","import { Chain } from '@1delta/chain-registry'\n\nexport const MORPHO_MARKETS: { [chain: string]: string[] } = {\n [Chain.HYPEREVM]: [\n '0x076689a210adf3fdaa54e8ed452615ed641ba0d985f95e1376c3df3017d62878',\n '0x09ed416b38a29e077383da5ae4200523e54e33ecff6e148c2590969a9852513f',\n '0x0a2e456ebd22ed68ae1d5c6b2de70bc514337ac588a7a4b0e28f546662144036',\n '0x0bb2900086fe38fa9633c664e1f955eb8dcf66a81174967e83dee867e083a105',\n '0x0ecf5be1fadf4bec3f79ce196f02a327b507b34d230c0f033f4970b1b510119c',\n '0x15f505f8dda26a523f7490ad0322f3ed4f325a54fd50832bc65e4bd75e3dca54',\n '0x19bbcc95b876740c0765ed1e4bac1979c4aea1b4bfbfee0e61dc1fe76a6887dc',\n '0x19e47d37453628ebf0fd18766ce6fee1b08ea46752a5da83ca0bfecb270d07e8',\n '0x1c6b87ae1b97071ef444eedcba9f5a92cfe974edbbcaa1946644fc7ab0e283af',\n '0x1da89208e6cb5173e97a83461853b8400de4f7c37542cf010a10579a5f7ca451',\n '0x1df0d0ebcdc52069692452cb9a3e5cf6c017b237378141eaf08a05ce17205ed6',\n '0x216bd19960f140177a4a3fb9cf258edcbadb1f5d54740fc944503bff4a00e65e',\n '0x2acd218c67daa94dd2f92e81f477ffc9f8507319f0f2d698eae5ed631ae14039',\n '0x2b62c4153d81d5b5a233d1d2b7ef899d3fca4076d458e215ff3a00176b415b0d',\n '0x31aaa663d718e83ea15326ec110c4bcf5e123585d0b6c4d0ad61a50c4aa65b1e',\n '0x33c935bb0699b737d9cbd4274b5936a9004eee03ccfa70e266ff7c1513fd4808',\n '0x45af9c72aa97978e143a646498c8922058b7c6f18b6f7b05d7316c8cf7ab942f',\n '0x5031ac4543f8232df889e5eb24389f8cf9520366f21dc62240017cb3bc6ecc59',\n '0x53bf81793c2cc384c19a3bc9b032467e179a390a9225cd9542742ac10f539cc2',\n '0x5ecb7a25d51c870ec57f810c880e3e20743e56d0524575b7b8934a778aaec1af',\n '0x5ef35fe4418a6bcfcc70fe32efce30074f22e9a782f81d432c1e537ddbda11e2',\n '0x64e7db7f042812d4335947a7cdf6af1093d29478aff5f1ccd93cc67f8aadfddc',\n '0x65f2a559764859a559d8c39604cf665942bab7d10dfaa1b82e914c9d351038d4',\n '0x6eb4ce92dc1d89abd40f9634249ec28e8ab4e3f9bef0ab47ea784773c140d4ef',\n '0x707dddc200e95dc984feb185abf1321cabec8486dca5a9a96fb5202184106e54',\n '0x725d0f4c005c0a521ea5005bb4730845ff0d4cc76b40a618103b103cddd1f951',\n '0x7268244d330f1462f77ded7a14e2f868893e86e76e8b8eaa869405d588aff6ce',\n '0x78f6b57d825ef01a5dc496ad1f426a6375c685047d07a30cd07ac5107ffc7976',\n '0x83bab0d612f592d0f145b2ec82fd730144dfb3d72c8fc838b27555558e49c496',\n '0x888679b2af61343a4c7c0da0639fc5ca5fc5727e246371c4425e4d634c09e1f6',\n '0x8eb8cfe3b1ac8f653608ae09fb099263fa2fe25d4a59305c309937292c2aeee9',\n '0x964e7d1db11bdf32262c71274c297dcdb4710d73acb814f04fdca8b0c7cdf028',\n '0x9e28003bb5c29c1df3552e99b04d656fadf1aedaf81256637dcc51d91cf6c639',\n '0xa24d04c3aff60d49b3475f0084334546cbf66182e788b6bf173e6f9990b2c816',\n '0xa62327642e110efd38ba2d153867a8625c8dc40832e1d211ba4f4151c3de9050',\n '0xa7fe39c692f0192fb2f281a6cc16c8b2e1c8f9b9f2bc418e0c0c1e9374bf4b04',\n '0xace279b5c6eff0a1ce7287249369fa6f4d3d32225e1629b04ef308e0eb568fb0',\n '0xb142d65d7c624def0a9f4b49115b83f400a86bd2904d4f3339ec4441e28483ea',\n '0xb5b575e402c7c19def8661069c39464c8bf3297b638e64d841b09a4eb2807de5',\n '0xbc15a1782163f4be46c23ac61f5da50fed96ad40293f86a5ce0501ce4a246b32',\n '0xc5526286d537c890fdd879d17d80c4a22dc7196c1e1fff0dd6c853692a759c62',\n '0xc59a3f8a3918d89ebef44ee1dcda435719f543cfd3f37ead7e74852ea5931581',\n '0xd13b1bad542045a8dc729fa0ffcc4f538b9771592c2666e1f09667dcf85804fc',\n '0xd173e9d80aeacac486b46a9a849ecb386cec260cc7dd5be0db3505a0f9f93fb5',\n '0xd2e8f6fd195556222d7a0314d4fb93fdf84ae920faaebba6dbcf584ac865e1f5',\n '0xd5a9fba2309a0b85972a96f2cc45f9784e786d712944d8fc0b31a6d9cb4f21d3',\n '0xd5c5b5db889eb5d4f4026b9704cddffbc1356732a37c2b543330c10756ae7a18',\n '0xdb2cf3ad3ef91c9bb673bf35744e7141bc2950b27a75c8d11b0ead9f6742d927',\n '0xe0ede98b4425285a9c93d51f8ba27d9a09bc0033874e4a883d3f29d41f9f2e4a',\n '0xe41ace68f2de7be8e47185b51ddc23d4a58aac4ce9f8cc5f9384fe26f2104ec8',\n '0xe7aa046832007a975d4619260d221229e99cc27da2e6ef162881202b4cd2349b',\n '0xe9a9bb9ed3cc53f4ee9da4eea0370c2c566873d5de807e16559a99907c9ae227',\n '0xebeabb17bd69d4b8ed6929a821d69478b564f4cc604d0995944c9da8b5cb3f04',\n '0xed00791e29eb08c9bc0d8b389fe1f00084699baf2a785ba2a42e915706b17b82',\n '0xf25db2433ae650155eae04ebd8b3795d19bfcb318d22926a8a5e746e8028e0a8',\n '0xf9f0473b23ebeb82c83078f0f0f77f27ac534c9fb227cb4366e6057b6163ffbf',\n '0xfbe436e9aa361487f0c3e4ff94c88aea72887a4482c6b8bcfec60a8584cdb05e',\n '0xfdece686f16877984325c7a1c192e0f18862bae3829d000a1a62b5bc2b31d4ef',\n '0xb1977ea63bed73a2b1259889cd6c846e1fa869aa3236f86938588b4b3bd68b7d',\n '0xae019cf2bf3d650ab4037986405c80ebb83fec18fb120c71bf8889d327caef0f',\n '0xfea758e88403739fee1113b26623f43d3c37b51dc1e1e8231b78b23d1404e439',\n '0xb5b215bd2771f5ed73125bf6a02e7b743fadc423dfbb095ad59df047c50d3e81',\n '0xc0a3063a0a7755b7d58642e9a6d3be1c05bc974665ef7d3b158784348d4e17c5',\n '0x292f0a3ddfb642fbaadf258ebcccf9e4b0048a9dc5af93036288502bde1a71b1',\n '0x96c7abf76aed53d50b2cc84e2ed17846e0d1c4cc28236d95b6eb3b12dcc86909',\n '0x5fe3ac84f3a2c4e3102c3e6e9accb1ec90c30f6ee87ab1fcafc197b8addeb94c',\n '0x87272614b7a2022c31ddd7bba8eb21d5ab40a6bcbea671264d59dc732053721d',\n '0xb39e45107152f02502c001a46e2d3513f429d2363323cdaffbc55a951a69b998',\n '0x1f79fe1822f6bfe7a70f8e7e5e768efd0c3f10db52af97c2f14e4b71e3130e70',\n '0xe500760b79e397869927a5275d64987325faae43326daf6be5a560184e30a521',\n '0x86d7bc359391486de8cd1204da45c53d6ada60ab9764450dc691e1775b2e8d69',\n '0x920244a8682a53b17fe15597b63abdaa3aecec44e070379c5e43897fb9f42a2b',\n '0xd4fd53f612eaf411a1acea053cfa28cbfeea683273c4133bf115b47a20130305',\n '0xe0a1de770a9a72a083087fe1745c998426aaea984ddf155ea3d5fbba5b759713',\n '0x41afe1000213f119a3d8a6cd2f9fc0b564a58f948514e4cc246f6293bbed3409',\n '0x583e3beb5d64b419c68083555bb7bbcc018ec392289742d5535c3916041c2f5e',\n '0x1f97b6313f322ddb58a7db22896fcd588dae009c5f67e8441a00613b990950eb',\n '0xbb72791441e499bb05931b2629964114cc97f197897128efc276a76a10d73ac6',\n '0x4ec715887ec2b7470a7e33f7cb0035677db3e8882a680cc09053b8ad53f47154',\n ],\n [Chain.OP_MAINNET]: [\n '0x173b66359f0741b1c7f1963075cd271c739b6dc73b658e108a54ce6febeb279b',\n '0x67840b3ace736fe47ab919ad003e0330da50536f61f9fcb96af80d0f37a57070',\n '0xc7ae57c1998c67a4c21804df606db1309b68a518ba5acc8b1dc3ffcb1b26b071',\n ],\n [Chain.SONEIUM]: [\n '0xc35eda4e57363a5679949be05c65b81c2c274bfcd21173344d99726147236614',\n '0x80a26251892573c16d88f2aabd447bc46d918daa035e1bbaedc9ca315bfb3275',\n '0x87f0a5e65f1cfb879d2d5e7300691332ba227f3babe8fbd4bd2cbca862d8ae5e',\n '0xebaf3dc6fa2fb3f78d18c87adcc37c06fe64874c5b2d69619ef7696088780df9',\n '0x5869019d7ec9f92db2e90c0156b542cda7c0a679c626eac842aa5117a0483d4a',\n ],\n [Chain.HEMI_NETWORK]: [\n '0x36931ab4ffe6fed55ab0624afd2bf6eb1cebdbd6d5c98334e949841e402f86ff',\n '0x08abb2b634eb6454a5819dbaa5c0229136989a9990ed757727c406dbcb4e606b',\n '0xf1b97d86baa12ef4622eeca186a49fa7f7ea1ac2aa55ea4c20a26e815ddd6bc6',\n '0xb7dd4c2e7c164de474b28c354cddb137deb0ce2583b925d20c33322074c22178',\n '0x4b670128dfaa02a92f833bb9b99949262b685c2d3f55d4f7c97da1849d2b6355',\n '0x7c985a3ba92fa76a362f661b37a68c9955490eb659b7905aab6019b91042b452',\n ],\n}\n","import _ from 'lodash'\nimport { LenderConfigMap } from '../../../../types/lenderTypes'\n\nexport const safeDivide = (a: number, b: number) => {\n return a === 0 || isNaN(a) ? 0 : b !== 0 ? a / b : Infinity\n}\n\nexport function capitalizeFirstLetter(data: string) {\n if (!data) return ''\n return data.charAt(0).toUpperCase() + data.slice(1)\n}\n\n/**\n * Formats e.g. 0.04 to 4%\n * @param n ratio\n * @param decs decimals to show\n * @returns percent as string\n */\nexport const formatRatioToPercent = (n: number, decs: number) => {\n return `${n >= 0 ? '+' : ''}${roundNumber(n * 100, decs)}%`\n}\n\n/**\n * Formats e.g. 0.04 to 4%, adds a + if positive\n * @param n ratio\n * @param decs decimals to show\n * @returns percent as string\n */\nexport const formatSignedRatioToPercent = (n: number, decs: number) => {\n if (n > 1e7) return '>100K%' // we ceil percentages at 100k and abbreviate\n return `${n > 0 ? '+' : ''}${roundNumber(n * 100, decs)}%` // we assume no lower values that -100%\n}\n\nexport const formatSignedRatioToPercentSign = (n: number, decs: number, skipSign = false) => {\n if (n > 1e7) return '>100K%' // we ceil percentages at 100k and abbreviate\n // Skip the sign when icons are used\n return `${skipSign ? '' : n > 0 ? '+' : ''}${roundNumber(Math.abs(n * 100), decs)}%`\n}\n\n/**\n * Formats e.g. 4 to 4%\n * @param n percent number\n * @param decs decimals to show\n * @returns percent as string\n */\nexport const formatNumberToPercent = (n: number | undefined, decs = 2) => {\n if (!n) return '0%'\n if (isNaN(n)) return ''\n return `${roundNumber(Number(n ?? 0), decs)}%`\n}\n\nexport const formatPercentagePoints = (n: number, decs: number) => {\n return `${roundNumber(n * 100, decs)}pp`\n}\n\nexport const formatNumber = (n: number, decs: number) => {\n if (!n) return '0'\n if (isNaN(n)) return ''\n return roundNumber(n, decs).toLocaleString()\n}\n\n/**\n * Round using lodash\n * @param n number to round\n * @param decs decimals\n * @returns number\n */\nexport const roundNumber = (n: number, decs: number) => {\n return _.round(n, decs)\n}\n\n/**\n * Converts a colateral factor e.g. 0.8 to 1/(1-0.8) = 5\n * @param n amount\n * @param decs decimals to show\n * @returns leverage as string\n */\nexport const convertCollateralFactorToLeverage = (n: number, decs: number): number => {\n return roundNumber(1 / (1 - n), decs)\n}\n\nexport const parseToTimes = (n: number) => `${n}×`\n\nexport const parseToTimesPrefix = (n: number) => `×${n}`\n\nexport const parseLeverage = (cf: number, decs = 2) => parseToTimes(convertCollateralFactorToLeverage(cf, decs))\n\nexport const parseLeverageRange = (config: LenderConfigMap) => {\n const levs = _.uniq(\n Object.values(config ?? {}).map((cfg) => convertCollateralFactorToLeverage(cfg.borrowCollateralFactor, 2)),\n )\n if (!levs) return ''\n if (levs.length === 1) return parseToTimes(levs[0])\n return `${_.min(levs)}-${parseToTimes(Number(_.max(levs)))}`\n}\n\n/**\n * Get apr from intinsic interest and reward\n * @param apr apr number\n * @param reward reward [per year] number\n * @returns number, validated for NaN\n */\nexport const getApr = (apr: number, reward: number, staking: number) => {\n const aprClean = !isNaN(apr) ? apr : 0\n const rewardClean = !isNaN(reward) ? reward : 0\n const stakingClean = !isNaN(staking) ? staking : 0\n if (aprClean + rewardClean + stakingClean < 0.01 && aprClean + rewardClean + stakingClean > -0.01) return '-'\n return `${(aprClean + rewardClean + stakingClean).toFixed(2)}%`\n}\n\n// Converters from apy to apr and reversed\n\nconst SECONDS_PER_YEAR = 31536000\n\nexport const aprToApy = (apr: number) => {\n return (1 + apr / SECONDS_PER_YEAR) ** SECONDS_PER_YEAR - 1\n}\n\nexport const apyToApr = (apy: number) => {\n return ((apy + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR\n}\n","import { divideAccrualsToAprs } from '.'\nimport {\n AaveV2Public,\n AaveV2UserReserveResponse,\n AaveV3Public,\n AaveV3UserReserveResponse,\n CompoundV3Public,\n CompoundV3UserReserveResponse,\n} from '../../../types/lenderTypes'\nimport { safeDivide } from './formatting'\n\ntype LenderUserData =\n | AaveV3UserReserveResponse\n | AaveV2UserReserveResponse\n | CompoundV3UserReserveResponse\ntype LenderState = AaveV3Public | AaveV2Public | CompoundV3Public\n\nexport function createBaseTypeUserState(\n payload: LenderUserData,\n lenderData: { [a: string]: LenderState },\n totalDeposits24h: number = 0,\n totalDebt24h: number = 0,\n) {\n let assetKeys = Object.keys(payload.lendingPositions['0'] ?? {})\n const { chainId, account } = payload\n\n const mode = Number((payload as any).userEMode ?? 0)\n\n // organic yields\n let depositInterest = 0\n let borrowInterest = 0\n // rewards\n let rewardDepositAccrual = 0\n let rewardBorrowAccrual = 0\n // staking\n let stakingDepositAccrual = 0\n let stakingBorrowAccrual = 0\n // amountrs\n let deposits = 0\n let debt = 0\n let collateral = 0\n let borrowDiscountedCollateral = 0\n\n let rewardsPerAsset: any = {}\n // main user data\n for (let i = 0; i < assetKeys.length; i++) {\n const asset = assetKeys[i]\n if (!lenderData?.[asset]) continue\n const { depositsUSD, debtStableUSD, debtUSD, collateralActive } =\n payload.lendingPositions['0'][asset]\n const {\n depositRate,\n stakingYield,\n variableBorrowRate,\n stableBorrowRate,\n rewards,\n } = lenderData[asset]\n\n // amounts\n deposits += depositsUSD\n debt += debtStableUSD\n debt += debtUSD\n\n // rewards\n Object.entries(rewards ?? {}).forEach(\n ([key, rewardData]: [string, any]) => {\n rewardDepositAccrual += rewardData.depositRate * depositsUSD\n rewardBorrowAccrual +=\n rewardData.variableBorrowRate * debtUSD +\n (rewardData.stableBorrowRate ?? 0) * debtStableUSD\n\n // totals\n const rewDepo = rewardData.depositRate * depositsUSD\n const rewDebt =\n rewardData.variableBorrowRate * debtUSD +\n (rewardData.stableBorrowRate ?? 0) * (debtStableUSD ?? 0)\n\n if (!rewardsPerAsset[key])\n rewardsPerAsset[key] = { depositApr: 0, borrowApr: 0 }\n if (rewDepo > 0) rewardsPerAsset[key].depositApr += rewDepo\n if (rewDebt > 0) rewardsPerAsset[key].borrowApr += rewDebt\n },\n )\n\n // staking\n stakingDepositAccrual += (stakingYield ?? 0) * depositsUSD\n stakingBorrowAccrual += (stakingYield ?? 0) * (debtStableUSD + debtUSD)\n if (collateralActive) {\n // risk adjusted\n collateral +=\n (lenderData[asset].config[mode]?.collateralFactor ?? 1) * depositsUSD\n borrowDiscountedCollateral +=\n (lenderData[asset].config[mode]?.borrowCollateralFactor ?? 1) *\n depositsUSD\n }\n // IRs\n depositInterest += depositRate * depositsUSD\n borrowInterest +=\n debtStableUSD * stableBorrowRate + debtUSD * variableBorrowRate\n }\n const nav = deposits - debt\n // aggregated balance data\n const balanceData = {\n '0': {\n borrowDiscountedCollateral,\n collateral,\n deposits,\n debt,\n adjustedDebt: debt,\n nav,\n deposits24h: totalDeposits24h,\n debt24h: totalDebt24h,\n nav24h: totalDeposits24h - totalDebt24h,\n ...(payload.rewards ? { rewards: payload.rewards } : {}),\n },\n }\n\n // aggregated apr data\n const aprData = {\n '0': {\n apr: safeDivide(depositInterest - borrowInterest, nav),\n borrowApr: safeDivide(borrowInterest, debt),\n depositApr: safeDivide(depositInterest, deposits),\n rewards: divideAccrualsToAprs(rewardsPerAsset, nav, deposits, debt),\n rewardApr: safeDivide(rewardDepositAccrual + rewardBorrowAccrual, nav),\n rewardDepositApr: safeDivide(rewardDepositAccrual, deposits),\n rewardBorrowApr: safeDivide(rewardBorrowAccrual, debt),\n stakingApr: safeDivide(stakingDepositAccrual - stakingBorrowAccrual, nav),\n stakingDepositApr: safeDivide(stakingDepositAccrual, deposits),\n stakingBorrowApr: safeDivide(stakingBorrowAccrual, debt),\n },\n }\n const userConfigs = { '0': { selectedMode: mode, id: account } }\n\n return {\n account,\n chainId,\n balanceData,\n aprData,\n userConfigs,\n }\n}\n","import { LENDER_MODE_NO_MODE } from \"../../../assets\"\nimport { InitPublic, InitUserReserveResponse } from \"../../../types/lenderTypes\"\nimport { safeDivide } from \"./formatting\"\n\nexport function createMultiAccountTypeUserState(\n payload: InitUserReserveResponse,\n lenderData: { [a: string]: InitPublic },\n histData: {\n [a: string]: {\n totalDebt24h: number,\n totalDeposits24h: number\n }\n }\n) {\n const positionKeys = Object.keys(payload.lendingPositions ?? {})\n let assetKeys = payload.assets\n const { chainId, account } = payload\n\n let userConfigs: any = {}\n let balanceData: any = {}\n let aprData: any = {}\n // main user data\n for (let j = 0; j < positionKeys.length; j++) {\n const posId = positionKeys[j]\n const position = payload.lendingPositions[posId]\n const { mode: posMode } = position\n // position mode can be undefined\n // in this case we default to no mode\n const mode = posMode ?? LENDER_MODE_NO_MODE\n userConfigs[posId] = {\n id: posId,\n selectedMode: mode,\n }\n // organic yields\n let depositInterest = 0\n let borrowInterest = 0\n // rewards\n let rewardDepositAccrual = 0\n let rewardBorrowAccrual = 0\n // staking\n let stakingDepositAccrual = 0\n let stakingBorrowAccrual = 0\n // amountrs\n let deposits = 0\n let debt = 0\n let collateral = 0\n let borrowDiscountedCollateral = 0\n let adjustedDebt = 0\n for (let i = 0; i < assetKeys.length; i++) {\n const asset = assetKeys[i]\n const { depositsUSD, debtUSD } = payload.lendingPositions[posId][asset]\n if (!lenderData?.[asset]) continue;\n const { depositRate, stakingYield, variableBorrowRate, rewards } = lenderData[asset]\n // amounts\n deposits += depositsUSD\n debt += debtUSD\n // rewards\n Object.entries(rewards ?? {}).map(([key, rewardData]) => {\n rewardDepositAccrual += rewardData.depositRate * depositsUSD\n rewardBorrowAccrual += rewardData.variableBorrowRate * debtUSD + rewardData.stableBorrowRate * debtUSD\n })\n // staking\n stakingDepositAccrual += (stakingYield ?? 0) * depositsUSD\n stakingBorrowAccrual += (stakingYield ?? 0) * debtUSD\n\n const config = lenderData[asset].config[mode]\n\n // risk adjusted\n collateral += (config?.collateralFactor ?? 1) * depositsUSD\n borrowDiscountedCollateral += (config?.borrowCollateralFactor ?? 1) * depositsUSD\n adjustedDebt += (config?.borrowFactor ?? 1) * debtUSD\n\n // IRs\n depositInterest += depositRate * depositsUSD\n borrowInterest += debtUSD * variableBorrowRate\n\n }\n const nav = deposits - debt\n\n // aggregated balance data\n balanceData[posId] = {\n borrowDiscountedCollateral,\n collateral,\n deposits,\n debt,\n adjustedDebt,\n nav,\n deposits24h: histData[posId]?.totalDeposits24h,\n debt24h: histData[posId]?.totalDebt24h,\n nav24h: histData[posId]?.totalDeposits24h - histData[posId]?.totalDebt24h,\n }\n\n // aggregated apr data\n aprData[posId] = {\n apr: safeDivide(depositInterest - borrowInterest, nav),\n borrowApr: safeDivide(borrowInterest, debt),\n depositApr: safeDivide(depositInterest, deposits),\n rewardApr: safeDivide(rewardDepositAccrual + rewardBorrowAccrual, nav),\n rewardDepositApr: safeDivide(rewardDepositAccrual, deposits),\n rewardBorrowApr: safeDivide(rewardBorrowAccrual, debt),\n stakingApr: safeDivide(stakingDepositAccrual - stakingBorrowAccrual, nav),\n stakingDepositApr: safeDivide(stakingDepositAccrual, deposits),\n stakingBorrowApr: safeDivide(stakingBorrowAccrual, debt),\n }\n }\n return {\n account,\n chainId,\n balanceData,\n aprData,\n userConfigs\n }\n}","import { UserApr } from \"../../../types/lenderTypes\"\nimport { safeDivide } from \"./formatting\"\n\nexport * from \"./createGeneralUserState\"\nexport * from \"./formatting\"\nexport * from \"./createMultiAccountStyleUserState\"\n\nexport function divideAccrualsToAprs(aprs: { [assets: string]: UserApr }, nav: number, deposits: number, debt: number) {\n if (nav === 0) return {}\n let d: any = {}\n Object.entries(aprs).map(([k, data]) => {\n d[k] = {\n apr: safeDivide(data.borrowApr + data.depositApr, nav),\n borrowApr: safeDivide(data.borrowApr, debt),\n depositApr: safeDivide(data.depositApr, deposits),\n }\n })\n return d\n }","import { formatEther, formatUnits, parseUnits } from 'viem'\n\nexport const SECONDS_PER_YEAR = 31_556_952n\n\n// Alternative to Number.toFixed that doesn't use scientific notation for excessively small or large numbers.\nconst toFixed = (x: number, decimals: number) =>\n new Intl.NumberFormat('en-US', {\n style: 'decimal',\n useGrouping: false,\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals,\n }).format(x)\n\nconst safeParseNumber = (value: number, decimals = 18) =>\n safeParseUnits(toFixed(value, decimals), decimals)\n\nconst safeParseUnits = (strValue: string, decimals = 18) => {\n if (!/[-+]?[0-9]*\\.?[0-9]+/.test(strValue))\n throw Error(`invalid number: ${strValue}`)\n\n let [whole, dec = ''] = strValue.split('.')\n\n dec = dec.slice(0, decimals)\n\n return parseUnits(\n [whole || '0', dec].filter((v) => v.length > 0).join('.'),\n decimals,\n )\n}\n\n/**\n * Returns the per-second rate continuously compounded over a year (scaled by WAD),\n * as calculated in Morpho Blue assuming the market is frequently accrued onchain.\n * @param rate The per-second rate to compound annually (scaled by WAD).\n */\n// TODO: return a Number for APYs.\nexport function rateToApy(rate: bigint) {\n return safeParseNumber(\n Math.expm1(+formatEther(BigInt(rate) * SECONDS_PER_YEAR)),\n )\n}\n\nexport function parseLtv(ltv: bigint | number | string) {\n let str = 0\n try {\n str = Number(formatUnits(BigInt(ltv), 18))\n } catch (e) {}\n return str\n}\n\nexport function formatNr(n: string | bigint, d: number) {\n return Number(formatUnits(BigInt(n ?? 0), d))\n}\n","import {\n MorphoGeneralPublicResponse,\n RewardsMap,\n GetMarketsResponse,\n} from '../../types/lender/morpho-types'\nimport { apyToApr } from '../user-data/utils'\nimport { AdditionalYields } from '../../types'\nimport { GenericTokenList } from '../../types'\nimport { formatNr, parseLtv } from './utils/parsers'\n\nexport function convertMarketsToMorphoResponse(\n response: GetMarketsResponse,\n chainId: string,\n additionalYields: AdditionalYields = {\n intrinsicYields: {},\n lenderRewards: {},\n loaded: true,\n },\n tokens: GenericTokenList = {},\n): { [m: string]: MorphoGeneralPublicResponse } {\n const data: { [m: string]: MorphoGeneralPublicResponse } = {}\n\n response.markets.items.forEach((market) => {\n const {\n uniqueKey,\n lltv,\n irmAddress,\n oracleAddress,\n loanAsset,\n collateralAsset,\n state,\n } = market\n if (collateralAsset && loanAsset && oracleAddress) {\n const m = 'MORPHO_BLUE_' + uniqueKey.slice(2).toUpperCase()\n // @ts-ignore\n if (!data[m]) data[m] = { data: {} }\n // 1. LOAN asset entry\n const loanRewards: RewardsMap = {}\n\n // state.rewards?.forEach((reward) => {\n // loanRewards[reward.asset.address] = {\n // depositRate: formatNr(reward.amountPerSuppliedToken, reward.asset.decimals),\n // variableBorrowRate: formatNr(reward.amountPerBorrowedToken, reward.asset.decimals),\n // stableBorrowRate: 0,\n // }\n // })\n\n const loanAssetAddress = loanAsset.address.toLowerCase()\n\n const meta = tokens[loanAssetAddress] ?? loanAsset\n const totalDeposits = formatNr(state.supplyAssets, loanAsset.decimals)\n const totalDebt = formatNr(state.borrowAssets, loanAsset.decimals)\n\n data[m].data[loanAssetAddress] = {\n poolId: loanAssetAddress,\n underlying: loanAssetAddress,\n asset: meta,\n totalDeposits,\n totalDebtStable: 0,\n totalDebt,\n totalDepositsUSD: Number(state.supplyAssetsUsd),\n totalDebtStableUSD: 0,\n totalLiquidity: totalDeposits - totalDebt,\n totalLiquidityUSD:\n Number(state.supplyAssetsUsd) - Number(state.borrowAssetsUsd),\n totalDebtUSD: Number(state.borrowAssetsUsd),\n depositRate: apyToApr(Number(state.supplyApy)) * 100,\n variableBorrowRate: apyToApr(Number(state.borrowApy)) * 100,\n stableBorrowRate: 0,\n stakingYield: additionalYields.intrinsicYields[meta?.assetGroup] ?? 0,\n rewards: Object.keys(loanRewards).length > 0 ? loanRewards : undefined,\n decimals: loanAsset.decimals,\n config: {\n 0: {\n category: 0,\n borrowCollateralFactor: 0,\n collateralFactor: 0,\n borrowFactor: 1,\n },\n },\n collateralActive: false,\n borrowingEnabled: true,\n hasStable: false,\n isActive: true,\n isFrozen: false,\n }\n\n const ltv = parseLtv(lltv)\n\n const collateralAssetAddress = collateralAsset.address.toLowerCase()\n const metaCollateral = tokens[collateralAssetAddress] ?? collateralAsset\n // 2. COLLATERAL asset entry\n data[m].data[collateralAssetAddress] = {\n poolId: collateralAssetAddress,\n underlying: collateralAssetAddress,\n asset: metaCollateral,\n totalDeposits: formatNr(\n state.collateralAssets,\n collateralAsset.decimals,\n ),\n totalDebtStable: 0,\n totalDebt: 0,\n totalLiquidity: formatNr(state.collateralAssets, collateralAsset.decimals),\n totalLiquidityUSD: Number(state.collateralAssetsUsd),\n totalDepositsUSD: Number(state.collateralAssetsUsd),\n totalDebtStableUSD: 0,\n totalDebtUSD: 0,\n depositRate: 0,\n variableBorrowRate: 0,\n stableBorrowRate: 0,\n stakingYield:\n additionalYields.intrinsicYields[metaCollateral?.assetGroup] ?? 0,\n rewards: undefined,\n decimals: collateralAsset.decimals,\n config: {\n 0: {\n category: 0,\n borrowCollateralFactor: ltv,\n collateralFactor: ltv,\n borrowFactor: 1,\n },\n },\n collateralActive: true,\n borrowingEnabled: false,\n hasStable: false,\n isActive: true,\n isFrozen: false,\n }\n\n data[m].params = {\n market: {\n lender: m,\n collateralDecimals: collateralAsset.decimals,\n loanDecimals: loanAsset.decimals,\n id: uniqueKey,\n lltv,\n oracle: oracleAddress,\n irm: irmAddress,\n collateralAddress: collateralAssetAddress,\n loanAddress: loanAssetAddress,\n },\n }\n data[m].chainId = chainId\n }\n })\n\n return data\n}\n","import { Chain } from '@1delta/chain-registry'\n\nexport const query = (first: number, skip: number, chainId: string) => `\nquery GetMarkets {\n markets(first: ${first}, skip: ${skip}, where: {\n chainId_in: [${chainId}],\n whitelisted: true\n },\n orderBy: SupplyAssetsUsd, \n orderDirection: Desc\n ) {\n items {\n uniqueKey\n irmAddress\n oracleAddress\n lltv\n loanAsset {\n address\n name\n symbol\n decimals\n priceUsd\n }\n collateralAsset {\n address\n name\n symbol\n decimals\n priceUsd\n }\n state {\n borrowApy\n supplyApy\n price\n rewards {\n asset {\n address\n name\n symbol\n decimals\n }\n amountPerBorrowedToken\n amountPerSuppliedToken\n }\n borrowAssets\n borrowAssetsUsd\n supplyAssets\n supplyAssetsUsd\n collateralAssets\n collateralAssetsUsd\n }\n }\n }\n}\n`\n\nconst BASE_URL = 'https://blue-api.morpho.org/graphql'\n\nexport async function fetchMorphoMarkets(chainId: string) {\n if (chainId !== Chain.ETHEREUM_MAINNET) {\n const requestBody = {\n query: query(200, 0, chainId),\n variables: {},\n }\n const response = await fetch(BASE_URL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(requestBody),\n })\n\n if (!response.ok) {\n throw new Error(\n `Network error: ${response.status} - ${response.statusText}`,\n )\n }\n\n const data: any = await response.json()\n\n return data.data\n }\n\n const requestBody0 = {\n query: query(200, 0, chainId),\n variables: {},\n }\n\n const requestBody1 = {\n query: query(200, 200, chainId),\n variables: {},\n }\n const [data0, data1] = await Promise.all([\n fetch(BASE_URL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(requestBody0),\n }).then((x) => x.json()),\n fetch(BASE_URL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(requestBody1),\n }).then((x) => x.json()),\n ])\n\n return {\n markets: {\n items: [...data0.data.markets.items, ...data1.data.markets.items],\n },\n }\n}\n","import { morphoPools } from '@1delta/data-sdk'\nimport { AdditionalYields } from '../../types'\nimport { MORPHO_LENS } from '../user-data/morpho/userCallBuild'\nimport { MORPHO_MARKETS } from './constants/markets'\nimport { convertMarketsToMorphoResponse } from './convertPublic'\nimport { fetchMorphoMarkets } from './fetchPublic'\n\nexport async function fetchMorphoPublicData(\n chainId: string,\n yields: AdditionalYields = {\n intrinsicYields: {},\n lenderRewards: {},\n loaded: true,\n },\n) {\n const mbData = await fetchMorphoMarkets(chainId)\n return convertMarketsToMorphoResponse(mbData, chainId, yields)\n}\n\nexport function buildMorphoCall(chainId: string) {\n const markets = MORPHO_MARKETS[chainId] ?? []\n const mb = morphoPools()?.MORPHO_BLUE?.[chainId]\n if (!mb || markets.length === 0) return []\n\n return [\n {\n address: MORPHO_LENS[chainId],\n name: 'getMarketDataCompact',\n params: [mb, markets],\n },\n ]\n}\n","type Market = {\n loanToken: string; // 20 bytes (EVM address, hex)\n collateralToken: string; // 20 bytes (EVM address, hex)\n oracle: string; // 20 bytes (EVM address, hex)\n irm: string; // 20 bytes (EVM address, hex)\n lltv: bigint; // 16 bytes\n price: bigint; // 32 bytes\n rateAtTarget: bigint; // 32 bytes\n totalSupplyAssets: bigint; // 16 bytes\n totalSupplyShares: bigint; // 16 bytes\n totalBorrowAssets: bigint; // 16 bytes\n totalBorrowShares: bigint; // 16 bytes\n lastUpdate: bigint; // 16 bytes\n fee: bigint; // 16 bytes\n};\n\nconst FIELD_SIZES = {\n addr: 20,\n u128: 16,\n u256: 32,\n};\n\nconst RECORD_SIZE =\n 4 * FIELD_SIZES.addr + // loanToken, collateralToken, oracle, irm\n 1 * FIELD_SIZES.u128 + // lltv\n 2 * FIELD_SIZES.u256 + // price, rateAtTarget\n 5 * FIELD_SIZES.u128 + // totals (4) + lastUpdate\n 1 * FIELD_SIZES.u128; // fee\n// = 256 bytes\n\n/**\n * Decode packed markets bytes into typed objects.\n * Integers are parsed as big-endian BigInt. Addresses are 0x-prefixed lowercase hex.\n */\nexport function decodeMarkets(input: string | Uint8Array): Market[] {\n const bytes = normalizeToBytes(input);\n\n if (bytes.length % RECORD_SIZE !== 0) {\n throw new Error(\n `Invalid data length ${bytes.length}; not a multiple of ${RECORD_SIZE} bytes per record`\n );\n }\n\n const markets: Market[] = [];\n for (let i = 0; i < bytes.length; i += RECORD_SIZE) {\n let o = i;\n\n const loanToken = readAddress(bytes, o, FIELD_SIZES.addr); o += FIELD_SIZES.addr;\n const collateralToken = readAddress(bytes, o, FIELD_SIZES.addr); o += FIELD_SIZES.addr;\n const oracle = readAddress(bytes, o, FIELD_SIZES.addr); o += FIELD_SIZES.addr;\n const irm = readAddress(bytes, o, FIELD_SIZES.addr); o += FIELD_SIZES.addr;\n\n const lltv = readUintBE(bytes, o, FIELD_SIZES.u128); o += FIELD_SIZES.u128;\n const price = readUintBE(bytes, o, FIELD_SIZES.u256); o += FIELD_SIZES.u256;\n const rateAtTarget = readUintBE(bytes, o, FIELD_SIZES.u256); o += FIELD_SIZES.u256;\n\n const totalSupplyAssets= readUintBE(bytes, o, FIELD_SIZES.u128); o += FIELD_SIZES.u128;\n const totalSupplyShares= readUintBE(bytes, o, FIELD_SIZES.u128); o += FIELD_SIZES.u128;\n const totalBorrowAssets= readUintBE(bytes, o, FIELD_SIZES.u128); o += FIELD_SIZES.u128;\n const totalBorrowShares= readUintBE(bytes, o, FIELD_SIZES.u128); o += FIELD_SIZES.u128;\n const lastUpdate = readUintBE(bytes, o, FIELD_SIZES.u128); o += FIELD_SIZES.u128;\n const fee = readUintBE(bytes, o, FIELD_SIZES.u128); o += FIELD_SIZES.u128;\n\n markets.push({\n loanToken,\n collateralToken,\n oracle,\n irm,\n lltv,\n price,\n rateAtTarget,\n totalSupplyAssets,\n totalSupplyShares,\n totalBorrowAssets,\n totalBorrowShares,\n lastUpdate,\n fee,\n });\n }\n\n return markets;\n}\n\n// ---------- helpers ----------\n\nfunction normalizeToBytes(input: string | Uint8Array): Uint8Array {\n if (typeof input !== \"string\") {\n return input;\n }\n let hex = input.startsWith(\"0x\") ? input.slice(2) : input;\n if (hex.length % 2 !== 0) throw new Error(\"Hex string must have even length\");\n const out = new Uint8Array(hex.length / 2);\n for (let i = 0; i < out.length; i++) {\n out[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);\n }\n return out;\n}\n\nfunction readAddress(bytes: Uint8Array, offset: number, len: number): string {\n // Addresses are the raw 20 bytes, render as 0x + 40 hex chars (lowercase).\n const hex = toHex(bytes.subarray(offset, offset + len));\n return \"0x\" + hex;\n}\n\nfunction readUintBE(bytes: Uint8Array, offset: number, len: number): bigint {\n // Big-endian: (((b0 * 256) + b1) * 256 + ...) pattern.\n let v = 0n;\n const end = offset + len;\n for (let i = offset; i < end; i++) {\n v = (v << 8n) | BigInt(bytes[i]);\n }\n return v;\n}\n\nfunction toHex(arr: Uint8Array): string {\n let s = \"\";\n for (let i = 0; i < arr.length; i++) {\n const h = arr[i].toString(16).padStart(2, \"0\");\n s += h;\n }\n return s;\n}\n","import { rateToApy, SECONDS_PER_YEAR } from './parsers'\n\nexport type RoundingDirection = 'Up' | 'Down'\n\n/**\n * Library to manage fixed-point arithmetic.\n * https://github.com/morpho-org/morpho-blue/blob/main/src/libraries/MathLib.sol\n */\nexport namespace MathLib {\n export const WAD = 1_000000000000000000n\n export const RAY = 1_000000000000000000000000000n\n\n export const MAX_UINT_256 = maxUint(256)\n export const MAX_UINT_160 = maxUint(160)\n export const MAX_UINT_128 = maxUint(128)\n export const MAX_UINT_48 = maxUint(48)\n\n export function maxUint(nBits: number) {\n if (nBits % 4 !== 0) throw new Error(`Invalid number of bits: ${nBits}`)\n\n return BigInt(`0x${'f'.repeat(nBits / 4)}`)\n }\n\n /**\n * Returns the absolute value of a number\n * @param a The number\n */\n export function abs(a: bigint) {\n a = BigInt(a)\n\n return a >= 0 ? a : -a\n }\n\n /**\n * Returns the smallest number given as param\n * @param x The first number\n * @param y The second number\n */\n export function min(...xs: bigint[]) {\n return xs.map(BigInt).reduce((x, y) => (x <= y ? x : y))\n }\n\n /**\n * Returns the greatest number given as param\n * @param x The first number\n * @param y The second number\n */\n export function max(...xs: bigint[]) {\n return xs.map(BigInt).reduce((x, y) => (x <= y ? y : x))\n }\n\n /**\n * Returns the subtraction of b from a, floored to zero if negative\n * @param x The first number\n * @param y The second number\n */\n export function zeroFloorSub(x: bigint, y: bigint) {\n x = BigInt(x)\n y = BigInt(y)\n\n return x <= y ? 0n : x - y\n }\n\n /**\n * Perform the WAD-based multiplication of 2 numbers, rounded down\n * @param x The first number\n * @param y The second number\n */\n export function wMulDown(x: bigint, y: bigint) {\n return MathLib.wMul(x, y, 'Down')\n }\n\n /**\n * Perform the WAD-based multiplication of 2 numbers, rounded up\n * @param x The first number\n * @param y The second number\n */\n export function wMulUp(x: bigint, y: bigint) {\n return MathLib.wMul(x, y, 'Up')\n }\n\n /**\n * Perform the WAD-based multiplication of 2 numbers with a provided rounding direction\n * @param x The first number\n * @param y The second number\n */\n export function wMul(x: bigint, y: bigint, rounding: RoundingDirection) {\n return MathLib.mulDiv(x, y, MathLib.WAD, rounding)\n }\n\n /**\n * Perform the WAD-based division of 2 numbers, rounded down\n * @param x The first number\n * @param y The second number\n */\n export function wDivDown(x: bigint, y: bigint) {\n return MathLib.wDiv(x, y, 'Down')\n }\n\n /**\n * Perform the WAD-based multiplication of 2 numbers, rounded up\n * @param x The first number\n * @param y The second number\n */\n export function wDivUp(x: bigint, y: bigint) {\n return MathLib.wDiv(x, y, 'Up')\n }\n\n /**\n * Perform the WAD-based multiplication of 2 numbers with a provided rounding direction\n * @param x The first number\n * @param y The second number\n */\n export function wDiv(x: bigint, y: bigint, rounding: RoundingDirection) {\n return MathLib.mulDiv(x, MathLib.WAD, y, rounding)\n }\n\n /**\n * Multiply two numbers and divide by a denominator, rounding down the result\n * @param x The first number\n * @param y The second number\n * @param denominator The denominator\n */\n export function mulDivDown(x: bigint, y: bigint, denominator: bigint) {\n x = BigInt(x)\n y = BigInt(y)\n denominator = BigInt(denominator)\n if (denominator === 0n) throw Error('MathLib: DIVISION_BY_ZERO')\n\n return (x * y) / denominator\n }\n\n /**\n * Multiply two numbers and divide by a denominator, rounding up the result\n * @param x The first number\n * @param y The second number\n * @param denominator The denominator\n */\n export function mulDivUp(x: bigint, y: bigint, denominator: bigint) {\n x = BigInt(x)\n y = BigInt(y)\n denominator = BigInt(denominator)\n if (denominator === 0n) throw Error('MathLib: DIVISION_BY_ZERO')\n\n const roundup = (x * y) % denominator > 0 ? 1n : 0n\n\n return (x * y) / denominator + roundup\n }\n\n export function mulDiv(\n x: bigint,\n y: bigint,\n denominator: bigint,\n rounding: RoundingDirection,\n ) {\n return MathLib[`mulDiv${rounding}`](x, y, denominator)\n }\n\n /**\n * The sum of the first three non-zero terms of a Taylor expansion of e^(nx) - 1,\n * to approximate a continuously compounded interest rate.\n *\n * @param x The base of the exponent\n * @param n The exponent\n */\n export function wTaylorCompounded(x: bigint, n: bigint) {\n const firstTerm = BigInt(x) * BigInt(n)\n const secondTerm = MathLib.mulDivDown(\n firstTerm,\n firstTerm,\n 2n * MathLib.WAD,\n )\n const thirdTerm = MathLib.mulDivDown(\n secondTerm,\n firstTerm,\n 3n * MathLib.WAD,\n )\n\n return firstTerm + secondTerm + thirdTerm\n }\n\n /**\n * Converts a WAD-based quantity to a RAY-based quantity.\n * @param x The WAD-based quantity.\n */\n export function wToRay(x: bigint) {\n return BigInt(x) * 1_000000000n\n }\n\n /**\n * Returns the market's utilization rate (scaled by WAD).\n * @param market The market state.\n */\n export function getUtilization({\n totalSupplyAssets,\n totalBorrowAssets,\n }: {\n totalSupplyAssets: bigint\n totalBorrowAssets: bigint\n }) {\n if (totalSupplyAssets === 0n) {\n if (totalBorrowAssets > 0n) return MathLib.MAX_UINT_256\n\n return 0n\n }\n\n return MathLib.wDivDown(totalBorrowAssets, totalSupplyAssets)\n }\n\n /**\n * The market's instantaneous supply-side Annual Percentage Yield (APY) at the given timestamp,\n * if the state remains unchanged (not accrued) (scaled by WAD).\n * @param timestamp The timestamp at which to calculate the supply APY.\n * Must be greater than or equal to `lastUpdate`.\n * Defaults to `Time.timestamp()` (returns the current supply APY).\n */\n export function getSupplyApy(\n borrowApy: bigint,\n utilization: bigint,\n fee: bigint,\n ) {\n if (!utilization) return 0n\n return MathLib.wMulUp(\n MathLib.wMulDown(borrowApy, utilization),\n MathLib.WAD - fee,\n )\n }\n\n /**\n * Returns the rates that _would_ apply to interest accrual for borrowers of this market,\n * if `accrueInterest` was called at the given timestamp (scaled by WAD).\n * @param timestamp The timestamp at which to calculate the accrual borrow rate.\n * Must be greater than or equal to `lastUpdate`.\n * Defaults to `Time.timestamp()` (returns the current accrual borrow rate).\n */\n function getAccrualBorrowRates(\n rateAtTarget: bigint | null,\n utilization: bigint,\n _timestamp: number = Math.floor(Date.now() / 1000),\n _lastUpdate: number,\n ):\n | {\n elapsed: bigint\n avgBorrowRate: bigint\n endBorrowRate: bigint\n endRateAtTarget?: bigint\n }\n | undefined {\n const timestamp = BigInt(_timestamp)\n\n const elapsed = timestamp - BigInt(_lastUpdate)\n if (elapsed < 0n) return undefined\n\n if (rateAtTarget == null)\n return {\n elapsed,\n avgBorrowRate: 0n,\n endBorrowRate: 0n,\n }\n\n return {\n elapsed,\n ..._getBorrowRate(utilization, rateAtTarget, elapsed),\n }\n }\n\n /**\n */\n function getEndBorrowRate(\n rateAtTarget: bigint | null,\n utilization: bigint,\n _timestamp: number = Math.floor(Date.now() / 1000),\n _lastUpdate: number,\n ) {\n return getAccrualBorrowRates(\n rateAtTarget,\n utilization,\n _timestamp,\n _lastUpdate,\n )?.endBorrowRate\n }\n\n export function getBorrowApy(\n rateAtTarget: bigint | null,\n utilization: bigint,\n _timestamp: number = Math.floor(Date.now() / 1000),\n _lastUpdate: number,\n ) {\n const borrowRate = getEndBorrowRate(\n rateAtTarget,\n utilization,\n _timestamp,\n _lastUpdate,\n )\n\n return borrowRate ? rateToApy(borrowRate) : 0n\n }\n\n const CURVE_STEEPNESS = 4_000000000000000000n\n const TARGET_UTILIZATION = 90_0000000000000000n\n const INITIAL_RATE_AT_TARGET = 4_0000000000000000n / SECONDS_PER_YEAR\n const ADJUSTMENT_SPEED = 50_000000000000000000n / SECONDS_PER_YEAR\n const MIN_RATE_AT_TARGET = 10_00000000000000n / SECONDS_PER_YEAR\n const MAX_RATE_AT_TARGET = 2_000000000000000000n / SECONDS_PER_YEAR\n\n /**\n * ln(2), scaled by WAD.\n */\n const LN_2_INT = 693147180559945309n\n\n /**\n * ln(1e-18), scaled by WAD.\n */\n const LN_WEI_INT = -41_446531673892822312n\n\n /**\n * Above this bound, `wExp` is clipped to avoid overflowing when multiplied with 1 ether.\n * This upper bound corresponds to: ln(type(int256).max / 1e36) (scaled by WAD, floored).\n */\n const WEXP_UPPER_BOUND = 93_859467695000404319n\n\n /**\n * The value of wExp(`WEXP_UPPER_BOUND`).\n */\n const WEXP_UPPER_VALUE =\n 57716089161558943949701069502944508345128_422502756744429568n\n\n export function wExp(x: bigint) {\n x = BigInt(x)\n\n // If x < ln(1e-18) then exp(x) < 1e-18 so it is rounded to zero.\n if (x < LN_WEI_INT) return 0n\n // `wExp` is clipped to avoid overflowing when multiplied with 1 ether.\n if (x >= WEXP_UPPER_BOUND) return WEXP_UPPER_VALUE\n\n // Decompose x as x = q * ln(2) + r with q an integer and -ln(2)/2 <= r <= ln(2)/2.\n // q = x / ln(2) rounded half toward zero.\n const roundingAdjustment = x < 0n ? -(LN_2_INT / 2n) : LN_2_INT / 2n\n const q = (x + roundingAdjustment) / LN_2_INT\n const r = x - q * LN_2_INT\n\n // Compute e^r with a 2nd-order Taylor polynomial.\n const expR = MathLib.WAD + r + (r * r) / MathLib.WAD / 2n\n\n // Return e^x = 2^q * e^r.\n if (q >= 0n) return expR << q\n return expR >> -q\n }\n\n export function _getBorrowRate(\n startUtilization: bigint,\n startRateAtTarget: bigint,\n elapsed: bigint,\n ) {\n startUtilization = BigInt(startUtilization)\n startRateAtTarget = BigInt(startRateAtTarget)\n elapsed = BigInt(elapsed)\n\n const errNormFactor =\n startUtilization > TARGET_UTILIZATION\n ? MathLib.WAD - TARGET_UTILIZATION\n : TARGET_UTILIZATION\n const err = MathLib.wDivDown(\n startUtilization - TARGET_UTILIZATION,\n errNormFactor,\n )\n\n let avgRateAtTarget: bigint\n let endRateAtTarget: bigint\n\n if (startRateAtTarget === 0n) {\n // First interaction.\n avgRateAtTarget = INITIAL_RATE_AT_TARGET\n endRateAtTarget = INITIAL_RATE_AT_TARGET\n } else {\n // The speed is assumed constant between two updates, but it is in fact not constant because of interest.\n // So the rate is always underestimated.\n const speed = MathLib.wMulDown(ADJUSTMENT_SPEED, err)\n const linearAdaptation = speed * elapsed\n\n if (linearAdaptation === 0n) {\n // If linearAdaptation == 0, avgRateAtTarget = endRateAtTarget = startRateAtTarget;\n avgRateAtTarget = startRateAtTarget\n endRateAtTarget = startRateAtTarget\n } else {\n // Non negative because MIN_RATE_AT_TARGET > 0.\n const _newRateAtTarget = (linearAdaptation: bigint) =>\n MathLib.min(\n MathLib.max(\n MathLib.wMulDown(startRateAtTarget, wExp(linearAdaptation)),\n MIN_RATE_AT_TARGET,\n ),\n MAX_RATE_AT_TARGET,\n )\n\n // Formula of the average rate that should be returned to Morpho Blue:\n // avg = 1/T * ∫_0^T curve(startRateAtTarget*exp(speed*x), err) dx\n // The integral is approximated with the trapezoidal rule:\n // avg ~= 1/T * Σ_i=1^N [curve(f((i-1) * T/N), err) + curve(f(i * T/N), err)] / 2 * T/N\n // Where f(x) = startRateAtTarget*exp(speed*x)\n // avg ~= Σ_i=1^N [curve(f((i-1) * T/N), err) + curve(f(i * T/N), err)] / (2 * N)\n // As curve is linear in its first argument:\n // avg ~= curve([Σ_i=1^N [f((i-1) * T/N) + f(i * T/N)] / (2 * N), err)\n // avg ~= curve([(f(0) + f(T))/2 + Σ_i=1^(N-1) f(i * T/N)] / N, err)\n // avg ~= curve([(startRateAtTarget + endRateAtTarget)/2 + Σ_i=1^(N-1) f(i * T/N)] / N, err)\n // With N = 2:\n // avg ~= curve([(startRateAtTarget + endRateAtTarget)/2 + startRateAtTarget*exp(speed*T/2)] / 2, err)\n // avg ~= curve([startRateAtTarget + endRateAtTarget + 2*startRateAtTarget*exp(speed*T/2)] / 4, err)\n endRateAtTarget = _newRateAtTarget(linearAdaptation)\n avgRateAtTarget =\n (startRateAtTarget +\n endRateAtTarget +\n 2n * _newRateAtTarget(linearAdaptation / 2n)) /\n 4n\n }\n }\n\n // Non negative because 1 - 1/C >= 0, C - 1 >= 0.\n const coeff =\n err < 0\n ? MathLib.WAD - MathLib.wDivDown(MathLib.WAD, CURVE_STEEPNESS)\n : CURVE_STEEPNESS - MathLib.WAD\n\n const _curve = (rateAtTarget: bigint) =>\n MathLib.wMulDown(MathLib.wMulDown(coeff, err) + MathLib.WAD, rateAtTarget)\n\n // Non negative if avgRateAtTarget >= 0 because if err < 0, coeff <= 1.\n return {\n avgBorrowRate: _curve(avgRateAtTarget),\n endBorrowRate: _curve(endRateAtTarget),\n endRateAtTarget,\n }\n }\n}\n","import { morphoPools } from '@1delta/data-sdk'\nimport { getEvmClient } from '@1delta/providers'\nimport { formatEther, parseAbi } from 'viem'\nimport { MORPHO_LENS } from '../user-data/morpho/userCallBuild'\nimport { decodeMarkets } from './utils/evmParser'\nimport { AdditionalYields } from '../../types'\nimport { GenericTokenList } from '../../types'\nimport { formatNr, parseLtv } from './utils/parsers'\nimport { MorphoGeneralPublicResponse } from '../../types/lender/morpho-types'\nimport { toGenericPriceKey, toOracleKey } from '../../assets'\nimport { MathLib } from './utils/mathLib'\nimport { apyToApr } from '../user-data/utils'\nimport { formatMorphoPrice } from '../../utils/parsing'\nimport { MORPHO_MARKETS } from './constants/markets'\n\nexport async function getMarkets(\n chainId: string,\n markets: string[],\n additionalYields: AdditionalYields = {\n intrinsicYields: {},\n lenderRewards: {},\n loaded: true,\n },\n tokens: GenericTokenList = {},\n prices: any,\n) {\n const abi = parseAbi([\n 'function getMarketDataCompact(address morpho, bytes32[] calldata marketsIds) external view returns (bytes memory data)',\n ])\n const provider = getEvmClient(chainId)\n\n const mb = morphoPools()?.MORPHO_BLUE?.[chainId]\n if (!mb) return []\n\n const returnData = await provider.simulateContract({\n abi,\n functionName: 'getMarketDataCompact',\n address: MORPHO_LENS[chainId] as any,\n args: [mb, markets] as any,\n })\n\n const decoded = decodeMarkets(returnData.result ?? '0x')\n\n const data: { [m: string]: MorphoGeneralPublicResponse } = {}\n decoded.forEach((market, i) => {\n const uniqueKey = markets[i]\n const { lltv, irm, oracle, loanToken, collateralToken, ...state } = market\n if (collateralToken && loanToken && oracle) {\n const m = 'MORPHO_BLUE_' + uniqueKey.slice(2).toUpperCase()\n // @ts-ignore\n if (!data[m]) data[m] = { data: {} }\n // 1. LOAN asset entry\n const loanRewards: any = {}\n\n // state.rewards?.forEach((reward) => {\n // loanRewards[reward.asset.address] = {\n // depositRate: formatNr(reward.amountPerSuppliedToken, reward.asset.decimals),\n // variableBorrowRate: formatNr(reward.amountPerBorrowedToken, reward.asset.decimals),\n // stableBorrowRate: 0,\n // }\n // })\n\n // get assets from list\n const loanAsset = tokens[loanToken.toLowerCase()]\n const collateralAsset = tokens[collateralToken.toLowerCase()]\n const loanKey =\n toOracleKey(loanAsset?.assetGroup!) ??\n toGenericPriceKey(loanAsset.address, chainId)\n\n let loanPrice = prices[loanKey]\n\n // try to infer loan price from collateral price if any\n if (!loanPrice) {\n const collateralKey =\n toOracleKey(collateralAsset?.assetGroup!) ??\n toGenericPriceKey(collateralAsset.address, chainId)\n const collateralPrice = prices[collateralKey]\n // get debt price by collateral price\n if (collateralPrice) {\n const priceDebtToCollateral = formatMorphoPrice(\n state.price.toString(),\n loanAsset.decimals,\n collateralAsset.decimals,\n )\n loanPrice = collateralPrice / priceDebtToCollateral\n }\n }\n\n const loanTokenAddress = loanAsset.address.toLowerCase()\n\n const meta = tokens[loanTokenAddress] ?? loanAsset\n const totalDeposits = formatNr(\n state.totalSupplyAssets,\n loanAsset.decimals,\n )\n const totalDebt = formatNr(state.totalBorrowAssets, loanAsset.decimals)\n\n const utilization = MathLib.getUtilization({\n totalBorrowAssets: state.totalBorrowAssets,\n totalSupplyAssets: state.totalSupplyAssets,\n })\n\n let borrowApy = 0n\n let supplyApy = 0n\n\n try {\n borrowApy = MathLib.getBorrowApy(\n state.rateAtTarget,\n utilization,\n undefined,\n Number(state.lastUpdate),\n )\n supplyApy = MathLib.getSupplyApy(borrowApy, utilization, state.fee)\n } catch {}\n const borrowApr = apyToApr(Number(formatEther(borrowApy))) * 100\n const depositApr = apyToApr(Number(formatEther(supplyApy))) * 100\n\n data[m].data[loanTokenAddress] = {\n poolId: loanTokenAddress,\n underlying: loanTokenAddress,\n asset: meta,\n totalDeposits,\n totalDebtStable: 0,\n totalDebt,\n totalDepositsUSD: totalDeposits * loanPrice,\n totalDebtStableUSD: 0,\n totalLiquidity: totalDeposits - totalDebt,\n totalLiquidityUSD: (totalDeposits - totalDebt) * loanPrice,\n totalDebtUSD: totalDebt * loanPrice,\n depositRate: depositApr,\n variableBorrowRate: borrowApr,\n stableBorrowRate: 0,\n stakingYield: additionalYields.intrinsicYields[meta?.assetGroup] ?? 0,\n rewards: Object.keys(loanRewards).length > 0 ? loanRewards : undefined,\n decimals: loanAsset.decimals,\n config: {\n 0: {\n category: 0,\n borrowCollateralFactor: 0,\n collateralFactor: 0,\n borrowFactor: 1,\n },\n },\n collateralActive: false,\n borrowingEnabled: true,\n hasStable: false,\n isActive: true,\n isFrozen: false,\n }\n\n const ltv = parseLtv(lltv)\n\n const collateralAssetAddress = collateralAsset.address.toLowerCase()\n const metaCollateral = tokens[collateralAssetAddress] ?? collateralAsset\n // 2. COLLATERAL asset entry\n data[m].data[collateralAssetAddress] = {\n poolId: collateralAssetAddress,\n underlying: collateralAssetAddress,\n asset: metaCollateral,\n totalDeposits: 0, // we do not have these metrics when querying on-chain\n totalDebtStable: 0,\n totalDebt: 0,\n totalLiquidity: 0,\n totalLiquidityUSD: 0,\n totalDepositsUSD: 0,\n totalDebtStableUSD: 0,\n totalDebtUSD: 0,\n depositRate: 0,\n variableBorrowRate: 0,\n stableBorrowRate: 0,\n stakingYield:\n additionalYields.intrinsicYields[metaCollateral?.assetGroup] ?? 0,\n rewards: undefined,\n decimals: collateralAsset.decimals,\n config: {\n 0: {\n category: 0,\n borrowCollateralFactor: ltv,\n collateralFactor: ltv,\n borrowFactor: 1,\n },\n },\n collateralActive: true,\n borrowingEnabled: false,\n hasStable: false,\n isActive: true,\n isFrozen: false,\n }\n\n data[m].params = {\n market: {\n lender: m,\n collateralDecimals: collateralAsset.decimals,\n loanDecimals: loanAsset.decimals,\n id: uniqueKey,\n lltv: lltv.toString(),\n oracle: oracle,\n irm: irm,\n collateralAddress: collateralAssetAddress,\n loanAddress: loanTokenAddress,\n },\n }\n data[m].chainId = chainId\n }\n })\n\n return data\n}\n\nexport function getMorphoMarketDataConverter(\n lender: string,\n chainId: string,\n prices: any,\n additionalYields: AdditionalYields = {\n intrinsicYields: {},\n lenderRewards: {},\n loaded: true,\n },\n tokens: GenericTokenList = {},\n): [(data: any[]) => any | undefined, number] {\n const markets = MORPHO_MARKETS[chainId] ?? []\n return [\n (rData: any[]) => {\n const decoded = decodeMarkets(rData[0] ?? '0x')\n\n const data: { [m: string]: MorphoGeneralPublicResponse } = {}\n decoded.forEach((market, i) => {\n const uniqueKey = markets[i]\n const { lltv, irm, oracle, loanToken, collateralToken, ...state } =\n market\n if (collateralToken && loanToken && oracle) {\n const m = 'MORPHO_BLUE_' + uniqueKey.slice(2).toUpperCase()\n // @ts-ignore\n if (!data[m]) data[m] = { data: {} }\n // 1. LOAN asset entry\n const loanRewards: any = {}\n\n // state.rewards?.forEach((reward) => {\n // loanRewards[reward.asset.address] = {\n // depositRate: formatNr(reward.amountPerSuppliedToken, reward.asset.decimals),\n // variableBorrowRate: formatNr(reward.amountPerBorrowedToken, reward.asset.decimals),\n // stableBorrowRate: 0,\n // }\n // })\n\n // get assets from list\n const loanAsset = tokens[loanToken.toLowerCase()]\n const collateralAsset = tokens[collateralToken.toLowerCase()]\n\n const loanKey =\n toOracleKey(loanAsset?.assetGroup!) ??\n toGenericPriceKey(loanAsset.address, chainId)\n\n let loanPrice = prices[loanKey]\n\n // try to infer loan price from collateral price if any\n if (!loanPrice) {\n const collateralKey =\n toOracleKey(collateralAsset?.assetGroup!) ??\n toGenericPriceKey(collateralAsset.address, chainId)\n const collateralPrice = prices[collateralKey]\n // get debt price by collateral price\n if (collateralPrice) {\n const priceDebtToCollateral = formatMorphoPrice(\n state.price.toString(),\n loanAsset.decimals,\n collateralAsset.decimals,\n )\n loanPrice = collateralPrice / priceDebtToCollateral\n }\n }\n\n const loanTokenAddress = loanAsset.address.toLowerCase()\n\n const meta = tokens[loanTokenAddress] ?? loanAsset\n const totalDeposits = formatNr(\n state.totalSupplyAssets,\n loanAsset.decimals,\n )\n const totalDebt = formatNr(\n state.totalBorrowAssets,\n loanAsset.decimals,\n )\n\n const utilization = MathLib.getUtilization({\n totalBorrowAssets: state.totalBorrowAssets,\n totalSupplyAssets: state.totalSupplyAssets,\n })\n\n let borrowApy = 0n\n let supplyApy = 0n\n\n try {\n borrowApy = MathLib.getBorrowApy(\n state.rateAtTarget,\n utilization,\n undefined,\n Number(state.lastUpdate),\n )\n supplyApy = MathLib.getSupplyApy(borrowApy, utilization, state.fee)\n } catch {}\n const borrowApr = apyToApr(Number(formatEther(borrowApy))) * 100\n const depositApr = apyToApr(Number(formatEther(supplyApy))) * 100\n\n data[m].data[loanTokenAddress] = {\n poolId: loanTokenAddress,\n underlying: loanTokenAddress,\n asset: meta,\n totalDeposits,\n totalDebtStable: 0,\n totalDebt,\n totalDepositsUSD: totalDeposits * loanPrice,\n totalDebtStableUSD: 0,\n totalLiquidity: totalDeposits - totalDebt,\n totalLiquidityUSD: (totalDeposits - totalDebt) * loanPrice,\n totalDebtUSD: totalDebt * loanPrice,\n depositRate: depositApr,\n variableBorrowRate: borrowApr,\n stableBorrowRate: 0,\n stakingYield:\n additionalYields.intrinsicYields[meta?.assetGroup] ?? 0,\n rewards:\n Object.keys(loanRewards).length > 0 ? loanRewards : undefined,\n decimals: loanAsset.decimals,\n config: {\n 0: {\n category: 0,\n borrowCollateralFactor: 0,\n collateralFactor: 0,\n borrowFactor: 1,\n },\n },\n collateralActive: false,\n borrowingEnabled: true,\n hasStable: false,\n isActive: true,\n isFrozen: false,\n }\n\n const ltv = parseLtv(lltv)\n\n const collateralAssetAddress = collateralAsset.address.toLowerCase()\n const metaCollateral =\n tokens[collateralAssetAddress] ?? collateralAsset\n // 2. COLLATERAL asset entry\n data[m].data[collateralAssetAddress] = {\n poolId: collateralAssetAddress,\n underlying: collateralAssetAddress,\n asset: metaCollateral,\n totalDeposits: 0, // we do not have these metrics when querying on-chain\n totalDebtStable: 0,\n totalDebt: 0,\n totalLiquidity: 0,\n totalLiquidityUSD: 0,\n totalDepositsUSD: 0,\n totalDebtStableUSD: 0,\n totalDebtUSD: 0,\n depositRate: 0,\n variableBorrowRate: 0,\n stableBorrowRate: 0,\n stakingYield:\n additionalYields.intrinsicYields[metaCollateral?.assetGroup] ?? 0,\n rewards: undefined,\n decimals: collateralAsset.decimals,\n config: {\n 0: {\n category: 0,\n borrowCollateralFactor: ltv,\n collateralFactor: ltv,\n borrowFactor: 1,\n },\n },\n collateralActive: true,\n borrowingEnabled: false,\n hasStable: false,\n isActive: true,\n isFrozen: false,\n }\n\n data[m].params = {\n market: {\n lender: m,\n collateralDecimals: collateralAsset.decimals,\n loanDecimals: loanAsset.decimals,\n id: uniqueKey,\n lltv: lltv.toString(),\n oracle: oracle,\n irm: irm,\n collateralAddress: collateralAssetAddress,\n loanAddress: loanTokenAddress,\n },\n }\n data[m].chainId = chainId\n }\n })\n\n return data\n },\n markets.length > 0 ? 1 : 0,\n ]\n}\n","export const MorphoLensAbi = [\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'marketsIds',\n type: 'bytes32[]',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'morpho',\n type: 'address',\n },\n ],\n name: 'getUserDataCompact',\n outputs: [\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n name: 'getMarketDataCompact',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { type: 'address', name: 'morpho' },\n { type: 'bytes32[]', name: 'marketsIds' },\n ],\n outputs: [{ type: 'bytes', name: 'data' }],\n },\n] as const\n","// aave v2 style\nimport { ProtocolDataProviderAbi } from '../abis/aave-v2/ProtocolDataProvider'\nimport { IncentivesControllerAbi } from '../abis/lendle/IncentivesController'\nimport { RewarderAbi } from '../abis/aurelius/Rewarder'\nimport { UniswapV2PairAbi } from '../abis/oracle/UniswapV2Pair'\n\n// aave v3 style\nimport { AavePoolV3UpgradedAbi } from '../abis/aave/AavePoolV3Upgraded'\nimport { AaveV3ProtocolDataProviderAbi } from '../abis/aave/AaveV3ProtocolDataProvider'\n\n// init\nimport { InitLensAbi } from '../abis/init/InitLens'\n\n// compound v3\nimport { CometAbi } from '../abis/compound-v3/Comet'\nimport { CometExtAbi } from '../abis/compound-v3/CometExt'\nimport { IrgetterAbi } from '../abis/compound-v3/IrGetter'\n\nimport {\n isAaveV2Type,\n isAaveV32Type,\n isAaveV3Type,\n isCompoundV3,\n isInit,\n isMorphoType,\n isMultiMarket,\n} from '../utils'\nimport { AdditionalYields, MulticallRetryFunction } from '../types'\nimport { buildAaveV2StyleLenderReserveCall } from './aave-v2-type/publicCallBuild'\nimport { buildAaveV3StyleLenderReserveCall } from './aave-v3-type/publicCallBuild'\nimport { buildInitStyleLenderReserveCall } from './init/publicCallBuild'\nimport { buildCompoundV3StyleLenderReserveCall } from './compound-v3/publicCallBuild'\nimport { getAaveV2ReservesDataConverter } from './aave-v2-type/publicCallParse'\nimport { getAaveV3ReservesDataConverter } from './aave-v3-type/publicCallParse'\nimport { getInitReservesDataConverter } from './init/publicCallParse'\nimport { getCompoundV3ReservesDataConverter } from './compound-v3/publicCallParse'\nimport { AavePoolLegacyAbi } from '../abis/aave-v3/AavePoolLegacy'\nimport { AavePoolDataProviderLegacyAbi } from '../abis/aave-v3/AavePoolDataProviderLegacy'\nimport { Lender } from '@1delta/lender-registry'\nimport { Call } from 'viem'\nimport { YLDRProtocolDataProviderAbi } from '../abis/aave-v2/YLDR'\nimport { buildMorphoCall } from './morpho/publicCallBuild'\nimport { getMorphoMarketDataConverter } from './morpho/getMarketsFromChain'\nimport { MorphoLensAbi } from '../abis/morpho/lens'\nimport { GenericTokenList } from '../types/general'\n\nfunction buildLenderCall(chainId: string, lender: Lender) {\n if (isAaveV2Type(lender))\n return buildAaveV2StyleLenderReserveCall(chainId, lender)\n if (isAaveV3Type(lender))\n return buildAaveV3StyleLenderReserveCall(chainId, lender)\n if (isCompoundV3(lender))\n return buildCompoundV3StyleLenderReserveCall(chainId, lender)\n if (isInit(lender)) return buildInitStyleLenderReserveCall(chainId, lender)\n if (isMorphoType(lender)) return buildMorphoCall(chainId)\n return []\n}\n\nfunction getLenderDataConverter(\n lender: Lender,\n chainId: string,\n prices: { [a: string]: number },\n additionalYields: AdditionalYields,\n tokenList: GenericTokenList = {},\n) {\n if (isAaveV2Type(lender))\n return getAaveV2ReservesDataConverter(\n lender,\n chainId,\n prices,\n additionalYields,\n tokenList,\n )\n if (isAaveV3Type(lender))\n return getAaveV3ReservesDataConverter(\n lender,\n chainId,\n prices,\n additionalYields,\n tokenList,\n )\n if (isCompoundV3(lender))\n return getCompoundV3ReservesDataConverter(\n lender,\n chainId,\n prices,\n additionalYields,\n tokenList,\n )\n\n if (isInit(lender))\n return getInitReservesDataConverter(\n lender,\n chainId,\n prices,\n additionalYields,\n tokenList,\n )\n\n if (isMorphoType(lender))\n return getMorphoMarketDataConverter(\n lender,\n chainId,\n prices,\n additionalYields,\n tokenList,\n )\n return [() => null, 0] as any\n}\n\nconst getAbi = (lender: string) => {\n if (isAaveV2Type(lender))\n return [\n ...ProtocolDataProviderAbi,\n ...UniswapV2PairAbi,\n ...RewarderAbi,\n ...IncentivesControllerAbi,\n ]\n\n if (isAaveV32Type(lender))\n return [...AavePoolV3UpgradedAbi, ...AaveV3ProtocolDataProviderAbi]\n if (lender === Lender.YLDR) return [...YLDRProtocolDataProviderAbi]\n\n if (isAaveV3Type(lender))\n return [...AavePoolLegacyAbi, ...AavePoolDataProviderLegacyAbi]\n\n if (isCompoundV3(lender)) return [...IrgetterAbi, ...CometAbi, ...CometExtAbi]\n\n if (isInit(lender)) return InitLensAbi\n\n if (isMorphoType(lender)) return MorphoLensAbi\n\n return []\n}\n\nexport const getLenderPublicData = async (\n chainId: string,\n lenders: Lender[],\n prices: { [asset: string]: number },\n additionalYields: AdditionalYields,\n multicallRetry: MulticallRetryFunction,\n tokenList: () => Promise<GenericTokenList> = async () => {\n return {}\n },\n): Promise<{ [lender: string]: any }> => {\n let calls: {\n call: Call\n abi: any\n }[] = []\n\n for (const lender of lenders) {\n const abi = getAbi(lender)\n const callData = buildLenderCall(chainId, lender)\n const mappedCalls = callData.map((call) => ({ call, abi }))\n // @ts-ignore\n calls = [...calls, ...mappedCalls]\n }\n /** fetch list and on-chainData */\n const [rawResults, list] = await Promise.all([\n multicallRetry(\n chainId,\n calls.map((call) => call.call) as any[],\n calls.map((call) => call.abi),\n // default size\n // retries = 3\n // provider = 0\n // allowFailure = false\n ),\n await tokenList(),\n ])\n\n const invalidLenders: string[] = []\n let lenderData: { [lender: string]: any } = {}\n\n let currentSlice = 0\n for (const lender of lenders) {\n const [converter, sliceLength] = getLenderDataConverter(\n lender,\n chainId,\n prices,\n additionalYields,\n list,\n )\n if (sliceLength > 0) {\n try {\n const data = rawResults.slice(currentSlice, currentSlice + sliceLength)\n const convertedData = converter(data)\n if (isMultiMarket(lender)) {\n if (!convertedData) {\n invalidLenders.push(lender)\n } else {\n lenderData = { ...lenderData, ...convertedData }\n }\n } else {\n if (!convertedData) {\n invalidLenders.push(lender)\n } else {\n lenderData[lender] = convertedData\n }\n }\n } catch {\n console.log('error for chain/lender', chainId, lender)\n }\n\n currentSlice += sliceLength\n }\n }\n\n return lenderData\n}\n","import { isMorphoType, isMultiMarket } from '../utils'\nimport { AdditionalYields } from '../types'\nimport { Lender } from '@1delta/lender-registry'\nimport { fetchMorphoMarkets } from './morpho/fetchPublic'\nimport { convertMarketsToMorphoResponse } from './morpho/convertPublic'\nimport { GenericTokenList } from '../types/general'\n\nasync function getLenderDataFromApi(\n lender: Lender,\n chainId: string,\n prices: { [a: string]: number },\n additionalYields: AdditionalYields,\n) {\n if (isMorphoType(lender)) return await fetchMorphoMarkets(chainId)\n return {}\n}\n\nfunction convertLenderDataFromApi(\n lender: Lender,\n chainId: string,\n data: any,\n prices: { [a: string]: number },\n additionalYields: AdditionalYields,\n list: GenericTokenList = {},\n) {\n if (isMorphoType(lender))\n return convertMarketsToMorphoResponse(data, chainId, additionalYields, list)\n return {}\n}\n\nexport const getLenderPublicDataViaApi = async (\n chainId: string,\n lenders: Lender[],\n prices: { [asset: string]: number },\n additionalYields: AdditionalYields,\n tokenList: () => Promise<GenericTokenList> = async () => {\n return {}\n },\n): Promise<{ [lender: string]: any }> => {\n let promises: any[] = []\n for (const lender of lenders) {\n promises.push(\n getLenderDataFromApi(lender, chainId, prices, additionalYields),\n )\n }\n\n const [list, ...results] = await Promise.all([tokenList(), ...promises])\n\n const lenderData: { [lender: string]: any } = {}\n for (let i = 0; i < lenders.length; i++) {\n try {\n const lender = lenders[i]\n if (isMultiMarket(lender)) {\n const dataObtained = results[i]\n const converted: any = convertLenderDataFromApi(\n lender,\n chainId,\n dataObtained,\n prices,\n additionalYields,\n list,\n )\n Object.keys(converted).forEach((marketId: string) => {\n lenderData[marketId] = converted[marketId]\n })\n } else {\n lenderData[lender] = convertLenderDataFromApi(\n lender,\n chainId,\n results[i],\n prices,\n additionalYields,\n list,\n )\n }\n } catch (e) {\n console.log('error fetching from API on', chainId, ':', e)\n }\n }\n\n return lenderData\n}\n","import { AdditionalYields, MulticallRetryFunction } from '../types'\nimport { Lender } from '@1delta/lender-registry'\nimport { getLenderPublicData } from './fetchLender'\nimport { getLenderPublicDataViaApi } from './fetchLenderExt'\nimport { Chain } from '@1delta/chain-registry'\nimport { GenericTokenList } from '../types/general'\n\nfunction lenderCanUseApi(lender: string, chainId: string) {\n if (lender === Lender.MORPHO_BLUE) {\n if (chainId === Chain.HYPEREVM) return false\n if (chainId === Chain.OP_MAINNET) return false\n if (chainId === Chain.SONEIUM) return false\n if (chainId === Chain.HEMI_NETWORK) return false\n return true\n }\n return false\n}\n\nexport const getLenderPublicDataAll = async (\n chainId: string,\n lenders: Lender[],\n prices: { [asset: string]: number },\n additionalYields: AdditionalYields,\n multicallRetry: MulticallRetryFunction,\n tokenList?: () => Promise<GenericTokenList>,\n): Promise<{ [lender: string]: any }> => {\n const lendersApi = lenders.filter((l) => lenderCanUseApi(l, chainId))\n\n const lendersOnChain = lenders.filter((l) => !lenderCanUseApi(l, chainId))\n\n const onChain = getLenderPublicData(\n chainId,\n lendersOnChain,\n prices,\n additionalYields,\n multicallRetry,\n tokenList,\n )\n\n const api = getLenderPublicDataViaApi(\n chainId,\n lendersApi,\n prices,\n additionalYields,\n tokenList,\n )\n\n const [onChainRes, apiRes] = await Promise.all([onChain, api])\n\n return { ...onChainRes, ...apiRes }\n}\n","import { GeneralCall, GetEvmClientFunction } from '../types'\nimport lodash from 'lodash'\n\n// pull the functions you need\nconst { isArray } = lodash\n\nexport type Call = GeneralCall\n\ninterface ViemMulticallresult {\n result: any[]\n status: string\n}\n\nexport const MULTICALL_DEFAULT_BATCH_SIZE = 4096\n\nconst maxRetries = 3\n\n/** Same as Multicall viem except that the abi param is supposed to be the abi per call */\nexport const multicallViemAbiArray = async (\n chainId: string,\n abi: any[],\n calls: Call[],\n getEvmClient: GetEvmClientFunction,\n retry = true,\n providerId = 0,\n retries = maxRetries,\n allowFailure = true,\n batchSize = MULTICALL_DEFAULT_BATCH_SIZE,\n logs = false,\n): Promise<any[]> => {\n try {\n const provider = getEvmClient(chainId, providerId)\n\n const abiIsArray = isArray(abi[0])\n const returnData = await provider.multicall({\n allowFailure,\n batchSize,\n contracts: calls.map(({ address, name, params }, i) => ({\n abi: abiIsArray ? (abi?.[i] as any) : abi,\n address: address as any,\n functionName: name,\n args: params,\n })),\n })\n\n // no failure - result is directly exposed\n if (!allowFailure) return returnData\n\n // allow failure, return 0x in case of errors\n const res = (returnData as any[]).map(\n ({ result, status }: ViemMulticallresult) =>\n status !== 'success' ? '0x' : result,\n )\n return res\n } catch (error: any) {\n // optionally log errors\n if (logs) console.log('error in multicall', error)\n retries--\n if (retries < 0) throw new Error('Failed too often')\n providerId++\n\n return multicallViemAbiArray(\n chainId,\n abi,\n calls,\n getEvmClient,\n retry,\n providerId,\n retries,\n allowFailure,\n batchSize,\n logs,\n )\n }\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { isMorphoType } from '../utils'\nimport { BaseYields, RewardsMap } from './apiReturnType'\nexport type SerializedBigNumber = string\nexport type SerializedNumber = string\n\nexport interface LenderUserQuery {\n /** the lender enum (Note that for multi-market ones, it is not the lender but the group) */\n lender: any\n /** user address */\n account: string\n /** custom parameters for fetching e.g. multi-market lenders */\n params?: any[]\n /** custom parameters for spceifying assets */\n assets?: any[]\n}\n\n/** Filter all morphos into one for querying */\nexport function organizeUserQueries(queries: LenderUserQuery[]) {\n const morphos = queries.filter((q) => isMorphoType(q.lender))\n if (morphos.length === 0) return queries\n const nonMorphos = queries.filter((q) => !isMorphoType(q.lender))\n const morphosCollapsed = {\n lender: Lender.MORPHO_BLUE,\n account: queries[0].account,\n params: morphos.map((p) => p.lender),\n assets: undefined\n }\n return [...nonMorphos, morphosCollapsed]\n}\n\nexport interface UserLendingPosition {\n // token amounts\n deposits: number\n debt: number\n debtStable: number\n // usd amounts\n depositsUSD: number\n debtUSD: number\n debtStableUSD: number\n\n collateralActive: boolean\n claimableRewards: number\n}\n\nexport type UserRewardEntry = {\n [asset: string]: { totalRewards: number; claimableRewards: number }\n}\n\nexport interface LenderUserResponse {\n chainId: string\n account: string\n lendingPositions: {\n [lender: string]: {\n [poolId: string]: UserLendingPosition\n }\n }\n rewards: UserRewardEntry\n}\n\n// Aave V2 specific enums\nexport enum AaveV2TypeGetUserReserveData {\n currentATokenBalance = 0,\n currentStableDebt,\n currentVariableDebt,\n principalStableDebt,\n scaledVariableDebt,\n stableBorrowRate,\n liquidityRate,\n stableRateLastUpdated,\n usageAsCollateralEnabled,\n}\n\n// Aave V3 specific enums\nexport enum AaveV3TypeGetUserReserveData {\n currentATokenBalance = 0,\n currentStableDebt,\n currentVariableDebt,\n principalStableDebt,\n scaledVariableDebt,\n stableBorrowRate,\n liquidityRate,\n stableRateLastUpdated,\n usageAsCollateralEnabled,\n}\n\n///////\nexport interface AaveV2UserReserveResponse {\n chainId: string\n account: string\n lendingPositions: {\n [id: string]: {\n [poolId: string]: AavelendingPositions\n }\n }\n rewards: UserRewardEntry\n}\n\ninterface AavelendingPositions {\n // token amounts\n deposits: string\n debt: string\n debtStable: string\n // usd amounts\n depositsUSD: number\n debtUSD: number\n debtStableUSD: number\n\n collateralActive: boolean\n claimableRewards: number\n}\n\nexport interface AaveV3UserReserveResponse {\n chainId: string\n lendingPositions: {\n [id: string]: {\n [poolId: string]: AavelendingPositions\n }\n }\n userEMode: number\n rewards?: any\n account: string\n}\n\nexport interface MorphoUserReserveResponse {\n chainId: string\n lendingPositions: {\n [id: string]: {\n [poolId: string]: AavelendingPositions\n }\n }\n id: string\n rewards?: any\n account: string\n}\n\nexport interface CompoundV3UserReserveResponse {\n lendingPositions: {\n [id: string]: {\n [poolId: string]: {\n // tokens\n deposits: number\n debt: number\n debtStable: number\n // dollars\n depositsUSD: number\n debtUSD: number\n debtStableUSD: number\n\n collateralActive: boolean\n // user collateral raw (to withdraw max)\n depositsRaw: SerializedBigNumber\n isAllowed: boolean\n }\n }\n }\n chainId: string\n baseAsset: string\n rewards: UserRewardEntry\n account: string\n}\n\nexport interface AaveV3Public extends LenderPublicBase {\n lastUpdateTimestamp?: number\n\n // flags of reserve state\n usageAsCollateralEnabled?: boolean\n hasStable?: boolean\n isActive?: boolean\n isFrozen?: boolean\n\n // emode info\n // each eMode category has a custom ltv and liquidation threshold\n eMode?: EModeData\n\n // limits\n debtCeiling: number\n supplyCap: number\n borrowCap: number\n\n config: { [modeId: number]: LenderConfigData }\n}\n\n/**\n * Interface shared by all lenders\n */\nexport interface LenderPublicBase extends LenderYields, LenderTotalAmounts {\n // borrow enabled flag\n borrowingEnabled: boolean\n\n config: LenderConfigMap\n}\n\nexport interface LenderYields extends BaseYields {\n // staking\n stakingYield: number\n\n // rewards\n rewards?: RewardsMap\n}\n\nexport interface LenderTotalAmounts {\n // debt totals\n totalDebt: number\n totalDebtStable: number\n // deposit total\n totalDeposits: number\n // liquidity\n totalLiquidity: number\n\n /** USD values */\n\n // debt totals\n totalDebtUSD: number\n totalDebtStableUSD: number\n // deposit total\n totalDepositsUSD: number\n // liquidity\n totalLiquidityUSD: number\n}\n\nexport interface LenderConfigMap {\n [modeId: number]: LenderConfigData\n}\n\n/**\n * The Mode-specific configuration for a lender asset\n */\nexport interface LenderConfigData {\n category: number\n borrowCollateralFactor: number\n collateralFactor: number\n borrowFactor: number\n}\n\nexport interface ModeBase {\n category: number\n label: string\n}\n\nexport interface EModeData extends ModeBase {\n borrowCollateralFactor: number\n collateralFactor: number\n priceSource: string\n}\n\nexport interface AaveV2Public extends LenderPublicBase {\n // reserve market data\n lastUpdateTimestamp?: number\n\n // reserve config\n decimals?: number\n reserveFactor?: SerializedBigNumber\n usageAsCollateralEnabled?: boolean\n hasStable?: boolean\n\n // frozen\n isActive?: boolean\n isFrozen?: boolean\n}\n\nexport interface CompoundV3Public extends LenderPublicBase {\n supplyCap: number\n utilization: number\n}\n\nexport interface UserApr {\n apr: number\n borrowApr: number\n depositApr: number\n}\n\nexport interface InitUserReserveResponse {\n chainId: string\n lendingPositions: {\n // positionId is the NFT id\n [posId: string]: {\n mode: any\n [poolId: string]: {\n deposits: number\n debt: number\n depositsUSD: number\n debtUSD: number\n debtStable: '0'\n debtStableUSD: 0\n collateralActive: boolean\n isAllowed: boolean\n }\n }\n }\n assets: string[]\n account: string\n}\n\nexport interface InitPublic extends LenderPublicBase {\n // flags of reserve state\n usageAsCollateralEnabled?: boolean\n\n // limits\n debtCeiling: number\n supplyCap: number\n borrowCap: number\n}\n","import { Call } from '../../../utils/multicall'\nimport { Lender } from '@1delta/lender-registry'\nimport {\n getAaveAssets,\n getAaveTypePoolDataProviderAddress,\n} from '../../../assets'\n\nconst getBaseAaveV2Calls = (\n chainId: string,\n account: string,\n lender: Lender,\n assetsToQuery: string[],\n) => {\n return assetsToQuery.flatMap((tk) => [\n {\n address: getAaveTypePoolDataProviderAddress(chainId, lender),\n name: 'getUserReserveData',\n params: [tk, account],\n },\n ])\n}\n\nexport const buildAaveV2UserCall = (\n chainId: string,\n lender: Lender,\n account: string,\n assets?: string[],\n): Call[] => {\n switch (lender) {\n default: {\n const assetsToQuery = getAaveAssets(chainId, lender)\n return getBaseAaveV2Calls(chainId, account, lender, assetsToQuery)\n }\n }\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { Call } from '../../../utils/multicall'\nimport {\n getAaveAssets,\n getAaveTypePoolDataProviderAddress,\n getAaveTypePoolAddress,\n} from '../../../assets'\nimport { isYLDR } from '../../../utils'\n\nconst getBaseAaveV3Calls = (\n chainId: string,\n account: string,\n lender: Lender,\n assetsToQuery: string[],\n) => {\n return assetsToQuery.flatMap((tk) => [\n {\n address: getAaveTypePoolDataProviderAddress(chainId, lender),\n name: 'getUserReserveData',\n params: [tk, account],\n },\n ])\n}\n\nexport const buildAaveV3UserCall = (\n chainId: string,\n lender: Lender,\n account: string,\n assets?: string[],\n): Call[] => {\n const assetsToQuery = assets ?? getAaveAssets(chainId, lender)\n\n const calls = [...getBaseAaveV3Calls(chainId, account, lender, assetsToQuery)]\n if (!isYLDR(lender)) {\n const callDataEmode = {\n address: getAaveTypePoolAddress(chainId, lender),\n name: 'getUserEMode',\n params: [account],\n }\n calls.push(callDataEmode)\n }\n\n return calls\n}\n","import { Chain } from '@1delta/chain-registry'\nimport { Lender } from '@1delta/lender-registry'\nimport { Call } from '../../../utils/multicall'\nimport { getInitLensAddress } from '../../addresses/init'\n\nexport const initBrokerAddresses = {\n [Chain.MANTLE]: '0xc08BFef7E778f3519D79E96780b77066F5d4FCC0',\n}\n\nexport function getInitFlashAggregatorAddress(chainId?: string) {\n if (!chainId) return undefined\n return initBrokerAddresses[chainId as keyof typeof initBrokerAddresses]\n}\n\nexport const buildInitUserCall = (\n chainId: string,\n lender: Lender,\n account: string,\n): Call[] => {\n const lensContract = getInitLensAddress(chainId)\n const brokerAddress = getInitFlashAggregatorAddress(chainId)\n\n const call: Call = {\n address: lensContract,\n name: 'getUserPositionData',\n params: [account, brokerAddress],\n }\n\n return [call]\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { Call } from '../../../utils/multicall'\nimport { getLenderAssets } from '../../../utils'\nimport {\n getCompoundV3BaseAsset,\n getCompoundV3CometAddress,\n getCompoundV3CometRewardsAddress,\n} from '../../addresses/compoundV3'\n\nexport const buildCompoundV3UserCall = (\n chainId: string,\n lender: Lender,\n account: string,\n assetsOverride?: string[],\n): Call[] => {\n const baseAsset = getCompoundV3BaseAsset(lender, chainId)?.baseAsset\n const cometContractAddress = getCompoundV3CometAddress(chainId, lender)!\n const assets = assetsOverride ?? getLenderAssets(chainId, lender)\n const assetsNoBase = assets.filter((a) => a !== baseAsset)\n\n const baseCalls = [\n {\n address: cometContractAddress,\n name: 'balanceOf',\n params: [account],\n },\n {\n address: cometContractAddress,\n name: 'borrowBalanceOf',\n params: [account],\n },\n ]\n\n const callsNonBase: Call[] = assetsNoBase.map((tk) => {\n return {\n address: cometContractAddress,\n name: 'userCollateral',\n params: [account, tk],\n }\n })\n\n const callEarnedBalances = {\n address: getCompoundV3CometRewardsAddress(chainId),\n name: 'getRewardOwed',\n params: [cometContractAddress, account],\n }\n const calls = [...callsNonBase, ...baseCalls, callEarnedBalances]\n return calls\n}\n","export const AavePoolAndDataProviderAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getATokenTotalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getAllATokens\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"internalType\": \"struct AaveProtocolDataProvider.TokenData[]\",\n \"name\": \"\",\n \"type\": \"tuple[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getAllReservesTokens\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"tokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"internalType\": \"struct AaveProtocolDataProvider.TokenData[]\",\n \"name\": \"\",\n \"type\": \"tuple[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getDebtCeiling\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getDebtCeilingDecimals\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"pure\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getInterestRateStrategyAddress\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"irStrategyAddress\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getLiquidationProtocolFee\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getPaused\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"isPaused\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveCaps\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"borrowCap\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"supplyCap\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveConfigurationData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"decimals\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"ltv\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"reserveFactor\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"usageAsCollateralEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"borrowingEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"stableBorrowRateEnabled\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isActive\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"isFrozen\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveEModeCategory\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveTokensAddresses\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"aTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"stableDebtTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"variableDebtTokenAddress\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getSiloedBorrowing\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getTotalDebt\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUnbackedMintCap\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserReserveData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentATokenBalance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentStableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentVariableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"principalStableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"scaledVariableDebt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"stableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"liquidityRate\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"stableRateLastUpdated\",\n \"type\": \"uint40\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"usageAsCollateralEnabled\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"backer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"fee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"BackUnbacked\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"enum DataTypes.InterestRateMode\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"borrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"Borrow\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"initiator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"enum DataTypes.InterestRateMode\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"premium\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"FlashLoan\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"totalDebt\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"IsolationModeTotalDebtUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"collateralAsset\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"debtAsset\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"debtToCover\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"liquidatedCollateralAmount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"liquidator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"receiveAToken\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"LiquidationCall\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"MintUnbacked\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amountMinted\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"MintedToTreasury\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"RebalanceStableBorrowRate\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"repayer\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"useATokens\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"Repay\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"liquidityRate\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"stableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"variableBorrowRate\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"liquidityIndex\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"variableBorrowIndex\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ReserveDataUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ReserveUsedAsCollateralDisabled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ReserveUsedAsCollateralEnabled\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"Supply\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"enum DataTypes.InterestRateMode\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"SwapBorrowRateMode\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"categoryId\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"UserEModeSet\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"reserve\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Withdraw\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"BRIDGE_PROTOCOL_FEE\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"FLASHLOAN_PREMIUM_TOTAL\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"FLASHLOAN_PREMIUM_TO_PROTOCOL\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_NUMBER_RESERVES\",\n \"outputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"\",\n \"type\": \"uint16\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"MAX_STABLE_RATE_BORROW_SIZE_PERCENT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"fee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"backUnbacked\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"borrow\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n },\n {\n \"components\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"ltv\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"priceSource\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"label\",\n \"type\": \"string\"\n }\n ],\n \"internalType\": \"struct DataTypes.EModeCategory\",\n \"name\": \"config\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"configureEModeCategory\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"deposit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"dropReserve\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"balanceFromBefore\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"balanceToBefore\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"finalizeTransfer\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"receiverAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"interestRateModes\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"flashLoan\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"receiverAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"flashLoanSimple\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getConfiguration\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"id\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"getEModeCategoryData\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"ltv\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationThreshold\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"liquidationBonus\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"priceSource\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"label\",\n \"type\": \"string\"\n }\n ],\n \"internalType\": \"struct DataTypes.EModeCategory\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"id\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"getReserveAddressById\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveData\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"configuration\",\n \"type\": \"tuple\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"liquidityIndex\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"currentLiquidityRate\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"variableBorrowIndex\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"currentVariableBorrowRate\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"currentStableBorrowRate\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint40\",\n \"name\": \"lastUpdateTimestamp\",\n \"type\": \"uint40\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"id\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"aTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"stableDebtTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"variableDebtTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"interestRateStrategyAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"accruedToTreasury\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"unbacked\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"isolationModeTotalDebt\",\n \"type\": \"uint128\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveData\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveNormalizedIncome\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getReserveNormalizedVariableDebt\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getReservesList\",\n \"outputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"\",\n \"type\": \"address[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserAccountData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalCollateralBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"totalDebtBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"availableBorrowsBase\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"currentLiquidationThreshold\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"ltv\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"healthFactor\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserConfiguration\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.UserConfigurationMap\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserEMode\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"aTokenAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"stableDebtAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"variableDebtAddress\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"interestRateStrategyAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"initReserve\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"collateralAsset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"debtAsset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"debtToCover\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"receiveAToken\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"liquidationCall\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"mintToTreasury\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"mintUnbacked\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"rebalanceStableBorrowRate\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"repay\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"repayWithATokens\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"permitV\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitR\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitS\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"repayWithPermit\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"rescueTokens\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"resetIsolationModeTotalDebt\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"components\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"data\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct DataTypes.ReserveConfigurationMap\",\n \"name\": \"configuration\",\n \"type\": \"tuple\"\n }\n ],\n \"name\": \"setConfiguration\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"rateStrategyAddress\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setReserveInterestRateStrategyAddress\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"categoryId\",\n \"type\": \"uint8\"\n }\n ],\n \"name\": \"setUserEMode\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"useAsCollateral\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setUserUseReserveAsCollateral\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"supply\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint16\",\n \"name\": \"referralCode\",\n \"type\": \"uint16\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"permitV\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitR\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"permitS\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"supplyWithPermit\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"interestRateMode\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"swapBorrowRateMode\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"bridgeProtocolFee\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"updateBridgeProtocolFee\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"flashLoanPremiumTotal\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"flashLoanPremiumToProtocol\",\n \"type\": \"uint128\"\n }\n ],\n \"name\": \"updateFlashloanPremiums\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"withdraw\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const","export const VariableDebtTokenAbi = [\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Approval\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"fromUser\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"toUser\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"BorrowAllowanceDelegated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"balanceIncrease\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Burn\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"underlyingAsset\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"pool\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"address\",\n \"name\": \"incentivesController\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint8\",\n \"name\": \"debtTokenDecimals\",\n \"type\": \"uint8\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"string\",\n \"name\": \"debtTokenName\",\n \"type\": \"string\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"string\",\n \"name\": \"debtTokenSymbol\",\n \"type\": \"string\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"caller\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"balanceIncrease\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Mint\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"Transfer\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"DEBT_TOKEN_REVISION\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"DELEGATION_WITH_SIG_TYPEHASH\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"DOMAIN_SEPARATOR\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"EIP712_REVISION\",\n \"outputs\": [\n {\n \"internalType\": \"bytes\",\n \"name\": \"\",\n \"type\": \"bytes\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"POOL\",\n \"outputs\": [\n {\n \"internalType\": \"contract IPool\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"UNDERLYING_ASSET_ADDRESS\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"allowance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"approve\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"delegatee\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"approveDelegation\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"balanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"fromUser\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"toUser\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"borrowAllowance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"burn\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"decimals\",\n \"outputs\": [\n {\n \"internalType\": \"uint8\",\n \"name\": \"\",\n \"type\": \"uint8\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"decreaseAllowance\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"delegator\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"delegatee\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"v\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"r\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"s\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"delegationWithSig\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getIncentivesController\",\n \"outputs\": [\n {\n \"internalType\": \"contract IAaveIncentivesController\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getPreviousIndex\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getScaledUserBalanceAndSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"increaseAllowance\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"contract IPool\",\n \"name\": \"initializingPool\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"underlyingAsset\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"contract IAaveIncentivesController\",\n \"name\": \"incentivesController\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint8\",\n \"name\": \"debtTokenDecimals\",\n \"type\": \"uint8\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"debtTokenName\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"debtTokenSymbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"params\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"onBehalfOf\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"index\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"mint\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"name\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"nonces\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"scaledBalanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"scaledTotalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"contract IAaveIncentivesController\",\n \"name\": \"controller\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setIncentivesController\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"symbol\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transfer\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"transferFrom\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const","export const MultiFeeDistributionAbi = [\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"VERSION\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"addReward\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_rewardsToken\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"tuple[]\",\n \"name\": \"rewards\",\n \"internalType\": \"struct MultiFeeDistribution.RewardData[]\",\n \"components\": [\n {\n \"type\": \"address\"\n },\n {\n \"type\": \"uint256\"\n }\n ]\n }\n ],\n \"name\": \"claimableRewards\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"account\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"total\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"tuple[]\",\n \"name\": \"earningsData\",\n \"internalType\": \"struct MultiFeeDistribution.LockedBalance[]\",\n \"components\": [\n {\n \"type\": \"uint256\"\n },\n {\n \"type\": \"uint256\"\n }\n ]\n }\n ],\n \"name\": \"earnedBalances\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"exit\",\n \"inputs\": [\n {\n \"type\": \"bool\",\n \"name\": \"claimRewards\",\n \"internalType\": \"bool\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"getReward\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"getReward\",\n \"inputs\": [\n {\n \"type\": \"address[]\",\n \"name\": \"_rewardTokens\",\n \"internalType\": \"address[]\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"getRewardForDuration\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_rewardsToken\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"contract IChefIncentivesController\"\n }\n ],\n \"name\": \"incentivesController\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"initialize\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"owner\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"_stakingToken\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"lastTimeRewardApplicable\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_rewardsToken\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"lockDuration\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"total\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"unlockable\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"locked\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"tuple[]\",\n \"name\": \"lockData\",\n \"internalType\": \"struct MultiFeeDistribution.LockedBalance[]\",\n \"components\": [\n {\n \"type\": \"uint256\"\n },\n {\n \"type\": \"uint256\"\n }\n ]\n }\n ],\n \"name\": \"lockedBalances\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"lockedSupply\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"mint\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"bool\",\n \"name\": \"withPenalty\",\n \"internalType\": \"bool\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"bool\",\n \"name\": \"\",\n \"internalType\": \"bool\"\n }\n ],\n \"name\": \"minters\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"bool\",\n \"name\": \"\",\n \"internalType\": \"bool\"\n }\n ],\n \"name\": \"mintersAreSet\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"owner\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"bool\",\n \"name\": \"\",\n \"internalType\": \"bool\"\n }\n ],\n \"name\": \"paused\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"recoverERC20\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"tokenAddress\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"tokenAmount\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"renounceOwnership\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"periodFinish\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"rewardRate\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"lastUpdateTime\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"rewardPerTokenStored\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"balance\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"rewardData\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"rewardPerToken\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_rewardsToken\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ],\n \"name\": \"rewardTokens\",\n \"inputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"rewards\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"rewardsDuration\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"setIncentivesController\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"_controller\",\n \"internalType\": \"contract IChefIncentivesController\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"setMinters\",\n \"inputs\": [\n {\n \"type\": \"address[]\",\n \"name\": \"_minters\",\n \"internalType\": \"address[]\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"setPause\",\n \"inputs\": [\n {\n \"type\": \"bool\",\n \"name\": \"val\",\n \"internalType\": \"bool\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"stake\",\n \"inputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"bool\",\n \"name\": \"lock\",\n \"internalType\": \"bool\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"contract IMintableToken\"\n }\n ],\n \"name\": \"stakingToken\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"totalBalance\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"totalSupply\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"newOwner\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"unlockedBalance\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"userRewardPerTokenPaid\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n },\n {\n \"type\": \"address\",\n \"name\": \"\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"withdraw\",\n \"inputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"nonpayable\",\n \"outputs\": [],\n \"name\": \"withdrawExpiredLocks\",\n \"inputs\": []\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"internalType\": \"uint256\"\n },\n {\n \"type\": \"uint256\",\n \"name\": \"penaltyAmount\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"withdrawableBalance\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"previousOwner\",\n \"indexed\": true\n },\n {\n \"type\": \"address\",\n \"name\": \"newOwner\",\n \"indexed\": true\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Paused\",\n \"inputs\": [],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Recovered\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"token\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RewardAdded\",\n \"inputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"reward\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RewardPaid\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"indexed\": true\n },\n {\n \"type\": \"address\",\n \"name\": \"rewardsToken\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"reward\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"RewardsDurationUpdated\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"token\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"newDuration\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Staked\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"amount\",\n \"indexed\": false\n },\n {\n \"type\": \"bool\",\n \"name\": \"locked\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Unpaused\",\n \"inputs\": [],\n \"anonymous\": false\n },\n {\n \"type\": \"event\",\n \"name\": \"Withdrawn\",\n \"inputs\": [\n {\n \"type\": \"address\",\n \"name\": \"user\",\n \"indexed\": true\n },\n {\n \"type\": \"uint256\",\n \"name\": \"receivedAmount\",\n \"indexed\": false\n },\n {\n \"type\": \"uint256\",\n \"name\": \"penaltyPaid\",\n \"indexed\": false\n }\n ],\n \"anonymous\": false\n }\n] as const","export const PullRewardsIncentivesController = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getRewardsBalance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"user\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserAssetData\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_user\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getUserUnclaimedRewards\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"name\": \"claimRewards\",\n \"type\": \"function\",\n \"inputs\": [\n {\n \"name\": \"assets\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"to\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"nonpayable\"\n }\n] as const","export const CometRewardsAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"governor_\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AlreadyConfigured\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"InvalidUInt64\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"NotPermitted\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"NotSupported\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"TransferOutFailed\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"oldGovernor\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newGovernor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"GovernorTransferred\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"src\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"RewardClaimed\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"comet\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"src\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"shouldAccrue\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"claim\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"comet\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"src\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"shouldAccrue\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"claimTo\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"comet\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getRewardOwed\",\n \"outputs\": [\n {\n \"components\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"owed\",\n \"type\": \"uint256\"\n }\n ],\n \"internalType\": \"struct CometRewards.RewardOwed\",\n \"name\": \"\",\n \"type\": \"tuple\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"governor\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"rewardConfig\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint64\",\n \"name\": \"rescaleFactor\",\n \"type\": \"uint64\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"shouldUpscale\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"rewardsClaimed\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"comet\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setRewardConfig\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newGovernor\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferGovernor\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"withdrawToken\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n }\n] as const","export const YLDRAbi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'asset',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'getUserReserveData',\n outputs: [\n {\n internalType: 'uint256',\n name: 'currentYTokenBalance',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'currentVariableDebt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'scaledVariableDebt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'liquidityRate',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'usageAsCollateralEnabled',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n] as const\n","export const MorphoBlueAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"Id\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"position\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"supplyShares\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"borrowShares\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"collateral\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32[]\",\n \"name\": \"slots\",\n \"type\": \"bytes32[]\"\n }\n ],\n \"name\": \"extSloads\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32[]\",\n \"name\": \"res\",\n \"type\": \"bytes32[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"Id\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"market\",\n \"outputs\": [\n {\n \"internalType\": \"uint128\",\n \"name\": \"totalSupplyAssets\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"totalSupplyShares\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"totalBorrowAssets\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"totalBorrowShares\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"lastUpdate\",\n \"type\": \"uint128\"\n },\n {\n \"internalType\": \"uint128\",\n \"name\": \"fee\",\n \"type\": \"uint128\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n] as const","import { Lender } from '@1delta/lender-registry'\nimport { isAaveV2Type, isAaveV3Type, isCompoundV3, isInit, isAaveV32Type, isYLDR, isMorphoType } from \"../../utils\"\nimport { IncentivesControllerAbi } from \"../../abis/lendle/IncentivesController\"\nimport { RewarderAbi } from \"../../abis/aurelius/Rewarder\"\nimport { AavePoolV3UpgradedAbi } from \"../../abis/aave/AavePoolV3Upgraded\"\nimport { AaveV3ProtocolDataProviderAbi } from \"../../abis/aave/AaveV3ProtocolDataProvider\"\nimport { InitLensAbi } from \"../../abis/init/InitLens\"\nimport { CometAbi } from \"../../abis/compound-v3/Comet\"\nimport { CometExtAbi } from \"../../abis/compound-v3/CometExt\"\nimport { AavePoolLegacyAbi } from \"../../abis/aave-v3/AavePoolLegacy\"\nimport { AavePoolDataProviderLegacyAbi } from \"../../abis/aave-v3/AavePoolDataProviderLegacy\"\nimport { AavePoolAndDataProviderAbi } from \"../../abis/aave/AavePoolAndDataProvider\"\nimport { VariableDebtTokenAbi } from \"../../abis/aave/VariableDebtToken\"\nimport { MultiFeeDistributionAbi } from \"../../abis/lendle/MultiFeeDistribution\"\nimport { PullRewardsIncentivesController } from \"../../abis/meridian/PullRewardsIncentivesController\"\nimport { CometRewardsAbi } from \"../../abis/compound-v3/CometRewards\"\nimport { YLDRAbi } from \"../../abis/aave-v3/YLDR\"\nimport { MorphoBlueAbi } from \"../../abis/morpho/blue\"\nimport { MorphoLensAbi } from \"../../abis/morpho/lens\"\n\nexport const getAbi = (lender: Lender) => {\n if (isAaveV2Type(lender as any)) return [\n ...AavePoolAndDataProviderAbi,\n ...VariableDebtTokenAbi,\n ...RewarderAbi,\n ...PullRewardsIncentivesController,\n ...IncentivesControllerAbi,\n ...MultiFeeDistributionAbi\n ]\n if (isYLDR(lender as any)) return [\n ...VariableDebtTokenAbi,\n ...YLDRAbi\n ]\n\n if (isAaveV32Type(lender as any)) return [\n ...AavePoolV3UpgradedAbi,\n ...AaveV3ProtocolDataProviderAbi\n ]\n\n if (isAaveV3Type(lender as any)) return [\n ...AavePoolLegacyAbi,\n ...VariableDebtTokenAbi,\n ...AavePoolDataProviderLegacyAbi\n ]\n if (isCompoundV3(lender as any)) return [\n ...CometAbi,\n ...CometExtAbi,\n ...CometRewardsAbi,\n ]\n if(isMorphoType(lender)) return [...MorphoBlueAbi, ...MorphoLensAbi]\n if (isInit(lender as any)) return InitLensAbi\n return []\n}","import { Lender } from '@1delta/lender-registry'\nimport { toGenericPriceKey, toOracleKey } from '../../../assets'\nimport {\n AaveV2TypeGetUserReserveData,\n AaveV2UserReserveResponse,\n} from '../../../types/lenderTypes'\nimport { createBaseTypeUserState } from '../utils'\nimport { parseRawAmount } from '../../../utils/parsing'\nimport { GenericCurrency } from '../../../types'\n\nexport const getAaveV2UserDataConverter = (\n lender: Lender,\n chainId: string,\n account: string,\n prices: { [asset: string]: number },\n pricesHist: { [asset: string]: number },\n lenderData: any,\n): [(data: any[]) => AaveV2UserReserveResponse | undefined, number] => {\n switch (lender) {\n default: {\n const assetsToQuery = Object.keys(lenderData)\n const expectedNumberOfCalls = assetsToQuery.length\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n\n const lendingPositions: { [asset: string]: any } = {}\n let totalDebt24h = 0\n let totalDeposits24h = 0\n\n for (let i = 0; i < assetsToQuery.length; i++) {\n const asset = assetsToQuery[i]\n const { dataForAsset, addedDebt, addedDeposits } =\n createAaveV2Entry(\n i,\n data,\n chainId,\n lenderData[asset].asset,\n prices,\n pricesHist,\n 0,\n )\n if (!dataForAsset) continue\n totalDebt24h += addedDebt\n totalDeposits24h += addedDeposits\n lendingPositions[asset] = dataForAsset\n }\n\n const payload = {\n chainId,\n account,\n lendingPositions: { '0': lendingPositions },\n rewards: {},\n }\n const userData = createBaseTypeUserState(\n payload,\n lenderData,\n totalDeposits24h,\n totalDebt24h,\n )\n return {\n ...payload,\n ...userData,\n }\n },\n expectedNumberOfCalls,\n ]\n }\n }\n}\n\nfunction createAaveV2Entry(\n i: number,\n data: any[],\n chainId: string,\n asset: GenericCurrency,\n prices: any,\n pricesHist: any,\n claimableRewards: any,\n) {\n const reserveData = data[i]\n const currentATokenBalanceRaw =\n reserveData[AaveV2TypeGetUserReserveData.currentATokenBalance]?.toString()\n const currentStableDebtRaw =\n reserveData[AaveV2TypeGetUserReserveData.currentStableDebt]?.toString()\n const currentVariableDebtRaw =\n reserveData[AaveV2TypeGetUserReserveData.currentVariableDebt]?.toString()\n\n if (\n currentATokenBalanceRaw === '0' &&\n currentStableDebtRaw === '0' &&\n currentVariableDebtRaw === '0'\n ) {\n return {\n dataForAsset: undefined,\n addedDeposits: 0,\n addedDebt: 0,\n }\n }\n\n const assetMeta = asset\n const decimals = assetMeta?.decimals ?? 18\n const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)\n const currentStableDebt = parseRawAmount(currentStableDebtRaw, decimals)\n const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)\n\n const key =\n toOracleKey(assetMeta?.assetGroup) ??\n toGenericPriceKey(asset.address, chainId)\n const price = prices[key] ?? 1\n const priceHist = pricesHist?.[key] ?? price\n\n const dataForAsset = {\n poolId: asset.address,\n underlying: asset.address,\n deposits: currentATokenBalance,\n depositsRaw: currentATokenBalanceRaw,\n debtStable: currentStableDebt,\n debt: currentVariableDebt,\n depositsUSD: Number(currentATokenBalance) * price,\n debtStableUSD: Number(currentStableDebt) * price,\n debtUSD: Number(currentVariableDebt) * price,\n stableBorrowRate:\n reserveData[AaveV2TypeGetUserReserveData.stableBorrowRate]?.toString(),\n collateralActive: Boolean(\n reserveData[AaveV2TypeGetUserReserveData.usageAsCollateralEnabled],\n ),\n claimableRewards,\n }\n\n return {\n dataForAsset,\n addedDeposits: Number(currentATokenBalance) * priceHist,\n addedDebt:\n (Number(currentVariableDebt) + Number(currentStableDebt)) * priceHist,\n }\n}\n","import { Lender } from '@1delta/lender-registry'\nimport {\n toGenericPriceKey,\n toOracleKey,\n} from '../../../assets'\nimport { AaveV3UserReserveResponse } from '../../../types/lenderTypes'\nimport { createBaseTypeUserState } from '../utils'\nimport { parseRawAmount } from '../../../utils/parsing'\nimport { AaveTypeGetUserReserveIndexes } from '../../../types/lender/aave-v3-types'\nimport { GenericCurrency } from '../../../types'\n\nexport const getAaveV3UserDataConverter = (\n lender: Lender,\n chainId: string,\n account: string,\n prices: { [asset: string]: number },\n pricesHist: { [asset: string]: number },\n lenderData: any,\n): [(data: any[]) => AaveV3UserReserveResponse | undefined, number] => {\n const assetsToQuery = Object.keys(lenderData)\n const expectedNumberOfCalls = assetsToQuery.length + 1\n\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n\n const userEMode = Number(data[expectedNumberOfCalls - 1])\n const lendingPositions: { [asset: string]: any } = {}\n\n let totalDebt24h = 0\n let totalDeposits24h = 0\n\n for (let i = 0; i < assetsToQuery.length; i++) {\n const asset = assetsToQuery[i]\n const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(\n i,\n data,\n chainId,\n lenderData[asset].asset,\n prices,\n pricesHist,\n )\n if (!dataForAsset) continue\n\n totalDebt24h += addedDebt\n totalDeposits24h += addedDeposits\n lendingPositions[asset] = dataForAsset\n }\n\n const payload = {\n chainId,\n account,\n lendingPositions: { '0': lendingPositions },\n rewards: {},\n userEMode,\n }\n const userData = createBaseTypeUserState(\n payload,\n lenderData,\n totalDeposits24h,\n totalDebt24h,\n )\n return {\n ...payload,\n ...userData,\n }\n },\n expectedNumberOfCalls,\n ]\n}\n\nfunction createAaveV3Entry(\n i: number,\n data: any[],\n chainId: string,\n asset: GenericCurrency,\n prices: any,\n pricesHist: any,\n) {\n const reserveData = data[i]\n\n const currentATokenBalanceRaw =\n reserveData[AaveTypeGetUserReserveIndexes.currentATokenBalance]?.toString()\n const currentStableDebtRaw =\n reserveData[AaveTypeGetUserReserveIndexes.currentStableDebt]?.toString()\n const currentVariableDebtRaw =\n reserveData[AaveTypeGetUserReserveIndexes.currentVariableDebt]?.toString()\n\n if (\n currentATokenBalanceRaw === '0' &&\n currentStableDebtRaw === '0' &&\n currentVariableDebtRaw === '0'\n ) {\n return {\n dataForAsset: undefined,\n addedDeposits: 0,\n addedDebt: 0,\n }\n }\n\n const assetMeta = asset\n const decimals = assetMeta?.decimals ?? 18\n\n const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)\n const currentStableDebt = parseRawAmount(currentStableDebtRaw, decimals)\n const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)\n\n const key =\n toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset.address, chainId)\n // prices\n const price = prices[key] ?? 1\n const priceHist = pricesHist?.[key] ?? price\n\n const dataForAsset = {\n poolId: asset.address,\n underlying: asset.address,\n deposits: currentATokenBalance,\n depositsRaw: currentATokenBalanceRaw,\n debtStable: currentStableDebt,\n debt: currentVariableDebt,\n depositsUSD: Number(currentATokenBalance) * price,\n debtStableUSD: Number(currentStableDebt) * price,\n debtUSD: Number(currentVariableDebt) * price,\n stableBorrowRate:\n reserveData[AaveTypeGetUserReserveIndexes.stableBorrowRate]?.toString() ??\n '0',\n collateralActive: Boolean(\n reserveData[AaveTypeGetUserReserveIndexes.usageAsCollateralEnabled],\n ),\n claimableRewards: 0,\n }\n\n return {\n dataForAsset,\n addedDeposits: Number(currentATokenBalance) * priceHist,\n addedDebt:\n (Number(currentVariableDebt) + Number(currentStableDebt)) * priceHist,\n }\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { InitUserReserveResponse } from '../../../types/lenderTypes'\nimport { getInitFlashAggregatorAddress } from './userCallBuild'\nimport { toOracleKey } from '../../../assets'\nimport { parseRawAmount } from '../../../utils/parsing'\nimport { createMultiAccountTypeUserState } from '../utils/createMultiAccountStyleUserState'\nimport { InitGetUserPositionDataIndexes } from '../../../types/lender/init-types'\n\nexport const getInitUserDataConverter = (\n lender: Lender,\n chainId: string,\n account: string,\n prices: { [asset: string]: number },\n pricesHist: { [asset: string]: number },\n lenderData: any,\n): [(data: any[]) => InitUserReserveResponse | undefined, number] => {\n const validOwner = account.toLowerCase()\n const brokerAddress = getInitFlashAggregatorAddress(chainId) ?? ''\n const expectedNumberOfCalls = 1\n return [\n (_data: any[]) => {\n if (_data.length !== expectedNumberOfCalls) {\n return undefined\n }\n const [data] = _data\n // filter for owner\n const indexes = data[InitGetUserPositionDataIndexes.posMeta]\n .map((e: any, i: number) => {\n return { e, i }\n })\n .filter((a: any) => a.e.owner.toLowerCase() === validOwner)\n .map((a: any) => a.i)\n \n // get keys from pub data\n const assets = Object.keys(lenderData)\n let histData: any = {}\n\n // map data\n const result: any = Object.assign(\n {},\n ...indexes.map((index: any) => {\n const entry = data[InitGetUserPositionDataIndexes.posMeta][index]\n const mode = entry.mode\n const id = entry.posId.toString()\n const collatData = Object.assign(\n {},\n ...data[InitGetUserPositionDataIndexes.collaterals][index].map(\n (c: any) => {\n const asset = c.underlying.toLowerCase()\n const decimals = lenderData[asset].asset?.decimals ?? 18\n const depositsRaw = c.amount.toString()\n return {\n [asset]: {\n deposits: parseRawAmount(depositsRaw, decimals),\n depositsRaw,\n },\n }\n },\n ),\n )\n const debtData = Object.assign(\n {},\n ...data[InitGetUserPositionDataIndexes.debts][index].map(\n (c: any) => {\n const asset = c.underlying.toLowerCase()\n const decimals = lenderData[asset]?.asset?.decimals ?? 18\n return {\n [asset]: {\n debt: parseRawAmount(c.amount.toString(), decimals),\n },\n }\n },\n ),\n )\n // sub account to asset data\n return {\n [id]: {\n mode,\n ...Object.assign(\n {},\n ...assets.map((a) => {\n const ams = toOracleKey(lenderData[a]?.asset?.assetGroup!)\n const price = prices[ams] ?? 1\n const priceHist = pricesHist?.[ams] ?? price\n if (!histData[id])\n histData[id] = {\n totalDebt24h: 0,\n totalDeposits24h: 0,\n }\n const debt = debtData[a]?.debt ?? 0\n const deposits = collatData[a]?.deposits ?? 0\n const depositsRaw = collatData[a]?.depositsRaw ?? '0'\n\n histData[id].totalDebt24h += Number(debt) * priceHist\n histData[id].totalDeposits24h += Number(deposits) * priceHist\n\n // asset to data\n return {\n [a]: {\n poolId: a,\n underlying: a,\n deposits: deposits,\n depositsRaw,\n debt: debt,\n debtStable: '0',\n debtStableUSD: 0,\n depositsUSD: price * Number(deposits),\n debtUSD: price * Number(debt),\n collateralActive: true,\n isAllowed:\n entry.approved.toLowerCase() ===\n brokerAddress.toLowerCase(),\n },\n }\n }),\n ),\n },\n }\n }),\n )\n\n const payload = {\n chainId,\n lendingPositions: result,\n account,\n }\n\n const userState = createMultiAccountTypeUserState(\n { ...payload, assets },\n lenderData,\n histData,\n )\n return {\n ...payload,\n ...userState,\n } as any\n },\n expectedNumberOfCalls,\n ]\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { CompoundV3UserReserveResponse } from '../../../types/lenderTypes'\nimport { toGenericPriceKey, toOracleKey } from '../../../assets'\nimport { getCompoundV3BaseAsset } from '../../addresses/compoundV3'\nimport { parseRawAmount } from '../../../utils/parsing'\nimport { createBaseTypeUserState } from '../utils'\n\nexport const getCompoundV3UserDataConverter = (\n lender: Lender,\n chainId: string,\n account: string,\n prices: { [asset: string]: number },\n pricesHist: { [asset: string]: number },\n lenderData: any,\n): [(data: any[]) => CompoundV3UserReserveResponse | undefined, number] => {\n const assetAddresses = Object.keys(lenderData)\n const baseAsset = getCompoundV3BaseAsset(lender, chainId)?.baseAsset\n const assetsNoBase = assetAddresses.filter((a) => a !== baseAsset)\n const expectedNumberOfCalls = assetsNoBase.length + 2 + 1\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n\n let totalDebt24h = 0\n let totalDeposits24h = 0\n\n let result: { [asset: string]: any } = {}\n for (let i = 0; i < assetsNoBase.length; i++) {\n const asset = assetsNoBase[i]\n const assetMeta = lenderData[asset].asset\n const decimals = assetMeta?.decimals ?? 18\n const depositsRaw = data[i][0]?.toString()\n if (depositsRaw === '0') continue\n const deposits = parseRawAmount(depositsRaw, decimals)\n const key =\n toOracleKey(assetMeta?.assetGroup) ??\n toGenericPriceKey(asset, chainId)\n const price = prices[key] ?? 1\n\n const priceHist = pricesHist?.[key] ?? price\n\n // accure\n totalDeposits24h += Number(deposits) * priceHist\n\n result[asset] = {\n poolId: asset,\n underlying: asset,\n deposits,\n depositsUSD: Number(deposits) * price,\n debtStableUSD: 0,\n debt: '0',\n debtStable: '0',\n debtUSD: 0,\n collateralActive: true,\n // user depos raw\n depositsRaw,\n // flag for allowance\n }\n }\n\n const depositsRaw = data[assetsNoBase.length]?.toString()\n const debtRaw = data[assetsNoBase.length + 1]?.toString()\n const baseMeta = lenderData[baseAsset].asset\n const baseDecimals = baseMeta.decimals ?? 18\n const deposits = parseRawAmount(depositsRaw, baseDecimals)\n const debt = parseRawAmount(debtRaw, baseDecimals)\n const oracleKeyBase =\n toOracleKey(baseMeta?.assetGroup) ??\n toGenericPriceKey(baseMeta.baseAsset, chainId)\n const priceBase = prices[oracleKeyBase]\n const priceBaseHist = pricesHist?.[oracleKeyBase] ?? priceBase\n\n // accrue base data\n totalDebt24h += Number(debt) * priceBaseHist\n totalDeposits24h += Number(deposits) * priceBaseHist\n\n const resultBase = {\n [baseAsset]: {\n poolId: baseAsset,\n underlying: baseAsset,\n deposits,\n debt,\n depositsUSD: Number(deposits) * priceBase,\n debtUSD: Number(debt) * priceBase,\n // populate values for totals\n debtStable: '0',\n debtStableUSD: 0,\n collateralActive: true,\n // user depos raw\n depositsRaw,\n // flag for allowance\n },\n }\n\n // the result is an array: [tokenAddress, owedAmount] (tokenAddress should be always COMP)\n // so we take [1] to get the owedAmount\n const earnedBalances = data[expectedNumberOfCalls - 1]\n\n const compRewards = Number(\n parseRawAmount(earnedBalances?.owed?.toString(), 18),\n )\n const payload = {\n lendingPositions: { [0]: { ...result, ...resultBase } },\n chainId,\n baseAsset,\n rewards: {\n ['COMP']: {\n totalRewards: compRewards,\n claimableRewards: compRewards,\n },\n },\n account,\n }\n const userData = createBaseTypeUserState(\n payload,\n lenderData,\n totalDeposits24h,\n totalDebt24h,\n )\n return {\n ...payload,\n ...userData,\n }\n },\n expectedNumberOfCalls,\n ]\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { toGenericPriceKey, toOracleKey } from '../../../assets'\nimport { AaveV3UserReserveResponse } from '../../../types/lenderTypes'\nimport { createBaseTypeUserState } from '../utils'\nimport { parseRawAmount } from '../../../utils/parsing'\nimport { GenericCurrency } from '../../../types'\nimport { YldrTypeGetUserReserveIndexes } from '../../../types/lender/aave-v3-types'\n\n/** Like Aave V3, not stable debt data and no emode */\nexport const getYldrUserDataConverter = (\n lender: Lender,\n chainId: string,\n account: string,\n prices: { [asset: string]: number },\n pricesHist: { [asset: string]: number },\n lenderData: any,\n): [(data: any[]) => AaveV3UserReserveResponse | undefined, number] => {\n const assetsToQuery = Object.keys(lenderData)\n const expectedNumberOfCalls = assetsToQuery.length\n return [\n (data: any[]) => {\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n const lendingPositions: { [asset: string]: any } = {}\n\n let totalDebt24h = 0\n let totalDeposits24h = 0\n\n for (let i = 0; i < assetsToQuery.length; i++) {\n const asset = assetsToQuery[i]\n const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(\n i,\n data,\n chainId,\n lenderData[asset].asset,\n prices,\n pricesHist,\n )\n if (!dataForAsset) continue\n totalDebt24h += addedDebt\n totalDeposits24h += addedDeposits\n lendingPositions[asset] = dataForAsset\n }\n\n const payload = {\n chainId,\n account,\n lendingPositions: { '0': lendingPositions },\n rewards: {},\n userEMode: 0,\n }\n\n const userData = createBaseTypeUserState(\n payload,\n lenderData,\n totalDeposits24h,\n totalDebt24h,\n )\n return {\n ...payload,\n ...userData,\n }\n },\n expectedNumberOfCalls,\n ]\n}\n\nfunction createAaveV3Entry(\n i: number,\n data: any[],\n chainId: string,\n asset: GenericCurrency,\n prices: any,\n pricesHist: any,\n) {\n const reserveData = data[i]\n\n const currentATokenBalanceRaw =\n reserveData[YldrTypeGetUserReserveIndexes.currentYTokenBalance]?.toString()\n const currentVariableDebtRaw =\n reserveData[YldrTypeGetUserReserveIndexes.currentVariableDebt]?.toString()\n\n if (currentATokenBalanceRaw === '0' && currentVariableDebtRaw === '0') {\n return {\n dataForAsset: undefined,\n addedDeposits: 0,\n addedDebt: 0,\n }\n }\n\n const assetMeta = asset\n const decimals = assetMeta?.decimals ?? 18\n\n const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)\n const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)\n\n const key =\n toOracleKey(assetMeta?.assetGroup) ??\n toGenericPriceKey(asset.address, chainId)\n // prices\n const price = prices[key] ?? 1\n const priceHist = pricesHist?.[key] ?? price\n\n const dataForAsset = {\n poolId: asset.address,\n underlying: asset.address,\n deposits: currentATokenBalance,\n depositsRaw: currentATokenBalanceRaw,\n debtStable: '0',\n debt: currentVariableDebt,\n depositsUSD: Number(currentATokenBalance) * price,\n debtStableUSD: 0,\n debtUSD: Number(currentVariableDebt) * price,\n stableBorrowRate: 0,\n collateralActive: Boolean(\n reserveData[YldrTypeGetUserReserveIndexes.usageAsCollateralEnabled],\n ),\n claimableRewards: 0,\n }\n\n return {\n dataForAsset,\n addedDeposits: Number(currentATokenBalance) * priceHist,\n addedDebt: Number(currentVariableDebt) * priceHist,\n }\n}\n","export interface BalanceInfo {\n index: number; // uint16 (2 bytes)\n supplyShares: bigint; // uint256 (32 bytes)\n borrowShares: bigint; // uint128 (16 bytes)\n supplyAssets: bigint; // uint256 (32 bytes)\n borrowAssets: bigint; // uint256 (32 bytes)\n collateral: bigint; // uint128 (16 bytes)\n}\n\nconst WORD = 32;\nconst HALF = 16;\n\n/** Read `len` bytes at `off` as a big‐endian BigInt. */\nfunction readBigIntBE(buf: Uint8Array, off: number, len: number): bigint {\n let v = 0n;\n for (let i = 0; i < len; i++) {\n v = (v << 8n) | BigInt(buf[off + i]);\n }\n return v;\n}\n\n/**\n * Decode:\n * [ uint256 count (32 bytes) ]\n * then for each of `count` records:\n * uint16 index (2 bytes),\n * uint256 supplyShares (32 bytes),\n * uint128 borrowShares (16 bytes),\n * uint256 supplyAssets (32 bytes),\n * uint256 borrowAssets (32 bytes),\n * uint128 collateral (16 bytes)\n */\nexport function decodePackedDataset(hex: string): BalanceInfo[] {\n if (hex.startsWith(\"0x\")) hex = hex.slice(2);\n const buf = Uint8Array.from(hex.match(/.{1,2}/g)!.map((b) => parseInt(b, 16)));\n\n // 1) count (uint256)\n const count = Number(readBigIntBE(buf, 0, 2));\n const out: BalanceInfo[] = [];\n\n let off = 2;\n for (let i = 0; i < count; i++) {\n // 2) index (uint16)\n const index = Number(readBigIntBE(buf, off, 2)); \n off += 2;\n\n // 3) supplyShares (uint256)\n const supplyShares = readBigIntBE(buf, off, WORD);\n off += WORD;\n\n // 4) borrowShares (uint128)\n const borrowShares = readBigIntBE(buf, off, HALF);\n off += HALF;\n\n // 5) supplyAssets (uint256)\n const supplyAssets = readBigIntBE(buf, off, WORD);\n off += WORD;\n\n // 6) borrowAssets (uint256)\n const borrowAssets = readBigIntBE(buf, off, WORD);\n off += WORD;\n\n // 7) collateral (uint128)\n const collateral = readBigIntBE(buf, off, HALF);\n off += HALF;\n\n out.push({ index, supplyShares, borrowShares, supplyAssets, borrowAssets, collateral });\n }\n\n return out;\n}\n","import { Lender } from '@1delta/lender-registry'\nimport { toGenericPriceKey, toOracleKey } from '../../../assets'\nimport { MorphoUserReserveResponse } from '../../../types/lenderTypes'\nimport { createBaseTypeUserState } from '../utils'\nimport { parseRawAmount } from '../../../utils/parsing'\nimport { BalanceInfo, decodePackedDataset } from './decoder'\nimport { MorphoMarket } from '../../../types/lender/morpho-types'\n\nconst CHUNK_SIZE = 100\n\nconst balanceData = {\n '0': {\n borrowDiscountedCollateral: 0,\n collateral: 0,\n deposits: 0,\n debt: 0,\n adjustedDebt: 0,\n nav: 0,\n deposits24h: 0,\n debt24h: 0,\n nav24h: 0,\n },\n}\n\n// aggregated apr data\nconst aprData = {\n '0': {\n apr: 0,\n borrowApr: 0,\n depositApr: 0,\n rewards: 0,\n rewardApr: 0,\n rewardDepositApr: 0,\n rewardBorrowApr: 0,\n stakingApr: 0,\n stakingDepositApr: 0,\n stakingBorrowApr: 0,\n },\n}\nconst userDataEmpty = (account: string, chainId: string) => {\n return {\n account,\n chainId,\n balanceData,\n aprData,\n userConfigs: {\n '0': { selectedMode: 0, id: account },\n },\n }\n}\n\nexport const getMorphoUserDataConverterWithlens = (\n lender: Lender,\n chainId: string,\n account: string,\n markets: string[],\n prices: { [asset: string]: number },\n pricesHist: { [asset: string]: number },\n lenderData: any,\n): [\n (data: any[]) => { [market: string]: MorphoUserReserveResponse } | undefined,\n number,\n] => {\n const expectedNumberOfCalls = Math.ceil(markets.length / CHUNK_SIZE)\n return [\n (data: any[]) => {\n // chunksizes depend on markets\n if (data.length !== expectedNumberOfCalls) {\n return undefined\n }\n\n // we map the index from the return data\n // to the real chunk\n // it is\n // (chunk number) * (chunksize = 100) + index\n function mapMarketToChunk(indexInChunk: number, chunkIndex: number) {\n return chunkIndex * CHUNK_SIZE + indexInChunk\n }\n\n let marketsHandled: string[] = []\n\n let datas: { [market: string]: MorphoUserReserveResponse } = {}\n\n // we loop over the return dat\n for (let i = 0; i < data.length; i++) {\n // get balance data array for chunk\n const balanceDatas = decodePackedDataset(data[i])\n // itereate of balanceDatas received in chunk\n balanceDatas.forEach((balanceData) => {\n // this will get the market by index\n const markeId = markets[mapMarketToChunk(balanceData.index, i)]\n\n marketsHandled.push(markeId)\n\n const market = lenderData[markeId]?.params?.market\n const { dataForMarket, addedDebt, addedDeposits } =\n createMorphoEntryFromMarketWithLens(\n balanceData,\n chainId,\n market,\n lenderData[markeId].data,\n prices,\n pricesHist,\n )\n\n const payload = {\n chainId,\n account,\n lendingPositions: { '0': dataForMarket },\n rewards: {},\n userEMode: 0,\n }\n\n const userData = createBaseTypeUserState(\n payload,\n lenderData[markeId].data,\n addedDeposits,\n addedDebt,\n )\n\n datas[market.lender] = {\n ...payload,\n ...userData,\n id: market.id,\n }\n })\n }\n\n for (const marketId of markets) {\n const pubData = lenderData[marketId]\n if (marketsHandled.includes(marketId)) continue\n const payload = {\n chainId,\n account,\n lendingPositions: { '0': {} },\n rewards: {},\n userEMode: 0,\n }\n\n const userData = userDataEmpty(account, chainId)\n // @ts-ignore\n datas[marketId] = {\n ...payload,\n ...userData,\n // @ts-ignore\n id: pubData?.params?.market.id,\n }\n }\n return datas\n },\n expectedNumberOfCalls,\n ]\n}\n\nfunction createMorphoEntryFromMarketWithLens(\n balanceInfo: BalanceInfo,\n chainId: string,\n market: MorphoMarket,\n lenderData: any,\n prices: any,\n pricesHist: any,\n) {\n const loanAddress = market.loanAddress.toLowerCase()\n const loanMeta = lenderData[loanAddress].asset\n\n const loanKey =\n toOracleKey(loanMeta?.assetGroup) ?? toGenericPriceKey(loanAddress, chainId)\n // prices\n const priceLoan = prices[loanKey] ?? 1\n const priceHistLoan = pricesHist?.[loanKey] ?? priceLoan\n // balances\n const deposits = balanceInfo.supplyAssets\n const borrow = balanceInfo.borrowAssets\n const collateral = balanceInfo.collateral\n // return early if there are zeros\n if (deposits === 0n && borrow === 0n && collateral === 0n)\n return {\n dataForMarket: {},\n addedDeposits: 0,\n addedDebt: 0,\n }\n\n const collateralAddress = market.collateralAddress.toLowerCase()\n\n const collateralAssetMeta = lenderData[collateralAddress].asset\n\n // loan asset deposits\n const loanDepositNumber = parseRawAmount(\n deposits.toString(),\n market.loanDecimals ?? loanMeta?.decimals ?? 18,\n )\n\n // collateral amount\n const decimals =\n market.collateralDecimals ?? collateralAssetMeta?.decimals ?? 18\n const collateralDec = parseRawAmount(collateral.toString(), decimals)\n\n // borrow asset balance\n const borrowDec = parseRawAmount(\n borrow.toString(),\n market.loanDecimals ?? loanMeta?.decimals ?? 18,\n )\n\n const dataForLoanAsset = {\n poolId: loanAddress,\n underlying: loanAddress,\n deposits: loanDepositNumber,\n depositsRaw: deposits.toString(),\n debtStable: '0',\n debt: borrowDec,\n depositsUSD: Number(loanDepositNumber) * priceLoan,\n debtStableUSD: 0,\n debtUSD: Number(borrowDec) * priceLoan,\n stableBorrowRate: '0',\n collateralActive: false,\n claimableRewards: 0,\n }\n\n const key =\n toOracleKey(collateralAssetMeta?.assetGroup) ??\n toGenericPriceKey(collateralAddress, chainId)\n // prices\n const price = prices[key] ?? 1\n const priceHist = pricesHist?.[key] ?? price\n\n const dataForCollateralAsset = {\n poolId: collateralAddress,\n underlying: collateralAddress,\n deposits: collateralDec,\n depositsRaw: balanceInfo.collateral.toString(),\n debtStable: '0',\n debt: '0',\n depositsUSD: Number(collateralDec) * price,\n debtStableUSD: 0,\n debtUSD: 0,\n stableBorrowRate: '0',\n collateralActive: true,\n claimableRewards: 0,\n }\n\n return {\n dataForMarket: {\n [loanAddress]: dataForLoanAsset,\n [collateralAddress]: dataForCollateralAsset,\n },\n addedDeposits:\n Number(loanDepositNumber) * priceHistLoan +\n Number(collateralDec) * priceHist,\n addedDebt: Number(borrowDec) * priceHistLoan,\n }\n}\n","import {\n Call,\n MULTICALL_DEFAULT_BATCH_SIZE,\n multicallViemAbiArray,\n} from '../../utils/multicall'\nimport { Lender } from '@1delta/lender-registry'\nimport {\n isAaveV2Type,\n isAaveV3Type,\n isInit,\n isMorphoType,\n isMultiMarket,\n isYLDR,\n} from '../../utils'\nimport { LenderUserQuery, organizeUserQueries } from '../../types/lenderTypes'\nimport { GetEvmClientFunction } from '../../types'\nimport { buildAaveV2UserCall } from './aave-v2-type/userCallBuild'\nimport { buildAaveV3UserCall } from './aave-v3-type/userCallBuild'\nimport { buildInitUserCall } from './init/userCallBuild'\nimport { buildCompoundV3UserCall } from './compound-v3/userCallBuild'\nimport { getAbi } from './abis'\nimport { getAaveV2UserDataConverter } from './aave-v2-type/userCallParse'\nimport { getAaveV3UserDataConverter } from './aave-v3-type/userCallParse'\nimport { getInitUserDataConverter } from './init/userCallParse'\nimport { getCompoundV3UserDataConverter } from './compound-v3/userCallParse'\nimport { getYldrUserDataConverter } from './aave-v3-type/userCallParseYldr'\nimport { buildMorphoUserCallWithLens } from './morpho/userCallBuild'\nimport { getMorphoUserDataConverterWithlens } from './morpho/userCallParse'\n\nfunction buildUserCall(\n chainId: string,\n lender: Lender,\n account: string,\n params?: any,\n assets?: any[],\n) {\n if (isAaveV2Type(lender))\n return buildAaveV2UserCall(chainId, lender, account, assets)\n if (isAaveV3Type(lender))\n return buildAaveV3UserCall(chainId, lender, account, assets)\n if (isInit(lender)) return buildInitUserCall(chainId, lender, account)\n if (isMorphoType(lender))\n return buildMorphoUserCallWithLens(chainId, account, lender, params)\n return buildCompoundV3UserCall(chainId, lender, account, assets)\n}\n\nfunction getUserDataConverter(\n lender: Lender,\n chainId: string,\n account: string,\n prices: { [a: string]: number },\n pricesHist: { [a: string]: number },\n lenderPublicState: any,\n params?: any,\n) {\n if (isYLDR(lender))\n return getYldrUserDataConverter(\n lender,\n chainId,\n account,\n prices,\n pricesHist,\n lenderPublicState?.data?.[lender]?.data,\n )\n if (isAaveV2Type(lender))\n return getAaveV2UserDataConverter(\n lender,\n chainId,\n account,\n prices,\n pricesHist,\n lenderPublicState?.data?.[lender]?.data,\n )\n if (isAaveV3Type(lender))\n return getAaveV3UserDataConverter(\n lender,\n chainId,\n account,\n prices,\n pricesHist,\n lenderPublicState?.data?.[lender]?.data,\n )\n if (isInit(lender))\n return getInitUserDataConverter(\n lender,\n chainId,\n account,\n prices,\n pricesHist,\n lenderPublicState?.data?.[lender]?.data,\n )\n if (isMorphoType(lender))\n return getMorphoUserDataConverterWithlens(\n lender,\n chainId,\n account,\n params,\n prices,\n pricesHist,\n lenderPublicState?.data,\n )\n return getCompoundV3UserDataConverter(\n lender,\n chainId,\n account,\n prices,\n pricesHist,\n lenderPublicState?.data?.[lender]?.data,\n )\n}\n\n/**\n * Builds the multicall calls for the given queries and returns the raw results\n * @param chainId - The chain ID\n * @param queries - The queries to fetch data for\n * @param getEvmClient - Injected function to get EVM client\n * @param allowFailure - multicall can fail in single call, default is true - note that this might mess with the retries as it will never error\n * @param batchSize - multicall batch size, default is 4096\n * @param logs - show multicall error logs, default is false\n * @param lenderData - optional public lender data to dynamically use pols and assets provided externally\n * @returns The raw results from the multicall, \"0x\" for failures\n */\nexport const getLenderUserDataResult = async (\n chainId: string,\n queriesRaw: LenderUserQuery[],\n getEvmClient: GetEvmClientFunction,\n allowFailure = true,\n batchSize = MULTICALL_DEFAULT_BATCH_SIZE,\n retries = 3,\n logs = false,\n): Promise<any[]> => {\n let calls: {\n call: Call\n abi: any\n }[] = []\n\n const queries = organizeUserQueries(queriesRaw)\n\n for (const query of queries) {\n const abi = getAbi(query.lender)\n const callData = buildUserCall(\n chainId,\n query.lender,\n query.account,\n query.params,\n query.assets,\n )\n const mappedCalls = callData.map((call) => ({ call, abi }))\n calls = [...calls, ...mappedCalls]\n }\n return await multicallViemAbiArray(\n chainId,\n calls.map((call) => call.abi),\n calls.map((call) => call.call),\n getEvmClient,\n true,\n 0,\n retries,\n allowFailure,\n batchSize,\n logs,\n )\n}\n\n/**\n * Converts the raw results into the desired format\n * @param chainId - The chain ID\n * @param queries - The queries to fetch data for\n * @param rawResults - The raw results from the multicall (getLenderUserDataResult)\n * @param prices - The prices for the assets\n * @param pricesHist - The historical prices for the assets\n * @param lenderState - The state of the lender\n * @returns The converted data\n */\nexport const convertLenderUserDataResult = (\n chainId: string,\n queriesRaw: LenderUserQuery[],\n rawResults: any[],\n prices: any,\n pricesHist: any,\n lenderState: any,\n): { [lender: string]: any } => {\n const queries = organizeUserQueries(queriesRaw)\n const lenderData: { [lender: string]: any } = {}\n let currentSlice = 0\n for (const query of queries) {\n const [converter, sliceLength] = getUserDataConverter(\n query.lender,\n chainId,\n query.account,\n prices,\n pricesHist,\n lenderState[chainId],\n query.params,\n )\n try {\n const data = rawResults.slice(currentSlice, currentSlice + sliceLength)\n const convertedData = converter(data)\n if (convertedData) {\n if (isMultiMarket(query.lender)) {\n Object.keys(convertedData).forEach((market) => {\n lenderData[market] = {\n // @ts-ignore\n [query.account.toLowerCase()]: convertedData[market],\n }\n })\n } else {\n // map it to the user address\n lenderData[query.lender] = {\n [query.account.toLowerCase()]: convertedData,\n }\n }\n }\n } catch (e) {}\n currentSlice += sliceLength\n }\n return lenderData\n}\n","import { initializeChainData, initializeLenderData } from '@1delta/data-sdk'\n\nconst baseUrl =\n 'https://raw.githubusercontent.com/1delta-DAO/lender-metadata/main'\nconst aavePools = baseUrl + '/config/aave-pools.json'\nconst aaveOracles = baseUrl + '/data/aave-oracles.json'\nconst morphoOracles = baseUrl + '/data/morpho-oracles.json'\nconst compoundV2Pools = baseUrl + '/config/compound-v2-pools.json'\nconst compoundV3Pools = baseUrl + '/config/compound-v3-pools.json'\n// const initPools = baseUrl + '/config/init-pools.json'\nconst morphoPools = baseUrl + '/config/morpho-pools.json'\n\nconst aaveReserves = baseUrl + '/data/aave-reserves.json'\nconst compoundV2Reserves = baseUrl + '/data/compound-v2-reserves.json'\nconst compoundV3Reserves = baseUrl + '/data/compound-v3-reserves.json'\nconst initConfig = baseUrl + '/data/init-config.json'\nconst aaveTokens = baseUrl + '/data/aave-tokens.json'\nconst compoundV2CTokens = baseUrl + '/data/compound-v2-c-tokens.json'\nconst compoundV3Base = baseUrl + '/data/compound-v3-base-data.json'\nconst baseUrlChains = 'https://raw.githubusercontent.com/1delta-DAO/chains/main'\n\nconst chains = baseUrlChains + '/data.json'\n\nexport function inititalizeAllData(params: any) {\n const { chainsOverride, ...lenderOverrides } = params\n\n initializeLenderData(lenderOverrides)\n\n initializeChainData({ chainsOverride })\n}\n\nexport async function fetchLenderMetaFromDirAndInitialize() {\n const {\n aavePoolsOverride,\n compoundV2PoolsOverride,\n compoundV3PoolsOverride,\n // initPoolsOverride,\n morphoPoolsOverride,\n aaveReservesOverride,\n compoundV2ReservesOverride,\n compoundV3ReservesOverride,\n initConfigOverride,\n aaveTokensOverride,\n compoundV2TokensOverride,\n compoundV3BaseDataOverride,\n aaveOraclesOverride,\n morphoOraclesOverride,\n chainsOverride,\n } = await fetchLenderMetaFromDir()\n\n initializeLenderData({\n aaveTokensOverride,\n aavePoolsOverride,\n compoundV3PoolsOverride,\n compoundV3BaseDataOverride,\n morphoPoolsOverride,\n compoundV2TokensOverride,\n compoundV2PoolsOverride,\n initConfigOverride,\n aaveReservesOverride,\n compoundV3ReservesOverride,\n compoundV2ReservesOverride,\n aaveOraclesOverride,\n morphoOraclesOverride,\n })\n\n initializeChainData({ chainsOverride })\n}\n\nexport async function fetchLenderMetaFromDir() {\n const promises = [\n aavePools,\n compoundV2Pools,\n compoundV3Pools,\n // initPools,\n morphoPools,\n aaveReserves,\n compoundV2Reserves,\n compoundV3Reserves,\n initConfig,\n aaveTokens,\n compoundV2CTokens,\n compoundV3Base,\n aaveOracles,\n morphoOracles,\n chains,\n ].map(async (a) => fetch(a).then(async (b) => await b.json()))\n\n const [\n aavePoolsOverride,\n compoundV2PoolsOverride,\n compoundV3PoolsOverride,\n // initPoolsOverride,\n morphoPoolsOverride,\n aaveReservesOverride,\n compoundV2ReservesOverride,\n compoundV3ReservesOverride,\n initConfigOverride,\n aaveTokensOverride,\n compoundV2TokensOverride,\n compoundV3BaseDataOverride,\n aaveOraclesOverride,\n morphoOraclesOverride,\n chainsOverride,\n ] = await Promise.all(promises)\n\n return {\n aavePoolsOverride,\n compoundV2PoolsOverride,\n compoundV3PoolsOverride,\n // initPoolsOverride,\n morphoPoolsOverride,\n aaveReservesOverride,\n compoundV2ReservesOverride,\n compoundV3ReservesOverride,\n initConfigOverride,\n aaveTokensOverride,\n compoundV2TokensOverride,\n compoundV3BaseDataOverride,\n aaveOraclesOverride,\n morphoOraclesOverride,\n chainsOverride,\n }\n}\n","import { Chain } from '@1delta/chain-registry'\n\nexport interface LiquidityThresholds {\n /** Minimum total deposits in USD */\n minDepositsUSD: number\n /** Minimum total debt/borrows in USD */\n minDebtUSD: number\n /** Minimum total liquidity in USD */\n minLiquidityUSD: number\n}\n\nexport const DEFAULT_LIQUIDITY_THRESHOLDS: LiquidityThresholds = {\n minDepositsUSD: 25_000,\n minDebtUSD: 10_000,\n minLiquidityUSD: 15_000,\n}\n\nexport const ASSET_GROUP_LIQUIDITY_THRESHOLDS: {\n [assetGroup: string]: LiquidityThresholds\n} = {\n USDC: {\n minDepositsUSD: 25_000,\n minDebtUSD: 5_000,\n minLiquidityUSD: 15_000,\n },\n}\n\nexport const CHAIN_THRESHOLD_MULTIPLIERS: { [chainId: string]: number } = {\n [Chain.POLYGON_MAINNET]: 1.0,\n [Chain.ARBITRUM_ONE]: 1.0,\n [Chain.OP_MAINNET]: 1.0,\n [Chain.BASE]: 1.0,\n [Chain.MANTLE]: 0.8,\n [Chain.LINEA]: 0.8,\n [Chain.ZKSYNC_MAINNET]: 0.8,\n [Chain.SCROLL]: 0.8,\n [Chain.TAIKO_ALETHIA]: 0.6,\n [Chain.HEMI_NETWORK]: 0.6,\n}\n\n/**\n * Asset based overrides (per chain)\n * assetKey format: \"chainId-assetAddress\" (lowercase)\n */\nexport const ASSET_SPECIFIC_THRESHOLDS: {\n [assetKey: string]: LiquidityThresholds\n} = {}\n\nexport function getLiquidityThresholds(\n chainId: string,\n assetAddress: string,\n assetGroup?: string,\n): LiquidityThresholds {\n // Check for asset overrides\n const assetKey = `${chainId}-${assetAddress.toLowerCase()}`\n if (ASSET_SPECIFIC_THRESHOLDS[assetKey]) {\n return ASSET_SPECIFIC_THRESHOLDS[assetKey]\n }\n\n let baseThresholds =\n assetGroup && ASSET_GROUP_LIQUIDITY_THRESHOLDS[assetGroup]\n ? ASSET_GROUP_LIQUIDITY_THRESHOLDS[assetGroup]\n : DEFAULT_LIQUIDITY_THRESHOLDS\n\n const chainMultiplier = CHAIN_THRESHOLD_MULTIPLIERS[chainId] ?? 1.0\n\n return {\n minDepositsUSD: Math.floor(baseThresholds.minDepositsUSD * chainMultiplier),\n minDebtUSD: Math.floor(baseThresholds.minDebtUSD * chainMultiplier),\n minLiquidityUSD: Math.floor(\n baseThresholds.minLiquidityUSD * chainMultiplier,\n ),\n }\n}\n\nexport function meetsLiquidityThresholds(\n pool: {\n totalDepositsUSD: number\n totalDebtUSD: number\n totalLiquidityUSD: number\n },\n thresholds: LiquidityThresholds,\n): boolean {\n return (\n pool.totalDepositsUSD >= thresholds.minDepositsUSD &&\n pool.totalDebtUSD >= thresholds.minDebtUSD &&\n pool.totalLiquidityUSD >= thresholds.minLiquidityUSD\n )\n}\n\nexport function meetsLiquidityThresholdsLong(\n pool: {\n totalDepositsUSD: number\n totalDebtUSD: number\n totalLiquidityUSD: number\n },\n thresholds: LiquidityThresholds,\n): boolean {\n return pool.totalDepositsUSD >= thresholds.minDepositsUSD\n}\n\nexport function meetsLiquidityThresholdsShort(\n pool: {\n totalDepositsUSD: number\n totalDebtUSD: number\n totalLiquidityUSD: number\n },\n thresholds: LiquidityThresholds,\n): boolean {\n return (\n pool.totalDebtUSD >= thresholds.minDebtUSD &&\n pool.totalLiquidityUSD >= thresholds.minLiquidityUSD\n )\n}\n","import { toGenericPriceKey, toOracleKey } from '../assets'\nimport {\n getLiquidityThresholds,\n meetsLiquidityThresholdsLong,\n meetsLiquidityThresholdsShort,\n} from '../assets/liquidityThresholds'\nimport { ConfigEntry, LenderData, PoolData } from '../types'\nimport { GenericCurrency } from '../types/general'\nimport { isAaveV3Type, isInit, isMorphoType } from '../utils'\n\ninterface SimpleAssetInfo {\n asset: GenericCurrency\n poolId: string\n}\n\nexport interface LendingPair {\n // lender info\n chainId: string\n lender: string\n // asset addresses\n assetLong: string\n assetShort: string\n\n /** Full asset info */\n infoLong: SimpleAssetInfo\n infoShort: SimpleAssetInfo\n\n // asset group for long asset\n assetGroupLong: string\n // asset group for short asset\n assetGroupShort: string\n // pair prices\n price: number\n price24h: number\n priceChange: number\n\n // pair props\n maxLeverage: number\n apr: number\n baseApr: number\n rewardApr: number\n tags?: string[]\n eMode?: number\n\n // liquidity data\n longTotalDepositsUSD: number\n longTotalDebtUSD: number\n longTotalLiquidityUSD: number\n shortTotalDepositsUSD: number\n shortTotalDebtUSD: number\n shortTotalLiquidityUSD: number\n\n // status flags\n longIsActive: boolean\n longIsFrozen: boolean\n shortIsActive: boolean\n shortIsFrozen: boolean\n shortBorrowingEnabled: boolean\n}\n\nconst isEMode = (longData: PoolData, shortData: PoolData) =>\n Boolean(longData.eMode)\n ? Number(longData.eMode?.category) > 0 &&\n Number(longData.eMode?.category) === shortData.eMode?.category\n : false\n\nconst intersection = <T>(a0: T[], a1: T[]): T[] => {\n return a0.filter((a) => a1.includes(a))\n}\nconst LENDER_MODE_NO_MODE = 0\n\n// calculate the maximum leverage for a given pair\nconst getMaxLeverage = (\n lender: string,\n longData: PoolData,\n shortData: PoolData,\n) => {\n // for Aave V3 we check for eModes\n if (isAaveV3Type(lender)) {\n const cf = isEMode(longData, shortData)\n ? longData.config[longData.eMode?.category ?? 0]?.borrowCollateralFactor\n : longData.config[LENDER_MODE_NO_MODE]?.borrowCollateralFactor\n return 1 / (1 - cf)\n }\n // for init, we match the modes and find the one with the highest collatearal factor\n if (isInit(lender)) {\n const modeIntersect = intersection(\n Object.values(longData.config).map((c: ConfigEntry) => c.category),\n Object.values(shortData.config).map((c: ConfigEntry) => c.category),\n )\n\n if (modeIntersect.length === 0) return 1\n const configId = Object.values(longData.config)\n .filter((c: ConfigEntry) => modeIntersect.includes(c.category))\n .sort((c: ConfigEntry, d: ConfigEntry) =>\n c.borrowCollateralFactor < d.borrowCollateralFactor ? 1 : -1,\n )[0].category\n\n // we have to use the adjusted formula with the borrowFactor here\n const cf = longData.config[configId]?.borrowCollateralFactor\n const bf = shortData.config[configId]?.borrowFactor\n return 1 / (1 - cf / bf)\n }\n // all other cases use the default mode no_mode without borrowFactor\n const cf =\n longData?.config?.[LENDER_MODE_NO_MODE]?.borrowCollateralFactor ?? 0.8\n return 1 / (1 - cf)\n}\n\n/** create array of pairs for given lender data */\nexport function generateLendingPairs(\n lenderData: LenderData,\n prices: { [k: string]: number },\n histPrices: { [k: string]: number },\n): LendingPair[] {\n const pairs: LendingPair[] = []\n\n for (const chainId in lenderData) {\n const chainEntry = lenderData[chainId]\n const lenderToData = chainEntry.data ?? chainEntry\n\n for (const lender in lenderToData) {\n const lenderEntry = lenderToData[lender]\n\n // protect agaist error data\n let pools: any[] = Object.values(\n lenderEntry?.data ?? lenderEntry ?? {},\n ).map((a: any) => (a?.data ? a.data : a))\n\n // sometimes error messages are included\n const hasErrorMessages = pools.some(\n (p: any) =>\n typeof p === 'string' &&\n (p.includes('No lenders available') || p.includes('Failed to fetch')),\n )\n\n if (hasErrorMessages) continue\n\n // cast to poolData\n const validPools: PoolData[] = pools.filter(\n (p: any) => typeof p === 'object' && p !== null,\n )\n const poolArray = validPools.filter((p) => !p?.isFrozen)\n\n // Loop through all ordered pairs of pools\n for (let i = 0; i < poolArray.length; i++) {\n for (let j = 0; j < poolArray.length; j++) {\n if (i === j) continue\n\n const long = poolArray[i]\n const short = poolArray[j]\n if (!short.borrowingEnabled) continue\n\n // Skip same asset pairs\n if (long.underlying === short.underlying) continue\n\n const maxDepositLeverage = getMaxLeverage(lender, long, short)\n\n // non-leveraged pair is pointless\n if (maxDepositLeverage < 1.05) continue\n\n const borrowLeverage = maxDepositLeverage - 1\n const depositLeverage = maxDepositLeverage\n let collateralRewards = 0\n let borrowRewards = 0\n const rewards: any = {}\n // get the rewards from the collateral\n for (const [rewardId, baseYields] of Object.entries(\n long.rewards ?? {},\n )) {\n collateralRewards += baseYields.depositRate\n if (baseYields.depositRate > 0)\n rewards[rewardId] = baseYields.depositRate * depositLeverage\n }\n // get the rewards from debt\n for (const [rewardId, baseYields] of Object.entries(\n short.rewards ?? {},\n )) {\n const borrowRate =\n baseYields.stableBorrowRate >= baseYields.variableBorrowRate\n ? baseYields.stableBorrowRate\n : baseYields.variableBorrowRate\n borrowRewards += borrowRate\n if (borrowRate != 0)\n rewards[rewardId] =\n (rewards[rewardId] ?? 0) + borrowRate * borrowLeverage\n }\n const depositApr = long.depositRate + long.stakingYield\n const borrowApr = short.variableBorrowRate + short.stakingYield\n\n const [assetGroupLong, keyLong] = getPriceKey(long.asset)\n const [assetGroupShort, keyShort] = getPriceKey(short.asset)\n const priceLong = prices[keyLong] ?? 0\n const priceShort = prices[keyShort] ?? 0\n\n const price24hLong = histPrices[keyLong] ?? priceLong\n const price24hShort = histPrices[keyShort] ?? priceShort\n\n const price = priceShort !== 0 ? priceLong / priceShort : 0\n const price24h =\n price24hShort !== 0 ? price24hLong / price24hShort : 0\n\n // only base apr\n const baseApr =\n depositApr * depositLeverage - borrowApr * borrowLeverage\n\n // only rewards apr\n const rewardApr =\n collateralRewards * depositLeverage + borrowRewards * borrowLeverage\n\n // total apr\n const totalApr = baseApr + rewardApr\n\n pairs.push({\n chainId,\n lender,\n assetLong: long.underlying,\n assetShort: short.underlying,\n infoLong: { poolId: long.poolId, asset: long.asset },\n infoShort: { poolId: short.poolId, asset: short.asset },\n price,\n price24h,\n assetGroupLong,\n assetGroupShort,\n priceChange: price24h === 0 ? 0 : (price - price24h) / price24h,\n maxLeverage: maxDepositLeverage,\n apr: totalApr,\n baseApr,\n rewardApr,\n eMode: long.eMode?.category ?? 0,\n longTotalDepositsUSD: long.totalDepositsUSD,\n longTotalDebtUSD: long.totalDebtUSD,\n longTotalLiquidityUSD: long.totalLiquidityUSD,\n shortTotalDepositsUSD: short.totalDepositsUSD,\n shortTotalDebtUSD: short.totalDebtUSD,\n shortTotalLiquidityUSD: short.totalLiquidityUSD,\n longIsActive: long.isActive,\n longIsFrozen: long.isFrozen,\n shortIsActive: short.isActive,\n shortIsFrozen: short.isFrozen,\n shortBorrowingEnabled: short.borrowingEnabled,\n })\n }\n }\n }\n }\n\n return pairs\n}\n\nfunction getPriceKey(asset: GenericCurrency): [string, string] {\n const assetGroup = asset?.assetGroup\n return [\n assetGroup,\n toOracleKey(assetGroup) ??\n toGenericPriceKey(asset?.address, asset?.chainId),\n ]\n}\n\nconst MAX_ENTRIES = 10\n\nfunction filterPairsByCategory(\n pairs: LendingPair[],\n longFilter: (group: string) => boolean,\n shortFilter: (group: string) => boolean,\n): LendingPair[] {\n return pairs\n .filter((p) => {\n if (!longFilter(p.assetGroupLong) || !shortFilter(p.assetGroupShort)) {\n return false\n }\n\n if (\n p.assetGroupShort?.includes('PT-') ||\n p.assetGroupLong?.includes('PT-')\n ) {\n return false\n }\n\n if (\n !p.longIsActive ||\n p.longIsFrozen ||\n !p.shortIsActive ||\n p.shortIsFrozen\n ) {\n return false\n }\n\n if (!p.shortBorrowingEnabled) {\n return false\n }\n\n // apply liquidity thresholds\n const longThresholds = getLiquidityThresholds(\n p.chainId,\n p.assetLong,\n p.assetGroupLong,\n )\n const shortThresholds = getLiquidityThresholds(\n p.chainId,\n p.assetShort,\n p.assetGroupShort,\n )\n\n // note: morpho does not allow to borrow collateral\n // therefore, the collateral is always withdrawable if debt is repaid\n const longMeetsThresholds =\n isMorphoType(p.lender) ||\n meetsLiquidityThresholdsLong(\n {\n totalDepositsUSD: p.longTotalDepositsUSD,\n totalDebtUSD: p.longTotalDebtUSD,\n totalLiquidityUSD: p.longTotalLiquidityUSD,\n },\n longThresholds,\n )\n\n const shortMeetsThresholds = meetsLiquidityThresholdsShort(\n {\n totalDepositsUSD: p.shortTotalDepositsUSD,\n totalDebtUSD: p.shortTotalDebtUSD,\n totalLiquidityUSD: p.shortTotalLiquidityUSD,\n },\n shortThresholds,\n )\n if (!longMeetsThresholds || !shortMeetsThresholds) {\n return false\n }\n\n return true\n })\n .sort((a, b) => b.baseApr - a.baseApr)\n .slice(0, MAX_ENTRIES)\n}\n\nexport function getTopPairs(pairs: LendingPair[]) {\n const stables = filterPairsByCategory(\n pairs,\n (group) => group?.includes('USD') ?? false,\n (group) => group?.includes('USD') ?? false,\n )\n\n const btcLst = filterPairsByCategory(\n pairs,\n (group) => group?.includes('BTC') ?? false,\n (group) => group?.includes('BTC') ?? false,\n )\n\n const ethLst = filterPairsByCategory(\n pairs,\n (group) => group?.includes('ETH') ?? false,\n (group) => group?.includes('ETH') ?? false,\n )\n\n return {\n stables,\n btcLst,\n ethLst,\n gainers: getDistinctPairsByShortAsset(pairs).slice(0, MAX_ENTRIES),\n }\n}\n\nfunction isStable(assetGroup: string): boolean {\n return assetGroup.includes('USD')\n}\n\nexport function getDistinctPairsByShortAsset(\n pairs: LendingPair[],\n): LendingPair[] {\n const qualityPairs = pairs.filter((p) => {\n if (!isFinite(p.apr) || !isFinite(p.priceChange)) {\n return false\n }\n\n if (\n !p.longIsActive ||\n p.longIsFrozen ||\n !p.shortIsActive ||\n p.shortIsFrozen\n ) {\n return false\n }\n\n if (!p.shortBorrowingEnabled) {\n return false\n }\n\n // Apply liquidity thresholds\n const longThresholds = getLiquidityThresholds(\n p.chainId,\n p.assetLong,\n p.assetGroupLong,\n )\n const shortThresholds = getLiquidityThresholds(\n p.chainId,\n p.assetShort,\n p.assetGroupShort,\n )\n\n const longMeetsThresholds = meetsLiquidityThresholdsLong(\n {\n totalDepositsUSD: p.longTotalDepositsUSD,\n totalDebtUSD: p.longTotalDebtUSD,\n totalLiquidityUSD: p.longTotalLiquidityUSD,\n },\n longThresholds,\n )\n\n const shortMeetsThresholds = meetsLiquidityThresholdsShort(\n {\n totalDepositsUSD: p.shortTotalDepositsUSD,\n totalDebtUSD: p.shortTotalDebtUSD,\n totalLiquidityUSD: p.shortTotalLiquidityUSD,\n },\n shortThresholds,\n )\n\n if (!longMeetsThresholds || !shortMeetsThresholds) {\n return false\n }\n\n if (\n p.assetGroupShort?.includes('PT-') ||\n p.assetGroupLong?.includes('PT-')\n ) {\n return false\n }\n\n return true\n })\n\n const sorted = [...qualityPairs].sort((a, b) => b.priceChange - a.priceChange)\n\n const blacklist = new Set<string>()\n const blacklistLong = new Set<string>()\n const result: LendingPair[] = []\n\n for (const pair of sorted) {\n const shortGroup = pair.assetGroupShort\n const longGroup = pair.assetGroupLong\n\n if (blacklist.has(shortGroup) || blacklistLong.has(longGroup)) continue\n\n result.push(pair)\n\n // Only blacklist if not a stablecoin\n if (!isStable(shortGroup)) {\n blacklist.add(shortGroup)\n }\n if (!isStable(longGroup)) {\n blacklistLong.add(longGroup)\n }\n if (result.length >= 10) return result\n }\n\n return result\n}\n","import { TokenList } from '../../types'\n\nconst PENDLE_API_BASE = 'https://api-v2.pendle.finance/core'\nconst MARKETS_ENDPOINT = `${PENDLE_API_BASE}/v1/markets/all`\nconst PRICES_ENDPOINT = (types: PendleAssetTypes[] | undefined) =>\n `${PENDLE_API_BASE}/v1/prices/assets${\n types ? `?type=${types.join(',')}` : ''\n }`\n\ntype PendleAssetTypes = 'PT' | 'YT' | 'SY' | 'PENDLE_LP'\n\ninterface PendleMarket {\n name: string\n address: string\n expiry: string\n pt: string\n yt: string\n sy: string\n underlyingAsset: string\n details: any\n isNew: boolean\n isPrime: boolean\n timestamp: string\n lpWrapper?: string\n categoryIds: string[]\n chainId: number\n}\n\ninterface PendleMarketsResponse {\n markets: PendleMarket[]\n}\n\ninterface PendlePricesResponse {\n prices: { [address: string]: number }\n total: number\n skip: number\n limit: number\n}\n\ninterface PendleMarketsByChain {\n [chainId: string]: PendleMarket[]\n}\n\nexport async function fetchPendleMarkets(): Promise<PendleMarketsByChain> {\n try {\n const response = await fetch(MARKETS_ENDPOINT)\n\n if (!response.ok) {\n throw new Error(`Failed to fetch all markets data: ${response.status}`)\n }\n\n const data: PendleMarketsResponse = await response.json()\n\n const marketsByChain: PendleMarketsByChain = {}\n\n if (data.markets) {\n for (const market of data.markets) {\n const chainId = market.chainId.toString()\n if (!marketsByChain[chainId]) {\n marketsByChain[chainId] = []\n }\n marketsByChain[chainId].push(market)\n }\n }\n\n return marketsByChain\n } catch (error) {\n console.error('Error fetching all markets data:', error)\n return {}\n }\n}\n\n/**\n * Fetch prices for a specific chain and token type\n */\nasync function fetchPendlePricesForAllChain(\n lists: { [chainId: string]: { list: TokenList } } = {},\n assetType: PendleAssetTypes[] = ['YT', 'PT'],\n): Promise<{\n [address: string]: number\n}> {\n try {\n const data = await fetchPendlePricesRaw(assetType)\n let prices: { [address: string]: number } = {}\n Object.entries(data).forEach(([key, val]) => {\n const [chainId, address] = key.split('-')\n const assetKey =\n lists[chainId]?.list?.[address.toLowerCase()]?.assetGroup ?? key\n prices[assetKey] = val\n })\n return prices\n } catch (error) {\n console.error(`Error fetching prices pendle prices:`, error)\n\n return {}\n }\n}\n\n/**\n * Fetch prices for a specific chain and token type\n */\nasync function fetchPendlePricesRaw(\n assetType: PendleAssetTypes[] = ['YT', 'PT'],\n): Promise<{\n [address: string]: number\n}> {\n try {\n const response = await fetch(PRICES_ENDPOINT(assetType))\n const data = (await response.json()) as PendlePricesResponse\n return data.prices\n } catch (error) {\n console.error(`Error fetching prices pendle prices:`, error)\n\n return {}\n }\n}\n/**\n * Extract relevant token addresses from markets data\n * Note: Seperating the chainId from address is not really required since we do the same when we return results\n * but it allows to extend the file later and use individual addresses (maybe), or we can simplify this\n */\nfunction extractTokenAddressesFromMarkets(markets: PendleMarket[]): {\n [chainId: string]: { pt: string[]; yt: string[]; sy: string[] }\n} {\n const tokensByChain: {\n [chainId: string]: { pt: string[]; yt: string[]; sy: string[] }\n } = {}\n\n markets.forEach((market) => {\n const chain = market.pt?.split('-')[0]\n\n if (chain && !tokensByChain[chain]) {\n tokensByChain[chain] = { pt: [], yt: [], sy: [] }\n }\n\n // Add token addresses to their respective chains\n if (market.pt && chain) {\n const address = market.pt.split('-')[1]\n if (address && !tokensByChain[chain].pt.includes(address)) {\n tokensByChain[chain].pt.push(address)\n }\n }\n\n if (market.yt && chain) {\n const address = market.yt.split('-')[1]\n if (address && !tokensByChain[chain].yt.includes(address)) {\n tokensByChain[chain].yt.push(address)\n }\n }\n\n if (market.sy && chain) {\n const address = market.sy.split('-')[1]\n if (address && !tokensByChain[chain].sy.includes(address)) {\n tokensByChain[chain].sy.push(address)\n }\n }\n })\n\n return tokensByChain\n}\n\n/**\n * Main function to fetch Pendle prices\n */\nexport async function fetchPendlePrices(\n lists: { [chainId: string]: { list: TokenList } } = {},\n assetType: PendleAssetTypes[] = ['YT', 'PT'],\n): Promise<{\n [address: string]: number\n}> {\n try {\n const marketsResponse = await fetchPendleMarkets()\n\n if (!Object.keys(marketsResponse).length) {\n return {}\n }\n\n const allPrices = await fetchPendlePricesForAllChain(lists, assetType) // fetch YT and PT prices per default\n return Object.fromEntries(\n Object.entries(allPrices).filter(([, price]) => !!price),\n )\n } catch (error) {\n console.error('Error in fetchPendlePrices:', error)\n return {}\n }\n}\n\n/**\n * Main function to fetch Pendle yields\n * Provide lists to map to asset groups\n * For all chains\n * Skips 0 APRs\n */\nexport async function fetchPendleYields(\n lists: { [chainId: string]: { list: TokenList } } = {},\n): Promise<{\n [address: string]: number\n}> {\n try {\n const marketsResponse = await fetchPendleMarkets()\n\n if (!Object.keys(marketsResponse).length) {\n return {}\n }\n\n const prices = await fetchPendlePricesRaw() // YT and PT\n let yields: any = {}\n const now = new Date()\n Object.entries(marketsResponse).forEach(([chain, dataArr]) => {\n dataArr.forEach((market) => {\n const ptPrice = prices[market.pt]\n const ytPrice = prices[market.yt]\n if (ytPrice && ytPrice > 0) {\n const yearFraction = yearFractionToExpiry(market.expiry, now)\n const apr = ((ytPrice / ptPrice) * 100) / yearFraction\n\n const [chainId, address] = market.pt.split('-')\n const assetKey =\n lists[chainId]?.list?.[address.toLowerCase()]?.assetGroup ??\n market.pt\n\n yields[assetKey] = apr\n }\n })\n })\n\n return yields\n } catch (error) {\n console.error('Error in fetchPendlePrices:', error)\n return {}\n }\n}\n\nfunction yearFractionToExpiry(expiryISO: string, now = new Date()): number {\n const expiry = new Date(expiryISO)\n\n // Difference in milliseconds\n const diffMs = expiry.getTime() - now.getTime()\n\n // Convert ms → days → years (approx 365.25 to account for leap years)\n const yearFraction = diffMs / (1000 * 60 * 60 * 24 * 365.25)\n\n return yearFraction\n}\n\n// // Example usage:\n// const expiry = '2025-12-25T00:00:00.000Z';\n// console.log(yearFractionToExpiry(expiry)); // e.g. 0.22 years\n","export type YearnVault = {\n address: string\n symbol: string\n name: string\n chainID: number\n token: {\n address: string\n name: string\n symbol: string\n description: string\n decimals: number\n }\n tvl: {\n totalAssets: string\n tvl: number\n price: number\n }\n apr: {\n type: string\n netAPR: number | null\n fees: {\n performance: number\n management: number\n }\n points: {\n weekAgo: number\n monthAgo: number\n inception: number\n }\n pricePerShare: {\n today: number\n weekAgo: number\n monthAgo: number\n }\n extra: {\n stakingRewardsAPR: number | null\n gammaRewardAPR: number | null\n katanaRewardsAPR: number | null\n katanaAppRewardsAPR: number | null\n FixedRateKatanaRewards: number | null\n katanaBonusAPY: number | null\n extrinsicYield: number | null\n katanaNativeYield: number | null\n }\n forwardAPR: {\n type: string\n netAPR: number | null\n composite: {\n boost: number | null\n poolAPY: number | null\n boostedAPR: number | null\n baseAPR: number | null\n cvxAPR: number | null\n rewardsAPR: number | null\n }\n }\n }\n strategies: {\n address: string\n name: string\n status: string\n netAPR?: number\n details: {\n totalDebt: string\n totalLoss: string\n totalGain: string\n performanceFee: number\n lastReport: number\n debtRatio?: number\n }\n }[]\n}\n\nexport const addressToAssetYearn: { [a: string]: string } = {\n '0xe007ca01894c863d7898045ed5a3b4abf0b18f37': 'vbETH yVault::yvvbETH',\n '0x80c34bd3a3569e126e7055831036aa7b212cb159': 'vbUSDC yVault::yvvbUSDC',\n '0x9a6bd7b6fd5c4f87eb66356441502fc7dcdd185b': 'vbUSDT yVault::yvvbUSDT',\n '0xaa0362ecc584b985056e47812931270b99c91f9d': 'vbWBTC yVault::yvvbWBTC',\n '0x93fec6639717b6215a48e5a72a162c50dcc40d68': 'vbAUSD yVault::yvvbAUSD',\n}\n","import { Chain } from '@1delta/chain-registry'\nimport { fetchPendleYields } from '../prices/pendle'\nimport { apyToAprPercent, apyToApr } from '../utils/parsing'\nimport { addressToAssetYearn, YearnVault } from './yieldTypes'\n\nconst hyUSD = 'High Yield USD Base::HYUSD'\nconst bsdETH = 'Based ETH::BSDETH'\n\nconst wstHype = 'Staked HYPE Shares::WSTHYPE'\nconst kHYPE = 'Kinetiq Staked HYPE::kHYPE'\nconst tETH = 'Treehouse ETH::TETH'\nconst osETH = 'StakeWise Staked ETH::OSETH'\n// const ethPlus = 'ETHPlus::ETH+'\nconst ethX = 'Stader ETHx::ETHx'\nconst pufEth = 'PUFETH'\nconst stUSD = 'Angle Staked USDA::stUSD'\nconst stEur = 'Angle Staked EURA::stEUR'\nconst sUsds = 'sUSDS::SUSDS'\nconst srUsd = 'Reservoir srUSD::SRUSD'\nconst yusd = 'YieldFi yUSD::yUSD'\nconst rlp = 'Resolv RLP::RLP'\nconst wstusr = 'Resolv wstUSR::WSTUSR'\nconst ethPlus = 'ETHPlus::ETH+'\nconst woEth = 'Wrapped OETH::WOETH'\nconst csusdl = 'Coinshift USDL Morpho Vault::CSUSDL'\nconst sfrxeth = 'Staked Frax Ether::sfrxETH'\nconst ceth = 'cETH::CETH'\nconst sfrax = 'Staked FRAX::SFRAX'\nconst sdeusd = 'Elixir Staked deUSD::SDEUSD'\nconst rsweth = 'Restaked Swell ETH::RSWETH'\nconst ynethx = 'ynETH MAX::YNETHX'\nconst usdZeroPlus = 'Staked USD0::USD0++'\nconst ethZero = 'ETH0::ETH0'\nconst usdThree = 'Web 3 Dollar::USD3'\nconst jitoSol = 'Jito Staked SOL::JitoSOL'\nconst thBill = 'Theo Short Duration US Treasury Fund::THBILL'\nconst ssuperusd = 'SuperReturn sSuperUSD::SSUPERUSD'\nconst hbhype = 'hyperbeat x ether.fi HYPE::beHYPE'\nconst FeedData = {\n WSTETH: 'https://eth-api.lido.fi/v1/protocol/steth/apr/sma',\n STMATIC: 'https://polygon.lido.fi/api/stats',\n CBETH: 'https://api.exchange.coinbase.com/wrapped-assets/cbeth',\n MATICX: 'https://universe.staderlabs.com/polygon/apy',\n METH: 'https://meth.mantle.xyz/api/stats/apy',\n SUSDE:\n 'https://yields.llama.fi/poolsEnriched?pool=66985a81-9c51-46ca-9977-42b4fe7bc6df',\n EZETH: 'https://app.renzoprotocol.com/api/stats?chainId=1',\n RETH: 'https://api.rocketpool.net/api/mainnet/payload',\n WEETH: 'https://www.ether.fi/api/apr',\n SAVAX: 'https://api.benqi.fi/liquidstaking/apr',\n RSETH: 'https://universe.kelpdao.xyz/rseth/totalApy',\n TRUMATIC: 'https://api.trufin.io/staker/apy?staker=MATIC',\n RTOKENS: 'https://yields.reserve.org/pools',\n HYPE: 'https://api.hyperlend.finance/data/nativeApy',\n ETHX: 'https://universe.staderlabs.com/eth/apy',\n OSETH:\n 'https://graphs.stakewise.io/mainnet-a/subgraphs/name/stakewise/prod?opName=osTokenApy',\n PUFETH: 'https://api-v2.puffer.fi/backend-for-frontend/tvl/all',\n ANGLE: 'https://exporter.angle.money/v2/savingsApr',\n SUSDS: 'https://info-sky.blockanalitica.com/api/v1/overall/?format=json',\n SRUSD: 'https://app.reservoir.xyz/api/website',\n YUSD: 'https://ctrl.yield.fi/t/yusd/apy',\n RLP: 'https://api.resolv.xyz/apr/rlp/7d',\n WSTUSR: 'https://api.resolv.xyz/apr/staking/7d',\n MORPHO_VAULTS: 'https://blue-api.morpho.org/graphql',\n SDEUSD: 'https://api-deusd-prod-public.elixir.xyz/public/deusd_apy',\n RSWETH: 'https://v3-lst.svc.swellnetwork.io/api/tokens/sweth/apr',\n YNETHX: 'https://gateway.yieldnest.finance/api/v1/graphql',\n USDZEROPLUS: 'https://app.usual.money/api/rewards/rates/USD0++',\n ETHZERO: 'https://app.usual.money/api/rewards/rates/ETH0',\n JITOSOL: 'https://www.jito.network/api/getJitoPoolStats/',\n THBILL: 'https://thbill-api.theo.xyz/snapshots',\n YEARN_KATANA: 'https://katana-apr-service.vercel.app/api/vaults',\n SSUPERUSD:\n 'https://www.superreturn.ai/api/trpc/cmc.getUSDCPrice,rewardBackend.getYield,rewardBackend.getTvlChange?batch=1&input=%7B%220%22%3A%7B%22json%22%3Anull%2C%22meta%22%3A%7B%22values%22%3A%5B%22undefined%22%5D%7D%7D%2C%221%22%3A%7B%22json%22%3Anull%2C%22meta%22%3A%7B%22values%22%3A%5B%22undefined%22%5D%7D%7D%2C%222%22%3A%7B%22json%22%3Anull%2C%22meta%22%3A%7B%22values%22%3A%5B%22undefined%22%5D%7D%7D%7D',\n HBHYPE:\n 'https://api.hyperbeat.org/api/v1/staking?address=0xCeaD893b162D38e714D82d06a7fe0b0dc3c38E0b',\n}\n\n// const LenderAPIs = {\n// MERIDIAN:\n// 'https://omnidex.bmaa3ajd1gjri.eu-west-2.cs.amazonlightsail.com/lending_yields',\n// }\n\nfunction averageDataLastN<T extends { data: number }>(\n arr: readonly T[],\n n = 7,\n): number {\n const last = arr.slice(-n)\n if (last.length === 0) return 0\n return last.reduce((sum, x) => sum + x.data, 0) / last.length\n}\n\nenum MeridainNetwork {\n TAIKO = 'taiko',\n}\n\nfunction formatMeridianKey(k: string) {\n const _k = k.toUpperCase()\n if (_k === 'USDT') return 'USDT.E'\n if (_k === 'USDCE') return 'USDC.E'\n return _k\n}\n\n// Converters from apy to apr and reversed\n\ninterface LenderAssetReward {\n deposit: number\n borrow: number\n additionalDepositData: any\n additionalBorrowData: any\n}\n\nexport interface YieldDataWithTimestamp {\n intrinsicYields: { [asset: string]: number | undefined }\n lenderRewards: {\n [chainId: number]: {\n [lender: string]: { [asset: string]: LenderAssetReward }\n }\n }\n}\n\nconst getListUrl = (chainId: string) =>\n `https://raw.githubusercontent.com/1delta-DAO/asset-lists/main/${chainId}.json`\n\nasync function getDeltaTokenList(chain: string) {\n const data = await fetch(getListUrl(chain))\n // @ts-ignore\n const list = (await data.json()).list as GenericTokenList\n return list\n}\n\nasync function getListsMulti(chainIds: string[]) {\n const ps = chainIds.map(async (chainId) => await getDeltaTokenList(chainId))\n const lists = await Promise.all(ps)\n let res: any = {}\n for (let i = 0; i < chainIds.length; i++) {\n const chainId = chainIds[i]\n res[chainId] = { list: lists[i] }\n }\n return res\n}\n\nconst safeFetch = async <T>(\n label: string,\n fn: () => Promise<T>,\n): Promise<T | undefined> => {\n try {\n return await fn()\n } catch (e) {\n console.error(`Error fetching ${label}:`, e)\n return undefined\n }\n}\n\nexport const fetchGeneralYields = async () => {\n const wstethPromise = safeFetch('WSTETH', async () => {\n const res = await fetch(FeedData.WSTETH).then((r) => r.json())\n return Number(res.data.aprs.at(-1).apr) * 0.9\n })\n\n const ezethPromise = safeFetch('EZETH', async () => {\n const res = await fetch(FeedData.EZETH).then((r) => r.json())\n return Number(res.data.apr.data.rate)\n })\n\n const rethPromise = safeFetch('RETH', async () => {\n const res = await fetch(FeedData.RETH).then((r) => r.json())\n return Number(res.rethAPR)\n })\n\n const weethPromise = safeFetch('WEETH', async () => {\n const wstethRes = await wstethPromise\n let aYield = 0\n try {\n const weethRes = await fetch(FeedData.WEETH).then((r) => r.json())\n aYield = Number(weethRes.lrt2Apr)\n } catch (e) {\n aYield = 0.5\n }\n return aYield + (wstethRes ?? 0)\n })\n\n const stmaticPromise = safeFetch('STMATIC', async () => {\n // const res = await fetch(FeedData.STMATIC).then((r) => r.json())\n // return Number(res.apr) * 0.9\n return 0\n })\n\n const savaxPromise = safeFetch('SAVAX', async () => {\n const res = await fetch(FeedData.SAVAX).then((r) => r.json())\n return Number(res.apr) * 100\n })\n\n const methPromise = safeFetch('METH', async () => {\n const res = await fetch(FeedData.METH).then((r) => r.json())\n return apyToApr(Number(res.data[0]?.OneDayAPY)) * 100\n })\n\n const maticxPromise = safeFetch('MATICX', async () => {\n const res = await fetch(FeedData.MATICX).then((r) => r.json())\n return Number(res.value) * 0.9\n })\n\n const susdePromise = safeFetch('SUSDE', async () => {\n try {\n const res = await fetch(FeedData.SUSDE).then((r) => r.json())\n return apyToAprPercent(res?.data[0]?.apy ?? 0)\n } catch (e) {\n return 0\n }\n })\n\n const hbhypePromise = safeFetch('HBHYPE', async () => {\n try {\n const response = await fetch(FeedData.HBHYPE)\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`)\n }\n\n const result = await response.json()\n\n // Ensure data exists and delegations is an array\n if (\n !result.success ||\n !result.data ||\n !Array.isArray(result.data.delegations)\n ) {\n throw new Error('Invalid response structure')\n }\n\n const delegations = result.data.delegations\n\n // Compute average APR\n const totalApr = delegations.reduce(\n (sum: any, validator: any) => sum + Number(validator.apr ?? 0),\n 0,\n )\n const averageApr = totalApr / delegations.length\n\n return averageApr\n } catch (e) {\n return 0\n }\n })\n\n const ssuperusdPromise = safeFetch('SSUPERUSD', async () => {\n try {\n const res = await fetch(FeedData.SSUPERUSD, {\n method: 'GET',\n headers: { Accept: 'application/json', 'User-Agent': '1delta/yields' },\n }).then((r) => r.json())\n return apyToAprPercent(res?.[1]?.result.data.json ?? 0)\n } catch (e) {\n return 0\n }\n })\n\n const rsethPromise = safeFetch('RSETH', async () => {\n const res = await fetch(FeedData.RSETH).then((r) => r.json())\n return apyToAprPercent(res.totalAPY)\n })\n\n const trumaticPromise = safeFetch('TRUMATIC', async () => {\n const res = await fetch(FeedData.TRUMATIC).then((r) => r.json())\n return apyToAprPercent(res.apy)\n })\n\n const thbillPromise = safeFetch('THBILL', async () => {\n const res = await fetch(FeedData.THBILL).then((r) => r.json())\n // the entries are nested as\n // \"cash\": {\n // \"USDC\": 0.0\n // },\n // \"money_market\": {\n // \"ULTRA\": 30364810.9557616\n // },\n // \"pending\": {\n // \"tULTRA\": 16220629.251993446\n // }\n // },\n\n // we read the keys and assign the approx rate of 4.5% to ULTRA\n const entrs = Object.values(res.history[0]?.composition ?? {}).flatMap(\n (a: any) => Object.entries(a),\n )\n const total = entrs.reduce((acc, b) => acc + Number(b[1]), 0)\n const val = entrs\n .filter((a) => a[0] === 'ULTRA')\n .reduce((acc, b) => acc + Number(b[1]), 0)\n return (val / total) * 4.5\n })\n\n const ethxPromise = safeFetch('ETHX', async () => {\n const res = await fetch(FeedData.ETHX).then((r) => r.json())\n return apyToAprPercent(res.value)\n })\n\n const yearnKatanaPromise = safeFetch('YEARN_KATANA', async () => {\n const res: { [address: string]: YearnVault } = await fetch(\n FeedData.YEARN_KATANA,\n ).then((r) => r.json())\n let map: any = {}\n Object.entries(res).forEach(([addr, data]) => {\n const key = addressToAssetYearn[addr.toLowerCase()]\n if (key) {\n const apr =\n ((data.apr.netAPR ?? 0) +\n (data.apr.extra.extrinsicYield ?? 0) +\n (data.apr.extra.katanaNativeYield ?? 0)) *\n 100\n map[key] = apr\n }\n })\n return map\n })\n\n const osEthPromise = safeFetch('OSETH', async () => {\n const res = await fetch(FeedData.OSETH, {\n method: 'POST',\n headers: { Accept: 'application/json' },\n body: JSON.stringify({\n query: 'query osTokenApy { osTokens { apy feePercent }}',\n operationName: 'osTokenApy',\n }),\n }).then((r) => r.json())\n return apyToAprPercent(res.data?.osTokens?.[0]?.apy)\n })\n\n const ynethxPromise = safeFetch('YNETHX', async () => {\n const res = await fetch(FeedData.YNETHX, {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n operationName: 'GetTokenMetrics',\n variables: {\n networkType: 'mainnet',\n },\n query:\n 'query GetTokenMetrics($networkType: NetworkType!) {\\n getLRTsData(networkType: $networkType) {\\n summary {\\n total_tvl {\\n value\\n value_raw\\n value_usd\\n __typename\\n }\\n __typename\\n }\\n tokens {\\n token\\n total_tvl {\\n value\\n value_raw\\n value_usd\\n __typename\\n }\\n price\\n blockchains {\\n chainId\\n tvl {\\n value\\n value_raw\\n value_usd\\n __typename\\n }\\n apr {\\n apr7d\\n apr31d\\n restaking7dApr\\n __typename\\n }\\n strategyAssets {\\n tokenAddress\\n symbol\\n apr7d\\n tvl\\n isBuffer\\n protocols\\n manager\\n maturityDate\\n __typename\\n }\\n contract_details {\\n tokenAddress\\n ynViewer\\n referralDepositAdapter\\n rateProvider\\n __typename\\n }\\n historicalData {\\n apy\\n exchangeRate\\n usdPrice\\n baseAsset\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n}',\n }),\n }).then((r) => r.json())\n\n const dat = res?.data?.getLRTsData?.tokens\n .find((x: any) => x.token === 'ynETHx')\n ?.blockchains?.find((b: any) => b.chainId === 1)?.apr?.apr31d\n\n return Number(dat ?? 0)\n })\n\n const pufEthPromise = safeFetch('PUFETH', async () => {\n const res = await fetch(FeedData.PUFETH, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n }).then((r) => r.json())\n return apyToAprPercent(res.apy)\n })\n\n const usdZeroPlusPromise = safeFetch('USDZEROPLUS', async () => {\n const res = await fetch(FeedData.USDZEROPLUS, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n }).then((r) => r.json())\n return Number(res?.rewards[0]?.apr ?? 0) * 100\n })\n\n const jitoSolPromise = safeFetch('JITOSOL', async () => {\n const res = await fetch(FeedData.JITOSOL, {\n method: 'GET',\n headers: { Accept: 'application/json', 'User-Agent': '1delta/yields' },\n }).then((r) => r.json())\n const val = averageDataLastN(res?.getStakePoolStats?.apy, 7)\n return apyToApr(val) * 100\n })\n\n const ethZeroPromise = safeFetch('ETHZERO', async () => {\n const res = await fetch(FeedData.ETHZERO, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n }).then((r) => r.json())\n return Number(res?.rewards[0]?.apr ?? 0) * 100\n })\n\n const susdsPromise = safeFetch('SUSDS', async () => {\n const res = await fetch(FeedData.SUSDS, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n }).then((r) => r.json())\n return apyToApr(Number(res?.[0]?.sky_savings_rate_apy ?? 0)) * 100\n })\n\n const srusdPromise = safeFetch('SRUSD', async () => {\n const res = await fetch(FeedData.SRUSD, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n }).then((r) => r.json())\n return apyToAprPercent(Number(res?.srusdApy ?? 0))\n })\n\n const yusdPromise = safeFetch('YUSD', async () => {\n const res = await fetch(FeedData.YUSD, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n }).then((r) => r.json())\n return apyToAprPercent(Number(res?.apy ?? 0))\n })\n\n const rlpPromise = safeFetch('RLP', async () => {\n const res = await fetch(FeedData.RLP, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'User-Agent': '1delta/yields',\n },\n }).then((r) => r.json())\n return Number(res?.value ?? 0) * 100\n })\n\n const wstusrPromise = safeFetch('WSTUSR', async () => {\n const res = await fetch(FeedData.WSTUSR, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n 'User-Agent': '1delta/yields',\n },\n }).then((r) => r.json())\n return Number(res?.value ?? 0) * 100\n })\n\n const sdeusdPromise = safeFetch('SDEUSD', async () => {\n const res = await fetch(FeedData.SDEUSD, {\n method: 'GET',\n headers: { Accept: 'application/json' },\n }).then((r) => r.json())\n return apyToAprPercent((res?.deusd_apy ?? 0) / 100) * 100\n })\n\n const rswethPromise = safeFetch('RSWETH', async () => {\n const res = await fetch(FeedData.RSWETH, {\n method: 'GET',\n headers: { Accept: 'application/json', 'User-Agent': '1delta/yields' },\n }).then((r) => r.text())\n return Number(res) ?? 0\n })\n\n const csusdlPromise = safeFetch('CSUSDL', async () => {\n const res = await fetch(FeedData.MORPHO_VAULTS, {\n method: 'POST',\n headers: { Accept: 'application/json' },\n body: JSON.stringify({\n query:\n 'query GetAllCurrentAPYFromVault($address: String!) {\\n vaultByAddress(address: $address) {\\n state {\\n apy\\n netApy\\n }\\n asset {\\n yield {\\n apr\\n }\\n }\\n }\\n}',\n variables: {\n address: '0xbEeFc011e94f43b8B7b455eBaB290C7Ab4E216f1',\n },\n }),\n }).then((r) => r.json())\n const vba = res?.data?.vaultByAddress\n return (\n apyToAprPercent(vba.state.apy ?? 0) * 100 +\n (vba?.asset?.yield.apr ?? 0) * 100\n )\n })\n\n const rtokensPromise = safeFetch('RTOKENS', async () => {\n const res = await fetch(FeedData.RTOKENS).then((r) => r.json())\n const data = res.rtokens['8453']\n const dataMainnet = res.rtokens['1']\n const dataMainnetColalterals = res.collaterals['1']\n return {\n [bsdETH]: apyToAprPercent(data.bsdETH / 100) * 100,\n [hyUSD]: apyToAprPercent(data.hyUSD / 100) * 100,\n [sfrxeth]: apyToAprPercent(dataMainnetColalterals.sfrxeth / 100) * 100,\n [sfrax]: apyToAprPercent(dataMainnetColalterals.sfrax / 100) * 100,\n [ceth]: apyToAprPercent(dataMainnetColalterals.ceth / 100) * 100,\n [ethPlus]: apyToAprPercent(dataMainnet['ETH+'] / 100) * 100,\n [usdThree]: apyToAprPercent(dataMainnet['USD3'] / 100) * 100,\n [woEth]: apyToAprPercent(dataMainnetColalterals.woeth / 100) * 100,\n }\n })\n\n const hypePromise = safeFetch('HYPE', async () => {\n const res = await fetch(FeedData.HYPE).then((r) => r.json())\n return {\n [wstHype]: res.wstHYPE.latestApr,\n [kHYPE]: res.kHYPE.latestApr,\n }\n })\n\n const anglePromise = safeFetch('ANGLE', async () => {\n const now = Math.floor(Date.now() / 1000)\n const nowMinusWeek = now - 7 * 24 * 3600\n const res = await fetch(\n FeedData.ANGLE + `?from=${nowMinusWeek}&to=${now}`,\n ).then((r) => r.json())\n return {\n [stEur]: apyToAprPercent(res.EURA) * 100,\n [stUSD]: apyToAprPercent(res.USDA) * 100,\n }\n })\n\n const cbethPromise = safeFetch('CBETH', async () => {\n try {\n const res = await fetch(FeedData.CBETH, {\n headers: {\n 'User-Agent': '1delta/yields',\n 'Content-Type': 'application/json',\n },\n }).then((r) => r.json())\n return apyToAprPercent(res.apy) * 100\n } catch (e) {\n console.log('CBETH failed', e)\n return 0\n }\n })\n\n // const meridianPromise = safeFetch('MERIDIAN', async () => {\n // const res = await fetch(LenderAPIs.MERIDIAN).then((r) => r.json())\n // const taikoData = res[MeridainNetwork.TAIKO]\n // return Object.assign(\n // {},\n // ...Object.keys(taikoData).map((key) => ({\n // [formatMeridianKey(key)]: {\n // deposit: taikoData[key].apy_reward,\n // borrow: taikoData[key].apy_reward_borrow,\n // },\n // })),\n // )\n // })\n\n const pendlePromise = getListsMulti([\n Chain.PLASMA_MAINNET,\n Chain.ETHEREUM_MAINNET,\n Chain.BERACHAIN,\n Chain.MANTLE,\n Chain.BASE,\n Chain.OP_MAINNET,\n Chain.ARBITRUM_ONE,\n Chain.SONIC_MAINNET,\n Chain.HYPEREVM,\n Chain.BNB_SMART_CHAIN_MAINNET,\n ]).then((x) => fetchPendleYields(x))\n\n const [\n wstethData,\n ezethData,\n rethData,\n weethData,\n stmaticData,\n methData,\n maticXdata,\n susdeData,\n // meridianData,\n savaxData,\n cbethData,\n rsethData,\n trumaticData,\n rtokensData,\n hypeData,\n osEthData,\n ethXData,\n pufEthData,\n angleData,\n susdsData,\n srUsdData,\n yusdData,\n rlpData,\n wstusrData,\n csusdlData,\n sdeusdData,\n rswethData,\n ynethxData,\n ethZeroData,\n usdZeroPlusData,\n jitoSolData,\n thBillData,\n yearnKatanaData,\n ssuperusdData,\n hbhypeData,\n pendleData,\n ] = await Promise.all([\n wstethPromise,\n ezethPromise,\n rethPromise,\n weethPromise,\n stmaticPromise,\n methPromise,\n maticxPromise,\n susdePromise,\n // meridianPromise,\n savaxPromise,\n cbethPromise,\n rsethPromise,\n trumaticPromise,\n rtokensPromise,\n hypePromise,\n osEthPromise,\n ethxPromise,\n pufEthPromise,\n anglePromise,\n susdsPromise,\n srusdPromise,\n yusdPromise,\n rlpPromise,\n wstusrPromise,\n csusdlPromise,\n sdeusdPromise,\n rswethPromise,\n ynethxPromise,\n ethZeroPromise,\n usdZeroPlusPromise,\n jitoSolPromise,\n thbillPromise,\n yearnKatanaPromise,\n ssuperusdPromise,\n hbhypePromise,\n pendlePromise,\n ])\n\n const data: YieldDataWithTimestamp = {\n intrinsicYields: {\n MATICX: maticXdata,\n METH: methData,\n CMETH: methData,\n WSTETH: wstethData,\n EZETH: ezethData,\n RETH: rethData,\n WEETH: weethData,\n STMATIC: stmaticData,\n USDY: 4.35,\n SUSDE: susdeData,\n SAVAX: savaxData,\n CBETH: cbethData,\n RSETH: rsethData,\n TRUMATIC: trumaticData,\n [sUsds]: susdsData,\n [ethZero]: ethZeroData,\n [usdZeroPlus]: usdZeroPlusData,\n [csusdl]: csusdlData,\n [srUsd]: srUsdData,\n [sdeusd]: sdeusdData,\n [wstusr]: wstusrData,\n [yusd]: yusdData,\n [rlp]: rlpData,\n [rsweth]: rswethData,\n [osETH]: osEthData,\n [ethX]: ethXData,\n [ynethx]: ynethxData,\n [tETH]: wstethData,\n [pufEth]: pufEthData,\n [jitoSol]: jitoSolData,\n [thBill]: thBillData,\n [ssuperusd]: ssuperusdData,\n [hbhype]: hbhypeData,\n ...rtokensData,\n ...hypeData,\n ...angleData,\n ...yearnKatanaData,\n ...pendleData,\n },\n lenderRewards: {\n // '167000': {\n // MERIDIAN: meridianData,\n // },\n },\n }\n return data\n}\n","const prefixEthereum = 'ethereum:'\nconst RETH = '0xae78736Cd615f374D3085123A210448E74Fc6393'\nconst WBTC = '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599'\nconst WETH = '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'\nconst MNT = '0x3c3a81e81dc49a522a592e7622a7e711c06bf354'\nconst USDE = '0x4c9edd5852cd905f086c759e8383e09bff1e68b3'\nconst METH = '0xd5f7838f5c461feff7fe49ea5ebaf7728bb0adfa'\nconst USDC = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'\nconst USDT = '0xdac17f958d2ee523a2206206994597c13d831ec7'\nconst USDY = '0x96f6ef951840721adbf46ac996b59e0235cb985c'\nconst CRV = '0xD533a949740bb3306d119CC777fa900bA034cd52'\nconst BAL = '0xba100000625a3754423978a60c9317c58a424e3D'\nconst AGEUR = '0x1a7e4e63778B4f12a199C062f3eFdD288afCBce8'\nconst LINK = '0x514910771AF9Ca656af840dff83E8264EcF986CA'\nconst DAI = '0x6B175474E89094C44Da98b954EedeAC495271d0F'\nconst MATIC = '0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0'\nconst BNB = '0xB8c77482e45F1F44dE1745F52C74426C631bDD52'\nconst STMATIC = '0x9ee91F9f426fA633d227f7a9b000E28b9dfd8599'\nconst MATICX = '0xf03A7Eb46d01d9EcAA104558C732Cf82f6B6B645'\nconst AAVE = '0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9'\nconst COMP = '0xc00e94cb662c3520282e6f5717214004a7f26888'\nconst EURS = '0xdB25f211AB05b1c97D595516F45794528a807ad8'\nconst FBTC = '0xC96dE26018A54D51c097160568752c4E3BD6C364'\nconst TAIKO = '0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800'\nconst CMETH = '0xe6829d9a7ee3040e1276fa75293bde931859e8fa'\nconst AUSD = '0x00000000efe302beaa2b3e6e1b18d08d69a9012a'\nconst SUSDE = '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497'\nconst FUEL = '0x675B68AA4d9c2d3BB3F0397048e62E6B7192079c'\nconst GHO = '0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f'\nconst FRAX = '0x853d955acef822db058eb8505911ed77f175b99e'\nconst WEETH = '0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee'\nconst ARB = '0xb50721bcf8d664c30412cfbc6cf7a15145234ad1'\nconst WUSDM = '0x57f5e098cad7a3d1eed53991d4d66c45c9af7812'\nconst RSETH = '0xa1290d69c65a6fe4df752f95823fae25cb99e5a7'\nconst CBETH = '0xbe9895146f7af43049ca1c1ae358b0541ea49704'\nconst SNX = '0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f'\nconst VUSD = '0x677ddbd918637e5f2c79e164d402454de7da8619'\nconst EZETH = '0xbf5495Efe5DB9ce00f80364C8B423567e58d2110'\nconst LBTC = '0x8236a87084f8B84306f72007F36F2618A5634494'\nconst BRBTC = '0x2eC37d45FCAE65D9787ECf71dc85a444968f6646'\nconst SDAI = '0x83f20f44975d03b1b09e64809b757c47f942beea'\nconst RUSD = '0x09d4214c03d01f49544c0448dbe3a27f768f2b34'\nconst USDF = '0xfa2b947eec368f42195f24f36d2af29f7c24cec2'\nconst USUAL = '0xc4441c2be5d8fa8126822b9929ca0b81ea0de38e'\nconst WOETH = '0xdcee70654261af21c44c093c300ed3bb97b78192'\nconst DEUSD = '0x15700B564Ca08D9439C58cA5053166E8317aa138'\nconst SKY = '0x56072C95FAA701256059aa122697B133aDEd9279'\nconst datasEthereum = [\n RETH,\n WBTC,\n WETH,\n MNT,\n USDC,\n USDT,\n USDE,\n METH,\n USDY,\n CRV,\n BAL,\n AGEUR,\n LINK,\n DAI,\n BNB,\n MATIC,\n STMATIC,\n MATICX,\n AAVE,\n COMP,\n EURS,\n FBTC,\n TAIKO,\n CMETH,\n AUSD,\n SUSDE,\n FUEL,\n GHO,\n FRAX,\n WEETH,\n ARB,\n WUSDM,\n RSETH,\n CBETH,\n SNX,\n EZETH,\n VUSD,\n LBTC,\n BRBTC,\n SDAI,\n RUSD,\n USDF,\n USUAL,\n WOETH,\n DEUSD,\n SKY,\n]\n .map((d) => prefixEthereum + d)\n .join(',')\n\nconst prefixAvalanche = 'avax:'\nconst WAVAX = '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7'\nconst SAVAX = '0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE'\n\nconst prefixArbitrum = 'arbitrum:'\nconst GMX = '0xfc5a1a6eb076a2c7ad06ed22c90d7e710e35ad0a'\n\nconst prefixOptimism = 'optimism:'\nconst OP = '0x4200000000000000000000000000000000000042'\nconst SUSD = '0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9'\nconst WRSETH = '0x87eee96d50fb761ad85b1c982d28a042169d61b1'\n\nconst prefixBase = 'base:'\nconst AERO = '0x940181a94A35A4569E4529A3CDfB74e38FD98631'\n\nconst prefixCore = 'core:'\nconst WCORE = '0xb0788b601c0d712702bc829b52771199ad8e33ff'\n\nconst prefixMetis = 'metis:'\nconst WMETIS = '0x75cb093e4d61d2a2e65d8e0bbb01de8d89b53481'\n\nconst prefixSonic = 'sonic:'\nconst WS = '0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38'\n\nconst prefixFantom = 'fantom:'\nconst WFTM = '0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83'\n\nconst prefixPolygon = 'polygon:'\nconst TRUMATIC = '0xf33687811f3ad0cd6b48dd4b39f9f977bd7165a2'\n\nconst prefixHyperEVM = 'hyperliquid:'\n\nconst WYPE = '0x5555555555555555555555555555555555555555'\nconst WSTHYPE = '0x94e8396e0869c9f2200760af0621afd240e1cf38'\nconst kHYPE = '0xfd739d4e423301ce9385c1fb8850539d657c296d'\n\nconst prefixSolana = 'solana:'\nconst JITOSOL = 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn'\nconst SOL = 'So11111111111111111111111111111111111111112'\n\nconst prefixXdc = 'xdc:'\nconst WXDC = '0x951857744785e80e2de051c32ee7b25f9c458c42'\n\nconst prefixBera = 'berachain:'\nconst WBERA = '0x6969696969696969696969696969696969696969'\n\nconst prefixCronos = 'cronos:'\nconst WCRO = '0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23'\n\nconst prefixTelos = 'telos:'\nconst wtlos = '0xd102ce6a4db07d247fcc28f366a623df0938ca9e'\n\nconst prefixManta = 'manta:'\nconst manta = '0x95cef13441be50d20ca4558cc0a27b601ac544e5'\n\nconst prefixbsc = 'bsc:'\nconst xpl = '0x405FBc9004D857903bFD6b3357792D71a50726b0'\n\n// const prefixKaia = 'kaia:'\n// const WKAIA = '0x19aac5f612f524b754ca7e7c41cbfa2e981a4432'\n\nconst prefixmoonbeam = 'moonbeam:'\nconst glmr = '0xacc15dc74880c9944775448304b263d191c6077f'\n\nconst datasAvalanche = [WAVAX, SAVAX].map((d) => prefixAvalanche + d).join(',')\nconst datasArbitrum = [GMX].map((d) => prefixArbitrum + d).join(',')\nconst datasOptimism = [OP, SUSD, WRSETH]\n .map((d) => prefixOptimism + d)\n .join(',')\nconst datasBase = [AERO].map((d) => prefixBase + d).join(',')\nconst datasCore = [WCORE].map((d) => prefixCore + d).join(',')\nconst datasMetis = [WMETIS].map((d) => prefixMetis + d).join(',')\nconst datasFantom = [WFTM].map((d) => prefixFantom + d).join(',')\nconst datasPolygon = [TRUMATIC].map((d) => prefixPolygon + d).join(',')\nconst datasSonic = [WS].map((d) => prefixSonic + d).join(',')\nconst datasHyperEvm = [WYPE, WSTHYPE, kHYPE]\n .map((d) => prefixHyperEVM + d)\n .join(',')\nconst datasSolana = [JITOSOL, SOL].map((d) => prefixSolana + d).join(',')\nconst datasBera = [WBERA].map((d) => prefixBera + d).join(',')\nconst datasXdc = [WXDC].map((d) => prefixXdc + d).join(',')\nconst datasCronos = [WCRO].map((d) => prefixCronos + d).join(',')\nconst datasManta = [manta].map((d) => prefixManta + d).join(',')\nconst datasTelos = [wtlos].map((d) => prefixTelos + d).join(',')\nconst datasbsc = [xpl].map((d) => prefixbsc + d).join(',')\nconst datasmoonbeam = [glmr].map((d) => prefixmoonbeam + d).join(',')\n// const datasKaia = [WKAIA].map((d) => prefixKaia + d).join(',')\n\nconst URL = `https://coins.llama.fi/prices/current/${[\n datasEthereum,\n datasAvalanche,\n datasArbitrum,\n datasOptimism,\n datasBase,\n datasCore,\n datasMetis,\n datasFantom,\n datasHyperEvm,\n // datasKaia,\n datasmoonbeam,\n datasSonic,\n datasPolygon,\n datasSolana,\n datasBera,\n datasXdc,\n datasCronos,\n datasManta,\n datasTelos,\n datasbsc,\n].join(',')}`\nconst URL_HIST = (ref: number) =>\n `https://coins.llama.fi/prices/historical/${ref}/${[\n datasEthereum,\n datasAvalanche,\n datasArbitrum,\n datasOptimism,\n datasBase,\n datasCore,\n datasMetis,\n datasFantom,\n // datasKaia,\n datasmoonbeam,\n datasHyperEvm,\n datasPolygon,\n datasSonic,\n datasSolana,\n datasbsc,\n ].join(',')}`\n\nconst SYMBOL_MAP = {\n weth: 'WETH',\n usde: 'USDE',\n meth: 'METH',\n mnt: 'WMNT',\n usdc: 'USDC',\n usdt: 'USDT',\n wbtc: 'WBTC',\n usdy: 'USDY',\n crv: 'CRV',\n op: 'OP',\n bal: 'BAL',\n eura: 'AGEUR',\n link: 'LINK',\n dai: 'DAI',\n bnb: 'WBNB',\n matic: 'WPOL',\n wpol: 'WPOL',\n pol: 'WPOL',\n stmatic: 'STMATIC',\n maticx: 'MATICX',\n wavax: 'WAVAX',\n aave: 'AAVE',\n comp: 'COMP',\n eurs: 'EURS',\n fbtc: 'FBTC',\n taiko: 'TAIKO',\n cmeth: 'CMETH',\n ausd: 'AUSD',\n susde: 'SUSDE',\n fuel: 'FUEL',\n gho: 'GHO',\n frax: 'FRAX',\n weeth: 'WEETH',\n arb: 'ARB',\n lusd: 'LUSD',\n reth: 'RETH',\n gmx: 'GMX',\n wusdm: 'WUSDM',\n rseth: 'RSETH',\n susd: 'SUSD',\n wrseth: 'WRSETH',\n cbeth: 'CBETH',\n aero: 'AERO',\n snx: 'SNX',\n wftm: 'WFTM',\n ftm: 'WFTM',\n wcore: 'WCORE',\n core: 'WCORE',\n ws: 'WS',\n s: 'WS',\n wmetis: 'WMETIS',\n metis: 'WMETIS',\n vusd: 'VUSD',\n ezeth: 'EZETH',\n lbtc: 'LBTC',\n brbtc: 'BRBTC',\n sdai: 'SDAI',\n wkaia: 'KAIA',\n savax: 'SAVAX',\n whype: 'WHYPE',\n khype: 'Kinetiq Staked HYPE::kHYPE',\n wsthype: 'Staked HYPE Shares::WSTHYPE',\n trumatic: 'TRUMATIC',\n rusd: 'Reservoir rUSD::RUSD',\n usdf: 'Falcon Finance::USDF',\n usual: 'Usual::USUAL',\n woeth: 'Wrapped OETH::WOETH',\n jitosol: 'Jito Staked SOL::JitoSOL',\n manta: 'Manta::MANTA',\n sol: 'SOL',\n wcro: 'WCRO',\n wxdc: 'WXDC',\n wbera: 'WBERA',\n wtlos: 'WTLOS',\n xpl: 'WXPL',\n wglmr: 'WGLMR',\n deusd: 'Elixir deUSD::DEUSD',\n sky: 'SKY Governance Token::SKY',\n}\n\nexport async function fetchDefillamaData() {\n try {\n const res: any = await fetch(URL).then((a) => a.json())\n\n let prices = Object.assign(\n {},\n ...Object.values(res.coins).map((k: any) => {\n // @ts-ignore\n return { [SYMBOL_MAP[k.symbol.toLowerCase()]]: k.price }\n }),\n )\n\n prices['POL'] = prices['WPOL']\n prices['BNB'] = prices['WBNB']\n prices['ETH'] = prices['WETH']\n prices['S'] = prices['WS']\n prices['CORE'] = prices['WCORE']\n prices['WSOL'] = prices['SOL']\n prices['AVAX'] = prices['WAVAX']\n prices['METIS'] = prices['WMETIS']\n prices['CRO'] = prices['WCRO']\n prices['XDC'] = prices['WXDC']\n prices['BERA'] = prices['WBERA']\n prices['TLOS'] = prices['WTLOS']\n prices['XPL'] = prices['WXPL']\n prices['GLMR'] = prices['WGLMR']\n // prices['WKAIA'] = prices['KAIA']\n\n prices['USDBC'] = prices['USDC']\n prices['BTCB'] = prices['WBTC']\n prices['CBBTC'] = prices['WBTC']\n prices['SOLVBTC'] = prices['WBTC']\n prices['XSOLVBTC'] = prices['WBTC']\n prices['SUBTC'] = prices['WBTC']\n\n prices['IBTC'] = prices['WBTC']\n prices['ENZOBTC'] = prices['WBTC']\n\n prices['LUSD'] = prices['USDT']\n prices['XDAI'] = prices['DAI']\n prices['WXDAI'] = prices['DAI']\n prices['HYPE'] = prices['WHYPE']\n return prices\n } catch (e: any) {\n console.log('error fetching prices from defillama', e)\n return {}\n }\n}\n\nexport async function fetchDefillamaHistData() {\n try {\n const nowMinus24 = Math.floor(Date.now() / 1000 - 24 * 3600)\n const resHist: any = await fetch(URL_HIST(nowMinus24)).then((a) => a.json())\n\n let histPrices = Object.assign(\n {},\n ...Object.values(resHist.coins).map((k: any) => {\n // @ts-ignore\n return { [SYMBOL_MAP[k.symbol.toLowerCase()]]: k.price }\n }),\n )\n\n histPrices['POL'] = histPrices['WPOL']\n histPrices['BNB'] = histPrices['WBNB']\n histPrices['ETH'] = histPrices['WETH']\n histPrices['S'] = histPrices['WS']\n histPrices['CORE'] = histPrices['WCORE']\n histPrices['WSOL'] = histPrices['SOL']\n histPrices['AVAX'] = histPrices['WAVAX']\n histPrices['METIS'] = histPrices['WMETIS']\n histPrices['HYPE'] = histPrices['WHYPE']\n histPrices['BERA'] = histPrices['WBERA']\n histPrices['CRO'] = histPrices['WCRO']\n histPrices['XDC'] = histPrices['WXDC']\n histPrices['TLOS'] = histPrices['WTLOS']\n histPrices['XPL'] = histPrices['WXPL']\n histPrices['GLMR'] = histPrices['WGLMR']\n // histPrices['WKAIA'] = histPrices['KAIA']\n\n histPrices['LUSD'] = histPrices['USDT']\n histPrices['XDAI'] = histPrices['DAI']\n histPrices['WXDAI'] = histPrices['DAI']\n\n histPrices['BTCB'] = histPrices['WBTC']\n histPrices['M-BTC'] = histPrices['WBTC']\n histPrices['SOLVBTC'] = histPrices['WBTC']\n histPrices['XSOLVBTC'] = histPrices['WBTC']\n histPrices['UNIBTC'] = histPrices['WBTC']\n histPrices['HEMIBTC'] = histPrices['WBTC']\n histPrices['SUBTC'] = histPrices['WBTC']\n histPrices['IBTC'] = histPrices['WBTC']\n histPrices['ENZOBTC'] = histPrices['WBTC']\n histPrices['CBBTC'] = histPrices['WBTC']\n histPrices['PUMPBTC'] = histPrices['WBTC']\n\n return histPrices\n } catch (e: any) {\n console.log('error fetching prices from defillama', e)\n return {}\n }\n}\n","export const AaveOracleAbi = [\n {\n \"inputs\": [],\n \"name\": \"BASE_CURRENCY_UNIT\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getAssetPrice\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"assets\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"getAssetsPrices\",\n \"outputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"getFallbackOracle\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const","export const ChainLinkAggregatorAbi = [\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"int256\",\n \"name\": \"current\",\n \"type\": \"int256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"roundId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"updatedAt\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"AnswerUpdated\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"roundId\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"startedBy\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"startedAt\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"NewRound\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferRequested\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"acceptOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"accessController\",\n \"outputs\": [\n {\n \"internalType\": \"contract AccessControllerInterface\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"aggregator\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_aggregator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"confirmAggregator\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"description\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_roundId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getAnswer\",\n \"outputs\": [\n {\n \"internalType\": \"int256\",\n \"name\": \"\",\n \"type\": \"int256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint80\",\n \"name\": \"_roundId\",\n \"type\": \"uint80\"\n }\n ],\n \"name\": \"getRoundData\",\n \"outputs\": [\n {\n \"internalType\": \"uint80\",\n \"name\": \"roundId\",\n \"type\": \"uint80\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"answer\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"startedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"updatedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint80\",\n \"name\": \"answeredInRound\",\n \"type\": \"uint80\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"_roundId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"getTimestamp\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"latestAnswer\",\n \"outputs\": [\n {\n \"internalType\": \"int256\",\n \"name\": \"\",\n \"type\": \"int256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"latestRound\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"latestRoundData\",\n \"outputs\": [\n {\n \"internalType\": \"uint80\",\n \"name\": \"roundId\",\n \"type\": \"uint80\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"answer\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"startedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"updatedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint80\",\n \"name\": \"answeredInRound\",\n \"type\": \"uint80\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"latestTimestamp\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address payable\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"\",\n \"type\": \"uint16\"\n }\n ],\n \"name\": \"phaseAggregators\",\n \"outputs\": [\n {\n \"internalType\": \"contract AggregatorV2V3Interface\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"phaseId\",\n \"outputs\": [\n {\n \"internalType\": \"uint16\",\n \"name\": \"\",\n \"type\": \"uint16\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_aggregator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"proposeAggregator\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proposedAggregator\",\n \"outputs\": [\n {\n \"internalType\": \"contract AggregatorV2V3Interface\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint80\",\n \"name\": \"_roundId\",\n \"type\": \"uint80\"\n }\n ],\n \"name\": \"proposedGetRoundData\",\n \"outputs\": [\n {\n \"internalType\": \"uint80\",\n \"name\": \"roundId\",\n \"type\": \"uint80\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"answer\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"startedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"updatedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint80\",\n \"name\": \"answeredInRound\",\n \"type\": \"uint80\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proposedLatestRoundData\",\n \"outputs\": [\n {\n \"internalType\": \"uint80\",\n \"name\": \"roundId\",\n \"type\": \"uint80\"\n },\n {\n \"internalType\": \"int256\",\n \"name\": \"answer\",\n \"type\": \"int256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"startedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"updatedAt\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint80\",\n \"name\": \"answeredInRound\",\n \"type\": \"uint80\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_accessController\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"setController\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_to\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"version\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const","export const Api3OracleAbi = [\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"_api3ServerV1\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes32\",\n \"name\": \"_dapiNameHash\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [],\n \"name\": \"api3ServerV1\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"dapiNameHash\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"read\",\n \"outputs\": [\n {\n \"internalType\": \"int224\",\n \"name\": \"value\",\n \"type\": \"int224\"\n },\n {\n \"internalType\": \"uint32\",\n \"name\": \"timestamp\",\n \"type\": \"uint32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const","export const RWADynamicOracleAbi = [\n {\n \"inputs\": [],\n \"name\": \"getPrice\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"price\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n] as const","import { Chain } from \"@1delta/chain-registry\";\n\nexport const api3OracleAddresses: { [chainId: string]: { [asset: string]: string } } = {\n [Chain.MANTLE]: {\n [\"WETH\"]: '0x009E9B1eec955E9Fe7FE64f80aE868e661cb4729',\n [\"METH\"]: '0xF55faBDf4C4F19D48d12A94209c735ca5AC43c78',\n [\"CMETH\"]: '0x9B762Ccd8719Adb4c27B176A1817498Ed7946D06',\n [\"FBTC\"]: '0xd13684dC3f4E40AeA1b74eFbfeBDE5cB00574c8e',\n }\n}","import { Chain } from '@1delta/chain-registry'\n\nexport enum ChainlinkAggregatorIndexes {\n roundId = 0,\n answer,\n startedAt,\n updatedAt,\n answeredInRound,\n}\n\nexport const chainlinkOracles = {\n 'MIMATIC-USD': {\n [Chain.POLYGON_MAINNET]: '0xd8d483d813547cfb624b8dc33a00f2fcbcd2d428',\n },\n 'BTC-ETH': {\n [Chain.POLYGON_MAINNET]: '0x19b0F0833C78c0848109E3842D34d2fDF2cA69BA',\n },\n 'BTC-USD': {\n [Chain.POLYGON_MAINNET]: '0xc907E116054Ad103354f2D350FD2514433D57F6f',\n [Chain.ETHEREUM_MAINNET]: '0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x264990fbd0A4796A3E3d8E37C4d5F87a3aCa5Ebf',\n },\n 'DAI-USD': {\n [Chain.POLYGON_MAINNET]: '0x4746DeC9e833A82EC7C2C1356372CcF2cfcD2F3D',\n [Chain.ETHEREUM_MAINNET]: '0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x132d3C0B1D2cEa0BC552588063bdBb210FDeecfA',\n },\n 'ETH-USD': {\n [Chain.POLYGON_MAINNET]: '0xF9680D99D6C9589e2a93a78A04A279e509205945',\n [Chain.ETHEREUM_MAINNET]: '0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x9ef1B8c0E4F7dc8bF5719Ea496883DC6401d5b2e',\n },\n 'BNB-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE',\n },\n 'CAKE-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xB6064eD41d4f67e353768aA239cA86f4F73665a1',\n },\n 'DOGE-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x3AB0A0d137D4F946fBB19eecc6e92E64660231C8',\n },\n 'DOT-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xC333eb0086309a16aa7c8308DfD32c8BBA0a2592',\n },\n 'BUSD-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xcBb98864Ef56E9042e7d2efef76141f15731B82f',\n },\n 'BETH-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x2A3796273d47c4eD363b361D3AEFb7F7E2A13782',\n },\n 'FIL-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xE5dbFD9003bFf9dF5feB2f4F445Ca00fb121fb83',\n },\n 'LTC-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x74E72F37A8c415c8f1a98Ed42E78Ff997435791D',\n },\n 'SXP-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xE188A9875af525d25334d75F3327863B2b8cd0F1',\n },\n 'TRX-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xF4C5e535756D11994fCBB12Ba8adD0192D9b88be',\n },\n 'JPY-USD': {\n [Chain.POLYGON_MAINNET]: '0xD647a6fC9BC6402301583C91decC5989d8Bc382D',\n },\n 'LINK-USD': {\n [Chain.POLYGON_MAINNET]: '0xd9FFdb71EbE7496cC440152d43986Aae0AB76665',\n [Chain.ETHEREUM_MAINNET]: '0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xca236E327F629f9Fc2c30A4E95775EbF0B89fac8',\n },\n 'TUSD-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xa3334A9762090E827413A7495AfeCE76F41dFc06',\n },\n 'LINK-MATIC': {\n [Chain.POLYGON_MAINNET]: '0x5787BefDc0ECd210Dfa948264631CD53E68F7802',\n },\n 'MATIC-USD': {\n [Chain.POLYGON_MAINNET]: '0xAB594600376Ec9fD91F8e885dADF0CE036862dE0',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x7CA57b0cA6367191c94C8914d7Df09A57655905f',\n },\n 'MATICX-USD': {\n [Chain.POLYGON_MAINNET]: '0x5d37E4b374E6907de8Fc7fb33EE3b0af403C7403',\n },\n 'STMATIC-USD': {\n [Chain.POLYGON_MAINNET]: '0x97371dF4492605486e23Da797fA68e55Fc38a13f',\n },\n 'XVS-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xBF63F430A79D4036A5900C19818aFf1fa710f206',\n },\n 'USDC-USD': {\n [Chain.POLYGON_MAINNET]: '0xfE4A8cc5b5B2366C1B58Bea3858e81843581b2F7',\n [Chain.ETHEREUM_MAINNET]: '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x51597f405303C4377E36123cBc172b13269EA163',\n },\n 'USDT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x3E7d1eAB13ad0104d2750B8863b489D65364e32D',\n [Chain.POLYGON_MAINNET]: '0x0a6513e40db6eb1b165753ad52e80663aea50545',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xB97Ad0E74fa7d920791E90258A6E2085088b4320',\n },\n 'VAI-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x058316f8Bb13aCD442ee7A216C7b60CFB4Ea1B53',\n },\n 'XRP-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x93A67D414896A280bF8FFB3b389fE3686E014fda',\n },\n 'WIN-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x9e7377E194E41d63795907c92c3EB351a2eb0233',\n },\n 'EUR-USD': {\n [Chain.POLYGON_MAINNET]: '0x73366Fe0AA0Ded304479862808e02506FE556a98',\n },\n 'SAND-USD': {},\n 'USDT-USDC': {\n [Chain.POLYGON_MAINNET]: '0x0A6513e40db6EB1b165753AD52E80663aeA50545',\n },\n 'AAVE-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x547a514d5e3769680Ce22B2361c10Ea13619e8a9',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xA8357BF572460fC40f4B0aCacbB2a6A61c89f475',\n },\n 'ADA-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xa767f745331D267c7751297D982b050c93985627',\n },\n 'BCH-USD': {\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0x43d80f616DAf0b0B42a928EeD32147dC59027D41',\n },\n 'BAT-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x0d16d4528239e9ee52fa531af613AcdB23D88c94',\n },\n 'UNI-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x553303d460EE0afB37EdFf9bE42922D8FF63220e',\n [Chain.POLYGON_MAINNET]: '0xdf0Fb4e4F928d2dCB76f438575fDD8682386e13C',\n [Chain.BNB_SMART_CHAIN_MAINNET]:\n '0xb57f259E7C24e56a1dA00F66b55A5640d9f9E7e4',\n },\n 'YFI-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xA027702dbb89fbd58938e4324ac03B58d812b0E1',\n },\n 'USDP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x09023c0DA49Aaf8fc3fA3ADF34C6A7016D38D5e3',\n },\n 'ZRX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x2885d15b8Af22648b98B122b22FDF4D2a56c6023',\n },\n 'MKR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xec1D1B3b0443256cc3860e24a46F108e699484Aa',\n [Chain.POLYGON_MAINNET]: '0xa070427bF5bA5709f70e98b94Cb2F435a242C46C',\n },\n 'COMP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5',\n [Chain.POLYGON_MAINNET]: '0x2A8758b7257102461BC958279054e372C2b1bDE6',\n },\n 'WSTETH-ETH': {\n [Chain.POLYGON_MAINNET]: '0x10f964234cae09cB6a9854B56FF7D4F38Cda5E6a',\n },\n}\n\nexport const getChainLinkKeys = (chainId: string): string[] => {\n return Object.keys(chainlinkOracles).filter(\n // @ts-ignore\n (x) => chainlinkOracles[x][chainId] !== undefined,\n )\n}\n\nexport const chainlinkOraclesEthereum = {\n '1INCH-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xc929ad75B72593967DE83E7F7Cda0493458261D9',\n },\n 'AAPL-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x139C8512Cde1778e9b9a8e721ce1aEbd4dD43587',\n },\n 'AAVE-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x6Df09E975c830ECae5bd4eD9d90f3A95a4f88012',\n },\n 'AAVE-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x547a514d5e3769680Ce22B2361c10Ea13619e8a9',\n },\n 'ADA-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xAE48c91dF1fE419994FFDa27da09D5aC69c30f55',\n },\n 'ADX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x231e764B44b2C1b7Ca171fa8021A24ed520Cde10',\n },\n 'ALCX-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x194a9AaF2e0b67c35915cD01101585A33Fe25CAa',\n },\n 'ALCX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xc355e4C0B3ff4Ed0B49EaACD55FE29B311f42976',\n },\n 'ALPHA-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x89c7926c7c15fD5BFDB1edcFf7E7fC8283B578F6',\n },\n 'AMP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x8797ABc4641dE76342b8acE9C63e3301DC35e3d8',\n },\n 'AMPL-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x492575FDD11a0fCf2C6C719867890a7648d526eB',\n },\n 'AMZN-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x8994115d287207144236c13Be5E2bDbf6357D9Fd',\n },\n 'ANKR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x7eed379bf00005CfeD29feD4009669dE9Bcc21ce',\n },\n 'ANT-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x8f83670260F8f7708143b836a2a6F11eF0aBac01',\n },\n 'APE-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xc7de7f4d4C9c991fF62a07D18b3E31e349833A18',\n },\n 'APE-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xD10aBbC76679a20055E167BB80A24ac851b37056',\n },\n 'ARPA-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xc40ec815A2f8eb9912BD688d3bdE6B6D50A37ff2',\n },\n 'ATOM-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x15c8eA24Ba2d36671Fa22aD4Cff0a8eafe144352',\n },\n 'ATOM-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xDC4BDB458C6361093069Ca2aD30D74cc152EdC75',\n },\n 'AUD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x77F9710E7d0A19669A13c055F62cd80d313dF022',\n },\n 'AVAX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xFF3EEb22B5E3dE6e705b44749C2559d704923FD7',\n },\n 'AXS-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x8B4fC5b68cD50eAc1dD33f695901624a4a1A0A8b',\n },\n 'BADGER-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x58921Ac140522867bf50b9E009599Da0CA4A2379',\n },\n 'BADGER-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x66a47b7206130e6FF64854EF0E1EDfa237E65339',\n },\n 'BAL-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xC1438AA3823A6Ba0C159CfA8D98dF5A994bA120b',\n },\n 'BAL-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xdF2917806E30300537aEB49A7663062F4d1F2b5F',\n },\n 'BAND-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x0BDb051e10c9718d1C29efbad442E88D38958274',\n },\n 'BAND-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x919C77ACc7373D000b329c1276C76586ed2Dd19F',\n },\n 'BAT-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x0d16d4528239e9ee52fa531af613AcdB23D88c94',\n },\n 'BCH-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x9F0F69428F923D6c95B781F89E165C9b2df9789D',\n },\n 'BIT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x7b33EbfA52F215a30FaD5a71b3FeE57a4831f1F0',\n },\n 'BNB-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xc546d2d06144F9DD42815b8bA46Ee7B8FcAFa4a2',\n },\n 'BNB-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x14e613AC84a31f709eadbdF89C6CC390fDc9540A',\n },\n 'BNT-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xCf61d1841B178fe82C8895fe60c2EDDa08314416',\n },\n 'BNT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x1E6cF0D433de4FE882A437ABC654F58E1e78548c',\n },\n 'BOND-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xdd22A54e05410D8d1007c38b5c7A3eD74b855281',\n },\n 'BRL-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x971E8F1B779A5F1C36e1cd7ef44Ba1Cc2F5EeE0f',\n },\n 'BTC-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xdeb288F737066589598e9214E782fa5A8eD689e8',\n },\n 'BTC-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c',\n },\n 'BUSD-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x614715d2Af89E6EC99A233818275142cE88d1Cfd',\n },\n 'BUSD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x833D8Eb16D306ed1FbB5D7A2E019e106B960965A',\n },\n 'C98-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xE95CDc33E1F5BfE7eB26f45E29C6C9032B97db7F',\n },\n 'CAD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xa34317DB73e77d453b1B8d04550c44D10e981C8e',\n },\n 'CAKE-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xEb0adf5C06861d6c07174288ce4D0a8128164003',\n },\n 'CBETH-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xF017fcB346A1885194689bA23Eff2fE6fA5C483b',\n },\n 'CEL-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x75FbD83b4bd51dEe765b2a01e8D3aa1B020F9d33',\n },\n 'CELO-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x9ae96129ed8FE0C707D6eeBa7b90bB1e139e543e',\n },\n 'CHF-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x449d117117838fFA61263B61dA6301AA2a88B13A',\n },\n 'CNY-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xeF8A4aF35cd47424672E3C590aBD37FBB7A7759a',\n },\n 'COMP-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x1B39Ee86Ec5979ba5C322b826B3ECb8C79991699',\n },\n 'COMP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5',\n },\n 'CREAM-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x82597CFE6af8baad7c0d441AA82cbC3b51759607',\n },\n 'CRO-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x00Cb80Cf097D9aA9A3779ad8EE7cF98437eaE050',\n },\n 'CRV-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x8a12Be339B0cD1829b91Adc01977caa5E9ac121e',\n },\n 'CRV-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xCd627aA160A6fA45Eb793D19Ef54f5062F20f33f',\n },\n 'CSPR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x9e37a8Ee3bFa8eD6783Db031Dc458d200b226074',\n },\n 'CTSI-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x0a1d1b9847d602e789be38B802246161FFA24930',\n },\n 'CVX-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xC9CbF687f43176B302F03f5e58470b77D07c61c6',\n },\n 'CVX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xd962fC30A72A84cE50161031391756Bf2876Af5D',\n },\n 'DAI-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x773616E4d11A78F511299002da57A0a94577F1f4',\n },\n 'DAI-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9',\n },\n 'DASH-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xFb0cADFEa136E9E343cfb55B863a6Df8348ab912',\n },\n 'DODO-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x9613A51Ad59EE375e6D8fa12eeef0281f1448739',\n },\n 'DOGE-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x2465CefD3b488BE410b941b1d4b2767088e2A028',\n },\n 'DOT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x1C07AFb8E2B827c5A4739C6d59Ae3A5035f28734',\n },\n 'DYDX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x478909D4D798f3a1F11fFB25E4920C959B4aDe0b',\n },\n 'ENJ-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x24D9aB51950F3d62E9144fdC2f3135DAA6Ce8D1B',\n },\n 'ENJ-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x23905C55dC11D609D5d11Dc604905779545De9a7',\n },\n 'ENS-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x5C00128d4d1c2F4f652C267d7bcdD7aC99C16E16',\n },\n 'EOS-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x10a43289895eAff840E8d45995BBa89f9115ECEe',\n },\n 'ERN-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x0a87e12689374A4EF49729582B474a1013cceBf8',\n },\n 'ETC-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xaEA2808407B7319A31A383B6F8B60f04BCa23cE2',\n },\n 'ETH-BTC': {\n [Chain.ETHEREUM_MAINNET]: '0xAc559F25B1619171CbC396a50854A3240b6A4e99',\n },\n 'ETH-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419',\n },\n 'EUR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xb49f677943BC038e9857d61E7d053CaA2C1734C1',\n },\n 'EURT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x01D391A48f4F7339aC64CA2c83a07C22F95F587a',\n },\n 'FARM-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x611E0d2709416E002A3f38085e4e1cf77c015921',\n },\n 'FB-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xCe1051646393087e706288C1B57Fd26446657A7f',\n },\n 'FEI-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x7F0D2c2838c6AC24443d13e23d99490017bDe370',\n },\n 'FIL-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x0606Be69451B1C9861Ac6b3626b99093b713E801',\n },\n 'FLOW-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xD9BdD9f5ffa7d89c846A5E3231a093AE4b3469D2',\n },\n 'FOR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x456834f736094Fb0AAD40a9BBc9D4a0f37818A54',\n },\n 'FORTH-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x7D77Fd73E468baECe26852776BeaF073CDc55fA0',\n },\n 'FRAX-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x14d04Fff8D21bd62987a5cE9ce543d2F1edF5D3E',\n },\n 'FRAX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xB9E1E3A9feFf48998E45Fa90847ed4D467E8BcfD',\n },\n 'FTM-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x2DE7E4a9488488e0058B95854CC2f7955B35dC9b',\n },\n 'FXS-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x6Ebc52C8C1089be9eB3945C4350B68B8E4C2233f',\n },\n 'GBP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x5c0Ab2d9b5a7ed9f470386e82BB36A3613cDd4b5',\n },\n 'GLM-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x83441C3A10F4D05de6e0f2E849A850Ccf27E6fa7',\n },\n 'GNO-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xA614953dF476577E90dcf4e3428960e221EA4727',\n },\n 'GOOGL-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x36D39936BeA501755921beB5A382a88179070219',\n },\n 'GRT-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x17D054eCac33D91F7340645341eFB5DE9009F1C1',\n },\n 'GRT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x86cF33a451dE9dc61a2862FD94FF4ad4Bd65A5d2',\n },\n 'GTC-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x0e773A17a01E2c92F5d4c53435397E2bd48e215F',\n },\n 'GUSD-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x96d15851CBac05aEe4EFD9eA3a3DD9BDEeC9fC28',\n },\n 'GUSD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xa89f5d2365ce98B3cD68012b6f503ab1416245Fc',\n },\n 'HBAR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x38C5ae3ee324ee027D88c5117ee58d07c9b4699b',\n },\n 'HIGH-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xe2F95bC12FE8a3C35684Be7586C39fD7c0E5b403',\n },\n 'HT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xE1329B3f6513912CAf589659777b66011AEE5880',\n },\n 'ILV-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xf600984CCa37cd562E74E3EE514289e3613ce8E4',\n },\n 'IMX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xBAEbEFc1D023c0feCcc047Bff42E75F15Ff213E6',\n },\n 'INJ-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xaE2EbE3c4D20cE13cE47cbb49b6d7ee631Cd816e',\n },\n 'INR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x605D5c2fBCeDb217D7987FC0951B5753069bC360',\n },\n 'IOTX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x96c45535d235148Dc3ABA1E48A6E3cFB3510f4E2',\n },\n 'JPY-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xBcE206caE7f0ec07b545EddE332A47C2F75bbeb3',\n },\n 'KNC-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x656c0544eF4C98A6a98491833A89204Abb045d6b',\n },\n 'KNC-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xf8fF43E991A81e6eC886a3D281A2C6cC19aE70Fc',\n },\n 'KP3R-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xe7015CCb7E5F788B8c1010FC22343473EaaC3741',\n },\n 'KRW-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x01435677FB11763550905594A16B645847C1d0F3',\n },\n 'KSM-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x06E4164E24E72B879D93360D1B9fA05838A62EB5',\n },\n 'LDO-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x4e844125952D32AcdF339BE976c98E22F6F318dB',\n },\n 'LINK-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xDC530D9457755926550b59e8ECcdaE7624181557',\n },\n 'LINK-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c',\n },\n 'LON-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x13A8F2cC27ccC2761ca1b21d2F3E762445f201CE',\n },\n 'LRC-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x160AC928A16C93eD4895C2De6f81ECcE9a7eB7b4',\n },\n 'LTC-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x6AF09DF7563C363B5763b9102712EbeD3b9e859B',\n },\n 'LUSD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x3D7aE7E594f2f2091Ad8798313450130d0Aba3a0',\n },\n 'MANA-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x82A44D92D6c329826dc557c5E1Be6ebeC5D5FeB9',\n },\n 'MANA-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x56a4857acbcfe3a66965c251628B1c9f1c408C19',\n },\n 'MATIC-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x7bAC85A8a13A4BcD8abb3eB7d6b4d632c5a57676',\n },\n 'MIM-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x7A364e8770418566e3eb2001A96116E6138Eb32F',\n },\n 'MKR-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x24551a8Fb2A7211A25a17B1481f043A8a8adC7f2',\n },\n 'MKR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xec1D1B3b0443256cc3860e24a46F108e699484Aa',\n },\n 'MLN-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xDaeA8386611A157B08829ED4997A8A62B557014C',\n },\n 'MSFT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x021Fb44bfeafA0999C7b07C4791cf4B859C3b431',\n },\n 'NEAR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xC12A6d1D827e23318266Ef16Ba6F397F2F91dA9b',\n },\n 'NFLX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x67C2e69c5272B94AF3C90683a9947C39Dc605ddE',\n },\n 'NMR-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x9cB2A01A7E64992d32A34db7cEea4c919C391f6A',\n },\n 'NMR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xcC445B35b3636bC7cC7051f4769D8982ED0d449A',\n },\n 'NZD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x3977CFc9e4f29C184D4675f4EB8e0013236e5f3e',\n },\n 'OCEAN-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x9b0FC4bb9981e5333689d69BdBF66351B9861E62',\n },\n 'OGN-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x2c881B6f3f6B5ff6C975813F87A4dad0b241C15b',\n },\n 'OHMv2-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x9a72298ae3886221820B1c878d12D872087D3a23',\n },\n 'OM-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xb9583cfBdEeacd2705546F392E43F8E03eB92216',\n },\n 'OMG-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x57C9aB3e56EE4a83752c181f241120a3DBba06a1',\n },\n 'OMG-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x7D476f061F8212A8C9317D5784e72B4212436E93',\n },\n 'ONT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xcDa3708C5c2907FCca52BB3f9d3e4c2028b89319',\n },\n 'ORN-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xbA9B2a360eb8aBdb677d6d7f27E12De11AA052ef',\n },\n 'OXT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xd75AAaE4AF0c398ca13e2667Be57AF2ccA8B5de6',\n },\n 'PAXG-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x9B97304EA12EFed0FAd976FBeCAad46016bf269e',\n },\n 'PERP-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x3b41D5571468904D4e53b6a8d93A6BaC43f02dC9',\n },\n 'PERP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x01cE1210Fe8153500F60f7131d63239373D7E26C',\n },\n 'PHA-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x2B1248028fe48864c4f1c305E524e2e6702eAFDF',\n },\n 'RAI-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x4ad7B025127e89263242aB68F0f9c4E5C033B489',\n },\n 'REN-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x3147D7203354Dc06D9fd350c7a2437bcA92387a4',\n },\n 'REN-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x0f59666EDE214281e956cb3b2D0d69415AfF4A01',\n },\n 'REQ-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x2F05888D185970f178f40610306a0Cc305e52bBF',\n },\n 'RLC-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x4cba1e1fdc738D0fe8DB3ee07728E2Bc4DA676c6',\n },\n 'RUNE-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x875D60C44cfbC38BaA4Eb2dDB76A767dEB91b97e',\n },\n 'SAND-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x35E3f7E558C04cE7eEE1629258EcbbA03B36Ec56',\n },\n 'SGD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xe25277fF4bbF9081C75Ab0EB13B4A13a721f3E13',\n },\n 'SHIB-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x8dD1CD88F43aF196ae478e91b9F5E4Ac69A97C61',\n },\n 'SNX-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x79291A9d692Df95334B1a0B3B4AE6bC606782f8c',\n },\n 'SNX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699',\n },\n 'SOL-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x4ffC43a60e009B551865A93d232E33Fce9f01507',\n },\n 'SPELL-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x8c110B94C5f1d347fAcF5E1E938AB2db60E3c9a8',\n },\n 'SRM-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x050c048c9a0CD0e76f166E2539F87ef2acCEC58f',\n },\n 'STETH-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x86392dC19c0b719886221c78AB11eb8Cf5c52812',\n },\n 'SUSD-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x8e0b7e6062272B5eF4524250bFFF8e5Bd3497757',\n },\n 'SUSHI-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xe572CeF69f43c2E488b33924AF04BDacE19079cf',\n },\n 'SUSHI-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xCc70F09A6CC17553b2E31954cD36E4A2d89501f7',\n },\n 'SXP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xFb0CfD6c19e25DB4a08D8a204a387cEa48Cc138f',\n },\n 'TOMO-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x3d44925a8E9F9DFd90390E58e92Ec16c996A331b',\n },\n 'TRIBE-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x84a24deCA415Acc0c395872a9e6a63E27D6225c8',\n },\n 'TRU-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x26929b85fE284EeAB939831002e1928183a10fb1',\n },\n 'TRY-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xB09fC5fD3f11Cf9eb5E1C5Dba43114e3C9f477b5',\n },\n 'TSLA-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x1ceDaaB50936881B3e449e47e40A2cDAF5576A4a',\n },\n 'TUSD-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x3886BA987236181D98F2401c507Fb8BeA7871dF2',\n },\n 'TUSD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xec746eCF986E2927Abd291a2A1716c940100f8Ba',\n },\n 'UNI-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xD6aA3D25116d8dA79Ea0246c4826EB951872e02e',\n },\n 'UNI-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x553303d460EE0afB37EdFf9bE42922D8FF63220e',\n },\n 'USDC-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x986b5E1e1755e3C2440e960477f25201B0a8bbD4',\n },\n 'USDC-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6',\n },\n 'USDK-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xfAC81Ea9Dd29D8E9b212acd6edBEb6dE38Cb43Af',\n },\n 'USDN-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x7a8544894F7FD0C69cFcBE2b4b2E277B0b9a4355',\n },\n 'USDP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x09023c0DA49Aaf8fc3fA3ADF34C6A7016D38D5e3',\n },\n 'USDT-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46',\n },\n 'USDT-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x3E7d1eAB13ad0104d2750B8863b489D65364e32D',\n },\n 'WBTC-BTC': {\n [Chain.ETHEREUM_MAINNET]: '0xfdFD9C85aD200c506Cf9e21F1FD8dd01932FBB23',\n },\n 'WING-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x134fE0a225Fb8e6683617C13cEB6B3319fB4fb82',\n },\n 'WNXM-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xe5Dc0A609Ab8bCF15d3f35cFaa1Ff40f521173Ea',\n },\n 'WTI-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xf3584F4dd3b467e73C2339EfD008665a70A4185c',\n },\n 'XAG-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x379589227b15F1a12195D3f2d90bBc9F31f95235',\n },\n 'XAU-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6',\n },\n 'XCN-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xeb988B77b94C186053282BfcD8B7ED55142D3cAB',\n },\n 'XMR-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xFA66458Cce7Dd15D8650015c4fce4D278271618F',\n },\n 'XRP-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xCed2660c6Dd1Ffd856A5A82C67f3482d88C50b12',\n },\n 'YFI-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x7c5d4F8345e66f68099581Db340cd65B078C41f4',\n },\n 'YFI-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xA027702dbb89fbd58938e4324ac03B58d812b0E1',\n },\n 'YFII-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0xaaB2f6b45B28E962B3aCd1ee4fC88aEdDf557756',\n },\n 'ZRX-ETH': {\n [Chain.ETHEREUM_MAINNET]: '0x2Da4983a622a8498bb1a21FaE9D8F6C664939962',\n },\n 'ZRX-USD': {\n [Chain.ETHEREUM_MAINNET]: '0x2885d15b8Af22648b98B122b22FDF4D2a56c6023',\n },\n 'sUSD-USD': {\n [Chain.ETHEREUM_MAINNET]: '0xad35Bd71b9aFE6e4bDc266B345c198eaDEf9Ad94',\n },\n}\n","export const ProxyOracleAbi = [\n {\n inputs: [],\n name: 'price',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n] as const\n","export const UniswapV3Abi = [\n {\n inputs: [],\n name: 'protocolFees',\n outputs: [\n {\n internalType: 'uint128',\n name: 'token0',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'token1',\n type: 'uint128',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'slot0',\n outputs: [\n {\n internalType: 'uint160',\n name: 'sqrtPriceX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint16',\n name: 'observationIndex',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'observationCardinality',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'observationCardinalityNext',\n type: 'uint16',\n },\n {\n internalType: 'uint8',\n name: 'feeProtocol',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'unlocked',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n] as const\n","import { AaveOracleAbi } from '../../abis/oracle/AaveOracle'\nimport { UniswapV2PairAbi } from '../../abis/oracle/UniswapV2Pair'\nimport { ChainLinkAggregatorAbi } from '../../abis/oracle/ChainLinkAggregator'\nimport { Api3OracleAbi } from '../../abis/oracle/Api3Oracle'\nimport { RWADynamicOracleAbi } from '../../abis/oracle/RWADynamicOracle'\n\nimport { api3OracleAddresses } from './addresses/api3'\nimport { AAVE_V2_LENDERS, Lender } from '@1delta/lender-registry'\nimport { Chain } from '@1delta/chain-registry'\nimport { formatUnits } from 'viem'\nimport { getAaveAssets } from '../../assets'\nimport {\n chainlinkOracles,\n getChainLinkKeys,\n ChainlinkAggregatorIndexes,\n} from './addresses/chainlink'\nimport { fetchDefillamaData } from '../defillama'\nimport { fetchPendlePrices } from '../pendle'\nimport { getAavesForChain } from '../../utils'\nimport {\n formatAavePrice,\n formatMorphoPrice,\n parseRawAmount,\n} from '../../utils/parsing'\nimport { ProxyOracleAbi } from '../../abis/oracle/ProxyOracle'\nimport { multicallRetry } from '@1delta/providers'\nimport { TokenList } from '../../types'\nimport { UniswapV3Abi } from '../../abis/oracle/UniV3'\nimport { aaveOracles, morphoOracles } from '@1delta/data-sdk'\nimport { CometAbi } from '../../abis/compound-v3/Comet'\n\nconst LENDLE_PAIR_MANTLE = '0x4c57BE599d0e0414785943569E9B6A66dA79Aa6b'\nconst AU_PAIR_MANTLE = '0x709503fbb50b10f921e812c48fbd5c5522a0b20c'\nconst WMNT_USDT_PAIR = '0x3e5922cd0cec71dc2d60ec8b36aa4c05b7c1672f'\nconst RWA_DYNAMIC_ORACLE = '0xA96abbe61AfEdEB0D14a20440Ae7100D9aB4882f'\n\ninterface OracleData {\n [key: string]: number\n}\n\ntype QueryAave = { oracle: string; assets: string[]; fork: string }\n\n/**\n * Fetches Aave and uniswap V2 oracle data\n */\nexport const fetchMainPrices = async (\n chainIds: string[],\n rpcOverrides?: { [chainId: string]: string },\n lists: { [chainId: string]: { list: TokenList } } = {},\n): Promise<OracleData> => {\n const aaves = getAavesForChain()\n const multicallPromises = chainIds.map(async (chainId) => {\n let aaveForks = aaves?.[chainId]\n if (chainId === Chain.KAIA_MAINNET)\n // bugged\n aaveForks = aaveForks?.filter((a) => a !== Lender.KLAYBANK)\n if (chainId === Chain.GNOSIS)\n // shutdown\n aaveForks = aaveForks?.filter((a) => a !== Lender.AGAVE)\n if (chainId === Chain.ETHEREUM_MAINNET)\n // invalid values\n aaveForks = aaveForks?.filter(\n (a) => a !== Lender.ZEROLEND_STABLECOINS_RWA,\n )\n\n const reservesToQuery =\n aaveForks?.map((a) => ({\n fork: a,\n assets: getAaveAssets(chainId, a),\n })) ?? []\n\n const handled: Set<string> = new Set()\n const queries: QueryAave[] = []\n\n for (const e of reservesToQuery) {\n const newAssets = e.assets.filter((a) => !handled.has(a))\n if (newAssets.length > 0) {\n queries.push({\n assets: newAssets,\n // @ts-ignore\n oracle: aaveOracles()?.[e.fork]?.[chainId],\n fork: e.fork,\n })\n newAssets.forEach((a) => handled.add(a))\n }\n }\n\n const morphoOraclesObtained = morphoOracles()\n const morphoQueries = (morphoOraclesObtained[chainId] ?? []).filter(\n (a) => !handled.has(a.collateralAsset) || !handled.has(a.loanAsset),\n )\n\n const morphoCalls = getMorphoCalls(morphoQueries)\n const aaveCalls = getAaveCalls(queries)\n const [chainlinkCalls, chainlinkNames] = getChainLinkCalls(chainId)\n const uniswapCalls = getUniswapV2Calls(chainId)\n const uniswapV3Calls = getUniswapV3Calls(chainId)\n const [api3Calls, api3Names] = getApi3Calls(chainId)\n const [rwaCalls, rwaNames] = getRWADynamicOracleCalls(chainId)\n const [cometCalls, cometNames] = getCometCalls(chainId)\n\n const allCalls = [\n ...chainlinkCalls,\n ...aaveCalls,\n ...uniswapCalls,\n ...uniswapV3Calls,\n ...api3Calls,\n ...rwaCalls,\n ...cometCalls,\n ...morphoCalls,\n ]\n\n const abis = [\n ...ChainLinkAggregatorAbi,\n ...UniswapV2PairAbi,\n ...UniswapV3Abi,\n ...AaveOracleAbi,\n ...Api3OracleAbi,\n ...RWADynamicOracleAbi,\n ...ProxyOracleAbi,\n ...CometAbi,\n ]\n\n const result = await multicallRetry(\n chainId,\n allCalls,\n abis,\n undefined,\n 3,\n 0,\n false,\n rpcOverrides,\n )\n\n return {\n chainId,\n result,\n meta: {\n queries,\n chainlink: { calls: chainlinkCalls, names: chainlinkNames },\n api3: { calls: api3Calls, names: api3Names },\n rwa: { calls: rwaCalls, names: rwaNames },\n comet: { calls: cometCalls, names: cometNames },\n morpho: { queries: morphoQueries },\n uniswapCalls,\n uniswapV3Calls,\n aaveCalls,\n },\n }\n })\n\n const otherDataPromises = [fetchDefillamaData(), fetchPendlePrices(lists)]\n const [chainResults, ...otherResults] = await Promise.all([\n Promise.all(multicallPromises),\n ...otherDataPromises,\n ])\n\n let allPrices: OracleData = {}\n\n // Parse all except morpho first\n for (const {\n chainId,\n result,\n meta: {\n queries,\n chainlink,\n api3,\n rwa,\n uniswapCalls,\n uniswapV3Calls,\n comet,\n aaveCalls,\n },\n } of chainResults) {\n let offset = 0\n\n const chainlinkSlice = result.slice(offset, offset + chainlink.calls.length)\n const chainlinkData = parseChainLinkResults(\n chainId,\n chainlinkSlice,\n chainlink.names,\n )\n offset += chainlink.calls.length\n\n const aaveSlice = result.slice(offset, offset + aaveCalls.length)\n const aaveData = parseAaveResults(\n chainId,\n aaveSlice,\n queries,\n lists[chainId]?.list,\n )\n offset += aaveCalls.length\n\n const uniswapSlice = result.slice(offset, offset + uniswapCalls.length)\n const uniswapData = parseUniswapV2results(uniswapSlice, chainId)\n offset += uniswapCalls.length\n\n const uniswapV3Slice = result.slice(offset, offset + uniswapV3Calls.length)\n const uniswapV3Data = parseUniswapV3results(uniswapV3Slice, chainId)\n offset += uniswapV3Calls.length\n\n const api3Slice = result.slice(offset, offset + api3.calls.length)\n const api3Data = parseApi3Results(chainId, api3Slice, api3.names)\n offset += api3.calls.length\n\n const rwaSlice = result.slice(offset, offset + rwa.calls.length)\n const rwaData = parseRWADynamicOracleResults(chainId, rwaSlice, rwa.names)\n offset += rwa.calls.length\n\n const cometSlice = result.slice(offset, offset + comet.calls.length)\n const cometData = parseCometResults(chainId, cometSlice, comet.names)\n offset += comet.calls.length\n\n allPrices = {\n ...allPrices,\n ...chainlinkData,\n ...aaveData,\n ...uniswapData,\n ...uniswapV3Data,\n ...api3Data,\n ...rwaData,\n ...cometData,\n }\n }\n allPrices = { ...otherResults[0], ...allPrices, ...otherResults[1] }\n // Parse morpho data (needs allPrices)\n for (const {\n chainId,\n result,\n meta: {\n morpho,\n chainlink,\n aaveCalls,\n uniswapCalls,\n uniswapV3Calls,\n api3,\n rwa,\n comet,\n },\n } of chainResults) {\n const morphoOffset =\n chainlink.calls.length +\n aaveCalls.length +\n uniswapCalls.length +\n uniswapV3Calls.length +\n api3.calls.length +\n comet.calls.length +\n rwa.calls.length\n const morphoResult = result.slice(morphoOffset)\n\n const morphoData = parseMorphoResults(\n chainId,\n morphoResult,\n morpho.queries,\n allPrices,\n lists[chainId]?.list,\n )\n\n allPrices = {\n ...allPrices,\n ...morphoData,\n }\n }\n\n // Merge with defillama + pendle prices\n for (const r of otherResults) {\n allPrices = { ...allPrices, ...r }\n }\n\n return allPrices\n}\n\n/**\n * Gets the calls foir the uniswap pools\n * @param chainId network id\n * @returns array of calls\n */\nconst getUniswapV2Calls = (chainId: string) => {\n switch (chainId) {\n case Chain.MANTLE:\n return [\n {\n address: WMNT_USDT_PAIR,\n name: 'getReserves',\n params: [],\n },\n {\n address: LENDLE_PAIR_MANTLE,\n name: 'getReserves',\n params: [],\n },\n {\n address: AU_PAIR_MANTLE,\n name: 'getReserves',\n params: [],\n },\n ]\n default:\n return []\n }\n}\n\n/**\n * Gets the calls foir the uniswap pools\n * @param chainId network id\n * @returns array of calls\n */\nconst getCometCalls = (\n chainId: string,\n): [\n {\n address: string\n name: string\n params: any[]\n }[],\n string[],\n] => {\n switch (chainId) {\n case Chain.ETHEREUM_MAINNET: {\n const names = [\n 'Staked FRAX::SFRAX', //\n 'Elixir deUSD::DEUSD',\n 'Elixir Staked deUSD::SDEUSD',\n ]\n return [\n [\n {\n address: '0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840', // usdt comet\n name: 'getPrice',\n params: [\n '0x8C74B2811D2F1aD65517ADB5C65773c1E520ed2f', // sfrax\n ],\n },\n {\n address: '0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840',\n name: 'getPrice',\n params: [\n '0x471a6299C027Bd81ed4D66069dc510Bd0569f4F8', // deusd\n ],\n },\n {\n address: '0x3Afdc9BCA9213A35503b077a6072F3D0d5AB0840',\n name: 'getPrice',\n params: [\n '0xE4829421ae79f2F44716cCbbb40751cd6Be3d483', // sdeusd\n ],\n },\n ],\n names,\n ]\n }\n default:\n return [[], []]\n }\n}\n\nconst parseCometResults = (chainId: string, data: any[], names: string[]) => {\n switch (chainId) {\n case Chain.ETHEREUM_MAINNET: {\n const targetDecimals = [8, 8, 8]\n return Object.assign(\n {},\n ...data.map((entry, index) => {\n return {\n [names[index]]: Number(\n parseRawAmount(entry ?? '0', targetDecimals[index]),\n ),\n }\n }),\n )\n }\n default: {\n return {}\n }\n }\n}\n\n/**\n * Gets the calls foir the uniswap pools\n * @param chainId network id\n * @returns array of calls\n */\nconst getUniswapV3Calls = (chainId: string) => {\n switch (chainId) {\n case Chain.HEMI_NETWORK:\n return [\n {\n // HMEU/USDC pool\n address: '0xe2f1012fa5e8709ed38888c15615207fac278b57',\n name: 'slot0',\n params: [],\n },\n ]\n default:\n return []\n }\n}\n\nconst BASE_MULTI = 10n ** 18n\n\nexport function getV3PriceFromSqrt(\n sqrtPrice: bigint,\n t0d: number,\n t1d: number,\n) {\n const scalarNumerator = 10n ** BigInt(t0d)\n const scalarDenominator = 10n ** BigInt(t1d)\n const sqrtP = BigInt(sqrtPrice)\n const inputNumerator = sqrtP * sqrtP\n const inputDenominator = 2n ** 192n\n const adjustedForDecimalsNumerator = scalarDenominator * inputDenominator\n const adjustedForDecimalsDenominator = scalarNumerator * inputNumerator\n const price0to1 = Number(\n formatUnits(\n (adjustedForDecimalsDenominator * BASE_MULTI) /\n adjustedForDecimalsNumerator,\n 18, // normalize amount to 18\n ),\n ) // in token1 / token0\n return price0to1\n}\n\nconst parseUniswapV3results = (data: any[], chainId: string) => {\n switch (chainId) {\n case Chain.HEMI_NETWORK: {\n let uniswapData: any = {}\n if (data.length > 0) {\n const state = data[0]\n const [sqrtPriceX96, , , , , ,] = state\n const price = getV3PriceFromSqrt(sqrtPriceX96, 18, 6)\n uniswapData['Hemi::HEMI'] = price\n }\n return uniswapData\n }\n default:\n return {}\n }\n}\n\n/**\n * Create calldata for aave oracles\n * @param chainId network\n * @param addressesAaveUnderlyings address array\n * @returns call data\n */\nconst getAaveCalls = (query: QueryAave[]) => {\n if (query.length === 0) return []\n return query\n .map(({ oracle, assets }) => ({\n address: oracle,\n name: 'getAssetsPrices',\n params: [assets],\n }))\n .flat()\n}\n\n/**\n * Create calldata for aave oracles\n * @param chainId network\n * @param addressesAaveUnderlyings address array\n * @returns call data\n */\nconst getMorphoCalls = (query: any[] = []) => {\n if (query.length === 0) return []\n return query.map(({ oracle }) => ({\n address: oracle,\n name: 'price',\n params: [],\n }))\n}\n\n/**\n * Create calldata for chainLink oracles\n * @param chainId network\n * @param addressesAaveUnderlyings address array\n * @returns call data\n */\nconst getChainLinkCalls = (\n chainId: string,\n): [\n {\n address: string\n name: string\n params: any[]\n }[],\n string[],\n] => {\n switch (chainId) {\n case Chain.MANTLE:\n return [[], []]\n default: {\n const keys = getChainLinkKeys(chainId).filter(\n (k) => k.split('-')[1] === 'USD',\n )\n // @ts-ignore\n const addresses = keys.map((k) => chainlinkOracles[k][chainId])\n return [\n addresses.map((tk) => {\n return {\n address: tk,\n name: 'latestRoundData',\n params: [],\n }\n }),\n keys.map((k) => k.split('-')[0]),\n ]\n }\n }\n}\n\n/**\n * Processes data creeated from fetch through 'getUniswapV2Calls\n * @param data the result data array slice from the multicall\n * @param chainId network id\n * @returns price dictionary asset->number\n */\nconst parseUniswapV2results = (data: any[], chainId: string) => {\n switch (chainId) {\n case Chain.MANTLE: {\n let uniswapData: any = {}\n if (data.length > 0) {\n const reserves = data[1]\n // lendle and wmnt are respective token0s\n const lendleReserve = Number(parseRawAmount(reserves[0].toString(), 18))\n const wmntReserve = Number(parseRawAmount(reserves[1].toString(), 18))\n\n const auReserves = data[2]\n const auReserve = Number(parseRawAmount(auReserves[1].toString(), 18))\n const wmntReserve_au = Number(\n parseRawAmount(auReserves[0].toString(), 18),\n )\n\n const reservesWmntUsdt = data[0]\n const usdtReserve = Number(\n parseRawAmount(reservesWmntUsdt[0].toString(), 6),\n )\n const wmnt2Reserve = Number(\n parseRawAmount(reservesWmntUsdt[1].toString(), 18),\n )\n const lendPrice =\n (wmntReserve / lendleReserve / wmnt2Reserve) * usdtReserve\n const auPrice =\n (wmntReserve_au / auReserve / wmnt2Reserve) * usdtReserve\n uniswapData['LEND'] = lendPrice\n uniswapData['AU'] = auPrice\n }\n return uniswapData\n }\n default:\n return {}\n }\n}\n\nfunction getExponentForOracle(chainId: string, fork: string) {\n // some chains only have high decimal oracles\n if (chainId === Chain.AVALANCHE_C_CHAIN || chainId === Chain.MODE) {\n return 10n\n }\n if (chainId === Chain.XDC_NETWORK) return 0n\n if (chainId === Chain.TELOS_EVM_MAINNET) return 10n\n if (chainId === Chain.SONIC_MAINNET && fork === Lender.POLTER) return 10n\n // otherwise, it depends on whether it is aave V3\n return AAVE_V2_LENDERS.includes(fork as any) ? 0n : 10n\n}\n\n/**\n * Parser for aave results in ulticall slice\n * @param chainId network\n * @param data result array slice\n * @param assetName asset names (aligned with the originall addresses called)\n * @returns price mapping asset->number\n */\nconst parseAaveResults = (\n chainId: string,\n data: any[],\n queries: QueryAave[],\n list: TokenList = {},\n) => {\n let prices: any = {}\n\n data.forEach((d, i) => {\n if (d !== '0x') {\n const details = queries[i]\n details.assets.forEach((a, j) => {\n const oracleId = list[a]?.assetGroup ?? chainId + '-' + a\n prices[oracleId] = formatAavePrice(\n d[j].toString(),\n getExponentForOracle(chainId, details.fork as any),\n )\n })\n }\n })\n\n return prices\n}\n\nconst parseMorphoResults = (\n chainId: string,\n data: any[],\n queries: any[],\n donePrices: any = {},\n list: TokenList = {},\n) => {\n let prices: any = {}\n data.forEach((d, i) => {\n const details = queries[i]\n const loanAsset = details?.loanAsset\n const collateralAsset = details?.collateralAsset\n const loanAssetDecimals = details?.loanAssetDecimals\n const collateralAssetDecimals = details?.collateralAssetDecimals\n\n const oracleId = list[loanAsset]?.assetGroup ?? chainId + '-' + loanAsset\n // get price from map or just computed ones\n const debtPrice = donePrices[oracleId] ?? prices[oracleId]\n const oracleIdCollateral =\n list[collateralAsset]?.assetGroup ?? chainId + '-' + collateralAsset\n // get price from map or just computed ones\n const collateralPrice =\n donePrices[oracleIdCollateral] ?? prices[oracleIdCollateral]\n const priceDebtToCollateral = formatMorphoPrice(\n d.toString(),\n loanAssetDecimals,\n collateralAssetDecimals,\n )\n\n if (debtPrice) {\n if (!prices[oracleIdCollateral] && !donePrices[oracleIdCollateral]) {\n prices[oracleIdCollateral] = priceDebtToCollateral * debtPrice\n }\n } else {\n if (collateralPrice) {\n if (!prices[oracleId] && !donePrices[oracleId]) {\n prices[oracleId] = collateralPrice / priceDebtToCollateral\n }\n }\n }\n })\n return prices\n}\n\n/**\n * Parser for aave results in ulticall slice\n * @param chainId network\n * @param data result array slice\n * @param assetName asset names (aligned with the originall addresses called)\n * @returns price mapping asset->number\n */\nconst parseChainLinkResults = (\n chainId: string,\n data: any[],\n assetName: string[],\n) => {\n switch (chainId) {\n default: {\n return Object.assign(\n {},\n ...data.map((entry, index) => {\n return {\n [assetName[index]]: Number(\n parseRawAmount(\n entry?.[ChainlinkAggregatorIndexes.answer]?.toString() ?? '0',\n 8,\n ),\n ),\n }\n }),\n )\n }\n }\n}\n\n/**\n * Create calldata for api3 oracles\n * @param chainId network\n * @returns call data\n */\nconst getApi3Calls = (\n chainId: string,\n): [\n {\n address: string\n name: string\n params: any[]\n }[],\n string[],\n] => {\n switch (chainId) {\n case Chain.MANTLE: {\n const keys = ['WETH', 'METH', 'FBTC', 'CMETH']\n const addresses = keys.map((k) => api3OracleAddresses[chainId][k])\n return [\n addresses.map((tk) => {\n return {\n address: tk,\n name: 'read',\n params: [],\n }\n }),\n keys,\n ]\n }\n default:\n return [[], []]\n }\n}\n\n/**\n * Parser for api3 results in multicall slice\n * @param chainId network\n * @param data result array slice\n * @param assetName asset names (aligned with the originall addresses called)\n * @returns price mapping asset->number\n */\nconst parseApi3Results = (\n chainId: string,\n data: any[],\n assetName: string[],\n) => {\n switch (chainId) {\n case Chain.MANTLE: {\n let prices = Object.assign(\n {},\n ...data.map((entry, index) => {\n return {\n [assetName[index]]: Number(\n parseRawAmount(entry?.[0]?.toString() ?? '0', 18),\n ),\n }\n }),\n )\n // METH is given in mETH/WETH\n prices['METH'] = prices['METH'] * prices['WETH']\n prices['CMETH'] = prices['CMETH'] * prices['METH']\n return prices\n }\n default: {\n return {}\n }\n }\n}\n\n/**\n * Create calldata for RWADynamicOracle (wrap rate for musd/usdy)\n * @param chainId network\n * @returns call data\n */\nconst getRWADynamicOracleCalls = (\n chainId: string,\n): [\n {\n address: string\n name: string\n params: any[]\n }[],\n string[],\n] => {\n switch (chainId) {\n case Chain.MANTLE: {\n const keys = ['USDY_MUSD']\n return [\n [\n {\n address: RWA_DYNAMIC_ORACLE,\n name: 'getPrice',\n params: [],\n },\n ],\n keys,\n ]\n }\n default:\n return [[], []]\n }\n}\n\n/**\n * Parser for RWADynamicOracle (wrap rate for musd/usdy) results in multicall slice\n * @param chainId network\n * @param data result array slice\n * @param assetName asset names (aligned with the originall addresses called)\n * @returns price mapping asset->number\n */\nconst parseRWADynamicOracleResults = (\n chainId: string,\n data: any[],\n assetName: string[],\n) => {\n switch (chainId) {\n case Chain.MANTLE: {\n let prices = Object.assign(\n {},\n ...data.map((entry, index) => {\n return {\n [assetName[index]]: Number(\n parseRawAmount(entry?.toString() ?? '0', 18),\n ),\n }\n }),\n )\n return prices\n }\n default: {\n return {}\n }\n }\n}\n","import './chunk-LZE4VNTI.mjs';\nimport './chunk-KVV7WODB.mjs';\nimport './chunk-XGB3TDIC.mjs';\nimport { Chain } from '@1delta/chain-registry';\nimport { Lender } from '@1delta/lender-registry';\n\n// src/enums/dexProtocols.ts\nvar DexProtocol = /* @__PURE__ */ ((DexProtocol2) => {\n DexProtocol2[\"BALANCER_V3\"] = \"BALANCER_V3\";\n DexProtocol2[\"UNISWAP_V4\"] = \"UNISWAP_V4\";\n DexProtocol2[\"UNISWAP_V2\"] = \"UNISWAP_V2\";\n DexProtocol2[\"PANCAKESWAP_V2\"] = \"PANCAKESWAP_V2\";\n DexProtocol2[\"BISWAP_V2\"] = \"BISWAP_V2\";\n DexProtocol2[\"UBESWAP_V2\"] = \"UBESWAP_V2\";\n DexProtocol2[\"FUSIONX_V2\"] = \"FUSIONX_V2\";\n DexProtocol2[\"SUSHISWAP_V2\"] = \"SUSHISWAP_V2\";\n DexProtocol2[\"METROPOLIS_V2\"] = \"METROPOLIS_V2\";\n DexProtocol2[\"QUICKSWAP_V2\"] = \"QUICKSWAP_V2\";\n DexProtocol2[\"SQUADSWAP_V2\"] = \"SQUADSWAP_V2\";\n DexProtocol2[\"DFYN\"] = \"DFYN\";\n DexProtocol2[\"BUTTER\"] = \"BUTTER\";\n DexProtocol2[\"MERCHANT_MOE\"] = \"MERCHANT_MOE\";\n DexProtocol2[\"TRADER_JOE_V1\"] = \"TRADER_JOE_V1\";\n DexProtocol2[\"POLYCAT\"] = \"POLYCAT\";\n DexProtocol2[\"APESWAP\"] = \"APESWAP\";\n DexProtocol2[\"WAULTSWAP\"] = \"WAULTSWAP\";\n DexProtocol2[\"COMETH\"] = \"COMETH\";\n DexProtocol2[\"TROPICAL_SWAP\"] = \"TROPICAL_SWAP\";\n DexProtocol2[\"MANTLESWAP\"] = \"MANTLESWAP\";\n DexProtocol2[\"DTX_V1\"] = \"DTX_V1\";\n DexProtocol2[\"TAIKOSWAP\"] = \"TAIKOSWAP\";\n DexProtocol2[\"PASS\"] = \"PASS\";\n DexProtocol2[\"NETSWAP\"] = \"NETSWAP\";\n DexProtocol2[\"HERCULES_V2\"] = \"HERCULES_V2\";\n DexProtocol2[\"HERMES\"] = \"HERMES\";\n DexProtocol2[\"SPACEFI\"] = \"SPACEFI\";\n DexProtocol2[\"ZKSWAP_V2\"] = \"ZKSWAP_V2\";\n DexProtocol2[\"SWAPR_V1\"] = \"SWAPR_V1\";\n DexProtocol2[\"HONEYSWAP\"] = \"HONEYSWAP\";\n DexProtocol2[\"AXION_V2\"] = \"AXION_V2\";\n DexProtocol2[\"HYPERSWAP_V2\"] = \"HYPERSWAP_V2\";\n DexProtocol2[\"DRAGONSWAP_V2\"] = \"DRAGONSWAP_V2\";\n DexProtocol2[\"KYO_V2\"] = \"KYO_V2\";\n DexProtocol2[\"ARCHERSWAP\"] = \"ARCHERSWAP\";\n DexProtocol2[\"SHADOW_CORE\"] = \"SHADOW_CORE\";\n DexProtocol2[\"PULSX_V1\"] = \"PULSX_V1\";\n DexProtocol2[\"FATHOM\"] = \"FATHOM\";\n DexProtocol2[\"STELLASWAP_V2\"] = \"STELLASWAP_V2\";\n DexProtocol2[\"ZENLINK\"] = \"ZENLINK\";\n DexProtocol2[\"SOLARFLARE\"] = \"SOLARFLARE\";\n DexProtocol2[\"PADSWAP\"] = \"PADSWAP\";\n DexProtocol2[\"CONVERGENCE\"] = \"CONVERGENCE\";\n DexProtocol2[\"DODO_V1\"] = \"DODO_V1\";\n DexProtocol2[\"DODO_V2\"] = \"DODO_V2\";\n DexProtocol2[\"WOO_FI\"] = \"WOO_FI\";\n DexProtocol2[\"PANCAKE_STABLE\"] = \"PANCAKE_STABLE\";\n DexProtocol2[\"FUSIONX_STABLE\"] = \"FUSIONX_STABLE\";\n DexProtocol2[\"VELOCIMETER_VOLATILE\"] = \"VELOCIMETER_VOLATILE\";\n DexProtocol2[\"VELOCIMETER_STABLE\"] = \"VELOCIMETER_STABLE\";\n DexProtocol2[\"CLEOPATRA_V1_VOLATILE\"] = \"CLEOPATRA_V1_VOLATILE\";\n DexProtocol2[\"CLEOPATRA_V1_STABLE\"] = \"CLEOPATRA_V1_STABLE\";\n DexProtocol2[\"PHARAOH_V1_VOLATILE\"] = \"PHARAOH_V1_VOLATILE\";\n DexProtocol2[\"PHARAOH_V1_STABLE\"] = \"PHARAOH_V1_STABLE\";\n DexProtocol2[\"NILE_VOLATILE\"] = \"NILE_VOLATILE\";\n DexProtocol2[\"NILE_STABLE\"] = \"NILE_STABLE\";\n DexProtocol2[\"LYNEX_V1_VOLATILE\"] = \"LYNEX_V1_VOLATILE\";\n DexProtocol2[\"LYNEX_V1_STABLE\"] = \"LYNEX_V1_STABLE\";\n DexProtocol2[\"STRATUM_VOLATILE\"] = \"STRATUM_VOLATILE\";\n DexProtocol2[\"STRATUM_STABLE\"] = \"STRATUM_STABLE\";\n DexProtocol2[\"DYSTOPIA_VOLATILE\"] = \"DYSTOPIA_VOLATILE\";\n DexProtocol2[\"DYSTOPIA_STABLE\"] = \"DYSTOPIA_STABLE\";\n DexProtocol2[\"KODO_VOLATILE\"] = \"KODO_VOLATILE\";\n DexProtocol2[\"KODO_STABLE\"] = \"KODO_STABLE\";\n DexProtocol2[\"CRUST_V1_VOLATILE\"] = \"CRUST_V1_VOLATILE\";\n DexProtocol2[\"CRUST_V1_STABLE\"] = \"CRUST_V1_STABLE\";\n DexProtocol2[\"RAMSES_V1_VOLATILE\"] = \"RAMSES_V1_VOLATILE\";\n DexProtocol2[\"RAMSES_V1_STABLE\"] = \"RAMSES_V1_STABLE\";\n DexProtocol2[\"HERMES_VOLATILE\"] = \"HERMES_VOLATILE\";\n DexProtocol2[\"HERMES_STABLE\"] = \"HERMES_STABLE\";\n DexProtocol2[\"VELODROME_V1_VOLATILE\"] = \"VELODROME_V1_VOLATILE\";\n DexProtocol2[\"VELODROME_V1_STABLE\"] = \"VELODROME_V1_STABLE\";\n DexProtocol2[\"VELODROME_V2_VOLATILE\"] = \"VELODROME_V2_VOLATILE\";\n DexProtocol2[\"VELODROME_V2_STABLE\"] = \"VELODROME_V2_STABLE\";\n DexProtocol2[\"KOI_VOLATILE\"] = \"KOI_VOLATILE\";\n DexProtocol2[\"KOI_STABLE\"] = \"KOI_STABLE\";\n DexProtocol2[\"CAMELOT_V2_VOLATILE\"] = \"CAMELOT_V2_VOLATILE\";\n DexProtocol2[\"CAMELOT_V2_STABLE\"] = \"CAMELOT_V2_STABLE\";\n DexProtocol2[\"HERCULES_V2_VOLATILE\"] = \"HERCULES_V2_VOLATILE\";\n DexProtocol2[\"HERCULES_V2_STABLE\"] = \"HERCULES_V2_STABLE\";\n DexProtocol2[\"UNISWAP_V3\"] = \"UNISWAP_V3\";\n DexProtocol2[\"SQUADSWAP_V3\"] = \"SQUADSWAP_V3\";\n DexProtocol2[\"DACKIESWAP_V3\"] = \"DACKIESWAP_V3\";\n DexProtocol2[\"WAGMI\"] = \"WAGMI\";\n DexProtocol2[\"MAIA_V3\"] = \"MAIA_V3\";\n DexProtocol2[\"ALIENBASE_V3\"] = \"ALIENBASE_V3\";\n DexProtocol2[\"BASEX_V3\"] = \"BASEX_V3\";\n DexProtocol2[\"KINETIX_V3\"] = \"KINETIX_V3\";\n DexProtocol2[\"AERODROME_SLIPSTREAM\"] = \"AERODROME_SLIPSTREAM\";\n DexProtocol2[\"PANCAKESWAP_V3\"] = \"PANCAKESWAP_V3\";\n DexProtocol2[\"BISWAP_V3\"] = \"BISWAP_V3\";\n DexProtocol2[\"FUSIONX_V3\"] = \"FUSIONX_V3\";\n DexProtocol2[\"QUICKSWAP_V3\"] = \"QUICKSWAP_V3\";\n DexProtocol2[\"SUSHISWAP_V3\"] = \"SUSHISWAP_V3\";\n DexProtocol2[\"SOLIDLY_V3\"] = \"SOLIDLY_V3\";\n DexProtocol2[\"IZUMI\"] = \"IZUMI\";\n DexProtocol2[\"AGNI\"] = \"AGNI\";\n DexProtocol2[\"SWAPSICLE\"] = \"SWAPSICLE\";\n DexProtocol2[\"RETRO\"] = \"RETRO\";\n DexProtocol2[\"METHLAB\"] = \"METHLAB\";\n DexProtocol2[\"HENJIN\"] = \"HENJIN\";\n DexProtocol2[\"CAMELOT\"] = \"CAMELOT\";\n DexProtocol2[\"DTX\"] = \"DTX\";\n DexProtocol2[\"CRUST\"] = \"CRUST\";\n DexProtocol2[\"PANKO\"] = \"PANKO\";\n DexProtocol2[\"SHADOW_CL\"] = \"SHADOW_CL\";\n DexProtocol2[\"KOI_CL\"] = \"KOI_CL\";\n DexProtocol2[\"ZKSWAP_V3\"] = \"ZKSWAP_V3\";\n DexProtocol2[\"PHARAOH_CL\"] = \"PHARAOH_CL\";\n DexProtocol2[\"UNAGI_V3\"] = \"UNAGI_V3\";\n DexProtocol2[\"AXION_V3\"] = \"AXION_V3\";\n DexProtocol2[\"HYPERSWAP_V3\"] = \"HYPERSWAP_V3\";\n DexProtocol2[\"DRAGONSWAP_V3\"] = \"DRAGONSWAP_V3\";\n DexProtocol2[\"SONEX_V3\"] = \"SONEX_V3\";\n DexProtocol2[\"KYO_V3\"] = \"KYO_V3\";\n DexProtocol2[\"COREX\"] = \"COREX\";\n DexProtocol2[\"NINEMM_V2\"] = \"NINEMM_V2\";\n DexProtocol2[\"NINEMM_V3\"] = \"NINEMM_V3\";\n DexProtocol2[\"VVS_V2\"] = \"VVS_V2\";\n DexProtocol2[\"VVS_V3\"] = \"VVS_V3\";\n DexProtocol2[\"KODIAK_V2\"] = \"KODIAK_V2\";\n DexProtocol2[\"KODIAK_V3\"] = \"KODIAK_V3\";\n DexProtocol2[\"CLEOPATRA\"] = \"CLEOPATRA\";\n DexProtocol2[\"RAMSES_V2\"] = \"RAMSES_V2\";\n DexProtocol2[\"NILE_CL\"] = \"NILE_CL\";\n DexProtocol2[\"VELODROME_V3\"] = \"VELODROME_V3\";\n DexProtocol2[\"CURVE_V1_CLASSIC\"] = \"CURVE_V1_CLASSIC\";\n DexProtocol2[\"CURVE_NG\"] = \"CURVE_NG\";\n DexProtocol2[\"CURVE_CRYPTO\"] = \"CURVE_CRYPTO\";\n DexProtocol2[\"CURVE_STANDARD\"] = \"CURVE_STANDARD\";\n DexProtocol2[\"CURVE_RECEIVE\"] = \"CURVE_RECEIVE\";\n DexProtocol2[\"STRATUM_CURVE_STABLE\"] = \"STRATUM_CURVE_STABLE\";\n DexProtocol2[\"STRATUM_CURVE\"] = \"STRATUM_CURVE\";\n DexProtocol2[\"PANKO_STABLE\"] = \"PANKO_STABLE\";\n DexProtocol2[\"KTX\"] = \"KTX\";\n DexProtocol2[\"GMX\"] = \"GMX\";\n DexProtocol2[\"TETHYS\"] = \"TETHYS\";\n DexProtocol2[\"MERCHANT_MOE_LB\"] = \"MERCHANT_MOE_LB\";\n DexProtocol2[\"TRADER_JOE_LB_V2\"] = \"TRADER_JOE_LB_V2\";\n DexProtocol2[\"TRADER_JOE_LB_V21\"] = \"TRADER_JOE_LB_V21\";\n DexProtocol2[\"TRADER_JOE_LB_V22\"] = \"TRADER_JOE_LB_V22\";\n DexProtocol2[\"SYNC_BASE\"] = \"SYNC_BASE\";\n DexProtocol2[\"SYNC_RYTHM\"] = \"SYNC_RYTHM\";\n DexProtocol2[\"SYNC_STABLE\"] = \"SYNC_STABLE\";\n DexProtocol2[\"RITSU_BASE\"] = \"RITSU_BASE\";\n DexProtocol2[\"RITSU_RYTHM\"] = \"RITSU_RYTHM\";\n DexProtocol2[\"RITSU_STABLE\"] = \"RITSU_STABLE\";\n DexProtocol2[\"BALANCER_V2\"] = \"BALANCER_V2\";\n DexProtocol2[\"SYMMETRIC\"] = \"SYMMETRIC\";\n DexProtocol2[\"SWAAP\"] = \"SWAAP\";\n DexProtocol2[\"MAVERICK_V2\"] = \"MAVERICK_V2\";\n DexProtocol2[\"MIRA_VOLATILE\"] = \"MIRA_VOLATILE\";\n DexProtocol2[\"MIRA_STABLE\"] = \"MIRA_STABLE\";\n DexProtocol2[\"DIESEL_VOLATILE\"] = \"DIESEL_VOLATILE\";\n DexProtocol2[\"DIESEL_STABLE\"] = \"DIESEL_STABLE\";\n DexProtocol2[\"SHADOW_V2_VOLATILE\"] = \"SHADOW_V2_VOLATILE\";\n DexProtocol2[\"SHADOW_V2_STABLE\"] = \"SHADOW_V2_STABLE\";\n DexProtocol2[\"SWAPX_V2_VOLATILE\"] = \"SWAPX_V2_VOLATILE\";\n DexProtocol2[\"SWAPX_V2_STABLE\"] = \"SWAPX_V2_STABLE\";\n DexProtocol2[\"ZYBERSWAP\"] = \"ZYBERSWAP\";\n DexProtocol2[\"SKULLSWAP\"] = \"SKULLSWAP\";\n DexProtocol2[\"UBESWAP\"] = \"UBESWAP\";\n DexProtocol2[\"LITX\"] = \"LITX\";\n DexProtocol2[\"STELLASWAP_V4\"] = \"STELLASWAP_V4\";\n DexProtocol2[\"STELLASWAP_V3\"] = \"STELLASWAP_V3\";\n DexProtocol2[\"LYNEX\"] = \"LYNEX\";\n DexProtocol2[\"SWAP_BASED\"] = \"SWAP_BASED\";\n DexProtocol2[\"SYNTHSWAP\"] = \"SYNTHSWAP\";\n DexProtocol2[\"HERCULES\"] = \"HERCULES\";\n DexProtocol2[\"KIM\"] = \"KIM\";\n DexProtocol2[\"FENIX\"] = \"FENIX\";\n DexProtocol2[\"BLADE\"] = \"BLADE\";\n DexProtocol2[\"SILVER_SWAP\"] = \"SILVER_SWAP\";\n DexProtocol2[\"HORIZON\"] = \"HORIZON\";\n DexProtocol2[\"SWAPX\"] = \"SWAPX\";\n DexProtocol2[\"BULLA\"] = \"BULLA\";\n DexProtocol2[\"SCRIBE\"] = \"SCRIBE\";\n DexProtocol2[\"FIBONACCI\"] = \"FIBONACCI\";\n DexProtocol2[\"VOLTAGE\"] = \"VOLTAGE\";\n DexProtocol2[\"WASABEE\"] = \"WASABEE\";\n DexProtocol2[\"HOLIVERSE\"] = \"HOLIVERSE\";\n DexProtocol2[\"MOR_FI\"] = \"MOR_FI\";\n DexProtocol2[\"ATLAS\"] = \"ATLAS\";\n DexProtocol2[\"THENA\"] = \"THENA\";\n DexProtocol2[\"MOLTEN\"] = \"MOLTEN\";\n DexProtocol2[\"MOLTEN_STABLE\"] = \"MOLTEN_STABLE\";\n DexProtocol2[\"VELOCIMETER\"] = \"VELOCIMETER\";\n DexProtocol2[\"CLEOPATRA_V1\"] = \"CLEOPATRA_V1\";\n DexProtocol2[\"STRATUM\"] = \"STRATUM\";\n DexProtocol2[\"DYSTOPIA\"] = \"DYSTOPIA\";\n DexProtocol2[\"KODO\"] = \"KODO\";\n DexProtocol2[\"CRUST_V1\"] = \"CRUST_V1\";\n DexProtocol2[\"RAMSES_V1\"] = \"RAMSES_V1\";\n DexProtocol2[\"CAMELOT_V2\"] = \"CAMELOT_V2\";\n DexProtocol2[\"MIRA\"] = \"MIRA\";\n DexProtocol2[\"DIESEL\"] = \"DIESEL\";\n DexProtocol2[\"SHADOW_V2\"] = \"SHADOW_V2\";\n DexProtocol2[\"SWAPX_V2\"] = \"SWAPX_V2\";\n DexProtocol2[\"VELODROME_V1\"] = \"VELODROME_V1\";\n DexProtocol2[\"VELODROME_V2\"] = \"VELODROME_V2\";\n DexProtocol2[\"LYNEX_V1\"] = \"LYNEX_V1\";\n DexProtocol2[\"NILE\"] = \"NILE\";\n DexProtocol2[\"PHARAOH_V1\"] = \"PHARAOH_V1\";\n DexProtocol2[\"KOI\"] = \"KOI\";\n DexProtocol2[\"WRAPPED_NATIVE\"] = \"WRAPPED_NATIVE\";\n return DexProtocol2;\n})(DexProtocol || {});\n\n// src/enums/dexTypes.ts\nvar UniV2ForkType = /* @__PURE__ */ ((UniV2ForkType2) => {\n UniV2ForkType2[\"Classic\"] = \"Classic\";\n UniV2ForkType2[\"Solidly\"] = \"Solidly\";\n UniV2ForkType2[\"RamsesV1\"] = \"RamsesV1\";\n UniV2ForkType2[\"Camelot\"] = \"Camelot\";\n UniV2ForkType2[\"Moe\"] = \"Moe\";\n return UniV2ForkType2;\n})(UniV2ForkType || {});\nvar DexValidation = /* @__PURE__ */ ((DexValidation2) => {\n DexValidation2[\"OVERRIDE\"] = \"OVERRIDE\";\n DexValidation2[\"EXCLUDE\"] = \"EXCLUDE\";\n return DexValidation2;\n})(DexValidation || {});\nvar UniV3ForkType = /* @__PURE__ */ ((UniV3ForkType2) => {\n UniV3ForkType2[\"Classic\"] = \"Classic\";\n UniV3ForkType2[\"Ramses\"] = \"Ramses\";\n UniV3ForkType2[\"AlgebraV3\"] = \"AlgebraV3\";\n UniV3ForkType2[\"AlgebraV3_9\"] = \"AlgebraV3_9\";\n UniV3ForkType2[\"AlgebraV4\"] = \"AlgebraV4\";\n UniV3ForkType2[\"AlgebraV4_1\"] = \"AlgebraV4_1\";\n UniV3ForkType2[\"AlgebraV4_2\"] = \"AlgebraV4_2\";\n UniV3ForkType2[\"Pancake\"] = \"Pancake\";\n UniV3ForkType2[\"Izumi\"] = \"Izumi\";\n return UniV3ForkType2;\n})(UniV3ForkType || {});\nvar BALANCER_V2 = {\n vault: {\n [Chain.ETHEREUM_MAINNET]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.POLYGON_MAINNET]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.ARBITRUM_ONE]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.AVALANCHE_C_CHAIN]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.SONIC_MAINNET]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.GNOSIS]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.BASE]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.MODE]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.POLYGON_ZKEVM]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.OP_MAINNET]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.FRAXTAL]: \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\",\n [Chain.FANTOM_OPERA]: \"0x20dd72Ed959b6147912C2e529F0a0C651c33c9ce\"\n },\n forkId: \"0\"\n};\nvar SWAAP = {\n vault: {\n [Chain.ETHEREUM_MAINNET]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\",\n [Chain.BASE]: \"0x03C01Acae3D0173a93d819efDc832C7C4F153B06\",\n [Chain.OP_MAINNET]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\",\n [Chain.ARBITRUM_ONE]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\",\n [Chain.POLYGON_MAINNET]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x03C01Acae3D0173a93d819efDc832C7C4F153B06\",\n [Chain.SCROLL]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\",\n [Chain.AVALANCHE_C_CHAIN]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\",\n [Chain.LINEA]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\",\n [Chain.MANTLE]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\",\n [Chain.MODE]: \"0xd315a9c38ec871068fec378e4ce78af528c76293\"\n },\n forkId: \"1\"\n};\nvar SYMMETRIC = {\n vault: {\n [Chain.TAIKO_ALETHIA]: \"0xbccc4b4c6530F82FE309c5E845E50b5E9C89f2AD\",\n [Chain.TELOS_EVM_MAINNET]: \"0xbccc4b4c6530F82FE309c5E845E50b5E9C89f2AD\",\n [Chain.METER_MAINNET]: \"0x913f21E596790aFC6AA45229E9ff8b7d0A473D5A\"\n },\n forkId: \"2\"\n};\nvar BALANCER_V2_FORKS = {\n [\"BALANCER_V2\" /* BALANCER_V2 */]: BALANCER_V2,\n [\"SYMMETRIC\" /* SYMMETRIC */]: SYMMETRIC,\n [\"SWAAP\" /* SWAAP */]: SWAAP\n};\nvar BALANCER_V3 = {\n vault: {\n [Chain.ETHEREUM_MAINNET]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.ARBITRUM_ONE]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.AVALANCHE_C_CHAIN]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.GNOSIS]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.BASE]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.SONIC_MAINNET]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.POLYGON_ZKEVM]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.OP_MAINNET]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.HYPEREVM]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\",\n [Chain.PLASMA_MAINNET]: \"0xbA1333333333a1BA1108E8412f11850A5C319bA9\"\n },\n forkId: \"0\"\n};\nvar BALANCER_V3_FORKS = {\n [\"BALANCER_V3\" /* BALANCER_V3 */]: BALANCER_V3\n};\nvar uniswapV2InitHash = \"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f\";\nvar pancakeV2CodeHash = \"0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5\";\nvar uniV2CallbackSelector = \"0x10d1e85c00000000000000000000000000000000000000000000000000000000\";\nvar pancakeV2CallbackSelector = \"0x8480081200000000000000000000000000000000000000000000000000000000\";\nvar solidlyV2CallbackSelector = \"0x9a7bff7900000000000000000000000000000000000000000000000000000000\";\nvar UNISWAP_V2 = {\n factories: {\n [Chain.ETHEREUM_MAINNET]: \"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f\",\n [Chain.ARBITRUM_ONE]: \"0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9\",\n [Chain.BASE]: \"0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6\",\n [Chain.AVALANCHE_C_CHAIN]: \"0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C\",\n [Chain.OP_MAINNET]: \"0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf\",\n [Chain.POLYGON_MAINNET]: \"0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C\",\n [Chain.BLAST]: \"0x5C346464d33F90bABaf70dB6388507CC889C1070\",\n [Chain.ZORA]: \"0x0F797dC7efaEA995bB916f268D919d0a1950eE3C\",\n [Chain.WORLD_CHAIN]: \"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f\"\n // [Chain.SCROLL]: \"\",\n // [Chain.LINEA]: \"\",\n // [Chain.MANTLE]: \"\",\n // [Chain.TAIKO_ALETHIA]: \"\",\n // [Chain.GNOSIS]: \"\",\n // [Chain.SONIC_MAINNET]: \"\",\n // [Chain.INK]: \"\",\n // [Chain.HEMI_NETWORK]: \"\"\n },\n codeHash: { default: uniswapV2InitHash },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"0\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar PANCAKE_V2 = {\n factories: {\n [Chain.ETHEREUM_MAINNET]: \"0x1097053Fd2ea711dad45caCcc45EfF7548fCB362\",\n [Chain.ARBITRUM_ONE]: \"0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E\",\n [Chain.BASE]: \"0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73\",\n [Chain.LINEA]: \"0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E\",\n [Chain.OPBNB_MAINNET]: \"0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E\",\n [Chain.ZKSYNC_MAINNET]: \"0xd03D8D566183F0086d8D09A84E1e30b58Dd5619d\",\n [Chain.POLYGON_ZKEVM]: \"0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E\",\n [Chain.UNICHAIN]: \"0x1f98400000000000000000000000000000000002\"\n // [Chain.POLYGON_MAINNET]: \"\",\n // [Chain.BLAST]: \"\",\n // [Chain.ZORA]: \"\",\n // [Chain.WORLD_CHAIN]: \"\",\n // [Chain.SCROLL]: \"\",\n // [Chain.LINEA]: \"\",\n // [Chain.MANTLE]: \"\",\n // [Chain.TAIKO_ALETHIA]: \"\",\n // [Chain.GNOSIS]: \"\",\n // [Chain.SONIC_MAINNET]: \"\",\n // [Chain.INK]: \"\",\n // [Chain.HEMI_NETWORK]: \"\"\n },\n codeHash: { default: pancakeV2CodeHash },\n callbackSelector: pancakeV2CallbackSelector,\n forkId: \"0\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SUSHI_V2 = {\n factories: {\n [Chain.ARBITRUM_ONE]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.ARBITRUM_NOVA]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.AVALANCHE_C_CHAIN]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.BASE]: \"0x71524B4f93c58fcbF659783284E38825f0622859\",\n [Chain.BLAST]: \"0x42Fa929fc636e657AC568C0b5Cf38E203b67aC2b\",\n [Chain.BOBA_NETWORK]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n // [Chain.BOBA_AVAX]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.BOBA_BNB_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n // [Chain.BSC_TESTNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.BITTORRENT_CHAIN_MAINNET]: \"0xB45e53277a7e0F1D35f2a77160e91e25507f1763\",\n [Chain.CELO_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0xB45e53277a7e0F1D35f2a77160e91e25507f1763\",\n [Chain.ETHEREUM_MAINNET]: \"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac\",\n [Chain.FANTOM_OPERA]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.FILECOIN_MAINNET]: \"0x9B3336186a38E1b6c21955d112dbb0343Ee061eE\",\n // [Chain.FUJI]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.FUSE_MAINNET]: \"0x43eA90e2b786728520e4f930d2A71a477BF2737C\",\n // [Chain.GOERLI]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.HAQQ_NETWORK]: \"0xB45e53277a7e0F1D35f2a77160e91e25507f1763\",\n [Chain.HARMONY_MAINNET_SHARD_0]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n // [Chain.HARMONY_TESTNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.HUOBI_ECO_CHAIN_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n // [Chain.HECO_TESTNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.KAVA]: \"0xD408a20f1213286fB3158a2bfBf5bFfAca8bF269\",\n // [Chain.KOVAN]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.LINEA]: \"0xFbc12984689e5f15626Bad03Ad60160Fe98B303C\",\n // [Chain.LOCALHOST]: \"0x5FbDB2315678afecb367f032d93F642f64180aa3\",\n [Chain.POLYGON_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x580ED43F3BBa06555785C81c2957efCCa71f7483\",\n [Chain.MOONBEAM]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.MOONRIVER]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n // [Chain.MUMBAI]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.OKXCHAIN_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n // [Chain.OKEX_TESTNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.OP_MAINNET]: \"0xFbc12984689e5f15626Bad03Ad60160Fe98B303C\",\n [Chain.PALM]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.POLYGON_ZKEVM]: \"0xB45e53277a7e0F1D35f2a77160e91e25507f1763\",\n // [Chain.RINKEBY]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.ROOTSTOCK_MAINNET]: \"0xB45e53277a7e0F1D35f2a77160e91e25507f1763\",\n // [Chain.ROPSTEN]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.SCROLL]: \"0xB45e53277a7e0F1D35f2a77160e91e25507f1763\",\n // [Chain.SEPOLIA]: \"0x734583f62Bb6ACe3c9bA9bd5A53143CA2Ce8C55A\",\n [Chain.SKALE_EUROPA_HUB]: \"0x1aaF6eB4F85F8775400C1B10E6BbbD98b2FF8483\",\n [Chain.TELOS_EVM_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.THUNDERCORE_MAINNET]: \"0xB45e53277a7e0F1D35f2a77160e91e25507f1763\",\n [Chain.GNOSIS]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.ZETACHAIN_MAINNET]: \"0x33d91116e0370970444B0281AB117e161fEbFcdD\",\n [Chain.HEMI_NETWORK]: \"0x9B3336186a38E1b6c21955d112dbb0343Ee061eE\",\n [Chain.KATANA]: \"0x72D111b4d6f31B38919ae39779f570b747d6Acd9\"\n },\n codeHash: {\n default: uniswapV2InitHash,\n [Chain.KATANA]: \"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"1\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar PASS = {\n factories: {\n [Chain.HEMI_NETWORK]: \"0x242c913Ff5FE010430A709baab977e88435b7EBF\"\n },\n codeHash: { default: \"0xd040a901beef1fe03d5f83aff62cc341aa8fa949dcdaa516b1adcfae94ada0db\" },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"50\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar UBESWAP = {\n factories: {\n [Chain.CELO_MAINNET]: \"0x62d5b84bE28a183aBB507E125B384122D2C25fAE\"\n },\n codeHash: { default: \"0xb3b8ff62960acea3a88039ebcf80699f15786f1b17cebd82802f7375827a339c\" },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"10\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar BISWAP_V2 = {\n factories: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x858E3312ed3A876947EA49d572A7C42DE08af7EE\"\n },\n codeHash: { default: \"0xfea293c909d87cd4153593f077b76bb7e94340200f4ee84211ae8e4f9bd7ffdf\" },\n callbackSelector: \"0x5b3bc4fe00000000000000000000000000000000000000000000000000000000\",\n // BiswapCall\n forkId: \"0\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SHADOW_V2 = {\n factories: {\n [Chain.SONIC_MAINNET]: \"0x2dA25E7446A70D7be65fd4c053948BEcAA6374c8\"\n },\n codeHash: { default: \"0x4ed7aeec7c0286cad1e282dee1c391719fc17fe923b04fb0775731e413ed3554\" },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"131\",\n fee: 5000n,\n feeStable: 500n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar KODO = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0x535E02960574d8155596a73c7Ad66e87e37Eb6Bc\"\n },\n codeHash: { default: \"0x24364b5d47cc9af524ff2ae89d98c1c10f4a388556279eecb00622b5d727c99a\" },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"132\",\n fee: 2000n,\n feeStable: 200n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar VELOCIMETER = {\n factories: {\n [Chain.MANTLE]: \"0x99F9a4A96549342546f9DAE5B2738EDDcD43Bf4C\"\n },\n codeHash: { default: \"0x0ccd005ee58d5fb11632ef5c2e0866256b240965c62c8e990c0f84a97f311879\" },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"133\",\n fee: 2500n,\n feeStable: 300n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar DYSTOPIA = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0x1d21Db6cde1b18c7E47B0F7F42f4b3F68b9beeC9\"\n },\n codeHash: { default: \"0x009bce6d7eb00d3d075e5bd9851068137f44bba159f1cde806a268e20baaf2e8\" },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"134\",\n fee: 500n,\n feeStable: 500n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar RAMSES_V1 = {\n factories: {\n [Chain.ARBITRUM_ONE]: \"0xAAA20D08e59F6561f242b08513D36266C5A29415\"\n },\n codeHash: {\n [Chain.ARBITRUM_ONE]: \"OVERRIDE\" /* OVERRIDE */\n },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"135\",\n fee: 2500n,\n feeStable: 500n,\n forkType: { default: \"RamsesV1\" /* RamsesV1 */ }\n};\nvar CLEOPATRA_V1 = {\n factories: {\n [Chain.MANTLE]: \"0xAAA16c016BF556fcD620328f0759252E29b1AB57\"\n },\n codeHash: {\n [Chain.MANTLE]: \"0xbf2404274de2b11f05e5aebd49e508de933034cb5fa2d0ac3de8cbd4bcef47dc\"\n },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"135\",\n fee: 2500n,\n feeStable: 500n,\n forkType: { default: \"RamsesV1\" /* RamsesV1 */ }\n};\nvar PHARAOH_V1 = {\n factories: {\n [Chain.AVALANCHE_C_CHAIN]: \"0xAAA16c016BF556fcD620328f0759252E29b1AB57\"\n },\n codeHash: {\n [Chain.AVALANCHE_C_CHAIN]: \"0xbf2404274de2b11f05e5aebd49e508de933034cb5fa2d0ac3de8cbd4bcef47dc\"\n },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"135\",\n fee: 5000n,\n feeStable: 500n,\n forkType: { default: \"RamsesV1\" /* RamsesV1 */ }\n};\nvar CAMELOT_V2 = {\n factories: {\n [Chain.ARBITRUM_ONE]: \"0x6EcCab422D763aC031210895C81787E87B43A652\"\n },\n codeHash: { default: \"0xa856464ae65f7619087bc369daaf7e387dae1e5af69cfa7935850ebf754b04c1\" },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"130\",\n fee: 3000n,\n feeStable: 500n,\n forkType: { default: \"Camelot\" /* Camelot */ }\n};\nvar SWAPX_V2 = {\n factories: {\n [Chain.SONIC_MAINNET]: \"0x05c1be79d3aC21Cc4B727eeD58C9B2fF757F5663\"\n },\n codeHash: { default: \"0x6c45999f36731ff6ab43e943fca4b5a700786bbb202116cf6633b32039161e05\" },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"136\",\n fee: 10000n,\n feeStable: 100n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar METROPOLIS_V2 = {\n factories: {\n [Chain.SONIC_MAINNET]: \"0x1570300e9cFEC66c9Fb0C8bc14366C86EB170Ad0\"\n },\n codeHash: { default: \"0xb174fb9703cd825ac38ca3cf781a2750d5ee57f4268806e0bca9bcd3d74b67b5\" },\n callbackSelector: \"0xd1f6317800000000000000000000000000000000000000000000000000000000\",\n // doCall\n forkId: \"11\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar APESWAP_V2 = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0xCf083Be4164828f00cAE704EC15a36D711491284\",\n [Chain.ARBITRUM_ONE]: \"0xCf083Be4164828f00cAE704EC15a36D711491284\"\n },\n codeHash: {\n [Chain.POLYGON_MAINNET]: \"0x511f0f358fe530cda0859ec20becf391718fdf5a329be02f4c95361f3d6a42d8\",\n [Chain.ARBITRUM_ONE]: \"0xae7373e804a043c4c08107a81def627eeb3792e211fb4711fcfe32f0e4c45fd5\"\n },\n callbackSelector: \"0xbecda36300000000000000000000000000000000000000000000000000000000\",\n // apeCall\n forkId: \"12\",\n fee: 2000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SWAPR_V1 = {\n factories: {\n [Chain.GNOSIS]: \"0x5D48C95AdfFD4B40c1AAADc4e08fc44117E02179\"\n },\n codeHash: {\n [Chain.GNOSIS]: \"0xd306a548755b9295ee49cc729e13ca4a45e00199bbd890fa146da43a50571776\"\n },\n callbackSelector: \"0xb527c5d000000000000000000000000000000000000000000000000000000000\",\n // DXswapCall\n forkId: \"0\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar HONEYSWAP = {\n factories: {\n [Chain.GNOSIS]: \"0xA818b4F111Ccac7AA31D0BCc0806d64F2E0737D7\"\n },\n codeHash: {\n [Chain.GNOSIS]: \"0x3f88503e8580ab941773b59034fb4b2a63e86dbc031b3633a925533ad3ed2b93\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"19\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar WAULTSWAP_V2 = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0xa98ea6356A316b44Bf710D5f9b6b4eA0081409Ef\"\n },\n codeHash: {\n [Chain.POLYGON_MAINNET]: \"0x1cdc2246d318ab84d8bc7ae2a3d81c235f3db4e113f4c6fdc1e2211a9291be47\"\n },\n callbackSelector: \"0x485f399400000000000000000000000000000000000000000000000000000000\",\n // waultSwapCall\n forkId: \"13\",\n fee: 2000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar DFYN = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0xE7Fb3e833eFE5F9c441105EB65Ef8b261266423B\"\n },\n codeHash: {\n [Chain.POLYGON_MAINNET]: \"0xf187ed688403aa4f7acfada758d8d53698753b998a3071b06f1b777f4330eaf3\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"14\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar POLYCAT = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0x477Ce834Ae6b7aB003cCe4BC4d8697763FF456FA\"\n },\n codeHash: {\n [Chain.POLYGON_MAINNET]: \"0x3cad6f9e70e13835b4f07e5dd475f25a109450b22811d0437da51e66c161255a\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"15\",\n fee: 2400n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar COMETH = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0x800b052609c355cA8103E06F022aA30647eAd60a\"\n },\n codeHash: {\n [Chain.POLYGON_MAINNET]: \"0x499154cad90a3563f914a25c3710ed01b9a43b8471a35ba8a66a056f37638542\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"16\",\n fee: 5000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar QUICKSWAP_V2 = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0x5757371414417b8C6CAad45bAeF941aBc7d3Ab32\"\n },\n codeHash: {\n [Chain.POLYGON_MAINNET]: \"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"3\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar MERCHANT_MOE = {\n factories: {\n [Chain.MANTLE]: \"0x5bEf015CA9424A7C07B68490616a4C1F094BEdEc\"\n },\n codeHash: {\n [Chain.MANTLE]: \"OVERRIDE\" /* OVERRIDE */\n },\n implementation: {\n [Chain.MANTLE]: \"0x08477e01A19d44C31E4C11Dc2aC86E3BBE69c28B\"\n },\n callbackSelector: \"0xba85410f00000000000000000000000000000000000000000000000000000000\",\n // moeCall\n forkId: \"0\",\n fee: 3000n,\n forkType: { default: \"Moe\" /* Moe */ }\n};\nvar TAIKOSWAP = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0x7C43adAfc2337BaA16AA2876F9DE8Da5B3720FdB\"\n },\n codeHash: {\n [Chain.TAIKO_ALETHIA]: \"0xf134c874b39e61378a3f19b6f15a0e83c6916c54524901806f3e1ca3da7b2243\"\n },\n callbackSelector: \"EXCLUDE\" /* EXCLUDE */,\n forkId: \"0\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar MANTLESWAP = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0x7C43adAfc2337BaA16AA2876F9DE8Da5B3720FdB\"\n },\n codeHash: {\n [Chain.TAIKO_ALETHIA]: \"0x248aa3d53dff9c2e464d6feb0fae0ee52adebff933dd9c2ee6744356b46cf848\"\n },\n callbackSelector: \"EXCLUDE\" /* EXCLUDE */,\n forkId: \"0\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar TROPICAL_SWAP = {\n factories: {\n [Chain.MANTLE]: \"0x5b54d3610ec3f7fb1d5b42ccf4df0fb4e136f249\"\n },\n codeHash: {\n [Chain.MANTLE]: \"0x321aea434584ceee22f77514cbdc4c631d3feba4b643c492f852c922a409ed1e\"\n },\n callbackSelector: \"EXCLUDE\" /* EXCLUDE */,\n forkId: \"0\",\n fee: 2000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar CRUST_V1 = {\n factories: {\n [Chain.MANTLE]: \"0x62DbCa39067f99C9D788a253cB325c6BA50e51cE\"\n },\n codeHash: {\n [Chain.MANTLE]: \"0x7bc86d3461c6b25a75205e3bcd8e9815e8477f2af410ccbe931d784a528143fd\"\n },\n callbackSelector: \"EXCLUDE\" /* EXCLUDE */,\n forkId: \"131\",\n fee: 2000n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar STRATUM = {\n factories: {\n [Chain.MANTLE]: \"0x061FFE84B0F9E1669A6bf24548E5390DBf1e03b2\"\n },\n codeHash: {\n [Chain.MANTLE]: \"0xeb675862e19b0846fd47f7db0e8f2bf8f8da0dcd0c9aa75603248566f3faa805\"\n },\n callbackSelector: \"EXCLUDE\" /* EXCLUDE */,\n forkId: \"131\",\n fee: 2500n,\n feeStable: 500n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar FUSIONX_V2 = {\n factories: {\n [Chain.MANTLE]: \"0xE5020961fA51ffd3662CDf307dEf18F9a87Cce7c\"\n },\n codeHash: {\n [Chain.MANTLE]: \"0x58c684aeb03fe49c8a3080db88e425fae262c5ef5bf0e8acffc0526c6e3c03a0\"\n },\n callbackSelector: \"EXCLUDE\" /* EXCLUDE */,\n forkId: \"0\",\n fee: 2000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar NETSWAP = {\n factories: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x70f51d68D16e8f9e418441280342BD43AC9Dff9f\"\n },\n codeHash: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x966d65068a6a30f10fd1fa814258637a34e059081d79daa94f3e2b6cec48e810\"\n },\n callbackSelector: \"0x924ba9cc00000000000000000000000000000000000000000000000000000000\",\n // netswapCall\n forkId: \"0\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar AXION_V2 = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0x8a8865fa5fB7C8360E5a6d8Aa27F7Ca1b9E55443\"\n },\n codeHash: {\n [Chain.TAIKO_ALETHIA]: \"0x4c961aaf675d77e6066d0b33ea70d966866f9c0aa2a94c0696efa27ac84771d5\"\n },\n callbackSelector: \"0xda477ab500000000000000000000000000000000000000000000000000000000\",\n // AxionCall\n forkId: \"0\",\n fee: 2000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar HERCULES = {\n factories: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0xF38E7c7f8eA779e8A193B61f9155E6650CbAE095\"\n },\n codeHash: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0xa856464ae65f7619087bc369daaf7e387dae1e5af69cfa7935850ebf754b04c1\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"130\",\n fee: 3000n,\n feeStable: 500n,\n forkType: { default: \"Camelot\" /* Camelot */ }\n};\nvar HERMES = {\n factories: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x633a093C9e94f64500FC8fCBB48e90dd52F6668F\"\n },\n codeHash: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x1206c53c96c9926d750268b77c1897f0b6035ff853c3ba6088623ed7df249367\"\n },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"136\",\n fee: 100n,\n feeStable: 100n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar VELODROME_V2 = {\n factories: {\n [Chain.OP_MAINNET]: \"0xF1046053aa5682b4F9a81b5481394DA16BE5FF5a\",\n [Chain.SWELLCHAIN]: \"0x31832f2a97Fd20664D76Cc421207669b55CE4BC0\",\n [Chain.LISK]: \"0x31832f2a97Fd20664D76Cc421207669b55CE4BC0\",\n [Chain.INK]: \"0x31832f2a97Fd20664D76Cc421207669b55CE4BC0\",\n [Chain.FRAXTAL]: \"0x31832f2a97Fd20664D76Cc421207669b55CE4BC0\",\n [Chain.BOB]: \"0x31832f2a97Fd20664D76Cc421207669b55CE4BC0\",\n [Chain.SONEIUM]: \"0x31832f2a97Fd20664D76Cc421207669b55CE4BC0\",\n [Chain.MODE]: \"0x31832f2a97Fd20664D76Cc421207669b55CE4BC0\",\n [Chain.UNICHAIN]: \"0x31832f2a97Fd20664D76Cc421207669b55CE4BC0\"\n },\n codeHash: {\n // keccak256(hex\"363d3d373d3d3d363d73${implementation}5af43d82803e903d91602b57fd5bf3\")\n [Chain.OP_MAINNET]: \"0xc0629f1c7daa09624e54d4f711ba99922a844907cce02997176399e4cc7e8fcf\",\n [Chain.SWELLCHAIN]: \"0x558be7ee0c63546b31d0773eee1d90451bd76a0167bb89653722a2bd677c002d\",\n [Chain.LISK]: \"0x558be7ee0c63546b31d0773eee1d90451bd76a0167bb89653722a2bd677c002d\",\n [Chain.INK]: \"0x558be7ee0c63546b31d0773eee1d90451bd76a0167bb89653722a2bd677c002d\",\n [Chain.FRAXTAL]: \"0x558be7ee0c63546b31d0773eee1d90451bd76a0167bb89653722a2bd677c002d\",\n [Chain.BOB]: \"0x558be7ee0c63546b31d0773eee1d90451bd76a0167bb89653722a2bd677c002d\",\n [Chain.SONEIUM]: \"0x558be7ee0c63546b31d0773eee1d90451bd76a0167bb89653722a2bd677c002d\",\n [Chain.MODE]: \"0x558be7ee0c63546b31d0773eee1d90451bd76a0167bb89653722a2bd677c002d\",\n [Chain.UNICHAIN]: \"0x558be7ee0c63546b31d0773eee1d90451bd76a0167bb89653722a2bd677c002d\"\n },\n implementation: {\n [Chain.OP_MAINNET]: \"0x95885Af5492195F0754bE71AD1545Fe81364E531\",\n [Chain.SWELLCHAIN]: \"0x10499d88Bd32AF443Fc936F67DE32bE1c8Bb374C\",\n [Chain.LISK]: \"0x10499d88Bd32AF443Fc936F67DE32bE1c8Bb374C\",\n [Chain.INK]: \"0x10499d88Bd32AF443Fc936F67DE32bE1c8Bb374C\",\n [Chain.FRAXTAL]: \"0x10499d88Bd32AF443Fc936F67DE32bE1c8Bb374C\",\n [Chain.BOB]: \"0x10499d88Bd32AF443Fc936F67DE32bE1c8Bb374C\",\n [Chain.SONEIUM]: \"0x10499d88Bd32AF443Fc936F67DE32bE1c8Bb374C\",\n [Chain.UNICHAIN]: \"0x10499d88Bd32AF443Fc936F67DE32bE1c8Bb374C\",\n [Chain.MODE]: \"0x10499d88Bd32AF443Fc936F67DE32bE1c8Bb374C\"\n },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"138\",\n fee: 3000n,\n feeStable: 500n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar VELODROME_V1 = {\n factories: {\n [Chain.OP_MAINNET]: \"0x25CbdDb98b35ab1FF77413456B31EC81A6B6B746\"\n },\n codeHash: {\n [Chain.OP_MAINNET]: \"0xc1ac28b1c4ebe53c0cff67bab5878c4eb68759bb1e9f73977cd266b247d149f0\"\n },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"137\",\n fee: 3000n,\n feeStable: 500n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar LYNEX_V1 = {\n factories: {\n [Chain.LINEA]: \"0xBc7695Fd00E3b32D08124b7a4287493aEE99f9ee\"\n },\n codeHash: {\n [Chain.LINEA]: \"0xf40e8808230a29863f9f7f99beb90d28bca2c60094e78d93cca67f746dbfd142\"\n },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"139\",\n fee: 2500n,\n feeStable: 100n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar NILE = {\n factories: {\n [Chain.LINEA]: \"0xAAA16c016BF556fcD620328f0759252E29b1AB57\"\n },\n codeHash: {\n [Chain.LINEA]: \"0xbf2404274de2b11f05e5aebd49e508de933034cb5fa2d0ac3de8cbd4bcef47dc\"\n },\n callbackSelector: solidlyV2CallbackSelector,\n forkId: \"140\",\n fee: 5000n,\n feeStable: 500n,\n forkType: { default: \"RamsesV1\" /* RamsesV1 */ }\n};\nvar KOI = {\n factories: {\n [Chain.ZKSYNC_MAINNET]: \"0x40be1cBa6C5B47cDF9da7f963B6F761F4C60627D\"\n },\n codeHash: {\n [Chain.ZKSYNC_MAINNET]: \"0x95d5c05820d58f1c8cc736b47fe10a29ddcd2cf73a0d842e8537b9fe510fc618\"\n },\n callbackSelector: \"0x5426813c00000000000000000000000000000000000000000000000000000000\",\n // muteswitchCall\n forkId: \"132\",\n fee: 8000n,\n feeStable: 100n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar TRADER_JOE_V1 = {\n factories: {\n [Chain.AVALANCHE_C_CHAIN]: \"0x9Ad6C38BE94206cA50bb0d90783181662f0Cfa10\"\n },\n codeHash: {\n [Chain.AVALANCHE_C_CHAIN]: \"0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91\"\n },\n callbackSelector: \"0xee22dd8700000000000000000000000000000000000000000000000000000000\",\n // joe Call\n forkId: \"0\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar ZKSWAP_V2 = {\n factories: {\n [Chain.ZKSYNC_MAINNET]: \"0x3a76e377ED58c8731F9DF3A36155942438744Ce3\"\n },\n codeHash: {\n [Chain.ZKSYNC_MAINNET]: \"OVERRIDE\" /* OVERRIDE */\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"17\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SPACEFI = {\n factories: {\n [Chain.ZKSYNC_MAINNET]: \"0x0700Fb51560CfC8F896B2c812499D17c5B0bF6A7\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.ZKSYNC_MAINNET]: \"0xf8d3c7145cbf55d3e34fcc9bdce8aa326ddf5f829c712119bb566bf56759e4dd\"\n // DexValidation.OVERRIDE,\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"18\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar HYPERSWAP_V2 = {\n factories: {\n [Chain.HYPEREVM]: \"0x724412C00059bf7d6ee7d4a1d0D5cd4de3ea1C48\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.HYPEREVM]: \"0xc83d9df19c8c8a0a1229bd3122cbb86fd8ff56f79cc6781c15999d39425466e9\"\n // DexValidation.OVERRIDE,\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"18\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar DRAGONSWAP_V2 = {\n factories: {\n [Chain.KAIA_MAINNET]: \"0x724412C00059bf7d6ee7d4a1d0D5cd4de3ea1C48\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.KAIA_MAINNET]: \"0x1f07efc9aeaf9f1a5259be7f0e4bd52396274fcf450ef2efd01a1ac8965b12b2\"\n // DexValidation.OVERRIDE,\n },\n callbackSelector: pancakeV2CallbackSelector,\n forkId: \"1\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar KYO_V2 = {\n factories: {\n [Chain.SONEIUM]: \"0xC3d4fA777308412CbA0520c4034Ad3567de852dF\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.SONEIUM]: \"0x986d5bc7d1ebad7b6aa48b90d79ba2498e5e223dad50971c48f147ab6395bdd2\"\n // DexValidation.OVERRIDE,\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"0\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar ARCHERSWAP = {\n factories: {\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0xe0b8838e8d73ff1ca193e8cc2bc0ebf7cf86f620\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0xa496ce5b8348c4a27befb2616addacbfdd5beaf87f2e951c1f8910fd0d3bf9c0\"\n },\n // function archerswapCall(address sender, uint amount0, uint amount1, bytes calldata data) external;\n callbackSelector: \"0xb9f03bd800000000000000000000000000000000000000000000000000000000\",\n forkId: \"0\",\n fee: 2000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SHADOW_CORE = {\n factories: {\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0x326Ee96748E7DcC04BE1Ef8f4E4F6bdd54048932\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0xcfeb1f8754759f0abe461dd409d6d501fdd73b91a848c483faa6db0faf53c3bd\"\n },\n // function shadowCall(address sender, uint amount0, uint amount1, bytes calldata data) external;\n callbackSelector: \"0xabe68bdc00000000000000000000000000000000000000000000000000000000\",\n forkId: \"0\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar PULSX_V1 = {\n factories: {\n [Chain.PULSECHAIN]: \"0x1715a3e4a142d8b698131108995174f37aeba10d\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.PULSECHAIN]: \"0x59fffffddd756cba9095128e53f3291a6ba38b21e3df744936e7289326555d62\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"3\",\n fee: 2900n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar STELLASWAP_V2 = {\n factories: {\n [Chain.MOONBEAM]: \"0x68A384D826D3678f78BB9FB1533c7E9577dACc0E\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.MOONBEAM]: \"0x48a6ca3d52d0d0a6c53a83cc3c8688dd46ea4cb786b169ee959b95ad30f61643\"\n },\n callbackSelector: \"0xd3f7e53900000000000000000000000000000000000000000000000000000000\",\n // stellaswapV2Call\n forkId: \"0\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SOLARFLARE = {\n factories: {\n [Chain.MOONBEAM]: \"0x19B85ae92947E0725d5265fFB3389e7E4F191FDa\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.MOONBEAM]: \"0xe21386787732ef8059a646602f85a5ebb23848cddd90ef5a8d111ec84a4cb71f\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"10\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar PADSWAP = {\n factories: {\n [Chain.MOONBEAM]: \"0x663a07a2648296f1A3C02EE86A126fE1407888E5\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.MOONBEAM]: \"0x3eb475f0bc063c4f457199bae925b27d909f4af70ef7db78ba734972fc1a8543\"\n },\n callbackSelector: pancakeV2CallbackSelector,\n forkId: \"10\",\n fee: 2000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar CONVERGENCE = {\n factories: {\n [Chain.MOONBEAM]: \"0x9504d0d43189d208459e15c7f643aac1abe3735d\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.MOONBEAM]: \"0xcde9b0c75e2a4c1e9b2c8de91a208ff4917080e1dd07917fa1c80a02bc362374\"\n },\n callbackSelector: \"0xdf9aee6800000000000000000000000000000000000000000000000000000000\",\n // swapCall\n forkId: \"0\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar ZENLINK = {\n factories: {\n [Chain.MOONBEAM]: \"0x079710316b06BBB2c0FF4bEFb7D2DaC206c716A0\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.MOONBEAM]: \"0x4d57d13eb6abe5cc425bd08deb1f15f0562098dddc340a700527b4d98f95f4dd\"\n },\n callbackSelector: \"0xc919dcf000000000000000000000000000000000000000000000000000000000\",\n // zenlinkCall\n forkId: \"0\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar NINEMM_V2 = {\n factories: {\n [Chain.PULSECHAIN]: \"0x3a0fa7884dd93f3cd234bbe2a0958ef04b05e13b\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.PULSECHAIN]: \"0x21c2480291271d59dc471d22866dcd47b2cf3de1cfb32000578a8752022a6b83\"\n },\n callbackSelector: pancakeV2CallbackSelector,\n forkId: \"2\",\n fee: 2500n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar FATHOM = {\n factories: {\n [Chain.XDC_NETWORK]: \"0x9fAb572F75008A42c6aF80b36Ab20C76a38ABc4B\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.XDC_NETWORK]: \"0xa6d23746864049fd29713adbbf145eeecdddd2f9a91be053c057394dd5d7d9ad\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"2\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar VVS_V2 = {\n factories: {\n [Chain.CRONOS_MAINNET]: \"0x9fAb572F75008A42c6aF80b36Ab20C76a38ABc4B\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.CRONOS_MAINNET]: \"0xa77ee1cc0f39570ddde947459e293d7ebc2c30ff4e8fc45860afdcb2c2d3dc17\"\n },\n callbackSelector: \"0x38d7b3cb00000000000000000000000000000000000000000000000000000000\",\n // vvsCall\n forkId: \"2\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar KODIAK_V2 = {\n factories: {\n [Chain.BERACHAIN]: \"0x5e705e184d233ff2a7cb1553793464a9d0c3028f\"\n },\n codeHash: {\n // probably needs manual checks\n [Chain.BERACHAIN]: \"0x190cc7bdd70507a793b76d7bc2bf03e1866989ca7881812e0e1947b23e099534\"\n },\n callbackSelector: uniV2CallbackSelector,\n forkId: \"2\",\n fee: 3000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SQUADSWAP_V2 = {\n factories: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x918Adf1f2C03b244823Cd712E010B6e3CD653DbA\",\n [Chain.ARBITRUM_ONE]: \"0xba34aA640b8Be02A439221BCbea1f48c1035EEF9\",\n [Chain.BASE]: \"0xba34aA640b8Be02A439221BCbea1f48c1035EEF9\",\n [Chain.BLAST]: \"0x4B599f3425D54AfBf94bFD41EA9931fF92AD6551\",\n [Chain.POLYGON_MAINNET]: \"0xEE8F37D490CB7Ea1dae7d080c5738894731299f0\",\n [Chain.OP_MAINNET]: \"0xba34aA640b8Be02A439221BCbea1f48c1035EEF9\"\n },\n codeHash: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x666b17e0f0313ce8c608a4761ae7fd0e1c936c7c63eb833ac540370647c0efdb\",\n [Chain.ARBITRUM_ONE]: \"0x98859e91a2d7077a5647fc52bfa56461f1be3991cfafdee3a968bf5d9a947f22\",\n [Chain.BASE]: \"0x98859e91a2d7077a5647fc52bfa56461f1be3991cfafdee3a968bf5d9a947f22\",\n [Chain.BLAST]: \"0x58c2c3390cddef0a17aed31cf6b51cc4b11e96866b8b16a613fc7999daefb24e\",\n [Chain.POLYGON_MAINNET]: \"0x98859e91a2d7077a5647fc52bfa56461f1be3991cfafdee3a968bf5d9a947f22\",\n [Chain.OP_MAINNET]: \"0x98859e91a2d7077a5647fc52bfa56461f1be3991cfafdee3a968bf5d9a947f22\"\n },\n forkId: \"0\",\n callbackSelector: \"0xa691a9c900000000000000000000000000000000000000000000000000000000\",\n // squadswapCall\n fee: 2000n,\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar MIRA_FUEL = {\n factories: {\n [Chain.FUEL]: \"0x2e40f2b244b98ed6b8204b3de0156c6961f98525c8162f80162fcf53eebd90e7\"\n },\n codeHash: {\n [Chain.FUEL]: \"EXCLUDE\" /* EXCLUDE */\n },\n callbackSelector: \"EXCLUDE\" /* EXCLUDE */,\n forkId: \"0\",\n fee: 3000n,\n feeStable: 500n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar DIESEL_FUEL = {\n factories: {\n [Chain.FUEL]: \"0x7c293b054938bedca41354203be4c08aec2c3466412cac803f4ad62abf22e476\"\n },\n codeHash: {\n [Chain.FUEL]: \"EXCLUDE\" /* EXCLUDE */\n },\n callbackSelector: \"EXCLUDE\" /* EXCLUDE */,\n forkId: \"1\",\n fee: 3000n,\n feeStable: 500n,\n forkType: { default: \"Solidly\" /* Solidly */ }\n};\nvar UNISWAP_V2_FORKS = {\n [\"UNISWAP_V2\" /* UNISWAP_V2 */]: UNISWAP_V2,\n [\"SUSHISWAP_V2\" /* SUSHISWAP_V2 */]: SUSHI_V2,\n [\"PANCAKESWAP_V2\" /* PANCAKESWAP_V2 */]: PANCAKE_V2,\n [\"PASS\" /* PASS */]: PASS,\n [\"BISWAP_V2\" /* BISWAP_V2 */]: BISWAP_V2,\n [\"UBESWAP_V2\" /* UBESWAP_V2 */]: UBESWAP,\n [\"METROPOLIS_V2\" /* METROPOLIS_V2 */]: METROPOLIS_V2,\n [\"APESWAP\" /* APESWAP */]: APESWAP_V2,\n [\"WAULTSWAP\" /* WAULTSWAP */]: WAULTSWAP_V2,\n [\"DFYN\" /* DFYN */]: DFYN,\n [\"POLYCAT\" /* POLYCAT */]: POLYCAT,\n [\"COMETH\" /* COMETH */]: COMETH,\n [\"QUICKSWAP_V2\" /* QUICKSWAP_V2 */]: QUICKSWAP_V2,\n [\"SQUADSWAP_V2\" /* SQUADSWAP_V2 */]: SQUADSWAP_V2,\n [\"MERCHANT_MOE\" /* MERCHANT_MOE */]: MERCHANT_MOE,\n [\"FUSIONX_V2\" /* FUSIONX_V2 */]: FUSIONX_V2,\n [\"TAIKOSWAP\" /* TAIKOSWAP */]: TAIKOSWAP,\n [\"TROPICAL_SWAP\" /* TROPICAL_SWAP */]: TROPICAL_SWAP,\n [\"MANTLESWAP\" /* MANTLESWAP */]: MANTLESWAP,\n [\"TRADER_JOE_V1\" /* TRADER_JOE_V1 */]: TRADER_JOE_V1,\n [\"LYNEX_V1\" /* LYNEX_V1 */]: LYNEX_V1,\n [\"NILE\" /* NILE */]: NILE,\n [\"ZKSWAP_V2\" /* ZKSWAP_V2 */]: ZKSWAP_V2,\n [\"SPACEFI\" /* SPACEFI */]: SPACEFI,\n [\"SWAPR_V1\" /* SWAPR_V1 */]: SWAPR_V1,\n [\"HONEYSWAP\" /* HONEYSWAP */]: HONEYSWAP,\n [\"AXION_V2\" /* AXION_V2 */]: AXION_V2,\n [\"HYPERSWAP_V2\" /* HYPERSWAP_V2 */]: HYPERSWAP_V2,\n [\"DRAGONSWAP_V2\" /* DRAGONSWAP_V2 */]: DRAGONSWAP_V2,\n [\"KYO_V2\" /* KYO_V2 */]: KYO_V2,\n [\"SHADOW_CORE\" /* SHADOW_CORE */]: SHADOW_CORE,\n [\"ARCHERSWAP\" /* ARCHERSWAP */]: ARCHERSWAP,\n [\"PULSX_V1\" /* PULSX_V1 */]: PULSX_V1,\n [\"NINEMM_V2\" /* NINEMM_V2 */]: NINEMM_V2,\n [\"FATHOM\" /* FATHOM */]: FATHOM,\n [\"VVS_V2\" /* VVS_V2 */]: VVS_V2,\n [\"KODIAK_V2\" /* KODIAK_V2 */]: KODIAK_V2,\n [\"STELLASWAP_V2\" /* STELLASWAP_V2 */]: STELLASWAP_V2,\n [\"CONVERGENCE\" /* CONVERGENCE */]: CONVERGENCE,\n [\"SOLARFLARE\" /* SOLARFLARE */]: SOLARFLARE,\n [\"PADSWAP\" /* PADSWAP */]: PADSWAP,\n [\"ZENLINK\" /* ZENLINK */]: ZENLINK,\n // solidlies go without the stable & volatile\n [\"SHADOW_V2\" /* SHADOW_V2 */]: SHADOW_V2,\n [\"CAMELOT_V2\" /* CAMELOT_V2 */]: CAMELOT_V2,\n [\"VELOCIMETER\" /* VELOCIMETER */]: VELOCIMETER,\n [\"DYSTOPIA\" /* DYSTOPIA */]: DYSTOPIA,\n [\"RAMSES_V1\" /* RAMSES_V1 */]: RAMSES_V1,\n [\"PHARAOH_V1\" /* PHARAOH_V1 */]: PHARAOH_V1,\n [\"CLEOPATRA_V1\" /* CLEOPATRA_V1 */]: CLEOPATRA_V1,\n [\"KODO\" /* KODO */]: KODO,\n [\"STRATUM\" /* STRATUM */]: STRATUM,\n [\"SWAPX_V2\" /* SWAPX_V2 */]: SWAPX_V2,\n [\"CRUST_V1\" /* CRUST_V1 */]: CRUST_V1,\n [\"HERMES\" /* HERMES */]: HERMES,\n [\"HERCULES_V2\" /* HERCULES_V2 */]: HERCULES,\n [\"NETSWAP\" /* NETSWAP */]: NETSWAP,\n [\"VELODROME_V1\" /* VELODROME_V1 */]: VELODROME_V1,\n [\"VELODROME_V2\" /* VELODROME_V2 */]: VELODROME_V2,\n [\"KOI\" /* KOI */]: KOI,\n // fuel\n [\"MIRA\" /* MIRA */]: MIRA_FUEL,\n [\"DIESEL\" /* DIESEL */]: DIESEL_FUEL\n};\nvar uniswapV3InitHash = \"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54\";\nvar uniswapV3CallbackSelector = \"0xfa461e3300000000000000000000000000000000000000000000000000000000\";\nvar pancakeV3CallbackSelector = \"0x23a69e7500000000000000000000000000000000000000000000000000000000\";\nvar algebraV3CallbackSelector = \"0x2c8958f600000000000000000000000000000000000000000000000000000000\";\nvar ramsesV2CallbackSelector = \"0x654b648700000000000000000000000000000000000000000000000000000000\";\nvar UNISWAP_V3 = {\n factories: {\n [Chain.ETHEREUM_MAINNET]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [Chain.BASE]: \"0x33128a8fC17869897dcE68Ed026d694621f6FDfD\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7\",\n [Chain.AVALANCHE_C_CHAIN]: \"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD\",\n [Chain.BLAST]: \"0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd\",\n [Chain.SCROLL]: \"0x70C62C8b8e801124A4Aa81ce07b637A3e83cb919\",\n [Chain.LINEA]: \"0x31FAfd4889FA1269F7a13A66eE0fB458f27D72A9\",\n [Chain.MANTLE]: \"0x0d922Fb1Bc191F64970ac40376643808b4B74Df9\",\n [Chain.TAIKO_ALETHIA]: \"0x75FC67473A91335B5b8F8821277262a13B38c9b3\",\n [Chain.WORLD_CHAIN]: \"0x7a5028BDa40e7B173C278C5342087826455ea25a\",\n [Chain.GNOSIS]: \"0xe32F7dD7e3f098D518ff19A22d5f028e076489B1\",\n [Chain.SONIC_MAINNET]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\",\n [Chain.INK]: \"0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424\",\n [Chain.HEMI_NETWORK]: \"0x346239972d1fa486FC4a521031BC81bFB7D6e8a4\",\n [Chain.OP_MAINNET]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [Chain.ARBITRUM_ONE]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [Chain.POLYGON_MAINNET]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [Chain.CELO_MAINNET]: \"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc\",\n [Chain.ZKSYNC_MAINNET]: \"0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422\",\n [Chain.BOBA_NETWORK]: \"0xFFCd7Aed9C627E82A765c3247d562239507f6f1B\",\n [Chain.POLYGON_ZKEVM]: \"0xff83c3c800Fec21de45C5Ec30B69ddd5Ee60DFC2\",\n [Chain.MOONBEAM]: \"0x28f1158795A3585CaAA3cD6469CD65382b89BB70\",\n [Chain.FILECOIN_MAINNET]: \"0xB4C47eD546Fc31E26470a186eC2C5F19eF09BA41\",\n [Chain.ROOTSTOCK_MAINNET]: \"0xaF37EC98A00FD63689CF3060BF3B6784E00caD82\",\n [Chain.ZORA]: \"0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb\",\n [Chain.SEI_NETWORK]: \"0x75FC67473A91335B5b8F8821277262a13B38c9b3\",\n [Chain.MANTA_PACIFIC_MAINNET]: \"0x06D830e15081f65923674268121FF57Cc54e4e23\",\n [Chain.REDSTONE]: \"0xece75613Aa9b1680f0421E5B2eF376DF68aa83Bb\",\n [Chain.LISK]: \"0x0d922Fb1Bc191F64970ac40376643808b4B74Df9\",\n [Chain.BOB]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\",\n // [Chain.ZERO]: \"0xA1160e73B63F322ae88cC2d8E700833e71D0b2a1\",\n [Chain.METAL_L2]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\",\n [Chain.CYBER_MAINNET]: \"0x9701158fcF072c6852FD83B54D237e0cf5910C08\",\n [Chain.SAGA]: \"0x454050C4c9190390981Ac4b8d5AFcd7aC65eEffa\",\n [Chain.CORN]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\",\n [Chain.SHAPE]: \"0xeCf9288395797Da137f663a7DD0F0CDF918776F8\",\n [Chain.ABSTRACT]: \"0xA1160e73B63F322ae88cC2d8E700833e71D0b2a1\",\n [Chain.TELOS_EVM_MAINNET]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\",\n [Chain.LIGHTLINK_PHOENIX_MAINNET]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\",\n [Chain.GOAT_NETWORK]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\",\n [Chain.UNICHAIN]: \"0x1f98400000000000000000000000000000000003\",\n [Chain.XDC_NETWORK]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\",\n [Chain.PLASMA_MAINNET]: \"0xcb2436774C3e191c85056d248EF4260ce5f27A9D\"\n },\n codeHash: { default: uniswapV3InitHash },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"0\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SUSHISWAP_V3 = {\n factories: {\n [Chain.ARBITRUM_ONE]: \"0x1af415a1EbA07a4986a52B6f2e7dE7003D82231e\",\n [Chain.ARBITRUM_NOVA]: \"0xaa26771d497814E81D305c511Efbb3ceD90BF5bd\",\n [Chain.OP_MAINNET]: \"0x9c6522117e2ed1fE5bdb72bb0eD5E3f2bdE7DBe0\",\n [Chain.AVALANCHE_C_CHAIN]: \"0x3e603C14aF37EBdaD31709C4f848Fc6aD5BEc715\",\n [Chain.BASE]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.BLAST]: \"0x7680D4B43f3d1d54d6cfEeB2169463bFa7a6cf0d\",\n [Chain.BOBA_NETWORK]: \"0x0BE808376Ecb75a5CF9bB6D237d16cd37893d904\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x126555dd55a39328F69400d6aE4F782Bd4C34ABb\",\n [Chain.BITTORRENT_CHAIN_MAINNET]: \"0xBBDe1d67297329148Fe1ED5e6B00114842728e65\",\n [Chain.CELO_MAINNET]: \"0x93395129bd3fcf49d95730D3C2737c17990fF328\",\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.ETHEREUM_MAINNET]: \"0xbACEB8eC6b9355Dfc0269C18bac9d6E2Bdc29C4F\",\n [Chain.FANTOM_OPERA]: \"0x7770978eED668a3ba661d51a773d3a992Fc9DDCB\",\n [Chain.FILECOIN_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.FUSE_MAINNET]: \"0x1b9d177CcdeA3c79B6c8F40761fc8Dc9d0500EAa\",\n [Chain.GNOSIS]: \"0xf78031CBCA409F2FB6876BDFDBc1b2df24cF9bEf\",\n [Chain.HAQQ_NETWORK]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.KAVA]: \"0x1e9B24073183d5c6B7aE5FB4b8f0b1dd83FDC77a\",\n [Chain.LINEA]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x145d82bCa93cCa2AE057D1c6f26245d1b9522E6F\",\n [Chain.MOONBEAM]: \"0x2ecd58F51819E8F8BA08A650BEA04Fc0DEa1d523\",\n [Chain.MOONRIVER]: \"0x2F255d3f3C0A3726c6c99E74566c4b18E36E3ce6\",\n [Chain.OPBNB_MAINNET]: \"0x9c6522117e2ed1fE5bdb72bb0eD5E3f2bdE7DBe0\",\n [Chain.POLYGON_MAINNET]: \"0x917933899c6a5F8E37F31E19f92CdBFF7e8FF0e2\",\n [Chain.POLYGON_ZKEVM]: \"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506\",\n [Chain.ROOTSTOCK_MAINNET]: \"0x46B3fDF7b5CDe91Ac049936bF0bDb12c5d22202e\",\n [Chain.SCROLL]: \"0x46B3fDF7b5CDe91Ac049936bF0bDb12c5d22202e\",\n [Chain.SKALE_EUROPA_HUB]: \"0x51d15889b66A2c919dBbD624d53B47a9E8feC4bB\",\n [Chain.THUNDERCORE_MAINNET]: \"0xc35DADB65012eC5796536bD9864eD8773aBc74C4\",\n [Chain.ZETACHAIN_MAINNET]: \"0xB45e53277a7e0F1D35f2a77160e91e25507f1763\",\n [Chain.HEMI_NETWORK]: \"0xCdBCd51a5E8728E0AF4895ce5771b7d17fF71959\",\n [Chain.KATANA]: \"0x203e8740894c8955cB8950759876d7E7E45E04c1\"\n },\n codeHash: {\n default: uniswapV3InitHash,\n [Chain.BLAST]: \"0x8e13daee7f5a62e37e71bf852bcd44e7d16b90617ed2b17c24c2ee62411c5bae\",\n [Chain.KATANA]: \"0xe040f12c7cee3904b78f24f8fc395629c2e69525c2815da7a659f7483e378ecb\"\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"1\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar solidlyV3Factory = \"0x70Fe4a44EA505cFa3A57b95cF2862D4fd5F0f687\";\nvar solidlyV3InitHash = \"0xe9b68c5f77858eecac2e651646e208175e9b1359d68d0e14fc69f8c54e5010bf\";\nvar SOLIDLY_V3 = {\n factories: {\n [Chain.ETHEREUM_MAINNET]: solidlyV3Factory,\n [Chain.BASE]: solidlyV3Factory,\n [Chain.SONIC_MAINNET]: \"0x777fAca731b17E8847eBF175c94DbE9d81A8f630\"\n },\n codeHash: {\n default: solidlyV3InitHash\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"2\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar aerodromeInitHash = \"0xffb9af9ea6d9e39da47392ecc7055277b9915b8bfc9f83f105821b7791a6ae30\";\nvar AERODROME_SLIPSTREAM = {\n factories: {\n [Chain.BASE]: \"0x5e7BB104d84c7CB9B682AaC2F3d509f5F406809A\"\n },\n codeHash: { default: aerodromeInitHash },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"5\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar ALIENBASE_V3 = {\n factories: { [Chain.BASE]: \"0x0Fd83557b2be93617c9C1C1B6fd549401C74558C\" },\n codeHash: {\n default: uniswapV3InitHash\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"6\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar BASEX_V3 = {\n factories: { [Chain.BASE]: \"0x38015D05f4fEC8AFe15D7cc0386a126574e8077B\" },\n codeHash: {\n default: uniswapV3InitHash\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"7\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar DACKIESWAP_V3 = {\n factories: {\n [Chain.BASE]: \"0x4f205D69834f9B101b9289F7AFFAc9B77B3fF9b7\",\n [Chain.OP_MAINNET]: \"0xa466ebCfa58848Feb6D8022081f1C21a884889bB\",\n [Chain.ARBITRUM_ONE]: \"0xf79A36F6f440392C63AD61252a64d5d3C43F860D\",\n [Chain.BLAST]: \"0x6510E68561F04C1d111e616750DaC2a063FF5055\",\n [Chain.WORLD_CHAIN]: \"0xc6f3966E5D08Ced98aC30f8B65BeAB5882Be54C7\"\n },\n codeHash: {\n default: uniswapV3InitHash,\n [Chain.BLAST]: \"0x9173e4373ab542649f2f059b10eaab2181ad82cc2e70cf51cf9d9fa8a144a2af\"\n },\n callbackSelector: pancakeV3CallbackSelector,\n forkId: \"1\",\n forkType: { default: \"Pancake\" /* Pancake */ }\n};\nvar KINETIX_V3 = {\n factories: {\n [Chain.BASE]: \"0xdDF5a3259a88Ab79D5530eB3eB14c1C92CD97FCf\"\n },\n codeHash: {\n default: uniswapV3InitHash\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"8\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar DTX = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0xfCA1AEf282A99390B62Ca8416a68F5747716260c\"\n },\n codeHash: {\n [Chain.TAIKO_ALETHIA]: uniswapV3InitHash\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"10\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar pancakeSwapV3InitHash = \"0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2\";\nvar PANCAKESWAP_V3 = {\n factories: {\n [Chain.ETHEREUM_MAINNET]: \"0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9\",\n [Chain.BASE]: \"0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9\",\n [Chain.ARBITRUM_ONE]: \"0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9\",\n [Chain.POLYGON_ZKEVM]: \"0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9\",\n [Chain.ZKSYNC_MAINNET]: \"0x7f71382044A6a62595D5D357fE75CA8199123aD6\",\n [Chain.LINEA]: \"0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9\",\n [Chain.OPBNB_MAINNET]: \"0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9\"\n },\n codeHash: {\n default: pancakeSwapV3InitHash\n },\n callbackSelector: pancakeV3CallbackSelector,\n forkId: \"0\",\n forkType: { default: \"Pancake\" /* Pancake */ }\n};\nvar PANKO_V3 = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0x7DD105453D0AEf177743F5461d7472cC779e63f7\"\n },\n codeHash: {\n default: pancakeSwapV3InitHash\n },\n callbackSelector: pancakeV3CallbackSelector,\n forkId: \"1\",\n forkType: { default: \"Pancake\" /* Pancake */ }\n};\nvar FUSIONX_V3 = {\n factories: {\n [Chain.MANTLE]: \"0x7DD105453D0AEf177743F5461d7472cC779e63f7\"\n },\n codeHash: {\n default: \"0x1bce652aaa6528355d7a339037433a20cd28410e3967635ba8d2ddb037440dbf\"\n },\n callbackSelector: \"0xae067e0f00000000000000000000000000000000000000000000000000000000\",\n forkId: \"2\",\n forkType: { default: \"Pancake\" /* Pancake */ }\n};\nvar AGNI = {\n factories: {\n [Chain.MANTLE]: \"0xe9827b4ebeb9ae41fc57efdddd79edddc2ea4d03\"\n },\n codeHash: {\n default: \"0xaf9bd540c3449b723624376f906d8d3a0e6441ff18b847f05f4f85789ab64d9a\"\n },\n callbackSelector: \"0x5bee97a300000000000000000000000000000000000000000000000000000000\",\n forkId: \"0\",\n forkType: { default: \"Pancake\" /* Pancake */ }\n};\nvar METHLAB = {\n factories: {\n [Chain.MANTLE]: \"0x8f140fc3e9211b8dc2fc1d7ee3292f6817c5dd5d\"\n },\n codeHash: {\n default: \"0xacd26fbb15704ae5e5fe7342ea8ebace020e4fa5ad4a03122ce1678278cf382b\"\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"10\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar WAGMI = {\n factories: {\n [Chain.ETHEREUM_MAINNET]: \"0xB9a14EE1cd3417f3AcC988F61650895151abde24\",\n [Chain.SONIC_MAINNET]: \"0x56CFC796bC88C9c7e1b38C2b0aF9B7120B079aef\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0xE3Dc1A5a7aB81F1cC1895FA55034725c24a5BD0e\",\n [Chain.AVALANCHE_C_CHAIN]: \"0x08d6E1aE0f91423dDBD16f083ca39ccDd1D79cE8\",\n [Chain.POLYGON_MAINNET]: \"0x8bb1Be7acD806BF6C9766486dC4c21284a472BaC\",\n [Chain.FANTOM_OPERA]: \"0xaf20f5f19698f1D19351028cd7103B63D30DE7d7\",\n [Chain.ARBITRUM_ONE]: \"0x7301350CC76D669ea384e77aF38a70C61661CA48\",\n [Chain.OP_MAINNET]: \"0xC49c177736107fD8351ed6564136B9ADbE5B1eC3\",\n [Chain.KAVA]: \"0x0e0Ce4D450c705F8a0B6Dd9d5123e3df2787D16B\",\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x8112E18a34b63964388a3B2984037d6a2EFE5B8A\",\n [Chain.BASE]: \"0x576A1301B42942537d38FB147895fE83fB418fD4\",\n [Chain.IOTA_EVM]: \"0x01Bd510B2eA106917e711f9a05a42fC162bee2Ac\"\n },\n codeHash: {\n default: \"0x30146866f3a846fe3c636beb2756dbd24cf321bc52c9113c837c21f47470dfeb\"\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"15\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar MAIA_V3 = {\n factories: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0xf5fd18Cd5325904cC7141cB9Daca1F2F964B9927\"\n },\n codeHash: {\n default: uniswapV3InitHash\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"16\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar QUICKSWAP = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0x2D98E2FA9da15aa6dC9581AB097Ced7af697CB92\",\n [Chain.DOGECHAIN_MAINNET]: \"0x56c2162254b0E4417288786eE402c2B41d4e181e\",\n [Chain.SONEIUM]: \"0x7B446Bfb3763Ed0892f08893Eb06Dda79aB28CB9\"\n },\n codeHash: {\n default: \"0x6ec6c9c8091d160c0aa74b2b14ba9c1717e95093bd3ac085cee99a49aab294a4\",\n [Chain.SONEIUM]: \"0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"0\",\n forkType: { default: \"AlgebraV3\" /* AlgebraV3 */, [Chain.SONEIUM]: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar SWAPSICLE = {\n factories: {\n [Chain.MANTLE]: \"0x9dE2dEA5c68898eb4cb2DeaFf357DFB26255a4aa\",\n [Chain.TAIKO_ALETHIA]: \"0xb68b27a1c93A52d698EecA5a759E2E4469432C09\",\n [Chain.TELOS_EVM_MAINNET]: \"0x061e47Ab9f31D293172efb88674782f80eCa88de\"\n },\n codeHash: {\n [Chain.MANTLE]: \"0x177d5fbf994f4d130c008797563306f1a168dc689f81b2fa23b4396931014d91\",\n [Chain.TAIKO_ALETHIA]: \"0xf96d2474815c32e070cd63233f06af5413efc5dcb430aee4ff18cc29007c562d\",\n [Chain.TELOS_EVM_MAINNET]: \"0x177d5fbf994f4d130c008797563306f1a168dc689f81b2fa23b4396931014d91\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"1\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar HENJIN = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0x0d22b434E478386Cd3564956BFc722073B3508f6\"\n },\n codeHash: {\n [Chain.TAIKO_ALETHIA]: \"0x4b9e4a8044ce5695e06fce9421a63b6f5c3db8a561eebb30ea4c775469e36eaf\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"2\",\n forkType: { default: \"AlgebraV4_2\" /* AlgebraV4_2 */ }\n};\nvar MOLTEN = {\n factories: {\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0x24196b3f35E1B8313016b9f6641D605dCf48A76a\"\n },\n codeHash: {\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0xf96d2474815c32e070cd63233f06af5413efc5dcb430aee4ff18cc29007c562d\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"21\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar COREX = {\n factories: {\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0x526190295AFB6b8736B14E4b42744FBd95203A3a\"\n },\n codeHash: {\n [Chain.CORE_BLOCKCHAIN_MAINNET]: uniswapV3InitHash\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"5\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar CAMELOT = {\n factories: {\n [Chain.ARBITRUM_ONE]: \"0x6Dd3FB9653B10e806650F107C3B5A0a6fF974F65\"\n },\n codeHash: {\n [Chain.ARBITRUM_ONE]: \"0x6c1bebd370ba84753516bc1393c0d0a6c645856da55f5393ac8ab3d6dbc861d3\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"3\",\n forkType: { default: \"AlgebraV3_9\" /* AlgebraV3_9 */ }\n};\nvar ATLAS = {\n factories: {\n [Chain.HEMI_NETWORK]: \"0x6b46AE0e60E0E7a2F8614b3f1dCBf6D5a0102991\"\n },\n codeHash: {\n [Chain.HEMI_NETWORK]: \"0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"4\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar THENA = {\n factories: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0xc89F69Baa3ff17a842AB2DE89E5Fc8a8e2cc7358\"\n },\n codeHash: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0xd61302e7691f3169f5ebeca3a0a4ab8f7f998c01e55ec944e62cfb1109fd2736\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"5\",\n forkType: { default: \"AlgebraV3\" /* AlgebraV3 */ }\n};\nvar ZYBERSWAP = {\n factories: {\n [Chain.ARBITRUM_ONE]: \"0x24E85F5F94C6017d2d87b434394e87df4e4D56E3\",\n [Chain.OP_MAINNET]: \"0xc0D4323426C709e8D04B5b130e7F059523464a91\"\n },\n codeHash: {\n [Chain.ARBITRUM_ONE]: \"0x6ec6c9c8091d160c0aa74b2b14ba9c1717e95093bd3ac085cee99a49aab294a4\",\n [Chain.OP_MAINNET]: \"0xbce37a54eab2fcd71913a0d40723e04238970e7fc1159bfd58ad5b79531697e7\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"7\",\n forkType: {\n [Chain.ARBITRUM_ONE]: \"AlgebraV3\" /* AlgebraV3 */,\n [Chain.OP_MAINNET]: \"AlgebraV3_9\" /* AlgebraV3_9 */\n }\n};\nvar SKULLSWAP = {\n factories: {\n [Chain.FANTOM_OPERA]: \"0x630BC1372F73bf779AF5593A5a2Da68ABB3c6E55\"\n },\n codeHash: {\n [Chain.FANTOM_OPERA]: \"0x6ec6c9c8091d160c0aa74b2b14ba9c1717e95093bd3ac085cee99a49aab294a4\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"8\",\n forkType: { default: \"AlgebraV3\" /* AlgebraV3 */ }\n};\nvar UBESWAP2 = {\n factories: {\n [Chain.CELO_MAINNET]: \"0xcC980E18E3efa39e4dD98F057A432343D534314D\"\n },\n codeHash: {\n [Chain.CELO_MAINNET]: \"0x6ec6c9c8091d160c0aa74b2b14ba9c1717e95093bd3ac085cee99a49aab294a4\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"10\",\n forkType: { default: \"AlgebraV3\" /* AlgebraV3 */ }\n};\nvar LITX = {\n factories: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x9cF85CaAC177Fb2296dcc68004e1C82A757F95ed\"\n },\n codeHash: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x6ec6c9c8091d160c0aa74b2b14ba9c1717e95093bd3ac085cee99a49aab294a4\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"10\",\n forkType: { default: \"AlgebraV3\" /* AlgebraV3 */ }\n};\nvar STELLASWAP_V4 = {\n factories: {\n [Chain.MOONBEAM]: \"0x87a4F009f99E2F34A34A260bEa765877477c7EF9\"\n },\n codeHash: {\n [Chain.MOONBEAM]: \"0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"11\",\n forkType: { default: \"AlgebraV4_2\" /* AlgebraV4_2 */ }\n};\nvar STELLASWAP_V3 = {\n factories: {\n [Chain.MOONBEAM]: \"0x965A857955d868fd98482E9439b1aF297623fb94\"\n },\n codeHash: {\n [Chain.MOONBEAM]: \"0x424896f6cdc5182412012e0779626543e1dc4b12e1c45ee5718ae92f10ad97f2\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"10\",\n forkType: { default: \"AlgebraV3\" /* AlgebraV3 */ }\n};\nvar LYNEX = {\n factories: {\n [Chain.LINEA]: \"0x9A89490F1056A7BC607EC53F93b921fE666A2C48\"\n },\n codeHash: {\n [Chain.LINEA]: \"0xc65e01e65f37c1ec2735556a24a9c10e4c33b2613ad486dd8209d465524bc3f4\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"12\",\n forkType: { default: \"AlgebraV3_9\" /* AlgebraV3_9 */ }\n};\nvar SWAP_BASED = {\n factories: {\n [Chain.BASE]: \"0xe4DFd4ad723B5DB11aa41D53603dB03B117eC690\"\n },\n codeHash: {\n [Chain.BASE]: \"0xbce37a54eab2fcd71913a0d40723e04238970e7fc1159bfd58ad5b79531697e7\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"13\",\n forkType: { default: \"AlgebraV3_9\" /* AlgebraV3_9 */ }\n};\nvar SYNTHSWAP = {\n factories: {\n [Chain.BASE]: \"0xBA97f8AEe67BaE3105fB4335760B103F24998a92\"\n },\n codeHash: {\n [Chain.BASE]: \"0xbce37a54eab2fcd71913a0d40723e04238970e7fc1159bfd58ad5b79531697e7\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"14\",\n forkType: { default: \"AlgebraV3_9\" /* AlgebraV3_9 */ }\n};\nvar HERCULES2 = {\n factories: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x43AA9b2eD25F972fD8D44fDfb77a4a514eAB4d71\"\n },\n codeHash: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x6c1bebd370ba84753516bc1393c0d0a6c645856da55f5393ac8ab3d6dbc861d3\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"30\",\n forkType: { default: \"AlgebraV3_9\" /* AlgebraV3_9 */ }\n};\nvar KIM = {\n factories: {\n [Chain.MODE]: \"0x6414A461B19726410E52488d9D5ff33682701635\"\n },\n codeHash: {\n [Chain.MODE]: \"0xf96d2474815c32e070cd63233f06af5413efc5dcb430aee4ff18cc29007c562d\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"16\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar FENIX = {\n factories: {\n [Chain.BLAST]: \"0x5aCCAc55f692Ae2F065CEdDF5924C8f6B53cDaa8\"\n },\n codeHash: {\n [Chain.BLAST]: \"0xf45e886a0794c1d80aeae5ab5befecd4f0f2b77c0cf627f7c46ec92dc1fa00e4\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"17\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar BLADE = {\n factories: {\n [Chain.BLAST]: \"0xfFeEcb1fe0EAaEFeE69d122F6B7a0368637cb593\"\n },\n codeHash: {\n [Chain.BLAST]: \"0xa9df2657ce5872e94bdc9525588fd983b0aa5db2f3c7a83d7e6b6a99cd2003a1\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"18\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar SILVER_SWAP = {\n factories: {\n [Chain.FANTOM_OPERA]: \"0x98AF00a67F5cC0b362Da34283D7d32817F6c9A29\"\n },\n codeHash: {\n [Chain.FANTOM_OPERA]: \"0xf96d2474815c32e070cd63233f06af5413efc5dcb430aee4ff18cc29007c562d\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"19\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar HORIZON = {\n factories: {\n [Chain.LINEA]: \"0xA76990a229961280200165c4e08c96Ea67304C3e\"\n },\n codeHash: {\n [Chain.LINEA]: \"0xf96d2474815c32e070cd63233f06af5413efc5dcb430aee4ff18cc29007c562d\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"30\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar SWAPX = {\n factories: {\n [Chain.SONIC_MAINNET]: \"0x885229E48987EA4c68F0aA1bCBff5184198A9188\"\n },\n codeHash: {\n [Chain.SONIC_MAINNET]: \"0xf96d2474815c32e070cd63233f06af5413efc5dcb430aee4ff18cc29007c562d\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"22\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar BULLA = {\n factories: {\n [Chain.BERACHAIN]: \"0x425EC3de5FEB62897dbe239Aa218B2DC035DCDF1\"\n },\n codeHash: {\n [Chain.BERACHAIN]: \"0xf96d2474815c32e070cd63233f06af5413efc5dcb430aee4ff18cc29007c562d\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"23\",\n forkType: { default: \"AlgebraV4\" /* AlgebraV4 */ }\n};\nvar SCRIBE = {\n factories: {\n [Chain.SCROLL]: \"0xbAE27269D777D6fc0AefFa9DfAbA8960291E51eB\"\n },\n codeHash: {\n [Chain.SCROLL]: \"0x4b9e4a8044ce5695e06fce9421a63b6f5c3db8a561eebb30ea4c775469e36eaf\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"24\",\n forkType: { default: \"AlgebraV4_1\" /* AlgebraV4_1 */ }\n};\nvar FIBONACCI = {\n factories: {\n [Chain.FORM_NETWORK]: \"0x1d204Ba9fceD9E5a228727Cd4Ce89620B4e4999a\"\n },\n codeHash: {\n [Chain.FORM_NETWORK]: \"0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"25\",\n forkType: { default: \"AlgebraV4_2\" /* AlgebraV4_2 */ }\n};\nvar VOLTAGE = {\n factories: {\n [Chain.FUSE_MAINNET]: \"0x9F02d3ddbC690bc65d81A98B93d449528AC4eB8C\"\n },\n codeHash: {\n [Chain.FUSE_MAINNET]: \"0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"26\",\n forkType: { default: \"AlgebraV4_2\" /* AlgebraV4_2 */ }\n};\nvar WASABEE = {\n factories: {\n [Chain.BERACHAIN]: \"0x598f320907c2FFDBC715D591ffEcC3082bA14660\"\n },\n codeHash: {\n [Chain.BERACHAIN]: \"0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"27\",\n forkType: { default: \"AlgebraV4_2\" /* AlgebraV4_2 */ }\n};\nvar HOLIVERSE = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0x0b643D3A5903ED89921b85c889797dd9887125Ad\"\n },\n codeHash: {\n [Chain.POLYGON_MAINNET]: \"0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"28\",\n forkType: { default: \"AlgebraV4_2\" /* AlgebraV4_2 */ }\n};\nvar MOR_FI = {\n factories: {\n [Chain.MORPH]: \"0xc1db2471ea7ea9227ea02f427543177d63afe44f\"\n },\n codeHash: {\n [Chain.MORPH]: \"0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85\"\n },\n callbackSelector: algebraV3CallbackSelector,\n forkId: \"29\",\n forkType: { default: \"AlgebraV4_2\" /* AlgebraV4_2 */ }\n};\nvar SHADOW_CL = {\n factories: {\n [Chain.SONIC_MAINNET]: \"0x8BBDc15759a8eCf99A92E004E0C64ea9A5142d59\"\n },\n codeHash: {\n [Chain.SONIC_MAINNET]: \"0xc701ee63862761c31d620a4a083c61bdc1e81761e6b9c9267fd19afd22e0821d\"\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"11\",\n forkType: { default: \"AlgebraV4_2\" /* AlgebraV4_2 */ }\n};\nvar BUTTER = {\n factories: {\n [Chain.MANTLE]: \"0xEECa0a86431A7B42ca2Ee5F479832c3D4a4c2644\"\n },\n codeHash: {\n [Chain.MANTLE]: \"0xc7d06444331e4f63b0764bb53c88788882395aa31961eed3c2768cc9568323ee\"\n },\n callbackSelector: \"0xe5f6c0f800000000000000000000000000000000000000000000000000000000\",\n forkId: \"0\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar CRUST = {\n factories: {\n [Chain.MANTLE]: \"0xEaD128BDF9Cff441eF401Ec8D18a96b4A2d25252\"\n },\n codeHash: {\n [Chain.MANTLE]: \"0x55664e1b1a13929bcf29e892daf029637225ec5c85a385091b8b31dcca255627\"\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"12\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar RETRO = {\n factories: {\n [Chain.POLYGON_MAINNET]: \"0x91e1B99072f238352f59e58de875691e20Dc19c1\"\n },\n codeHash: {\n [Chain.POLYGON_MAINNET]: \"0x817e07951f93017a93327ac8cc31e946540203a19e1ecc37bc1761965c2d1090\"\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"13\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar NILE_CL = {\n factories: {\n [Chain.LINEA]: \"0xAAA32926fcE6bE95ea2c51cB4Fcb60836D320C42\"\n },\n codeHash: {\n [Chain.LINEA]: \"0x1565b129f2d1790f12d45301b9b084335626f0c92410bc43130763b69971135d\"\n },\n callbackSelector: ramsesV2CallbackSelector,\n forkId: \"2\",\n forkType: { default: \"Ramses\" /* Ramses */ }\n};\nvar KOI_CL = {\n factories: {\n [Chain.ZKSYNC_MAINNET]: \"0x488A92576DA475f7429BC9dec9247045156144D3\"\n },\n codeHash: {\n [Chain.ZKSYNC_MAINNET]: \"0x0100128b709068f187cf0a565f39cd8d90baf51a12a5717aebcdf69a503234b9\"\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"10\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar IZUMI = {\n factories: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x93BB94a0d5269cb437A1F71FF3a77AB753844422\",\n [Chain.ETHEREUM_MAINNET]: \"0x93BB94a0d5269cb437A1F71FF3a77AB753844422\",\n [Chain.MANTLE]: \"0x45e5F26451CDB01B0fA1f8582E0aAD9A6F27C218\",\n [Chain.POLYGON_MAINNET]: \"0xcA7e21764CD8f7c1Ec40e651E25Da68AeD096037\",\n [Chain.TAIKO_ALETHIA]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.ARBITRUM_ONE]: \"0xCFD8A067e1fa03474e79Be646c5f6b6A27847399\",\n [Chain.HEMI_NETWORK]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.METER_MAINNET]: \"0xed31C5a9C764761C3A699E2732183ba5d6EAcC35\",\n [Chain.ZKSYNC_MAINNET]: \"0x575Bfc57B0D3eA0d31b132D622643e71735A6957\",\n [Chain.ONTOLOGY_MAINNET]: \"0x032b241De86a8660f1Ae0691a4760B426EA246d7\",\n [Chain.LINEA]: \"0x45e5F26451CDB01B0fA1f8582E0aAD9A6F27C218\",\n [Chain.ETHEREUM_CLASSIC]: \"0x79D175eF5fBe31b5D84B3ee359fcbBB466153E39\",\n [Chain.BASE]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.OPBNB_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.KROMA]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.MANTA_PACIFIC_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.SCROLL]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.ZKFAIR_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.ZETACHAIN_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.MERLIN_MAINNET]: \"0xE29a6620DAc789B8a76e9b9eC8fE9B7cf2B663D5\",\n [Chain.BLAST]: \"0x5162f29E9626CF7186ec40ab97D92230B428ff2d\",\n [Chain.ZKLINK_NOVA_MAINNET]: \"0x33D9936b7B7BC155493446B5E6dDC0350EB83AEC\",\n [Chain.MODE]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.MAP_PROTOCOL]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n // [Chain.ANVN]: '0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08',\n [Chain.X_LAYER_MAINNET]: \"0xBf8F8Ef2d2a534773c61682Ea7cF5323a324B188\",\n [Chain.BOB]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.KAIA_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.KAVA]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.ROOTSTOCK_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.CYBER_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.CORE_BLOCKCHAIN_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.NEON_EVM_MAINNET]: \"0x3EF68D3f7664b2805D4E88381b64868a56f88bC4\",\n [Chain.GRAVITY_ALPHA_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.EVM_ON_FLOW]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.IOTEX_NETWORK_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.MORPH]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\",\n [Chain.HASHKEY_CHAIN]: \"0x110dE362cc436D7f54210f96b8C7652C2617887D\",\n [Chain.PLUME_MAINNET]: \"0x8c7d3063579BdB0b90997e18A770eaE32E1eBb08\"\n },\n codeHash: { default: \"0xbe0bfe068cdd78cafa3ddd44e214cfa4e412c15d7148e932f8043fe883865e40\" },\n forkId: \"0\",\n forkType: { default: \"Izumi\" /* Izumi */ }\n};\nvar BISWAP_V3 = {\n factories: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x7C3d53606f9c03e7f54abdDFFc3868E1C5466863\"\n },\n codeHash: { default: \"0x712a91d34948c3b3e0b473b519235f7d14dbf2472983bc5d3f7e67c501d7a348\" },\n forkId: \"1\",\n forkType: { default: \"Izumi\" /* Izumi */ }\n};\nvar SQUADSWAP_V3 = {\n factories: {\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x127AA917Ace4a3880fa5E193947F2190829144A4\",\n [Chain.ARBITRUM_ONE]: \"0xEa006904113a96995e51Cd9065CA6b9833da7fb1\",\n [Chain.BASE]: \"0x53616b1BAA9e224092Bbaf64f2FB5dA2b11dd62a\",\n [Chain.BLAST]: \"0xF99185C93274E5dE2DC8D52D3b9Fd917b1dD4A35\",\n [Chain.POLYGON_MAINNET]: \"0x6d3A3aC01E7ADaD98480b5d4951a83b141c8Fd75\",\n [Chain.OP_MAINNET]: \"0x53616b1BAA9e224092Bbaf64f2FB5dA2b11dd62a\"\n },\n codeHash: {\n default: \"0xff132c7c84e5449c9d69fc8490aba7f25fe4033e8889a13556c416128e1308cf\"\n },\n callbackSelector: \"0xc4e21d8600000000000000000000000000000000000000000000000000000000\",\n // squadV3SwapCallback\n forkId: \"30\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar RAMSES_V2 = {\n factories: {\n [Chain.ARBITRUM_ONE]: \"0xAA2cd7477c451E703f3B9Ba5663334914763edF8\"\n },\n codeHash: { default: \"0x1565b129f2d1790f12d45301b9b084335626f0c92410bc43130763b69971135d\" },\n callbackSelector: ramsesV2CallbackSelector,\n forkId: \"0\",\n forkType: { default: \"Ramses\" /* Ramses */ }\n};\nvar CLEOPATRA = {\n factories: {\n [Chain.MANTLE]: \"0xAAA32926fcE6bE95ea2c51cB4Fcb60836D320C42\"\n },\n codeHash: { default: \"0x1565b129f2d1790f12d45301b9b084335626f0c92410bc43130763b69971135d\" },\n callbackSelector: ramsesV2CallbackSelector,\n forkId: \"1\",\n forkType: { default: \"Ramses\" /* Ramses */ }\n};\nvar PHARAOH_CL = {\n factories: {\n [Chain.AVALANCHE_C_CHAIN]: \"0xAAA32926fcE6bE95ea2c51cB4Fcb60836D320C42\"\n },\n codeHash: { default: \"0x1565b129f2d1790f12d45301b9b084335626f0c92410bc43130763b69971135d\" },\n callbackSelector: ramsesV2CallbackSelector,\n forkId: \"1\",\n forkType: { default: \"Ramses\" /* Ramses */ }\n};\nvar ZKSWAP_V3 = {\n factories: {\n [Chain.ZKSYNC_MAINNET]: \"0x57d28Af38D126beFEbfDe996B7cDc34d58Ad4CFB\"\n },\n codeHash: { [Chain.ZKSYNC_MAINNET]: \"0x010012918CB9618AE4BA2ABC0113216D1639E06949000CAC6E32E7D7811E625D\" },\n callbackSelector: \"0xb527c5d000000000000000000000000000000000000000000000000000000000\",\n forkId: \"0\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar UNAGI_V3 = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0x78172691DD3B8ADa7aEbd9bFfB487FB11D735DB2\"\n },\n codeHash: { [Chain.TAIKO_ALETHIA]: \"0x5ccd5621c1bb9e44ce98cef8b90d31eb2423dec3793b6239232cefae976936ea\" },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"20\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar AXION_V3 = {\n factories: {\n [Chain.TAIKO_ALETHIA]: \"0x34a9F4a8F3A8d57Ec3B5ab823442572ae740C92f\"\n },\n codeHash: { [Chain.TAIKO_ALETHIA]: \"0x101e6602a77572eb84dbb680d0904690b023afbe1ba9323cc3cb2644c82ebd25\" },\n callbackSelector: \"0x0102795e00000000000000000000000000000000000000000000000000000000\",\n // axionV3SwapCallback\n forkId: \"0\",\n forkType: { default: \"Pancake\" /* Pancake */ }\n};\nvar HYPERSWAP_V3 = {\n factories: {\n [Chain.HYPEREVM]: \"0xB1c0fa0B789320044A6F623cFe5eBda9562602E3\"\n },\n codeHash: { [Chain.HYPEREVM]: \"0xe3572921be1688dba92df30c6781b8770499ff274d20ae9b325f4242634774fb\" },\n callbackSelector: uniswapV3CallbackSelector,\n // axionV3SwapCallback\n forkId: \"3\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar DRAGONSWAP_V3 = {\n factories: {\n [Chain.KAIA_MAINNET]: \"0x76d724e959D3013b5BB7d2593eb5121Ac004FF17\"\n },\n codeHash: { [Chain.KAIA_MAINNET]: \"0x2b1d8d8c1b720779a6233ba470422ae0cb55ef3c96f3be1b9533ff08b8f542c6\" },\n callbackSelector: pancakeV3CallbackSelector,\n // axionV3SwapCallback\n forkId: \"1\",\n forkType: { default: \"Pancake\" /* Pancake */ }\n};\nvar VELODROME_V3 = {\n factories: {\n [Chain.OP_MAINNET]: \"0xCc0bDDB707055e04e497aB22a59c2aF4391cd12F\",\n [Chain.CELO_MAINNET]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\",\n [Chain.SWELLCHAIN]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\",\n [Chain.SONEIUM]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\",\n [Chain.LISK]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\",\n [Chain.INK]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\",\n [Chain.MODE]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\",\n [Chain.FRAXTAL]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\",\n [Chain.UNICHAIN]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\",\n [Chain.BOB]: \"0x04625B046C69577EfC40e6c0Bb83CDBAfab5a55F\"\n },\n implementation: {\n [Chain.OP_MAINNET]: \"0xc28aD28853A547556780BEBF7847628501A3bCbb\",\n // remaining chains have consistent data\n default: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\"\n // [Chain.CELO_MAINNET]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n // [Chain.SWELLCHAIN]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n // [Chain.SONEIUM]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n // [Chain.LISK]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n // [Chain.INK]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n // [Chain.MODE]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n // [Chain.FRAXTAL]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n // [Chain.UNICHAIN]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n // [Chain.BOB]: \"0x321f7Dfb9B2eA9131B8C17691CF6e01E5c149cA8\",\n },\n codeHash: {\n // keccak256(hex\"363d3d373d3d3d363d73${implementation}5af43d82803e903d91602b57fd5bf3\")\n [Chain.OP_MAINNET]: \"0x339492e30b7a68609e535da9b0773082bfe60230ca47639ee5566007d525f5a7\",\n // remaining chains have consistent data\n default: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\"\n // [Chain.CELO_MAINNET]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n // [Chain.SWELLCHAIN]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n // [Chain.SONEIUM]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n // [Chain.LISK]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n // [Chain.INK]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n // [Chain.MODE]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n // [Chain.FRAXTAL]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n // [Chain.UNICHAIN]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n // [Chain.BOB]: \"0x7b216153c50849f664871825fa6f22b3356cdce2436e4f48734ae2a926a4c7e5\",\n },\n callbackSelector: uniswapV3CallbackSelector,\n forkId: \"19\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar KYO_V3 = {\n factories: {\n [Chain.SONEIUM]: \"0x137841043180BBA8EF52828F9030D1b7fE065F95\"\n },\n codeHash: { [Chain.SONEIUM]: \"0xf54c8516b0255aaf493382e8534bab492d4325d4c84374ac39f7fa643a5cfbcd\" },\n callbackSelector: uniswapV3CallbackSelector,\n // axionV3SwapCallback\n forkId: \"2\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar SONEX_V3 = {\n factories: {\n [Chain.SONEIUM]: \"0x3E4ff8662820E3dec3DACDb66ef1FFad5Dc5Ab83\"\n },\n codeHash: { [Chain.SONEIUM]: uniswapV3InitHash },\n callbackSelector: uniswapV3CallbackSelector,\n // axionV3SwapCallback\n forkId: \"1\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar NINEMM_V3 = {\n factories: {\n [Chain.PULSECHAIN]: \"0x00f37661fa1b2b8a530cfb7b6d5a5a6aed74177b\"\n },\n codeHash: { [Chain.PULSECHAIN]: pancakeSwapV3InitHash },\n callbackSelector: pancakeV3CallbackSelector,\n // axionV3SwapCallback\n forkId: \"3\",\n forkType: { default: \"Pancake\" /* Pancake */ }\n};\nvar VVS_V3 = {\n factories: {\n [Chain.CRONOS_MAINNET]: \"0x40aB11c64E9fF5368F09343Ac860dAfA34e14C35\"\n },\n codeHash: { [Chain.CRONOS_MAINNET]: \"0x3ea5f55d6524ce396b6eb0054ae36a854425f2ed4c48b04b78e228656dc0b7de\" },\n callbackSelector: \"0xa224ef8300000000000000000000000000000000000000000000000000000000\",\n // vvsV3SwapCallback\n forkId: \"3\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar KODIAK_V3 = {\n factories: {\n [Chain.BERACHAIN]: \"0xD84CBf0B02636E7f53dB9E5e45A616E05d710990\"\n },\n codeHash: { [Chain.BERACHAIN]: \"0xd8e2091bc519b509176fc39aeb148cc8444418d3ce260820edc44e806c2c2339\" },\n callbackSelector: uniswapV3CallbackSelector,\n // vvsV3SwapCallback\n forkId: \"3\",\n forkType: { default: \"Classic\" /* Classic */ }\n};\nvar UNISWAP_V3_FORKS = {\n [\"UNISWAP_V3\" /* UNISWAP_V3 */]: UNISWAP_V3,\n [\"SUSHISWAP_V3\" /* SUSHISWAP_V3 */]: SUSHISWAP_V3,\n [\"SOLIDLY_V3\" /* SOLIDLY_V3 */]: SOLIDLY_V3,\n [\"PANCAKESWAP_V3\" /* PANCAKESWAP_V3 */]: PANCAKESWAP_V3,\n [\"DACKIESWAP_V3\" /* DACKIESWAP_V3 */]: DACKIESWAP_V3,\n [\"ALIENBASE_V3\" /* ALIENBASE_V3 */]: ALIENBASE_V3,\n [\"BASEX_V3\" /* BASEX_V3 */]: BASEX_V3,\n [\"KINETIX_V3\" /* KINETIX_V3 */]: KINETIX_V3,\n [\"AERODROME_SLIPSTREAM\" /* AERODROME_SLIPSTREAM */]: AERODROME_SLIPSTREAM,\n [\"QUICKSWAP_V3\" /* QUICKSWAP_V3 */]: QUICKSWAP,\n [\"HENJIN\" /* HENJIN */]: HENJIN,\n [\"SWAPSICLE\" /* SWAPSICLE */]: SWAPSICLE,\n [\"AGNI\" /* AGNI */]: AGNI,\n [\"FUSIONX_V3\" /* FUSIONX_V3 */]: FUSIONX_V3,\n [\"METHLAB\" /* METHLAB */]: METHLAB,\n [\"PANKO\" /* PANKO */]: PANKO_V3,\n [\"CAMELOT\" /* CAMELOT */]: CAMELOT,\n [\"DTX\" /* DTX */]: DTX,\n [\"ATLAS\" /* ATLAS */]: ATLAS,\n [\"THENA\" /* THENA */]: THENA,\n [\"ZYBERSWAP\" /* ZYBERSWAP */]: ZYBERSWAP,\n [\"SKULLSWAP\" /* SKULLSWAP */]: SKULLSWAP,\n [\"UBESWAP\" /* UBESWAP */]: UBESWAP2,\n [\"LITX\" /* LITX */]: LITX,\n [\"STELLASWAP_V4\" /* STELLASWAP_V4 */]: STELLASWAP_V4,\n [\"LYNEX\" /* LYNEX */]: LYNEX,\n [\"SWAP_BASED\" /* SWAP_BASED */]: SWAP_BASED,\n [\"SYNTHSWAP\" /* SYNTHSWAP */]: SYNTHSWAP,\n [\"HERCULES\" /* HERCULES */]: HERCULES2,\n [\"KIM\" /* KIM */]: KIM,\n [\"FENIX\" /* FENIX */]: FENIX,\n [\"BLADE\" /* BLADE */]: BLADE,\n [\"SILVER_SWAP\" /* SILVER_SWAP */]: SILVER_SWAP,\n [\"HORIZON\" /* HORIZON */]: HORIZON,\n [\"SWAPX\" /* SWAPX */]: SWAPX,\n [\"BULLA\" /* BULLA */]: BULLA,\n [\"SCRIBE\" /* SCRIBE */]: SCRIBE,\n [\"FIBONACCI\" /* FIBONACCI */]: FIBONACCI,\n [\"VOLTAGE\" /* VOLTAGE */]: VOLTAGE,\n [\"WASABEE\" /* WASABEE */]: WASABEE,\n [\"HOLIVERSE\" /* HOLIVERSE */]: HOLIVERSE,\n [\"MOR_FI\" /* MOR_FI */]: MOR_FI,\n [\"SHADOW_CL\" /* SHADOW_CL */]: SHADOW_CL,\n [\"SQUADSWAP_V3\" /* SQUADSWAP_V3 */]: SQUADSWAP_V3,\n [\"BUTTER\" /* BUTTER */]: BUTTER,\n [\"CRUST\" /* CRUST */]: CRUST,\n [\"RETRO\" /* RETRO */]: RETRO,\n [\"WAGMI\" /* WAGMI */]: WAGMI,\n [\"MAIA_V3\" /* MAIA_V3 */]: MAIA_V3,\n [\"CLEOPATRA\" /* CLEOPATRA */]: CLEOPATRA,\n [\"RAMSES_V2\" /* RAMSES_V2 */]: RAMSES_V2,\n [\"PHARAOH_CL\" /* PHARAOH_CL */]: PHARAOH_CL,\n [\"VELODROME_V3\" /* VELODROME_V3 */]: VELODROME_V3,\n [\"NILE_CL\" /* NILE_CL */]: NILE_CL,\n [\"KOI_CL\" /* KOI_CL */]: KOI_CL,\n [\"ZKSWAP_V3\" /* ZKSWAP_V3 */]: ZKSWAP_V3,\n [\"UNAGI_V3\" /* UNAGI_V3 */]: UNAGI_V3,\n [\"AXION_V3\" /* AXION_V3 */]: AXION_V3,\n [\"HYPERSWAP_V3\" /* HYPERSWAP_V3 */]: HYPERSWAP_V3,\n [\"DRAGONSWAP_V3\" /* DRAGONSWAP_V3 */]: DRAGONSWAP_V3,\n [\"KYO_V3\" /* KYO_V3 */]: KYO_V3,\n [\"SONEX_V3\" /* SONEX_V3 */]: SONEX_V3,\n [\"COREX\" /* COREX */]: COREX,\n [\"MOLTEN\" /* MOLTEN */]: MOLTEN,\n [\"NINEMM_V3\" /* NINEMM_V3 */]: NINEMM_V3,\n [\"VVS_V3\" /* VVS_V3 */]: VVS_V3,\n [\"KODIAK_V3\" /* KODIAK_V3 */]: KODIAK_V3,\n [\"STELLASWAP_V3\" /* STELLASWAP_V3 */]: STELLASWAP_V3\n};\nvar IZUMI_FORKS = {\n [\"IZUMI\" /* IZUMI */]: IZUMI,\n [\"BISWAP_V3\" /* BISWAP_V3 */]: BISWAP_V3\n};\nvar UNISWAP_V4 = {\n pm: {\n [Chain.ETHEREUM_MAINNET]: \"0x000000000004444c5dc75cB358380D2e3dE08A90\",\n [Chain.ARBITRUM_ONE]: \"0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32\",\n [Chain.AVALANCHE_C_CHAIN]: \"0x06380C0e0912312B5150364B9DC4542BA0DbBc85\",\n [Chain.BASE]: \"0x498581fF718922c3f8e6A244956aF099B2652b2b\",\n [Chain.BLAST]: \"0x1631559198A9e474033433b2958daBC135ab6446\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF\",\n [Chain.OP_MAINNET]: \"0x9a13F98Cb987694C9F086b1F5eB990EeA8264Ec3\",\n [Chain.POLYGON_MAINNET]: \"0x67366782805870060151383F4BbFF9daB53e5cD6\",\n [Chain.WORLD_CHAIN]: \"0xb1860D529182ac3BC1F51Fa2ABd56662b7D13f33\",\n [Chain.ZORA]: \"0x0575338e4c17006ae181b47900a84404247ca30f\",\n [Chain.INK]: \"0x360e68faccca8ca495c1b759fd9eee466db9fb32\",\n [Chain.SONEIUM]: \"0x360e68faccca8ca495c1b759fd9eee466db9fb32\",\n [Chain.UNICHAIN]: \"0x000000000004444c5dc75cB358380D2e3dE08A90\"\n },\n forkId: \"0\"\n};\nvar UNISWAP_V4_FORKS = {\n [\"UNISWAP_V4\" /* UNISWAP_V4 */]: UNISWAP_V4\n};\nvar MAVERICK_V2_DATA = {\n codeHash: { default: \"0xbb7b783eb4b8ca46925c5384a6b9919df57cb83da8f76e37291f58d0dd5c439a\" },\n // https://docs.mav.xyz/technical-reference/contract-addresses/v2-contract-addresses\n // For chains: mainnet, base, bnb, arbitrum, scroll, sepolia\n factories: {\n [Chain.ETHEREUM_MAINNET]: \"0x0A7e848Aca42d879EF06507Fca0E7b33A0a63c1e\",\n [Chain.BASE]: \"0x0A7e848Aca42d879EF06507Fca0E7b33A0a63c1e\",\n [Chain.BNB_SMART_CHAIN_MAINNET]: \"0x0A7e848Aca42d879EF06507Fca0E7b33A0a63c1e\",\n [Chain.ARBITRUM_ONE]: \"0x0A7e848Aca42d879EF06507Fca0E7b33A0a63c1e\",\n [Chain.SCROLL]: \"0x0A7e848Aca42d879EF06507Fca0E7b33A0a63c1e\"\n }\n};\nvar MAVERICK_V2 = {\n [\"MAVERICK_V2\" /* MAVERICK_V2 */]: MAVERICK_V2_DATA\n};\nvar DODO_V2_FACTORIES = {\n [Chain.HEMI_NETWORK]: {\n DVMFactory: \"0x0226fCE8c969604C3A0AD19c37d1FAFac73e13c2\",\n DSPFactory: \"0x200D866Edf41070DE251Ef92715a6Ea825A5Eb80\",\n DPPFactory: \"0xc0F9553Df63De5a97Fe64422c8578D0657C360f7\"\n },\n [Chain.ARBITRUM_ONE]: {\n DVMFactory: \"0xDa4c4411c55B0785e501332354A036c04833B72b\",\n DPPFactory: \"0xa6Cf3d163358aF376ec5e8B7Cc5e102a05FdE63D\",\n DSPFactory: \"0xC8fE2440744dcd733246a4dB14093664DEFD5A53\"\n },\n [Chain.AURORA_MAINNET]: {\n DVMFactory: \"0x5515363c0412AdD5c72d3E302fE1bD7dCBCF93Fe\",\n DPPFactory: \"0x40672211D4310ad71daDc8cDE7Aa3Fb90d420855\",\n DSPFactory: \"0xbe9a66e49503e84ae59a4d0545365AABedf33b40\"\n },\n [Chain.AVALANCHE_C_CHAIN]: {\n DVMFactory: \"0xfF133A6D335b50bDAa6612D19E1352B049A8aE6a\",\n DPPFactory: \"0xb7865a5ceE051d35B09A48b624D7057d3362655a\",\n DSPFactory: \"0x2b0d94Eb7A63B8a2909dE1CB3951ecF7Ae76D2fE\"\n },\n [Chain.BNB_SMART_CHAIN_MAINNET]: {\n DVMFactory: \"0x790B4A80Fb1094589A3c0eFC8740aA9b0C1733fB\",\n DPPFactory: \"0xd9CAc3D964327e47399aebd8e1e6dCC4c251DaAE\",\n DSPFactory: \"0x0fb9815938Ad069Bf90E14FE6C596c514BEDe767\"\n },\n [Chain.BASE]: {\n DPPFactory: \"0xc0F9553Df63De5a97Fe64422c8578D0657C360f7\",\n DSPFactory: \"0x200D866Edf41070DE251Ef92715a6Ea825A5Eb80\",\n DVMFactory: \"0x0226fCE8c969604C3A0AD19c37d1FAFac73e13c2\"\n },\n [Chain.BITLAYER_MAINNET]: {\n DPPFactory: \"0x4c3c61cba411C9B60DC371b031262c730D3Da6a3\",\n DSPFactory: \"0x668D4eD054aa62d12F95a64aa1C7e2791f176D0e\",\n DVMFactory: \"0x7Ad992fcebd899ddbEF7f031dCF96f382b81ECea\"\n },\n [Chain.BOBA_NETWORK]: {\n DVMFactory: \"0x2F2f9460500F27db68AAfBfa0472cEDDb168a5a6\",\n DPPFactory: \"0x3a60A76aCAe8feeC74D6B5b665d4DBaab2abC406\",\n DSPFactory: \"0xfF133A6D335b50bDAa6612D19E1352B049A8aE6a\"\n },\n [Chain.CONFLUX_ESPACE]: {\n DSPFactory: \"0x9244EAa27266128610bad748625f512275A41a96\",\n DPPFactory: \"0xaC9a7053bC23D22ecC50F82cc9143d16bbC0E621\",\n DVMFactory: \"0xC77392396Be1FB5143f1f66A3Ae67dD03fbaBA27\"\n },\n [Chain.ETHEREUM_MAINNET]: {\n DVMFactory: \"0x72d220cE168C4f361dD4deE5D826a01AD8598f6C\",\n DPPFactory: \"0x5336edE8F971339F6c0e304c66ba16F1296A2Fbe\",\n DSPFactory: \"0x6fdDB76c93299D985f4d3FC7ac468F9A168577A4\"\n },\n [Chain.HASHKEY_CHAIN]: {\n DPPFactory: \"0x8Ebbfe204E7EdA4be46b9d09c5dfa8b3e1500462\",\n DSPFactory: \"0x297A4885a7da4AaeF340FABEd119e7a6E3f2BCe8\",\n DVMFactory: \"0x2235bB894b7600F1a370fc595Ee5477999A30441\"\n },\n [Chain.LINEA]: {\n DPPFactory: \"0x97bBF5BB1dcfC93A8c67e97E50Bea19DB3416A83\",\n DSPFactory: \"0x2933c0374089D7D98BA0C71c5E02E1A0e09deBEE\",\n DVMFactory: \"0xc0F9553Df63De5a97Fe64422c8578D0657C360f7\"\n },\n [Chain.MANTA_PACIFIC_MAINNET]: {\n DPPFactory: \"0xa71415675F68f29259ddD63215E5518d2735bf0a\",\n DSPFactory: \"0x29C7718e8B606cEF1c44Fe6e43e07aF9D0875DE1\",\n DVMFactory: \"0x97bBF5BB1dcfC93A8c67e97E50Bea19DB3416A83\"\n },\n [Chain.MANTLE]: {\n DPPFactory: \"0x46AF6b152F2cb02a3cFcc74014C2617BC4F6cD5C\",\n DSPFactory: \"0x7dB214f2D46d94846936a0f8Bd9044c5C5Bd2b93\",\n DVMFactory: \"0x29C7718e8B606cEF1c44Fe6e43e07aF9D0875DE1\"\n },\n [Chain.MOONRIVER]: {\n DVMFactory: \"0x738Ebf387A0CE0eb46b0eF8Fa5DEa2EaE6B1Df51\",\n DPPFactory: \"0xd0e1aA51dF0896c126Ce6F8A064E551e0DD3D39b\",\n DSPFactory: \"0xB76de21f04F677f07D9881174a1D8E624276314C\"\n },\n [Chain.OKXCHAIN_MAINNET]: {\n DVMFactory: \"0x9aE501385Bc7996A2A4a1FBb00c8d3820611BCB5\",\n DPPFactory: \"0xfdD51aAba2f949195a460121aA3f2D392d2524A9\",\n DSPFactory: \"0x44D5dF24d5Ef52A791D6436Fa45A8D426f6de34e\"\n },\n [Chain.OP_MAINNET]: {\n DVMFactory: \"0x2B800DC6270726F7E2266cE8cD5A3F8436fe0B40\",\n DPPFactory: \"0xDb9C53F2cED34875685B607c97A61a65DA2F30a8\",\n DSPFactory: \"0x1f83858cD6d0ae7a08aB1FD977C06DABEcE6d711\"\n },\n [Chain.POLYGON_MAINNET]: {\n DVMFactory: \"0x79887f65f83bdf15Bcc8736b5e5BcDB48fb8fE13\",\n DPPFactory: \"0xd24153244066F0afA9415563bFC7Ba248bfB7a51\",\n DSPFactory: \"0x43C49f8DD240e1545F147211Ec9f917376Ac1e87\"\n },\n [Chain.SCROLL]: {\n DVMFactory: \"0x5a0C840a7089aa222c4458b3BE0947fe5a5006DE\",\n DPPFactory: \"0x31AC053c31a77055b2ae2d3899091C0A9c19cE3a\",\n DSPFactory: \"0x7E9c460d0A10bd0605B15F0d0388e307d34a62E6\"\n },\n [Chain.X_LAYER_MAINNET]: {\n DPPFactory: \"0xA909314363840f7c28b8EC314028e21722dd8Cb6\",\n DSPFactory: \"0xda4a4c0033806a8D6a02a65FAaD43828C42b8c6C\",\n GSPFactory: \"0x5e132c0ABB9e4E5f1471eF6d1C9740c276Fe520e\",\n DVMFactory: \"0xcAcb29f0631612552eF50D4Fa02920910513b2B0\"\n },\n [Chain.ZIRCUIT_MAINNET]: {\n DPPFactory: \"0xb770C37F3A9eC6f25b791D9c791aDE09B0fb1AB8\",\n DSPFactory: \"0xA312D73C1b537168f1C8588bDcaB9278df98Cd32\",\n DVMFactory: \"0xA909314363840f7c28b8EC314028e21722dd8Cb6\"\n }\n};\nvar DODO_V2_DATA = {\n [\"DODO_V2\" /* DODO_V2 */]: DODO_V2_FACTORIES\n};\nvar TETHYS = {\n vault: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0xD2032462fd8A45C4BE8F5b90DE25eE3631ec1c2C\"\n },\n router: {\n [Chain.METIS_ANDROMEDA_MAINNET]: \"0x3931DB2254808F220e81e8e45666F709BA7BDebF\"\n }\n};\nvar GMX = {\n vault: {\n [Chain.ARBITRUM_ONE]: \"0x489ee077994B6658eAfA855C308275EAd8097C4A\",\n [Chain.AVALANCHE_C_CHAIN]: \"0x9ab2De34A33fB459b538c43f251eB825645e8595\"\n },\n router: {\n [Chain.ARBITRUM_ONE]: \"0x22199a49A999c351eF7927602CFB187ec3cae489\",\n [Chain.AVALANCHE_C_CHAIN]: \"0x5F719c2F1095F7B9fc68a68e35B51194f4b6abe8\"\n }\n};\nvar KTX = {\n vault: {\n [Chain.MANTLE]: \"0xD2032462fd8A45C4BE8F5b90DE25eE3631ec1c2C\",\n [Chain.ARBITRUM_ONE]: \"0xc657A1440d266dD21ec3c299A8B9098065f663Bb\"\n },\n vaultUtils: {\n [Chain.MANTLE]: \"0xbde9c699e719bb44811252FDb3B37E6D3eDa5a28\"\n }\n};\nvar GMX_FORKS = {\n [\"TETHYS\" /* TETHYS */]: TETHYS,\n [\"GMX\" /* GMX */]: GMX,\n [\"KTX\" /* KTX */]: KTX\n};\n\n// ../../node_modules/.pnpm/viem@2.36.0_typescript@5.9.2/node_modules/viem/_esm/constants/address.js\nvar zeroAddress = \"0x0000000000000000000000000000000000000000\";\n\n// src/data/dex/wnative.ts\nvar WNATIVE_ASSETS = {\n [Chain.CORE_BLOCKCHAIN_MAINNET]: [\n {\n chainId: \"1116\",\n decimals: 18,\n name: \"Wrapped CORE\",\n address: \"0x40375c92d9faf44d2f9db9bd9ba41a3317a2404f\",\n symbol: \"WCORE\"\n },\n {\n chainId: \"1116\",\n decimals: 18,\n name: \"Wrapped CORE OLD\",\n address: \"0xb0788b601c0d712702bc829b52771199ad8e33ff\",\n symbol: \"WCORE_OLD\"\n },\n {\n chainId: \"1116\",\n decimals: 18,\n name: \"Wrapped CORE\",\n address: \"0x191e94fa59739e188dce837f7f6978d84727ad01\",\n symbol: \"WCORE\"\n },\n {\n chainId: \"1116\",\n decimals: 18,\n name: \"CORE\",\n address: zeroAddress,\n symbol: \"CORE\"\n }\n ],\n [Chain.KAIA_MAINNET]: [\n {\n chainId: \"8217\",\n decimals: 18,\n name: \"Wrapped KLAY v10\",\n address: \"0xff3e7cf0c007f919807b32b30a4a9e7bd7bc4121\",\n symbol: \"WKLAY\"\n },\n {\n chainId: \"8217\",\n decimals: 18,\n name: \"Wrapped KAIA\",\n address: \"0x19aac5f612f524b754ca7e7c41cbfa2e981a4432\",\n symbol: \"WKAIA\"\n },\n // {\n // \"chainId\": \"8217\",\n // \"decimals\": 18,\n // \"name\": \"Wrapped KLAY\",\n // \"address\": \"0x5819b6af194a78511c79c85ea68d2377a7e9335f\",\n // \"symbol\": \"WKLAY\",\n // },\n // {\n // \"chainId\": \"8217\",\n // \"decimals\": 18,\n // \"name\": \"Wrapped Klay\",\n // \"address\": \"0xe4f05a66ec68b54a58b17c22107b02e0232cc817\",\n // \"symbol\": \"WKLAY\",\n // },\n {\n chainId: \"8217\",\n decimals: 18,\n name: \"Wrapped Klay\",\n address: \"0xe4f05a66ec68b54a58b17c22107b02e0232cc817\",\n symbol: \"WKLAY\"\n },\n {\n chainId: \"8217\",\n decimals: 18,\n name: \"KAIA\",\n address: zeroAddress,\n symbol: \"KAIA\"\n }\n ]\n};\nvar FLASH_LOAN_IDS = {\n /** Aave V3s */\n [Lender.AAVE_V3]: 0,\n [Lender.AAVE_V3_PRIME]: 1,\n [Lender.AAVE_V3_ETHER_FI]: 2,\n [Lender.AAVE_V3_HORIZON]: 3,\n // reserve for more aave V3s\n [Lender.SPARK]: 10,\n // xdc network lender\n [Lender.FATHOM]: 15,\n // Morph\n // [Lender.QUOKKA_LEND]: 15,\n // zerolends\n [Lender.ZEROLEND]: 20,\n [Lender.ZEROLEND_STABLECOINS_RWA]: 21,\n [Lender.ZEROLEND_ETH_LRTS]: 22,\n [Lender.ZEROLEND_BTC_LRTS]: 23,\n [Lender.ZEROLEND_CROAK]: 24,\n [Lender.ZEROLEND_FOXY]: 25,\n // avalons\n [Lender.AVALON]: 50,\n [Lender.AVALON_SOLVBTC]: 51,\n [Lender.AVALON_SWELLBTC]: 52,\n [Lender.AVALON_PUMPBTC]: 53,\n [Lender.AVALON_EBTC_LBTC]: 54,\n [Lender.AVALON_USDA]: 55,\n [Lender.AVALON_SKAIA]: 56,\n [Lender.AVALON_LORENZO]: 57,\n [Lender.AVALON_INNOVATION]: 58,\n [Lender.AVALON_UBTC]: 59,\n [Lender.AVALON_OBTC]: 60,\n [Lender.AVALON_BEETS]: 61,\n [Lender.AVALON_UNIIOTX]: 62,\n [Lender.AVALON_BOB]: 63,\n [Lender.AVALON_STBTC]: 64,\n [Lender.AVALON_WBTC]: 65,\n [Lender.AVALON_LBTC]: 66,\n [Lender.AVALON_XAUM]: 67,\n [Lender.AVALON_LISTA]: 68,\n [Lender.AVALON_USDX]: 69,\n [Lender.AVALON_UNIBTC]: 70,\n // more exotics\n [Lender.HANA]: 81,\n [Lender.PAC]: 81,\n [Lender.KINZA]: 82,\n [Lender.LENDOS]: 83,\n [Lender.MAGSIN]: 84,\n [Lender.XLEND]: 85,\n [Lender.RHOMBUS]: 86,\n [Lender.SAKE]: 87,\n [Lender.SAKE_ASTAR]: 88,\n [Lender.RMM]: 90,\n [Lender.LAYERBANK_V3]: 91,\n [Lender.HYPERLEND]: 81,\n [Lender.HYPURRFI]: 83,\n [Lender.HYPERYIELD]: 63,\n // colend\n [Lender.COLEND]: 102,\n [Lender.COLEND_LSTBTC]: 103,\n // Lendle isolateds\n [Lender.LENDLE_CMETH]: 102,\n [Lender.LENDLE_PT_CMETH]: 103,\n [Lender.LENDLE_SUSDE]: 104,\n [Lender.LENDLE_SUSDE_USDT]: 105,\n [Lender.LENDLE_METH_WETH]: 106,\n [Lender.LENDLE_METH_USDE]: 107,\n [Lender.LENDLE_CMETH_WETH]: 108,\n [Lender.LENDLE_CMETH_USDE]: 109,\n [Lender.LENDLE_CMETH_WMNT]: 110,\n [Lender.LENDLE_FBTC_WETH]: 111,\n [Lender.LENDLE_FBTC_USDE]: 112,\n [Lender.LENDLE_FBTC_WMNT]: 113,\n [Lender.LENDLE_WMNT_WETH]: 114,\n [Lender.LENDLE_WMNT_USDE]: 115,\n // exotic\n [Lender.YLDR]: 100,\n /** Aave V2s */\n [Lender.AAVE_V2]: 0,\n [Lender.AURELIUS]: 2,\n [Lender.LENDLE]: 1,\n [Lender.MERIDIAN]: 3,\n [Lender.TAKOTAKO]: 4,\n [Lender.TAKOTAKO_ETH]: 5,\n [Lender.NEREUS]: 6,\n [Lender.GRANARY]: 7,\n [Lender.LORE]: 8,\n [Lender.IRONCLAD]: 9,\n [Lender.MOLEND]: 10,\n [Lender.POLTER]: 11,\n [Lender.SEISMIC]: 12,\n [Lender.AGAVE]: 13,\n [Lender.MOOLA]: 14,\n [Lender.KLAP]: 15,\n [Lender.KLAYBANK]: 16,\n [Lender.VALAS]: 16,\n [Lender.PHIAT]: 16,\n [Lender.RADIANT_V2]: 20,\n // Morphos\n [Lender.MORPHO_BLUE]: 0,\n /** Balancer V2 */\n [\"BALANCER_V2\" /* BALANCER_V2 */]: 0,\n [\"SYMMETRIC\" /* SYMMETRIC */]: 1,\n [\"SWAAP\" /* SWAAP */]: 2,\n /** Singletons */\n [\"BALANCER_V3\" /* BALANCER_V3 */]: 0,\n [\"UNISWAP_V4\" /* UNISWAP_V4 */]: 0\n};\n\n// src/utils/forkIdMapping.ts\nfunction createStableAndVol(f) {\n return [f + \"_VOLATILE\", f + \"_STABLE\"];\n}\nvar DEX_PROTOCOL_FORK_IDS = {\n ...Object.fromEntries(Object.entries(UNISWAP_V2_FORKS).map(\n ([protocol, info]) => [\n \"RamsesV1\" /* RamsesV1 */,\n \"Solidly\" /* Solidly */\n ].includes(info.forkType?.default) ? createStableAndVol(protocol).map((a, i) => [a, String(Number(info.forkId) + i * 64)]) : (\n // expand for Solidly\n [[protocol, info.forkId]]\n )\n // single entry forn non-solidly\n ).reduce((acc, b) => [...acc, ...b], [])),\n ...Object.fromEntries(Object.entries(UNISWAP_V3_FORKS).map(([protocol, info]) => [protocol, info.forkId])),\n ...Object.fromEntries(Object.entries(IZUMI_FORKS).map(([protocol, info]) => [protocol, info.forkId])),\n ...Object.fromEntries(Object.entries(UNISWAP_V4_FORKS).map(([protocol, info]) => [protocol, info.forkId])),\n ...Object.fromEntries(Object.entries(BALANCER_V2_FORKS).map(([protocol, info]) => [protocol, info.forkId])),\n ...Object.fromEntries(Object.entries(BALANCER_V3_FORKS).map(([protocol, info]) => [protocol, info.forkId])),\n [\"DODO_V1\" /* DODO_V1 */]: \"0\",\n [\"DODO_V2\" /* DODO_V2 */]: \"1\",\n [\"WOO_FI\" /* WOO_FI */]: \"0\",\n [\"PANCAKE_STABLE\" /* PANCAKE_STABLE */]: \"0\",\n [\"FUSIONX_STABLE\" /* FUSIONX_STABLE */]: \"0\",\n [\"TRADER_JOE_LB_V2\" /* TRADER_JOE_LB_V2 */]: \"0\",\n [\"TRADER_JOE_LB_V21\" /* TRADER_JOE_LB_V21 */]: \"1\",\n [\"TRADER_JOE_LB_V22\" /* TRADER_JOE_LB_V22 */]: \"2\",\n [\"MERCHANT_MOE_LB\" /* MERCHANT_MOE_LB */]: \"3\",\n [\"SYNC_BASE\" /* SYNC_BASE */]: \"0\",\n [\"SYNC_RYTHM\" /* SYNC_RYTHM */]: \"1\",\n [\"SYNC_STABLE\" /* SYNC_STABLE */]: \"2\",\n [\"RITSU_BASE\" /* RITSU_BASE */]: \"0\",\n [\"RITSU_RYTHM\" /* RITSU_RYTHM */]: \"1\",\n [\"RITSU_STABLE\" /* RITSU_STABLE */]: \"2\",\n [\"MAVERICK_V2\" /* MAVERICK_V2 */]: \"0\",\n // GMX style - add for consistency\n [\"GMX\" /* GMX */]: \"0\",\n [\"KTX\" /* KTX */]: \"1\",\n [\"TETHYS\" /* TETHYS */]: \"2\"\n};\nfunction getForkIdFromDexProtocol(protocol) {\n return DEX_PROTOCOL_FORK_IDS[protocol];\n}\nfunction getDexProtocolsFromForkId(forkId) {\n return Object.entries(DEX_PROTOCOL_FORK_IDS).filter(([_, id]) => id === forkId).map(([protocol, _]) => protocol);\n}\nfunction getDexProtocolsByForkFamily(protocol) {\n const forkId = getForkIdFromDexProtocol(protocol);\n if (!forkId) return [protocol];\n const family = [];\n if (Object.keys(UNISWAP_V2_FORKS).includes(protocol)) {\n family.push(...Object.keys(UNISWAP_V2_FORKS));\n } else if (Object.keys(UNISWAP_V3_FORKS).includes(protocol)) {\n family.push(...Object.keys(UNISWAP_V3_FORKS));\n } else if (Object.keys(IZUMI_FORKS).includes(protocol)) {\n family.push(...Object.keys(IZUMI_FORKS));\n } else if (Object.keys(UNISWAP_V4_FORKS).includes(protocol)) {\n family.push(...Object.keys(UNISWAP_V4_FORKS));\n } else if (Object.keys(BALANCER_V2_FORKS).includes(protocol)) {\n family.push(...Object.keys(BALANCER_V2_FORKS));\n } else if (Object.keys(BALANCER_V3_FORKS).includes(protocol)) {\n family.push(...Object.keys(BALANCER_V3_FORKS));\n } else {\n family.push(protocol);\n }\n return family;\n}\nfunction getBalancerVaultsFromForkId(forkId) {\n const balancerFork = Object.keys(BALANCER_V2_FORKS).find((f) => BALANCER_V2_FORKS[f].forkId === forkId);\n if (!balancerFork) return [];\n return BALANCER_V2_FORKS[balancerFork].vault;\n}\n\nexport { BALANCER_V2_FORKS, BALANCER_V3_FORKS, DEX_PROTOCOL_FORK_IDS, DODO_V2_DATA, DexProtocol, DexValidation, FLASH_LOAN_IDS, GMX_FORKS, IZUMI_FORKS, MAVERICK_V2, UNISWAP_V2_FORKS, UNISWAP_V3_FORKS, UNISWAP_V4_FORKS, UniV2ForkType, UniV3ForkType, WNATIVE_ASSETS, getBalancerVaultsFromForkId, getDexProtocolsByForkFamily, getDexProtocolsFromForkId, getForkIdFromDexProtocol };\n","import {\n aaveReserves,\n compoundV2Reserves,\n compoundV3Reserves,\n morphoPools,\n} from '@1delta/data-sdk'\nimport {\n BALANCER_V2_FORKS,\n BALANCER_V3_FORKS,\n UNISWAP_V4_FORKS,\n} from '@1delta/dex-registry'\nimport lodash from 'lodash';\n\n// pull the functions you need\nconst { uniq } = lodash;\n\nfunction createAssetArrayPerChain() {\n let assetsPerChain: { [chainId: string]: string[] } = {}\n Object.entries(compoundV3Reserves() ?? {}).forEach(([lender, data]) => {\n Object.entries(data).forEach(([chainId, assetArray]) => {\n if (!assetsPerChain[chainId]) assetsPerChain[chainId] = []\n assetsPerChain[chainId] = uniq([\n ...assetsPerChain[chainId],\n ...assetArray,\n ])\n })\n })\n\n Object.entries(aaveReserves() ?? {}).forEach(([lender, data]) => {\n Object.entries(data).forEach(([chainId, assetArray]) => {\n if (!assetsPerChain[chainId]) assetsPerChain[chainId] = []\n assetsPerChain[chainId] = uniq([\n ...assetsPerChain[chainId],\n ...assetArray,\n ])\n })\n })\n\n Object.entries(compoundV2Reserves() ?? {}).forEach(([lender, data]) => {\n Object.entries(data).forEach(([chainId, assetArray]) => {\n if (!assetsPerChain[chainId]) assetsPerChain[chainId] = []\n assetsPerChain[chainId] = uniq([\n ...assetsPerChain[chainId],\n ...assetArray,\n ])\n })\n })\n return assetsPerChain\n}\n\nexport const RELEVANT_LENDING_ASSETS = () => createAssetArrayPerChain()\n\ninterface PoolData {\n pool: string\n address: string\n}\n\nfunction createSimpleArrayPerChain(\n fork: any,\n field: undefined | string = undefined,\n) {\n let pools: { [chainId: string]: PoolData[] } = {}\n Object.entries(fork ?? {}).forEach(([b2, data]: [string, any]) => {\n // @ts-ignore\n Object.entries(field ? data[field] : data).forEach(\n ([chainId, address]: [string, any]) => {\n if (!pools[chainId]) pools[chainId] = []\n pools[chainId] = uniq([...pools[chainId], { address, pool: b2 }])\n },\n )\n })\n return pools\n}\n\nexport const RELEVANT_BALANCER_V2_FORKS =\n createSimpleArrayPerChain(BALANCER_V2_FORKS)\n\nexport const RELEVANT_MORPHOB_FORKS = () =>\n createSimpleArrayPerChain(morphoPools())\n\nexport const RELEVANT_BALANCER_V3_FORKS = createSimpleArrayPerChain(\n BALANCER_V3_FORKS,\n 'vault',\n)\n\nexport const RELEVANT_UNISWAP_V4_FORKS = createSimpleArrayPerChain(\n UNISWAP_V4_FORKS,\n 'pm',\n)\n","export const FlashAbi = [\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"getConfiguration\",\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"asset\",\n \"type\": \"address\"\n }\n ]\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n \"type\": \"function\",\n \"stateMutability\": \"view\",\n \"outputs\": [\n {\n \"type\": \"uint256\",\n \"name\": \"\",\n \"internalType\": \"uint256\"\n }\n ],\n \"name\": \"FLASHLOAN_PREMIUM_TOTAL\",\n \"inputs\": []\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"addr\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"getEthBalance\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"balance\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n] as const","import { Chain } from '@1delta/chain-registry'\n\n// Uniswap interface Multicalls\nconst CELO_MULTICALL_ADDRESS = '0x633987602DE5C4F337e3DbF265303A1080324204'\nconst BNB_MULTICALL_ADDRESS = '0x963Df249eD09c358A4819E39d9Cd5736c3087184'\nconst MANTLE_MULTICALL_ADDRESS = '0x2A51f2F647E1883F88C992244dEd171238693107'\nconst ARBITRUM_ONE_MULTICALL_ADDRESS =\n '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB'\nconst LINEA_MULTICALL_ADDRESS = '0xac1cE734566f390A94b00eb9bf561c2625BF44ea'\nconst AVALANCHE_MULTICALL_ADDRESS = '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2'\nconst BASE_MULTICALL_ADDRESS = '0x091e99cb1C49331a94dD62755D168E941AbD0693'\nconst BLAST_MULTICALL_ADDRESS = '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705'\nconst TAIKO_MULTICALL_ADDRESS = '0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201'\nconst HEMI_MULTICALL_ADDRESS = '0x352A86168e6988A1aDF9A15Cb00017AAd3B67155'\nconst GNOSIS_MULTICALL_ADDRESS = '0x4dfa9a980efE4802E969AC33968E3d6E59B8a19e'\nconst MODE_MULTICALL_ADDRESS = '0xAB39cE30D98a59DFDa40A630b074170800bfF179'\nconst FANTOM_MULTICALL_ADDRESS = '0xDb51CffFf3B989d0cB6b58AbF173371b6F2d0D24'\nconst SCROLL_MULTICALL_ADDRESS = '0x3b615B1AC55bc34e51a81D3dea67467F32bcb8C2'\nconst SHAPE_MULTICALL_ADDRESS = '0x356A450B32f5030ae7083702b86FaFbBe7490411'\nconst SONIC_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'\nconst INK_MULTICALL_ADDRESS = '0xA0fCec583AeE6176527C07B198e5561722332014'\nconst METIS_MULTICALL_ADDRESS = '0x7a59ddbB76521E8982Fa3A08598C9a83b14A6C07'\nconst IOTA_MULTICALL_ADDRESS = '0x9683D433621A83aA7dd290106e1da85251317F55'\nconst KAVA_MULTICALL_ADDRESS = '0x8B741B0D79BE80E135C880F7583d427B4D41F015'\nconst CORN_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'\nconst SAGA_MULTICALL_ADDRESS = '0x743E03cceB4af2efA3CC76838f6E8B50B63F184c'\nconst CYBER_MULTICALL_ADDRESS = '0x906d6eB9CF8f64e100e44f8f491b833a8d40B530'\nconst METAL_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'\nconst ZERO_MULTICALL_ADDRESS = '0x9CA4dcb2505fbf536F6c54AA0a77C79f4fBC35C0'\nconst BOB_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'\nconst WORLDCHAIN_MULTICALL_ADDRESS =\n '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9'\nconst LISK_MULTICALL_ADDRESS = '0xE3dbcD53f4Ce1b06Ab200f4912BD35672e68f1FA'\nconst REDSTONE_MULTICALL_ADDRESS = '0xd57B52452a0FDfE3ff8e0A40Bd10D00D0bfe0723'\nconst MANTA_MULTICALL_ADDRESS = '0x52dFC0D9960F11A9Ca9FF616e791B91188446a60'\nconst ZORA_MULTICALL_ADDRESS = '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15'\nconst CORE_MULTICALL_ADDRESS = '0xFe9F82D820757787895Da00B1dBD35c3B8b04894'\nconst MORPH_MULTICALL_ADDRESS = '0xAcD82113982479B25E7c1D09858F0130921Dbbca'\nconst TELOS_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'\n\n/**\n * Uniswap Interface Multicall\n */\nexport const MULTICALL_ADDRESS: { [c: string]: string } = {\n [Chain.OP_MAINNET]: '0x1F98415757620B543A52E61c46B32eB19261F984',\n [Chain.POLYGON_MAINNET]: '0x1F98415757620B543A52E61c46B32eB19261F984',\n [Chain.ETHEREUM_MAINNET]: '0x1F98415757620B543A52E61c46B32eB19261F984',\n [Chain.ARBITRUM_ONE]: ARBITRUM_ONE_MULTICALL_ADDRESS,\n [Chain.BASE]: BASE_MULTICALL_ADDRESS,\n [Chain.CELO_MAINNET]: CELO_MULTICALL_ADDRESS,\n [Chain.BNB_SMART_CHAIN_MAINNET]: BNB_MULTICALL_ADDRESS,\n [Chain.MANTLE]: MANTLE_MULTICALL_ADDRESS,\n [Chain.BLAST]: BLAST_MULTICALL_ADDRESS,\n [Chain.LINEA]: LINEA_MULTICALL_ADDRESS,\n [Chain.AVALANCHE_C_CHAIN]: AVALANCHE_MULTICALL_ADDRESS,\n [Chain.TAIKO_ALETHIA]: TAIKO_MULTICALL_ADDRESS,\n [Chain.HEMI_NETWORK]: HEMI_MULTICALL_ADDRESS,\n [Chain.GNOSIS]: GNOSIS_MULTICALL_ADDRESS,\n [Chain.CORE_BLOCKCHAIN_MAINNET]: CORE_MULTICALL_ADDRESS,\n [Chain.METIS_ANDROMEDA_MAINNET]: METIS_MULTICALL_ADDRESS,\n [Chain.MODE]: MODE_MULTICALL_ADDRESS,\n [Chain.INK]: INK_MULTICALL_ADDRESS,\n [Chain.IOTA_EVM]: IOTA_MULTICALL_ADDRESS,\n [Chain.CORN]: CORN_MULTICALL_ADDRESS,\n [Chain.SONIC_MAINNET]: SONIC_MULTICALL_ADDRESS,\n [Chain.FANTOM_OPERA]: FANTOM_MULTICALL_ADDRESS,\n [Chain.SCROLL]: SCROLL_MULTICALL_ADDRESS,\n [Chain.SHAPE]: SHAPE_MULTICALL_ADDRESS,\n [Chain.CYBER_MAINNET]: CYBER_MULTICALL_ADDRESS,\n [Chain.ZORA]: ZORA_MULTICALL_ADDRESS,\n [Chain.MANTA_PACIFIC_MAINNET]: MANTA_MULTICALL_ADDRESS,\n [Chain.REDSTONE]: REDSTONE_MULTICALL_ADDRESS,\n [Chain.KAVA]: KAVA_MULTICALL_ADDRESS,\n [Chain.METAL_L2]: METAL_MULTICALL_ADDRESS,\n [Chain.LISK]: LISK_MULTICALL_ADDRESS,\n [Chain.BOB]: BOB_MULTICALL_ADDRESS,\n [Chain.ZERO_NETWORK]: ZERO_MULTICALL_ADDRESS,\n [Chain.SAGA]: SAGA_MULTICALL_ADDRESS,\n [Chain.MORPH]: MORPH_MULTICALL_ADDRESS,\n [Chain.TELOS_EVM_MAINNET]: TELOS_MULTICALL_ADDRESS,\n [Chain.WORLD_CHAIN]: WORLDCHAIN_MULTICALL_ADDRESS,\n}\n","import { getAaveStyleProtocolTokenMap, getAaveTypePoolAddress } from '../assets'\nimport { getAavesForChain } from '../utils'\nimport {\n RELEVANT_BALANCER_V2_FORKS,\n RELEVANT_BALANCER_V3_FORKS,\n RELEVANT_LENDING_ASSETS,\n RELEVANT_MORPHOB_FORKS,\n RELEVANT_UNISWAP_V4_FORKS,\n} from './assets'\nimport { Call } from '../utils/multicall'\nimport { MulticallRetryFunction, TokenList } from '../types'\nimport { FlashAbi } from '../abis/flashloan-united/flashAbi'\nimport { FlashLiquiditiesOnChain, FlashLoanIds } from './types'\nimport { FLASH_LOAN_IDS } from '@1delta/dex-registry'\nimport { formatUnits, zeroAddress } from 'viem'\nimport { AAVE_V2_LENDERS, AAVE_V3_LENDERS } from '@1delta/lender-registry'\nimport _ from 'lodash'\nimport { MULTICALL_ADDRESS } from '../utils/constants'\n\nconst DEFAULT_BATCH_SIZE = 4096\n\nenum BalanceFetchCall {\n balanceOf = 'balanceOf',\n getEthBalance = 'getEthBalance',\n}\n\n// Aave V3 flash loan flag enabled flag\nconst FLASHLOAN_ENABLED_MASK = BigInt(\n '0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF',\n)\nfunction getFlashLoanEnabled(data: bigint): boolean {\n return (data & ~FLASHLOAN_ENABLED_MASK) !== BigInt(0)\n}\n\nexport async function fetchFlashLiquidityForChain(\n chain: string,\n multicallRetry: MulticallRetryFunction,\n list: TokenList = {},\n) {\n let callLengths: { [l: string]: number } = {}\n let aaveAssets: { [l: string]: string[] } = {}\n\n let aaveCalls: Call[] = []\n\n const aaves = getAavesForChain()\n\n const aaveProtocols = aaves[chain] ?? []\n\n // we only ned to check aave flash liquidity for aave assets\n aaveProtocols.forEach((aaveFork) => {\n const underlyingsAndATokens = Object.entries(\n getAaveStyleProtocolTokenMap(chain, aaveFork),\n )\n\n const pool = getAaveTypePoolAddress(chain, aaveFork)\n\n const tokenCalls = underlyingsAndATokens\n .map(([a, b]: [string, any]) => [\n { name: BalanceFetchCall.balanceOf, address: a, args: [b.aToken] },\n { name: 'getConfiguration', address: pool, args: [a] },\n ])\n .reduce((acc, b) => [...acc, ...b], [])\n\n aaveAssets[aaveFork] = underlyingsAndATokens.map((a) => a[0])\n\n callLengths[aaveFork] = tokenCalls.length * 2 + 1\n\n aaveCalls = [\n ...aaveCalls,\n ...tokenCalls,\n { name: 'FLASHLOAN_PREMIUM_TOTAL', address: pool },\n ]\n })\n\n // @ts-ignore\n const morphoBs = RELEVANT_MORPHOB_FORKS()?.[chain] ?? []\n\n const otherAssets = RELEVANT_LENDING_ASSETS()?.[chain] ?? []\n\n let morphoCalls: Call[] = []\n\n if (morphoBs && morphoBs.length > 0) {\n morphoBs.forEach((bFork) => {\n callLengths[bFork.pool] = otherAssets.length\n morphoCalls = [\n ...morphoCalls,\n ...otherAssets.map((address) =>\n address === zeroAddress\n ? {\n name: BalanceFetchCall.getEthBalance,\n address: MULTICALL_ADDRESS[chain],\n args: [bFork.address],\n }\n : {\n name: BalanceFetchCall.balanceOf,\n address,\n args: [bFork.address],\n },\n ),\n ]\n })\n }\n\n const balancerV2s = RELEVANT_BALANCER_V2_FORKS[chain] ?? []\n\n let balancerV2Calls: Call[] = []\n if (balancerV2s && balancerV2s.length > 0) {\n balancerV2s.forEach((bFork) => {\n callLengths[bFork.pool] = otherAssets.length\n balancerV2Calls = [\n ...balancerV2Calls,\n ...otherAssets.map((address) =>\n address === zeroAddress\n ? {\n name: BalanceFetchCall.getEthBalance,\n address: MULTICALL_ADDRESS[chain],\n args: [bFork.address],\n }\n : {\n name: BalanceFetchCall.balanceOf,\n address,\n args: [bFork.address],\n },\n ),\n ]\n })\n }\n\n const balancerV3s = RELEVANT_BALANCER_V3_FORKS[chain] ?? []\n let balancerV3Calls: Call[] = []\n if (balancerV3s && balancerV3s.length > 0) {\n balancerV3s.forEach((bFork) => {\n callLengths[bFork.pool] = otherAssets.length\n balancerV3Calls = [\n ...balancerV3Calls,\n ...otherAssets.map((address) =>\n address === zeroAddress\n ? {\n name: BalanceFetchCall.getEthBalance,\n address: MULTICALL_ADDRESS[chain],\n args: [bFork.address],\n }\n : {\n name: BalanceFetchCall.balanceOf,\n address,\n args: [bFork.address],\n },\n ),\n ]\n })\n }\n\n const uniswapV4s = RELEVANT_UNISWAP_V4_FORKS[chain] ?? []\n let uniswapV4Calls: Call[] = []\n if (uniswapV4s && uniswapV4s.length > 0) {\n uniswapV4s.forEach((u4Fork) => {\n callLengths[u4Fork.pool] = otherAssets.length\n uniswapV4Calls = [\n ...uniswapV4Calls,\n ...otherAssets.map((address) =>\n address === zeroAddress\n ? {\n name: BalanceFetchCall.getEthBalance,\n address: MULTICALL_ADDRESS[chain],\n args: [u4Fork.address],\n }\n : {\n name: BalanceFetchCall.balanceOf,\n address,\n args: [u4Fork.address],\n },\n ),\n ]\n })\n }\n\n const calls = [\n ...aaveCalls,\n ...balancerV2Calls,\n ...morphoCalls,\n ...balancerV3Calls,\n ...uniswapV4Calls,\n ]\n\n const rawResults = await multicallRetry(\n chain,\n calls,\n FlashAbi,\n DEFAULT_BATCH_SIZE,\n 3,\n 0,\n false,\n )\n\n let liquidity: FlashLiquiditiesOnChain = {}\n\n let currentOffset = 0\n aaveProtocols.forEach((aave) => {\n const callLen = aaveAssets[aave].length * 2 + 1\n\n const data: any[] = rawResults.slice(currentOffset, callLen + currentOffset)\n const fee = data[callLen - 1]\n // update offset\n currentOffset += callLen\n\n aaveAssets[aave].forEach((asset, i) => {\n const decimals = list[asset]?.decimals\n const rawAmount = data[2 * i]\n\n const config = data[2 * i + 1]\n const enabled =\n !AAVE_V3_LENDERS.includes(aave as any) || getFlashLoanEnabled(config)\n if (enabled && rawAmount > 0n && FLASH_LOAN_IDS[aave] !== undefined) {\n if (!liquidity[asset]) liquidity[asset] = []\n liquidity[asset].push({\n id: FLASH_LOAN_IDS[aave],\n name: aave,\n type: AAVE_V2_LENDERS.includes(aave as any)\n ? FlashLoanIds.AAVE_V2\n : FlashLoanIds.AAVE_V3,\n source: getAaveTypePoolAddress(chain, aave),\n fee: fee.toString(),\n availableRaw: rawAmount.toString(),\n available: Number(formatUnits(rawAmount, decimals ?? 18)),\n decimals,\n })\n }\n })\n })\n\n balancerV2s.forEach((balancer) => {\n const callLen = otherAssets.length\n\n const data: any[] = rawResults.slice(currentOffset, callLen + currentOffset)\n // update offset\n currentOffset += callLen\n\n otherAssets.forEach((asset, i) => {\n const decimals = list[asset]?.decimals\n const rawAmount = data[i]\n if (rawAmount > 0n) {\n if (!liquidity[asset]) liquidity[asset] = []\n liquidity[asset].push({\n id: FLASH_LOAN_IDS[balancer.pool],\n name: balancer.pool,\n type: FlashLoanIds.BALANCER_V2,\n source: balancer.address,\n fee: '0',\n availableRaw: rawAmount.toString(),\n available: Number(formatUnits(rawAmount, decimals ?? 18)),\n decimals,\n })\n }\n })\n })\n\n morphoBs.forEach((morpho) => {\n const callLen = otherAssets.length\n\n const data: any[] = rawResults.slice(currentOffset, callLen + currentOffset)\n // update offset\n currentOffset += callLen\n\n otherAssets.forEach((asset, i) => {\n const rawAmount = data[i]\n if (rawAmount > 0n) {\n if (!liquidity[asset]) liquidity[asset] = []\n const decimals = list[asset]?.decimals\n liquidity[asset].push({\n id: FLASH_LOAN_IDS[morpho.pool],\n name: morpho.pool,\n type: FlashLoanIds.MORPHO,\n source: morpho.address,\n fee: '0',\n availableRaw: rawAmount.toString(),\n available: Number(formatUnits(rawAmount, decimals ?? 18)),\n decimals,\n })\n }\n })\n })\n\n balancerV3s.forEach((balancerV3) => {\n const callLen = otherAssets.length\n\n const data: any[] = rawResults.slice(currentOffset, callLen + currentOffset)\n // update offset\n currentOffset += callLen\n\n otherAssets.forEach((asset, i) => {\n const decimals = list[asset]?.decimals\n const rawAmount = data[i]\n if (rawAmount > 0n) {\n if (!liquidity[asset]) liquidity[asset] = []\n liquidity[asset].push({\n id: FLASH_LOAN_IDS[balancerV3.pool],\n name: balancerV3.pool,\n type: FlashLoanIds.SINGLETON,\n source: balancerV3.address,\n fee: '0',\n availableRaw: rawAmount.toString(),\n available: Number(formatUnits(rawAmount, decimals ?? 18)),\n decimals,\n })\n }\n })\n })\n\n uniswapV4s.forEach((uniV4) => {\n const callLen = otherAssets.length\n\n const data: any[] = rawResults.slice(currentOffset, callLen + currentOffset)\n // update offset\n currentOffset += callLen\n\n otherAssets.forEach((asset, i) => {\n const decimals = list[asset]?.decimals\n const rawAmount = data[i]\n if (rawAmount > 0n) {\n if (!liquidity[asset]) liquidity[asset] = []\n liquidity[asset].push({\n id: FLASH_LOAN_IDS[uniV4.pool],\n name: uniV4.pool,\n type: FlashLoanIds.SINGLETON,\n source: uniV4.address,\n fee: '0',\n availableRaw: rawAmount.toString(),\n available: Number(formatUnits(rawAmount, decimals ?? 18)),\n decimals,\n })\n }\n })\n })\n\n return liquidity\n}\n","import { toGenericPriceKey } from '../assets'\nimport { TokenList } from '../types'\nimport { FlashLiquiditiesOnChain } from './types'\n\n/**\n * Add prices to get dollar flash liquidties\n * Ideal for de-based flash loans\n */\nexport function attachPricesToFlashLiquidity(\n chainId: string,\n liq: FlashLiquiditiesOnChain,\n prices: { [k: string]: number },\n list: TokenList = {},\n) {\n let liqCopy = { ...liq }\n\n Object.entries(liq).forEach(([asset, entry]) => {\n const priceKey =\n list[asset]?.assetGroup ?? toGenericPriceKey(asset, chainId)\n const price = prices[priceKey] ?? 0\n liqCopy[asset] = entry.map((e) => ({\n ...e,\n availableUSD: e.available * price,\n }))\n })\n\n return liqCopy\n}\n"]}