@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,87 @@
1
+ import { AAVE_FORK_POOL_DATA, AAVE_STYLE_RESERVE_ASSETS, AAVE_V2_LENDERS, AAVE_V3_LENDERS, COMPOUND_BASE_TOKENS, COMPOUND_STYLE_RESERVE_ASSETS, INIT_STYLE_RESERVE_ASSETS, Lender, SWAYLEND_RESERVE_ASSETS, INIT_CONFIG_DATA } from "@1delta/asset-registry"
2
+ import { uniq } from "lodash"
3
+ import { COMPOSERS } from "./constants"
4
+
5
+ export const AAVE_V3_2_PROTOCOLS = [
6
+ Lender.AAVE_V3,
7
+ Lender.AAVE_V3_ETHER_FI,
8
+ Lender.AAVE_V3_PRIME,
9
+ ]
10
+
11
+ export function isAaveV3Type(lender: string) { return AAVE_V3_LENDERS.includes(lender as any) }
12
+
13
+ const AAVE_V3_KEY = "AAVE_V3"
14
+ export function isAaveV3Original(lender: string) { return lender.startsWith(AAVE_V3_KEY) }
15
+
16
+ export function isAaveV2Type(lender: string) { return AAVE_V2_LENDERS.includes(lender as any) }
17
+
18
+ export function isAaveV32Type(lender: Lender) { return AAVE_V3_2_PROTOCOLS.includes(lender) }
19
+
20
+ export function isAaveType(lender: string) { return [...AAVE_V3_LENDERS, ...AAVE_V2_LENDERS].includes(lender as any) }
21
+
22
+ const COMPOUND_V3_KEY = "COMPOUND_V3"
23
+
24
+ export function isCompoundV3(lender: string) { return lender.startsWith(COMPOUND_V3_KEY) }
25
+
26
+ export function isCompoundV3Type(lender: string) { return lender.startsWith(COMPOUND_V3_KEY) }
27
+
28
+ export function isInit(lender: string) { return lender === Lender.INIT }
29
+
30
+ const SWAYLEND_KEY = "SWAYLEND"
31
+
32
+ export function isSwaylend(lender: string) { return lender.startsWith(SWAYLEND_KEY) }
33
+
34
+
35
+ export const getLendersForChain = (c: string) => {
36
+ let lenders: string[] = []
37
+ // aaves
38
+ Object.entries(AAVE_FORK_POOL_DATA).forEach(([l, data]) => {
39
+ const chains = Object.keys(data)
40
+ if (chains.includes(c)) lenders.push(l)
41
+ })
42
+
43
+ // compound V3s
44
+ Object.entries(COMPOUND_BASE_TOKENS).forEach(([l, data]) => {
45
+ const chains = Object.keys(data)
46
+ if (chains.includes(c)) lenders.push(l)
47
+ })
48
+
49
+ // init
50
+ Object.entries(INIT_CONFIG_DATA).forEach(([l, data]) => {
51
+ const chains = Object.keys(data)
52
+ if (chains.includes(c)) lenders.push(l)
53
+ })
54
+
55
+ return lenders
56
+ }
57
+
58
+
59
+ const getAavesForChain = () => {
60
+ let lenders: { [c: string]: string[] } = {}
61
+ Object.entries(AAVE_FORK_POOL_DATA).forEach(([l, data]) => {
62
+ Object.entries(data).forEach(([chain, data]) => {
63
+ if (!lenders[chain]) lenders[chain] = []
64
+ lenders[chain] = uniq([...lenders[chain], l])
65
+ })
66
+ })
67
+ return lenders
68
+ }
69
+
70
+ /** All aave protocols per chain */
71
+ export const AAVES_PER_CHAIN = getAavesForChain()
72
+
73
+ export const getComposerAddress = (chainId: string): string => {
74
+ return COMPOSERS[chainId as keyof typeof COMPOSERS]
75
+ }
76
+
77
+ export const getLenderAssets = (
78
+ chainId: string | number | undefined,
79
+ lendingProtocol = Lender.AAVE_V3
80
+ ): string[] => {
81
+ if (!chainId) return []
82
+ if (isAaveType(lendingProtocol)) return AAVE_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId] ?? []
83
+ if (isCompoundV3(lendingProtocol)) return COMPOUND_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId] ?? []
84
+ if (isInit(lendingProtocol)) return INIT_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId] ?? []
85
+ if (isSwaylend(lendingProtocol)) return SWAYLEND_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? 0] ?? []
86
+ return []
87
+ }
@@ -0,0 +1,53 @@
1
+ import { isArray } from 'lodash'
2
+ import { GeneralCall, GetEvmClientFunction } from '../types'
3
+
4
+ export type Call = GeneralCall
5
+
6
+
7
+ interface ViemMulticallresult {
8
+ result: any[],
9
+ status: string
10
+ }
11
+
12
+ const MULTICALL_DEFAULT_BATCH_SIZE = 4096
13
+
14
+ const maxRetries = 3
15
+
16
+
17
+ /** Same as Multicall viem except that the abi param is supposed to be the abi per call */
18
+ export const multicallViemAbiArray = async (
19
+ chainId: string,
20
+ abi: any[],
21
+ calls: Call[],
22
+ getEvmClient: GetEvmClientFunction,
23
+ retry = true,
24
+ providerId = 0,
25
+ retries = maxRetries
26
+ ): Promise<any[]> => {
27
+ try {
28
+ const provider = getEvmClient(chainId, providerId)
29
+
30
+ const abiIsArray = isArray(abi[0])
31
+ const returnData = await provider.multicall({
32
+ allowFailure: true,
33
+ batchSize: MULTICALL_DEFAULT_BATCH_SIZE,
34
+ contracts: calls.map(({ address, name, params }, i) => ({
35
+ abi: abiIsArray ? abi?.[i] as any : abi,
36
+ address: address as any,
37
+ functionName: name,
38
+ args: params,
39
+ })),
40
+ })
41
+ const res = (returnData as any[]).map(
42
+ ({ result, status }: ViemMulticallresult) => status !== "success" ? '0x' : result
43
+ );
44
+ return res
45
+ } catch (error: any) {
46
+ console.log("error in multicall", error)
47
+ retries--;
48
+ if (retries < 0) throw new Error("Failed too often")
49
+ providerId++;
50
+
51
+ return multicallViemAbiArray(chainId, abi, calls, getEvmClient, retry, providerId, retries)
52
+ }
53
+ }
@@ -0,0 +1,75 @@
1
+ import { Chain, Lender } from "@1delta/asset-registry"
2
+ import { formatEther, formatUnits } from "viem"
3
+ import { isCompoundV3 } from "."
4
+
5
+ export const BPS = 10000
6
+
7
+ export const parseRawAmount = (answer?: string, decimals = 18): string => {
8
+ if (!answer || answer === "0x") return "0"
9
+ try {
10
+ return (formatUnits(BigInt(answer ?? '0'), decimals ?? 18))
11
+ } catch (e) {
12
+ return "0"
13
+ }
14
+ }
15
+
16
+ export enum TimeScale {
17
+ BLOCK,
18
+ MS,
19
+ }
20
+
21
+ const BLOCK_TIMES: { [chainId: string]: number } = {
22
+ 5: 12,
23
+ 1: 12,
24
+ 56: 3,
25
+ }
26
+
27
+ // Converters from apy to apr and reversed
28
+
29
+ const SECONDS_PER_YEAR = 31536000
30
+
31
+ export const aprToApy = (apr: number) => {
32
+ return (1 + apr / SECONDS_PER_YEAR) ** SECONDS_PER_YEAR - 1
33
+ }
34
+
35
+ export const apyToApr = (apy: number) => {
36
+ return ((apy + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR
37
+ }
38
+
39
+
40
+ export const formatAaveYieldToNumber = (n?: string | bigint): number => {
41
+ if (!n) return 0
42
+ return Number(formatEther(BigInt(n) / BigInt(1e7)))
43
+ }
44
+
45
+
46
+ export const calculateRateForCompound = (
47
+ n: string,
48
+ chainId: string,
49
+ lender = Lender.COMPOUND_V3_USDC_E,
50
+ ): number => {
51
+ let scale = TimeScale.MS
52
+ if (isCompoundV3(lender) || Lender.COMPOUND_V2) {
53
+ scale = TimeScale.BLOCK
54
+ } else if (chainId === Chain.BNB_SMART_CHAIN_MAINNET) {
55
+ scale = TimeScale.BLOCK
56
+ }
57
+ const rate = Number(formatEther(BigInt(n)))
58
+ if (scale === TimeScale.BLOCK)
59
+ return (Math.pow((rate * 60 * 60 * 24) / (BLOCK_TIMES[chainId] ?? 1) + 1, 365) - 1) * 100
60
+
61
+ return (Math.pow(rate * 60 * 60 * 24 + 1, 365) - 1) * 100
62
+ }
63
+ export const formatAaveRawApyToApr = (raw: bigint | string | undefined) => {
64
+ const apy = formatAaveYieldToNumber(raw)
65
+ return apyToApr(apy / 100) * 100
66
+ }
67
+
68
+
69
+
70
+ // converts rate per second to rate per year
71
+ export const convertRateToApr = (ratePerSecond: number | string) => {
72
+ const rps = Number(ratePerSecond)
73
+ if(isNaN(rps)) return 0
74
+ return rps * 3600 * 24 * 365 * 100
75
+ }
@@ -0,0 +1,198 @@
1
+ import { apyToApr } from "../utils/parsing"
2
+
3
+ const FeedData = {
4
+ WSTETH: 'https://eth-api.lido.fi/v1/protocol/steth/apr/sma',
5
+ STMATIC: 'https://polygon.lido.fi/api/stats',
6
+ CBETH: 'https://api.exchange.coinbase.com/wrapped-assets/cbeth',
7
+ MATICX: 'https://universe.staderlabs.com/polygon/apy',
8
+ METH: 'https://meth.mantle.xyz/api/stats/apy',
9
+ SUSDE: 'https://yields.llama.fi/poolsEnriched?pool=66985a81-9c51-46ca-9977-42b4fe7bc6df',
10
+ EZETH: 'https://app.renzoprotocol.com/api/stats?chainId=1',
11
+ RETH: 'https://api.rocketpool.net/api/mainnet/payload',
12
+ WEETH: 'https://www.ether.fi/api/apr',
13
+ SAVAX: "https://api.benqi.fi/liquidstaking/apr",
14
+ RSETH: "https://universe.kelpdao.xyz/rseth/totalApy",
15
+ }
16
+
17
+ const LenderAPIs = {
18
+ MERIDIAN: 'https://omnidex.bmaa3ajd1gjri.eu-west-2.cs.amazonlightsail.com/lending_yields'
19
+ }
20
+
21
+ enum MeridainNetwork {
22
+ TAIKO = 'taiko'
23
+ }
24
+
25
+ function formatMeridianKey(k: string) {
26
+ const _k = k.toUpperCase()
27
+ if (_k === "USDT") return 'USDT.E'
28
+ if (_k === "USDCE") return 'USDC.E'
29
+ return _k
30
+ }
31
+
32
+ // Converters from apy to apr and reversed
33
+
34
+ interface LenderAssetReward {
35
+ deposit: number
36
+ borrow: number
37
+ additionalDepositData: any
38
+ additionalBorrowData: any
39
+ }
40
+
41
+ export interface YieldDataWithTimestamp {
42
+ intrinsicYields: { [asset: string]: number | undefined }
43
+ lenderRewards: { [chainId: number]: { [lender: string]: { [asset: string]: LenderAssetReward } } }
44
+ }
45
+
46
+ const safeFetch = async <T>(label: string, fn: () => Promise<T>): Promise<T | undefined> => {
47
+ try {
48
+ return await fn()
49
+ } catch (e) {
50
+ console.error(`Error fetching ${label}:`, e)
51
+ return undefined
52
+ }
53
+ }
54
+
55
+
56
+ export const fetchGeneralYields = async () => {
57
+ const wstethPromise = safeFetch('WSTETH', async () => {
58
+ const res = await fetch(FeedData.WSTETH).then(r => r.json())
59
+ return Number(res.data.aprs.at(-1).apr) * 0.9
60
+ })
61
+
62
+ const ezethPromise = safeFetch('EZETH', async () => {
63
+ const res = await fetch(FeedData.EZETH).then(r => r.json())
64
+ return Number(res.data.apr.data.rate)
65
+ })
66
+
67
+ const rethPromise = safeFetch('RETH', async () => {
68
+ const res = await fetch(FeedData.RETH).then(r => r.json())
69
+ return Number(res.rethAPR)
70
+ })
71
+
72
+ const weethPromise = safeFetch('WEETH', async () => {
73
+ const wstethRes = await fetch(FeedData.WSTETH).then(r => r.json())
74
+ const wstethApr = Number(wstethRes.data.aprs.at(-1).apr) * 0.9
75
+ let aYield = 0
76
+ try {
77
+ const weethRes = await fetch(FeedData.WEETH).then(r => r.json())
78
+ aYield = Number(weethRes.lrt2Apr)
79
+ } catch (e) {
80
+ aYield = 0.5
81
+ }
82
+ return aYield + wstethApr
83
+ })
84
+
85
+ const stmaticPromise = safeFetch('STMATIC', async () => {
86
+ const res = await fetch(FeedData.STMATIC).then(r => r.json())
87
+ return Number(res.apr) * 0.9
88
+ })
89
+
90
+ const savaxPromise = safeFetch('SAVAX', async () => {
91
+ const res = await fetch(FeedData.SAVAX).then(r => r.json())
92
+ return Number(res.apr) * 100
93
+ })
94
+
95
+ const methPromise = safeFetch('METH', async () => {
96
+ const res = await fetch(FeedData.METH).then(r => r.json())
97
+ return apyToApr(Number(res.data[0]?.OneDayAPY)) * 100
98
+ })
99
+
100
+ const maticxPromise = safeFetch('MATICX', async () => {
101
+ const res = await fetch(FeedData.MATICX).then(r => r.json())
102
+ return Number(res.value) * 0.9
103
+ })
104
+
105
+ const susdePromise = safeFetch('SUSDE', async () => {
106
+ try {
107
+ const res = await fetch(FeedData.SUSDE).then(r => r.json())
108
+ return Number(res?.data[0]?.apy ?? 0)
109
+ } catch (e) {
110
+ return 0
111
+ }
112
+ })
113
+
114
+ const rsethPromise = safeFetch('RSETH', async () => {
115
+ const res = await fetch(FeedData.RSETH).then(r => r.json())
116
+ return Number(res.totalAPY)
117
+ })
118
+
119
+ const cbethPromise = safeFetch('CBETH', async () => {
120
+ try {
121
+ const res = await fetch(FeedData.CBETH, {
122
+ headers: {
123
+ "User-Agent": "1delta/yields",
124
+ "Content-Type": "application/json"
125
+ }
126
+ }).then(r => r.json())
127
+ return Number(res.apy) * 100
128
+ } catch (e) {
129
+ console.log("CBETH failed", e)
130
+ return 0
131
+ }
132
+ })
133
+
134
+ const meridianPromise = safeFetch('MERIDIAN', async () => {
135
+ const res = await fetch(LenderAPIs.MERIDIAN).then(r => r.json())
136
+ const taikoData = res[MeridainNetwork.TAIKO]
137
+ return Object.assign({}, ...Object.keys(taikoData).map(key => ({
138
+ [formatMeridianKey(key)]: {
139
+ deposit: taikoData[key].apy_reward,
140
+ borrow: taikoData[key].apy_reward_borrow
141
+ }
142
+ })))
143
+ })
144
+
145
+ const [
146
+ wstethData,
147
+ ezethData,
148
+ rethData,
149
+ weethData,
150
+ stmaticData,
151
+ methData,
152
+ maticXdata,
153
+ susdeData,
154
+ meridianData,
155
+ savaxData,
156
+ cbethData,
157
+ rsethData,
158
+ ] = await Promise.all([
159
+ wstethPromise,
160
+ ezethPromise,
161
+ rethPromise,
162
+ weethPromise,
163
+ stmaticPromise,
164
+ methPromise,
165
+ maticxPromise,
166
+ susdePromise,
167
+ meridianPromise,
168
+ savaxPromise,
169
+ cbethPromise,
170
+ rsethPromise,
171
+ ])
172
+
173
+ const data: YieldDataWithTimestamp = {
174
+ intrinsicYields: {
175
+ MATICX: maticXdata,
176
+ METH: methData,
177
+ CMETH: methData,
178
+ WSTETH: wstethData,
179
+ EZETH: ezethData,
180
+ RETH: rethData,
181
+ WEETH: weethData,
182
+ STMATIC: stmaticData,
183
+ USDY: 4.35,
184
+ USDE: 0,
185
+ SUSDE: susdeData,
186
+ SAVAX: savaxData,
187
+ CBETH: cbethData,
188
+ RSETH: rsethData,
189
+ },
190
+ lenderRewards: {
191
+ "167000": {
192
+ MERIDIAN: meridianData
193
+ }
194
+ }
195
+ }
196
+ return data
197
+ }
198
+
@@ -0,0 +1,104 @@
1
+ import { describe, it } from 'vitest'
2
+ import { fetchDefillamaData, fetchFlashLiquidityForChain, fetchGeneralYields, getLenderPublicData } from "../src"
3
+ import { multicallRetry } from "@1delta/providers"
4
+ import { Chain, Lender } from "@1delta/asset-registry"
5
+ import { getLendersForChain } from '../src/utils'
6
+
7
+
8
+ describe('find prices', () => {
9
+ it.only('should return prices for valid tokens', async () => {
10
+
11
+ const yields = await fetchGeneralYields()
12
+
13
+ console.log("yields", yields)
14
+
15
+ })
16
+
17
+ it('should return prices for valid tokens', async () => {
18
+
19
+ const yields = await fetchDefillamaData()
20
+
21
+ console.log("yields", yields)
22
+
23
+ })
24
+ }, { timeout: 10000 })
25
+
26
+ describe('find flash liquidity', () => {
27
+ it('should return prices for valid tokens', async () => {
28
+
29
+ const chain = Chain.BASE
30
+
31
+ const yields = await fetchFlashLiquidityForChain(chain, multicallRetry)
32
+
33
+ console.log("yields", yields)
34
+
35
+ })
36
+ }, { timeout: 10000 })
37
+
38
+
39
+ describe('find lending data', () => {
40
+ it('should return prices for valid tokens', async () => {
41
+ const chainId = Chain.AVALANCHE_C_CHAIN
42
+
43
+
44
+ const ps = [
45
+ fetchDefillamaData(),
46
+ fetchGeneralYields(),
47
+ ]
48
+
49
+ const [prices, yields] = await Promise.all(ps)
50
+
51
+ // console.log("yields", yields)
52
+ // console.log("prices", prices)
53
+
54
+ const lenders = getLendersForChain(chainId) as any
55
+ // console.log("lenders", lenders)
56
+ const lendingData = await getLenderPublicData(
57
+ chainId,
58
+ lenders,
59
+ prices as any,
60
+ yields as any,
61
+ multicallRetry
62
+ )
63
+
64
+ prettyPrint(lendingData)
65
+
66
+ // console.log(JSON.stringify(list, null, 2))
67
+ // const token = list.BRBTC.currencies.find(a => a.chainId === chainId)
68
+
69
+ // const bases = [
70
+ // ...list.WBTC.currencies.filter(a => a.chainId === chainId).map(a => ({ ...a, assetGroup: "WBTC" })),
71
+ // ...list.UNIBTC.currencies.filter(a => a.chainId === chainId).map(a => ({ ...a, assetGroup: "BTCB" })),
72
+ // ...list.USDC.currencies.filter(a => a.chainId === chainId).map(a => ({ ...a, assetGroup: "USDC" })),
73
+ // { ...WRAPPED_NATIVE_INFO[chainId], chainId, assetGroup: "ETH" }
74
+ // ]
75
+
76
+ // const pools = await fetchV3StylePools(
77
+ // // @ts-ignore
78
+ // token,
79
+ // bases
80
+ // )
81
+
82
+ // Object.entries(pools).map(([c, a]) => console.log(c, a))
83
+
84
+ // const price = getTokenPrice(token!, pools)
85
+ // console.log(token?.symbol, "price", price, "USD")
86
+ // // expect(result.pricesMap[1]['0xbase']).toBe(5)
87
+ // // expect(result.pricesMap[1]['0xquote']).toBeCloseTo(0.2) // 1 / 5
88
+ // // expect(result.pricesUnavailable[1]).toBeUndefined()
89
+ })
90
+ }, { timeout: 10000 })
91
+
92
+
93
+ function prettyPrint(obj: any) {
94
+ for (const key in obj) {
95
+ const value = obj[key]
96
+ const keyStr = `\x1b[1m\x1b[36m${key}:\x1b[0m` // bold cyan
97
+ if (typeof value === 'object' && value !== null) {
98
+ console.log(`${keyStr}`)
99
+ console.dir(value, { depth: null, colors: true })
100
+ } else {
101
+ console.log(`${keyStr} ${value}`)
102
+ }
103
+ }
104
+ }