@merkl/api 0.20.106 → 0.20.109
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/constants.d.ts +1 -23
- package/dist/src/constants.js +1 -36
- package/dist/src/eden/index.d.ts +347 -226
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Ajna.js +1 -1
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Clamm.js +4 -4
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Compound.js +2 -2
- package/dist/src/engine/deprecated/dynamicData/implementations/CompoundV3.js +101 -0
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Dolomite.js +1 -1
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/ERC721.js +2 -2
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/ERCMultiToken.js +2 -2
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/EigenLayer.js +1 -1
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Erc20.d.ts +1 -1
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Erc20.js +10 -10
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Erc20Snapshot.js +1 -1
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/EventBased.js +2 -2
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Morpho.js +1 -1
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Radiant.js +3 -3
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Silo.js +2 -2
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/UniswapV4.js +2 -2
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Vest.js +2 -2
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchA51Strategies.js +2 -2
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getDolomiteMarkets.js +2 -2
- package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getEulerV2Vaults.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/GenericProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/factoryFinder.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/factoryFinder.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/hardcoded.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/hardcoded.js +1 -1
- package/dist/src/engine/deprecated/erc20SubTypeProcessors/helpers/ownerFinder.d.ts +2 -0
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/ownerFinder.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AaveProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AnglesLiquid.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AssetProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AssetProcessor.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AuraProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BEXRewardGaugeProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BeefyProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BunniV2Processor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/CompoundProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/ERC4626Processor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EnzymeProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EulerLendProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/FluidProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/FraxProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/FraxProcessor.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GammaALMProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GammaProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GearboxProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HoldStationProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HourglassProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/NoLinkVaultProcessor.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/PendleProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/PendleYTProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/RadiantProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/RfxProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/Satlayer.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpectraProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpectraProcessor.js +3 -3
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpectraYTProcessor.js +3 -3
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpliceProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TempestVaultProcessor.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TemplateProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TorosProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/UniswapProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/VicunaProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/WoofiProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/curveProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/curveProcessor.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/processorMapping.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/processorMapping.js +3 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/stakedCurveProcessor.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/xU308Processor.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesPrices.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesPrices.js +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound1.js +5 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound2.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound3.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound4.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/tokenTypeStruct.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/tokenTypeToProtocolAndAction.d.ts +1 -1
- package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/tokenTypeToProtocolAndAction.js +3 -1
- package/dist/src/engine/{opportunityMetadata/implementations/Ajna.d.ts → implementations/Ajna/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/Ajna.js → implementations/Ajna/metadata.js} +4 -3
- package/dist/src/engine/implementations/Ajna/tvl.d.ts +7 -0
- package/dist/src/engine/{campaignTVL/implementations/Ajna.js → implementations/Ajna/tvl.js} +9 -9
- package/dist/src/engine/{opportunityMetadata/implementations/Ambient.d.ts → implementations/Ambient/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/Ambient.js → implementations/Ambient/metadata.js} +2 -1
- package/dist/src/engine/{campaignTVL/implementations/Ambiant.d.ts → implementations/Ambient/tvl.d.ts} +3 -3
- package/dist/src/engine/{campaignTVL/implementations/Ambiant.js → implementations/Ambient/tvl.js} +2 -2
- package/dist/src/engine/{opportunityMetadata/implementations/Badger.d.ts → implementations/Badger/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/Badger.js → implementations/Badger/metadata.js} +2 -1
- package/dist/src/engine/{opportunityMetadata/implementations/Clamm.d.ts → implementations/Clamm/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/Clamm.js → implementations/Clamm/metadata.js} +2 -1
- package/dist/src/engine/{opportunityMetadata/implementations/Compound.d.ts → implementations/Compound/metadata.d.ts} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/Compound.js → implementations/Compound/metadata.js} +3 -2
- package/dist/src/engine/{opportunityMetadata/implementations/CompoundV3.d.ts → implementations/CompoundV3/metadata.d.ts} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/CompoundV3.js → implementations/CompoundV3/metadata.js} +4 -3
- package/dist/src/engine/implementations/Default/metadata.d.ts +13 -0
- package/dist/src/engine/{opportunityMetadata/implementations/Default.js → implementations/Default/metadata.js} +3 -2
- package/dist/src/engine/{opportunityMetadata/implementations/Dolomite.d.ts → implementations/Dolomite/metadata.d.ts} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/Dolomite.js → implementations/Dolomite/metadata.js} +3 -2
- package/dist/src/engine/{opportunityMetadata/implementations/EigenLayer.d.ts → implementations/EigenLayer/metadata.d.ts} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/EigenLayer.js → implementations/EigenLayer/metadata.js} +2 -1
- package/dist/src/engine/implementations/Encompassing/metadata.d.ts +16 -0
- package/dist/src/engine/{opportunityMetadata/implementations/Encompassing.js → implementations/Encompassing/metadata.js} +4 -3
- package/dist/src/engine/implementations/Erc20/metadata.d.ts +29 -0
- package/dist/src/engine/{opportunityMetadata/implementations/Erc20/index.js → implementations/Erc20/metadata.js} +19 -14
- package/dist/src/engine/{campaignTVL/implementations/Erc20/computeSubTypes.d.ts → implementations/Erc20/subTypes/detect.d.ts} +2 -2
- package/dist/src/engine/{campaignTVL/implementations/Erc20/computeSubTypes.js → implementations/Erc20/subTypes/detect.js} +6 -6
- package/dist/src/engine/implementations/Erc20/subTypes/factories.d.ts +5 -0
- package/dist/src/engine/implementations/Erc20/subTypes/factories.js +33 -0
- package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/metadata.d.ts +17 -0
- package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/metadata.js +21 -0
- package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/tvl.d.ts +6 -0
- package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/tvl.js +43 -0
- package/dist/src/engine/{campaignTVL/implementations/Erc20/Erc20SubType.d.ts → implementations/Erc20/subTypes/index.d.ts} +2 -0
- package/dist/src/engine/{campaignTVL/implementations/Erc20/Erc20SubType.js → implementations/Erc20/subTypes/index.js} +2 -0
- package/dist/src/engine/implementations/Erc20/tvl.d.ts +6 -0
- package/dist/src/engine/implementations/Erc20/tvl.js +98 -0
- package/dist/src/engine/implementations/Erc20Snapshot/metadata.d.ts +15 -0
- package/dist/src/engine/{opportunityMetadata/implementations/Erc20Snapshot.js → implementations/Erc20Snapshot/metadata.js} +2 -1
- package/dist/src/engine/implementations/Erc721/metadata.d.ts +17 -0
- package/dist/src/engine/{opportunityMetadata/implementations/ERC721.js → implementations/Erc721/metadata.js} +3 -2
- package/dist/src/engine/implementations/ErcMultiToken/metadata.d.ts +29 -0
- package/dist/src/engine/{opportunityMetadata/implementations/ERCMultiToken.js → implementations/ErcMultiToken/metadata.js} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/Euler.d.ts → implementations/Euler/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/Euler.js → implementations/Euler/metadata.js} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/EventBased.d.ts → implementations/EventBased/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/EventBased.js → implementations/EventBased/metadata.js} +2 -1
- package/dist/src/engine/{opportunityMetadata/implementations/Hyperdrive.d.ts → implementations/Hyperdrive/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/Hyperdrive.js → implementations/Hyperdrive/metadata.js} +3 -2
- package/dist/src/engine/{opportunityMetadata/implementations/Invalid.d.ts → implementations/Invalid/metadata.d.ts} +1 -1
- package/dist/src/engine/{opportunityMetadata/implementations/Ion.d.ts → implementations/Ion/metadata.d.ts} +4 -4
- package/dist/src/engine/{opportunityMetadata/implementations/Ion.js → implementations/Ion/metadata.js} +2 -1
- package/dist/src/engine/implementations/JsonAirdrop/metadata.d.ts +24 -0
- package/dist/src/engine/{opportunityMetadata/implementations/JsonAirdrop.js → implementations/JsonAirdrop/metadata.js} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/Morpho.d.ts → implementations/Morpho/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/Morpho.js → implementations/Morpho/metadata.js} +4 -1
- package/dist/src/engine/{opportunityMetadata/implementations/Radiant.d.ts → implementations/Radiant/metadata.d.ts} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/Radiant.js → implementations/Radiant/metadata.js} +4 -1
- package/dist/src/engine/{opportunityMetadata/implementations/Silo.d.ts → implementations/Silo/metadata.d.ts} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/Silo.js → implementations/Silo/metadata.js} +4 -1
- package/dist/src/engine/{opportunityMetadata/implementations/UniswapV4.d.ts → implementations/UniswapV4/metadata.d.ts} +4 -3
- package/dist/src/engine/{opportunityMetadata/implementations/UniswapV4.js → implementations/UniswapV4/metadata.js} +2 -1
- package/dist/src/engine/implementations/UniswapV4/tvl.d.ts +7 -0
- package/dist/src/engine/{campaignTVL/implementations/UniswapV4.js → implementations/UniswapV4/tvl.js} +11 -11
- package/dist/src/engine/{opportunityMetadata/implementations/Vest.d.ts → implementations/Vest/metadata.d.ts} +5 -4
- package/dist/src/engine/{opportunityMetadata/implementations/Vest.js → implementations/Vest/metadata.js} +3 -2
- package/dist/src/engine/metadata/factory.js +71 -0
- package/dist/src/engine/tvl/factory.d.ts +3 -0
- package/dist/src/engine/tvl/factory.js +23 -0
- package/dist/src/hooks/checkQueryAddressValidity.js +1 -1
- package/dist/src/hooks/checkQueryChainIdValidity.js +1 -1
- package/dist/src/index.d.ts +123 -80
- package/dist/src/jobs/dynamic-data.js +1 -1
- package/dist/src/jobs/update-analytics.js +290 -34
- package/dist/src/jobs/update-euler-vaults.js +1 -1
- package/dist/src/libs/computeFee.js +1 -1
- package/dist/src/libs/deprecated-merklv3/index.js +1 -1
- package/dist/src/libs/getTokensList.js +1 -1
- package/dist/src/libs/merklChainData.js +1 -1
- package/dist/src/libs/positions/EigenLayer/index.d.ts +1 -1
- package/dist/src/libs/positions/ajna/index.d.ts +1 -1
- package/dist/src/libs/positions/badger/index.d.ts +1 -1
- package/dist/src/libs/positions/clamm/index.js +3 -3
- package/dist/src/libs/positions/clamm/thegraph/fetchAlmPositions.js +1 -1
- package/dist/src/libs/positions/clamm/thegraph/fetchAmmPositions.js +1 -1
- package/dist/src/libs/positions/clamm/thegraph/fetchFarmedPositions.js +1 -1
- package/dist/src/libs/positions/compound/index.d.ts +1 -1
- package/dist/src/libs/positions/dolomite/index.d.ts +1 -1
- package/dist/src/libs/positions/erc20/index.d.ts +1 -1
- package/dist/src/libs/positions/erc20/index.js +0 -1
- package/dist/src/libs/positions/euler/index.d.ts +1 -1
- package/dist/src/libs/positions/euler/index.js +0 -1
- package/dist/src/libs/positions/index.js +1 -1
- package/dist/src/libs/positions/morpho/index.d.ts +1 -1
- package/dist/src/libs/positions/prepareFetch.js +1 -1
- package/dist/src/libs/positions/silo/index.d.ts +1 -1
- package/dist/src/libs/tokens/balances.d.ts +1 -1
- package/dist/src/libs/tokens/balances.js +1 -1
- package/dist/src/modules/v4/campaign/campaign.controller.d.ts +42 -15
- package/dist/src/modules/v4/campaign/campaign.repository.d.ts +7 -9
- package/dist/src/modules/v4/campaign/campaign.repository.js +20 -27
- package/dist/src/modules/v4/campaign/campaign.service.d.ts +47 -17
- package/dist/src/modules/v4/campaign/campaign.service.js +51 -38
- package/dist/src/modules/v4/campaign/campaign.test.controller.d.ts +67 -22
- package/dist/src/modules/v4/campaign/campaign.test.controller.js +32 -9
- package/dist/src/modules/v4/chain/chain.controller.d.ts +3 -1
- package/dist/src/modules/v4/chain/chain.repository.d.ts +8 -2
- package/dist/src/modules/v4/chain/chain.repository.js +1 -2
- package/dist/src/modules/v4/chain/chain.service.d.ts +16 -2
- package/dist/src/modules/v4/chain/chain.service.js +3 -3
- package/dist/src/modules/v4/dynamicData/dynamicData.service.js +49 -13
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +4 -4
- package/dist/src/modules/v4/opportunity/opportunity.converter.d.ts +2 -1
- package/dist/src/modules/v4/opportunity/opportunity.converter.js +1 -1
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +8 -8
- package/dist/src/modules/v4/opportunity/opportunity.service.js +16 -32
- package/dist/src/modules/v4/programPayload/programPayload.controller.d.ts +7 -7
- package/dist/src/modules/v4/programPayload/programPayload.model.d.ts +3 -3
- package/dist/src/modules/v4/programPayload/programPayload.model.js +2 -2
- package/dist/src/modules/v4/programPayload/programPayload.repository.d.ts +279 -4
- package/dist/src/modules/v4/programPayload/programPayload.repository.js +295 -3
- package/dist/src/modules/v4/protocol/protocol.model.d.ts +1 -1
- package/dist/src/modules/v4/protocol/protocol.model.js +1 -0
- package/dist/src/modules/v4/router.d.ts +123 -80
- package/dist/src/modules/v4/router.js +0 -2
- package/dist/src/modules/v4/uniswap/uniswap.service.js +1 -1
- package/dist/src/routes/v3/campaigns.js +3 -3
- package/dist/src/routes/v3/compoundV2.js +1 -1
- package/dist/src/routes/v3/createCampaign.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/fetch.js +1 -1
- package/dist/src/routes/v3/lostyield.js +3 -3
- package/dist/src/routes/v3/merkl.js +2 -2
- package/dist/src/routes/v3/multiChainPositions.js +1 -1
- package/dist/src/routes/v3/overview.js +1 -1
- package/dist/src/routes/v3/poolInfo.js +2 -2
- package/dist/src/routes/v3/rewardsReport.js +1 -1
- package/dist/src/scripts/reparse-opportunities.js +5 -3
- package/dist/src/utils/decodeCalls.d.ts +1 -1
- package/dist/src/utils/decodeCalls.js +3 -1
- package/dist/src/utils/encodeCalls.d.ts +1 -1
- package/dist/src/utils/encodeCalls.js +3 -1
- package/dist/src/utils/error.d.ts +6 -6
- package/dist/src/utils/generateCardName.d.ts +1 -1
- package/dist/src/utils/generateCardName.js +3 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/src/engine/campaignTVL/factory.d.ts +0 -3
- package/dist/src/engine/campaignTVL/factory.js +0 -23
- package/dist/src/engine/campaignTVL/implementations/Ajna.d.ts +0 -7
- package/dist/src/engine/campaignTVL/implementations/Erc20/factory.d.ts +0 -3
- package/dist/src/engine/campaignTVL/implementations/Erc20/factory.js +0 -13
- package/dist/src/engine/campaignTVL/implementations/Erc20/index.d.ts +0 -6
- package/dist/src/engine/campaignTVL/implementations/Erc20/index.js +0 -34
- package/dist/src/engine/campaignTVL/implementations/UniswapV4.d.ts +0 -7
- package/dist/src/engine/dynamicData/implementations/CompoundV3.js +0 -69
- package/dist/src/engine/erc20SubTypeProcessors/helpers/ownerFinder.d.ts +0 -2
- package/dist/src/engine/opportunityMetadata/factory.js +0 -71
- package/dist/src/engine/opportunityMetadata/implementations/Default.d.ts +0 -13
- package/dist/src/engine/opportunityMetadata/implementations/ERC721.d.ts +0 -16
- package/dist/src/engine/opportunityMetadata/implementations/ERCMultiToken.d.ts +0 -28
- package/dist/src/engine/opportunityMetadata/implementations/Encompassing.d.ts +0 -15
- package/dist/src/engine/opportunityMetadata/implementations/Erc20/index.d.ts +0 -18
- package/dist/src/engine/opportunityMetadata/implementations/Erc20Snapshot.d.ts +0 -14
- package/dist/src/engine/opportunityMetadata/implementations/JsonAirdrop.d.ts +0 -23
- package/dist/src/entities/campaign.d.ts +0 -58
- package/dist/src/entities/campaign.js +0 -136
- package/dist/src/modules/v4/dynamicData/dynamicData.controller.d.ts +0 -51
- package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +0 -19
- package/dist/src/modules/v4/dynamicData/dynamicData.repository.d.ts +0 -0
- package/dist/src/modules/v4/dynamicData/dynamicData.repository.js +0 -1
- package/dist/src/types/returnTypes.d.ts +0 -19
- package/dist/src/types/returnTypes.js +0 -1
- package/dist/src/types/utils.d.ts +0 -5
- package/dist/src/types/utils.js +0 -1
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/factory.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/factory.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Ajna.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Badger.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Badger.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Clamm.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Compound.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/CompoundV3.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Dolomite.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/ERC721.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/ERCMultiToken.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/EigenLayer.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Encompassing.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Encompassing.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Erc20Snapshot.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/EventBased.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Hyperdrive.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Hyperdrive.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Morpho.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Radiant.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Silo.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/UniswapV4.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/Vest.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/default.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/implementations/default.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchA51Strategies.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchClamInfo.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchClamInfo.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchLogs.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/fetchLogs.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getCompV2ForksVaults.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getCompV2ForksVaults.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getContractCreationBlock.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getContractCreationBlock.js +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getDolomiteMarkets.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getEulerV2Vaults.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getFixedApr.d.ts +0 -0
- /package/dist/src/engine/{dynamicData → deprecated/dynamicData}/utils/getFixedApr.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/GenericProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/eulerVaultNames.d.ts +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/eulerVaultNames.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.d.ts +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/getBlacklistedSupply.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/metamorphoTvl.d.ts +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/metamorphoTvl.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/spliceTVL.d.ts +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/helpers/spliceTVL.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AaveProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AnglesLiquid.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/AuraProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BEXRewardGaugeProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerGaugeProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerPoolProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BalancerV3PoolProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BeefyProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/BunniV2Processor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/CompoundProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/ERC4626Processor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EnzymeProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EqualizerGaugeProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EulerBorrowProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/EulerLendProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/FluidProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GammaALMProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GammaProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/GearboxProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HanjiVaultProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HoldStationProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/HourglassProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/MaverickBPProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/MetamorphoProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/PendleProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/PendleYTProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/RadiantProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/RfxProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/Satlayer.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SpliceProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/SturdySiloProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TemplateProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/TorosProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/UniswapProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/VicunaProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/WoofiProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/ZkSwapThreePoolProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/curveNPoolProcessor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/implementations/xU308Processor.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound1.d.ts +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound2.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound3.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/subtypesRound4.js +0 -0
- /package/dist/src/engine/{erc20SubTypeProcessors → deprecated/erc20SubTypeProcessors}/tokenTypeStruct.js +0 -0
- /package/dist/src/engine/{opportunityMetadata/implementations/Invalid.js → implementations/Invalid/metadata.js} +0 -0
- /package/dist/src/engine/{opportunityMetadata → metadata}/factory.d.ts +0 -0
@@ -0,0 +1,98 @@
|
|
1
|
+
import { Erc20DynamicData } from "@/engine/deprecated/dynamicData/implementations/Erc20";
|
2
|
+
import { detectSubType } from "@/engine/implementations/Erc20/subTypes/detect";
|
3
|
+
import { log } from "@/utils/logger";
|
4
|
+
import { BN2Number, ChainInteractionService, ERC20Interface } from "@sdk";
|
5
|
+
import { erc20SubTypeTVLBuilderFactory } from "./subTypes/factories";
|
6
|
+
export class Erc20TVLBuilder {
|
7
|
+
async build(computeChainId, campaigns) {
|
8
|
+
const subTypes = await detectSubType(computeChainId, campaigns);
|
9
|
+
let tvls = [];
|
10
|
+
const promises = [];
|
11
|
+
const processSubtype = async (subType) => {
|
12
|
+
const builder = erc20SubTypeTVLBuilderFactory(subType);
|
13
|
+
const campaignsOfSubType = campaigns.filter((_campaign, index) => subTypes[index] === subType);
|
14
|
+
if (!!builder) {
|
15
|
+
log.info(`building TVLs for subtype ${subType}`);
|
16
|
+
const subTypeTVLs = await builder.build(computeChainId, campaignsOfSubType);
|
17
|
+
// Impact blacklist or whitelist
|
18
|
+
const calls = [];
|
19
|
+
for (const { campaign } of subTypeTVLs) {
|
20
|
+
const { campaignParameters } = campaign;
|
21
|
+
const { targetToken, whitelist, blacklist } = campaignParameters;
|
22
|
+
if (whitelist?.length > 0) {
|
23
|
+
calls.push({
|
24
|
+
allowFailure: true,
|
25
|
+
callData: ERC20Interface.encodeFunctionData("totalSupply"),
|
26
|
+
target: targetToken,
|
27
|
+
});
|
28
|
+
for (const address of whitelist) {
|
29
|
+
calls.push({
|
30
|
+
allowFailure: true,
|
31
|
+
callData: ERC20Interface.encodeFunctionData("balanceOf", [address]),
|
32
|
+
target: targetToken,
|
33
|
+
});
|
34
|
+
}
|
35
|
+
}
|
36
|
+
if (blacklist?.length > 0) {
|
37
|
+
calls.push({
|
38
|
+
allowFailure: true,
|
39
|
+
callData: ERC20Interface.encodeFunctionData("totalSupply"),
|
40
|
+
target: targetToken,
|
41
|
+
});
|
42
|
+
for (const address of blacklist) {
|
43
|
+
calls.push({
|
44
|
+
allowFailure: true,
|
45
|
+
callData: ERC20Interface.encodeFunctionData("balanceOf", [address]),
|
46
|
+
target: targetToken,
|
47
|
+
});
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
const result = await ChainInteractionService(computeChainId).fetchState(calls);
|
52
|
+
let index = 0;
|
53
|
+
for (const [i, { campaign }] of subTypeTVLs.entries()) {
|
54
|
+
const { campaignParameters } = campaign;
|
55
|
+
const { whitelist, blacklist } = campaignParameters;
|
56
|
+
if (whitelist?.length > 0) {
|
57
|
+
const totalSupply = BigInt(ERC20Interface.decodeFunctionResult("totalSupply", result[index++].returnData)[0].toString());
|
58
|
+
let whitelistedSupply = 0n;
|
59
|
+
for (const _address of whitelist) {
|
60
|
+
whitelistedSupply += BigInt(ERC20Interface.decodeFunctionResult("balanceOf", result[index++].returnData)[0].toString());
|
61
|
+
}
|
62
|
+
subTypeTVLs[i].tvl *= BN2Number((whitelistedSupply * 10n ** 6n) / totalSupply, 6);
|
63
|
+
}
|
64
|
+
if (blacklist?.length > 0) {
|
65
|
+
const totalSupply = BigInt(ERC20Interface.decodeFunctionResult("totalSupply", result[index++].returnData)[0].toString());
|
66
|
+
let blacklistedSupply = totalSupply;
|
67
|
+
for (const _address of blacklist) {
|
68
|
+
blacklistedSupply -= BigInt(ERC20Interface.decodeFunctionResult("balanceOf", result[index++].returnData)[0].toString());
|
69
|
+
}
|
70
|
+
subTypeTVLs[i].tvl *= BN2Number((blacklistedSupply * 10n ** 6n) / totalSupply, 6);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
tvls = tvls.concat(subTypeTVLs);
|
74
|
+
}
|
75
|
+
else {
|
76
|
+
// @deprecated In case we don't have the new builder, use the old erc20 dynamic data
|
77
|
+
const dynamicDataList = await new Erc20DynamicData().build(computeChainId, campaignsOfSubType);
|
78
|
+
if (dynamicDataList.length !== campaignsOfSubType.length) {
|
79
|
+
throw new Error("Erc20TVLBuilder: dynamicDataList.length !== campaignsOfSubType.length");
|
80
|
+
}
|
81
|
+
for (const [index, dynamicData] of dynamicDataList.entries()) {
|
82
|
+
tvls.push({
|
83
|
+
campaign: campaignsOfSubType[index],
|
84
|
+
tvl: dynamicData.tvl,
|
85
|
+
displayTvl: dynamicData.displayTvl ?? undefined,
|
86
|
+
tvlBreakdown: [],
|
87
|
+
});
|
88
|
+
}
|
89
|
+
}
|
90
|
+
return;
|
91
|
+
};
|
92
|
+
for (const subType of new Set(subTypes)) {
|
93
|
+
promises.push(processSubtype(subType));
|
94
|
+
}
|
95
|
+
await Promise.allSettled(promises);
|
96
|
+
return tvls;
|
97
|
+
}
|
98
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
3
|
+
import type { Campaign as CampaignEnum } from "@sdk";
|
4
|
+
type campaignType = CampaignEnum.ERC20_SNAPSHOT;
|
5
|
+
export declare class Erc20SnapshotMetadata implements MetadataBuilder<campaignType> {
|
6
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
|
+
name: string;
|
8
|
+
action: "DROP";
|
9
|
+
tokens: {
|
10
|
+
chainId: number;
|
11
|
+
address: any;
|
12
|
+
}[];
|
13
|
+
}>;
|
14
|
+
}
|
15
|
+
export {};
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { OpportunityAction } from "@db/api";
|
2
2
|
export class Erc20SnapshotMetadata {
|
3
|
-
async build(
|
3
|
+
async build(campaign) {
|
4
|
+
const { params, computeChainId } = campaign;
|
4
5
|
return {
|
5
6
|
name: ["Get", params.symbolTargetToken, "airdrop"].join(" "),
|
6
7
|
action: OpportunityAction.DROP,
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
3
|
+
import type { Campaign as CampaignEnum } from "@sdk";
|
4
|
+
type campaignType = CampaignEnum.ERC721 | CampaignEnum.ERC721FIXAPR;
|
5
|
+
export declare class Erc721Metadata implements MetadataBuilder<campaignType> {
|
6
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
|
+
action: "HOLD";
|
8
|
+
name: string;
|
9
|
+
tokens: {
|
10
|
+
chainId: number;
|
11
|
+
address: any;
|
12
|
+
}[];
|
13
|
+
mainProtocol: undefined;
|
14
|
+
depositUrl: undefined;
|
15
|
+
}>;
|
16
|
+
}
|
17
|
+
export {};
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { OpportunityAction } from "@db/api";
|
2
|
-
export class
|
3
|
-
async build(
|
2
|
+
export class Erc721Metadata {
|
3
|
+
async build(campaign) {
|
4
|
+
const { params, computeChainId } = campaign;
|
4
5
|
return {
|
5
6
|
action: OpportunityAction.HOLD,
|
6
7
|
name: `Hold ${params.symbolTargetToken}`,
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
2
|
+
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
3
|
+
import { type Campaign as CampaignEnum } from "@sdk";
|
4
|
+
import type { MetadataBuilder } from "../../metadata/interface";
|
5
|
+
type campaignType = CampaignEnum.ERC1155 | CampaignEnum.ERC1155FIXAPR | CampaignEnum.ERC6909 | CampaignEnum.ERC6909FIXAPR;
|
6
|
+
export declare class ErcMultiTokenMetadata implements MetadataBuilder<campaignType> {
|
7
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
8
|
+
action: "HOLD";
|
9
|
+
name: string;
|
10
|
+
tokens: {
|
11
|
+
chainId: number;
|
12
|
+
address: any;
|
13
|
+
}[];
|
14
|
+
explorerAddress: any;
|
15
|
+
mainProtocol: ProtocolId;
|
16
|
+
depositUrl: string;
|
17
|
+
} | {
|
18
|
+
action: "HOLD";
|
19
|
+
name: string;
|
20
|
+
tokens: {
|
21
|
+
chainId: number;
|
22
|
+
address: any;
|
23
|
+
}[];
|
24
|
+
explorerAddress: any;
|
25
|
+
mainProtocol: undefined;
|
26
|
+
depositUrl: undefined;
|
27
|
+
}>;
|
28
|
+
}
|
29
|
+
export {};
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import { OpportunityAction } from "@db/api";
|
2
|
-
import { ChainInteractionService, TokenInteractionService
|
2
|
+
import { ChainInteractionService, TokenInteractionService } from "@sdk";
|
3
3
|
import { utils } from "ethers";
|
4
|
-
export class
|
5
|
-
async build(
|
6
|
-
const {
|
4
|
+
export class ErcMultiTokenMetadata {
|
5
|
+
async build(campaign) {
|
6
|
+
const { params, computeChainId } = campaign;
|
7
|
+
const { tokenId, targetToken } = params;
|
7
8
|
// Sonic Market Case
|
8
9
|
try {
|
9
10
|
const BOOK_MANAGER = "0xD4aD5Ed9E1436904624b6dB8B1BE31f36317C636";
|
@@ -1,12 +1,13 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
3
|
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
2
4
|
import { Campaign as CampaignEnum, type CampaignParameters, type ChainId } from "@sdk";
|
3
|
-
import type { MetadataBuilder } from "../interface";
|
4
5
|
type campaignType = CampaignEnum.EULER;
|
5
6
|
export declare class EulerMetadata implements MetadataBuilder<campaignType> {
|
6
|
-
build(
|
7
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
8
|
name: string;
|
8
9
|
tokens: {
|
9
|
-
chainId:
|
10
|
+
chainId: number;
|
10
11
|
address: any;
|
11
12
|
}[];
|
12
13
|
action: "LEND" | "BORROW";
|
@@ -1,17 +1,18 @@
|
|
1
|
-
import { dynamicDataBuilderFactory } from "@/engine/dynamicData/factory";
|
1
|
+
import { dynamicDataBuilderFactory } from "@/engine/deprecated/dynamicData/factory";
|
2
2
|
import { log } from "@/utils/logger";
|
3
3
|
import { sanitizeChainName } from "@/utils/sanitizeChain";
|
4
4
|
import { OpportunityAction } from "@db/api";
|
5
5
|
import { Campaign as CampaignEnum } from "@sdk";
|
6
6
|
import { getAddress } from "viem";
|
7
7
|
export class EulerMetadata {
|
8
|
-
async build(
|
8
|
+
async build(campaign) {
|
9
|
+
const { params, computeChainId, campaignId, rewardToken, distributionChainId, subType } = campaign;
|
9
10
|
let name = `Hold ${params.symbolTargetToken}`;
|
10
11
|
try {
|
11
12
|
const [dynamicData] = await dynamicDataBuilderFactory(CampaignEnum.EULER).build(computeChainId, [
|
12
13
|
{
|
13
14
|
campaignId,
|
14
|
-
rewardToken:
|
15
|
+
rewardToken: rewardToken.address,
|
15
16
|
amount: "1",
|
16
17
|
chainId: distributionChainId,
|
17
18
|
computeChainId,
|
@@ -29,7 +30,7 @@ export class EulerMetadata {
|
|
29
30
|
{ chainId: computeChainId, address: params.targetToken },
|
30
31
|
{ chainId: computeChainId, address: params.addressAsset },
|
31
32
|
],
|
32
|
-
action: [OpportunityAction.LEND, OpportunityAction.BORROW, OpportunityAction.BORROW][subType],
|
33
|
+
action: [OpportunityAction.LEND, OpportunityAction.BORROW, OpportunityAction.BORROW][subType ?? 0],
|
33
34
|
mainProtocol: "euler",
|
34
35
|
depositUrl: EulerMetadata.generateUrl(computeChainId, params),
|
35
36
|
explorerAddress: getAddress(params.targetToken),
|
@@ -1,12 +1,13 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
3
|
import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
|
2
|
-
import type { MetadataBuilder } from "../interface";
|
3
4
|
type campaignType = CampaignEnum.EVENT_BASED;
|
4
5
|
export declare class EventBasedMetadata implements MetadataBuilder<campaignType> {
|
5
|
-
build(
|
6
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
6
7
|
action: "SWAP";
|
7
8
|
name: string;
|
8
9
|
tokens: {
|
9
|
-
chainId:
|
10
|
+
chainId: number;
|
10
11
|
address: any;
|
11
12
|
}[];
|
12
13
|
mainProtocol: "hanji";
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { capitalize } from "@/utils/caseChanges";
|
2
2
|
export class EventBasedMetadata {
|
3
|
-
async build(
|
3
|
+
async build(campaign) {
|
4
|
+
const { params, computeChainId } = campaign;
|
4
5
|
try {
|
5
6
|
const action = "SWAP";
|
6
7
|
const mainProtocolId = "hanji";
|
@@ -1,13 +1,14 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
3
|
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
2
4
|
import { type Campaign as CampaignEnum, type CampaignParameters, type ChainId } from "@sdk";
|
3
|
-
import type { MetadataBuilder } from "../interface";
|
4
5
|
type campaignType = CampaignEnum.HYPERDRIVELOGPROCESSOR | CampaignEnum.HYPERDRIVELOGFIXPROCESSOR;
|
5
6
|
export declare class HyperdriveMetadata implements MetadataBuilder<campaignType> {
|
6
|
-
build(
|
7
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
8
|
action: "POOL" | "LONG" | "SHORT";
|
8
9
|
name: string;
|
9
10
|
tokens: {
|
10
|
-
chainId:
|
11
|
+
chainId: number;
|
11
12
|
address: any;
|
12
13
|
}[];
|
13
14
|
mainProtocol: ProtocolId;
|
@@ -2,13 +2,14 @@ import { OpportunityAction } from "@db/api";
|
|
2
2
|
import { HyperDriveSubCampaignType } from "@sdk";
|
3
3
|
import { getAddress } from "viem";
|
4
4
|
export class HyperdriveMetadata {
|
5
|
-
async build(
|
5
|
+
async build(campaign) {
|
6
|
+
let { params, computeChainId, subType } = campaign;
|
6
7
|
const subtypes = [
|
7
8
|
{ name: "Add Liquidity on", action: OpportunityAction.POOL },
|
8
9
|
{ name: "Open Long on", action: OpportunityAction.LONG },
|
9
10
|
{ name: "Open Short on", action: OpportunityAction.SHORT },
|
10
11
|
];
|
11
|
-
if (subType === HyperDriveSubCampaignType.LP) {
|
12
|
+
if (!subType || subType === HyperDriveSubCampaignType.LP) {
|
12
13
|
subType = 0;
|
13
14
|
}
|
14
15
|
const subtypeData = subtypes[subType];
|
@@ -1,5 +1,5 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
1
2
|
import type { Campaign as CampaignEnum } from "@sdk";
|
2
|
-
import type { MetadataBuilder } from "../interface";
|
3
3
|
type campaignType = CampaignEnum.INVALID;
|
4
4
|
export declare class InvalidMetadata implements MetadataBuilder<campaignType> {
|
5
5
|
build(): Promise<{
|
@@ -1,14 +1,14 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
3
|
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
2
4
|
import type { Campaign as CampaignEnum } from "@sdk";
|
3
|
-
import type { CampaignParameters, ChainId } from "@sdk";
|
4
|
-
import type { MetadataBuilder } from "../interface";
|
5
5
|
type campaignType = CampaignEnum.ION;
|
6
6
|
export declare class IonMetadata implements MetadataBuilder<campaignType> {
|
7
|
-
build(
|
7
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
8
8
|
action: "LEND";
|
9
9
|
name: string;
|
10
10
|
tokens: {
|
11
|
-
chainId:
|
11
|
+
chainId: number;
|
12
12
|
address: any;
|
13
13
|
}[];
|
14
14
|
mainProtocol: ProtocolId;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { OpportunityAction } from "@db/api";
|
2
2
|
export class IonMetadata {
|
3
|
-
async build(
|
3
|
+
async build(campaign) {
|
4
|
+
const { params, computeChainId } = campaign;
|
4
5
|
// TODO this is not finalized at all
|
5
6
|
return {
|
6
7
|
action: OpportunityAction.LEND,
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
3
|
+
import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
|
4
|
+
type campaignType = CampaignEnum.JSON_AIRDROP;
|
5
|
+
export declare class JsonAirdropMetadata implements MetadataBuilder<campaignType> {
|
6
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
|
+
action: "DROP";
|
8
|
+
name: string;
|
9
|
+
tokens: {
|
10
|
+
chainId: number;
|
11
|
+
address: string;
|
12
|
+
}[];
|
13
|
+
mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "aura" | "poolside" | "gearbox" | "filament" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fraxlend" | "fenix" | "ra" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "toros" | "akron" | "enzyme" | "dragonswap" | "koi" | "rfx" | "woofi" | "pendle" | "zkSwapThreePool" | "maha" | "tempest" | "holdstation" | "venus" | "reactor_fusion" | "vicuna" | "curveNPool" | "satlayer" | "veda" | "cian" | "concrete" | "hourglass" | "katana" | "gamma" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "balancer" | "cross_curve" | "neptune" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "ironclad" | "sturdy" | "frax" | "silo" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "oku" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "angles" | "bunni" | "beratrax" | "yei" | "gammaswap" | "uranium" | undefined;
|
14
|
+
depositUrl?: undefined;
|
15
|
+
} | {
|
16
|
+
action: "DROP";
|
17
|
+
name: string;
|
18
|
+
tokens: never[];
|
19
|
+
mainProtocol: "splice" | "morpho" | "quickswap" | "euler" | "aura" | "poolside" | "gearbox" | "filament" | "fluid" | "compound" | "ionic" | "layerbank" | "moonwell" | "fraxlend" | "fenix" | "ra" | "syncswap" | "beefy" | "aerodrome" | "velodrome" | "curve" | "toros" | "akron" | "enzyme" | "dragonswap" | "koi" | "rfx" | "woofi" | "pendle" | "zkSwapThreePool" | "maha" | "tempest" | "holdstation" | "venus" | "reactor_fusion" | "vicuna" | "curveNPool" | "satlayer" | "veda" | "cian" | "concrete" | "hourglass" | "katana" | "gamma" | "uniswap" | "ambient" | "arthswap" | "base-swap" | "camelot" | "crust" | "horiza" | "izumi" | "kim" | "pancake-swap" | "ramses" | "retro" | "stryke" | "sushi-swap" | "swapr" | "thruster" | "voltage" | "zero" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "balancer" | "cross_curve" | "neptune" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "ironclad" | "sturdy" | "frax" | "silo" | "dolomite" | "badger" | "ajna" | "ion" | "eigenlayer" | "vest" | "zerolend" | "lnd" | "hyperdrive" | "oku" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "iguana" | "xlend" | "sake" | "sonicmarket" | "angles" | "bunni" | "beratrax" | "yei" | "gammaswap" | "uranium" | undefined;
|
20
|
+
depositUrl: any;
|
21
|
+
}>;
|
22
|
+
static generateUrl(_computeChainId: ChainId, params: CampaignParameters<campaignType>["campaignParameters"]): any;
|
23
|
+
}
|
24
|
+
export {};
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { log } from "@/utils/logger";
|
2
2
|
import { OpportunityAction } from "@db/api";
|
3
3
|
export class JsonAirdropMetadata {
|
4
|
-
async build(
|
4
|
+
async build(campaign) {
|
5
|
+
const { params, computeChainId, creatorAddress } = campaign;
|
5
6
|
const ACI = "0xdeadD8aB03075b7FBA81864202a2f59EE25B312b".toLowerCase();
|
6
7
|
const aaveDAO = "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A".toLowerCase();
|
7
|
-
const aciPrefix =
|
8
|
-
const aavePrefix =
|
8
|
+
const aciPrefix = creatorAddress.toLowerCase() === ACI && "Get Merit rewards -";
|
9
|
+
const aavePrefix = creatorAddress.toLowerCase() === aaveDAO && "Get aAMPL distribution -";
|
9
10
|
const prefix = aavePrefix ? aavePrefix : aciPrefix ? aciPrefix : "Get airdrop in";
|
10
11
|
let tokenAddress;
|
11
12
|
try {
|
@@ -1,13 +1,14 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
3
|
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
2
4
|
import { type Campaign as CampaignEnum, type CampaignParameters, ChainId } from "@sdk";
|
3
5
|
import type { BigNumberish } from "ethers";
|
4
|
-
import type { MetadataBuilder } from "../interface";
|
5
6
|
type campaignType = CampaignEnum.MORPHO;
|
6
7
|
export declare class MorphoMetadata implements MetadataBuilder<campaignType> {
|
7
|
-
build(
|
8
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
8
9
|
action: "LEND" | "BORROW";
|
9
10
|
tokens: {
|
10
|
-
chainId:
|
11
|
+
chainId: number;
|
11
12
|
address: any;
|
12
13
|
}[];
|
13
14
|
name: string;
|
@@ -2,7 +2,10 @@ import { OpportunityAction } from "@db/api";
|
|
2
2
|
import { BN2Number, ChainId, MorphoSubCampaignType, NETWORK_LABELS, } from "@sdk";
|
3
3
|
import { getAddress } from "viem";
|
4
4
|
export class MorphoMetadata {
|
5
|
-
async build(
|
5
|
+
async build(campaign) {
|
6
|
+
let { params, computeChainId, subType } = campaign;
|
7
|
+
if (!subType)
|
8
|
+
subType = 0;
|
6
9
|
const morphoParams = params;
|
7
10
|
const market = `${morphoParams.symbolLoanToken}/${morphoParams.symbolBorrowToken} ${morphoParams?.LLTV && BN2Number(morphoParams?.LLTV, 16)}%`;
|
8
11
|
const subtypes = [
|
@@ -1,13 +1,14 @@
|
|
1
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
2
|
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
2
|
-
import { type Campaign as CampaignEnum
|
3
|
-
import type { MetadataBuilder } from "
|
3
|
+
import { type Campaign as CampaignEnum } from "@sdk";
|
4
|
+
import type { MetadataBuilder } from "../../metadata/interface";
|
4
5
|
type campaignType = CampaignEnum.RADIANT;
|
5
6
|
export declare class RadiantMetadata implements MetadataBuilder<campaignType> {
|
6
|
-
build(
|
7
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
8
|
action: "LEND" | "BORROW";
|
8
9
|
name: string;
|
9
10
|
tokens: {
|
10
|
-
chainId:
|
11
|
+
chainId: number;
|
11
12
|
address: any;
|
12
13
|
}[];
|
13
14
|
mainProtocol: ProtocolId;
|
@@ -3,7 +3,10 @@ import { OpportunityAction } from "@db/api";
|
|
3
3
|
import { ChainInteractionService, NETWORK_LABELS, RadiantInterface, } from "@sdk";
|
4
4
|
import { getAddress } from "viem";
|
5
5
|
export class RadiantMetadata {
|
6
|
-
async build(
|
6
|
+
async build(campaign) {
|
7
|
+
let { params, computeChainId, subType } = campaign;
|
8
|
+
if (!subType)
|
9
|
+
subType = 0;
|
7
10
|
const tokens = [{ chainId: computeChainId, address: params.targetToken }];
|
8
11
|
try {
|
9
12
|
const result = await ChainInteractionService(computeChainId).fetchState([
|
@@ -1,13 +1,14 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
3
|
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
2
|
-
import type { Campaign as CampaignEnum
|
3
|
-
import type { MetadataBuilder } from "../interface";
|
4
|
+
import type { Campaign as CampaignEnum } from "@sdk";
|
4
5
|
type campaignType = CampaignEnum.SILO;
|
5
6
|
export declare class SiloMetadata implements MetadataBuilder<campaignType> {
|
6
|
-
build(
|
7
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
8
|
action: "LEND" | "BORROW";
|
8
9
|
name: string;
|
9
10
|
tokens: {
|
10
|
-
chainId:
|
11
|
+
chainId: number;
|
11
12
|
address: any;
|
12
13
|
}[];
|
13
14
|
mainProtocol: ProtocolId;
|
@@ -1,7 +1,10 @@
|
|
1
1
|
import { OpportunityAction } from "@db/api";
|
2
2
|
import { getAddress } from "viem";
|
3
3
|
export class SiloMetadata {
|
4
|
-
async build(
|
4
|
+
async build(campaign) {
|
5
|
+
let { params, computeChainId, subType } = campaign;
|
6
|
+
if (!subType)
|
7
|
+
subType = 0;
|
5
8
|
let suffix = ["Deposit", "Protected Deposit", "Debt"][subType];
|
6
9
|
const assetSymbol = params.symbolTargetToken;
|
7
10
|
if (params.forwarders.length === 1 && assetSymbol)
|
@@ -1,13 +1,14 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
3
|
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
2
4
|
import type { Campaign as CampaignEnum, CampaignParameters, ChainId } from "@sdk";
|
3
|
-
import type { MetadataBuilder } from "../interface";
|
4
5
|
type campaignType = CampaignEnum.UNISWAP_V4;
|
5
6
|
export declare class UniswapV4Metadata implements MetadataBuilder<campaignType> {
|
6
|
-
build(
|
7
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
8
|
name: string;
|
8
9
|
action: "POOL";
|
9
10
|
tokens: {
|
10
|
-
chainId:
|
11
|
+
chainId: number;
|
11
12
|
address: any;
|
12
13
|
}[];
|
13
14
|
mainProtocol: ProtocolId;
|
@@ -2,7 +2,8 @@ import { sanitizeChainName } from "@/utils/sanitizeChain";
|
|
2
2
|
import { OpportunityAction } from "@db/api";
|
3
3
|
import { getAddress } from "viem";
|
4
4
|
export class UniswapV4Metadata {
|
5
|
-
async build(
|
5
|
+
async build(campaign) {
|
6
|
+
const { params, computeChainId } = campaign;
|
6
7
|
const whitelistNameString = "";
|
7
8
|
// if (params.whitelist.length > 0) {
|
8
9
|
// for (const whitelist of params.whitelist) {
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { TVLBuilder, TVLData } from "@/engine/tvl/interface";
|
2
|
+
import { type Campaign, type CampaignParameters, type MerklChainId } from "@sdk";
|
3
|
+
type campaignType = Campaign.UNISWAP_V4;
|
4
|
+
export declare class UniswapV4TVLBuilder implements TVLBuilder<campaignType> {
|
5
|
+
build(computeChainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<TVLData<Campaign.UNISWAP_V4>>;
|
6
|
+
}
|
7
|
+
export {};
|
@@ -1,23 +1,23 @@
|
|
1
1
|
import { BucketService } from "@/modules/v4/bucket/bucket.service";
|
2
2
|
import { TokenService } from "@/modules/v4/token/token.service";
|
3
|
+
import { log } from "@/utils/logger";
|
3
4
|
import { engineDbClient } from "@db";
|
4
5
|
import { TvlType } from "@db/api";
|
5
6
|
import { BN2Number, ChainInteractionService, NETWORK_LABELS, } from "@sdk";
|
6
|
-
import { log } from "../../../utils/logger";
|
7
7
|
/**
|
8
8
|
* Compute TVL
|
9
9
|
* @dev important: using the most recent state save with current prices
|
10
10
|
* it's only an estimate
|
11
11
|
*/
|
12
|
-
async function computeUniV4PoolTVLFromMostRecentStateSave(
|
12
|
+
async function computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, poolID) {
|
13
13
|
let stateSave;
|
14
14
|
let blockNumber;
|
15
15
|
let states = {};
|
16
16
|
try {
|
17
|
-
const currentBlock = await ChainInteractionService(
|
17
|
+
const currentBlock = await ChainInteractionService(computeChainId).getBlockNumber();
|
18
18
|
const mostRecentStateSave = await engineDbClient.stateSave.findFirst({
|
19
19
|
where: {
|
20
|
-
id: `UniswapV4_${
|
20
|
+
id: `UniswapV4_${computeChainId}_${poolID}`,
|
21
21
|
blockNumber: {
|
22
22
|
lte: currentBlock,
|
23
23
|
},
|
@@ -31,7 +31,7 @@ async function computeUniV4PoolTVLFromMostRecentStateSave(chainId, poolID) {
|
|
31
31
|
states = stateSave.states;
|
32
32
|
}
|
33
33
|
catch {
|
34
|
-
log.warn(`merklDynamic data - failed to read a recent state of pool ${poolID} on ${NETWORK_LABELS[
|
34
|
+
log.warn(`merklDynamic data - failed to read a recent state of pool ${poolID} on ${NETWORK_LABELS[computeChainId]}`);
|
35
35
|
return { amount0: 0n, amount1: 0n, blockNumber: blockNumber ?? 0 };
|
36
36
|
}
|
37
37
|
const { fileName } = states;
|
@@ -47,21 +47,21 @@ async function computeUniV4PoolTVLFromMostRecentStateSave(chainId, poolID) {
|
|
47
47
|
}
|
48
48
|
}
|
49
49
|
catch {
|
50
|
-
log.warn(`merklDynamic data - failed to decode state of pool ${poolID} on ${NETWORK_LABELS[
|
50
|
+
log.warn(`merklDynamic data - failed to decode state of pool ${poolID} on ${NETWORK_LABELS[computeChainId]}`);
|
51
51
|
}
|
52
52
|
return { amount0, amount1, blockNumber: blockNumber };
|
53
53
|
}
|
54
|
-
export class
|
55
|
-
async build(
|
54
|
+
export class UniswapV4TVLBuilder {
|
55
|
+
async build(computeChainId, campaigns) {
|
56
56
|
const tvls = [];
|
57
57
|
for (const campaign of campaigns) {
|
58
|
-
const { amount0: poolBalanceToken0, amount1: poolBalanceToken1 } = await computeUniV4PoolTVLFromMostRecentStateSave(
|
58
|
+
const { amount0: poolBalanceToken0, amount1: poolBalanceToken1 } = await computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, campaign.campaignParameters.poolId);
|
59
59
|
const token0Id = TokenService.hashId({
|
60
|
-
chainId,
|
60
|
+
chainId: computeChainId,
|
61
61
|
address: campaign.campaignParameters.currency0,
|
62
62
|
});
|
63
63
|
const token1Id = TokenService.hashId({
|
64
|
-
chainId,
|
64
|
+
chainId: computeChainId,
|
65
65
|
address: campaign.campaignParameters.currency1,
|
66
66
|
});
|
67
67
|
tvls.push({
|
@@ -1,13 +1,14 @@
|
|
1
|
+
import type { MetadataBuilder } from "@/engine/metadata/interface";
|
2
|
+
import type { CampaignWithParams } from "@/modules/v4/campaign";
|
1
3
|
import type { ProtocolId } from "@/modules/v4/protocol/protocol.model";
|
2
|
-
import type { Campaign as CampaignEnum
|
3
|
-
import type { MetadataBuilder } from "../interface";
|
4
|
+
import type { Campaign as CampaignEnum } from "@sdk";
|
4
5
|
type campaignType = CampaignEnum.VEST;
|
5
6
|
export declare class VestMetadata implements MetadataBuilder<campaignType> {
|
6
|
-
build(
|
7
|
+
build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<{
|
7
8
|
action: "LEND";
|
8
9
|
name: string;
|
9
10
|
tokens: {
|
10
|
-
chainId:
|
11
|
+
chainId: number;
|
11
12
|
address: string;
|
12
13
|
}[];
|
13
14
|
mainProtocol: ProtocolId;
|