@1delta/margin-fetcher 0.0.1

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 (418) hide show
  1. package/dist/abis/aave/AToken.d.ts +526 -0
  2. package/dist/abis/aave/AToken.d.ts.map +1 -0
  3. package/dist/abis/aave/AToken.js +686 -0
  4. package/dist/abis/aave/AaveOracle.d.ts +40 -0
  5. package/dist/abis/aave/AaveOracle.d.ts.map +1 -0
  6. package/dist/abis/aave/AaveOracle.js +53 -0
  7. package/dist/abis/aave/AavePoolAndDataProvider.d.ts +1618 -0
  8. package/dist/abis/aave/AavePoolAndDataProvider.d.ts.map +1 -0
  9. package/dist/abis/aave/AavePoolAndDataProvider.js +2080 -0
  10. package/dist/abis/aave/AavePoolV3.d.ts +819 -0
  11. package/dist/abis/aave/AavePoolV3.d.ts.map +1 -0
  12. package/dist/abis/aave/AavePoolV3.js +1060 -0
  13. package/dist/abis/aave/AavePoolV3Upgraded.d.ts +1134 -0
  14. package/dist/abis/aave/AavePoolV3Upgraded.d.ts.map +1 -0
  15. package/dist/abis/aave/AavePoolV3Upgraded.js +1474 -0
  16. package/dist/abis/aave/AaveV3ProtocolDataProvider.d.ts +420 -0
  17. package/dist/abis/aave/AaveV3ProtocolDataProvider.d.ts.map +1 -0
  18. package/dist/abis/aave/AaveV3ProtocolDataProvider.js +553 -0
  19. package/dist/abis/aave/VariableDebtToken.d.ts +635 -0
  20. package/dist/abis/aave/VariableDebtToken.d.ts.map +1 -0
  21. package/dist/abis/aave/VariableDebtToken.js +820 -0
  22. package/dist/abis/aave-v2/ProtocolDataProvider.d.ts +238 -0
  23. package/dist/abis/aave-v2/ProtocolDataProvider.d.ts.map +1 -0
  24. package/dist/abis/aave-v2/ProtocolDataProvider.js +312 -0
  25. package/dist/abis/aave-v2/YLDR.d.ts +209 -0
  26. package/dist/abis/aave-v2/YLDR.d.ts.map +1 -0
  27. package/dist/abis/aave-v2/YLDR.js +199 -0
  28. package/dist/abis/aave-v3/AavePoolDataProviderLegacy.d.ts +406 -0
  29. package/dist/abis/aave-v3/AavePoolDataProviderLegacy.d.ts.map +1 -0
  30. package/dist/abis/aave-v3/AavePoolDataProviderLegacy.js +460 -0
  31. package/dist/abis/aave-v3/AavePoolLegacy.d.ts +819 -0
  32. package/dist/abis/aave-v3/AavePoolLegacy.d.ts.map +1 -0
  33. package/dist/abis/aave-v3/AavePoolLegacy.js +1060 -0
  34. package/dist/abis/aurelius/Rewarder.d.ts +90 -0
  35. package/dist/abis/aurelius/Rewarder.d.ts.map +1 -0
  36. package/dist/abis/aurelius/Rewarder.js +118 -0
  37. package/dist/abis/compound-v2/CompoundLens.d.ts +656 -0
  38. package/dist/abis/compound-v2/CompoundLens.d.ts.map +1 -0
  39. package/dist/abis/compound-v2/CompoundLens.js +851 -0
  40. package/dist/abis/compound-v2/Comptroller.d.ts +1615 -0
  41. package/dist/abis/compound-v2/Comptroller.d.ts.map +1 -0
  42. package/dist/abis/compound-v2/Comptroller.js +2104 -0
  43. package/dist/abis/compound-v3/Comet.d.ts +1402 -0
  44. package/dist/abis/compound-v3/Comet.d.ts.map +1 -0
  45. package/dist/abis/compound-v3/Comet.js +1829 -0
  46. package/dist/abis/compound-v3/CometExt.d.ts +411 -0
  47. package/dist/abis/compound-v3/CometExt.d.ts.map +1 -0
  48. package/dist/abis/compound-v3/CometExt.js +536 -0
  49. package/dist/abis/compound-v3/CometLens.d.ts +152 -0
  50. package/dist/abis/compound-v3/CometLens.d.ts.map +1 -0
  51. package/dist/abis/compound-v3/CometLens.js +194 -0
  52. package/dist/abis/compound-v3/CometRewards.d.ts +253 -0
  53. package/dist/abis/compound-v3/CometRewards.d.ts.map +1 -0
  54. package/dist/abis/compound-v3/CometRewards.js +330 -0
  55. package/dist/abis/compound-v3/IrGetter.d.ts +24 -0
  56. package/dist/abis/compound-v3/IrGetter.d.ts.map +1 -0
  57. package/dist/abis/compound-v3/IrGetter.js +31 -0
  58. package/dist/abis/flashloan-united/flashAbi.d.ts +54 -0
  59. package/dist/abis/flashloan-united/flashAbi.d.ts.map +1 -0
  60. package/dist/abis/flashloan-united/flashAbi.js +72 -0
  61. package/dist/abis/init/Core.d.ts +523 -0
  62. package/dist/abis/init/Core.d.ts.map +1 -0
  63. package/dist/abis/init/Core.js +681 -0
  64. package/dist/abis/init/InitFlashAggregator.d.ts +624 -0
  65. package/dist/abis/init/InitFlashAggregator.d.ts.map +1 -0
  66. package/dist/abis/init/InitFlashAggregator.js +795 -0
  67. package/dist/abis/init/InitLens.d.ts +158 -0
  68. package/dist/abis/init/InitLens.d.ts.map +1 -0
  69. package/dist/abis/init/InitLens.js +203 -0
  70. package/dist/abis/init/PosManager.d.ts +802 -0
  71. package/dist/abis/init/PosManager.d.ts.map +1 -0
  72. package/dist/abis/init/PosManager.js +1055 -0
  73. package/dist/abis/lendle/IncentivesController.d.ts +404 -0
  74. package/dist/abis/lendle/IncentivesController.d.ts.map +1 -0
  75. package/dist/abis/lendle/IncentivesController.js +525 -0
  76. package/dist/abis/lendle/MultiFeeDistribution.d.ts +624 -0
  77. package/dist/abis/lendle/MultiFeeDistribution.d.ts.map +1 -0
  78. package/dist/abis/lendle/MultiFeeDistribution.js +820 -0
  79. package/dist/abis/meridian/PullRewardsIncentivesController.d.ts +74 -0
  80. package/dist/abis/meridian/PullRewardsIncentivesController.d.ts.map +1 -0
  81. package/dist/abis/meridian/PullRewardsIncentivesController.js +98 -0
  82. package/dist/abis/multicall/Multicall.d.ts +80 -0
  83. package/dist/abis/multicall/Multicall.d.ts.map +1 -0
  84. package/dist/abis/multicall/Multicall.js +101 -0
  85. package/dist/abis/oracle/AaveOracle.d.ts +40 -0
  86. package/dist/abis/oracle/AaveOracle.d.ts.map +1 -0
  87. package/dist/abis/oracle/AaveOracle.js +53 -0
  88. package/dist/abis/oracle/Api3Oracle.d.ts +48 -0
  89. package/dist/abis/oracle/Api3Oracle.d.ts.map +1 -0
  90. package/dist/abis/oracle/Api3Oracle.js +62 -0
  91. package/dist/abis/oracle/ChainLinkAggregator.d.ts +372 -0
  92. package/dist/abis/oracle/ChainLinkAggregator.d.ts.map +1 -0
  93. package/dist/abis/oracle/ChainLinkAggregator.js +480 -0
  94. package/dist/abis/oracle/RWADynamicOracle.d.ts +12 -0
  95. package/dist/abis/oracle/RWADynamicOracle.d.ts.map +1 -0
  96. package/dist/abis/oracle/RWADynamicOracle.js +15 -0
  97. package/dist/abis/oracle/UniswapV2Pair.d.ts +513 -0
  98. package/dist/abis/oracle/UniswapV2Pair.d.ts.map +1 -0
  99. package/dist/abis/oracle/UniswapV2Pair.js +659 -0
  100. package/dist/abis/uniswap/FeeOnTransferDetector.d.ts +102 -0
  101. package/dist/abis/uniswap/FeeOnTransferDetector.d.ts.map +1 -0
  102. package/dist/abis/uniswap/FeeOnTransferDetector.js +133 -0
  103. package/dist/abis/uniswap/UniswapV2Pair.d.ts +513 -0
  104. package/dist/abis/uniswap/UniswapV2Pair.d.ts.map +1 -0
  105. package/dist/abis/uniswap/UniswapV2Pair.js +659 -0
  106. package/dist/assets/index.d.ts +20 -0
  107. package/dist/assets/index.d.ts.map +1 -0
  108. package/dist/assets/index.js +54 -0
  109. package/dist/flash-liquidity/assets.d.ts +21 -0
  110. package/dist/flash-liquidity/assets.d.ts.map +1 -0
  111. package/dist/flash-liquidity/assets.js +45 -0
  112. package/dist/flash-liquidity/fetchLiquidity.d.ts +4 -0
  113. package/dist/flash-liquidity/fetchLiquidity.d.ts.map +1 -0
  114. package/dist/flash-liquidity/fetchLiquidity.js +235 -0
  115. package/dist/flash-liquidity/index.d.ts +2 -0
  116. package/dist/flash-liquidity/index.d.ts.map +1 -0
  117. package/dist/flash-liquidity/index.js +1 -0
  118. package/dist/flash-liquidity/types.d.ts +23 -0
  119. package/dist/flash-liquidity/types.d.ts.map +1 -0
  120. package/dist/flash-liquidity/types.js +8 -0
  121. package/dist/index.d.ts +8 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/dist/index.js +6 -0
  124. package/dist/lending/aave-v2-type/misc.d.ts +14 -0
  125. package/dist/lending/aave-v2-type/misc.d.ts.map +1 -0
  126. package/dist/lending/aave-v2-type/misc.js +8 -0
  127. package/dist/lending/aave-v2-type/publicCallBuild.d.ts +7 -0
  128. package/dist/lending/aave-v2-type/publicCallBuild.d.ts.map +1 -0
  129. package/dist/lending/aave-v2-type/publicCallBuild.js +102 -0
  130. package/dist/lending/aave-v2-type/publicCallParse.d.ts +7 -0
  131. package/dist/lending/aave-v2-type/publicCallParse.d.ts.map +1 -0
  132. package/dist/lending/aave-v2-type/publicCallParse.js +254 -0
  133. package/dist/lending/aave-v2-type/types.d.ts +78 -0
  134. package/dist/lending/aave-v2-type/types.d.ts.map +1 -0
  135. package/dist/lending/aave-v2-type/types.js +46 -0
  136. package/dist/lending/aave-v3-type/publicCallBuild.d.ts +4 -0
  137. package/dist/lending/aave-v3-type/publicCallBuild.d.ts.map +1 -0
  138. package/dist/lending/aave-v3-type/publicCallBuild.js +123 -0
  139. package/dist/lending/aave-v3-type/publicCallParse.d.ts +8 -0
  140. package/dist/lending/aave-v3-type/publicCallParse.d.ts.map +1 -0
  141. package/dist/lending/aave-v3-type/publicCallParse.js +304 -0
  142. package/dist/lending/aave-v3-type/types.d.ts +149 -0
  143. package/dist/lending/aave-v3-type/types.d.ts.map +1 -0
  144. package/dist/lending/aave-v3-type/types.js +90 -0
  145. package/dist/lending/addresses/aave.d.ts +10 -0
  146. package/dist/lending/addresses/aave.d.ts.map +1 -0
  147. package/dist/lending/addresses/aave.js +10 -0
  148. package/dist/lending/addresses/aaveV2.d.ts +6 -0
  149. package/dist/lending/addresses/aaveV2.d.ts.map +1 -0
  150. package/dist/lending/addresses/aaveV2.js +6 -0
  151. package/dist/lending/addresses/aurelius.d.ts +12 -0
  152. package/dist/lending/addresses/aurelius.d.ts.map +1 -0
  153. package/dist/lending/addresses/aurelius.js +12 -0
  154. package/dist/lending/addresses/compoundV3.d.ts +10 -0
  155. package/dist/lending/addresses/compoundV3.d.ts.map +1 -0
  156. package/dist/lending/addresses/compoundV3.js +35 -0
  157. package/dist/lending/addresses/contracts.d.ts +5 -0
  158. package/dist/lending/addresses/contracts.d.ts.map +1 -0
  159. package/dist/lending/addresses/contracts.js +49 -0
  160. package/dist/lending/addresses/hana.d.ts +6 -0
  161. package/dist/lending/addresses/hana.d.ts.map +1 -0
  162. package/dist/lending/addresses/hana.js +6 -0
  163. package/dist/lending/addresses/index.d.ts +2 -0
  164. package/dist/lending/addresses/index.d.ts.map +1 -0
  165. package/dist/lending/addresses/index.js +1 -0
  166. package/dist/lending/addresses/init.d.ts +4 -0
  167. package/dist/lending/addresses/init.d.ts.map +1 -0
  168. package/dist/lending/addresses/init.js +33 -0
  169. package/dist/lending/addresses/lendle.d.ts +12 -0
  170. package/dist/lending/addresses/lendle.d.ts.map +1 -0
  171. package/dist/lending/addresses/lendle.js +12 -0
  172. package/dist/lending/addresses/meridian.d.ts +12 -0
  173. package/dist/lending/addresses/meridian.d.ts.map +1 -0
  174. package/dist/lending/addresses/meridian.js +12 -0
  175. package/dist/lending/addresses/takotako.d.ts +12 -0
  176. package/dist/lending/addresses/takotako.d.ts.map +1 -0
  177. package/dist/lending/addresses/takotako.js +12 -0
  178. package/dist/lending/compound-v3/publicCallBuild.d.ts +3 -0
  179. package/dist/lending/compound-v3/publicCallBuild.d.ts.map +1 -0
  180. package/dist/lending/compound-v3/publicCallBuild.js +63 -0
  181. package/dist/lending/compound-v3/publicCallParse.d.ts +7 -0
  182. package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -0
  183. package/dist/lending/compound-v3/publicCallParse.js +119 -0
  184. package/dist/lending/compound-v3/types.d.ts +30 -0
  185. package/dist/lending/compound-v3/types.d.ts.map +1 -0
  186. package/dist/lending/compound-v3/types.js +6 -0
  187. package/dist/lending/fetchLender.d.ts +8 -0
  188. package/dist/lending/fetchLender.d.ts.map +1 -0
  189. package/dist/lending/fetchLender.js +104 -0
  190. package/dist/lending/index.d.ts +3 -0
  191. package/dist/lending/index.d.ts.map +1 -0
  192. package/dist/lending/index.js +2 -0
  193. package/dist/lending/init/publicCallBuild.d.ts +7 -0
  194. package/dist/lending/init/publicCallBuild.d.ts.map +1 -0
  195. package/dist/lending/init/publicCallBuild.js +21 -0
  196. package/dist/lending/init/publicCallParse.d.ts +10 -0
  197. package/dist/lending/init/publicCallParse.d.ts.map +1 -0
  198. package/dist/lending/init/publicCallParse.js +75 -0
  199. package/dist/lending/init/types.d.ts +38 -0
  200. package/dist/lending/init/types.d.ts.map +1 -0
  201. package/dist/lending/init/types.js +6 -0
  202. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts +4 -0
  203. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -0
  204. package/dist/lending/user-data/aave-v2-type/userCallBuild.js +106 -0
  205. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts +8 -0
  206. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -0
  207. package/dist/lending/user-data/aave-v2-type/userCallParse.js +225 -0
  208. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts +4 -0
  209. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -0
  210. package/dist/lending/user-data/aave-v3-type/userCallBuild.js +41 -0
  211. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts +8 -0
  212. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -0
  213. package/dist/lending/user-data/aave-v3-type/userCallParse.js +76 -0
  214. package/dist/lending/user-data/abis.d.ts +8422 -0
  215. package/dist/lending/user-data/abis.d.ts.map +1 -0
  216. package/dist/lending/user-data/abis.js +46 -0
  217. package/dist/lending/user-data/compound-v3/addresses.d.ts +10 -0
  218. package/dist/lending/user-data/compound-v3/addresses.d.ts.map +1 -0
  219. package/dist/lending/user-data/compound-v3/addresses.js +32 -0
  220. package/dist/lending/user-data/compound-v3/index.d.ts +4 -0
  221. package/dist/lending/user-data/compound-v3/index.d.ts.map +1 -0
  222. package/dist/lending/user-data/compound-v3/index.js +3 -0
  223. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +4 -0
  224. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -0
  225. package/dist/lending/user-data/compound-v3/userCallBuild.js +44 -0
  226. package/dist/lending/user-data/compound-v3/userCallParse.d.ts +8 -0
  227. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -0
  228. package/dist/lending/user-data/compound-v3/userCallParse.js +98 -0
  229. package/dist/lending/user-data/fetchUserData.d.ts +24 -0
  230. package/dist/lending/user-data/fetchUserData.d.ts.map +1 -0
  231. package/dist/lending/user-data/fetchUserData.js +76 -0
  232. package/dist/lending/user-data/index.d.ts +3 -0
  233. package/dist/lending/user-data/index.d.ts.map +1 -0
  234. package/dist/lending/user-data/index.js +2 -0
  235. package/dist/lending/user-data/init/userCallBuild.d.ts +8 -0
  236. package/dist/lending/user-data/init/userCallBuild.d.ts.map +1 -0
  237. package/dist/lending/user-data/init/userCallBuild.js +20 -0
  238. package/dist/lending/user-data/init/userCallParse.d.ts +8 -0
  239. package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -0
  240. package/dist/lending/user-data/init/userCallParse.js +87 -0
  241. package/dist/lending/user-data/types.d.ts +218 -0
  242. package/dist/lending/user-data/types.d.ts.map +1 -0
  243. package/dist/lending/user-data/types.js +26 -0
  244. package/dist/lending/user-data/utils/createGeneralUserState.d.ts +45 -0
  245. package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -0
  246. package/dist/lending/user-data/utils/createGeneralUserState.js +98 -0
  247. package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts +16 -0
  248. package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts.map +1 -0
  249. package/dist/lending/user-data/utils/createMultiAccountStyleUserState.js +96 -0
  250. package/dist/lending/user-data/utils/formatting/generalFormatters.d.ts +55 -0
  251. package/dist/lending/user-data/utils/formatting/generalFormatters.d.ts.map +1 -0
  252. package/dist/lending/user-data/utils/formatting/generalFormatters.js +109 -0
  253. package/dist/lending/user-data/utils/formatting/index.d.ts +2 -0
  254. package/dist/lending/user-data/utils/formatting/index.d.ts.map +1 -0
  255. package/dist/lending/user-data/utils/formatting/index.js +1 -0
  256. package/dist/lending/user-data/utils/index.d.ts +8 -0
  257. package/dist/lending/user-data/utils/index.d.ts.map +1 -0
  258. package/dist/lending/user-data/utils/index.js +17 -0
  259. package/dist/lending-pairs/computeLendingPairs.d.ts +30 -0
  260. package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -0
  261. package/dist/lending-pairs/computeLendingPairs.js +153 -0
  262. package/dist/lending-pairs/index.d.ts +2 -0
  263. package/dist/lending-pairs/index.d.ts.map +1 -0
  264. package/dist/lending-pairs/index.js +1 -0
  265. package/dist/prices/defillama/index.d.ts +3 -0
  266. package/dist/prices/defillama/index.d.ts.map +1 -0
  267. package/dist/prices/defillama/index.js +269 -0
  268. package/dist/prices/index.d.ts +3 -0
  269. package/dist/prices/index.d.ts.map +1 -0
  270. package/dist/prices/index.js +2 -0
  271. package/dist/prices/main-prices/addresses/aaveOracles.d.ts +279 -0
  272. package/dist/prices/main-prices/addresses/aaveOracles.d.ts.map +1 -0
  273. package/dist/prices/main-prices/addresses/aaveOracles.js +278 -0
  274. package/dist/prices/main-prices/addresses/api3.d.ts +6 -0
  275. package/dist/prices/main-prices/addresses/api3.d.ts.map +1 -0
  276. package/dist/prices/main-prices/addresses/api3.js +9 -0
  277. package/dist/prices/main-prices/addresses/chainlink.d.ts +740 -0
  278. package/dist/prices/main-prices/addresses/chainlink.d.ts.map +1 -0
  279. package/dist/prices/main-prices/addresses/chainlink.js +744 -0
  280. package/dist/prices/main-prices/fetchOracleData.d.ts +12 -0
  281. package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -0
  282. package/dist/prices/main-prices/fetchOracleData.js +308 -0
  283. package/dist/prices/main-prices/index.d.ts +2 -0
  284. package/dist/prices/main-prices/index.d.ts.map +1 -0
  285. package/dist/prices/main-prices/index.js +1 -0
  286. package/dist/types/apiReturnType.d.ts +74 -0
  287. package/dist/types/apiReturnType.d.ts.map +1 -0
  288. package/dist/types/apiReturnType.js +1 -0
  289. package/dist/types/index.d.ts +42 -0
  290. package/dist/types/index.d.ts.map +1 -0
  291. package/dist/types/index.js +10 -0
  292. package/dist/types/providers.d.ts +12 -0
  293. package/dist/types/providers.d.ts.map +1 -0
  294. package/dist/types/providers.js +1 -0
  295. package/dist/utils/constants.d.ts +30 -0
  296. package/dist/utils/constants.d.ts.map +1 -0
  297. package/dist/utils/constants.js +97 -0
  298. package/dist/utils/index.d.ts +19 -0
  299. package/dist/utils/index.d.ts.map +1 -0
  300. package/dist/utils/index.js +71 -0
  301. package/dist/utils/multicall.d.ts +5 -0
  302. package/dist/utils/multicall.d.ts.map +1 -0
  303. package/dist/utils/multicall.js +30 -0
  304. package/dist/utils/parsing.d.ts +14 -0
  305. package/dist/utils/parsing.d.ts.map +1 -0
  306. package/dist/utils/parsing.js +61 -0
  307. package/dist/yields/index.d.ts +21 -0
  308. package/dist/yields/index.d.ts.map +1 -0
  309. package/dist/yields/index.js +157 -0
  310. package/package.json +26 -0
  311. package/src/abis/aave/AToken.ts +686 -0
  312. package/src/abis/aave/AaveOracle.ts +53 -0
  313. package/src/abis/aave/AavePoolAndDataProvider.ts +2080 -0
  314. package/src/abis/aave/AavePoolV3.ts +1060 -0
  315. package/src/abis/aave/AavePoolV3Upgraded.ts +1474 -0
  316. package/src/abis/aave/AaveV3ProtocolDataProvider.ts +553 -0
  317. package/src/abis/aave/VariableDebtToken.ts +820 -0
  318. package/src/abis/aave-v2/ProtocolDataProvider.ts +312 -0
  319. package/src/abis/aave-v2/YLDR.ts +199 -0
  320. package/src/abis/aave-v3/AavePoolDataProviderLegacy.ts +459 -0
  321. package/src/abis/aave-v3/AavePoolLegacy.ts +1060 -0
  322. package/src/abis/aurelius/Rewarder.ts +118 -0
  323. package/src/abis/compound-v2/CompoundLens.ts +851 -0
  324. package/src/abis/compound-v2/Comptroller.ts +2104 -0
  325. package/src/abis/compound-v3/Comet.ts +1829 -0
  326. package/src/abis/compound-v3/CometExt.ts +536 -0
  327. package/src/abis/compound-v3/CometLens.ts +194 -0
  328. package/src/abis/compound-v3/CometRewards.ts +330 -0
  329. package/src/abis/compound-v3/IrGetter.ts +31 -0
  330. package/src/abis/flashloan-united/flashAbi.ts +72 -0
  331. package/src/abis/init/Core.ts +681 -0
  332. package/src/abis/init/InitFlashAggregator.ts +795 -0
  333. package/src/abis/init/InitLens.ts +203 -0
  334. package/src/abis/init/PosManager.ts +1055 -0
  335. package/src/abis/lendle/IncentivesController.ts +525 -0
  336. package/src/abis/lendle/MultiFeeDistribution.ts +820 -0
  337. package/src/abis/meridian/PullRewardsIncentivesController.ts +98 -0
  338. package/src/abis/multicall/Multicall.ts +101 -0
  339. package/src/abis/oracle/AaveOracle.ts +53 -0
  340. package/src/abis/oracle/Api3Oracle.ts +62 -0
  341. package/src/abis/oracle/ChainLinkAggregator.ts +480 -0
  342. package/src/abis/oracle/RWADynamicOracle.ts +15 -0
  343. package/src/abis/oracle/UniswapV2Pair.ts +659 -0
  344. package/src/abis/uniswap/FeeOnTransferDetector.ts +133 -0
  345. package/src/abis/uniswap/UniswapV2Pair.ts +659 -0
  346. package/src/assets/index.ts +82 -0
  347. package/src/flash-liquidity/assets.ts +61 -0
  348. package/src/flash-liquidity/fetchLiquidity.ts +300 -0
  349. package/src/flash-liquidity/index.ts +1 -0
  350. package/src/flash-liquidity/types.ts +20 -0
  351. package/src/index.ts +7 -0
  352. package/src/lending/aave-v2-type/misc.ts +9 -0
  353. package/src/lending/aave-v2-type/publicCallBuild.ts +105 -0
  354. package/src/lending/aave-v2-type/publicCallParse.ts +300 -0
  355. package/src/lending/aave-v2-type/types.ts +98 -0
  356. package/src/lending/aave-v3-type/publicCallBuild.ts +148 -0
  357. package/src/lending/aave-v3-type/publicCallParse.ts +373 -0
  358. package/src/lending/aave-v3-type/types.ts +181 -0
  359. package/src/lending/addresses/aave.ts +12 -0
  360. package/src/lending/addresses/aaveV2.ts +8 -0
  361. package/src/lending/addresses/aurelius.ts +13 -0
  362. package/src/lending/addresses/compoundV3.ts +42 -0
  363. package/src/lending/addresses/contracts.ts +54 -0
  364. package/src/lending/addresses/hana.ts +7 -0
  365. package/src/lending/addresses/index.ts +1 -0
  366. package/src/lending/addresses/init.ts +37 -0
  367. package/src/lending/addresses/lendle.ts +13 -0
  368. package/src/lending/addresses/meridian.ts +13 -0
  369. package/src/lending/addresses/takotako.ts +14 -0
  370. package/src/lending/compound-v3/publicCallBuild.ts +74 -0
  371. package/src/lending/compound-v3/publicCallParse.ts +143 -0
  372. package/src/lending/compound-v3/types.ts +43 -0
  373. package/src/lending/fetchLender.ts +138 -0
  374. package/src/lending/index.ts +2 -0
  375. package/src/lending/init/publicCallBuild.ts +29 -0
  376. package/src/lending/init/publicCallParse.ts +90 -0
  377. package/src/lending/init/types.ts +50 -0
  378. package/src/lending/user-data/aave-v2-type/userCallBuild.ts +142 -0
  379. package/src/lending/user-data/aave-v2-type/userCallParse.ts +328 -0
  380. package/src/lending/user-data/aave-v3-type/userCallBuild.ts +58 -0
  381. package/src/lending/user-data/aave-v3-type/userCallParse.ts +115 -0
  382. package/src/lending/user-data/abis.ts +45 -0
  383. package/src/lending/user-data/compound-v3/addresses.ts +40 -0
  384. package/src/lending/user-data/compound-v3/index.ts +3 -0
  385. package/src/lending/user-data/compound-v3/userCallBuild.ts +53 -0
  386. package/src/lending/user-data/compound-v3/userCallParse.ts +123 -0
  387. package/src/lending/user-data/fetchUserData.ts +121 -0
  388. package/src/lending/user-data/index.ts +2 -0
  389. package/src/lending/user-data/init/userCallBuild.ts +26 -0
  390. package/src/lending/user-data/init/userCallParse.ts +115 -0
  391. package/src/lending/user-data/types.ts +280 -0
  392. package/src/lending/user-data/utils/createGeneralUserState.ts +118 -0
  393. package/src/lending/user-data/utils/createMultiAccountStyleUserState.ts +113 -0
  394. package/src/lending/user-data/utils/formatting/generalFormatters.ts +121 -0
  395. package/src/lending/user-data/utils/formatting/index.ts +1 -0
  396. package/src/lending/user-data/utils/index.ts +19 -0
  397. package/src/lending-pairs/computeLendingPairs.ts +213 -0
  398. package/src/lending-pairs/index.ts +1 -0
  399. package/src/prices/defillama/index.ts +306 -0
  400. package/src/prices/index.ts +2 -0
  401. package/src/prices/main-prices/addresses/aaveOracles.ts +279 -0
  402. package/src/prices/main-prices/addresses/api3.ts +10 -0
  403. package/src/prices/main-prices/addresses/chainlink.ts +750 -0
  404. package/src/prices/main-prices/fetchOracleData.ts +406 -0
  405. package/src/prices/main-prices/index.ts +1 -0
  406. package/src/types/apiReturnType.ts +80 -0
  407. package/src/types/index.ts +38 -0
  408. package/src/types/providers.ts +26 -0
  409. package/src/utils/constants.ts +100 -0
  410. package/src/utils/index.ts +87 -0
  411. package/src/utils/multicall.ts +53 -0
  412. package/src/utils/parsing.ts +75 -0
  413. package/src/yields/index.ts +198 -0
  414. package/test/index.test.ts +104 -0
  415. package/test/lenderData.test.ts +13718 -0
  416. package/test/mainPrices.test.ts +35 -0
  417. package/test/userdata.test.ts +200 -0
  418. package/tsconfig.json +28 -0
@@ -0,0 +1,406 @@
1
+ import { AaveOracleAbi } from '../../abis/oracle/AaveOracle'
2
+ import { UniswapV2PairAbi } from '../../abis/oracle/UniswapV2Pair'
3
+ import { ChainLinkAggregatorAbi } from '../../abis/oracle/ChainLinkAggregator'
4
+ import { Api3OracleAbi } from '../../abis/oracle/Api3Oracle'
5
+ import { RWADynamicOracleAbi } from '../../abis/oracle/RWADynamicOracle'
6
+
7
+ import { api3OracleAddresses } from './addresses/api3'
8
+ import { AAVE_V2_LENDERS, ASSET_META, Chain } from '@1delta/asset-registry'
9
+ import { formatEther, formatUnits, zeroAddress } from 'viem'
10
+ import { getAaveAssets } from '../../assets'
11
+ import { chainlinkOracles, getChainLinkKeys, ChainlinkAggregatorIndexes } from './addresses/chainlink'
12
+ import { fetchDefillamaData } from '../defillama'
13
+ import { multicallViemAbiArray } from '../../utils/multicall'
14
+ import { AAVE_STYLE_ORACLES } from './addresses/aaveOracles'
15
+ import { AAVES_PER_CHAIN } from '../../utils'
16
+ import { GetEvmClientFunction } from '../../types'
17
+
18
+ export const formatAavePrice = (price: string, chainId: string, isV2 = false): number => {
19
+ return Number(formatEther(BigInt(price ?? '0') * (
20
+ // 10^(18 - decimals)
21
+ 10n ** (isV2 ? 0n : 10n)
22
+ )))
23
+ }
24
+
25
+ export const parseRawAmount = (answer?: string, decimals = 18): number => {
26
+ if (!answer || answer === "0x") return 0
27
+ try {
28
+ return Number(formatUnits(BigInt(answer ?? '0'), decimals ?? 18))
29
+ } catch (e) {
30
+ return 0
31
+ }
32
+ }
33
+
34
+ const LENDLE_PAIR_MANTLE = '0x4c57BE599d0e0414785943569E9B6A66dA79Aa6b'
35
+ const AU_PAIR_MANTLE = '0x709503fbb50b10f921e812c48fbd5c5522a0b20c'
36
+ const WMNT_USDT_PAIR = '0x3e5922cd0cec71dc2d60ec8b36aa4c05b7c1672f'
37
+ const RWA_DYNAMIC_ORACLE = '0xA96abbe61AfEdEB0D14a20440Ae7100D9aB4882f'
38
+
39
+ interface OracleData {
40
+ [key: string]: number
41
+ }
42
+
43
+ type QueryAave = { oracle: string, assets: string[], fork: string }
44
+
45
+ /**
46
+ * Fetches Aave and uniswap V2 oracle data
47
+ */
48
+ export const fetchMainPrices = async (chainIds: string[], getEvmClient: GetEvmClientFunction): Promise<OracleData> => {
49
+
50
+ let promises = chainIds.map(chainId => {
51
+
52
+ const aaveForks = AAVES_PER_CHAIN[chainId]
53
+ let reservesToQuery: { fork: string, assets: string[] }[] = aaveForks.map(a => ({ fork: a, assets: getAaveAssets(chainId, a) }))
54
+ let handled: string[] = []
55
+ let queries: QueryAave[] = []
56
+ reservesToQuery.forEach(e => {
57
+ const newOnes = e.assets.filter(a => !handled.includes(a))
58
+ if (newOnes.length > 0) {
59
+ // @ts-ignore
60
+ queries.push({ assets: newOnes, oracle: AAVE_STYLE_ORACLES[e.fork][chainId], fork: e.fork })
61
+ handled = [...handled, ...newOnes]
62
+ }
63
+ })
64
+ const callAave = getAaveCalls(queries)
65
+
66
+ const [callsChainLink, chainLinkNames] = getChainLinkCalls(chainId)
67
+
68
+ const uniswapV2Calls = getUniswapV2Calls(chainId)
69
+
70
+ const [api3Calls, api3Names] = getApi3Calls(chainId)
71
+
72
+ const [rwaCalls, rwaNames] = getRWADynamicOracleCalls(chainId)
73
+
74
+ return multicallViemAbiArray(
75
+ chainId,
76
+ [...ChainLinkAggregatorAbi, ...UniswapV2PairAbi, ...AaveOracleAbi, ...Api3OracleAbi, ...RWADynamicOracleAbi],
77
+ [...callsChainLink, ...callAave, ...uniswapV2Calls, ...api3Calls, ...rwaCalls], getEvmClient
78
+ ).then(multicallResult => {
79
+
80
+ const chainLinkResults = multicallResult.slice(
81
+ 0,
82
+ callsChainLink.length
83
+ )
84
+
85
+ const aaveResult = multicallResult.slice(
86
+ callsChainLink.length,
87
+ callsChainLink.length + callAave.length
88
+ )
89
+
90
+ const chainLinkData = parseChainLinkResults(chainId, chainLinkResults, chainLinkNames)
91
+ // @ts-ignore
92
+ const aaveData = parseAaveResults(chainId, aaveResult, queries)
93
+
94
+ const uniswapResult = multicallResult.slice(
95
+ callsChainLink.length + callAave.length,
96
+ callsChainLink.length + callAave.length + uniswapV2Calls.length
97
+ )
98
+
99
+ const api3Result = multicallResult.slice(
100
+ callsChainLink.length + callAave.length + uniswapV2Calls.length,
101
+ callsChainLink.length + callAave.length + uniswapV2Calls.length + api3Calls.length
102
+ )
103
+
104
+
105
+ const uniswapData = parseUniswapV2results(uniswapResult, chainId)
106
+
107
+ const api3Data = parseApi3Results(chainId, api3Result, api3Names)
108
+
109
+ const rwaResult = multicallResult.slice(
110
+ callsChainLink.length + callAave.length + uniswapV2Calls.length + api3Calls.length,
111
+ callsChainLink.length + callAave.length + uniswapV2Calls.length + api3Calls.length + rwaCalls.length
112
+ )
113
+
114
+ const rwaData = parseRWADynamicOracleResults(chainId, rwaResult, rwaNames)
115
+ return { ...uniswapData, ...aaveData, ...chainLinkData, ...api3Data, ...rwaData, }
116
+ })
117
+ })
118
+ promises.push(fetchDefillamaData())
119
+ const result = await Promise.all(promises)
120
+ let data: any = {}
121
+ result.forEach(r => {
122
+ data = { ...data, ...r }
123
+ })
124
+
125
+ return data
126
+ }
127
+
128
+ /**
129
+ * Gets the calls foir the uniswap pools
130
+ * @param chainId network id
131
+ * @returns array of calls
132
+ */
133
+ const getUniswapV2Calls = (chainId: string) => {
134
+ switch (chainId) {
135
+ case Chain.MANTLE:
136
+ return [
137
+ {
138
+ address: WMNT_USDT_PAIR,
139
+ name: 'getReserves',
140
+ params: []
141
+ },
142
+ {
143
+ address: LENDLE_PAIR_MANTLE,
144
+ name: 'getReserves',
145
+ params: []
146
+ },
147
+ {
148
+ address: AU_PAIR_MANTLE,
149
+ name: 'getReserves',
150
+ params: []
151
+ },
152
+ ]
153
+ default:
154
+ return []
155
+ }
156
+ }
157
+
158
+ /**
159
+ * Create calldata for aave oracles
160
+ * @param chainId network
161
+ * @param addressesAaveUnderlyings address array
162
+ * @returns call data
163
+ */
164
+ const getAaveCalls = (query: QueryAave[]) => {
165
+ if (query.length === 0) return []
166
+ return query.map(({ oracle, assets }) => ({
167
+ address: oracle,
168
+ name: 'getAssetsPrices',
169
+ params: [assets],
170
+
171
+ })).flat()
172
+ }
173
+
174
+ /**
175
+ * Create calldata for chainLink oracles
176
+ * @param chainId network
177
+ * @param addressesAaveUnderlyings address array
178
+ * @returns call data
179
+ */
180
+ const getChainLinkCalls = (chainId: string): [
181
+ {
182
+ address: string,
183
+ name: string
184
+ params: any[],
185
+ }[],
186
+ string[]
187
+ ] => {
188
+ switch (chainId) {
189
+ case Chain.MANTLE:
190
+ return [[], []]
191
+ default: {
192
+ const keys = getChainLinkKeys(chainId).filter(k => k.split('-')[1] === 'USD')
193
+ // @ts-ignore
194
+ const addresses = keys.map((k) => chainlinkOracles[k][chainId])
195
+ return [
196
+ addresses.map((tk) => {
197
+ return {
198
+ address: tk,
199
+ name: 'latestRoundData',
200
+ params: [],
201
+ }
202
+ }),
203
+ keys.map(k => k.split('-')[0])
204
+ ]
205
+ }
206
+ }
207
+ }
208
+
209
+
210
+ /**
211
+ * Processes data creeated from fetch through 'getUniswapV2Calls
212
+ * @param data the result data array slice from the multicall
213
+ * @param chainId network id
214
+ * @returns price dictionary asset->number
215
+ */
216
+ const parseUniswapV2results = (data: any[], chainId: string) => {
217
+ switch (chainId) {
218
+ case Chain.MANTLE: {
219
+ let uniswapData: any = {}
220
+ if (data.length > 0) {
221
+ const reserves = data[1]
222
+ // lendle and wmnt are respective token0s
223
+ const lendleReserve = parseRawAmount(reserves[0].toString(), 18)
224
+ const wmntReserve = parseRawAmount(reserves[1].toString(), 18)
225
+
226
+ const auReserves = data[2]
227
+ const auReserve = parseRawAmount(auReserves[1].toString(), 18)
228
+ const wmntReserve_au = parseRawAmount(auReserves[0].toString(), 18)
229
+
230
+ const reservesWmntUsdt = data[0]
231
+ const usdtReserve = parseRawAmount(reservesWmntUsdt[0].toString(), 6)
232
+ const wmnt2Reserve = parseRawAmount(reservesWmntUsdt[1].toString(), 18)
233
+ const lendPrice = wmntReserve / lendleReserve / wmnt2Reserve * usdtReserve
234
+ const auPrice = wmntReserve_au / auReserve / wmnt2Reserve * usdtReserve
235
+ uniswapData['LEND'] = lendPrice
236
+ uniswapData['AU'] = auPrice
237
+ }
238
+ return uniswapData
239
+ }
240
+ default:
241
+ return {}
242
+ }
243
+ }
244
+
245
+ /**
246
+ * Parser for aave results in ulticall slice
247
+ * @param chainId network
248
+ * @param data result array slice
249
+ * @param assetName asset names (aligned with the originall addresses called)
250
+ * @returns price mapping asset->number
251
+ */
252
+ const parseAaveResults = (chainId: string, data: any[], queries: QueryAave[]) => {
253
+
254
+ let prices: any = {}
255
+
256
+ data.forEach((d, i) => {
257
+ const details = queries[i]
258
+ details.assets.forEach((a, j) => {
259
+ const oracleId = ASSET_META[chainId][a]?.assetGroup ?? ASSET_META[chainId]?.[a]?.symbol ?? chainId + "-" + a
260
+ prices[oracleId] = formatAavePrice(d[j].toString(), chainId, AAVE_V2_LENDERS.includes(details.fork as any))
261
+ })
262
+ })
263
+
264
+ return prices
265
+
266
+
267
+ }
268
+
269
+
270
+ /**
271
+ * Parser for aave results in ulticall slice
272
+ * @param chainId network
273
+ * @param data result array slice
274
+ * @param assetName asset names (aligned with the originall addresses called)
275
+ * @returns price mapping asset->number
276
+ */
277
+ const parseChainLinkResults = (chainId: string, data: any[], assetName: string[]) => {
278
+ switch (chainId) {
279
+ default: {
280
+ return Object.assign(
281
+ {},
282
+ ...data.map((entry, index) => {
283
+ return {
284
+ [assetName[index]]: parseRawAmount(entry?.[ChainlinkAggregatorIndexes.answer]?.toString() ?? '0', 8)
285
+ }
286
+ })
287
+ )
288
+ }
289
+ }
290
+ }
291
+
292
+
293
+ /**
294
+ * Create calldata for api3 oracles
295
+ * @param chainId network
296
+ * @returns call data
297
+ */
298
+ const getApi3Calls = (chainId: string): [
299
+ {
300
+ address: string,
301
+ name: string
302
+ params: any[],
303
+ }[],
304
+ string[]
305
+ ] => {
306
+ switch (chainId) {
307
+ case Chain.MANTLE: {
308
+ const keys = ["WETH", "METH", "FBTC", "CMETH"]
309
+ const addresses = keys.map((k) => api3OracleAddresses[chainId][k])
310
+ return [
311
+ addresses.map((tk) => {
312
+ return {
313
+ address: tk,
314
+ name: 'read',
315
+ params: [],
316
+ }
317
+ }),
318
+ keys
319
+ ]
320
+ }
321
+ default:
322
+ return [[], []]
323
+ }
324
+ }
325
+
326
+ /**
327
+ * Parser for api3 results in multicall slice
328
+ * @param chainId network
329
+ * @param data result array slice
330
+ * @param assetName asset names (aligned with the originall addresses called)
331
+ * @returns price mapping asset->number
332
+ */
333
+ const parseApi3Results = (chainId: string, data: any[], assetName: string[]) => {
334
+ switch (chainId) {
335
+ case Chain.MANTLE: {
336
+ let prices = Object.assign(
337
+ {},
338
+ ...data.map((entry, index) => {
339
+ return {
340
+ [assetName[index]]: parseRawAmount(entry?.[0]?.toString() ?? '0', 18)
341
+ }
342
+ })
343
+ )
344
+ // METH is given in mETH/WETH
345
+ prices["METH"] = prices["METH"] * prices["WETH"]
346
+ prices["CMETH"] = prices["CMETH"] * prices["METH"]
347
+ return prices
348
+ }
349
+ default: {
350
+ return {}
351
+ }
352
+ }
353
+ }
354
+
355
+ /**
356
+ * Create calldata for RWADynamicOracle (wrap rate for musd/usdy)
357
+ * @param chainId network
358
+ * @returns call data
359
+ */
360
+ const getRWADynamicOracleCalls = (chainId: string): [
361
+ {
362
+ address: string,
363
+ name: string
364
+ params: any[],
365
+ }[],
366
+ string[]
367
+ ] => {
368
+ switch (chainId) {
369
+ case Chain.MANTLE: {
370
+ const keys = ["USDY_MUSD"]
371
+ return [[{
372
+ address: RWA_DYNAMIC_ORACLE,
373
+ name: 'getPrice',
374
+ params: [],
375
+ }], keys]
376
+ }
377
+ default:
378
+ return [[], []]
379
+ }
380
+ }
381
+
382
+ /**
383
+ * Parser for RWADynamicOracle (wrap rate for musd/usdy) results in multicall slice
384
+ * @param chainId network
385
+ * @param data result array slice
386
+ * @param assetName asset names (aligned with the originall addresses called)
387
+ * @returns price mapping asset->number
388
+ */
389
+ const parseRWADynamicOracleResults = (chainId: string, data: any[], assetName: string[]) => {
390
+ switch (chainId) {
391
+ case Chain.MANTLE: {
392
+ let prices = Object.assign(
393
+ {},
394
+ ...data.map((entry, index) => {
395
+ return {
396
+ [assetName[index]]: parseRawAmount(entry?.toString() ?? '0', 18)
397
+ }
398
+ })
399
+ )
400
+ return prices
401
+ }
402
+ default: {
403
+ return {}
404
+ }
405
+ }
406
+ }
@@ -0,0 +1 @@
1
+ export * from "./fetchOracleData"
@@ -0,0 +1,80 @@
1
+ export interface BaseYields {
2
+ // borrow interest rates
3
+ variableBorrowRate: number
4
+ stableBorrowRate: number
5
+ // deposit interest rate
6
+ depositRate: number
7
+ }
8
+
9
+ export type RewardsMap = { [rewardId: string]: BaseYields }
10
+
11
+ export interface LenderYields extends BaseYields {
12
+ // staking
13
+ stakingYield: number
14
+
15
+ // rewards
16
+ rewards?: RewardsMap
17
+ }
18
+
19
+ export interface ConfigEntry {
20
+ category: number;
21
+ borrowCollateralFactor: number;
22
+ collateralFactor: number;
23
+ borrowFactor: number;
24
+ }
25
+
26
+ interface PoolConfig {
27
+ [category: number]: ConfigEntry;
28
+ }
29
+
30
+ interface EMode {
31
+ category: number;
32
+ label: string;
33
+ borrowCollateralFactor: number;
34
+ collateralFactor: number;
35
+ borrowFactor: number;
36
+ }
37
+
38
+ export interface PoolData {
39
+ poolId: string;
40
+ underlying: string;
41
+ totalDeposits: string;
42
+ totalDebtStable: string;
43
+ totalDebt: string;
44
+ totalLiquidity: number;
45
+ totalDepositsUSD: number;
46
+ totalDebtStableUSD: number;
47
+ totalDebtUSD: number;
48
+ totalLiquidityUSD: number;
49
+ depositRate: number;
50
+ variableBorrowRate: number;
51
+ stableBorrowRate: number;
52
+ stakingYield: number;
53
+ rewards: RewardsMap;
54
+ decimals: number;
55
+ config: PoolConfig;
56
+ collateralActive: boolean;
57
+ borrowingEnabled: boolean;
58
+ hasStable: boolean;
59
+ isActive: boolean;
60
+ isFrozen: boolean;
61
+ eMode: EMode;
62
+ borrowCap: number;
63
+ supplyCap: number;
64
+ debtCeiling: string;
65
+ }
66
+
67
+ export type LenderData = {
68
+ [chainId: string]: {
69
+ data: {
70
+ [lender: string]: {
71
+ data: {
72
+ [poolId: string]: PoolData
73
+ },
74
+ eModes: { [modeId: number]: EMode }
75
+ chainId: string
76
+ }
77
+ },
78
+ lastFetched: number
79
+ }
80
+ }
@@ -0,0 +1,38 @@
1
+ export * from "./apiReturnType"
2
+
3
+ export interface ParsedResponse {
4
+ price: number
5
+ time: number
6
+ }
7
+ export interface ChainLinkResponse extends ParsedResponse {
8
+ roundId: number
9
+ }
10
+
11
+ export enum ChainlinkAggregatorIndexes {
12
+ roundId = 0,
13
+ answer,
14
+ startedAt,
15
+ updatedAt,
16
+ answeredInRound
17
+ }
18
+
19
+ interface LenderRewardsEntry {
20
+ deposit: number
21
+ borrow: number
22
+ }
23
+
24
+ export type LenderRewardsMap = { [key: string]: LenderRewardsEntry }
25
+ export type NumberMap = { [key: string]: number }
26
+ export type FullLenderRewardsMap = { [chainId: string]: { [lender: string]: LenderRewardsMap } }
27
+ export type AdditionalYields = {
28
+ intrinsicYields: NumberMap
29
+ lenderRewards: FullLenderRewardsMap
30
+ loaded: boolean
31
+ }
32
+ export declare interface GeneralCall {
33
+ address: string // Address of the contract
34
+ name: string // Function name on the contract (example: balanceOf)
35
+ params?: any[] // Function params
36
+ }
37
+
38
+ export * from "./providers"
@@ -0,0 +1,26 @@
1
+ import { PublicClient } from 'viem'
2
+
3
+ export type MulticallRetryFunction = (
4
+ chain: string,
5
+ calls: any[],
6
+ abi: any,
7
+ batchSize?: number,
8
+ maxRetries?: number,
9
+ providerId?: number,
10
+ allowFailure?: boolean
11
+ ) => Promise<any[]>
12
+
13
+ export type GetEvmClientFunction = (
14
+ chain: string,
15
+ rpcId?: number
16
+ ) => PublicClient
17
+
18
+ export interface ProviderDependencies {
19
+ multicallRetry: MulticallRetryFunction
20
+ getEvmClient: GetEvmClientFunction
21
+ }
22
+
23
+ export interface OptionalProviderDependencies {
24
+ multicallRetry?: MulticallRetryFunction
25
+ getEvmClient?: GetEvmClientFunction
26
+ }
@@ -0,0 +1,100 @@
1
+ import { Chain } from '@1delta/asset-registry'
2
+
3
+ // Uniswap interface Multicalls
4
+ const CELO_MULTICALL_ADDRESS = '0x633987602DE5C4F337e3DbF265303A1080324204'
5
+ const BNB_MULTICALL_ADDRESS = '0x963Df249eD09c358A4819E39d9Cd5736c3087184'
6
+ const MANTLE_MULTICALL_ADDRESS = '0x2A51f2F647E1883F88C992244dEd171238693107'
7
+ const ARBITRUM_ONE_MULTICALL_ADDRESS = '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB'
8
+ const LINEA_MULTICALL_ADDRESS = '0xac1cE734566f390A94b00eb9bf561c2625BF44ea'
9
+ const AVALANCHE_MULTICALL_ADDRESS = '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2'
10
+ const BASE_MULTICALL_ADDRESS = '0x091e99cb1C49331a94dD62755D168E941AbD0693'
11
+ const BLAST_MULTICALL_ADDRESS = '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705'
12
+ const TAIKO_MULTICALL_ADDRESS = '0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201'
13
+ const HEMI_MULTICALL_ADDRESS = '0x352A86168e6988A1aDF9A15Cb00017AAd3B67155'
14
+ const GNOSIS_MULTICALL_ADDRESS = '0x4dfa9a980efE4802E969AC33968E3d6E59B8a19e'
15
+ const MODE_MULTICALL_ADDRESS = '0xAB39cE30D98a59DFDa40A630b074170800bfF179'
16
+ const FANTOM_MULTICALL_ADDRESS = '0xDb51CffFf3B989d0cB6b58AbF173371b6F2d0D24'
17
+ const SCROLL_MULTICALL_ADDRESS = '0x3b615B1AC55bc34e51a81D3dea67467F32bcb8C2'
18
+ const SHAPE_MULTICALL_ADDRESS = '0x356A450B32f5030ae7083702b86FaFbBe7490411'
19
+ const SONIC_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'
20
+ const INK_MULTICALL_ADDRESS = '0xA0fCec583AeE6176527C07B198e5561722332014'
21
+ const METIS_MULTICALL_ADDRESS = '0x7a59ddbB76521E8982Fa3A08598C9a83b14A6C07'
22
+ const IOTA_MULTICALL_ADDRESS = '0x9683D433621A83aA7dd290106e1da85251317F55'
23
+ const KAVA_MULTICALL_ADDRESS = '0x8B741B0D79BE80E135C880F7583d427B4D41F015'
24
+ const CORN_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'
25
+ const SAGA_MULTICALL_ADDRESS = '0x743E03cceB4af2efA3CC76838f6E8B50B63F184c'
26
+ const CYBER_MULTICALL_ADDRESS = '0x906d6eB9CF8f64e100e44f8f491b833a8d40B530'
27
+ const METAL_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'
28
+ const ZERO_MULTICALL_ADDRESS = '0x9CA4dcb2505fbf536F6c54AA0a77C79f4fBC35C0'
29
+ const BOB_MULTICALL_ADDRESS = '0x5d6b0f5335ec95cD2aB7E52f2A0750dd86502435'
30
+ const WORLDCHAIN_MULTICALL_ADDRESS = '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9'
31
+ const LISK_MULTICALL_ADDRESS = '0xE3dbcD53f4Ce1b06Ab200f4912BD35672e68f1FA'
32
+ const REDSTONE_MULTICALL_ADDRESS = '0xd57B52452a0FDfE3ff8e0A40Bd10D00D0bfe0723'
33
+ const MANTA_MULTICALL_ADDRESS = '0x52dFC0D9960F11A9Ca9FF616e791B91188446a60'
34
+ const ZORA_MULTICALL_ADDRESS = '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15'
35
+ const CORE_MULTICALL_ADDRESS = '0xFe9F82D820757787895Da00B1dBD35c3B8b04894'
36
+
37
+ /**
38
+ * Uniswap Interface Multicall
39
+ */
40
+ export const MULTICALL_ADDRESS: { [c: string]: string } = {
41
+ [Chain.OP_MAINNET]: '0x1F98415757620B543A52E61c46B32eB19261F984',
42
+ [Chain.POLYGON_MAINNET]: '0x1F98415757620B543A52E61c46B32eB19261F984',
43
+ [Chain.ETHEREUM_MAINNET]: '0x1F98415757620B543A52E61c46B32eB19261F984',
44
+ [Chain.ARBITRUM_ONE]: ARBITRUM_ONE_MULTICALL_ADDRESS,
45
+ [Chain.BASE]: BASE_MULTICALL_ADDRESS,
46
+ [Chain.CELO_MAINNET]: CELO_MULTICALL_ADDRESS,
47
+ [Chain.BNB_SMART_CHAIN_MAINNET]: BNB_MULTICALL_ADDRESS,
48
+ [Chain.MANTLE]: MANTLE_MULTICALL_ADDRESS,
49
+ [Chain.BLAST]: BLAST_MULTICALL_ADDRESS,
50
+ [Chain.LINEA]: LINEA_MULTICALL_ADDRESS,
51
+ [Chain.AVALANCHE_C_CHAIN]: AVALANCHE_MULTICALL_ADDRESS,
52
+ [Chain.TAIKO_ALETHIA]: TAIKO_MULTICALL_ADDRESS,
53
+ [Chain.HEMI_NETWORK]: HEMI_MULTICALL_ADDRESS,
54
+ [Chain.GNOSIS]: GNOSIS_MULTICALL_ADDRESS,
55
+ [Chain.CORE_BLOCKCHAIN_MAINNET]: CORE_MULTICALL_ADDRESS,
56
+ [Chain.METIS_ANDROMEDA_MAINNET]: METIS_MULTICALL_ADDRESS,
57
+ [Chain.MODE]: MODE_MULTICALL_ADDRESS,
58
+ [Chain.INK]: INK_MULTICALL_ADDRESS,
59
+ [Chain.IOTA_EVM]: IOTA_MULTICALL_ADDRESS,
60
+ [Chain.CORN]: CORN_MULTICALL_ADDRESS,
61
+ [Chain.SONIC_MAINNET]: SONIC_MULTICALL_ADDRESS,
62
+ [Chain.FANTOM_OPERA]: FANTOM_MULTICALL_ADDRESS,
63
+ [Chain.SCROLL]: SCROLL_MULTICALL_ADDRESS,
64
+ [Chain.SHAPE]: SHAPE_MULTICALL_ADDRESS,
65
+ [Chain.CYBER_MAINNET]: CYBER_MULTICALL_ADDRESS,
66
+ [Chain.ZORA]: ZORA_MULTICALL_ADDRESS,
67
+ [Chain.MANTA_PACIFIC_MAINNET]: MANTA_MULTICALL_ADDRESS,
68
+ [Chain.REDSTONE]: REDSTONE_MULTICALL_ADDRESS,
69
+ [Chain.KAVA]: KAVA_MULTICALL_ADDRESS,
70
+ [Chain.METAL_L2]: METAL_MULTICALL_ADDRESS,
71
+ [Chain.LISK]: LISK_MULTICALL_ADDRESS,
72
+ [Chain.BOB]: BOB_MULTICALL_ADDRESS,
73
+ [Chain.ZERO_NETWORK]: ZERO_MULTICALL_ADDRESS,
74
+ [Chain.SAGA]: SAGA_MULTICALL_ADDRESS,
75
+ [Chain.WORLD_CHAIN]: WORLDCHAIN_MULTICALL_ADDRESS,
76
+ }
77
+
78
+ /**
79
+ * 1Delta Composer Addresses
80
+ */
81
+ export const COMPOSERS = {
82
+ [Chain.ARBITRUM_ONE]: "0x05f3f58716a88A52493Be45aA0871c55b3748f18",
83
+ [Chain.OP_MAINNET]: "0xCDef0A216fcEF809258aA4f341dB1A5aB296ea72",
84
+ [Chain.POLYGON_MAINNET]: "0xFd245e732b40b6BF2038e42b476bD06580585326",
85
+ [Chain.BASE]: "0xB7ea94340e65CC68d1274aE483dfBE593fD6f21e",
86
+ [Chain.SONIC_MAINNET]: "0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201",
87
+ [Chain.HEMI_NETWORK]: "0x79f4061BF049c5c6CAC6bfe2415c2460815F4ac7",
88
+ [Chain.TAIKO_ALETHIA]: "0x594cE4B82A81930cC637f1A59afdFb0D70054232",
89
+ [Chain.METIS_ANDROMEDA_MAINNET]: "0xCe434378adacC51d54312c872113D687Ac19B516",
90
+ [Chain.GNOSIS]: "0xcb6eb8df68153cebf60e1872273ef52075a5c297",
91
+ [Chain.AVALANCHE_C_CHAIN]: '0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201',
92
+ [Chain.MODE]: '0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201',
93
+ [Chain.SCROLL]: '0x8E24CfC19c6C00c524353CB8816f5f1c2F33c201',
94
+ [Chain.CORE_BLOCKCHAIN_MAINNET]: "0x816EBC5cb8A5651C902Cb06659907A93E574Db0B",
95
+ [Chain.FANTOM_OPERA]: "0x816EBC5cb8A5651C902Cb06659907A93E574Db0B",
96
+ [Chain.BNB_SMART_CHAIN_MAINNET]: "0x816EBC5cb8A5651C902Cb06659907A93E574Db0B",
97
+ [Chain.MANTLE]: "0x5c019a146758287c614fe654caec1ba1caf05f4e",
98
+ [Chain.LINEA]: "0x816EBC5cb8A5651C902Cb06659907A93E574Db0B",
99
+ [Chain.BLAST]: "0x816EBC5cb8A5651C902Cb06659907A93E574Db0B",
100
+ }