@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,35 @@
|
|
|
1
|
+
import { Chain, COMETS_PER_CHAIN_MAP, COMPOUND_BASE_TOKENS, Lender, SWAYLEND_BASE_TOKENS } from '@1delta/asset-registry';
|
|
2
|
+
export function getCompoundV3CometAddress(chainId, lender = Lender.COMPOUND_V3_USDC_E) {
|
|
3
|
+
return COMETS_PER_CHAIN_MAP[chainId]?.[lender];
|
|
4
|
+
}
|
|
5
|
+
export function getCompoundV3CometRewardsAddress(chainId) {
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
return addressesCompoundV3.cometRewards[chainId];
|
|
8
|
+
}
|
|
9
|
+
export function getCompoundV3CometIRGetterAddress(chainId) {
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
return addressesCompoundV3.lens[chainId];
|
|
12
|
+
}
|
|
13
|
+
export function getCompoundV3CometLens(chainId) {
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
return addressesCompoundV3.lens[chainId];
|
|
16
|
+
}
|
|
17
|
+
const addressesCompoundV3 = {
|
|
18
|
+
lens: {
|
|
19
|
+
[Chain.POLYGON_MAINNET]: '0x4eDA401658c5286d16c4d342884F32280B4E8b1b',
|
|
20
|
+
[Chain.MANTLE]: '0x32B31A066c8dd3F7b77283Ba1d89Ddaf6DA0a8aE',
|
|
21
|
+
[Chain.ARBITRUM_ONE]: '0x13D9c35f4901491Ac4FFebd3100238BBfFBD7181',
|
|
22
|
+
[Chain.BASE]: "0x7e2D250E4FD0EeD6BD2cB3DC525A2b9f12508152",
|
|
23
|
+
[Chain.OP_MAINNET]: "0xA453ba397c61B0c292EA3959A858821145B2707F",
|
|
24
|
+
},
|
|
25
|
+
cometRewards: {
|
|
26
|
+
[Chain.POLYGON_MAINNET]: "0x45939657d1CA34A8FA39A924B71D28Fe8431e581",
|
|
27
|
+
[Chain.MANTLE]: "0xCd83CbBFCE149d141A5171C3D6a0F0fCCeE225Ab",
|
|
28
|
+
[Chain.ARBITRUM_ONE]: '0x88730d254A2f7e6AC8388c3198aFd694bA9f7fae',
|
|
29
|
+
[Chain.BASE]: "0x123964802e6ABabBE1Bc9547D72Ef1B69B00A6b1",
|
|
30
|
+
[Chain.OP_MAINNET]: "0x443EA0340cb75a160F31A440722dec7b5bc3C2E9",
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
export function getCompoundV3BaseAsset(lender, chainId) {
|
|
34
|
+
return COMPOUND_BASE_TOKENS[lender]?.[chainId] ?? SWAYLEND_BASE_TOKENS[lender]?.[chainId];
|
|
35
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Lender } from "@1delta/asset-registry";
|
|
2
|
+
export declare function getAaveTypeOracleAddress(chainId: string, lender: Lender): any;
|
|
3
|
+
export declare function getAaveTypeIncentivesControllerAddress(chainId: string, lender: Lender): any;
|
|
4
|
+
export declare function getAaveTypeMultiFeeDistribution(chainId: string, lender: Lender): any;
|
|
5
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/contracts.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAgBvE;AAID,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAgBrF;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAM9E"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { addressesAaveV2Core } from "./aaveV2";
|
|
2
|
+
import { addressesAaveCore } from "./aave";
|
|
3
|
+
import { addressesLendleCore } from "./lendle";
|
|
4
|
+
import { addressesAureliusCore } from "./aurelius";
|
|
5
|
+
import { addressesMeridianCore } from "./meridian";
|
|
6
|
+
import { addressesTakoTakoCore } from "./takotako";
|
|
7
|
+
import { zeroAddress } from "viem";
|
|
8
|
+
import { Lender } from "@1delta/asset-registry";
|
|
9
|
+
export function getAaveTypeOracleAddress(chainId, lender) {
|
|
10
|
+
switch (lender) {
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
case Lender.AAVE_V2: return addressesAaveV2Core.AaveOracle[chainId];
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
case Lender.AAVE_V3: return addressesAaveCore.AaveOracle[chainId];
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
case Lender.LENDLE: return addressesLendleCore.AaveOracle[chainId];
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
case Lender.AURELIUS: return addressesAureliusCore.AaveOracle[chainId];
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
case Lender.MERIDIAN: return addressesMeridianCore.AaveOracle[chainId];
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
case Lender.TAKOTAKO: return addressesTakoTakoCore.AaveOracle[chainId];
|
|
23
|
+
default: return zeroAddress;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function getAaveTypeIncentivesControllerAddress(chainId, lender) {
|
|
27
|
+
switch (lender) {
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
case Lender.AAVE_V2: return addressesAaveV2Core.IncentivesController[chainId];
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
case Lender.AAVE_V3: return addressesAaveCore.IncentivesController[chainId];
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
case Lender.LENDLE: return addressesLendleCore.IncentivesController[chainId];
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
case Lender.AURELIUS: return addressesAureliusCore.IncentivesController[chainId];
|
|
36
|
+
// @ts-ignore
|
|
37
|
+
case Lender.MERIDIAN: return addressesMeridianCore.IncentivesController[chainId];
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
case Lender.TAKOTAKO: return addressesTakoTakoCore.IncentivesController[chainId];
|
|
40
|
+
default: return zeroAddress;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export function getAaveTypeMultiFeeDistribution(chainId, lender) {
|
|
44
|
+
switch (lender) {
|
|
45
|
+
// @ts-ignore
|
|
46
|
+
case Lender.LENDLE: return addressesLendleCore.MultiFeeDistribution[chainId];
|
|
47
|
+
default: return zeroAddress;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hana.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/hana.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './contracts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/init.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,OAGvD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,OAGjD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,OAGjD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry";
|
|
2
|
+
export function getInitPosManagerAddress(chainId) {
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
return addressesInitCore.PosManager[chainId];
|
|
5
|
+
}
|
|
6
|
+
export function getInitCoreAddress(chainId) {
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
return addressesInitCore.Core[chainId];
|
|
9
|
+
}
|
|
10
|
+
export function getInitLensAddress(chainId) {
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
return addressesInitCore.PublicLens[chainId];
|
|
13
|
+
}
|
|
14
|
+
const addressesInitCore = {
|
|
15
|
+
InitOracle: {
|
|
16
|
+
[Chain.MANTLE]: '0x4E195A32b2f6eBa9c4565bA49bef34F23c2C0350'
|
|
17
|
+
},
|
|
18
|
+
Core: {
|
|
19
|
+
[Chain.MANTLE]: '0x972BcB0284cca0152527c4f70f8F689852bCAFc5'
|
|
20
|
+
},
|
|
21
|
+
Config: {
|
|
22
|
+
[Chain.MANTLE]: '0x007F91636E0f986068Ef27c950FA18734BA553Ac'
|
|
23
|
+
},
|
|
24
|
+
PosManager: {
|
|
25
|
+
[Chain.MANTLE]: '0x0e7401707CD08c03CDb53DAEF3295DDFb68BBa92'
|
|
26
|
+
},
|
|
27
|
+
Lens: {
|
|
28
|
+
[Chain.MANTLE]: '0x7d2b278b8ef87bEb83AeC01243ff2Fed57456042'
|
|
29
|
+
},
|
|
30
|
+
PublicLens: {
|
|
31
|
+
[Chain.MANTLE]: '0xDf75fF0452eDf4897B051A54b406eB384503Ac39'
|
|
32
|
+
},
|
|
33
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lendle.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/lendle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;CAU/B,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry";
|
|
2
|
+
export const addressesLendleCore = {
|
|
3
|
+
AaveOracle: {
|
|
4
|
+
[Chain.MANTLE]: '0x870c9692Ab04944C86ec6FEeF63F261226506EfC'
|
|
5
|
+
},
|
|
6
|
+
IncentivesController: {
|
|
7
|
+
[Chain.MANTLE]: '0x79e2fd1c484EB9EE45001A98Ce31F28918F27C41'
|
|
8
|
+
},
|
|
9
|
+
MultiFeeDistribution: {
|
|
10
|
+
[Chain.MANTLE]: '0x5C75A733656c3E42E44AFFf1aCa1913611F49230'
|
|
11
|
+
},
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meridian.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/meridian.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUjC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry";
|
|
2
|
+
export const addressesMeridianCore = {
|
|
3
|
+
AaveOracle: {
|
|
4
|
+
[Chain.TAIKO_ALETHIA]: '0xd79417be2cE02fc22F2E520869b1DfC02a677751',
|
|
5
|
+
},
|
|
6
|
+
IncentivesController: {
|
|
7
|
+
[Chain.TAIKO_ALETHIA]: '0xb3020EbFD800B488B64E92A8717E826cBf0d63E2'
|
|
8
|
+
},
|
|
9
|
+
MultiFeeDistribution: {
|
|
10
|
+
[Chain.TAIKO_ALETHIA]: '0xb0e103e2A80489Ba697D882EEd0Ba552389Ca31E'
|
|
11
|
+
}
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"takotako.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/takotako.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUjC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry";
|
|
2
|
+
export const addressesTakoTakoCore = {
|
|
3
|
+
AaveOracle: {
|
|
4
|
+
[Chain.TAIKO_ALETHIA]: '0x4Feb232c357F5Fb11A6Ff43FC46808BebC2f55b5'
|
|
5
|
+
},
|
|
6
|
+
IncentivesController: {
|
|
7
|
+
[Chain.TAIKO_ALETHIA]: '0x'
|
|
8
|
+
},
|
|
9
|
+
MultiFeeDistribution: {
|
|
10
|
+
[Chain.TAIKO_ALETHIA]: '0x'
|
|
11
|
+
},
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publicCallBuild.d.ts","sourceRoot":"","sources":["../../../src/lending/compound-v3/publicCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAK/C,eAAO,MAAM,qCAAqC,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,wCAoEpF,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { getCompoundV3Assets } from "../../assets";
|
|
2
|
+
import { getCompoundV3BaseAsset, getCompoundV3CometAddress, getCompoundV3CometIRGetterAddress } from "../addresses/compoundV3";
|
|
3
|
+
export const buildCompoundV3StyleLenderReserveCall = (chainId, lender) => {
|
|
4
|
+
const baseAssetData = getCompoundV3BaseAsset(lender, chainId);
|
|
5
|
+
const underlyingArray = getCompoundV3Assets(chainId, lender);
|
|
6
|
+
const cometContractAddress = getCompoundV3CometAddress(chainId, lender);
|
|
7
|
+
const assetsToQuery = underlyingArray;
|
|
8
|
+
const tokensNoBase = assetsToQuery.filter(a => a !== baseAssetData.baseAsset);
|
|
9
|
+
const callsAssetInfoAndTotals = tokensNoBase.flatMap((tk) => {
|
|
10
|
+
return [
|
|
11
|
+
{
|
|
12
|
+
address: cometContractAddress,
|
|
13
|
+
name: 'getAssetInfoByAddress',
|
|
14
|
+
params: [tk],
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
address: cometContractAddress,
|
|
18
|
+
name: 'totalsCollateral',
|
|
19
|
+
params: [tk],
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
});
|
|
23
|
+
const callSupplyRewards = {
|
|
24
|
+
address: cometContractAddress,
|
|
25
|
+
name: 'baseTrackingSupplySpeed',
|
|
26
|
+
params: [],
|
|
27
|
+
};
|
|
28
|
+
const callBorrowRewards = {
|
|
29
|
+
address: cometContractAddress,
|
|
30
|
+
name: 'baseTrackingBorrowSpeed',
|
|
31
|
+
params: [],
|
|
32
|
+
};
|
|
33
|
+
const callIndexScale = {
|
|
34
|
+
address: cometContractAddress,
|
|
35
|
+
name: 'baseIndexScale',
|
|
36
|
+
params: [],
|
|
37
|
+
};
|
|
38
|
+
const callSupply = {
|
|
39
|
+
address: cometContractAddress,
|
|
40
|
+
name: 'totalSupply',
|
|
41
|
+
params: [],
|
|
42
|
+
};
|
|
43
|
+
const callBorrow = {
|
|
44
|
+
address: cometContractAddress,
|
|
45
|
+
name: 'totalBorrow',
|
|
46
|
+
params: [],
|
|
47
|
+
};
|
|
48
|
+
const callInterest = {
|
|
49
|
+
address: getCompoundV3CometIRGetterAddress(chainId),
|
|
50
|
+
name: 'getCometInterest',
|
|
51
|
+
params: [cometContractAddress],
|
|
52
|
+
};
|
|
53
|
+
const calls = [
|
|
54
|
+
...callsAssetInfoAndTotals,
|
|
55
|
+
callSupplyRewards,
|
|
56
|
+
callBorrowRewards,
|
|
57
|
+
callIndexScale, // rewards data
|
|
58
|
+
callSupply,
|
|
59
|
+
callBorrow, // supply / borrow
|
|
60
|
+
callInterest
|
|
61
|
+
];
|
|
62
|
+
return calls;
|
|
63
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Lender } from "@1delta/asset-registry";
|
|
2
|
+
import { AdditionalYields } from "../../types";
|
|
3
|
+
import { CompoundV3GeneralPublicResponse } from "./types";
|
|
4
|
+
export declare const getCompoundV3ReservesDataConverter: (lender: Lender, chainId: string, prices: {
|
|
5
|
+
[asset: string]: number;
|
|
6
|
+
}, additionalYields: AdditionalYields) => [(data: any[]) => CompoundV3GeneralPublicResponse | undefined, number];
|
|
7
|
+
//# sourceMappingURL=publicCallParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../src/lending/compound-v3/publicCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAA4B,+BAA+B,EAAE,MAAM,SAAS,CAAA;AASnF,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,KACjC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,+BAA+B,GAAG,SAAS,EAAE,MAAM,CA6HvE,CAAA"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { CometInterestRateIndexes } from "./types";
|
|
2
|
+
import { getAssetMeta, getCompoundV3Assets, LENDER_MODE_NO_MODE, toGenericPriceKey, toOracleKey } from "../../assets";
|
|
3
|
+
import { getCompoundV3BaseAsset } from "../addresses/compoundV3";
|
|
4
|
+
import { calculateRateForCompound, parseRawAmount } from "../../utils/parsing";
|
|
5
|
+
const COMET_RISK_DECIMALS = 18;
|
|
6
|
+
const SECONDS_PER_DAY = 3600 * 24;
|
|
7
|
+
const DAYS_IN_YEAR = 365;
|
|
8
|
+
export const getCompoundV3ReservesDataConverter = (lender, chainId, prices, additionalYields) => {
|
|
9
|
+
const assetsToQuery = getCompoundV3Assets(chainId, lender);
|
|
10
|
+
const baseAssetData = getCompoundV3BaseAsset(lender, chainId);
|
|
11
|
+
const tokensNoBase = assetsToQuery.filter(a => a !== baseAssetData.baseAsset);
|
|
12
|
+
const baseLength = tokensNoBase.length * 2;
|
|
13
|
+
const expectedNumberOfCalls = baseLength + 6;
|
|
14
|
+
return [
|
|
15
|
+
(data) => {
|
|
16
|
+
if (data.length !== expectedNumberOfCalls) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
let result = {};
|
|
20
|
+
for (let i = 0; i < tokensNoBase.length; i++) {
|
|
21
|
+
const asset = tokensNoBase[i];
|
|
22
|
+
const resultsAssetInfo = data[i * 2];
|
|
23
|
+
const resultsTotals = data[i * 2 + 1];
|
|
24
|
+
const assetMeta = getAssetMeta(chainId, asset);
|
|
25
|
+
const decimals = assetMeta?.decimals ?? 18;
|
|
26
|
+
const totals = parseRawAmount(resultsTotals[0], decimals);
|
|
27
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
|
|
28
|
+
result[asset] = {
|
|
29
|
+
poolId: asset,
|
|
30
|
+
underlying: asset,
|
|
31
|
+
config: {
|
|
32
|
+
[LENDER_MODE_NO_MODE]: {
|
|
33
|
+
category: LENDER_MODE_NO_MODE,
|
|
34
|
+
// collateral factors
|
|
35
|
+
borrowCollateralFactor: parseRawAmount(resultsAssetInfo.borrowCollateralFactor.toString(), COMET_RISK_DECIMALS),
|
|
36
|
+
collateralFactor: parseRawAmount(resultsAssetInfo.liquidateCollateralFactor.toString(), COMET_RISK_DECIMALS),
|
|
37
|
+
borrowFactor: 1
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
supplyCap: parseRawAmount(resultsAssetInfo.supplyCap.toString(), decimals),
|
|
41
|
+
// interest rates
|
|
42
|
+
variableBorrowRate: 0,
|
|
43
|
+
stableBorrowRate: 0,
|
|
44
|
+
depositRate: 0,
|
|
45
|
+
stakingYield: additionalYields.intrinsicYields[oracleKey] ?? 0,
|
|
46
|
+
utilization: 0,
|
|
47
|
+
// debt and liquidity are zero
|
|
48
|
+
totalDebt: 0,
|
|
49
|
+
totalDebtUSD: 0,
|
|
50
|
+
totalLiquidity: 0,
|
|
51
|
+
totalLiquidityUSD: 0,
|
|
52
|
+
// deposits are different outputs for base asset and others
|
|
53
|
+
totalDeposits: totals,
|
|
54
|
+
totalDepositsUSD: Number(totals) * (prices[oracleKey] ?? 1),
|
|
55
|
+
// rewards
|
|
56
|
+
rewards: {},
|
|
57
|
+
borrowingEnabled: false
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const baseMeta = getAssetMeta(chainId, baseAssetData.baseAsset);
|
|
61
|
+
// parse data for rewards calculation
|
|
62
|
+
const decimals = baseMeta?.decimals ?? 18;
|
|
63
|
+
const resultsSupplyRewards = Number(data[baseLength]?.toString());
|
|
64
|
+
const resultsBorrowRewards = Number(data[baseLength + 1]?.toString());
|
|
65
|
+
const resultsIndexScale = data[baseLength + 2]?.toString();
|
|
66
|
+
const resultsSupply = parseRawAmount(data[baseLength + 3]?.toString(), decimals);
|
|
67
|
+
const resultsBorrow = parseRawAmount(data[baseLength + 4]?.toString(), decimals);
|
|
68
|
+
const compToSuppliersPerDay = resultsSupplyRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
|
|
69
|
+
const compToBorrowersPerDay = resultsBorrowRewards / Number(resultsIndexScale) * SECONDS_PER_DAY;
|
|
70
|
+
const resultsInterest = data[baseLength + 5];
|
|
71
|
+
const oracleKeyBase = toOracleKey(baseMeta.assetGroup) ?? toGenericPriceKey(baseAssetData.baseAsset, chainId);
|
|
72
|
+
const price = prices[oracleKeyBase] ?? 1;
|
|
73
|
+
const liquidity = Number(resultsSupply) - Number(resultsBorrow);
|
|
74
|
+
const compPrice = prices["COMP"];
|
|
75
|
+
const baseData = {
|
|
76
|
+
[baseAssetData.baseAsset]: {
|
|
77
|
+
poolId: baseAssetData.baseAsset,
|
|
78
|
+
underlying: baseAssetData.baseAsset,
|
|
79
|
+
// collateral factots
|
|
80
|
+
borrowCollateralFactor: 0,
|
|
81
|
+
collateralFactor: 0,
|
|
82
|
+
supplyCap: 0,
|
|
83
|
+
config: {
|
|
84
|
+
[LENDER_MODE_NO_MODE]: {
|
|
85
|
+
category: LENDER_MODE_NO_MODE,
|
|
86
|
+
// collateral factors
|
|
87
|
+
borrowCollateralFactor: 0,
|
|
88
|
+
collateralFactor: 0,
|
|
89
|
+
borrowFactor: 1
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
// interest rates
|
|
93
|
+
variableBorrowRate: calculateRateForCompound(resultsInterest[CometInterestRateIndexes.borrowRate].toString(), chainId, lender),
|
|
94
|
+
depositRate: calculateRateForCompound(resultsInterest[CometInterestRateIndexes.supplyRate].toString(), chainId, lender),
|
|
95
|
+
stableBorrowRate: 0,
|
|
96
|
+
utilization: parseRawAmount(resultsInterest[CometInterestRateIndexes.utilization].toString(), COMET_RISK_DECIMALS),
|
|
97
|
+
totalLiquidity: liquidity,
|
|
98
|
+
totalLiquidityUSD: liquidity * price,
|
|
99
|
+
totalDebt: resultsBorrow,
|
|
100
|
+
totalDeposits: resultsSupply,
|
|
101
|
+
totalDebtUSD: Number(resultsBorrow) * price,
|
|
102
|
+
totalDepositsUSD: Number(resultsSupply) * price,
|
|
103
|
+
// rewards
|
|
104
|
+
rewards: {
|
|
105
|
+
COMP: {
|
|
106
|
+
depositRate: (compPrice * compToSuppliersPerDay / Number(resultsSupply)) * DAYS_IN_YEAR * 100 / price,
|
|
107
|
+
variableBorrowRate: (compPrice * compToBorrowersPerDay / Number(resultsBorrow)) * DAYS_IN_YEAR * 100 / price,
|
|
108
|
+
stableBorrowRate: 0,
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
borrowingEnabled: true,
|
|
112
|
+
stakingYield: additionalYields.intrinsicYields[oracleKeyBase] ?? 0,
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
return { data: { ...result, ...baseData }, chainId };
|
|
116
|
+
},
|
|
117
|
+
expectedNumberOfCalls
|
|
118
|
+
];
|
|
119
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { RewardsMap } from "../aave-v3-type/types";
|
|
2
|
+
export declare enum CometInterestRateIndexes {
|
|
3
|
+
borrowRate = 0,
|
|
4
|
+
supplyRate = 1,
|
|
5
|
+
utilization = 2
|
|
6
|
+
}
|
|
7
|
+
export interface CompoundV3GeneralPublicResponse {
|
|
8
|
+
data: {
|
|
9
|
+
[tokenSymbol: string]: {
|
|
10
|
+
config: {
|
|
11
|
+
[0]: {
|
|
12
|
+
category: 0;
|
|
13
|
+
borrowCollateralFactor: number;
|
|
14
|
+
collateralFactor: number;
|
|
15
|
+
borrowFactor: 1;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
liquidationFactor: string;
|
|
19
|
+
supplyCap: number;
|
|
20
|
+
variableBorrowRate: number;
|
|
21
|
+
depositRate: number;
|
|
22
|
+
utilization: number;
|
|
23
|
+
totalDebt: number;
|
|
24
|
+
totalDeposits: number;
|
|
25
|
+
rewards?: RewardsMap;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
chainId: string;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/compound-v3/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,oBAAY,wBAAwB;IAClC,UAAU,IAAI;IACd,UAAU,IAAI;IACd,WAAW,IAAI;CAChB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE;QACJ,CAAC,WAAW,EAAE,MAAM,GAAG;YAErB,MAAM,EAAE;gBACN,CAAC,CAAC,CAAC,EAAE;oBACH,QAAQ,EAAE,CAAC,CAAC;oBAEZ,sBAAsB,EAAE,MAAM,CAAC;oBAC/B,gBAAgB,EAAE,MAAM,CAAC;oBACzB,YAAY,EAAE,CAAC,CAAA;iBAChB,CAAA;aACF,CAAA;YAED,iBAAiB,EAAE,MAAM,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC;YAGlB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,WAAW,EAAE,MAAM,CAAC;YAEpB,WAAW,EAAE,MAAM,CAAC;YAEpB,SAAS,EAAE,MAAM,CAAC;YAElB,aAAa,EAAE,MAAM,CAAC;YAGtB,OAAO,CAAC,EAAE,UAAU,CAAA;SACrB,CAAA;KACF,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var CometInterestRateIndexes;
|
|
2
|
+
(function (CometInterestRateIndexes) {
|
|
3
|
+
CometInterestRateIndexes[CometInterestRateIndexes["borrowRate"] = 0] = "borrowRate";
|
|
4
|
+
CometInterestRateIndexes[CometInterestRateIndexes["supplyRate"] = 1] = "supplyRate";
|
|
5
|
+
CometInterestRateIndexes[CometInterestRateIndexes["utilization"] = 2] = "utilization";
|
|
6
|
+
})(CometInterestRateIndexes || (CometInterestRateIndexes = {}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AdditionalYields, MulticallRetryFunction } from '../types';
|
|
2
|
+
import { Lender } from '@1delta/asset-registry';
|
|
3
|
+
export declare const getLenderPublicData: (chainId: string, lenders: Lender[], prices: {
|
|
4
|
+
[asset: string]: number;
|
|
5
|
+
}, additionalYields: AdditionalYields, multicallRetry: MulticallRetryFunction) => Promise<{
|
|
6
|
+
[lender: string]: any;
|
|
7
|
+
}>;
|
|
8
|
+
//# sourceMappingURL=fetchLender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../src/lending/fetchLender.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAWnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAyD/C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,KACrC,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA2CnC,CAAA"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// aave v2 style
|
|
2
|
+
import { ProtocolDataProviderAbi } from '../abis/aave-v2/ProtocolDataProvider';
|
|
3
|
+
import { IncentivesControllerAbi } from '../abis/lendle/IncentivesController';
|
|
4
|
+
import { RewarderAbi } from '../abis/aurelius/Rewarder';
|
|
5
|
+
import { UniswapV2PairAbi } from '../abis/uniswap/UniswapV2Pair';
|
|
6
|
+
// aave v3 style
|
|
7
|
+
import { AavePoolV3UpgradedAbi } from '../abis/aave/AavePoolV3Upgraded';
|
|
8
|
+
import { AaveV3ProtocolDataProviderAbi } from '../abis/aave/AaveV3ProtocolDataProvider';
|
|
9
|
+
// init
|
|
10
|
+
import { InitLensAbi } from '../abis/init/InitLens';
|
|
11
|
+
// compound v3
|
|
12
|
+
import { CometAbi } from '../abis/compound-v3/Comet';
|
|
13
|
+
import { CometExtAbi } from '../abis/compound-v3/CometExt';
|
|
14
|
+
import { IrgetterAbi } from '../abis/compound-v3/IrGetter';
|
|
15
|
+
import { isAaveV2Type, isAaveV3Original, isAaveV3Type, isCompoundV3, isInit } from '../utils';
|
|
16
|
+
import { buildAaveV2StyleLenderReserveCall } from './aave-v2-type/publicCallBuild';
|
|
17
|
+
import { buildAaveV3StyleLenderReserveCall } from './aave-v3-type/publicCallBuild';
|
|
18
|
+
import { buildInitStyleLenderReserveCall } from './init/publicCallBuild';
|
|
19
|
+
import { buildCompoundV3StyleLenderReserveCall } from './compound-v3/publicCallBuild';
|
|
20
|
+
import { getAaveV2ReservesDataConverter } from './aave-v2-type/publicCallParse';
|
|
21
|
+
import { getAaveV3ReservesDataConverter } from './aave-v3-type/publicCallParse';
|
|
22
|
+
import { getInitReservesDataConverter } from './init/publicCallParse';
|
|
23
|
+
import { getCompoundV3ReservesDataConverter } from './compound-v3/publicCallParse';
|
|
24
|
+
import { AavePoolLegacyAbi } from '../abis/aave-v3/AavePoolLegacy';
|
|
25
|
+
import { AavePoolDataProviderLegacyAbi } from '../abis/aave-v3/AavePoolDataProviderLegacy';
|
|
26
|
+
import { Lender } from '@1delta/asset-registry';
|
|
27
|
+
import { YLDRProtocolDataProviderAbi } from '../abis/aave-v2/YLDR';
|
|
28
|
+
function buildLenderCall(chainId, lender) {
|
|
29
|
+
if (isAaveV2Type(lender))
|
|
30
|
+
return buildAaveV2StyleLenderReserveCall(chainId, lender);
|
|
31
|
+
if (isAaveV3Type(lender))
|
|
32
|
+
return buildAaveV3StyleLenderReserveCall(chainId, lender);
|
|
33
|
+
if (isInit(lender))
|
|
34
|
+
return buildInitStyleLenderReserveCall(chainId, lender);
|
|
35
|
+
return buildCompoundV3StyleLenderReserveCall(chainId, lender);
|
|
36
|
+
}
|
|
37
|
+
function getLenderDataConverter(lender, chainId, prices, additionalYields) {
|
|
38
|
+
if (isAaveV2Type(lender))
|
|
39
|
+
return getAaveV2ReservesDataConverter(lender, chainId, prices, additionalYields);
|
|
40
|
+
if (isAaveV3Type(lender))
|
|
41
|
+
return getAaveV3ReservesDataConverter(lender, chainId, prices, additionalYields);
|
|
42
|
+
if (isInit(lender))
|
|
43
|
+
return getInitReservesDataConverter(lender, chainId, prices, additionalYields);
|
|
44
|
+
return getCompoundV3ReservesDataConverter(lender, chainId, prices, additionalYields);
|
|
45
|
+
}
|
|
46
|
+
const getAbi = (lender) => {
|
|
47
|
+
if (isAaveV2Type(lender))
|
|
48
|
+
return [
|
|
49
|
+
...ProtocolDataProviderAbi,
|
|
50
|
+
...UniswapV2PairAbi,
|
|
51
|
+
...RewarderAbi,
|
|
52
|
+
...IncentivesControllerAbi
|
|
53
|
+
];
|
|
54
|
+
if (isAaveV3Original(lender))
|
|
55
|
+
return [
|
|
56
|
+
...AavePoolV3UpgradedAbi,
|
|
57
|
+
...AaveV3ProtocolDataProviderAbi
|
|
58
|
+
];
|
|
59
|
+
if (lender === Lender.YLDR)
|
|
60
|
+
return [
|
|
61
|
+
...YLDRProtocolDataProviderAbi,
|
|
62
|
+
];
|
|
63
|
+
if (isAaveV3Type(lender))
|
|
64
|
+
return [
|
|
65
|
+
...AavePoolLegacyAbi,
|
|
66
|
+
...AavePoolDataProviderLegacyAbi
|
|
67
|
+
];
|
|
68
|
+
if (isCompoundV3(lender))
|
|
69
|
+
return [
|
|
70
|
+
...IrgetterAbi,
|
|
71
|
+
...CometAbi,
|
|
72
|
+
...CometExtAbi
|
|
73
|
+
];
|
|
74
|
+
if (isInit(lender))
|
|
75
|
+
return InitLensAbi;
|
|
76
|
+
return [];
|
|
77
|
+
};
|
|
78
|
+
export const getLenderPublicData = async (chainId, lenders, prices, additionalYields, multicallRetry) => {
|
|
79
|
+
let calls = [];
|
|
80
|
+
for (const lender of lenders) {
|
|
81
|
+
const abi = getAbi(lender);
|
|
82
|
+
const callData = buildLenderCall(chainId, lender);
|
|
83
|
+
const mappedCalls = callData.map((call) => ({ call, abi }));
|
|
84
|
+
// @ts-ignore
|
|
85
|
+
calls = [...calls, ...mappedCalls];
|
|
86
|
+
}
|
|
87
|
+
const rawResults = await multicallRetry(chainId, calls.map((call) => call.call), calls.map((call) => call.abi));
|
|
88
|
+
const invalidLenders = [];
|
|
89
|
+
const lenderData = {};
|
|
90
|
+
let currentSlice = 0;
|
|
91
|
+
for (const lender of lenders) {
|
|
92
|
+
const [converter, sliceLength] = getLenderDataConverter(lender, chainId, prices, additionalYields);
|
|
93
|
+
const data = rawResults.slice(currentSlice, currentSlice + sliceLength);
|
|
94
|
+
const convertedData = converter(data);
|
|
95
|
+
if (!convertedData) {
|
|
96
|
+
invalidLenders.push(lender);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
lenderData[lender] = convertedData;
|
|
100
|
+
}
|
|
101
|
+
currentSlice += sliceLength;
|
|
102
|
+
}
|
|
103
|
+
return lenderData;
|
|
104
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lending/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
|