@merkl/api 0.19.6 → 0.19.8
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/src/backgroundJobs/jobs/campaignsCacheUpdater.js +4 -3
- package/dist/src/eden/index.d.ts +85 -48
- package/dist/src/engine/dynamicData/factory.d.ts +3 -0
- package/dist/src/engine/dynamicData/factory.js +54 -0
- package/dist/src/engine/dynamicData/implementations/Ajna.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Ajna.js +101 -0
- package/dist/src/engine/dynamicData/implementations/Ambiant.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Ambiant.js +227 -0
- package/dist/src/engine/dynamicData/implementations/Badger.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Badger.js +84 -0
- package/dist/src/engine/dynamicData/implementations/Clamm.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Clamm.js +970 -0
- package/dist/src/engine/dynamicData/implementations/Compound.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Compound.js +136 -0
- package/dist/src/engine/dynamicData/implementations/Dolomite.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Dolomite.js +53 -0
- package/dist/src/engine/dynamicData/implementations/EigenLayer.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/EigenLayer.js +64 -0
- package/dist/src/engine/dynamicData/implementations/Encompassing.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Encompassing.js +26 -0
- package/dist/src/engine/dynamicData/implementations/Erc20.d.ts +6 -0
- package/dist/src/engine/dynamicData/implementations/Erc20.js +159 -0
- package/dist/src/engine/dynamicData/implementations/Erc20Snapshot.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Erc20Snapshot.js +32 -0
- package/dist/src/engine/dynamicData/implementations/EventBased.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/EventBased.js +104 -0
- package/dist/src/engine/dynamicData/implementations/Hyperdrive.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Hyperdrive.js +96 -0
- package/dist/src/engine/dynamicData/implementations/Morpho.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Morpho.js +109 -0
- package/dist/src/engine/dynamicData/implementations/Radiant.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/Radiant.js +117 -0
- package/dist/src/engine/dynamicData/implementations/Silo.d.ts +9 -0
- package/dist/src/engine/dynamicData/implementations/Silo.js +109 -0
- package/dist/src/engine/dynamicData/implementations/UniswapV4.d.ts +7 -0
- package/dist/src/engine/dynamicData/implementations/UniswapV4.js +249 -0
- package/dist/src/engine/dynamicData/implementations/Vest.d.ts +9 -0
- package/dist/src/engine/dynamicData/implementations/Vest.js +58 -0
- package/dist/src/engine/dynamicData/implementations/default.d.ts +5 -0
- package/dist/src/engine/dynamicData/implementations/default.js +5 -0
- package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getEulerV2Vaults.js +1 -1
- package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/GenericProcessor.d.ts +1 -1
- package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/tokenType.d.ts +2 -1
- package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/tokenType.js +2 -0
- package/dist/src/engine/erc20SubTypeProcessors/implementations/BunniV2Processor.d.ts +45 -0
- package/dist/src/engine/erc20SubTypeProcessors/implementations/BunniV2Processor.js +87 -0
- package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/processorMapping.js +2 -0
- package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound1.js +2 -0
- package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound2.d.ts +1 -1
- package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20.js +3 -3
- package/dist/src/{factories → engine}/opportunityMetadata/implementations/Euler.d.ts +1 -1
- package/dist/src/{factories → engine}/opportunityMetadata/implementations/Euler.js +7 -7
- package/dist/src/{factories → engine}/opportunityMetadata/implementations/EventBased.d.ts +1 -1
- package/dist/src/{factories → engine}/opportunityMetadata/implementations/EventBased.js +2 -2
- package/dist/src/{factories → engine}/opportunityMetadata/implementations/Vest.js +1 -1
- package/dist/src/index.d.ts +19 -16
- package/dist/src/jobs/update-euler-vaults.js +2 -2
- package/dist/src/modules/v4/apr/apr.service.d.ts +1 -1
- package/dist/src/modules/v4/apr/apr.service.js +4 -4
- package/dist/src/modules/v4/campaign/campaign.controller.d.ts +5 -0
- package/dist/src/modules/v4/campaign/campaign.model.d.ts +1 -0
- package/dist/src/modules/v4/campaign/campaign.model.js +1 -0
- package/dist/src/modules/v4/campaign/campaign.repository.d.ts +4 -0
- package/dist/src/modules/v4/campaign/campaign.repository.js +2 -1
- package/dist/src/modules/v4/campaign/campaign.service.d.ts +0 -8
- package/dist/src/modules/v4/campaign/campaign.service.js +0 -13
- package/dist/src/modules/v4/dynamicData/dynamicData.service.js +3 -4
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +8 -0
- package/dist/src/modules/v4/opportunity/opportunity.converter.js +2 -2
- package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +2 -0
- package/dist/src/modules/v4/opportunity/opportunity.model.js +2 -0
- package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +1 -1
- package/dist/src/modules/v4/opportunity/opportunity.repository.js +14 -10
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +2 -2
- package/dist/src/modules/v4/opportunity/opportunity.service.js +5 -5
- package/dist/src/modules/v4/router.d.ts +14 -0
- package/dist/src/modules/v4/token/token.controller.d.ts +1 -0
- package/dist/src/modules/v4/token/token.model.d.ts +1 -0
- package/dist/src/modules/v4/token/token.model.js +1 -0
- package/dist/src/modules/v4/token/token.service.d.ts +3 -1
- package/dist/src/modules/v4/token/token.service.js +18 -0
- package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.d.ts +2 -2
- package/dist/src/modules/v4/uniswapV4/uniswapV4.service.d.ts +2 -2
- package/dist/src/modules/v4/uniswapV4/uniswapV4.service.js +1 -1
- package/dist/src/routes/v3/campaigns.d.ts +1 -1
- package/dist/src/routes/v3/compoundV2.d.ts +2 -10
- package/dist/src/routes/v3/compoundV2.js +1 -1
- package/dist/src/routes/v3/dolomite.js +1 -1
- package/dist/src/routes/v3/euler.js +1 -1
- package/dist/src/routes/v3/router.d.ts +5 -16
- package/dist/src/routes/v3/uniswapv4.d.ts +2 -5
- package/dist/src/routes/v3/uniswapv4.js +1 -1
- package/dist/src/utils/decodeCalls.d.ts +1 -1
- package/dist/src/utils/decodeCalls.js +8 -2
- package/dist/src/utils/encodeCalls.d.ts +1 -1
- package/dist/src/utils/encodeCalls.js +20 -2
- package/dist/src/utils/generateCardName.d.ts +1 -1
- package/dist/src/utils/generateCardName.js +3 -1
- package/dist/src/utils/generateIcons.d.ts +1 -1
- package/dist/src/utils/generateIcons.js +1 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/src/factories/dynamicData/factory.d.ts +0 -0
- package/dist/src/factories/dynamicData/factory.js +0 -10
- package/dist/src/libs/campaigns/campaignTypes/AjnaDynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/AjnaDynamicData.js +0 -111
- package/dist/src/libs/campaigns/campaignTypes/AmbientDynamicData.d.ts +0 -3
- package/dist/src/libs/campaigns/campaignTypes/AmbientDynamicData.js +0 -243
- package/dist/src/libs/campaigns/campaignTypes/BadgerDynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/BadgerDynamicData.js +0 -93
- package/dist/src/libs/campaigns/campaignTypes/CLAMMDynamicData.d.ts +0 -3
- package/dist/src/libs/campaigns/campaignTypes/CLAMMDynamicData.js +0 -986
- package/dist/src/libs/campaigns/campaignTypes/CompoundDynamicData.d.ts +0 -3
- package/dist/src/libs/campaigns/campaignTypes/CompoundDynamicData.js +0 -139
- package/dist/src/libs/campaigns/campaignTypes/DolomiteDynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/DolomiteDynamicData.js +0 -60
- package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.d.ts +0 -4
- package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.js +0 -164
- package/dist/src/libs/campaigns/campaignTypes/ERC20_SNAPSHOTDynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/ERC20_SNAPSHOTDynamicData.js +0 -38
- package/dist/src/libs/campaigns/campaignTypes/EigenLayerDynamicData.d.ts +0 -3
- package/dist/src/libs/campaigns/campaignTypes/EigenLayerDynamicData.js +0 -67
- package/dist/src/libs/campaigns/campaignTypes/EncompassingDynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/EncompassingDynamicData.js +0 -34
- package/dist/src/libs/campaigns/campaignTypes/EventBasedDynamicData.d.ts +0 -3
- package/dist/src/libs/campaigns/campaignTypes/EventBasedDynamicData.js +0 -114
- package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.js +0 -99
- package/dist/src/libs/campaigns/campaignTypes/JSON_AIRDROPDynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/JSON_AIRDROPDynamicData.js +0 -19
- package/dist/src/libs/campaigns/campaignTypes/MORPHODynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/MORPHODynamicData.js +0 -112
- package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.d.ts +0 -3
- package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.js +0 -122
- package/dist/src/libs/campaigns/campaignTypes/SILODynamicData.d.ts +0 -7
- package/dist/src/libs/campaigns/campaignTypes/SILODynamicData.js +0 -115
- package/dist/src/libs/campaigns/campaignTypes/UniswapV4DynamicData.d.ts +0 -3
- package/dist/src/libs/campaigns/campaignTypes/UniswapV4DynamicData.js +0 -265
- package/dist/src/libs/campaigns/campaignTypes/VestDynamicData.d.ts +0 -5
- package/dist/src/libs/campaigns/campaignTypes/VestDynamicData.js +0 -61
- package/dist/src/libs/campaigns/campaignsDynamicData.d.ts +0 -3
- package/dist/src/libs/campaigns/campaignsDynamicData.js +0 -131
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchA51Strategies.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchA51Strategies.js +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchAmbientInfo.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchAmbientInfo.js +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchClamInfo.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchClamInfo.js +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchLogs.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/fetchLogs.js +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getCompV2ForksVaults.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getCompV2ForksVaults.js +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getContractCreationBlock.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getContractCreationBlock.js +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getDolomiteMarkets.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getDolomiteMarkets.js +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getEulerV2Vaults.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getUniswapV4Pools.d.ts +0 -0
- /package/dist/src/{libs/campaigns → engine/dynamicData}/utils/getUniswapV4Pools.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/GenericProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/eulerVaultNames.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/eulerVaultNames.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/factoryFinder.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/factoryFinder.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/hardcoded.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/hardcoded.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/metamorphoTvl.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/metamorphoTvl.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/ownerFinder.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/ownerFinder.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/spliceTVL.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/helpers/spliceTVL.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AaveProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AaveProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AnglesLiquid.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AnglesLiquid.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AssetProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AssetProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AuraProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/AuraProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BeefyProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/BeefyProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/CompoundProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/CompoundProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ERC4626Processor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ERC4626Processor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EnzymeProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EnzymeProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerLendProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/EulerLendProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FluidProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FluidProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FraxProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/FraxProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GammaProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GammaProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GearboxProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/GearboxProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HoldStationProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HoldStationProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HourglassProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/HourglassProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleYTProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/PendleYTProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RadiantProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RadiantProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RfxProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/RfxProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/Satlayer.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/Satlayer.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpliceProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SpliceProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TemplateProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TemplateProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TorosProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/TorosProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/UniswapProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/UniswapProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/VicunaProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/VicunaProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/WoofiProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/WoofiProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/curveProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/processorMapping.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/xU308Processor.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/implementations/xU308Processor.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesPrices.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesPrices.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound1.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound2.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound3.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound3.js +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound4.d.ts +0 -0
- /package/dist/src/{libs/campaigns/campaignTypes/ERC20SubTypes → engine/erc20SubTypeProcessors}/subtypesRound4.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/factory.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/factory.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ajna.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ajna.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ambiant.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ambiant.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Badger.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Badger.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Clamm.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Clamm.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Compound.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Compound.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Default.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Default.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Dolomite.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Dolomite.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/EigenLayer.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/EigenLayer.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Encompassing.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Encompassing.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20Snapshot.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Erc20Snapshot.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Hyperdrive.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Hyperdrive.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Invalid.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Invalid.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ion.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Ion.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/JsonAirdrop.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/JsonAirdrop.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Morpho.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Morpho.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Radiant.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Radiant.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Silo.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Silo.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/UniswapV4.d.ts +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/UniswapV4.js +0 -0
- /package/dist/src/{factories → engine}/opportunityMetadata/implementations/Vest.d.ts +0 -0
@@ -1,265 +0,0 @@
|
|
1
|
-
import { BucketService } from "@/modules/v4/bucket/bucket.service";
|
2
|
-
import { engineDbClient } from "@db";
|
3
|
-
import { BN2Number, ChainInteractionService, EAprBreakdownType, NETWORK_LABELS, UniswapV4Addresses, UniswapV4StateViewInterface, getSqrtRatioAtTick, shortenAddress, } from "@sdk";
|
4
|
-
import moment from "moment";
|
5
|
-
import { log } from "../../../utils/logger";
|
6
|
-
import { Pricer } from "../../../utils/pricer";
|
7
|
-
// Constants
|
8
|
-
const CALLS_LENGTH = 2;
|
9
|
-
/**
|
10
|
-
* Compute TVL
|
11
|
-
* @dev important: using the most recent state save with current prices
|
12
|
-
* it's only an estimate
|
13
|
-
*/
|
14
|
-
async function computeUniV4PoolTVLFromMostRecentStateSave(chainId, poolID, priceCurrency0, priceCurrency1, decimalsCurrency0, decimalsCurrency1) {
|
15
|
-
let stateSave;
|
16
|
-
let blockNumber;
|
17
|
-
let states = {};
|
18
|
-
try {
|
19
|
-
const currentBlock = await ChainInteractionService(chainId).getBlockNumber();
|
20
|
-
const mostRecentStateSave = await engineDbClient.stateSave.findFirst({
|
21
|
-
where: {
|
22
|
-
id: `UniswapV4_${chainId}_${poolID}`,
|
23
|
-
blockNumber: {
|
24
|
-
lte: currentBlock,
|
25
|
-
},
|
26
|
-
},
|
27
|
-
orderBy: {
|
28
|
-
blockNumber: "desc",
|
29
|
-
},
|
30
|
-
});
|
31
|
-
stateSave = mostRecentStateSave.state;
|
32
|
-
blockNumber = mostRecentStateSave?.blockNumber;
|
33
|
-
states = stateSave.states;
|
34
|
-
// const globalState = stateSave.globalState as { tick: number; liquidity: string };
|
35
|
-
}
|
36
|
-
catch (e) {
|
37
|
-
log.warn(`merklDynamic data - failed to read a recent state of pool ${poolID} on ${NETWORK_LABELS[chainId]}`);
|
38
|
-
}
|
39
|
-
const { fileName, bucketName } = states;
|
40
|
-
// Bucket service
|
41
|
-
let tvl = 0;
|
42
|
-
let amount0 = 0;
|
43
|
-
let amount1 = 0;
|
44
|
-
try {
|
45
|
-
const bucket = new BucketService(bucketName, "merkl-production");
|
46
|
-
const storedStates = JSON.parse(await bucket.pull(fileName));
|
47
|
-
for (const [_, { value, params: _params }] of Object.entries(storedStates)) {
|
48
|
-
amount0 += BN2Number(value.amount0, decimalsCurrency0);
|
49
|
-
amount1 += BN2Number(value.amount1, decimalsCurrency1);
|
50
|
-
}
|
51
|
-
tvl = amount0 * (priceCurrency0 ?? 0) + amount1 * (priceCurrency1 ?? 0);
|
52
|
-
}
|
53
|
-
catch (e) {
|
54
|
-
console.log(e);
|
55
|
-
log.warn(`merklDynamic data - failed to decode state of pool ${poolID} on ${NETWORK_LABELS[chainId]}`);
|
56
|
-
}
|
57
|
-
return { tvl, amount0, amount1, blockNumber: blockNumber };
|
58
|
-
}
|
59
|
-
export async function UniswapV4DynamicData(chainId, campaigns) {
|
60
|
-
const dynamicData = [];
|
61
|
-
const pricer = await Pricer.load();
|
62
|
-
const calls = [];
|
63
|
-
/** Dedupe pools from campaigns to build pool list */
|
64
|
-
const poolList = [];
|
65
|
-
for (const campaign of campaigns ?? []) {
|
66
|
-
/** Loop through all campaigns to add pools */
|
67
|
-
if (!poolList?.map(p => p.mainParameter.toLowerCase()).includes(campaign.mainParameter.toLowerCase())) {
|
68
|
-
poolList.push({
|
69
|
-
poolId: campaign.campaignParameters.poolId,
|
70
|
-
mainParameter: campaign.mainParameter, // FIXME
|
71
|
-
});
|
72
|
-
}
|
73
|
-
}
|
74
|
-
if (!!poolList) {
|
75
|
-
for (const pool of poolList) {
|
76
|
-
calls.push({
|
77
|
-
allowFailure: true,
|
78
|
-
callData: UniswapV4StateViewInterface.encodeFunctionData("getLiquidity", [pool.poolId]),
|
79
|
-
target: UniswapV4Addresses[chainId].StateView,
|
80
|
-
}, {
|
81
|
-
allowFailure: true,
|
82
|
-
callData: UniswapV4StateViewInterface.encodeFunctionData("getSlot0", [pool.poolId]),
|
83
|
-
target: UniswapV4Addresses[chainId].StateView,
|
84
|
-
});
|
85
|
-
}
|
86
|
-
return {
|
87
|
-
cached: false,
|
88
|
-
call: {
|
89
|
-
callData: calls,
|
90
|
-
handler: () => { },
|
91
|
-
reducer: async (result) => {
|
92
|
-
let i = 0;
|
93
|
-
if (!!poolList) {
|
94
|
-
for (const pool of poolList) {
|
95
|
-
// This liquidity call gives the active liquidity on the pool. To get the total liquidity we would need to loop over all positions
|
96
|
-
let poolTotalLiquidity;
|
97
|
-
let sqrtPrice;
|
98
|
-
let tick;
|
99
|
-
let poolBalanceToken0 = 0;
|
100
|
-
let poolBalanceToken1 = 0;
|
101
|
-
const campaignsForPool = campaigns?.filter(campaign => campaign.mainParameter.toLowerCase() === pool.mainParameter.toLowerCase());
|
102
|
-
const prevI = i;
|
103
|
-
try {
|
104
|
-
poolTotalLiquidity = UniswapV4StateViewInterface.decodeFunctionResult("getLiquidity", result[i++])[0].toString();
|
105
|
-
const poolData = UniswapV4StateViewInterface.decodeFunctionResult("getSlot0", result[i++]);
|
106
|
-
tick = poolData.tick;
|
107
|
-
sqrtPrice = getSqrtRatioAtTick(tick).toString();
|
108
|
-
}
|
109
|
-
catch {
|
110
|
-
log.warn(`merklDynamic data - failed to decode state of pool ${pool.poolId} on ${NETWORK_LABELS[chainId]}`);
|
111
|
-
i = prevI + CALLS_LENGTH;
|
112
|
-
continue;
|
113
|
-
}
|
114
|
-
const decimalsCurrency0 = campaignsForPool[0].campaignParameters.decimalsCurrency0;
|
115
|
-
const decimalsCurrency1 = campaignsForPool[0].campaignParameters.decimalsCurrency1;
|
116
|
-
const symbolCurrency0 = campaignsForPool[0].campaignParameters.symbolCurrency0;
|
117
|
-
const symbolCurrency1 = campaignsForPool[0].campaignParameters.symbolCurrency1;
|
118
|
-
const priceToken0 = (await pricer.get({
|
119
|
-
address: campaignsForPool[0].campaignParameters.currency0,
|
120
|
-
chainId: chainId,
|
121
|
-
symbol: symbolCurrency0,
|
122
|
-
}));
|
123
|
-
const priceToken1 = (await pricer.get({
|
124
|
-
address: campaignsForPool[0].campaignParameters.currency1,
|
125
|
-
chainId: chainId,
|
126
|
-
symbol: symbolCurrency1,
|
127
|
-
}));
|
128
|
-
const { tvl, amount0, amount1, blockNumber } = await computeUniV4PoolTVLFromMostRecentStateSave(chainId, pool.poolId, priceToken0, priceToken1, decimalsCurrency0, decimalsCurrency1);
|
129
|
-
poolBalanceToken0 += amount0;
|
130
|
-
poolBalanceToken1 += amount1;
|
131
|
-
/** Iterate over distributions to compute APRs */
|
132
|
-
for (const campaign of campaignsForPool) {
|
133
|
-
const c = campaign;
|
134
|
-
const amount = BN2Number(c.amount, c.campaignParameters.decimalsRewardToken);
|
135
|
-
const startTimestamp = BN2Number(c.startTimestamp, 0);
|
136
|
-
const endTimestamp = BN2Number(c.endTimestamp, 0);
|
137
|
-
const isLive = moment().unix() > startTimestamp && moment().unix() < endTimestamp;
|
138
|
-
const totalWeight = BN2Number(c.campaignParameters.weightFees, 4) +
|
139
|
-
BN2Number(c.campaignParameters.weightToken0, 4) +
|
140
|
-
BN2Number(c.campaignParameters.weightToken1, 4);
|
141
|
-
// Proportions in percentage
|
142
|
-
const propFees = (BN2Number(c.campaignParameters.weightFees, 4) / totalWeight) * 100;
|
143
|
-
const propToken0 = (BN2Number(c.campaignParameters.weightToken0, 4) / totalWeight) * 100;
|
144
|
-
const propToken1 = (BN2Number(c.campaignParameters.weightToken1, 4) / totalWeight) * 100;
|
145
|
-
let distributionMeanAPR = 0;
|
146
|
-
const blacklistedBalance0 = 0;
|
147
|
-
const blacklistedBalance1 = 0;
|
148
|
-
const blacklistedLiquidity = 0;
|
149
|
-
const aprs = {};
|
150
|
-
const aprBreakdowns = [];
|
151
|
-
let priceRewardToken = 0;
|
152
|
-
if (isLive && c.campaignParameters.symbolRewardToken !== "aglaMerkl") {
|
153
|
-
priceRewardToken = (await pricer.get({
|
154
|
-
address: c.rewardToken,
|
155
|
-
chainId: chainId,
|
156
|
-
symbol: c.campaignParameters.symbolRewardToken,
|
157
|
-
}));
|
158
|
-
/**
|
159
|
-
* Handle whitelisted/blacklisted addresses to compute APR
|
160
|
-
*/
|
161
|
-
if (c.campaignParameters.whitelist.length > 0) {
|
162
|
-
// TODO
|
163
|
-
}
|
164
|
-
else if (c.campaignParameters.blacklist.length > 0) {
|
165
|
-
// TODO
|
166
|
-
}
|
167
|
-
/** Yearly rewards in $ */
|
168
|
-
const yearlyToken0Rewards = (propToken0 * priceRewardToken * amount * (365 * 24 * 3_600)) / (endTimestamp - startTimestamp);
|
169
|
-
const yearlyToken1Rewards = (propToken1 * priceRewardToken * amount * (365 * 24 * 3_600)) / (endTimestamp - startTimestamp);
|
170
|
-
const yearlyFeeRewards = (propFees * priceRewardToken * amount * (365 * 24 * 3_600)) / (endTimestamp - startTimestamp);
|
171
|
-
let poolAPRkey = "";
|
172
|
-
/**
|
173
|
-
* General APR (@notice potentially with a boost)
|
174
|
-
*/
|
175
|
-
const poolBalanceToken0WithoutBlacklist = poolBalanceToken0;
|
176
|
-
const poolBalanceToken1WithoutBlacklist = poolBalanceToken1;
|
177
|
-
// const poolLiquidityWithoutBlacklist = poolTotalLiquidity - (blacklistedLiquidity ?? 0);
|
178
|
-
const tvl = poolBalanceToken0WithoutBlacklist * priceToken0 + poolBalanceToken1WithoutBlacklist * priceToken1;
|
179
|
-
distributionMeanAPR = (yearlyToken0Rewards + yearlyToken1Rewards + yearlyFeeRewards) / tvl;
|
180
|
-
distributionMeanAPR =
|
181
|
-
!distributionMeanAPR || Number.isNaN(distributionMeanAPR) ? 0 : distributionMeanAPR;
|
182
|
-
/**
|
183
|
-
* @dev We cannot include a whitelisted distrib apr into the mean APR
|
184
|
-
*/
|
185
|
-
if (c.campaignParameters.whitelist.length === 0) {
|
186
|
-
poolAPRkey = "Average APR (rewards / pool TVL)";
|
187
|
-
if (!aprs[poolAPRkey])
|
188
|
-
aprs[poolAPRkey] = 0;
|
189
|
-
aprs[poolAPRkey] += distributionMeanAPR;
|
190
|
-
// @Hugo wip: new way to structure aprBreakdowns
|
191
|
-
aprBreakdowns.push({
|
192
|
-
address: pool.poolId,
|
193
|
-
value: distributionMeanAPR,
|
194
|
-
type: EAprBreakdownType.AVERAGE,
|
195
|
-
label: "Average APR (rewards / pool TVL)",
|
196
|
-
});
|
197
|
-
// APR per token
|
198
|
-
poolAPRkey = `APR for holding ${c.campaignParameters.symbolCurrency0} in pool`;
|
199
|
-
if (!aprs[poolAPRkey])
|
200
|
-
aprs[poolAPRkey] = 0;
|
201
|
-
aprs[poolAPRkey] += yearlyToken0Rewards / (poolBalanceToken0WithoutBlacklist * priceToken0);
|
202
|
-
// @Hugo wip: new way to structure aprBreakdowns
|
203
|
-
aprBreakdowns.push({
|
204
|
-
address: pool.poolId,
|
205
|
-
value: yearlyToken0Rewards / (poolBalanceToken0WithoutBlacklist * priceToken0),
|
206
|
-
type: EAprBreakdownType.TOKEN1,
|
207
|
-
label: c.campaignParameters.symbolCurrency0,
|
208
|
-
});
|
209
|
-
poolAPRkey = `APR for holding ${c.campaignParameters.symbolCurrency1} in pool`;
|
210
|
-
if (!aprs[poolAPRkey])
|
211
|
-
aprs[poolAPRkey] = 0;
|
212
|
-
aprs[poolAPRkey] += yearlyToken1Rewards / (poolBalanceToken1WithoutBlacklist * priceToken1);
|
213
|
-
// @Hugo wip: new way to structure aprBreakdowns
|
214
|
-
aprBreakdowns.push({
|
215
|
-
address: pool.poolId,
|
216
|
-
value: yearlyToken1Rewards / (poolBalanceToken1WithoutBlacklist * priceToken1),
|
217
|
-
type: EAprBreakdownType.TOKEN2,
|
218
|
-
label: c.campaignParameters.symbolCurrency1,
|
219
|
-
});
|
220
|
-
}
|
221
|
-
else {
|
222
|
-
for (const _ of c.campaignParameters.whitelist) {
|
223
|
-
const poolAPRkey = `Whitelisted campaign on UniswapV4 via address ${shortenAddress(c.campaignParameters.whitelist[0])} Average APR`;
|
224
|
-
if (!aprs[poolAPRkey])
|
225
|
-
aprs[poolAPRkey] = 0;
|
226
|
-
}
|
227
|
-
aprs[poolAPRkey] += distributionMeanAPR;
|
228
|
-
}
|
229
|
-
}
|
230
|
-
dynamicData.push({
|
231
|
-
...campaign,
|
232
|
-
apr: distributionMeanAPR,
|
233
|
-
aprs,
|
234
|
-
aprBreakdowns,
|
235
|
-
blacklistedBalance0,
|
236
|
-
blacklistedBalance1,
|
237
|
-
blacklistedLiquidity,
|
238
|
-
poolBalanceToken0,
|
239
|
-
poolBalanceToken1,
|
240
|
-
poolTotalLiquidity,
|
241
|
-
sqrtPrice,
|
242
|
-
tick: tick,
|
243
|
-
priceRewardToken: priceRewardToken,
|
244
|
-
tvl: poolBalanceToken0 * priceToken0 + poolBalanceToken1 * priceToken1,
|
245
|
-
});
|
246
|
-
}
|
247
|
-
}
|
248
|
-
}
|
249
|
-
return dynamicData;
|
250
|
-
},
|
251
|
-
},
|
252
|
-
};
|
253
|
-
}
|
254
|
-
// Fallback in case something fails
|
255
|
-
return {
|
256
|
-
cached: false,
|
257
|
-
call: {
|
258
|
-
callData: [],
|
259
|
-
handler: () => { },
|
260
|
-
reducer: async (_result) => {
|
261
|
-
return campaigns;
|
262
|
-
},
|
263
|
-
},
|
264
|
-
};
|
265
|
-
}
|
@@ -1,5 +0,0 @@
|
|
1
|
-
import { type Campaign, type CampaignDynamicData, type CampaignParameters, type MerklChainId } from "@sdk";
|
2
|
-
import type { UncachedResult } from "../../../utils/execute";
|
3
|
-
export declare const VEST_TREASURY = "0x7ccF5BbeC69c790D27dA3b5398B9e0d6D6EeC9F3";
|
4
|
-
export declare const VEST_TOKEN = "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4";
|
5
|
-
export declare function VestDynamicData(_chainId: MerklChainId, campaigns: CampaignParameters<Campaign.VEST>[]): Promise<UncachedResult<Partial<CampaignDynamicData<Campaign.VEST>[]>>>;
|
@@ -1,61 +0,0 @@
|
|
1
|
-
import { BN2Number, ERC20Interface, YEAR, } from "@sdk";
|
2
|
-
import { log } from "../../../utils/logger";
|
3
|
-
import { Pricer } from "../../../utils/pricer";
|
4
|
-
export const VEST_TREASURY = "0x7ccF5BbeC69c790D27dA3b5398B9e0d6D6EeC9F3";
|
5
|
-
export const VEST_TOKEN = "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4";
|
6
|
-
export async function VestDynamicData(_chainId, campaigns) {
|
7
|
-
const pricer = await Pricer.load();
|
8
|
-
const calls = [];
|
9
|
-
for (const campaign of campaigns) {
|
10
|
-
calls.push({
|
11
|
-
allowFailure: true,
|
12
|
-
callData: ERC20Interface.encodeFunctionData("balanceOf", [VEST_TREASURY]),
|
13
|
-
target: VEST_TOKEN,
|
14
|
-
});
|
15
|
-
}
|
16
|
-
return {
|
17
|
-
cached: false,
|
18
|
-
call: {
|
19
|
-
callData: calls,
|
20
|
-
handler: () => { },
|
21
|
-
reducer: async (result) => {
|
22
|
-
let i = 0;
|
23
|
-
const dynamicData = [];
|
24
|
-
for (const campaign of campaigns) {
|
25
|
-
let totalSupply;
|
26
|
-
try {
|
27
|
-
totalSupply = BN2Number(ERC20Interface.decodeFunctionResult("balanceOf", result[i++])[0], 6);
|
28
|
-
}
|
29
|
-
catch {
|
30
|
-
log.warn(`Error getting totalSupply for campaign ${campaign.campaignId}`);
|
31
|
-
totalSupply = 0.0000001;
|
32
|
-
}
|
33
|
-
const priceRewardToken = (await pricer.get({
|
34
|
-
address: campaign.rewardToken,
|
35
|
-
chainId: campaign.chainId,
|
36
|
-
symbol: campaign.campaignParameters.symbolRewardToken,
|
37
|
-
})) ?? 0;
|
38
|
-
const priceTargetToken = (await pricer.get({
|
39
|
-
address: VEST_TOKEN,
|
40
|
-
chainId: campaign.computeChainId,
|
41
|
-
symbol: "USDC.e",
|
42
|
-
})) ?? 0;
|
43
|
-
const tvl = totalSupply * priceTargetToken;
|
44
|
-
dynamicData.push({
|
45
|
-
...campaign,
|
46
|
-
apr: (priceRewardToken *
|
47
|
-
BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
|
48
|
-
YEAR *
|
49
|
-
100) /
|
50
|
-
campaign.campaignParameters.duration /
|
51
|
-
(totalSupply * priceTargetToken),
|
52
|
-
totalSupplyTargetToken: totalSupply,
|
53
|
-
tvl,
|
54
|
-
priceRewardToken: priceRewardToken,
|
55
|
-
});
|
56
|
-
}
|
57
|
-
return dynamicData;
|
58
|
-
},
|
59
|
-
},
|
60
|
-
};
|
61
|
-
}
|
@@ -1,3 +0,0 @@
|
|
1
|
-
import { Campaign, type CampaignDynamicData, type CampaignParameters, type MerklChainId } from "@sdk";
|
2
|
-
import type { UncachedResult } from "../../utils/execute";
|
3
|
-
export declare function campaignsDynamicData<T extends Campaign>(chainId: MerklChainId, campaigns: CampaignParameters<T>[], type: T | string): Promise<UncachedResult<Partial<CampaignDynamicData<T>[]>>>;
|
@@ -1,131 +0,0 @@
|
|
1
|
-
import { UserService } from "@/modules/v4/user/user.service";
|
2
|
-
import { Campaign } from "@sdk";
|
3
|
-
import { AjnaDynamicData } from "./campaignTypes/AjnaDynamicData";
|
4
|
-
import { AmbientDynamicData } from "./campaignTypes/AmbientDynamicData";
|
5
|
-
import { BadgerDynamicData } from "./campaignTypes/BadgerDynamicData";
|
6
|
-
import { CLAMMDynamicData } from "./campaignTypes/CLAMMDynamicData";
|
7
|
-
import { CompoundDynamicData } from "./campaignTypes/CompoundDynamicData";
|
8
|
-
import { DolomiteDynamicData } from "./campaignTypes/DolomiteDynamicData";
|
9
|
-
import { ERC20DynamicData } from "./campaignTypes/ERC20DynamicData";
|
10
|
-
import { ERC20_SNAPSHOTDynamicData } from "./campaignTypes/ERC20_SNAPSHOTDynamicData";
|
11
|
-
import { EigenLayerDynamicData } from "./campaignTypes/EigenLayerDynamicData";
|
12
|
-
import { EncompassingDynamicData } from "./campaignTypes/EncompassingDynamicData";
|
13
|
-
import { EventBasedDynamicData } from "./campaignTypes/EventBasedDynamicData";
|
14
|
-
import { HyperdriveDynamicData } from "./campaignTypes/HyperdriveDynamicData";
|
15
|
-
import { JSON_AIRDROPDynamicData } from "./campaignTypes/JSON_AIRDROPDynamicData";
|
16
|
-
import { MORPHODynamicData } from "./campaignTypes/MORPHODynamicData";
|
17
|
-
import { RadiantDynamicData } from "./campaignTypes/RadiantDynamicData";
|
18
|
-
import { SILODynamicData } from "./campaignTypes/SILODynamicData";
|
19
|
-
import { UniswapV4DynamicData } from "./campaignTypes/UniswapV4DynamicData";
|
20
|
-
import { VestDynamicData } from "./campaignTypes/VestDynamicData";
|
21
|
-
export async function campaignsDynamicData(chainId, campaigns, type) {
|
22
|
-
try {
|
23
|
-
for (const campaign of campaigns) {
|
24
|
-
const tags = (await UserService.findUnique(campaign.creator))?.tags;
|
25
|
-
campaign.tags = tags || [];
|
26
|
-
}
|
27
|
-
}
|
28
|
-
catch (_err) { }
|
29
|
-
switch (type) {
|
30
|
-
case "ERC20":
|
31
|
-
case Campaign.ERC20: {
|
32
|
-
return ERC20DynamicData(chainId, campaigns);
|
33
|
-
}
|
34
|
-
case "ERC20LOGPROCESSOR":
|
35
|
-
case Campaign.ERC20LOGPROCESSOR: {
|
36
|
-
return ERC20DynamicData(chainId, campaigns);
|
37
|
-
}
|
38
|
-
case "ERC20REBASELOGPROCESSOR":
|
39
|
-
case Campaign.ERC20REBASELOGPROCESSOR: {
|
40
|
-
return ERC20DynamicData(chainId, campaigns);
|
41
|
-
}
|
42
|
-
case "CLAMM":
|
43
|
-
case Campaign.CLAMM: {
|
44
|
-
return CLAMMDynamicData(chainId, campaigns);
|
45
|
-
}
|
46
|
-
case "ERC20_SNAPSHOT":
|
47
|
-
case Campaign.ERC20_SNAPSHOT: {
|
48
|
-
return ERC20_SNAPSHOTDynamicData(chainId, campaigns);
|
49
|
-
}
|
50
|
-
case "JSON_AIRDROP":
|
51
|
-
case Campaign.JSON_AIRDROP: {
|
52
|
-
return JSON_AIRDROPDynamicData(chainId, campaigns);
|
53
|
-
}
|
54
|
-
case "SILO":
|
55
|
-
case Campaign.SILO: {
|
56
|
-
return SILODynamicData(chainId, campaigns);
|
57
|
-
}
|
58
|
-
case "RADIANT":
|
59
|
-
case Campaign.RADIANT: {
|
60
|
-
return RadiantDynamicData(chainId, campaigns);
|
61
|
-
}
|
62
|
-
case "MORPHO":
|
63
|
-
case Campaign.MORPHO: {
|
64
|
-
return MORPHODynamicData(chainId, campaigns);
|
65
|
-
}
|
66
|
-
case "EULER":
|
67
|
-
case Campaign.EULER: {
|
68
|
-
return ERC20DynamicData(chainId, campaigns);
|
69
|
-
}
|
70
|
-
case "DOLOMITE":
|
71
|
-
case Campaign.DOLOMITE: {
|
72
|
-
return DolomiteDynamicData(chainId, campaigns);
|
73
|
-
}
|
74
|
-
case "BADGER":
|
75
|
-
case Campaign.BADGER: {
|
76
|
-
return BadgerDynamicData(chainId, campaigns);
|
77
|
-
}
|
78
|
-
case "AJNA":
|
79
|
-
case Campaign.AJNA: {
|
80
|
-
return AjnaDynamicData(chainId, campaigns);
|
81
|
-
}
|
82
|
-
case "COMPOUND":
|
83
|
-
case Campaign.COMPOUND: {
|
84
|
-
return CompoundDynamicData(chainId, campaigns);
|
85
|
-
}
|
86
|
-
case "EIGENLAYER":
|
87
|
-
case Campaign.EIGENLAYER: {
|
88
|
-
return EigenLayerDynamicData(chainId, campaigns);
|
89
|
-
}
|
90
|
-
case "VEST":
|
91
|
-
case Campaign.VEST: {
|
92
|
-
return VestDynamicData(chainId, campaigns);
|
93
|
-
}
|
94
|
-
case "ERC20_FIX_APR":
|
95
|
-
case Campaign.ERC20_FIX_APR: {
|
96
|
-
return ERC20DynamicData(chainId, campaigns);
|
97
|
-
}
|
98
|
-
case "HYPERDRIVELOGPROCESSOR":
|
99
|
-
case "HYPERDRIVELOGFIXPROCESSOR":
|
100
|
-
case Campaign.HYPERDRIVELOGPROCESSOR:
|
101
|
-
case Campaign.HYPERDRIVELOGFIXPROCESSOR: {
|
102
|
-
return HyperdriveDynamicData(chainId, campaigns);
|
103
|
-
}
|
104
|
-
case "AMBIENTPROCESSOR":
|
105
|
-
case Campaign.AMBIENTPROCESSOR: {
|
106
|
-
return AmbientDynamicData(chainId, campaigns);
|
107
|
-
}
|
108
|
-
case "UNISWAP_V4":
|
109
|
-
case Campaign.UNISWAP_V4: {
|
110
|
-
return UniswapV4DynamicData(chainId, campaigns);
|
111
|
-
}
|
112
|
-
case "ENCOMPASSING":
|
113
|
-
case Campaign.ENCOMPASSING: {
|
114
|
-
return EncompassingDynamicData(chainId, campaigns);
|
115
|
-
}
|
116
|
-
case "EVENT_BASED":
|
117
|
-
case Campaign.EVENT_BASED: {
|
118
|
-
return EventBasedDynamicData(chainId, campaigns);
|
119
|
-
}
|
120
|
-
}
|
121
|
-
return {
|
122
|
-
cached: false,
|
123
|
-
call: {
|
124
|
-
callData: [],
|
125
|
-
handler: () => { },
|
126
|
-
reducer: async (_) => {
|
127
|
-
return campaigns;
|
128
|
-
},
|
129
|
-
},
|
130
|
-
};
|
131
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|