@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
package/package.json
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
"db:studio:api": "bunx prisma studio --schema database/api/schema.prisma",
|
17
17
|
"db:studio:engine": "bunx prisma studio --schema database/engine/schema.prisma",
|
18
18
|
"build:ci": "bun tsc -b",
|
19
|
-
"build:local": "bun tsc
|
19
|
+
"build:local": "bun tsc -b",
|
20
20
|
"lint": "bun biome check --diagnostic-level error --write ./src && bun biome check --diagnostic-level error --write ./tests",
|
21
21
|
"lint:ci": "bun biome check --diagnostic-level error ./src",
|
22
22
|
"lint:test": "bun biome check --write ./tests",
|
@@ -105,5 +105,5 @@
|
|
105
105
|
"access": "public",
|
106
106
|
"registry": "https://registry.npmjs.org/"
|
107
107
|
},
|
108
|
-
"version": "v0.19.
|
108
|
+
"version": "v0.19.8"
|
109
109
|
}
|
File without changes
|
@@ -1,10 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
// import { Campaign } from "@sdk";
|
3
|
-
// import type { MetadataBuilder } from "./interface";
|
4
|
-
// // @dev Casts are made to enforce type safety
|
5
|
-
// // @dev A type error must be thrown if a new campaign type is added and the corresponding builder is not implemented
|
6
|
-
// const map = {
|
7
|
-
// [Campaign.INVALID]: new InvalidMetadata() as MetadataBuilder<Campaign.INVALID>,
|
8
|
-
// } as const;
|
9
|
-
// export const dynamicDataBuilderFactory = (campaignType: Campaign) =>
|
10
|
-
// map[campaignType] as MetadataBuilder<typeof campaignType>;
|
@@ -1,5 +0,0 @@
|
|
1
|
-
import { type Campaign, type CampaignDynamicData, type CampaignParameters, type MerklChainId } from "@sdk";
|
2
|
-
import type { UncachedResult } from "../../../utils/execute";
|
3
|
-
type campaignType = Campaign.AJNA;
|
4
|
-
export declare function AjnaDynamicData(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<UncachedResult<Partial<CampaignDynamicData<campaignType>[]>>>;
|
5
|
-
export {};
|
@@ -1,111 +0,0 @@
|
|
1
|
-
import { batchMulticallCallWithRetry } from "@/utils/generic";
|
2
|
-
import { providers } from "@/utils/providers";
|
3
|
-
import { AjnaSubCampaignType, BN2Number, ERC20Pool__factory, NETWORK_LABELS, PoolInfoUtilsInterface, YEAR, } from "@sdk";
|
4
|
-
import { POOL_INFO_UTILS } from "@sdk";
|
5
|
-
import axios from "axios";
|
6
|
-
import { log } from "../../../utils/logger";
|
7
|
-
import { Pricer } from "../../../utils/pricer";
|
8
|
-
export async function AjnaDynamicData(chainId, campaigns) {
|
9
|
-
const pricer = await Pricer.load();
|
10
|
-
const calls = [];
|
11
|
-
for (const campaign of campaigns) {
|
12
|
-
if (campaign.campaignParameters.subCampaignType === AjnaSubCampaignType.lend) {
|
13
|
-
calls.push({
|
14
|
-
allowFailure: true,
|
15
|
-
callData: PoolInfoUtilsInterface.encodeFunctionData("poolPricesInfo", [campaign.campaignParameters.poolId]),
|
16
|
-
target: POOL_INFO_UTILS[campaign.computeChainId],
|
17
|
-
});
|
18
|
-
}
|
19
|
-
}
|
20
|
-
return {
|
21
|
-
cached: false,
|
22
|
-
call: {
|
23
|
-
callData: calls,
|
24
|
-
handler: () => { },
|
25
|
-
reducer: async (result) => {
|
26
|
-
const dynamicData = [];
|
27
|
-
const resIndexes = await batchMulticallCallWithRetry(chainId, {
|
28
|
-
calls,
|
29
|
-
});
|
30
|
-
let index = 0;
|
31
|
-
for (const campaign of campaigns) {
|
32
|
-
const res = await axios.get(`https://ajna-api.blockanalitica.com/v4/${NETWORK_LABELS[chainId].toLowerCase()}/pools/${campaign.campaignParameters.poolId.toLowerCase()}`);
|
33
|
-
try {
|
34
|
-
let totalSupplyTargetToken = 0;
|
35
|
-
let totalComputedTargetToken = 0;
|
36
|
-
let blacklistedSupply = 0;
|
37
|
-
let blacklistedPosition;
|
38
|
-
if (campaign.campaignParameters.subCampaignType === AjnaSubCampaignType.lend) {
|
39
|
-
totalSupplyTargetToken = res?.data.results?.quote_token_balance;
|
40
|
-
const htpIndex = PoolInfoUtilsInterface.decodeFunctionResult("poolPricesInfo", resIndexes[index].returnData)[3];
|
41
|
-
const lupIndex = PoolInfoUtilsInterface.decodeFunctionResult("poolPricesInfo", resIndexes[index].returnData)[5];
|
42
|
-
const threshold = BN2Number(lupIndex, 0) === 0 ? lupIndex : lupIndex.gt(htpIndex) ? lupIndex.add(22) : htpIndex.add(22);
|
43
|
-
const InterestEarningSupplyRes = await ERC20Pool__factory.connect(campaign.campaignParameters.poolId, providers[campaign.computeChainId]).depositUpToIndex(threshold);
|
44
|
-
totalComputedTargetToken = BN2Number(InterestEarningSupplyRes, 18);
|
45
|
-
index++;
|
46
|
-
}
|
47
|
-
else {
|
48
|
-
totalSupplyTargetToken = res?.data.results?.debt;
|
49
|
-
}
|
50
|
-
totalComputedTargetToken =
|
51
|
-
campaign.campaignSubType === AjnaSubCampaignType.lend ? totalComputedTargetToken : totalSupplyTargetToken;
|
52
|
-
if (campaign.campaignParameters.blacklist.length !== 0 && totalComputedTargetToken !== 0) {
|
53
|
-
for (const blacklisted of campaign.campaignParameters.blacklist) {
|
54
|
-
const res = await axios.get(`https://ajna-api.blockanalitica.com/v4/${NETWORK_LABELS[chainId].toLowerCase()}/wallets/${blacklisted}/pools/?days_ago=1&order=-debt&p_size=50`);
|
55
|
-
let nextRoute = null;
|
56
|
-
if (!!res.data.next) {
|
57
|
-
nextRoute = `https://${res.data.next.slice(res.data.next.indexOf(":") + 1)}`;
|
58
|
-
}
|
59
|
-
blacklistedPosition = res.data.results.find((position) => position.pool_address === campaign.campaignParameters.poolId);
|
60
|
-
blacklistedSupply = !blacklistedPosition
|
61
|
-
? 0
|
62
|
-
: campaign.campaignSubType === AjnaSubCampaignType.lend
|
63
|
-
? Number(blacklistedPosition.supply)
|
64
|
-
: Number(blacklistedPosition.debt);
|
65
|
-
while (nextRoute !== null && blacklistedSupply !== 0) {
|
66
|
-
const res = await axios.get(nextRoute);
|
67
|
-
blacklistedPosition = res.data.results.find((position) => position.pool_address === campaign.campaignParameters.poolId);
|
68
|
-
blacklistedSupply = !blacklistedPosition
|
69
|
-
? 0
|
70
|
-
: campaign.campaignSubType === AjnaSubCampaignType.lend
|
71
|
-
? Number(blacklistedPosition.supply)
|
72
|
-
: Number(blacklistedPosition.debt);
|
73
|
-
if (!!res.data.next) {
|
74
|
-
nextRoute = `https://${res.data.next.slice(res.data.next.indexOf(":") + 1)}`;
|
75
|
-
}
|
76
|
-
else {
|
77
|
-
nextRoute = null;
|
78
|
-
}
|
79
|
-
}
|
80
|
-
}
|
81
|
-
}
|
82
|
-
totalComputedTargetToken -= blacklistedSupply;
|
83
|
-
const priceRewardToken = (await pricer.get({
|
84
|
-
address: campaign.rewardToken,
|
85
|
-
chainId,
|
86
|
-
symbol: campaign.campaignParameters.symbolRewardToken,
|
87
|
-
})) ?? 0;
|
88
|
-
dynamicData.push({
|
89
|
-
...campaign,
|
90
|
-
apr: (priceRewardToken *
|
91
|
-
BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
|
92
|
-
YEAR *
|
93
|
-
100) /
|
94
|
-
campaign.campaignParameters.duration /
|
95
|
-
(totalComputedTargetToken * res?.data.results?.quote_token_underlying_price),
|
96
|
-
totalSupplyTargetToken,
|
97
|
-
tvl: res?.data.results?.tvl,
|
98
|
-
computedtotalSupply: totalComputedTargetToken,
|
99
|
-
});
|
100
|
-
}
|
101
|
-
catch (e) {
|
102
|
-
log.error("Failed to fetch Ajna data", e);
|
103
|
-
// In this case we return just the staticData
|
104
|
-
dynamicData.push({ ...campaign });
|
105
|
-
}
|
106
|
-
}
|
107
|
-
return dynamicData;
|
108
|
-
},
|
109
|
-
},
|
110
|
-
};
|
111
|
-
}
|
@@ -1,3 +0,0 @@
|
|
1
|
-
import { type Campaign, type CampaignDynamicData, type CampaignParameters, type MerklChainId } from "@sdk";
|
2
|
-
import type { UncachedResult } from "../../../utils/execute";
|
3
|
-
export declare function AmbientDynamicData(chainId: MerklChainId, campaigns: CampaignParameters<Campaign.AMBIENTPROCESSOR>[]): Promise<UncachedResult<Partial<CampaignDynamicData<Campaign.AMBIENTPROCESSOR>[]>>>;
|
@@ -1,243 +0,0 @@
|
|
1
|
-
import { AmbientAddresses, AmbientLens, BN2Number, EAprBreakdownType, NETWORK_LABELS, YEAR, } from "@sdk";
|
2
|
-
import moment from "moment";
|
3
|
-
import { log } from "../../../utils/logger";
|
4
|
-
import { Pricer } from "../../../utils/pricer";
|
5
|
-
import { fetchAmbientPotentialPositions } from "../utils/fetchAmbientInfo";
|
6
|
-
var AmbientPositionType;
|
7
|
-
(function (AmbientPositionType) {
|
8
|
-
AmbientPositionType["Concentrated"] = "concentrated";
|
9
|
-
AmbientPositionType["Ambient"] = "ambient";
|
10
|
-
AmbientPositionType["Knockout"] = "knockout";
|
11
|
-
})(AmbientPositionType || (AmbientPositionType = {}));
|
12
|
-
function encodeCall(chainId, holder) {
|
13
|
-
if (holder.positionType === AmbientPositionType.Concentrated) {
|
14
|
-
return [
|
15
|
-
{
|
16
|
-
allowFailure: true,
|
17
|
-
callData: AmbientLens.encodeFunctionData("queryRangeTokens", [
|
18
|
-
holder.owner,
|
19
|
-
holder.base,
|
20
|
-
holder.quote,
|
21
|
-
holder.poolIdx,
|
22
|
-
holder.lowerTick,
|
23
|
-
holder.upperTick,
|
24
|
-
]),
|
25
|
-
target: AmbientAddresses[chainId].CrocQuery,
|
26
|
-
},
|
27
|
-
];
|
28
|
-
}
|
29
|
-
return [
|
30
|
-
{
|
31
|
-
allowFailure: true,
|
32
|
-
callData: AmbientLens.encodeFunctionData("queryAmbientTokens", [
|
33
|
-
holder.owner,
|
34
|
-
holder.base,
|
35
|
-
holder.quote,
|
36
|
-
holder.poolIdx,
|
37
|
-
]),
|
38
|
-
target: AmbientAddresses[chainId].CrocQuery,
|
39
|
-
},
|
40
|
-
];
|
41
|
-
}
|
42
|
-
async function decodeCall(result, holder) {
|
43
|
-
let amount0 = BigInt(0n);
|
44
|
-
let amount1 = BigInt(0n);
|
45
|
-
if (holder.positionType === AmbientPositionType.Concentrated) {
|
46
|
-
const resTok = AmbientLens.decodeFunctionResult("queryRangeTokens", result);
|
47
|
-
amount0 = BigInt(resTok[1]);
|
48
|
-
amount1 = BigInt(resTok[2]);
|
49
|
-
}
|
50
|
-
if (holder.positionType === AmbientPositionType.Ambient) {
|
51
|
-
const resTok = AmbientLens.decodeFunctionResult("queryAmbientTokens", result);
|
52
|
-
amount0 = BigInt(resTok[1]);
|
53
|
-
amount1 = BigInt(resTok[2]);
|
54
|
-
}
|
55
|
-
return { amount0, amount1 };
|
56
|
-
}
|
57
|
-
export async function AmbientDynamicData(chainId, campaigns) {
|
58
|
-
const dynamicData = [];
|
59
|
-
const pricer = await Pricer.load();
|
60
|
-
let calls = [];
|
61
|
-
/** Dedupe pools from campaigns to build pool list */
|
62
|
-
const poolList = [];
|
63
|
-
for (const campaign of campaigns ?? []) {
|
64
|
-
/** Loop through all campaigns to add pools */
|
65
|
-
if (!poolList?.map(p => p.mainParameter.toLowerCase()).includes(campaign.mainParameter.toLowerCase())) {
|
66
|
-
poolList.push({
|
67
|
-
id: campaign.campaignParameters.poolId,
|
68
|
-
mainParameter: campaign.mainParameter, // main parameter containes info of poolAddress + AMM (in case its a priority AMM)
|
69
|
-
baseToken: campaign.campaignParameters.baseToken,
|
70
|
-
quoteToken: campaign.campaignParameters.quoteToken,
|
71
|
-
poolIdx: campaign.campaignParameters.poolIdx,
|
72
|
-
potentialHolders: await fetchAmbientPotentialPositions(campaign.campaignParameters.poolId, campaign.computeChainId),
|
73
|
-
});
|
74
|
-
}
|
75
|
-
}
|
76
|
-
if (!!poolList) {
|
77
|
-
for (const pool of poolList) {
|
78
|
-
calls.push({
|
79
|
-
allowFailure: true,
|
80
|
-
callData: AmbientLens.encodeFunctionData("queryLiquidity", [pool.baseToken, pool.quoteToken, pool.poolIdx]),
|
81
|
-
target: AmbientAddresses[chainId].CrocQuery,
|
82
|
-
}, {
|
83
|
-
allowFailure: true,
|
84
|
-
callData: AmbientLens.encodeFunctionData("queryCurveTick", [pool.baseToken, pool.quoteToken, pool.poolIdx]),
|
85
|
-
target: AmbientAddresses[chainId].CrocQuery,
|
86
|
-
});
|
87
|
-
calls = calls.concat(...pool.potentialHolders.map(holder => encodeCall(chainId, holder)));
|
88
|
-
}
|
89
|
-
return {
|
90
|
-
cached: false,
|
91
|
-
call: {
|
92
|
-
callData: calls,
|
93
|
-
handler: () => { },
|
94
|
-
reducer: async (result) => {
|
95
|
-
let i = 0;
|
96
|
-
if (!!poolList) {
|
97
|
-
for (const pool of poolList) {
|
98
|
-
// This liquidity call gives the active liquidity on the pool. To get the total liquidity we would need to loop over all positions
|
99
|
-
let poolTotalLiquidity;
|
100
|
-
let activeTick;
|
101
|
-
let poolBalanceToken0 = 0;
|
102
|
-
let poolBalanceToken1 = 0;
|
103
|
-
const d = campaigns?.filter(campaign => campaign.mainParameter.toLowerCase() === pool.mainParameter.toLowerCase())[0];
|
104
|
-
const decimalsBaseToken = d.campaignParameters.decimalsBaseToken;
|
105
|
-
const decimalsQuoteToken = d.campaignParameters.decimalsQuoteToken;
|
106
|
-
const symbolBaseToken = d.campaignParameters.symbolBaseToken;
|
107
|
-
const symbolQuoteToken = d.campaignParameters.symbolQuoteToken;
|
108
|
-
const prevI = i;
|
109
|
-
try {
|
110
|
-
poolTotalLiquidity = BN2Number(AmbientLens.decodeFunctionResult("queryLiquidity", result[i++])[0]);
|
111
|
-
activeTick = Number(AmbientLens.decodeFunctionResult("queryCurveTick", result[i++])[0]);
|
112
|
-
for (let index = 0; index < pool.potentialHolders.length; index++) {
|
113
|
-
// to verify
|
114
|
-
if (calls.length === 0) {
|
115
|
-
break;
|
116
|
-
}
|
117
|
-
const res = await decodeCall(result[i++], pool.potentialHolders[index]);
|
118
|
-
poolBalanceToken0 += BN2Number(res.amount0, decimalsBaseToken);
|
119
|
-
poolBalanceToken1 += BN2Number(res.amount1, decimalsQuoteToken);
|
120
|
-
}
|
121
|
-
}
|
122
|
-
catch (e) {
|
123
|
-
log.warn(`merklDynamic data - failed to decode state of pool ${pool.id} on ${NETWORK_LABELS[chainId]}`);
|
124
|
-
i = prevI + 2 + pool.potentialHolders.length;
|
125
|
-
continue;
|
126
|
-
}
|
127
|
-
const priceToken0 = (await pricer.get({
|
128
|
-
address: d.campaignParameters.baseToken,
|
129
|
-
chainId: chainId,
|
130
|
-
symbol: symbolBaseToken,
|
131
|
-
}));
|
132
|
-
const priceToken1 = (await pricer.get({
|
133
|
-
address: d.campaignParameters.quoteToken,
|
134
|
-
chainId: chainId,
|
135
|
-
symbol: symbolQuoteToken,
|
136
|
-
}));
|
137
|
-
/** Iterate over distributions to compute APRs */
|
138
|
-
for (const campaign of campaigns.filter(campaign => campaign.mainParameter.toLowerCase() === pool.mainParameter.toLowerCase())) {
|
139
|
-
const c = campaign;
|
140
|
-
const amount = BN2Number(c.amount, c.campaignParameters.decimalsRewardToken);
|
141
|
-
const startTimestamp = BN2Number(c.startTimestamp, 0);
|
142
|
-
const endTimestamp = BN2Number(c.endTimestamp, 0);
|
143
|
-
const isLive = moment().unix() >= startTimestamp && moment().unix() < endTimestamp;
|
144
|
-
const totalWeight = BN2Number(c.campaignParameters.weightFees, 4) +
|
145
|
-
BN2Number(c.campaignParameters.weightToken0, 4) +
|
146
|
-
BN2Number(c.campaignParameters.weightToken1, 4);
|
147
|
-
// Proportions in percentage
|
148
|
-
const propFees = (BN2Number(c.campaignParameters.weightFees, 4) / totalWeight) * 100;
|
149
|
-
const propToken0 = (BN2Number(c.campaignParameters.weightToken0, 4) / totalWeight) * 100;
|
150
|
-
const propToken1 = (BN2Number(c.campaignParameters.weightToken1, 4) / totalWeight) * 100;
|
151
|
-
let distributionMeanAPR = 0;
|
152
|
-
const aprs = {};
|
153
|
-
const aprBreakdowns = [];
|
154
|
-
let priceRewardToken = 0;
|
155
|
-
if (isLive && c.campaignParameters.symbolRewardToken !== "aglaMerkl") {
|
156
|
-
priceRewardToken = (await pricer.get({
|
157
|
-
address: c.rewardToken,
|
158
|
-
chainId: chainId,
|
159
|
-
symbol: c.campaignParameters.symbolRewardToken,
|
160
|
-
}));
|
161
|
-
/** Yearly rewards in $ */
|
162
|
-
const yearlyToken0Rewards = (propToken0 * priceRewardToken * amount * YEAR) / (endTimestamp - startTimestamp);
|
163
|
-
const yearlyToken1Rewards = (propToken1 * priceRewardToken * amount * YEAR) / (endTimestamp - startTimestamp);
|
164
|
-
const yearlyFeeRewards = (propFees * priceRewardToken * amount * YEAR) / (endTimestamp - startTimestamp);
|
165
|
-
let poolAPRkey = "";
|
166
|
-
const tvl = poolBalanceToken0 * priceToken0 + poolBalanceToken1 * priceToken1;
|
167
|
-
distributionMeanAPR = (yearlyToken0Rewards + yearlyToken1Rewards + yearlyFeeRewards) / tvl;
|
168
|
-
distributionMeanAPR =
|
169
|
-
!distributionMeanAPR || Number.isNaN(distributionMeanAPR) ? 0 : distributionMeanAPR;
|
170
|
-
/**
|
171
|
-
* @dev We cannot include a whitelisted distrib apr into the mean APR
|
172
|
-
*/
|
173
|
-
if (c.campaignParameters.whitelist.length === 0) {
|
174
|
-
poolAPRkey = "Average APR (rewards / pool TVL)";
|
175
|
-
if (!aprs[poolAPRkey])
|
176
|
-
aprs[poolAPRkey] = 0;
|
177
|
-
aprs[poolAPRkey] += distributionMeanAPR;
|
178
|
-
// @Hugo wip: new way to structure aprBreakdowns
|
179
|
-
aprBreakdowns.push({
|
180
|
-
address: pool.id,
|
181
|
-
value: distributionMeanAPR,
|
182
|
-
type: EAprBreakdownType.AVERAGE,
|
183
|
-
label: "Average APR (rewards / pool TVL)",
|
184
|
-
});
|
185
|
-
// APR per token
|
186
|
-
poolAPRkey = `APR for holding ${c.campaignParameters.symbolBaseToken} in pool`;
|
187
|
-
if (!aprs[poolAPRkey])
|
188
|
-
aprs[poolAPRkey] = 0;
|
189
|
-
aprs[poolAPRkey] += yearlyToken0Rewards / (poolBalanceToken0 * priceToken0);
|
190
|
-
// @Hugo wip: new way to structure aprBreakdowns
|
191
|
-
aprBreakdowns.push({
|
192
|
-
address: pool.id,
|
193
|
-
value: yearlyToken0Rewards / (poolBalanceToken0 * priceToken0),
|
194
|
-
type: EAprBreakdownType.TOKEN1,
|
195
|
-
label: c.campaignParameters.symbolBaseToken,
|
196
|
-
});
|
197
|
-
poolAPRkey = `APR for holding ${c.campaignParameters.symbolQuoteToken} in pool`;
|
198
|
-
if (!aprs[poolAPRkey])
|
199
|
-
aprs[poolAPRkey] = 0;
|
200
|
-
aprs[poolAPRkey] += yearlyToken1Rewards / (poolBalanceToken1 * priceToken1);
|
201
|
-
// @Hugo wip: new way to structure aprBreakdowns
|
202
|
-
aprBreakdowns.push({
|
203
|
-
address: pool.id,
|
204
|
-
value: yearlyToken1Rewards / (poolBalanceToken1 * priceToken1),
|
205
|
-
type: EAprBreakdownType.TOKEN2,
|
206
|
-
label: c.campaignParameters.symbolQuoteToken,
|
207
|
-
});
|
208
|
-
}
|
209
|
-
else {
|
210
|
-
}
|
211
|
-
}
|
212
|
-
dynamicData.push({
|
213
|
-
...campaign,
|
214
|
-
apr: distributionMeanAPR,
|
215
|
-
aprs,
|
216
|
-
forwarders: [],
|
217
|
-
poolBalanceToken0,
|
218
|
-
poolBalanceToken1,
|
219
|
-
poolTotalLiquidity,
|
220
|
-
tick: activeTick,
|
221
|
-
priceRewardToken: priceRewardToken,
|
222
|
-
tvl: poolBalanceToken0 * priceToken0 + poolBalanceToken1 * priceToken1,
|
223
|
-
});
|
224
|
-
}
|
225
|
-
}
|
226
|
-
}
|
227
|
-
return dynamicData;
|
228
|
-
},
|
229
|
-
},
|
230
|
-
};
|
231
|
-
}
|
232
|
-
// Fallback in case something fails
|
233
|
-
return {
|
234
|
-
cached: false,
|
235
|
-
call: {
|
236
|
-
callData: [],
|
237
|
-
handler: () => { },
|
238
|
-
reducer: async (_result) => {
|
239
|
-
return campaigns;
|
240
|
-
},
|
241
|
-
},
|
242
|
-
};
|
243
|
-
}
|
@@ -1,5 +0,0 @@
|
|
1
|
-
import { type Campaign, type CampaignDynamicData, type CampaignParameters, type MerklChainId } from "@sdk";
|
2
|
-
import type { UncachedResult } from "../../../utils/execute";
|
3
|
-
type campaignType = Campaign.BADGER;
|
4
|
-
export declare function BadgerDynamicData(chainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<UncachedResult<Partial<CampaignDynamicData<campaignType>[]>>>;
|
5
|
-
export {};
|
@@ -1,93 +0,0 @@
|
|
1
|
-
import { BN2Number, SortedCdpsInterface, YEAR, } from "@sdk";
|
2
|
-
import { log } from "../../../utils/logger";
|
3
|
-
import { Pricer } from "../../../utils/pricer";
|
4
|
-
import { CDPMANAGER_ADDRESS, EBTC_ADDRESS, SORTEDCDPS_ADDRESS } from "@/constants";
|
5
|
-
import { batchMulticallCallWithRetry } from "@/utils/generic";
|
6
|
-
import { CdpManagerInterface } from "../../../../libs/sdk/src/merkl/interface";
|
7
|
-
export async function BadgerDynamicData(chainId, campaigns) {
|
8
|
-
const pricer = await Pricer.load();
|
9
|
-
const calls = [];
|
10
|
-
calls.push({
|
11
|
-
allowFailure: false,
|
12
|
-
callData: CdpManagerInterface.encodeFunctionData("getSystemDebt"),
|
13
|
-
target: CDPMANAGER_ADDRESS,
|
14
|
-
});
|
15
|
-
return {
|
16
|
-
cached: false,
|
17
|
-
call: {
|
18
|
-
callData: calls,
|
19
|
-
handler: () => { },
|
20
|
-
reducer: async (result) => {
|
21
|
-
const dynamicData = [];
|
22
|
-
for (const campaign of campaigns) {
|
23
|
-
try {
|
24
|
-
// Blacklist management
|
25
|
-
let blacklistSupply = 0;
|
26
|
-
let calls = [];
|
27
|
-
for (const blacklisted of [
|
28
|
-
"0xFBC472DdbE6DaE23fc0771518d1791D06a52cf4D",
|
29
|
-
"0x690C74AF48BE029e763E61b4aDeB10E06119D3ba",
|
30
|
-
"0xD0A7A8B98957b9CD3cFB9c0425AbE44551158e9e",
|
31
|
-
"0x68682e8857D24A5Bb71fCd5C6Dc5867731226B62",
|
32
|
-
]) {
|
33
|
-
calls.push({
|
34
|
-
allowFailure: false,
|
35
|
-
callData: SortedCdpsInterface.encodeFunctionData("getCdpsOf", [blacklisted]),
|
36
|
-
target: SORTEDCDPS_ADDRESS,
|
37
|
-
});
|
38
|
-
}
|
39
|
-
const resCdps = await batchMulticallCallWithRetry(chainId, {
|
40
|
-
calls,
|
41
|
-
});
|
42
|
-
calls = [];
|
43
|
-
for (const res of resCdps) {
|
44
|
-
const cdp = SortedCdpsInterface.decodeFunctionResult("getCdpsOf", res.returnData)[0];
|
45
|
-
if (cdp.length !== 0) {
|
46
|
-
calls.push({
|
47
|
-
allowFailure: false,
|
48
|
-
callData: CdpManagerInterface.encodeFunctionData("Cdps", cdp),
|
49
|
-
target: CDPMANAGER_ADDRESS,
|
50
|
-
});
|
51
|
-
}
|
52
|
-
}
|
53
|
-
const resBlacklist = await batchMulticallCallWithRetry(chainId, {
|
54
|
-
calls,
|
55
|
-
});
|
56
|
-
for (const res of resBlacklist) {
|
57
|
-
const cdpBlacklistedSupply = CdpManagerInterface.decodeFunctionResult("Cdps", res.returnData)[0];
|
58
|
-
blacklistSupply += BN2Number(cdpBlacklistedSupply, campaign.campaignParameters.decimalsTargetToken);
|
59
|
-
}
|
60
|
-
const totalSupplyTargetToken = BN2Number(CdpManagerInterface.decodeFunctionResult("getSystemDebt", result[0])[0], campaign.campaignParameters.decimalsTargetToken) - blacklistSupply;
|
61
|
-
const priceRewardToken = (await pricer.get({
|
62
|
-
address: campaign.rewardToken,
|
63
|
-
chainId,
|
64
|
-
symbol: campaign.campaignParameters.symbolRewardToken,
|
65
|
-
})) ?? 0;
|
66
|
-
const priceTargetToken = (await pricer.get({
|
67
|
-
address: EBTC_ADDRESS,
|
68
|
-
chainId,
|
69
|
-
symbol: campaign.campaignParameters.symbolTargetToken,
|
70
|
-
})) ?? 0;
|
71
|
-
dynamicData.push({
|
72
|
-
...campaign,
|
73
|
-
apr: (priceRewardToken *
|
74
|
-
BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
|
75
|
-
YEAR *
|
76
|
-
100) /
|
77
|
-
campaign.campaignParameters.duration /
|
78
|
-
(totalSupplyTargetToken * priceTargetToken),
|
79
|
-
totalSupplyTargetToken,
|
80
|
-
tvl: totalSupplyTargetToken * priceTargetToken,
|
81
|
-
});
|
82
|
-
}
|
83
|
-
catch (e) {
|
84
|
-
log.error("Failed to fetch Dolomite data", e);
|
85
|
-
// In this case we return just the staticData
|
86
|
-
dynamicData.push({ ...campaign });
|
87
|
-
}
|
88
|
-
}
|
89
|
-
return dynamicData;
|
90
|
-
},
|
91
|
-
},
|
92
|
-
};
|
93
|
-
}
|
@@ -1,3 +0,0 @@
|
|
1
|
-
import { type Campaign, type CampaignDynamicData, type CampaignParameters, type MerklChainId } from "@sdk";
|
2
|
-
import type { UncachedResult } from "../../../utils/execute";
|
3
|
-
export declare function CLAMMDynamicData(chainId: MerklChainId, campaigns: CampaignParameters<Campaign.CLAMM>[]): Promise<UncachedResult<Partial<CampaignDynamicData<Campaign.CLAMM>[]>>>;
|