@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,109 @@
1
+ import _ from 'lodash';
2
+ export const safeDivide = (a, b) => {
3
+ return a === 0 || isNaN(a) ? 0 : b !== 0 ? a / b : Infinity;
4
+ };
5
+ export function capitalizeFirstLetter(data) {
6
+ if (!data)
7
+ return '';
8
+ return data.charAt(0).toUpperCase() + data.slice(1);
9
+ }
10
+ /**
11
+ * Formats e.g. 0.04 to 4%
12
+ * @param n ratio
13
+ * @param decs decimals to show
14
+ * @returns percent as string
15
+ */
16
+ export const formatRatioToPercent = (n, decs) => {
17
+ return `${n >= 0 ? '+' : ''}${roundNumber(n * 100, decs)}%`;
18
+ };
19
+ /**
20
+ * Formats e.g. 0.04 to 4%, adds a + if positive
21
+ * @param n ratio
22
+ * @param decs decimals to show
23
+ * @returns percent as string
24
+ */
25
+ export const formatSignedRatioToPercent = (n, decs) => {
26
+ if (n > 1e7)
27
+ return '>100K%'; // we ceil percentages at 100k and abbreviate
28
+ return `${n > 0 ? '+' : ''}${roundNumber(n * 100, decs)}%`; // we assume no lower values that -100%
29
+ };
30
+ export const formatSignedRatioToPercentSign = (n, decs, skipSign = false) => {
31
+ if (n > 1e7)
32
+ return '>100K%'; // we ceil percentages at 100k and abbreviate
33
+ // Skip the sign when icons are used
34
+ return `${skipSign ? '' : n > 0 ? '+' : ''}${roundNumber(Math.abs(n * 100), decs)}%`;
35
+ };
36
+ /**
37
+ * Formats e.g. 4 to 4%
38
+ * @param n percent number
39
+ * @param decs decimals to show
40
+ * @returns percent as string
41
+ */
42
+ export const formatNumberToPercent = (n, decs = 2) => {
43
+ if (!n)
44
+ return '0%';
45
+ if (isNaN(n))
46
+ return '';
47
+ return `${roundNumber(Number(n ?? 0), decs)}%`;
48
+ };
49
+ export const formatPercentagePoints = (n, decs) => {
50
+ return `${roundNumber(n * 100, decs)}pp`;
51
+ };
52
+ export const formatNumber = (n, decs) => {
53
+ if (!n)
54
+ return '0';
55
+ if (isNaN(n))
56
+ return '';
57
+ return roundNumber(n, decs).toLocaleString();
58
+ };
59
+ /**
60
+ * Round using lodash
61
+ * @param n number to round
62
+ * @param decs decimals
63
+ * @returns number
64
+ */
65
+ export const roundNumber = (n, decs) => {
66
+ return _.round(n, decs);
67
+ };
68
+ /**
69
+ * Converts a colateral factor e.g. 0.8 to 1/(1-0.8) = 5
70
+ * @param n amount
71
+ * @param decs decimals to show
72
+ * @returns leverage as string
73
+ */
74
+ export const convertCollateralFactorToLeverage = (n, decs) => {
75
+ return roundNumber(1 / (1 - n), decs);
76
+ };
77
+ export const parseToTimes = (n) => `${n}×`;
78
+ export const parseToTimesPrefix = (n) => `×${n}`;
79
+ export const parseLeverage = (cf, decs = 2) => parseToTimes(convertCollateralFactorToLeverage(cf, decs));
80
+ export const parseLeverageRange = (config) => {
81
+ const levs = _.uniq(Object.values(config ?? {}).map((cfg) => convertCollateralFactorToLeverage(cfg.borrowCollateralFactor, 2)));
82
+ if (!levs)
83
+ return '';
84
+ if (levs.length === 1)
85
+ return parseToTimes(levs[0]);
86
+ return `${_.min(levs)}-${parseToTimes(Number(_.max(levs)))}`;
87
+ };
88
+ /**
89
+ * Get apr from intinsic interest and reward
90
+ * @param apr apr number
91
+ * @param reward reward [per year] number
92
+ * @returns number, validated for NaN
93
+ */
94
+ export const getApr = (apr, reward, staking) => {
95
+ const aprClean = !isNaN(apr) ? apr : 0;
96
+ const rewardClean = !isNaN(reward) ? reward : 0;
97
+ const stakingClean = !isNaN(staking) ? staking : 0;
98
+ if (aprClean + rewardClean + stakingClean < 0.01 && aprClean + rewardClean + stakingClean > -0.01)
99
+ return '-';
100
+ return `${(aprClean + rewardClean + stakingClean).toFixed(2)}%`;
101
+ };
102
+ // Converters from apy to apr and reversed
103
+ const SECONDS_PER_YEAR = 31536000;
104
+ export const aprToApy = (apr) => {
105
+ return (1 + apr / SECONDS_PER_YEAR) ** SECONDS_PER_YEAR - 1;
106
+ };
107
+ export const apyToApr = (apy) => {
108
+ return ((apy + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR;
109
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./generalFormatters";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lending/user-data/utils/formatting/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1 @@
1
+ export * from "./generalFormatters";
@@ -0,0 +1,8 @@
1
+ import { UserApr } from "../types";
2
+ export * from "./createGeneralUserState";
3
+ export * from "./formatting";
4
+ export * from "./createMultiAccountStyleUserState";
5
+ export declare function divideAccrualsToAprs(aprs: {
6
+ [assets: string]: UserApr;
7
+ }, nav: number, deposits: number, debt: number): any;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGlC,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,oCAAoC,CAAA;AAElD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAWlH"}
@@ -0,0 +1,17 @@
1
+ import { safeDivide } from "./formatting";
2
+ export * from "./createGeneralUserState";
3
+ export * from "./formatting";
4
+ export * from "./createMultiAccountStyleUserState";
5
+ export function divideAccrualsToAprs(aprs, nav, deposits, debt) {
6
+ if (nav === 0)
7
+ return {};
8
+ let d = {};
9
+ Object.entries(aprs).map(([k, data]) => {
10
+ d[k] = {
11
+ apr: safeDivide(data.borrowApr + data.depositApr, nav),
12
+ borrowApr: safeDivide(data.borrowApr, debt),
13
+ depositApr: safeDivide(data.depositApr, deposits),
14
+ };
15
+ });
16
+ return d;
17
+ }
@@ -0,0 +1,30 @@
1
+ import { LenderData } from "../types";
2
+ export interface LendingPair {
3
+ chainId: string;
4
+ lender: string;
5
+ assetLong: string;
6
+ assetShort: string;
7
+ assetGroupLong: string;
8
+ assetGroupShort: string;
9
+ price: number;
10
+ price24h: number;
11
+ priceChange: number;
12
+ maxLeverage: number;
13
+ apr: number;
14
+ tags?: string[];
15
+ eMode?: number;
16
+ }
17
+ /** create array of pairs for given lender data */
18
+ export declare function generateLendingPairs(lenderData: LenderData, prices: {
19
+ [k: string]: number;
20
+ }, histPrices: {
21
+ [k: string]: number;
22
+ }): LendingPair[];
23
+ export declare function getTopPairs(pairs: LendingPair[]): {
24
+ stables: LendingPair[];
25
+ btcLst: LendingPair[];
26
+ ethLst: LendingPair[];
27
+ gainers: LendingPair[];
28
+ };
29
+ export declare function getDistinctPairsByShortAsset(pairs: LendingPair[]): LendingPair[];
30
+ //# sourceMappingURL=computeLendingPairs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeLendingPairs.d.ts","sourceRoot":"","sources":["../../src/lending-pairs/computeLendingPairs.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAY,MAAM,UAAU,CAAA;AAG5D,MAAM,WAAW,WAAW;IAExB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IAEd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAGlB,cAAc,EAAE,MAAM,CAAA;IAEtB,eAAe,EAAE,MAAM,CAAA;IAEvB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IAGnB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAwCD,kDAAkD;AAClD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,UAAU,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,WAAW,EAAE,CAwFhJ;AASD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE;;;;;EAW/C;AAMD,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,WAAW,EAAE,GACrB,WAAW,EAAE,CA6Bf"}
@@ -0,0 +1,153 @@
1
+ import { getAssetMeta, toGenericPriceKey, toOracleKey } from "../assets";
2
+ import { isAaveV3Type, isInit } from "../utils";
3
+ const isEMode = (longData, shortData) => Boolean(longData.eMode) ?
4
+ Number(longData.eMode?.category) > 0 && Number(longData.eMode?.category) === shortData.eMode?.category : false;
5
+ const intersection = (a0, a1) => {
6
+ return a0.filter(a => a1.includes(a));
7
+ };
8
+ const LENDER_MODE_NO_MODE = 0;
9
+ // calculate the maximum leverage for a given pair
10
+ const getMaxLeverage = (lender, longData, shortData) => {
11
+ // for Aave V3 we check for eModes
12
+ if (isAaveV3Type(lender)) {
13
+ const cf = isEMode(longData, shortData) ?
14
+ longData.config[longData.eMode?.category ?? 0]?.borrowCollateralFactor :
15
+ longData.config[LENDER_MODE_NO_MODE]?.borrowCollateralFactor;
16
+ return 1 / (1 - cf);
17
+ }
18
+ // for init, we match the modes and find the one with the highest collatearal factor
19
+ if (isInit(lender)) {
20
+ const modeIntersect = intersection(Object.values(longData.config).map((c) => c.category), Object.values(shortData.config).map((c) => c.category));
21
+ if (modeIntersect.length === 0)
22
+ return 1;
23
+ const configId = Object.values(longData.config).filter((c) => modeIntersect.includes(c.category)).sort((c, d) => c.borrowCollateralFactor < d.borrowCollateralFactor ? 1 : -1)[0].category;
24
+ // we have to use the adjusted formula with the borrowFactor here
25
+ const cf = longData.config[configId]?.borrowCollateralFactor;
26
+ const bf = shortData.config[configId]?.borrowFactor;
27
+ return 1 / (1 - (cf / bf));
28
+ }
29
+ // all other cases use the default mode no_mode without borrowFactor
30
+ const cf = longData?.config?.[LENDER_MODE_NO_MODE]?.borrowCollateralFactor ?? 0.8;
31
+ return 1 / (1 - cf);
32
+ };
33
+ /** create array of pairs for given lender data */
34
+ export function generateLendingPairs(lenderData, prices, histPrices) {
35
+ const pairs = [];
36
+ for (const chainId in lenderData) {
37
+ const chainEntry = lenderData[chainId];
38
+ const lenderToData = (chainEntry.data ?? chainEntry);
39
+ for (const lender in lenderToData) {
40
+ const lenderEntry = lenderToData[lender];
41
+ // protect agaist error data
42
+ // @ts-ignore
43
+ let pools = Object.values(lenderEntry?.data ?? lenderEntry ?? {}).map(a => a?.data ? a.data : a);
44
+ // sometimes error messages are included
45
+ // @ts-ignore
46
+ if (pools.includes("No lenders available") || pools.includes("Failed to fetch"))
47
+ continue;
48
+ const poolArray = pools.filter(p => !p?.isFrozen);
49
+ // Loop through all ordered pairs of pools
50
+ for (let i = 0; i < poolArray.length; i++) {
51
+ for (let j = 0; j < poolArray.length; j++) {
52
+ if (i === j)
53
+ continue;
54
+ const long = poolArray[i];
55
+ const short = poolArray[j];
56
+ if (!short.borrowingEnabled)
57
+ continue;
58
+ // Skip same asset pairs
59
+ if (long.underlying === short.underlying)
60
+ continue;
61
+ const maxDepositLeverage = getMaxLeverage(lender, long, short);
62
+ const borrowLeverage = (maxDepositLeverage - 1);
63
+ const depositLeverage = borrowLeverage + 1;
64
+ let collateralRewards = 0;
65
+ let borrowRewards = 0;
66
+ const rewards = {};
67
+ // get the rewards from the collateral
68
+ for (const [rewardId, baseYields] of Object.entries(long.rewards ?? {})) {
69
+ collateralRewards += baseYields.depositRate;
70
+ if (baseYields.depositRate > 0)
71
+ rewards[rewardId] = baseYields.depositRate * depositLeverage;
72
+ }
73
+ // get the rewards from debt
74
+ for (const [rewardId, baseYields] of Object.entries(short.rewards ?? {})) {
75
+ const borrowRate = baseYields.stableBorrowRate >= baseYields.variableBorrowRate
76
+ ? baseYields.stableBorrowRate
77
+ : baseYields.variableBorrowRate;
78
+ borrowRewards += borrowRate;
79
+ if (borrowRate != 0)
80
+ rewards[rewardId] = (rewards[rewardId] ?? 0) + borrowRate * borrowLeverage;
81
+ }
82
+ const depositApr = long.depositRate + long.stakingYield;
83
+ const borrowApr = short.variableBorrowRate + short.stakingYield;
84
+ const [assetGroupLong, keyLong] = getPriceKey(long.underlying, chainId);
85
+ const [assetGroupShort, keyShort] = getPriceKey(short.underlying, chainId);
86
+ const priceLong = prices[keyLong] ?? 0;
87
+ const priceShort = prices[keyShort] ?? 0;
88
+ const price24hLong = histPrices[keyLong] ?? priceLong;
89
+ const price24hShort = histPrices[keyShort] ?? priceShort;
90
+ const price = priceShort !== 0 ? priceLong / priceShort : 0;
91
+ const price24h = price24hShort !== 0 ? price24hLong / price24hShort : 0;
92
+ pairs.push({
93
+ chainId,
94
+ lender,
95
+ assetLong: long.underlying,
96
+ assetShort: short.underlying,
97
+ price,
98
+ price24h,
99
+ assetGroupLong,
100
+ assetGroupShort,
101
+ priceChange: price24h === 0 ? 0 : (price - price24h) / price24h,
102
+ maxLeverage: maxDepositLeverage,
103
+ apr: (depositApr + collateralRewards) * depositLeverage + (borrowRewards - borrowApr) * borrowLeverage,
104
+ eMode: long.eMode?.category ?? 0
105
+ });
106
+ }
107
+ }
108
+ }
109
+ }
110
+ return pairs;
111
+ }
112
+ function getPriceKey(asset, chainId) {
113
+ const assetGroup = getAssetMeta(chainId, asset)?.assetGroup;
114
+ return [assetGroup, toOracleKey(assetGroup) ?? toGenericPriceKey(asset, chainId)];
115
+ }
116
+ const MAX_ENTRIES = 10;
117
+ export function getTopPairs(pairs) {
118
+ const stables = pairs.filter(p => p.assetGroupLong?.includes("USD") && p.assetGroupShort?.includes("USD") && !p.assetGroupShort?.includes("PT-")).sort((a, b) => a.apr > b.apr ? -1 : 1).slice(0, MAX_ENTRIES);
119
+ const btcLst = pairs.filter(p => p.assetGroupLong?.includes("BTC") && p.assetGroupShort?.includes("BTC") && !p.assetGroupShort?.includes("PT-")).sort((a, b) => a.apr > b.apr ? -1 : 1).slice(0, MAX_ENTRIES);
120
+ const ethLst = pairs.filter(p => p.assetGroupLong?.includes("ETH") && p.assetGroupShort?.includes("ETH") && !p.assetGroupShort?.includes("PT-")).sort((a, b) => a.apr > b.apr ? -1 : 1).slice(0, MAX_ENTRIES);
121
+ return {
122
+ stables,
123
+ btcLst,
124
+ ethLst,
125
+ gainers: getDistinctPairsByShortAsset(pairs).slice(0, MAX_ENTRIES),
126
+ };
127
+ }
128
+ function isStable(assetGroup) {
129
+ return assetGroup.includes("USD");
130
+ }
131
+ export function getDistinctPairsByShortAsset(pairs) {
132
+ const sorted = [...pairs].sort((a, b) => b.priceChange - a.priceChange);
133
+ const blacklist = new Set();
134
+ const blacklistLong = new Set();
135
+ const result = [];
136
+ for (const pair of sorted) {
137
+ const shortGroup = pair.assetGroupShort;
138
+ const longGroup = pair.assetGroupLong;
139
+ if (blacklist.has(shortGroup) || blacklistLong.has(longGroup))
140
+ continue;
141
+ result.push(pair);
142
+ // Only blacklist if not a stablecoin
143
+ if (!isStable(shortGroup)) {
144
+ blacklist.add(shortGroup);
145
+ }
146
+ if (!isStable(longGroup)) {
147
+ blacklistLong.add(longGroup);
148
+ }
149
+ if (result.length >= 10)
150
+ return result;
151
+ }
152
+ return result;
153
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./computeLendingPairs";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lending-pairs/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1 @@
1
+ export * from "./computeLendingPairs";
@@ -0,0 +1,3 @@
1
+ export declare function fetchDefillamaData(): Promise<any>;
2
+ export declare function fetchDefillamaHistData(): Promise<any>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/prices/defillama/index.ts"],"names":[],"mappings":"AA2NA,wBAAsB,kBAAkB,iBAuCvC;AAED,wBAAsB,sBAAsB,iBA4C3C"}
@@ -0,0 +1,269 @@
1
+ import fetch from "axios";
2
+ const prefixEthereum = 'ethereum:';
3
+ const RETH = '0xae78736Cd615f374D3085123A210448E74Fc6393';
4
+ const WBTC = '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599';
5
+ const WETH = '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2';
6
+ const MNT = '0x3c3a81e81dc49a522a592e7622a7e711c06bf354';
7
+ const USDE = '0x4c9edd5852cd905f086c759e8383e09bff1e68b3';
8
+ const METH = '0xd5f7838f5c461feff7fe49ea5ebaf7728bb0adfa';
9
+ const USDC = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
10
+ const USDT = '0xdac17f958d2ee523a2206206994597c13d831ec7';
11
+ const USDY = '0x96f6ef951840721adbf46ac996b59e0235cb985c';
12
+ const CRV = '0xD533a949740bb3306d119CC777fa900bA034cd52';
13
+ const BAL = '0xba100000625a3754423978a60c9317c58a424e3D';
14
+ const AGEUR = '0x1a7e4e63778B4f12a199C062f3eFdD288afCBce8';
15
+ const LINK = '0x514910771AF9Ca656af840dff83E8264EcF986CA';
16
+ const DAI = '0x6B175474E89094C44Da98b954EedeAC495271d0F';
17
+ const MATIC = '0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0';
18
+ const BNB = '0xB8c77482e45F1F44dE1745F52C74426C631bDD52';
19
+ const STMATIC = '0x9ee91F9f426fA633d227f7a9b000E28b9dfd8599';
20
+ const MATICX = '0xf03A7Eb46d01d9EcAA104558C732Cf82f6B6B645';
21
+ const AAVE = '0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9';
22
+ const COMP = '0xc00e94cb662c3520282e6f5717214004a7f26888';
23
+ const EURS = '0xdB25f211AB05b1c97D595516F45794528a807ad8';
24
+ const FBTC = '0xC96dE26018A54D51c097160568752c4E3BD6C364';
25
+ const TAIKO = '0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800';
26
+ const CMETH = '0xe6829d9a7ee3040e1276fa75293bde931859e8fa';
27
+ const AUSD = '0x00000000efe302beaa2b3e6e1b18d08d69a9012a';
28
+ const SUSDE = '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497';
29
+ const FUEL = '0x675B68AA4d9c2d3BB3F0397048e62E6B7192079c';
30
+ const GHO = '0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f';
31
+ const FRAX = '0x853d955acef822db058eb8505911ed77f175b99e';
32
+ const WEETH = '0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee';
33
+ const ARB = '0xb50721bcf8d664c30412cfbc6cf7a15145234ad1';
34
+ const WUSDM = '0x57f5e098cad7a3d1eed53991d4d66c45c9af7812';
35
+ const RSETH = "0xa1290d69c65a6fe4df752f95823fae25cb99e5a7";
36
+ const CBETH = "0xbe9895146f7af43049ca1c1ae358b0541ea49704";
37
+ const SNX = "0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f";
38
+ const VUSD = "0x677ddbd918637e5f2c79e164d402454de7da8619";
39
+ const EZETH = "0xbf5495Efe5DB9ce00f80364C8B423567e58d2110";
40
+ const LBTC = "0x8236a87084f8B84306f72007F36F2618A5634494";
41
+ const BRBTC = "0x2eC37d45FCAE65D9787ECf71dc85a444968f6646";
42
+ const SDAI = "0x83f20f44975d03b1b09e64809b757c47f942beea";
43
+ const datasEthereum = [
44
+ RETH,
45
+ WBTC,
46
+ WETH,
47
+ MNT,
48
+ USDC,
49
+ USDT,
50
+ USDE,
51
+ METH,
52
+ USDY,
53
+ CRV,
54
+ BAL,
55
+ AGEUR,
56
+ LINK,
57
+ DAI,
58
+ BNB,
59
+ MATIC,
60
+ STMATIC,
61
+ MATICX,
62
+ AAVE,
63
+ COMP,
64
+ EURS,
65
+ FBTC,
66
+ TAIKO,
67
+ CMETH,
68
+ AUSD,
69
+ SUSDE,
70
+ FUEL,
71
+ GHO,
72
+ FRAX,
73
+ WEETH,
74
+ ARB,
75
+ WUSDM,
76
+ RSETH,
77
+ CBETH,
78
+ SNX,
79
+ EZETH,
80
+ VUSD,
81
+ LBTC,
82
+ BRBTC,
83
+ SDAI
84
+ ].map(d => prefixEthereum + d).join(',');
85
+ const prefixAvalanche = 'avax:';
86
+ const WAVAX = '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7';
87
+ const SAVAX = "0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE";
88
+ const prefixArbitrum = "arbitrum:";
89
+ const GMX = "0xfc5a1a6eb076a2c7ad06ed22c90d7e710e35ad0a";
90
+ const prefixOptimism = "optimism:";
91
+ const OP = "0x4200000000000000000000000000000000000042";
92
+ const SUSD = "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9";
93
+ const WRSETH = "0x87eee96d50fb761ad85b1c982d28a042169d61b1";
94
+ const prefixBase = "base:";
95
+ const AERO = "0x940181a94A35A4569E4529A3CDfB74e38FD98631";
96
+ const prefixCore = "core:";
97
+ const WCORE = "0xb0788b601c0d712702bc829b52771199ad8e33ff";
98
+ const prefixMetis = "metis:";
99
+ const WMETIS = "0x75cb093e4d61d2a2e65d8e0bbb01de8d89b53481";
100
+ const prefixSonic = "sonic:";
101
+ const WS = "0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38";
102
+ const prefixFantom = "fantom:";
103
+ const WFTM = "0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83";
104
+ const prefixKaia = "kaia:";
105
+ const WKAIA = "0x19aac5f612f524b754ca7e7c41cbfa2e981a4432";
106
+ const datasAvalanche = [
107
+ WAVAX,
108
+ SAVAX
109
+ ].map(d => prefixAvalanche + d).join(',');
110
+ const datasArbitrum = [GMX].map(d => prefixArbitrum + d).join(',');
111
+ const datasOptimism = [OP, SUSD, WRSETH].map(d => prefixOptimism + d).join(',');
112
+ const datasBase = [AERO].map(d => prefixBase + d).join(',');
113
+ const datasCore = [WCORE].map(d => prefixCore + d).join(',');
114
+ const datasMetis = [WMETIS].map(d => prefixMetis + d).join(',');
115
+ const datasFantom = [WFTM].map(d => prefixFantom + d).join(',');
116
+ const datasSonic = [WS].map(d => prefixSonic + d).join(',');
117
+ const datasKaia = [WKAIA].map(d => prefixKaia + d).join(',');
118
+ const URL = `https://coins.llama.fi/prices/current/${[
119
+ datasEthereum,
120
+ datasAvalanche,
121
+ datasArbitrum,
122
+ datasOptimism,
123
+ datasBase,
124
+ datasCore,
125
+ datasMetis,
126
+ datasFantom,
127
+ datasKaia,
128
+ datasSonic, //
129
+ ].join(',')}?searchWidth=4h`;
130
+ const URL_HIST = (ref) => `https://coins.llama.fi/prices/historical/${ref}/${[
131
+ datasEthereum,
132
+ datasAvalanche,
133
+ datasArbitrum,
134
+ datasOptimism,
135
+ datasBase,
136
+ datasCore,
137
+ datasMetis,
138
+ datasFantom,
139
+ datasKaia,
140
+ datasSonic, //
141
+ ].join(',')}?searchWidth=4h`;
142
+ const SYMBOL_MAP = {
143
+ 'weth': "WETH",
144
+ 'usde': "USDE",
145
+ 'meth': "METH",
146
+ 'mnt': "WMNT",
147
+ 'usdc': "USDC",
148
+ 'usdt': "USDT",
149
+ 'wbtc': "WBTC",
150
+ 'usdy': "USDY",
151
+ 'crv': "CRV",
152
+ 'op': "OP",
153
+ 'bal': "BAL",
154
+ 'eura': "AGEUR",
155
+ 'link': "LINK",
156
+ 'dai': "DAI",
157
+ 'bnb': "WBNB",
158
+ 'matic': "WPOL",
159
+ 'wpol': "WPOL",
160
+ 'pol': "WPOL",
161
+ 'stmatic': "STMATIC",
162
+ 'maticx': "MATICX",
163
+ 'wavax': "WAVAX",
164
+ 'aave': "AAVE",
165
+ 'comp': "COMP",
166
+ 'eurs': "EURS",
167
+ 'fbtc': "FBTC",
168
+ 'taiko': "TAIKO",
169
+ 'cmeth': "CMETH",
170
+ 'ausd': "AUSD",
171
+ 'susde': "SUSDE",
172
+ 'fuel': "FUEL",
173
+ 'gho': "GHO",
174
+ 'frax': "FRAX",
175
+ 'weeth': "WEETH",
176
+ 'arb': "ARB",
177
+ 'lusd': "LUSD",
178
+ 'reth': "RETH",
179
+ 'gmx': "GMX",
180
+ 'wusdm': "WUSDM",
181
+ 'rseth': "RSETH",
182
+ 'susd': "SUSD",
183
+ 'wrseth': "WRSETH",
184
+ 'cbeth': "CBETH",
185
+ 'aero': "AERO",
186
+ 'snx': "SNX",
187
+ 'wftm': "WFTM",
188
+ 'ftm': "WFTM",
189
+ 'wcore': "WCORE",
190
+ 'core': "WCORE",
191
+ 'ws': "WS",
192
+ 's': "WS",
193
+ 'wmetis': "WMETIS",
194
+ 'metis': "WMETIS",
195
+ 'vusd': "VUSD",
196
+ 'ezeth': "EZETH",
197
+ 'lbtc': "LBTC",
198
+ 'brbtc': "BRBTC",
199
+ 'sdai': "SDAI",
200
+ 'wkaia': "KAIA",
201
+ 'savax': "SAVAX",
202
+ };
203
+ export async function fetchDefillamaData() {
204
+ try {
205
+ const res = await fetch(URL);
206
+ let prices = Object.assign({}, ...Object.values(res.data.coins).map(
207
+ // @ts-ignore
208
+ (k) => { return { [SYMBOL_MAP[k.symbol.toLowerCase()]]: k.price }; }));
209
+ prices["POL"] = prices["WPOL"];
210
+ prices["BNB"] = prices["WBNB"];
211
+ prices["ETH"] = prices["WETH"];
212
+ prices["S"] = prices["WS"];
213
+ prices["CORE"] = prices["WCORE"];
214
+ prices["AVAX"] = prices["WAVAX"];
215
+ prices["METIS"] = prices["WMETIS"];
216
+ prices["KAIA"] = prices["WKAIA"];
217
+ prices["USDBC"] = prices["USDC"];
218
+ prices["BTCB"] = prices["WBTC"];
219
+ prices["CBBTC"] = prices["WBTC"];
220
+ prices["SOLVBTC"] = prices["WBTC"];
221
+ prices["XSOLVBTC"] = prices["WBTC"];
222
+ prices["SUBTC"] = prices["WBTC"];
223
+ prices["IBTC"] = prices["WBTC"];
224
+ prices["ENZOBTC"] = prices["WBTC"];
225
+ prices["LUSD"] = prices["USDT"];
226
+ prices["XDAI"] = prices["DAI"];
227
+ prices["WXDAI"] = prices["DAI"];
228
+ return prices;
229
+ }
230
+ catch (e) {
231
+ console.log("error fetching prices from defillama", e);
232
+ return {};
233
+ }
234
+ }
235
+ export async function fetchDefillamaHistData() {
236
+ try {
237
+ const nowMinus24 = Math.floor(Date.now() / 1000 - 24 * 3600);
238
+ const resHist = await fetch(URL_HIST(nowMinus24));
239
+ let histPrices = Object.assign({}, ...Object.values(resHist.data.coins).map(
240
+ // @ts-ignore
241
+ (k) => { return { [SYMBOL_MAP[k.symbol.toLowerCase()]]: k.price }; }));
242
+ histPrices["POL"] = histPrices["WPOL"];
243
+ histPrices["BNB"] = histPrices["WBNB"];
244
+ histPrices["ETH"] = histPrices["WETH"];
245
+ histPrices["S"] = histPrices["WS"];
246
+ histPrices["CORE"] = histPrices["WCORE"];
247
+ histPrices["AVAX"] = histPrices["WAVAX"];
248
+ histPrices["METIS"] = histPrices["WMETIS"];
249
+ histPrices["KAIA"] = histPrices["WKAIA"];
250
+ histPrices["LUSD"] = histPrices["USDT"];
251
+ histPrices["XDAI"] = histPrices["DAI"];
252
+ histPrices["WXDAI"] = histPrices["DAI"];
253
+ histPrices["BTCB"] = histPrices["WBTC"];
254
+ histPrices["M-BTC"] = histPrices["WBTC"];
255
+ histPrices["SOLVBTC"] = histPrices["WBTC"];
256
+ histPrices["XSOLVBTC"] = histPrices["WBTC"];
257
+ histPrices["UNIBTC"] = histPrices["WBTC"];
258
+ histPrices["HEMIBTC"] = histPrices["WBTC"];
259
+ histPrices["SUBTC"] = histPrices["WBTC"];
260
+ histPrices["IBTC"] = histPrices["WBTC"];
261
+ histPrices["ENZOBTC"] = histPrices["WBTC"];
262
+ histPrices["PUMPBTC"] = histPrices["WBTC"];
263
+ return histPrices;
264
+ }
265
+ catch (e) {
266
+ console.log("error fetching prices from defillama", e);
267
+ return {};
268
+ }
269
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./defillama";
2
+ export * from "./main-prices";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prices/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./defillama";
2
+ export * from "./main-prices";