@1delta/margin-fetcher 0.0.46 → 0.0.47

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 (412) hide show
  1. package/dist/_esm-GM6SX2RK.js +55 -0
  2. package/dist/abis/aave/AaveOracle.d.ts +50 -0
  3. package/dist/abis/aave/AaveOracle.d.ts.map +1 -0
  4. package/dist/abis/aave/AavePoolAndDataProvider.d.ts +1618 -0
  5. package/dist/abis/aave/AavePoolAndDataProvider.d.ts.map +1 -0
  6. package/dist/abis/aave/AavePoolV3Upgraded.d.ts +1134 -0
  7. package/dist/abis/aave/AavePoolV3Upgraded.d.ts.map +1 -0
  8. package/dist/abis/aave/AaveV3ProtocolDataProvider.d.ts +420 -0
  9. package/dist/abis/aave/AaveV3ProtocolDataProvider.d.ts.map +1 -0
  10. package/dist/abis/aave/VariableDebtToken.d.ts +635 -0
  11. package/dist/abis/aave/VariableDebtToken.d.ts.map +1 -0
  12. package/dist/abis/aave-v2/ProtocolDataProvider.d.ts +238 -0
  13. package/dist/abis/aave-v2/ProtocolDataProvider.d.ts.map +1 -0
  14. package/dist/abis/aave-v2/YLDR.d.ts +209 -0
  15. package/dist/abis/aave-v2/YLDR.d.ts.map +1 -0
  16. package/dist/abis/aave-v3/AavePoolDataProviderLegacy.d.ts +406 -0
  17. package/dist/abis/aave-v3/AavePoolDataProviderLegacy.d.ts.map +1 -0
  18. package/dist/abis/aave-v3/AavePoolLegacy.d.ts +819 -0
  19. package/dist/abis/aave-v3/AavePoolLegacy.d.ts.map +1 -0
  20. package/dist/abis/aave-v3/YLDR.d.ts +36 -0
  21. package/dist/abis/aave-v3/YLDR.d.ts.map +1 -0
  22. package/dist/abis/aurelius/Rewarder.d.ts +90 -0
  23. package/dist/abis/aurelius/Rewarder.d.ts.map +1 -0
  24. package/dist/abis/compound-v2/CompoundLens.d.ts +656 -0
  25. package/dist/abis/compound-v2/CompoundLens.d.ts.map +1 -0
  26. package/dist/abis/compound-v2/Comptroller.d.ts +1615 -0
  27. package/dist/abis/compound-v2/Comptroller.d.ts.map +1 -0
  28. package/dist/abis/compound-v3/Comet.d.ts +1382 -0
  29. package/dist/abis/compound-v3/Comet.d.ts.map +1 -0
  30. package/dist/abis/compound-v3/CometExt.d.ts +411 -0
  31. package/dist/abis/compound-v3/CometExt.d.ts.map +1 -0
  32. package/dist/abis/compound-v3/CometLens.d.ts +152 -0
  33. package/dist/abis/compound-v3/CometLens.d.ts.map +1 -0
  34. package/dist/abis/compound-v3/CometRewards.d.ts +253 -0
  35. package/dist/abis/compound-v3/CometRewards.d.ts.map +1 -0
  36. package/dist/abis/compound-v3/IrGetter.d.ts +24 -0
  37. package/dist/abis/compound-v3/IrGetter.d.ts.map +1 -0
  38. package/dist/abis/flashloan-united/flashAbi.d.ts +54 -0
  39. package/dist/abis/flashloan-united/flashAbi.d.ts.map +1 -0
  40. package/dist/abis/init/InitLens.d.ts +158 -0
  41. package/dist/abis/init/InitLens.d.ts.map +1 -0
  42. package/dist/abis/lendle/IncentivesController.d.ts +404 -0
  43. package/dist/abis/lendle/IncentivesController.d.ts.map +1 -0
  44. package/dist/abis/lendle/MultiFeeDistribution.d.ts +624 -0
  45. package/dist/abis/lendle/MultiFeeDistribution.d.ts.map +1 -0
  46. package/dist/abis/meridian/PullRewardsIncentivesController.d.ts +74 -0
  47. package/dist/abis/meridian/PullRewardsIncentivesController.d.ts.map +1 -0
  48. package/dist/abis/morpho/blue.d.ts +76 -0
  49. package/dist/abis/morpho/blue.d.ts.map +1 -0
  50. package/dist/abis/morpho/lens.d.ts +39 -0
  51. package/dist/abis/morpho/lens.d.ts.map +1 -0
  52. package/dist/abis/multicall/Multicall.d.ts +80 -0
  53. package/dist/abis/multicall/Multicall.d.ts.map +1 -0
  54. package/dist/abis/oracle/AaveOracle.d.ts +50 -0
  55. package/dist/abis/oracle/AaveOracle.d.ts.map +1 -0
  56. package/dist/abis/oracle/Api3Oracle.d.ts +48 -0
  57. package/dist/abis/oracle/Api3Oracle.d.ts.map +1 -0
  58. package/dist/abis/oracle/ChainLinkAggregator.d.ts +372 -0
  59. package/dist/abis/oracle/ChainLinkAggregator.d.ts.map +1 -0
  60. package/dist/abis/oracle/ProxyOracle.d.ts +12 -0
  61. package/dist/abis/oracle/ProxyOracle.d.ts.map +1 -0
  62. package/dist/abis/oracle/RWADynamicOracle.d.ts +12 -0
  63. package/dist/abis/oracle/RWADynamicOracle.d.ts.map +1 -0
  64. package/dist/abis/oracle/UniV3.d.ts +50 -0
  65. package/dist/abis/oracle/UniV3.d.ts.map +1 -0
  66. package/dist/abis/oracle/UniswapV2Pair.d.ts +513 -0
  67. package/dist/abis/oracle/UniswapV2Pair.d.ts.map +1 -0
  68. package/dist/assets/index.d.ts +15 -0
  69. package/dist/assets/index.d.ts.map +1 -0
  70. package/dist/assets/liquidityThresholds.d.ts +39 -0
  71. package/dist/assets/liquidityThresholds.d.ts.map +1 -0
  72. package/dist/ccip-DSCWXCSY-PT2JGHUX.js +13 -0
  73. package/dist/ccip-QOODCD4F.js +14 -0
  74. package/dist/chunk-3CGLGAGR.js +407 -0
  75. package/dist/chunk-4VNS5WPM.js +42 -0
  76. package/dist/chunk-5UWY3SMD.js +3977 -0
  77. package/dist/chunk-CLG3VWWF.js +3620 -0
  78. package/dist/chunk-TQZVAE5Q.js +4337 -0
  79. package/dist/flash-liquidity/assets.d.ts +21 -0
  80. package/dist/flash-liquidity/assets.d.ts.map +1 -0
  81. package/dist/flash-liquidity/fetchLiquidity.d.ts +4 -0
  82. package/dist/flash-liquidity/fetchLiquidity.d.ts.map +1 -0
  83. package/dist/flash-liquidity/index.d.ts +3 -0
  84. package/dist/flash-liquidity/index.d.ts.map +1 -0
  85. package/dist/flash-liquidity/types.d.ts +24 -0
  86. package/dist/flash-liquidity/types.d.ts.map +1 -0
  87. package/dist/flash-liquidity/utils.d.ts +12 -0
  88. package/dist/flash-liquidity/utils.d.ts.map +1 -0
  89. package/dist/index.d.ts +8 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +84377 -0
  92. package/dist/lending/aave-v2-type/misc.d.ts +8 -0
  93. package/dist/lending/aave-v2-type/misc.d.ts.map +1 -0
  94. package/dist/lending/aave-v2-type/publicCallBuild.d.ts +7 -0
  95. package/dist/lending/aave-v2-type/publicCallBuild.d.ts.map +1 -0
  96. package/dist/lending/aave-v2-type/publicCallParse.d.ts +8 -0
  97. package/dist/lending/aave-v2-type/publicCallParse.d.ts.map +1 -0
  98. package/dist/lending/aave-v3-type/publicCallBuild.d.ts +4 -0
  99. package/dist/lending/aave-v3-type/publicCallBuild.d.ts.map +1 -0
  100. package/dist/lending/aave-v3-type/publicCallParse.d.ts +9 -0
  101. package/dist/lending/aave-v3-type/publicCallParse.d.ts.map +1 -0
  102. package/dist/lending/addresses/aave.d.ts +10 -0
  103. package/dist/lending/addresses/aave.d.ts.map +1 -0
  104. package/dist/lending/addresses/aaveV2.d.ts +6 -0
  105. package/dist/lending/addresses/aaveV2.d.ts.map +1 -0
  106. package/dist/lending/addresses/aurelius.d.ts +12 -0
  107. package/dist/lending/addresses/aurelius.d.ts.map +1 -0
  108. package/dist/lending/addresses/compoundV3.d.ts +9 -0
  109. package/dist/lending/addresses/compoundV3.d.ts.map +1 -0
  110. package/dist/lending/addresses/contracts.d.ts +4 -0
  111. package/dist/lending/addresses/contracts.d.ts.map +1 -0
  112. package/dist/lending/addresses/hana.d.ts +6 -0
  113. package/dist/lending/addresses/hana.d.ts.map +1 -0
  114. package/dist/lending/addresses/index.d.ts +2 -0
  115. package/dist/lending/addresses/index.d.ts.map +1 -0
  116. package/dist/lending/addresses/init.d.ts +4 -0
  117. package/dist/lending/addresses/init.d.ts.map +1 -0
  118. package/dist/lending/addresses/lendle.d.ts +12 -0
  119. package/dist/lending/addresses/lendle.d.ts.map +1 -0
  120. package/dist/lending/addresses/meridian.d.ts +15 -0
  121. package/dist/lending/addresses/meridian.d.ts.map +1 -0
  122. package/dist/lending/addresses/takotako.d.ts +12 -0
  123. package/dist/lending/addresses/takotako.d.ts.map +1 -0
  124. package/dist/lending/compound-v3/publicCallBuild.d.ts +3 -0
  125. package/dist/lending/compound-v3/publicCallBuild.d.ts.map +1 -0
  126. package/dist/lending/compound-v3/publicCallParse.d.ts +8 -0
  127. package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -0
  128. package/dist/lending/fetchLender.d.ts +9 -0
  129. package/dist/lending/fetchLender.d.ts.map +1 -0
  130. package/dist/lending/fetchLenderAll.d.ts +9 -0
  131. package/dist/lending/fetchLenderAll.d.ts.map +1 -0
  132. package/dist/lending/fetchLenderExt.d.ts +9 -0
  133. package/dist/lending/fetchLenderExt.d.ts.map +1 -0
  134. package/dist/lending/index.d.ts +6 -0
  135. package/dist/lending/index.d.ts.map +1 -0
  136. package/dist/lending/init/publicCallBuild.d.ts +7 -0
  137. package/dist/lending/init/publicCallBuild.d.ts.map +1 -0
  138. package/dist/lending/init/publicCallParse.d.ts +11 -0
  139. package/dist/lending/init/publicCallParse.d.ts.map +1 -0
  140. package/dist/lending/meta/index.d.ts +19 -0
  141. package/dist/lending/meta/index.d.ts.map +1 -0
  142. package/dist/lending/morpho/chainsConfigs.d.ts +21 -0
  143. package/dist/lending/morpho/chainsConfigs.d.ts.map +1 -0
  144. package/dist/lending/morpho/constants/markets.d.ts +4 -0
  145. package/dist/lending/morpho/constants/markets.d.ts.map +1 -0
  146. package/dist/lending/morpho/convertPublic.d.ts +7 -0
  147. package/dist/lending/morpho/convertPublic.d.ts.map +1 -0
  148. package/dist/lending/morpho/fetchPublic.d.ts +3 -0
  149. package/dist/lending/morpho/fetchPublic.d.ts.map +1 -0
  150. package/dist/lending/morpho/getMarketsFromChain.d.ts +8 -0
  151. package/dist/lending/morpho/getMarketsFromChain.d.ts.map +1 -0
  152. package/dist/lending/morpho/publicCallBuild.d.ts +10 -0
  153. package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -0
  154. package/dist/lending/morpho/utils/evmParser.d.ts +22 -0
  155. package/dist/lending/morpho/utils/evmParser.d.ts.map +1 -0
  156. package/dist/lending/morpho/utils/mathLib.d.ts +125 -0
  157. package/dist/lending/morpho/utils/mathLib.d.ts.map +1 -0
  158. package/dist/lending/morpho/utils/parsers.d.ts +10 -0
  159. package/dist/lending/morpho/utils/parsers.d.ts.map +1 -0
  160. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts +4 -0
  161. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -0
  162. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts +8 -0
  163. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -0
  164. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts +4 -0
  165. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -0
  166. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts +8 -0
  167. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -0
  168. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts +9 -0
  169. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -0
  170. package/dist/lending/user-data/abis.d.ts +9200 -0
  171. package/dist/lending/user-data/abis.d.ts.map +1 -0
  172. package/dist/lending/user-data/compound-v3/index.d.ts +3 -0
  173. package/dist/lending/user-data/compound-v3/index.d.ts.map +1 -0
  174. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +4 -0
  175. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -0
  176. package/dist/lending/user-data/compound-v3/userCallParse.d.ts +8 -0
  177. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -0
  178. package/dist/lending/user-data/fetchUserData.d.ts +28 -0
  179. package/dist/lending/user-data/fetchUserData.d.ts.map +1 -0
  180. package/dist/lending/user-data/index.d.ts +2 -0
  181. package/dist/lending/user-data/index.d.ts.map +1 -0
  182. package/dist/lending/user-data/init/userCallBuild.d.ts +8 -0
  183. package/dist/lending/user-data/init/userCallBuild.d.ts.map +1 -0
  184. package/dist/lending/user-data/init/userCallParse.d.ts +8 -0
  185. package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -0
  186. package/dist/lending/user-data/morpho/decoder.d.ts +21 -0
  187. package/dist/lending/user-data/morpho/decoder.d.ts.map +1 -0
  188. package/dist/lending/user-data/morpho/morphoLib.d.ts +5 -0
  189. package/dist/lending/user-data/morpho/morphoLib.d.ts.map +1 -0
  190. package/dist/lending/user-data/morpho/types.d.ts +12 -0
  191. package/dist/lending/user-data/morpho/types.d.ts.map +1 -0
  192. package/dist/lending/user-data/morpho/userCallBuild.d.ts +8 -0
  193. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -0
  194. package/dist/lending/user-data/morpho/userCallParse.d.ts +10 -0
  195. package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -0
  196. package/dist/lending/user-data/utils/createGeneralUserState.d.ts +45 -0
  197. package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -0
  198. package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts +16 -0
  199. package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts.map +1 -0
  200. package/dist/lending/user-data/utils/formatting/generalFormatters.d.ts +55 -0
  201. package/dist/lending/user-data/utils/formatting/generalFormatters.d.ts.map +1 -0
  202. package/dist/lending/user-data/utils/formatting/index.d.ts +2 -0
  203. package/dist/lending/user-data/utils/formatting/index.d.ts.map +1 -0
  204. package/dist/lending/user-data/utils/index.d.ts +8 -0
  205. package/dist/lending/user-data/utils/index.d.ts.map +1 -0
  206. package/dist/lending-pairs/computeLendingPairs.d.ts +52 -0
  207. package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -0
  208. package/dist/lending-pairs/index.d.ts +2 -0
  209. package/dist/lending-pairs/index.d.ts.map +1 -0
  210. package/dist/prices/defillama/index.d.ts +3 -0
  211. package/dist/prices/defillama/index.d.ts.map +1 -0
  212. package/dist/prices/index.d.ts +4 -0
  213. package/dist/prices/index.d.ts.map +1 -0
  214. package/dist/prices/main-prices/addresses/api3.d.ts +6 -0
  215. package/dist/prices/main-prices/addresses/api3.d.ts.map +1 -0
  216. package/dist/prices/main-prices/addresses/chainlink.d.ts +740 -0
  217. package/dist/prices/main-prices/addresses/chainlink.d.ts.map +1 -0
  218. package/dist/prices/main-prices/fetchOracleData.d.ts +17 -0
  219. package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -0
  220. package/dist/prices/main-prices/index.d.ts +2 -0
  221. package/dist/prices/main-prices/index.d.ts.map +1 -0
  222. package/dist/prices/pendle/fetchPendlePrices.d.ts +7 -0
  223. package/dist/prices/pendle/fetchPendlePrices.d.ts.map +1 -0
  224. package/dist/prices/pendle/index.d.ts +2 -0
  225. package/dist/prices/pendle/index.d.ts.map +1 -0
  226. package/dist/secp256k1-WKIOWUKN.js +2246 -0
  227. package/dist/types/apiReturnType.d.ts +72 -0
  228. package/dist/types/apiReturnType.d.ts.map +1 -0
  229. package/dist/types/general.d.ts +18 -0
  230. package/dist/types/general.d.ts.map +1 -0
  231. package/dist/types/index.d.ts +6 -0
  232. package/dist/types/index.d.ts.map +1 -0
  233. package/dist/types/lender/aave-v2-types.d.ts +80 -0
  234. package/dist/types/lender/aave-v2-types.d.ts.map +1 -0
  235. package/dist/types/lender/aave-v3-types.d.ts +158 -0
  236. package/dist/types/lender/aave-v3-types.d.ts.map +1 -0
  237. package/dist/types/lender/compound-v3-types.d.ts +32 -0
  238. package/dist/types/lender/compound-v3-types.d.ts.map +1 -0
  239. package/dist/types/lender/init-types.d.ts +40 -0
  240. package/dist/types/lender/init-types.d.ts.map +1 -0
  241. package/dist/types/lender/morpho-types.d.ts +110 -0
  242. package/dist/types/lender/morpho-types.d.ts.map +1 -0
  243. package/dist/types/lenderTypes.d.ts +229 -0
  244. package/dist/types/lenderTypes.d.ts.map +1 -0
  245. package/dist/types/misc.d.ts +47 -0
  246. package/dist/types/misc.d.ts.map +1 -0
  247. package/dist/types/providers.d.ts +12 -0
  248. package/dist/types/providers.d.ts.map +1 -0
  249. package/dist/utils/constants.d.ts +7 -0
  250. package/dist/utils/constants.d.ts.map +1 -0
  251. package/dist/utils/index.d.ts +20 -0
  252. package/dist/utils/index.d.ts.map +1 -0
  253. package/dist/utils/multicall.d.ts +6 -0
  254. package/dist/utils/multicall.d.ts.map +1 -0
  255. package/dist/utils/parsing.d.ts +17 -0
  256. package/dist/utils/parsing.d.ts.map +1 -0
  257. package/dist/yields/index.d.ts +21 -0
  258. package/dist/yields/index.d.ts.map +1 -0
  259. package/dist/yields/yieldTypes.d.ts +76 -0
  260. package/dist/yields/yieldTypes.d.ts.map +1 -0
  261. package/package.json +4 -1
  262. package/src/abis/aave/AaveOracle.ts +0 -66
  263. package/src/abis/aave/AavePoolAndDataProvider.ts +0 -2080
  264. package/src/abis/aave/AavePoolV3Upgraded.ts +0 -1474
  265. package/src/abis/aave/AaveV3ProtocolDataProvider.ts +0 -553
  266. package/src/abis/aave/VariableDebtToken.ts +0 -820
  267. package/src/abis/aave-v2/ProtocolDataProvider.ts +0 -312
  268. package/src/abis/aave-v2/YLDR.ts +0 -227
  269. package/src/abis/aave-v3/AavePoolDataProviderLegacy.ts +0 -459
  270. package/src/abis/aave-v3/AavePoolLegacy.ts +0 -1060
  271. package/src/abis/aave-v3/YLDR.ts +0 -46
  272. package/src/abis/aurelius/Rewarder.ts +0 -118
  273. package/src/abis/compound-v2/CompoundLens.ts +0 -851
  274. package/src/abis/compound-v2/Comptroller.ts +0 -2104
  275. package/src/abis/compound-v3/Comet.ts +0 -1804
  276. package/src/abis/compound-v3/CometExt.ts +0 -536
  277. package/src/abis/compound-v3/CometLens.ts +0 -194
  278. package/src/abis/compound-v3/CometRewards.ts +0 -330
  279. package/src/abis/compound-v3/IrGetter.ts +0 -31
  280. package/src/abis/flashloan-united/flashAbi.ts +0 -72
  281. package/src/abis/init/InitLens.ts +0 -203
  282. package/src/abis/lendle/IncentivesController.ts +0 -525
  283. package/src/abis/lendle/MultiFeeDistribution.ts +0 -820
  284. package/src/abis/meridian/PullRewardsIncentivesController.ts +0 -98
  285. package/src/abis/morpho/blue.ts +0 -99
  286. package/src/abis/morpho/lens.ts +0 -41
  287. package/src/abis/multicall/Multicall.ts +0 -101
  288. package/src/abis/oracle/AaveOracle.ts +0 -66
  289. package/src/abis/oracle/Api3Oracle.ts +0 -62
  290. package/src/abis/oracle/ChainLinkAggregator.ts +0 -480
  291. package/src/abis/oracle/ProxyOracle.ts +0 -15
  292. package/src/abis/oracle/RWADynamicOracle.ts +0 -15
  293. package/src/abis/oracle/UniV3.ts +0 -63
  294. package/src/abis/oracle/UniswapV2Pair.ts +0 -659
  295. package/src/assets/index.ts +0 -61
  296. package/src/assets/liquidityThresholds.ts +0 -114
  297. package/src/flash-liquidity/assets.ts +0 -86
  298. package/src/flash-liquidity/fetchLiquidity.ts +0 -337
  299. package/src/flash-liquidity/index.ts +0 -2
  300. package/src/flash-liquidity/types.ts +0 -21
  301. package/src/flash-liquidity/utils.ts +0 -28
  302. package/src/index.ts +0 -7
  303. package/src/lending/aave-v2-type/misc.ts +0 -13
  304. package/src/lending/aave-v2-type/publicCallBuild.ts +0 -30
  305. package/src/lending/aave-v2-type/publicCallParse.ts +0 -190
  306. package/src/lending/aave-v3-type/publicCallBuild.ts +0 -154
  307. package/src/lending/aave-v3-type/publicCallParse.ts +0 -600
  308. package/src/lending/addresses/aave.ts +0 -12
  309. package/src/lending/addresses/aaveV2.ts +0 -8
  310. package/src/lending/addresses/aurelius.ts +0 -13
  311. package/src/lending/addresses/compoundV3.ts +0 -52
  312. package/src/lending/addresses/contracts.ts +0 -34
  313. package/src/lending/addresses/hana.ts +0 -7
  314. package/src/lending/addresses/index.ts +0 -1
  315. package/src/lending/addresses/init.ts +0 -37
  316. package/src/lending/addresses/lendle.ts +0 -13
  317. package/src/lending/addresses/meridian.ts +0 -16
  318. package/src/lending/addresses/takotako.ts +0 -14
  319. package/src/lending/compound-v3/publicCallBuild.ts +0 -74
  320. package/src/lending/compound-v3/publicCallParse.ts +0 -202
  321. package/src/lending/fetchLender.ts +0 -206
  322. package/src/lending/fetchLenderAll.ts +0 -51
  323. package/src/lending/fetchLenderExt.ts +0 -82
  324. package/src/lending/index.ts +0 -5
  325. package/src/lending/init/publicCallBuild.ts +0 -29
  326. package/src/lending/init/publicCallParse.ts +0 -109
  327. package/src/lending/meta/index.ts +0 -124
  328. package/src/lending/morpho/chainsConfigs.ts +0 -268
  329. package/src/lending/morpho/constants/markets.ts +0 -94
  330. package/src/lending/morpho/convertPublic.ts +0 -148
  331. package/src/lending/morpho/fetchPublic.ts +0 -115
  332. package/src/lending/morpho/getMarketsFromChain.ts +0 -401
  333. package/src/lending/morpho/publicCallBuild.ts +0 -32
  334. package/src/lending/morpho/utils/evmParser.ts +0 -122
  335. package/src/lending/morpho/utils/mathLib.ts +0 -434
  336. package/src/lending/morpho/utils/parsers.ts +0 -53
  337. package/src/lending/user-data/aave-v2-type/userCallBuild.ts +0 -35
  338. package/src/lending/user-data/aave-v2-type/userCallParse.ts +0 -139
  339. package/src/lending/user-data/aave-v3-type/userCallBuild.ts +0 -44
  340. package/src/lending/user-data/aave-v3-type/userCallParse.ts +0 -141
  341. package/src/lending/user-data/aave-v3-type/userCallParseYldr.ts +0 -127
  342. package/src/lending/user-data/abis.ts +0 -53
  343. package/src/lending/user-data/compound-v3/index.ts +0 -2
  344. package/src/lending/user-data/compound-v3/userCallBuild.ts +0 -49
  345. package/src/lending/user-data/compound-v3/userCallParse.ts +0 -129
  346. package/src/lending/user-data/fetchUserData.ts +0 -218
  347. package/src/lending/user-data/index.ts +0 -1
  348. package/src/lending/user-data/init/userCallBuild.ts +0 -30
  349. package/src/lending/user-data/init/userCallParse.ts +0 -115
  350. package/src/lending/user-data/morpho/decoder.ts +0 -71
  351. package/src/lending/user-data/morpho/morphoLib.ts +0 -61
  352. package/src/lending/user-data/morpho/types.ts +0 -12
  353. package/src/lending/user-data/morpho/userCallBuild.ts +0 -72
  354. package/src/lending/user-data/morpho/userCallParse.ts +0 -251
  355. package/src/lending/user-data/utils/createGeneralUserState.ts +0 -142
  356. package/src/lending/user-data/utils/createMultiAccountStyleUserState.ts +0 -113
  357. package/src/lending/user-data/utils/formatting/generalFormatters.ts +0 -121
  358. package/src/lending/user-data/utils/formatting/index.ts +0 -1
  359. package/src/lending/user-data/utils/index.ts +0 -19
  360. package/src/lending-pairs/computeLendingPairs.ts +0 -457
  361. package/src/lending-pairs/index.ts +0 -1
  362. package/src/prices/defillama/index.ts +0 -394
  363. package/src/prices/index.ts +0 -3
  364. package/src/prices/main-prices/addresses/api3.ts +0 -10
  365. package/src/prices/main-prices/addresses/chainlink.ts +0 -775
  366. package/src/prices/main-prices/fetchOracleData.ts +0 -707
  367. package/src/prices/main-prices/index.ts +0 -1
  368. package/src/prices/pendle/fetchPendlePrices.ts +0 -208
  369. package/src/prices/pendle/index.ts +0 -1
  370. package/src/types/apiReturnType.ts +0 -76
  371. package/src/types/general.ts +0 -16
  372. package/src/types/index.ts +0 -5
  373. package/src/types/lender/aave-v2-types.ts +0 -96
  374. package/src/types/lender/aave-v3-types.ts +0 -185
  375. package/src/types/lender/compound-v3-types.ts +0 -43
  376. package/src/types/lender/init-types.ts +0 -51
  377. package/src/types/lender/morpho-types.ts +0 -129
  378. package/src/types/lenderTypes.ts +0 -303
  379. package/src/types/misc.ts +0 -40
  380. package/src/types/providers.ts +0 -27
  381. package/src/utils/constants.ts +0 -82
  382. package/src/utils/index.ts +0 -128
  383. package/src/utils/multicall.ts +0 -72
  384. package/src/utils/parsing.ts +0 -114
  385. package/src/yields/index.ts +0 -632
  386. package/src/yields/yieldTypes.ts +0 -80
  387. package/test/data.ts +0 -47979
  388. package/test/dataMainnet.ts +0 -45256
  389. package/test/flashLiquidity.test.ts +0 -47
  390. package/test/index.test.ts +0 -116
  391. package/test/lenderData.test.ts +0 -85
  392. package/test/lenderDataBasic.test.ts +0 -43
  393. package/test/mainPriceMB.test.ts +0 -46
  394. package/test/mainPrices.test.ts +0 -22
  395. package/test/mbChain.test.ts +0 -43
  396. package/test/morpho.test.ts +0 -20
  397. package/test/morpho.ts +0 -66
  398. package/test/morphoPrice.test.ts +0 -31
  399. package/test/userData.test.ts +0 -285
  400. package/test/userDataAave.test.ts +0 -68
  401. package/test/userDataAaveMainnet.test.ts +0 -101
  402. package/test/userDataAaveTelos.test.ts +0 -85
  403. package/test/userDataAll.test.ts +0 -71
  404. package/test/userDataCompound.test.ts +0 -97
  405. package/test/userDataMorpho.test.ts +0 -271
  406. package/test/userDataMorphoEthereum.test.ts +0 -76
  407. package/test/userDataMorphoKatana.test.ts +0 -75
  408. package/test/utils.ts +0 -23
  409. package/test/yields.test.ts +0 -27
  410. package/tsconfig.dts.json +0 -10
  411. package/tsconfig.json +0 -29
  412. package/tsup.config.ts +0 -12
@@ -1,251 +0,0 @@
1
- import { Lender } from '@1delta/lender-registry'
2
- import { toGenericPriceKey, toOracleKey } from '../../../assets'
3
- import { MorphoUserReserveResponse } from '../../../types/lenderTypes'
4
- import { createBaseTypeUserState } from '../utils'
5
- import { parseRawAmount } from '../../../utils/parsing'
6
- import { BalanceInfo, decodePackedDataset } from './decoder'
7
- import { MorphoMarket } from '../../../types/lender/morpho-types'
8
-
9
- const CHUNK_SIZE = 100
10
-
11
- const balanceData = {
12
- '0': {
13
- borrowDiscountedCollateral: 0,
14
- collateral: 0,
15
- deposits: 0,
16
- debt: 0,
17
- adjustedDebt: 0,
18
- nav: 0,
19
- deposits24h: 0,
20
- debt24h: 0,
21
- nav24h: 0,
22
- },
23
- }
24
-
25
- // aggregated apr data
26
- const aprData = {
27
- '0': {
28
- apr: 0,
29
- borrowApr: 0,
30
- depositApr: 0,
31
- rewards: 0,
32
- rewardApr: 0,
33
- rewardDepositApr: 0,
34
- rewardBorrowApr: 0,
35
- stakingApr: 0,
36
- stakingDepositApr: 0,
37
- stakingBorrowApr: 0,
38
- },
39
- }
40
- const userDataEmpty = (account: string, chainId: string) => {
41
- return {
42
- account,
43
- chainId,
44
- balanceData,
45
- aprData,
46
- userConfigs: {
47
- '0': { selectedMode: 0, id: account },
48
- },
49
- }
50
- }
51
-
52
- export const getMorphoUserDataConverterWithlens = (
53
- lender: Lender,
54
- chainId: string,
55
- account: string,
56
- markets: string[],
57
- prices: { [asset: string]: number },
58
- pricesHist: { [asset: string]: number },
59
- lenderData: any,
60
- ): [
61
- (data: any[]) => { [market: string]: MorphoUserReserveResponse } | undefined,
62
- number,
63
- ] => {
64
- const expectedNumberOfCalls = Math.ceil(markets.length / CHUNK_SIZE)
65
- return [
66
- (data: any[]) => {
67
- // chunksizes depend on markets
68
- if (data.length !== expectedNumberOfCalls) {
69
- return undefined
70
- }
71
-
72
- // we map the index from the return data
73
- // to the real chunk
74
- // it is
75
- // (chunk number) * (chunksize = 100) + index
76
- function mapMarketToChunk(indexInChunk: number, chunkIndex: number) {
77
- return chunkIndex * CHUNK_SIZE + indexInChunk
78
- }
79
-
80
- let marketsHandled: string[] = []
81
-
82
- let datas: { [market: string]: MorphoUserReserveResponse } = {}
83
-
84
- // we loop over the return dat
85
- for (let i = 0; i < data.length; i++) {
86
- // get balance data array for chunk
87
- const balanceDatas = decodePackedDataset(data[i])
88
- // itereate of balanceDatas received in chunk
89
- balanceDatas.forEach((balanceData) => {
90
- // this will get the market by index
91
- const markeId = markets[mapMarketToChunk(balanceData.index, i)]
92
-
93
- marketsHandled.push(markeId)
94
-
95
- const market = lenderData[markeId]?.params?.market
96
- const { dataForMarket, addedDebt, addedDeposits } =
97
- createMorphoEntryFromMarketWithLens(
98
- balanceData,
99
- chainId,
100
- market,
101
- lenderData[markeId].data,
102
- prices,
103
- pricesHist,
104
- )
105
-
106
- const payload = {
107
- chainId,
108
- account,
109
- lendingPositions: { '0': dataForMarket },
110
- rewards: {},
111
- userEMode: 0,
112
- }
113
-
114
- const userData = createBaseTypeUserState(
115
- payload,
116
- lenderData[markeId].data,
117
- addedDeposits,
118
- addedDebt,
119
- )
120
-
121
- datas[market.lender] = {
122
- ...payload,
123
- ...userData,
124
- id: market.id,
125
- }
126
- })
127
- }
128
-
129
- for (const marketId of markets) {
130
- const pubData = lenderData[marketId]
131
- if (marketsHandled.includes(marketId)) continue
132
- const payload = {
133
- chainId,
134
- account,
135
- lendingPositions: { '0': {} },
136
- rewards: {},
137
- userEMode: 0,
138
- }
139
-
140
- const userData = userDataEmpty(account, chainId)
141
- // @ts-ignore
142
- datas[marketId] = {
143
- ...payload,
144
- ...userData,
145
- // @ts-ignore
146
- id: pubData?.params?.market.id,
147
- }
148
- }
149
- return datas
150
- },
151
- expectedNumberOfCalls,
152
- ]
153
- }
154
-
155
- function createMorphoEntryFromMarketWithLens(
156
- balanceInfo: BalanceInfo,
157
- chainId: string,
158
- market: MorphoMarket,
159
- lenderData: any,
160
- prices: any,
161
- pricesHist: any,
162
- ) {
163
- const loanAddress = market.loanAddress.toLowerCase()
164
- const loanMeta = lenderData[loanAddress].asset
165
-
166
- const loanKey =
167
- toOracleKey(loanMeta?.assetGroup) ?? toGenericPriceKey(loanAddress, chainId)
168
- // prices
169
- const priceLoan = prices[loanKey] ?? 1
170
- const priceHistLoan = pricesHist?.[loanKey] ?? priceLoan
171
- // balances
172
- const deposits = balanceInfo.supplyAssets
173
- const borrow = balanceInfo.borrowAssets
174
- const collateral = balanceInfo.collateral
175
- // return early if there are zeros
176
- if (deposits === 0n && borrow === 0n && collateral === 0n)
177
- return {
178
- dataForMarket: {},
179
- addedDeposits: 0,
180
- addedDebt: 0,
181
- }
182
-
183
- const collateralAddress = market.collateralAddress.toLowerCase()
184
-
185
- const collateralAssetMeta = lenderData[collateralAddress].asset
186
-
187
- // loan asset deposits
188
- const loanDepositNumber = parseRawAmount(
189
- deposits.toString(),
190
- market.loanDecimals ?? loanMeta?.decimals ?? 18,
191
- )
192
-
193
- // collateral amount
194
- const decimals =
195
- market.collateralDecimals ?? collateralAssetMeta?.decimals ?? 18
196
- const collateralDec = parseRawAmount(collateral.toString(), decimals)
197
-
198
- // borrow asset balance
199
- const borrowDec = parseRawAmount(
200
- borrow.toString(),
201
- market.loanDecimals ?? loanMeta?.decimals ?? 18,
202
- )
203
-
204
- const dataForLoanAsset = {
205
- poolId: loanAddress,
206
- underlying: loanAddress,
207
- deposits: loanDepositNumber,
208
- depositsRaw: deposits.toString(),
209
- debtStable: '0',
210
- debt: borrowDec,
211
- depositsUSD: Number(loanDepositNumber) * priceLoan,
212
- debtStableUSD: 0,
213
- debtUSD: Number(borrowDec) * priceLoan,
214
- stableBorrowRate: '0',
215
- collateralActive: false,
216
- claimableRewards: 0,
217
- }
218
-
219
- const key =
220
- toOracleKey(collateralAssetMeta?.assetGroup) ??
221
- toGenericPriceKey(collateralAddress, chainId)
222
- // prices
223
- const price = prices[key] ?? 1
224
- const priceHist = pricesHist?.[key] ?? price
225
-
226
- const dataForCollateralAsset = {
227
- poolId: collateralAddress,
228
- underlying: collateralAddress,
229
- deposits: collateralDec,
230
- depositsRaw: balanceInfo.collateral.toString(),
231
- debtStable: '0',
232
- debt: '0',
233
- depositsUSD: Number(collateralDec) * price,
234
- debtStableUSD: 0,
235
- debtUSD: 0,
236
- stableBorrowRate: '0',
237
- collateralActive: true,
238
- claimableRewards: 0,
239
- }
240
-
241
- return {
242
- dataForMarket: {
243
- [loanAddress]: dataForLoanAsset,
244
- [collateralAddress]: dataForCollateralAsset,
245
- },
246
- addedDeposits:
247
- Number(loanDepositNumber) * priceHistLoan +
248
- Number(collateralDec) * priceHist,
249
- addedDebt: Number(borrowDec) * priceHistLoan,
250
- }
251
- }
@@ -1,142 +0,0 @@
1
- import { divideAccrualsToAprs } from '.'
2
- import {
3
- AaveV2Public,
4
- AaveV2UserReserveResponse,
5
- AaveV3Public,
6
- AaveV3UserReserveResponse,
7
- CompoundV3Public,
8
- CompoundV3UserReserveResponse,
9
- } from '../../../types/lenderTypes'
10
- import { safeDivide } from './formatting'
11
-
12
- type LenderUserData =
13
- | AaveV3UserReserveResponse
14
- | AaveV2UserReserveResponse
15
- | CompoundV3UserReserveResponse
16
- type LenderState = AaveV3Public | AaveV2Public | CompoundV3Public
17
-
18
- export function createBaseTypeUserState(
19
- payload: LenderUserData,
20
- lenderData: { [a: string]: LenderState },
21
- totalDeposits24h: number = 0,
22
- totalDebt24h: number = 0,
23
- ) {
24
- let assetKeys = Object.keys(payload.lendingPositions['0'] ?? {})
25
- const { chainId, account } = payload
26
-
27
- const mode = Number((payload as any).userEMode ?? 0)
28
-
29
- // organic yields
30
- let depositInterest = 0
31
- let borrowInterest = 0
32
- // rewards
33
- let rewardDepositAccrual = 0
34
- let rewardBorrowAccrual = 0
35
- // staking
36
- let stakingDepositAccrual = 0
37
- let stakingBorrowAccrual = 0
38
- // amountrs
39
- let deposits = 0
40
- let debt = 0
41
- let collateral = 0
42
- let borrowDiscountedCollateral = 0
43
-
44
- let rewardsPerAsset: any = {}
45
- // main user data
46
- for (let i = 0; i < assetKeys.length; i++) {
47
- const asset = assetKeys[i]
48
- if (!lenderData?.[asset]) continue
49
- const { depositsUSD, debtStableUSD, debtUSD, collateralActive } =
50
- payload.lendingPositions['0'][asset]
51
- const {
52
- depositRate,
53
- stakingYield,
54
- variableBorrowRate,
55
- stableBorrowRate,
56
- rewards,
57
- } = lenderData[asset]
58
-
59
- // amounts
60
- deposits += depositsUSD
61
- debt += debtStableUSD
62
- debt += debtUSD
63
-
64
- // rewards
65
- Object.entries(rewards ?? {}).forEach(
66
- ([key, rewardData]: [string, any]) => {
67
- rewardDepositAccrual += rewardData.depositRate * depositsUSD
68
- rewardBorrowAccrual +=
69
- rewardData.variableBorrowRate * debtUSD +
70
- (rewardData.stableBorrowRate ?? 0) * debtStableUSD
71
-
72
- // totals
73
- const rewDepo = rewardData.depositRate * depositsUSD
74
- const rewDebt =
75
- rewardData.variableBorrowRate * debtUSD +
76
- (rewardData.stableBorrowRate ?? 0) * (debtStableUSD ?? 0)
77
-
78
- if (!rewardsPerAsset[key])
79
- rewardsPerAsset[key] = { depositApr: 0, borrowApr: 0 }
80
- if (rewDepo > 0) rewardsPerAsset[key].depositApr += rewDepo
81
- if (rewDebt > 0) rewardsPerAsset[key].borrowApr += rewDebt
82
- },
83
- )
84
-
85
- // staking
86
- stakingDepositAccrual += (stakingYield ?? 0) * depositsUSD
87
- stakingBorrowAccrual += (stakingYield ?? 0) * (debtStableUSD + debtUSD)
88
- if (collateralActive) {
89
- // risk adjusted
90
- collateral +=
91
- (lenderData[asset].config[mode]?.collateralFactor ?? 1) * depositsUSD
92
- borrowDiscountedCollateral +=
93
- (lenderData[asset].config[mode]?.borrowCollateralFactor ?? 1) *
94
- depositsUSD
95
- }
96
- // IRs
97
- depositInterest += depositRate * depositsUSD
98
- borrowInterest +=
99
- debtStableUSD * stableBorrowRate + debtUSD * variableBorrowRate
100
- }
101
- const nav = deposits - debt
102
- // aggregated balance data
103
- const balanceData = {
104
- '0': {
105
- borrowDiscountedCollateral,
106
- collateral,
107
- deposits,
108
- debt,
109
- adjustedDebt: debt,
110
- nav,
111
- deposits24h: totalDeposits24h,
112
- debt24h: totalDebt24h,
113
- nav24h: totalDeposits24h - totalDebt24h,
114
- ...(payload.rewards ? { rewards: payload.rewards } : {}),
115
- },
116
- }
117
-
118
- // aggregated apr data
119
- const aprData = {
120
- '0': {
121
- apr: safeDivide(depositInterest - borrowInterest, nav),
122
- borrowApr: safeDivide(borrowInterest, debt),
123
- depositApr: safeDivide(depositInterest, deposits),
124
- rewards: divideAccrualsToAprs(rewardsPerAsset, nav, deposits, debt),
125
- rewardApr: safeDivide(rewardDepositAccrual + rewardBorrowAccrual, nav),
126
- rewardDepositApr: safeDivide(rewardDepositAccrual, deposits),
127
- rewardBorrowApr: safeDivide(rewardBorrowAccrual, debt),
128
- stakingApr: safeDivide(stakingDepositAccrual - stakingBorrowAccrual, nav),
129
- stakingDepositApr: safeDivide(stakingDepositAccrual, deposits),
130
- stakingBorrowApr: safeDivide(stakingBorrowAccrual, debt),
131
- },
132
- }
133
- const userConfigs = { '0': { selectedMode: mode, id: account } }
134
-
135
- return {
136
- account,
137
- chainId,
138
- balanceData,
139
- aprData,
140
- userConfigs,
141
- }
142
- }
@@ -1,113 +0,0 @@
1
- import { LENDER_MODE_NO_MODE } from "../../../assets"
2
- import { InitPublic, InitUserReserveResponse } from "../../../types/lenderTypes"
3
- import { safeDivide } from "./formatting"
4
-
5
- export function createMultiAccountTypeUserState(
6
- payload: InitUserReserveResponse,
7
- lenderData: { [a: string]: InitPublic },
8
- histData: {
9
- [a: string]: {
10
- totalDebt24h: number,
11
- totalDeposits24h: number
12
- }
13
- }
14
- ) {
15
- const positionKeys = Object.keys(payload.lendingPositions ?? {})
16
- let assetKeys = payload.assets
17
- const { chainId, account } = payload
18
-
19
- let userConfigs: any = {}
20
- let balanceData: any = {}
21
- let aprData: any = {}
22
- // main user data
23
- for (let j = 0; j < positionKeys.length; j++) {
24
- const posId = positionKeys[j]
25
- const position = payload.lendingPositions[posId]
26
- const { mode: posMode } = position
27
- // position mode can be undefined
28
- // in this case we default to no mode
29
- const mode = posMode ?? LENDER_MODE_NO_MODE
30
- userConfigs[posId] = {
31
- id: posId,
32
- selectedMode: mode,
33
- }
34
- // organic yields
35
- let depositInterest = 0
36
- let borrowInterest = 0
37
- // rewards
38
- let rewardDepositAccrual = 0
39
- let rewardBorrowAccrual = 0
40
- // staking
41
- let stakingDepositAccrual = 0
42
- let stakingBorrowAccrual = 0
43
- // amountrs
44
- let deposits = 0
45
- let debt = 0
46
- let collateral = 0
47
- let borrowDiscountedCollateral = 0
48
- let adjustedDebt = 0
49
- for (let i = 0; i < assetKeys.length; i++) {
50
- const asset = assetKeys[i]
51
- const { depositsUSD, debtUSD } = payload.lendingPositions[posId][asset]
52
- if (!lenderData?.[asset]) continue;
53
- const { depositRate, stakingYield, variableBorrowRate, rewards } = lenderData[asset]
54
- // amounts
55
- deposits += depositsUSD
56
- debt += debtUSD
57
- // rewards
58
- Object.entries(rewards ?? {}).map(([key, rewardData]) => {
59
- rewardDepositAccrual += rewardData.depositRate * depositsUSD
60
- rewardBorrowAccrual += rewardData.variableBorrowRate * debtUSD + rewardData.stableBorrowRate * debtUSD
61
- })
62
- // staking
63
- stakingDepositAccrual += (stakingYield ?? 0) * depositsUSD
64
- stakingBorrowAccrual += (stakingYield ?? 0) * debtUSD
65
-
66
- const config = lenderData[asset].config[mode]
67
-
68
- // risk adjusted
69
- collateral += (config?.collateralFactor ?? 1) * depositsUSD
70
- borrowDiscountedCollateral += (config?.borrowCollateralFactor ?? 1) * depositsUSD
71
- adjustedDebt += (config?.borrowFactor ?? 1) * debtUSD
72
-
73
- // IRs
74
- depositInterest += depositRate * depositsUSD
75
- borrowInterest += debtUSD * variableBorrowRate
76
-
77
- }
78
- const nav = deposits - debt
79
-
80
- // aggregated balance data
81
- balanceData[posId] = {
82
- borrowDiscountedCollateral,
83
- collateral,
84
- deposits,
85
- debt,
86
- adjustedDebt,
87
- nav,
88
- deposits24h: histData[posId]?.totalDeposits24h,
89
- debt24h: histData[posId]?.totalDebt24h,
90
- nav24h: histData[posId]?.totalDeposits24h - histData[posId]?.totalDebt24h,
91
- }
92
-
93
- // aggregated apr data
94
- aprData[posId] = {
95
- apr: safeDivide(depositInterest - borrowInterest, nav),
96
- borrowApr: safeDivide(borrowInterest, debt),
97
- depositApr: safeDivide(depositInterest, deposits),
98
- rewardApr: safeDivide(rewardDepositAccrual + rewardBorrowAccrual, nav),
99
- rewardDepositApr: safeDivide(rewardDepositAccrual, deposits),
100
- rewardBorrowApr: safeDivide(rewardBorrowAccrual, debt),
101
- stakingApr: safeDivide(stakingDepositAccrual - stakingBorrowAccrual, nav),
102
- stakingDepositApr: safeDivide(stakingDepositAccrual, deposits),
103
- stakingBorrowApr: safeDivide(stakingBorrowAccrual, debt),
104
- }
105
- }
106
- return {
107
- account,
108
- chainId,
109
- balanceData,
110
- aprData,
111
- userConfigs
112
- }
113
- }
@@ -1,121 +0,0 @@
1
- import _ from 'lodash'
2
- import { LenderConfigMap } from '../../../../types/lenderTypes'
3
-
4
- export const safeDivide = (a: number, b: number) => {
5
- return a === 0 || isNaN(a) ? 0 : b !== 0 ? a / b : Infinity
6
- }
7
-
8
- export function capitalizeFirstLetter(data: string) {
9
- if (!data) return ''
10
- return data.charAt(0).toUpperCase() + data.slice(1)
11
- }
12
-
13
- /**
14
- * Formats e.g. 0.04 to 4%
15
- * @param n ratio
16
- * @param decs decimals to show
17
- * @returns percent as string
18
- */
19
- export const formatRatioToPercent = (n: number, decs: number) => {
20
- return `${n >= 0 ? '+' : ''}${roundNumber(n * 100, decs)}%`
21
- }
22
-
23
- /**
24
- * Formats e.g. 0.04 to 4%, adds a + if positive
25
- * @param n ratio
26
- * @param decs decimals to show
27
- * @returns percent as string
28
- */
29
- export const formatSignedRatioToPercent = (n: number, decs: number) => {
30
- if (n > 1e7) return '>100K%' // we ceil percentages at 100k and abbreviate
31
- return `${n > 0 ? '+' : ''}${roundNumber(n * 100, decs)}%` // we assume no lower values that -100%
32
- }
33
-
34
- export const formatSignedRatioToPercentSign = (n: number, decs: number, skipSign = false) => {
35
- if (n > 1e7) return '>100K%' // we ceil percentages at 100k and abbreviate
36
- // Skip the sign when icons are used
37
- return `${skipSign ? '' : n > 0 ? '+' : ''}${roundNumber(Math.abs(n * 100), decs)}%`
38
- }
39
-
40
- /**
41
- * Formats e.g. 4 to 4%
42
- * @param n percent number
43
- * @param decs decimals to show
44
- * @returns percent as string
45
- */
46
- export const formatNumberToPercent = (n: number | undefined, decs = 2) => {
47
- if (!n) return '0%'
48
- if (isNaN(n)) return ''
49
- return `${roundNumber(Number(n ?? 0), decs)}%`
50
- }
51
-
52
- export const formatPercentagePoints = (n: number, decs: number) => {
53
- return `${roundNumber(n * 100, decs)}pp`
54
- }
55
-
56
- export const formatNumber = (n: number, decs: number) => {
57
- if (!n) return '0'
58
- if (isNaN(n)) return ''
59
- return roundNumber(n, decs).toLocaleString()
60
- }
61
-
62
- /**
63
- * Round using lodash
64
- * @param n number to round
65
- * @param decs decimals
66
- * @returns number
67
- */
68
- export const roundNumber = (n: number, decs: number) => {
69
- return _.round(n, decs)
70
- }
71
-
72
- /**
73
- * Converts a colateral factor e.g. 0.8 to 1/(1-0.8) = 5
74
- * @param n amount
75
- * @param decs decimals to show
76
- * @returns leverage as string
77
- */
78
- export const convertCollateralFactorToLeverage = (n: number, decs: number): number => {
79
- return roundNumber(1 / (1 - n), decs)
80
- }
81
-
82
- export const parseToTimes = (n: number) => `${n}×`
83
-
84
- export const parseToTimesPrefix = (n: number) => `×${n}`
85
-
86
- export const parseLeverage = (cf: number, decs = 2) => parseToTimes(convertCollateralFactorToLeverage(cf, decs))
87
-
88
- export const parseLeverageRange = (config: LenderConfigMap) => {
89
- const levs = _.uniq(
90
- Object.values(config ?? {}).map((cfg) => convertCollateralFactorToLeverage(cfg.borrowCollateralFactor, 2)),
91
- )
92
- if (!levs) return ''
93
- if (levs.length === 1) return parseToTimes(levs[0])
94
- return `${_.min(levs)}-${parseToTimes(Number(_.max(levs)))}`
95
- }
96
-
97
- /**
98
- * Get apr from intinsic interest and reward
99
- * @param apr apr number
100
- * @param reward reward [per year] number
101
- * @returns number, validated for NaN
102
- */
103
- export const getApr = (apr: number, reward: number, staking: number) => {
104
- const aprClean = !isNaN(apr) ? apr : 0
105
- const rewardClean = !isNaN(reward) ? reward : 0
106
- const stakingClean = !isNaN(staking) ? staking : 0
107
- if (aprClean + rewardClean + stakingClean < 0.01 && aprClean + rewardClean + stakingClean > -0.01) return '-'
108
- return `${(aprClean + rewardClean + stakingClean).toFixed(2)}%`
109
- }
110
-
111
- // Converters from apy to apr and reversed
112
-
113
- const SECONDS_PER_YEAR = 31536000
114
-
115
- export const aprToApy = (apr: number) => {
116
- return (1 + apr / SECONDS_PER_YEAR) ** SECONDS_PER_YEAR - 1
117
- }
118
-
119
- export const apyToApr = (apy: number) => {
120
- return ((apy + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR
121
- }
@@ -1 +0,0 @@
1
- export * from "./generalFormatters"
@@ -1,19 +0,0 @@
1
- import { UserApr } from "../../../types/lenderTypes"
2
- import { safeDivide } from "./formatting"
3
-
4
- export * from "./createGeneralUserState"
5
- export * from "./formatting"
6
- export * from "./createMultiAccountStyleUserState"
7
-
8
- export function divideAccrualsToAprs(aprs: { [assets: string]: UserApr }, nav: number, deposits: number, debt: number) {
9
- if (nav === 0) return {}
10
- let d: any = {}
11
- Object.entries(aprs).map(([k, data]) => {
12
- d[k] = {
13
- apr: safeDivide(data.borrowApr + data.depositApr, nav),
14
- borrowApr: safeDivide(data.borrowApr, debt),
15
- depositApr: safeDivide(data.depositApr, deposits),
16
- }
17
- })
18
- return d
19
- }