@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.
- package/dist/abis/aave/AToken.d.ts +526 -0
- package/dist/abis/aave/AToken.d.ts.map +1 -0
- package/dist/abis/aave/AToken.js +686 -0
- package/dist/abis/aave/AaveOracle.d.ts +40 -0
- package/dist/abis/aave/AaveOracle.d.ts.map +1 -0
- package/dist/abis/aave/AaveOracle.js +53 -0
- package/dist/abis/aave/AavePoolAndDataProvider.d.ts +1618 -0
- package/dist/abis/aave/AavePoolAndDataProvider.d.ts.map +1 -0
- package/dist/abis/aave/AavePoolAndDataProvider.js +2080 -0
- package/dist/abis/aave/AavePoolV3.d.ts +819 -0
- package/dist/abis/aave/AavePoolV3.d.ts.map +1 -0
- package/dist/abis/aave/AavePoolV3.js +1060 -0
- package/dist/abis/aave/AavePoolV3Upgraded.d.ts +1134 -0
- package/dist/abis/aave/AavePoolV3Upgraded.d.ts.map +1 -0
- package/dist/abis/aave/AavePoolV3Upgraded.js +1474 -0
- package/dist/abis/aave/AaveV3ProtocolDataProvider.d.ts +420 -0
- package/dist/abis/aave/AaveV3ProtocolDataProvider.d.ts.map +1 -0
- package/dist/abis/aave/AaveV3ProtocolDataProvider.js +553 -0
- package/dist/abis/aave/VariableDebtToken.d.ts +635 -0
- package/dist/abis/aave/VariableDebtToken.d.ts.map +1 -0
- package/dist/abis/aave/VariableDebtToken.js +820 -0
- package/dist/abis/aave-v2/ProtocolDataProvider.d.ts +238 -0
- package/dist/abis/aave-v2/ProtocolDataProvider.d.ts.map +1 -0
- package/dist/abis/aave-v2/ProtocolDataProvider.js +312 -0
- package/dist/abis/aave-v2/YLDR.d.ts +209 -0
- package/dist/abis/aave-v2/YLDR.d.ts.map +1 -0
- package/dist/abis/aave-v2/YLDR.js +199 -0
- package/dist/abis/aave-v3/AavePoolDataProviderLegacy.d.ts +406 -0
- package/dist/abis/aave-v3/AavePoolDataProviderLegacy.d.ts.map +1 -0
- package/dist/abis/aave-v3/AavePoolDataProviderLegacy.js +460 -0
- package/dist/abis/aave-v3/AavePoolLegacy.d.ts +819 -0
- package/dist/abis/aave-v3/AavePoolLegacy.d.ts.map +1 -0
- package/dist/abis/aave-v3/AavePoolLegacy.js +1060 -0
- package/dist/abis/aurelius/Rewarder.d.ts +90 -0
- package/dist/abis/aurelius/Rewarder.d.ts.map +1 -0
- package/dist/abis/aurelius/Rewarder.js +118 -0
- package/dist/abis/compound-v2/CompoundLens.d.ts +656 -0
- package/dist/abis/compound-v2/CompoundLens.d.ts.map +1 -0
- package/dist/abis/compound-v2/CompoundLens.js +851 -0
- package/dist/abis/compound-v2/Comptroller.d.ts +1615 -0
- package/dist/abis/compound-v2/Comptroller.d.ts.map +1 -0
- package/dist/abis/compound-v2/Comptroller.js +2104 -0
- package/dist/abis/compound-v3/Comet.d.ts +1402 -0
- package/dist/abis/compound-v3/Comet.d.ts.map +1 -0
- package/dist/abis/compound-v3/Comet.js +1829 -0
- package/dist/abis/compound-v3/CometExt.d.ts +411 -0
- package/dist/abis/compound-v3/CometExt.d.ts.map +1 -0
- package/dist/abis/compound-v3/CometExt.js +536 -0
- package/dist/abis/compound-v3/CometLens.d.ts +152 -0
- package/dist/abis/compound-v3/CometLens.d.ts.map +1 -0
- package/dist/abis/compound-v3/CometLens.js +194 -0
- package/dist/abis/compound-v3/CometRewards.d.ts +253 -0
- package/dist/abis/compound-v3/CometRewards.d.ts.map +1 -0
- package/dist/abis/compound-v3/CometRewards.js +330 -0
- package/dist/abis/compound-v3/IrGetter.d.ts +24 -0
- package/dist/abis/compound-v3/IrGetter.d.ts.map +1 -0
- package/dist/abis/compound-v3/IrGetter.js +31 -0
- package/dist/abis/flashloan-united/flashAbi.d.ts +54 -0
- package/dist/abis/flashloan-united/flashAbi.d.ts.map +1 -0
- package/dist/abis/flashloan-united/flashAbi.js +72 -0
- package/dist/abis/init/Core.d.ts +523 -0
- package/dist/abis/init/Core.d.ts.map +1 -0
- package/dist/abis/init/Core.js +681 -0
- package/dist/abis/init/InitFlashAggregator.d.ts +624 -0
- package/dist/abis/init/InitFlashAggregator.d.ts.map +1 -0
- package/dist/abis/init/InitFlashAggregator.js +795 -0
- package/dist/abis/init/InitLens.d.ts +158 -0
- package/dist/abis/init/InitLens.d.ts.map +1 -0
- package/dist/abis/init/InitLens.js +203 -0
- package/dist/abis/init/PosManager.d.ts +802 -0
- package/dist/abis/init/PosManager.d.ts.map +1 -0
- package/dist/abis/init/PosManager.js +1055 -0
- package/dist/abis/lendle/IncentivesController.d.ts +404 -0
- package/dist/abis/lendle/IncentivesController.d.ts.map +1 -0
- package/dist/abis/lendle/IncentivesController.js +525 -0
- package/dist/abis/lendle/MultiFeeDistribution.d.ts +624 -0
- package/dist/abis/lendle/MultiFeeDistribution.d.ts.map +1 -0
- package/dist/abis/lendle/MultiFeeDistribution.js +820 -0
- package/dist/abis/meridian/PullRewardsIncentivesController.d.ts +74 -0
- package/dist/abis/meridian/PullRewardsIncentivesController.d.ts.map +1 -0
- package/dist/abis/meridian/PullRewardsIncentivesController.js +98 -0
- package/dist/abis/multicall/Multicall.d.ts +80 -0
- package/dist/abis/multicall/Multicall.d.ts.map +1 -0
- package/dist/abis/multicall/Multicall.js +101 -0
- package/dist/abis/oracle/AaveOracle.d.ts +40 -0
- package/dist/abis/oracle/AaveOracle.d.ts.map +1 -0
- package/dist/abis/oracle/AaveOracle.js +53 -0
- package/dist/abis/oracle/Api3Oracle.d.ts +48 -0
- package/dist/abis/oracle/Api3Oracle.d.ts.map +1 -0
- package/dist/abis/oracle/Api3Oracle.js +62 -0
- package/dist/abis/oracle/ChainLinkAggregator.d.ts +372 -0
- package/dist/abis/oracle/ChainLinkAggregator.d.ts.map +1 -0
- package/dist/abis/oracle/ChainLinkAggregator.js +480 -0
- package/dist/abis/oracle/RWADynamicOracle.d.ts +12 -0
- package/dist/abis/oracle/RWADynamicOracle.d.ts.map +1 -0
- package/dist/abis/oracle/RWADynamicOracle.js +15 -0
- package/dist/abis/oracle/UniswapV2Pair.d.ts +513 -0
- package/dist/abis/oracle/UniswapV2Pair.d.ts.map +1 -0
- package/dist/abis/oracle/UniswapV2Pair.js +659 -0
- package/dist/abis/uniswap/FeeOnTransferDetector.d.ts +102 -0
- package/dist/abis/uniswap/FeeOnTransferDetector.d.ts.map +1 -0
- package/dist/abis/uniswap/FeeOnTransferDetector.js +133 -0
- package/dist/abis/uniswap/UniswapV2Pair.d.ts +513 -0
- package/dist/abis/uniswap/UniswapV2Pair.d.ts.map +1 -0
- package/dist/abis/uniswap/UniswapV2Pair.js +659 -0
- package/dist/assets/index.d.ts +20 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +54 -0
- package/dist/flash-liquidity/assets.d.ts +21 -0
- package/dist/flash-liquidity/assets.d.ts.map +1 -0
- package/dist/flash-liquidity/assets.js +45 -0
- package/dist/flash-liquidity/fetchLiquidity.d.ts +4 -0
- package/dist/flash-liquidity/fetchLiquidity.d.ts.map +1 -0
- package/dist/flash-liquidity/fetchLiquidity.js +235 -0
- package/dist/flash-liquidity/index.d.ts +2 -0
- package/dist/flash-liquidity/index.d.ts.map +1 -0
- package/dist/flash-liquidity/index.js +1 -0
- package/dist/flash-liquidity/types.d.ts +23 -0
- package/dist/flash-liquidity/types.d.ts.map +1 -0
- package/dist/flash-liquidity/types.js +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/lending/aave-v2-type/misc.d.ts +14 -0
- package/dist/lending/aave-v2-type/misc.d.ts.map +1 -0
- package/dist/lending/aave-v2-type/misc.js +8 -0
- package/dist/lending/aave-v2-type/publicCallBuild.d.ts +7 -0
- package/dist/lending/aave-v2-type/publicCallBuild.d.ts.map +1 -0
- package/dist/lending/aave-v2-type/publicCallBuild.js +102 -0
- package/dist/lending/aave-v2-type/publicCallParse.d.ts +7 -0
- package/dist/lending/aave-v2-type/publicCallParse.d.ts.map +1 -0
- package/dist/lending/aave-v2-type/publicCallParse.js +254 -0
- package/dist/lending/aave-v2-type/types.d.ts +78 -0
- package/dist/lending/aave-v2-type/types.d.ts.map +1 -0
- package/dist/lending/aave-v2-type/types.js +46 -0
- package/dist/lending/aave-v3-type/publicCallBuild.d.ts +4 -0
- package/dist/lending/aave-v3-type/publicCallBuild.d.ts.map +1 -0
- package/dist/lending/aave-v3-type/publicCallBuild.js +123 -0
- package/dist/lending/aave-v3-type/publicCallParse.d.ts +8 -0
- package/dist/lending/aave-v3-type/publicCallParse.d.ts.map +1 -0
- package/dist/lending/aave-v3-type/publicCallParse.js +304 -0
- package/dist/lending/aave-v3-type/types.d.ts +149 -0
- package/dist/lending/aave-v3-type/types.d.ts.map +1 -0
- package/dist/lending/aave-v3-type/types.js +90 -0
- package/dist/lending/addresses/aave.d.ts +10 -0
- package/dist/lending/addresses/aave.d.ts.map +1 -0
- package/dist/lending/addresses/aave.js +10 -0
- package/dist/lending/addresses/aaveV2.d.ts +6 -0
- package/dist/lending/addresses/aaveV2.d.ts.map +1 -0
- package/dist/lending/addresses/aaveV2.js +6 -0
- package/dist/lending/addresses/aurelius.d.ts +12 -0
- package/dist/lending/addresses/aurelius.d.ts.map +1 -0
- package/dist/lending/addresses/aurelius.js +12 -0
- package/dist/lending/addresses/compoundV3.d.ts +10 -0
- package/dist/lending/addresses/compoundV3.d.ts.map +1 -0
- package/dist/lending/addresses/compoundV3.js +35 -0
- package/dist/lending/addresses/contracts.d.ts +5 -0
- package/dist/lending/addresses/contracts.d.ts.map +1 -0
- package/dist/lending/addresses/contracts.js +49 -0
- package/dist/lending/addresses/hana.d.ts +6 -0
- package/dist/lending/addresses/hana.d.ts.map +1 -0
- package/dist/lending/addresses/hana.js +6 -0
- package/dist/lending/addresses/index.d.ts +2 -0
- package/dist/lending/addresses/index.d.ts.map +1 -0
- package/dist/lending/addresses/index.js +1 -0
- package/dist/lending/addresses/init.d.ts +4 -0
- package/dist/lending/addresses/init.d.ts.map +1 -0
- package/dist/lending/addresses/init.js +33 -0
- package/dist/lending/addresses/lendle.d.ts +12 -0
- package/dist/lending/addresses/lendle.d.ts.map +1 -0
- package/dist/lending/addresses/lendle.js +12 -0
- package/dist/lending/addresses/meridian.d.ts +12 -0
- package/dist/lending/addresses/meridian.d.ts.map +1 -0
- package/dist/lending/addresses/meridian.js +12 -0
- package/dist/lending/addresses/takotako.d.ts +12 -0
- package/dist/lending/addresses/takotako.d.ts.map +1 -0
- package/dist/lending/addresses/takotako.js +12 -0
- package/dist/lending/compound-v3/publicCallBuild.d.ts +3 -0
- package/dist/lending/compound-v3/publicCallBuild.d.ts.map +1 -0
- package/dist/lending/compound-v3/publicCallBuild.js +63 -0
- package/dist/lending/compound-v3/publicCallParse.d.ts +7 -0
- package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -0
- package/dist/lending/compound-v3/publicCallParse.js +119 -0
- package/dist/lending/compound-v3/types.d.ts +30 -0
- package/dist/lending/compound-v3/types.d.ts.map +1 -0
- package/dist/lending/compound-v3/types.js +6 -0
- package/dist/lending/fetchLender.d.ts +8 -0
- package/dist/lending/fetchLender.d.ts.map +1 -0
- package/dist/lending/fetchLender.js +104 -0
- package/dist/lending/index.d.ts +3 -0
- package/dist/lending/index.d.ts.map +1 -0
- package/dist/lending/index.js +2 -0
- package/dist/lending/init/publicCallBuild.d.ts +7 -0
- package/dist/lending/init/publicCallBuild.d.ts.map +1 -0
- package/dist/lending/init/publicCallBuild.js +21 -0
- package/dist/lending/init/publicCallParse.d.ts +10 -0
- package/dist/lending/init/publicCallParse.d.ts.map +1 -0
- package/dist/lending/init/publicCallParse.js +75 -0
- package/dist/lending/init/types.d.ts +38 -0
- package/dist/lending/init/types.d.ts.map +1 -0
- package/dist/lending/init/types.js +6 -0
- package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts +4 -0
- package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -0
- package/dist/lending/user-data/aave-v2-type/userCallBuild.js +106 -0
- package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts +8 -0
- package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -0
- package/dist/lending/user-data/aave-v2-type/userCallParse.js +225 -0
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts +4 -0
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -0
- package/dist/lending/user-data/aave-v3-type/userCallBuild.js +41 -0
- package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts +8 -0
- package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -0
- package/dist/lending/user-data/aave-v3-type/userCallParse.js +76 -0
- package/dist/lending/user-data/abis.d.ts +8422 -0
- package/dist/lending/user-data/abis.d.ts.map +1 -0
- package/dist/lending/user-data/abis.js +46 -0
- package/dist/lending/user-data/compound-v3/addresses.d.ts +10 -0
- package/dist/lending/user-data/compound-v3/addresses.d.ts.map +1 -0
- package/dist/lending/user-data/compound-v3/addresses.js +32 -0
- package/dist/lending/user-data/compound-v3/index.d.ts +4 -0
- package/dist/lending/user-data/compound-v3/index.d.ts.map +1 -0
- package/dist/lending/user-data/compound-v3/index.js +3 -0
- package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +4 -0
- package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -0
- package/dist/lending/user-data/compound-v3/userCallBuild.js +44 -0
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts +8 -0
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -0
- package/dist/lending/user-data/compound-v3/userCallParse.js +98 -0
- package/dist/lending/user-data/fetchUserData.d.ts +24 -0
- package/dist/lending/user-data/fetchUserData.d.ts.map +1 -0
- package/dist/lending/user-data/fetchUserData.js +76 -0
- package/dist/lending/user-data/index.d.ts +3 -0
- package/dist/lending/user-data/index.d.ts.map +1 -0
- package/dist/lending/user-data/index.js +2 -0
- package/dist/lending/user-data/init/userCallBuild.d.ts +8 -0
- package/dist/lending/user-data/init/userCallBuild.d.ts.map +1 -0
- package/dist/lending/user-data/init/userCallBuild.js +20 -0
- package/dist/lending/user-data/init/userCallParse.d.ts +8 -0
- package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -0
- package/dist/lending/user-data/init/userCallParse.js +87 -0
- package/dist/lending/user-data/types.d.ts +218 -0
- package/dist/lending/user-data/types.d.ts.map +1 -0
- package/dist/lending/user-data/types.js +26 -0
- package/dist/lending/user-data/utils/createGeneralUserState.d.ts +45 -0
- package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -0
- package/dist/lending/user-data/utils/createGeneralUserState.js +98 -0
- package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts +16 -0
- package/dist/lending/user-data/utils/createMultiAccountStyleUserState.d.ts.map +1 -0
- package/dist/lending/user-data/utils/createMultiAccountStyleUserState.js +96 -0
- package/dist/lending/user-data/utils/formatting/generalFormatters.d.ts +55 -0
- package/dist/lending/user-data/utils/formatting/generalFormatters.d.ts.map +1 -0
- package/dist/lending/user-data/utils/formatting/generalFormatters.js +109 -0
- package/dist/lending/user-data/utils/formatting/index.d.ts +2 -0
- package/dist/lending/user-data/utils/formatting/index.d.ts.map +1 -0
- package/dist/lending/user-data/utils/formatting/index.js +1 -0
- package/dist/lending/user-data/utils/index.d.ts +8 -0
- package/dist/lending/user-data/utils/index.d.ts.map +1 -0
- package/dist/lending/user-data/utils/index.js +17 -0
- package/dist/lending-pairs/computeLendingPairs.d.ts +30 -0
- package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -0
- package/dist/lending-pairs/computeLendingPairs.js +153 -0
- package/dist/lending-pairs/index.d.ts +2 -0
- package/dist/lending-pairs/index.d.ts.map +1 -0
- package/dist/lending-pairs/index.js +1 -0
- package/dist/prices/defillama/index.d.ts +3 -0
- package/dist/prices/defillama/index.d.ts.map +1 -0
- package/dist/prices/defillama/index.js +269 -0
- package/dist/prices/index.d.ts +3 -0
- package/dist/prices/index.d.ts.map +1 -0
- package/dist/prices/index.js +2 -0
- package/dist/prices/main-prices/addresses/aaveOracles.d.ts +279 -0
- package/dist/prices/main-prices/addresses/aaveOracles.d.ts.map +1 -0
- package/dist/prices/main-prices/addresses/aaveOracles.js +278 -0
- package/dist/prices/main-prices/addresses/api3.d.ts +6 -0
- package/dist/prices/main-prices/addresses/api3.d.ts.map +1 -0
- package/dist/prices/main-prices/addresses/api3.js +9 -0
- package/dist/prices/main-prices/addresses/chainlink.d.ts +740 -0
- package/dist/prices/main-prices/addresses/chainlink.d.ts.map +1 -0
- package/dist/prices/main-prices/addresses/chainlink.js +744 -0
- package/dist/prices/main-prices/fetchOracleData.d.ts +12 -0
- package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -0
- package/dist/prices/main-prices/fetchOracleData.js +308 -0
- package/dist/prices/main-prices/index.d.ts +2 -0
- package/dist/prices/main-prices/index.d.ts.map +1 -0
- package/dist/prices/main-prices/index.js +1 -0
- package/dist/types/apiReturnType.d.ts +74 -0
- package/dist/types/apiReturnType.d.ts.map +1 -0
- package/dist/types/apiReturnType.js +1 -0
- package/dist/types/index.d.ts +42 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/providers.d.ts +12 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +1 -0
- package/dist/utils/constants.d.ts +30 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +97 -0
- package/dist/utils/index.d.ts +19 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +71 -0
- package/dist/utils/multicall.d.ts +5 -0
- package/dist/utils/multicall.d.ts.map +1 -0
- package/dist/utils/multicall.js +30 -0
- package/dist/utils/parsing.d.ts +14 -0
- package/dist/utils/parsing.d.ts.map +1 -0
- package/dist/utils/parsing.js +61 -0
- package/dist/yields/index.d.ts +21 -0
- package/dist/yields/index.d.ts.map +1 -0
- package/dist/yields/index.js +157 -0
- package/package.json +26 -0
- package/src/abis/aave/AToken.ts +686 -0
- package/src/abis/aave/AaveOracle.ts +53 -0
- package/src/abis/aave/AavePoolAndDataProvider.ts +2080 -0
- package/src/abis/aave/AavePoolV3.ts +1060 -0
- package/src/abis/aave/AavePoolV3Upgraded.ts +1474 -0
- package/src/abis/aave/AaveV3ProtocolDataProvider.ts +553 -0
- package/src/abis/aave/VariableDebtToken.ts +820 -0
- package/src/abis/aave-v2/ProtocolDataProvider.ts +312 -0
- package/src/abis/aave-v2/YLDR.ts +199 -0
- package/src/abis/aave-v3/AavePoolDataProviderLegacy.ts +459 -0
- package/src/abis/aave-v3/AavePoolLegacy.ts +1060 -0
- package/src/abis/aurelius/Rewarder.ts +118 -0
- package/src/abis/compound-v2/CompoundLens.ts +851 -0
- package/src/abis/compound-v2/Comptroller.ts +2104 -0
- package/src/abis/compound-v3/Comet.ts +1829 -0
- package/src/abis/compound-v3/CometExt.ts +536 -0
- package/src/abis/compound-v3/CometLens.ts +194 -0
- package/src/abis/compound-v3/CometRewards.ts +330 -0
- package/src/abis/compound-v3/IrGetter.ts +31 -0
- package/src/abis/flashloan-united/flashAbi.ts +72 -0
- package/src/abis/init/Core.ts +681 -0
- package/src/abis/init/InitFlashAggregator.ts +795 -0
- package/src/abis/init/InitLens.ts +203 -0
- package/src/abis/init/PosManager.ts +1055 -0
- package/src/abis/lendle/IncentivesController.ts +525 -0
- package/src/abis/lendle/MultiFeeDistribution.ts +820 -0
- package/src/abis/meridian/PullRewardsIncentivesController.ts +98 -0
- package/src/abis/multicall/Multicall.ts +101 -0
- package/src/abis/oracle/AaveOracle.ts +53 -0
- package/src/abis/oracle/Api3Oracle.ts +62 -0
- package/src/abis/oracle/ChainLinkAggregator.ts +480 -0
- package/src/abis/oracle/RWADynamicOracle.ts +15 -0
- package/src/abis/oracle/UniswapV2Pair.ts +659 -0
- package/src/abis/uniswap/FeeOnTransferDetector.ts +133 -0
- package/src/abis/uniswap/UniswapV2Pair.ts +659 -0
- package/src/assets/index.ts +82 -0
- package/src/flash-liquidity/assets.ts +61 -0
- package/src/flash-liquidity/fetchLiquidity.ts +300 -0
- package/src/flash-liquidity/index.ts +1 -0
- package/src/flash-liquidity/types.ts +20 -0
- package/src/index.ts +7 -0
- package/src/lending/aave-v2-type/misc.ts +9 -0
- package/src/lending/aave-v2-type/publicCallBuild.ts +105 -0
- package/src/lending/aave-v2-type/publicCallParse.ts +300 -0
- package/src/lending/aave-v2-type/types.ts +98 -0
- package/src/lending/aave-v3-type/publicCallBuild.ts +148 -0
- package/src/lending/aave-v3-type/publicCallParse.ts +373 -0
- package/src/lending/aave-v3-type/types.ts +181 -0
- package/src/lending/addresses/aave.ts +12 -0
- package/src/lending/addresses/aaveV2.ts +8 -0
- package/src/lending/addresses/aurelius.ts +13 -0
- package/src/lending/addresses/compoundV3.ts +42 -0
- package/src/lending/addresses/contracts.ts +54 -0
- package/src/lending/addresses/hana.ts +7 -0
- package/src/lending/addresses/index.ts +1 -0
- package/src/lending/addresses/init.ts +37 -0
- package/src/lending/addresses/lendle.ts +13 -0
- package/src/lending/addresses/meridian.ts +13 -0
- package/src/lending/addresses/takotako.ts +14 -0
- package/src/lending/compound-v3/publicCallBuild.ts +74 -0
- package/src/lending/compound-v3/publicCallParse.ts +143 -0
- package/src/lending/compound-v3/types.ts +43 -0
- package/src/lending/fetchLender.ts +138 -0
- package/src/lending/index.ts +2 -0
- package/src/lending/init/publicCallBuild.ts +29 -0
- package/src/lending/init/publicCallParse.ts +90 -0
- package/src/lending/init/types.ts +50 -0
- package/src/lending/user-data/aave-v2-type/userCallBuild.ts +142 -0
- package/src/lending/user-data/aave-v2-type/userCallParse.ts +328 -0
- package/src/lending/user-data/aave-v3-type/userCallBuild.ts +58 -0
- package/src/lending/user-data/aave-v3-type/userCallParse.ts +115 -0
- package/src/lending/user-data/abis.ts +45 -0
- package/src/lending/user-data/compound-v3/addresses.ts +40 -0
- package/src/lending/user-data/compound-v3/index.ts +3 -0
- package/src/lending/user-data/compound-v3/userCallBuild.ts +53 -0
- package/src/lending/user-data/compound-v3/userCallParse.ts +123 -0
- package/src/lending/user-data/fetchUserData.ts +121 -0
- package/src/lending/user-data/index.ts +2 -0
- package/src/lending/user-data/init/userCallBuild.ts +26 -0
- package/src/lending/user-data/init/userCallParse.ts +115 -0
- package/src/lending/user-data/types.ts +280 -0
- package/src/lending/user-data/utils/createGeneralUserState.ts +118 -0
- package/src/lending/user-data/utils/createMultiAccountStyleUserState.ts +113 -0
- package/src/lending/user-data/utils/formatting/generalFormatters.ts +121 -0
- package/src/lending/user-data/utils/formatting/index.ts +1 -0
- package/src/lending/user-data/utils/index.ts +19 -0
- package/src/lending-pairs/computeLendingPairs.ts +213 -0
- package/src/lending-pairs/index.ts +1 -0
- package/src/prices/defillama/index.ts +306 -0
- package/src/prices/index.ts +2 -0
- package/src/prices/main-prices/addresses/aaveOracles.ts +279 -0
- package/src/prices/main-prices/addresses/api3.ts +10 -0
- package/src/prices/main-prices/addresses/chainlink.ts +750 -0
- package/src/prices/main-prices/fetchOracleData.ts +406 -0
- package/src/prices/main-prices/index.ts +1 -0
- package/src/types/apiReturnType.ts +80 -0
- package/src/types/index.ts +38 -0
- package/src/types/providers.ts +26 -0
- package/src/utils/constants.ts +100 -0
- package/src/utils/index.ts +87 -0
- package/src/utils/multicall.ts +53 -0
- package/src/utils/parsing.ts +75 -0
- package/src/yields/index.ts +198 -0
- package/test/index.test.ts +104 -0
- package/test/lenderData.test.ts +13718 -0
- package/test/mainPrices.test.ts +35 -0
- package/test/userdata.test.ts +200 -0
- package/tsconfig.json +28 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry"
|
|
2
|
+
|
|
3
|
+
export function getInitPosManagerAddress(chainId: string) {
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
return addressesInitCore.PosManager[chainId]
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function getInitCoreAddress(chainId: string) {
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
return addressesInitCore.Core[chainId]
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function getInitLensAddress(chainId: string) {
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
return addressesInitCore.PublicLens[chainId]
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const addressesInitCore = {
|
|
19
|
+
InitOracle: {
|
|
20
|
+
[Chain.MANTLE]: '0x4E195A32b2f6eBa9c4565bA49bef34F23c2C0350'
|
|
21
|
+
},
|
|
22
|
+
Core: {
|
|
23
|
+
[Chain.MANTLE]: '0x972BcB0284cca0152527c4f70f8F689852bCAFc5'
|
|
24
|
+
},
|
|
25
|
+
Config: {
|
|
26
|
+
[Chain.MANTLE]: '0x007F91636E0f986068Ef27c950FA18734BA553Ac'
|
|
27
|
+
},
|
|
28
|
+
PosManager: {
|
|
29
|
+
[Chain.MANTLE]: '0x0e7401707CD08c03CDb53DAEF3295DDFb68BBa92'
|
|
30
|
+
},
|
|
31
|
+
Lens: {
|
|
32
|
+
[Chain.MANTLE]: '0x7d2b278b8ef87bEb83AeC01243ff2Fed57456042'
|
|
33
|
+
},
|
|
34
|
+
PublicLens: {
|
|
35
|
+
[Chain.MANTLE]: '0xDf75fF0452eDf4897B051A54b406eB384503Ac39'
|
|
36
|
+
},
|
|
37
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry";
|
|
2
|
+
|
|
3
|
+
export const addressesLendleCore = {
|
|
4
|
+
AaveOracle: {
|
|
5
|
+
[Chain.MANTLE]: '0x870c9692Ab04944C86ec6FEeF63F261226506EfC'
|
|
6
|
+
},
|
|
7
|
+
IncentivesController: {
|
|
8
|
+
[Chain.MANTLE]: '0x79e2fd1c484EB9EE45001A98Ce31F28918F27C41'
|
|
9
|
+
},
|
|
10
|
+
MultiFeeDistribution: {
|
|
11
|
+
[Chain.MANTLE]: '0x5C75A733656c3E42E44AFFf1aCa1913611F49230'
|
|
12
|
+
},
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry";
|
|
2
|
+
|
|
3
|
+
export const addressesMeridianCore = {
|
|
4
|
+
AaveOracle: {
|
|
5
|
+
[Chain.TAIKO_ALETHIA]: '0xd79417be2cE02fc22F2E520869b1DfC02a677751',
|
|
6
|
+
},
|
|
7
|
+
IncentivesController: {
|
|
8
|
+
[Chain.TAIKO_ALETHIA]: '0xb3020EbFD800B488B64E92A8717E826cBf0d63E2'
|
|
9
|
+
},
|
|
10
|
+
MultiFeeDistribution: {
|
|
11
|
+
[Chain.TAIKO_ALETHIA]: '0xb0e103e2A80489Ba697D882EEd0Ba552389Ca31E'
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export const addressesTakoTakoCore = {
|
|
5
|
+
AaveOracle: {
|
|
6
|
+
[Chain.TAIKO_ALETHIA]: '0x4Feb232c357F5Fb11A6Ff43FC46808BebC2f55b5'
|
|
7
|
+
},
|
|
8
|
+
IncentivesController: {
|
|
9
|
+
[Chain.TAIKO_ALETHIA]: '0x'
|
|
10
|
+
},
|
|
11
|
+
MultiFeeDistribution: {
|
|
12
|
+
[Chain.TAIKO_ALETHIA]: '0x'
|
|
13
|
+
},
|
|
14
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Lender } from "@1delta/asset-registry"
|
|
2
|
+
import { getCompoundV3Assets } from "../../assets"
|
|
3
|
+
import { getCompoundV3BaseAsset, getCompoundV3CometAddress, getCompoundV3CometIRGetterAddress } from "../addresses/compoundV3"
|
|
4
|
+
import { Call } from "../../utils/multicall"
|
|
5
|
+
|
|
6
|
+
export const buildCompoundV3StyleLenderReserveCall = (chainId: string, lender: Lender) => {
|
|
7
|
+
|
|
8
|
+
const baseAssetData = getCompoundV3BaseAsset(lender, chainId)
|
|
9
|
+
const underlyingArray = getCompoundV3Assets(chainId, lender)
|
|
10
|
+
const cometContractAddress = getCompoundV3CometAddress(chainId, lender)!
|
|
11
|
+
const assetsToQuery = underlyingArray
|
|
12
|
+
const tokensNoBase = assetsToQuery.filter(a => a !== baseAssetData.baseAsset)
|
|
13
|
+
|
|
14
|
+
const callsAssetInfoAndTotals: Call[] = tokensNoBase.flatMap((tk) => {
|
|
15
|
+
return [
|
|
16
|
+
{
|
|
17
|
+
address: cometContractAddress,
|
|
18
|
+
name: 'getAssetInfoByAddress',
|
|
19
|
+
params: [tk],
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
address: cometContractAddress,
|
|
23
|
+
name: 'totalsCollateral',
|
|
24
|
+
params: [tk],
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
const callSupplyRewards: Call = {
|
|
30
|
+
address: cometContractAddress,
|
|
31
|
+
name: 'baseTrackingSupplySpeed',
|
|
32
|
+
params: [],
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const callBorrowRewards: Call = {
|
|
36
|
+
address: cometContractAddress,
|
|
37
|
+
name: 'baseTrackingBorrowSpeed',
|
|
38
|
+
params: [],
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const callIndexScale: Call = {
|
|
42
|
+
address: cometContractAddress,
|
|
43
|
+
name: 'baseIndexScale',
|
|
44
|
+
params: [],
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const callSupply: Call = {
|
|
48
|
+
address: cometContractAddress,
|
|
49
|
+
name: 'totalSupply',
|
|
50
|
+
params: [],
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const callBorrow: Call = {
|
|
54
|
+
address: cometContractAddress,
|
|
55
|
+
name: 'totalBorrow',
|
|
56
|
+
params: [],
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const callInterest: Call = {
|
|
60
|
+
address: getCompoundV3CometIRGetterAddress(chainId),
|
|
61
|
+
name: 'getCometInterest',
|
|
62
|
+
params: [cometContractAddress],
|
|
63
|
+
}
|
|
64
|
+
const calls = [
|
|
65
|
+
...callsAssetInfoAndTotals,
|
|
66
|
+
callSupplyRewards,
|
|
67
|
+
callBorrowRewards,
|
|
68
|
+
callIndexScale, // rewards data
|
|
69
|
+
callSupply,
|
|
70
|
+
callBorrow, // supply / borrow
|
|
71
|
+
callInterest
|
|
72
|
+
]
|
|
73
|
+
return calls
|
|
74
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { Lender } from "@1delta/asset-registry"
|
|
2
|
+
import { AdditionalYields } from "../../types"
|
|
3
|
+
import { CometInterestRateIndexes, CompoundV3GeneralPublicResponse } from "./types"
|
|
4
|
+
import { getAssetMeta, getCompoundV3Assets, LENDER_MODE_NO_MODE, toGenericPriceKey, toOracleKey } from "../../assets"
|
|
5
|
+
import { getCompoundV3BaseAsset } from "../addresses/compoundV3"
|
|
6
|
+
import { calculateRateForCompound, parseRawAmount } from "../../utils/parsing"
|
|
7
|
+
|
|
8
|
+
const COMET_RISK_DECIMALS = 18
|
|
9
|
+
const SECONDS_PER_DAY = 3600 * 24
|
|
10
|
+
const DAYS_IN_YEAR = 365
|
|
11
|
+
|
|
12
|
+
export const getCompoundV3ReservesDataConverter = (
|
|
13
|
+
lender: Lender,
|
|
14
|
+
chainId: string,
|
|
15
|
+
prices: { [asset: string]: number },
|
|
16
|
+
additionalYields: AdditionalYields
|
|
17
|
+
): [(data: any[]) => CompoundV3GeneralPublicResponse | undefined, number] => {
|
|
18
|
+
|
|
19
|
+
const assetsToQuery = getCompoundV3Assets(chainId, lender)
|
|
20
|
+
const baseAssetData = getCompoundV3BaseAsset(lender, chainId)
|
|
21
|
+
const tokensNoBase = assetsToQuery.filter(a => a !== baseAssetData.baseAsset)
|
|
22
|
+
|
|
23
|
+
const baseLength = tokensNoBase.length * 2
|
|
24
|
+
const expectedNumberOfCalls = baseLength + 6
|
|
25
|
+
return [
|
|
26
|
+
(data: any[]) => {
|
|
27
|
+
if (data.length !== expectedNumberOfCalls) {
|
|
28
|
+
return undefined
|
|
29
|
+
}
|
|
30
|
+
let result: any = {}
|
|
31
|
+
for (let i = 0; i < tokensNoBase.length; i++) {
|
|
32
|
+
const asset = tokensNoBase[i]
|
|
33
|
+
const resultsAssetInfo = data[i * 2]
|
|
34
|
+
const resultsTotals = data[i * 2 + 1]
|
|
35
|
+
const assetMeta = getAssetMeta(chainId, asset)
|
|
36
|
+
const decimals = assetMeta?.decimals ?? 18
|
|
37
|
+
const totals = parseRawAmount(resultsTotals[0], decimals)
|
|
38
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId)
|
|
39
|
+
result[asset] = {
|
|
40
|
+
poolId: asset,
|
|
41
|
+
underlying: asset,
|
|
42
|
+
config: {
|
|
43
|
+
[LENDER_MODE_NO_MODE]: {
|
|
44
|
+
category: LENDER_MODE_NO_MODE,
|
|
45
|
+
// collateral factors
|
|
46
|
+
borrowCollateralFactor: parseRawAmount(resultsAssetInfo.borrowCollateralFactor.toString(), COMET_RISK_DECIMALS),
|
|
47
|
+
collateralFactor: parseRawAmount(resultsAssetInfo.liquidateCollateralFactor.toString(), COMET_RISK_DECIMALS),
|
|
48
|
+
borrowFactor: 1
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
supplyCap: parseRawAmount(resultsAssetInfo.supplyCap.toString(), decimals),
|
|
52
|
+
|
|
53
|
+
// interest rates
|
|
54
|
+
variableBorrowRate: 0,
|
|
55
|
+
stableBorrowRate: 0,
|
|
56
|
+
depositRate: 0,
|
|
57
|
+
stakingYield: additionalYields.intrinsicYields[oracleKey] ?? 0,
|
|
58
|
+
|
|
59
|
+
utilization: 0,
|
|
60
|
+
// debt and liquidity are zero
|
|
61
|
+
totalDebt: 0,
|
|
62
|
+
totalDebtUSD: 0,
|
|
63
|
+
totalLiquidity: 0,
|
|
64
|
+
totalLiquidityUSD: 0,
|
|
65
|
+
// deposits are different outputs for base asset and others
|
|
66
|
+
totalDeposits: totals,
|
|
67
|
+
totalDepositsUSD: Number(totals) * (prices[oracleKey] ?? 1),
|
|
68
|
+
// rewards
|
|
69
|
+
rewards: {},
|
|
70
|
+
borrowingEnabled: false
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const baseMeta = getAssetMeta(chainId, baseAssetData.baseAsset)
|
|
75
|
+
|
|
76
|
+
// parse data for rewards calculation
|
|
77
|
+
const decimals = baseMeta?.decimals ?? 18
|
|
78
|
+
const resultsSupplyRewards = Number(data[baseLength]?.toString())
|
|
79
|
+
const resultsBorrowRewards = Number(data[baseLength + 1]?.toString())
|
|
80
|
+
const resultsIndexScale = data[baseLength + 2]?.toString()
|
|
81
|
+
const resultsSupply = parseRawAmount(data[baseLength + 3]?.toString(), decimals)
|
|
82
|
+
const resultsBorrow = parseRawAmount(data[baseLength + 4]?.toString(), decimals)
|
|
83
|
+
|
|
84
|
+
const compToSuppliersPerDay = resultsSupplyRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
|
|
85
|
+
const compToBorrowersPerDay = resultsBorrowRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
|
|
86
|
+
|
|
87
|
+
const resultsInterest = data[baseLength + 5]
|
|
88
|
+
|
|
89
|
+
const oracleKeyBase = toOracleKey(baseMeta.assetGroup) ?? toGenericPriceKey(baseAssetData.baseAsset, chainId)
|
|
90
|
+
const price = prices[oracleKeyBase] ?? 1
|
|
91
|
+
const liquidity = Number(resultsSupply) - Number(resultsBorrow)
|
|
92
|
+
const compPrice = prices["COMP"]
|
|
93
|
+
|
|
94
|
+
const baseData = {
|
|
95
|
+
[baseAssetData.baseAsset]: {
|
|
96
|
+
poolId: baseAssetData.baseAsset,
|
|
97
|
+
underlying: baseAssetData.baseAsset,
|
|
98
|
+
// collateral factots
|
|
99
|
+
borrowCollateralFactor: 0,
|
|
100
|
+
collateralFactor: 0,
|
|
101
|
+
supplyCap: 0,
|
|
102
|
+
|
|
103
|
+
config: {
|
|
104
|
+
[LENDER_MODE_NO_MODE]: {
|
|
105
|
+
category: LENDER_MODE_NO_MODE,
|
|
106
|
+
// collateral factors
|
|
107
|
+
borrowCollateralFactor: 0,
|
|
108
|
+
collateralFactor: 0,
|
|
109
|
+
borrowFactor: 1
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
// interest rates
|
|
113
|
+
variableBorrowRate: calculateRateForCompound(resultsInterest[CometInterestRateIndexes.borrowRate].toString(), chainId, lender),
|
|
114
|
+
depositRate: calculateRateForCompound(resultsInterest[CometInterestRateIndexes.supplyRate].toString(), chainId, lender),
|
|
115
|
+
stableBorrowRate: 0,
|
|
116
|
+
utilization: parseRawAmount(resultsInterest[CometInterestRateIndexes.utilization].toString(), COMET_RISK_DECIMALS),
|
|
117
|
+
|
|
118
|
+
totalLiquidity: liquidity,
|
|
119
|
+
totalLiquidityUSD: liquidity * price,
|
|
120
|
+
|
|
121
|
+
totalDebt: resultsBorrow,
|
|
122
|
+
totalDeposits: resultsSupply,
|
|
123
|
+
|
|
124
|
+
totalDebtUSD: Number(resultsBorrow) * price,
|
|
125
|
+
totalDepositsUSD: Number(resultsSupply) * price,
|
|
126
|
+
// rewards
|
|
127
|
+
rewards: {
|
|
128
|
+
COMP: {
|
|
129
|
+
depositRate: (compPrice * compToSuppliersPerDay / Number(resultsSupply)) * DAYS_IN_YEAR * 100 / price,
|
|
130
|
+
variableBorrowRate: (compPrice * compToBorrowersPerDay / Number(resultsBorrow)) * DAYS_IN_YEAR * 100 / price,
|
|
131
|
+
stableBorrowRate: 0,
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
borrowingEnabled: true,
|
|
135
|
+
stakingYield: additionalYields.intrinsicYields[oracleKeyBase] ?? 0,
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return { data: { ...result, ...baseData }, chainId }
|
|
139
|
+
},
|
|
140
|
+
expectedNumberOfCalls
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { RewardsMap } from "../aave-v3-type/types";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
export enum CometInterestRateIndexes {
|
|
6
|
+
borrowRate = 0,
|
|
7
|
+
supplyRate = 1,
|
|
8
|
+
utilization = 2
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface CompoundV3GeneralPublicResponse {
|
|
12
|
+
data: {
|
|
13
|
+
[tokenSymbol: string]: {
|
|
14
|
+
|
|
15
|
+
config: {
|
|
16
|
+
[0]: {
|
|
17
|
+
category: 0,
|
|
18
|
+
// collateral factors
|
|
19
|
+
borrowCollateralFactor: number,
|
|
20
|
+
collateralFactor: number,
|
|
21
|
+
borrowFactor: 1
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
liquidationFactor: string;
|
|
26
|
+
supplyCap: number;
|
|
27
|
+
|
|
28
|
+
// interest rates
|
|
29
|
+
variableBorrowRate: number;
|
|
30
|
+
depositRate: number;
|
|
31
|
+
|
|
32
|
+
utilization: number;
|
|
33
|
+
|
|
34
|
+
totalDebt: number;
|
|
35
|
+
// deposits are different outputs for base asset and others
|
|
36
|
+
totalDeposits: number;
|
|
37
|
+
|
|
38
|
+
// rewards
|
|
39
|
+
rewards?: RewardsMap
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
chainId: string;
|
|
43
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
|
|
2
|
+
// aave v2 style
|
|
3
|
+
import { ProtocolDataProviderAbi } from '../abis/aave-v2/ProtocolDataProvider'
|
|
4
|
+
import { IncentivesControllerAbi } from '../abis/lendle/IncentivesController'
|
|
5
|
+
import { RewarderAbi } from '../abis/aurelius/Rewarder'
|
|
6
|
+
import { UniswapV2PairAbi } from '../abis/uniswap/UniswapV2Pair'
|
|
7
|
+
|
|
8
|
+
// aave v3 style
|
|
9
|
+
import { AavePoolV3UpgradedAbi } from '../abis/aave/AavePoolV3Upgraded'
|
|
10
|
+
import { AaveV3ProtocolDataProviderAbi } from '../abis/aave/AaveV3ProtocolDataProvider'
|
|
11
|
+
|
|
12
|
+
// init
|
|
13
|
+
import { InitLensAbi } from '../abis/init/InitLens'
|
|
14
|
+
|
|
15
|
+
// compound v3
|
|
16
|
+
import { CometAbi } from '../abis/compound-v3/Comet'
|
|
17
|
+
import { CometExtAbi } from '../abis/compound-v3/CometExt'
|
|
18
|
+
import { IrgetterAbi } from '../abis/compound-v3/IrGetter'
|
|
19
|
+
|
|
20
|
+
import { isAaveV2Type, isAaveV3Original, isAaveV3Type, isCompoundV3, isInit } from '../utils'
|
|
21
|
+
import { AdditionalYields, MulticallRetryFunction } from '../types'
|
|
22
|
+
import { buildAaveV2StyleLenderReserveCall } from './aave-v2-type/publicCallBuild'
|
|
23
|
+
import { buildAaveV3StyleLenderReserveCall } from './aave-v3-type/publicCallBuild'
|
|
24
|
+
import { buildInitStyleLenderReserveCall } from './init/publicCallBuild'
|
|
25
|
+
import { buildCompoundV3StyleLenderReserveCall } from './compound-v3/publicCallBuild'
|
|
26
|
+
import { getAaveV2ReservesDataConverter } from './aave-v2-type/publicCallParse'
|
|
27
|
+
import { getAaveV3ReservesDataConverter } from './aave-v3-type/publicCallParse'
|
|
28
|
+
import { getInitReservesDataConverter } from './init/publicCallParse'
|
|
29
|
+
import { getCompoundV3ReservesDataConverter } from './compound-v3/publicCallParse'
|
|
30
|
+
import { AavePoolLegacyAbi } from '../abis/aave-v3/AavePoolLegacy'
|
|
31
|
+
import { AavePoolDataProviderLegacyAbi } from '../abis/aave-v3/AavePoolDataProviderLegacy'
|
|
32
|
+
import { Lender } from '@1delta/asset-registry'
|
|
33
|
+
import { Call } from 'viem'
|
|
34
|
+
import { YLDRProtocolDataProviderAbi } from '../abis/aave-v2/YLDR'
|
|
35
|
+
|
|
36
|
+
function buildLenderCall(chainId: string, lender: Lender) {
|
|
37
|
+
if (isAaveV2Type(lender)) return buildAaveV2StyleLenderReserveCall(chainId, lender)
|
|
38
|
+
if (isAaveV3Type(lender)) return buildAaveV3StyleLenderReserveCall(chainId, lender)
|
|
39
|
+
if (isInit(lender)) return buildInitStyleLenderReserveCall(chainId, lender)
|
|
40
|
+
return buildCompoundV3StyleLenderReserveCall(chainId, lender)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function getLenderDataConverter(
|
|
44
|
+
lender: Lender,
|
|
45
|
+
chainId: string,
|
|
46
|
+
prices: { [a: string]: number },
|
|
47
|
+
additionalYields: AdditionalYields
|
|
48
|
+
) {
|
|
49
|
+
if (isAaveV2Type(lender)) return getAaveV2ReservesDataConverter(lender, chainId, prices, additionalYields)
|
|
50
|
+
if (isAaveV3Type(lender)) return getAaveV3ReservesDataConverter(lender, chainId, prices, additionalYields)
|
|
51
|
+
if (isInit(lender)) return getInitReservesDataConverter(lender, chainId, prices, additionalYields)
|
|
52
|
+
return getCompoundV3ReservesDataConverter(lender, chainId, prices, additionalYields)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const getAbi = (lender: string) => {
|
|
56
|
+
if (isAaveV2Type(lender)) return [
|
|
57
|
+
...ProtocolDataProviderAbi,
|
|
58
|
+
...UniswapV2PairAbi,
|
|
59
|
+
...RewarderAbi,
|
|
60
|
+
...IncentivesControllerAbi
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
if (isAaveV3Original(lender)) return [
|
|
64
|
+
...AavePoolV3UpgradedAbi,
|
|
65
|
+
...AaveV3ProtocolDataProviderAbi
|
|
66
|
+
]
|
|
67
|
+
if (lender === Lender.YLDR) return [
|
|
68
|
+
...YLDRProtocolDataProviderAbi,
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
if (isAaveV3Type(lender)) return [
|
|
72
|
+
...AavePoolLegacyAbi,
|
|
73
|
+
...AavePoolDataProviderLegacyAbi
|
|
74
|
+
]
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
if (isCompoundV3(lender)) return [
|
|
78
|
+
...IrgetterAbi,
|
|
79
|
+
...CometAbi,
|
|
80
|
+
...CometExtAbi
|
|
81
|
+
]
|
|
82
|
+
|
|
83
|
+
if (isInit(lender))
|
|
84
|
+
return InitLensAbi
|
|
85
|
+
|
|
86
|
+
return []
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export const getLenderPublicData = async (
|
|
90
|
+
chainId: string,
|
|
91
|
+
lenders: Lender[],
|
|
92
|
+
prices: { [asset: string]: number },
|
|
93
|
+
additionalYields: AdditionalYields,
|
|
94
|
+
multicallRetry: MulticallRetryFunction
|
|
95
|
+
): Promise<{ [lender: string]: any }> => {
|
|
96
|
+
let calls: {
|
|
97
|
+
call: Call
|
|
98
|
+
abi: any
|
|
99
|
+
}[] = []
|
|
100
|
+
|
|
101
|
+
for (const lender of lenders) {
|
|
102
|
+
const abi = getAbi(lender)
|
|
103
|
+
const callData = buildLenderCall(chainId, lender)
|
|
104
|
+
const mappedCalls = callData.map((call) => ({ call, abi }))
|
|
105
|
+
// @ts-ignore
|
|
106
|
+
calls = [...calls, ...mappedCalls]
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const rawResults = await multicallRetry(
|
|
110
|
+
chainId,
|
|
111
|
+
calls.map((call) => call.call) as any[],
|
|
112
|
+
calls.map((call) => call.abi),
|
|
113
|
+
// default size
|
|
114
|
+
// retries = 3
|
|
115
|
+
// provider = 0
|
|
116
|
+
// allowFailure = false
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
const invalidLenders: string[] = []
|
|
120
|
+
const lenderData: { [lender: string]: any } = {}
|
|
121
|
+
|
|
122
|
+
let currentSlice = 0
|
|
123
|
+
for (const lender of lenders) {
|
|
124
|
+
const [converter, sliceLength] = getLenderDataConverter(lender, chainId, prices, additionalYields)
|
|
125
|
+
|
|
126
|
+
const data = rawResults.slice(currentSlice, currentSlice + sliceLength)
|
|
127
|
+
const convertedData = converter(data)
|
|
128
|
+
if (!convertedData) {
|
|
129
|
+
invalidLenders.push(lender)
|
|
130
|
+
} else {
|
|
131
|
+
lenderData[lender] = convertedData
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
currentSlice += sliceLength
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return lenderData
|
|
138
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Lender } from "@1delta/asset-registry"
|
|
2
|
+
import { Call } from "../../utils/multicall"
|
|
3
|
+
import { getInitLensAddress } from "../addresses/init"
|
|
4
|
+
|
|
5
|
+
export const INIT_MODES = [1, 2, 3, 4, 5, 6]
|
|
6
|
+
|
|
7
|
+
export const INIT_EMODE_LABELS: { [mode: number]: string } = {
|
|
8
|
+
[1]: 'Default',
|
|
9
|
+
[2]: 'Blue Chip Volatile',
|
|
10
|
+
[3]: 'Stablecoins',
|
|
11
|
+
[4]: 'ETH correlated',
|
|
12
|
+
[5]: 'Ethena',
|
|
13
|
+
[6]: 'BTC',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
export const buildInitStyleLenderReserveCall = (chainId: string, lender: Lender) => {
|
|
18
|
+
const lensAddress = getInitLensAddress(chainId)
|
|
19
|
+
const calls: Call[] = INIT_MODES.map((mode) => {
|
|
20
|
+
return {
|
|
21
|
+
address: lensAddress,
|
|
22
|
+
name: 'getMarketData',
|
|
23
|
+
params: [mode],
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
return calls
|
|
28
|
+
|
|
29
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { InitGeneralPublicResponse } from "./types";
|
|
2
|
+
import { AdditionalYields } from "../../types";
|
|
3
|
+
import { INIT_MODES } from "./publicCallBuild";
|
|
4
|
+
import { getAssetMeta, toGenericPriceKey, toOracleKey } from "../../assets";
|
|
5
|
+
import { convertRateToApr, parseRawAmount } from "../../utils/parsing";
|
|
6
|
+
import { Lender } from "@1delta/asset-registry";
|
|
7
|
+
|
|
8
|
+
export const INIT_EMODE_LABELS: { [mode: number]: string } = {
|
|
9
|
+
[1]: 'Default',
|
|
10
|
+
[2]: 'Blue Chip Volatile',
|
|
11
|
+
[3]: 'Stablecoins',
|
|
12
|
+
[4]: 'ETH correlated',
|
|
13
|
+
[5]: 'Ethena',
|
|
14
|
+
[6]: 'BTC',
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const getInitReservesDataConverter = (
|
|
18
|
+
lender: Lender,
|
|
19
|
+
chainId: string,
|
|
20
|
+
prices: { [asset: string]: number },
|
|
21
|
+
additionalYields: AdditionalYields
|
|
22
|
+
): [(data: any[]) => InitGeneralPublicResponse | undefined, number] => {
|
|
23
|
+
const expectedNumberOfCalls = INIT_MODES.length
|
|
24
|
+
return [
|
|
25
|
+
(data: any[]) => {
|
|
26
|
+
if (data.length !== expectedNumberOfCalls) {
|
|
27
|
+
return undefined
|
|
28
|
+
}
|
|
29
|
+
const modeOne = 0
|
|
30
|
+
let result = Object.assign(
|
|
31
|
+
{}, ...data[modeOne]?.map(
|
|
32
|
+
(dat: any) => {
|
|
33
|
+
const asset = dat?.underlying.toLowerCase()
|
|
34
|
+
const meta = getAssetMeta(chainId, asset)
|
|
35
|
+
const totalDeposits = parseRawAmount(dat?.totalSupply.toString(), meta?.decimals)
|
|
36
|
+
const totalDebt = parseRawAmount(dat?.totalDebt.toString(), meta.decimals)
|
|
37
|
+
const oracleKey = toOracleKey(meta.assetGroup!) ?? toGenericPriceKey(asset, chainId)
|
|
38
|
+
const price = prices[oracleKey]
|
|
39
|
+
const liquidity = Number(totalDeposits) - Number(totalDebt)
|
|
40
|
+
return {
|
|
41
|
+
[asset]: {
|
|
42
|
+
poolId: asset,
|
|
43
|
+
underlying: asset,
|
|
44
|
+
borrowCap: parseRawAmount(dat?.borrowCap.toString(), meta.decimals),
|
|
45
|
+
canBurn: Boolean(dat?.canBurn),
|
|
46
|
+
canFlash: Boolean(dat?.canFlash),
|
|
47
|
+
canMint: Boolean(dat?.canMint),
|
|
48
|
+
canRepay: Boolean(dat?.canRepay),
|
|
49
|
+
totalDeposits,
|
|
50
|
+
totalDebt,
|
|
51
|
+
totalDepositsUSD: price * Number(totalDeposits),
|
|
52
|
+
totalDebtUSD: price * Number(totalDebt),
|
|
53
|
+
totalLiquidity: liquidity,
|
|
54
|
+
totalLiquidityUSD: liquidity * price,
|
|
55
|
+
depositRate: convertRateToApr(Number(parseRawAmount(dat?.supplyRate.toString(), 18))),
|
|
56
|
+
variableBorrowRate: convertRateToApr(Number(parseRawAmount(dat?.borrowRate.toString(), 18))),
|
|
57
|
+
stableBorrowRate: 0,
|
|
58
|
+
stakingYield: additionalYields.intrinsicYields[oracleKey] ?? 0,
|
|
59
|
+
rewards: {},
|
|
60
|
+
config: {},
|
|
61
|
+
borrowingEnabled: totalDebt !== "0"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
let eModes: any = {}
|
|
69
|
+
INIT_MODES.forEach((mode, index) => {
|
|
70
|
+
data[index]?.forEach((multicallData: any) => {
|
|
71
|
+
const asset = multicallData?.underlying.toLowerCase()
|
|
72
|
+
const cf = parseRawAmount(multicallData.collateralFactor, 18)
|
|
73
|
+
const modeData = {
|
|
74
|
+
category: mode,
|
|
75
|
+
label: INIT_EMODE_LABELS[mode],
|
|
76
|
+
borrowCollateralFactor: cf,
|
|
77
|
+
collateralFactor: cf,
|
|
78
|
+
borrowFactor: parseRawAmount(multicallData.borrowFactor, 18),
|
|
79
|
+
maxHealthAfterLiq: parseRawAmount(multicallData.maxHealthAfterLiq, 18),
|
|
80
|
+
}
|
|
81
|
+
if (!eModes[mode]) eModes[mode] = modeData
|
|
82
|
+
result[asset].config[mode] = modeData
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
return { data: result, eModes, chainId }
|
|
87
|
+
},
|
|
88
|
+
expectedNumberOfCalls
|
|
89
|
+
]
|
|
90
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { RewardsMap } from "../aave-v3-type/types"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export interface InitGeneralPublicResponse {
|
|
5
|
+
data: {
|
|
6
|
+
[tokenSymbol: string]: {
|
|
7
|
+
// reserve market data
|
|
8
|
+
unbacked?: number
|
|
9
|
+
depositRate: number
|
|
10
|
+
averageStableBorrowRate?: number
|
|
11
|
+
liquidityIndex?: string
|
|
12
|
+
variableBorrowIndex?: string
|
|
13
|
+
lastUpdateTimestamp?: number
|
|
14
|
+
|
|
15
|
+
config: {
|
|
16
|
+
[modeId: number]: {
|
|
17
|
+
category: number
|
|
18
|
+
// collateral factors
|
|
19
|
+
borrowCollateralFactor: number
|
|
20
|
+
collateralFactor: number
|
|
21
|
+
borrowFactor: number
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// rewards
|
|
26
|
+
rewards?: RewardsMap
|
|
27
|
+
|
|
28
|
+
// reserve config
|
|
29
|
+
decimals?: number
|
|
30
|
+
reserveFactor?: string
|
|
31
|
+
usageAsCollateralEnabled?: boolean
|
|
32
|
+
stableBorrowRateEnabled?: boolean
|
|
33
|
+
|
|
34
|
+
// frozen
|
|
35
|
+
isActive?: boolean
|
|
36
|
+
isFrozen?: boolean
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
chainId: string
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface InitReservesQueryParams {
|
|
43
|
+
chainId: string
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export enum InitGetUserPositionDataIndexes {
|
|
47
|
+
posMeta = 0,
|
|
48
|
+
collaterals,
|
|
49
|
+
debts,
|
|
50
|
+
}
|