@merkl/api 0.10.165 → 0.10.167
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/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.d.ts +2 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +4 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/TempestVaultProcessor.d.ts +50 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/TempestVaultProcessor.js +48 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +2 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.js +2 -0
- package/dist/src/modules/v4/reward/reward.repository.d.ts +1 -1
- package/dist/src/modules/v4/reward/reward.repository.js +4 -1
- package/dist/src/modules/v4/reward/reward.service.js +2 -1
- package/dist/src/utils/decodeCalls.js +5 -1
- package/dist/src/utils/encodeCalls.js +13 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -52,7 +52,8 @@ export declare enum tokenType {
|
|
52
52
|
pendle = "pendle",
|
53
53
|
maverickBoostedPosition = "maverickBoostedPosition",
|
54
54
|
zkSwapThreePool = "zkSwapThreePool",
|
55
|
-
maha = "maha"
|
55
|
+
maha = "maha",
|
56
|
+
tempest = "tempest"
|
56
57
|
}
|
57
58
|
export declare const tokenTypeToProtocol: {
|
58
59
|
[key in tokenType]: {
|
@@ -54,6 +54,7 @@ export var tokenType;
|
|
54
54
|
tokenType["maverickBoostedPosition"] = "maverickBoostedPosition";
|
55
55
|
tokenType["zkSwapThreePool"] = "zkSwapThreePool";
|
56
56
|
tokenType["maha"] = "maha";
|
57
|
+
tokenType["tempest"] = "tempest";
|
57
58
|
})(tokenType || (tokenType = {}));
|
58
59
|
export const tokenTypeToProtocol = {
|
59
60
|
[tokenType.aave_borrowing]: { protocol: "Aave" },
|
@@ -119,4 +120,7 @@ export const tokenTypeToProtocol = {
|
|
119
120
|
[tokenType.maha]: {
|
120
121
|
protocol: "Maha",
|
121
122
|
},
|
123
|
+
[tokenType.tempest]: {
|
124
|
+
protocol: "Tempest",
|
125
|
+
},
|
122
126
|
};
|
package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/TempestVaultProcessor.d.ts
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
import type { Pricer } from "../../../../../utils/pricer";
|
2
|
+
import { type Campaign, type CampaignParameters } from "@sdk";
|
3
|
+
import type { tokenType } from "../helpers/tokenType";
|
4
|
+
import { GenericProcessor, type dataType, type mandatoryCallKeys } from "./GenericProcessor";
|
5
|
+
type callType = {
|
6
|
+
key: keyof dataRawTempest;
|
7
|
+
call: string;
|
8
|
+
target: keyof callKeysTempest;
|
9
|
+
metaData?: keyof callKeysTempest;
|
10
|
+
};
|
11
|
+
type callKeysTempest = mandatoryCallKeys & {
|
12
|
+
addressToken0: string;
|
13
|
+
addressToken1: string;
|
14
|
+
addressesReturnData: string;
|
15
|
+
};
|
16
|
+
type dataRawTempest = callKeysTempest & {
|
17
|
+
addressToken0: string;
|
18
|
+
addressToken1: string;
|
19
|
+
addressesReturnData: {
|
20
|
+
[key: string]: string | number;
|
21
|
+
};
|
22
|
+
amount0Idle: string;
|
23
|
+
amount0Invested: string;
|
24
|
+
amount1Idle: string;
|
25
|
+
amount1Invested: string;
|
26
|
+
decimalsToken0: string;
|
27
|
+
decimalsToken1: string;
|
28
|
+
positionsReturnData: {
|
29
|
+
[key: string]: string | number;
|
30
|
+
};
|
31
|
+
symbolToken0: string;
|
32
|
+
symbolToken1: string;
|
33
|
+
};
|
34
|
+
type dataTypeTempest = dataType & {
|
35
|
+
addressToken0: string;
|
36
|
+
addressToken1: string;
|
37
|
+
symbolToken0: string;
|
38
|
+
symbolToken1: string;
|
39
|
+
};
|
40
|
+
export declare class TempestVaultProcessor extends GenericProcessor<callKeysTempest, dataRawTempest, dataTypeTempest> {
|
41
|
+
rounds: {
|
42
|
+
round1: callType[];
|
43
|
+
round2: callType[];
|
44
|
+
round3: callType[];
|
45
|
+
round4: callType[];
|
46
|
+
};
|
47
|
+
processingRound2(typeInfo: dataRawTempest): void;
|
48
|
+
processingRound5(_index: number, type: tokenType, typeInfo: dataRawTempest, _calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<dataTypeTempest>;
|
49
|
+
}
|
50
|
+
export {};
|
package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/TempestVaultProcessor.js
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
import { generateCardName } from "../../../../../utils/generateCardName";
|
2
|
+
import { BN2Number } from "@sdk";
|
3
|
+
import { GenericProcessor } from "./GenericProcessor";
|
4
|
+
export class TempestVaultProcessor extends GenericProcessor {
|
5
|
+
rounds = {
|
6
|
+
round1: [
|
7
|
+
{ key: "addressesReturnData", call: "getTokenAddresses", target: "tokenAddress" },
|
8
|
+
{ key: "positionsReturnData", call: "getPositions", target: "tokenAddress" },
|
9
|
+
],
|
10
|
+
round2: [
|
11
|
+
{ key: "symbolToken0", call: "symbol", target: "addressToken0" },
|
12
|
+
{ key: "symbolToken1", call: "symbol", target: "addressToken1" },
|
13
|
+
{ key: "decimalsToken0", call: "decimals", target: "addressToken0" },
|
14
|
+
{ key: "decimalsToken1", call: "decimals", target: "addressToken1" },
|
15
|
+
],
|
16
|
+
round3: [],
|
17
|
+
round4: [{ key: "totalSupply", call: "totalSupply", target: "tokenAddress" }],
|
18
|
+
};
|
19
|
+
processingRound2(typeInfo) {
|
20
|
+
typeInfo.addressToken0 = typeInfo.addressesReturnData[0];
|
21
|
+
typeInfo.addressToken1 = typeInfo.addressesReturnData[1];
|
22
|
+
typeInfo.amount0Invested = typeInfo.positionsReturnData[0];
|
23
|
+
typeInfo.amount1Invested = typeInfo.positionsReturnData[1];
|
24
|
+
typeInfo.amount0Idle = typeInfo.positionsReturnData[2];
|
25
|
+
typeInfo.amount1Idle = typeInfo.positionsReturnData[3];
|
26
|
+
}
|
27
|
+
async processingRound5(_index, type, typeInfo, _calls, campaign, pricer) {
|
28
|
+
const { whitelistedSupplyTargetToken, totalSupply, blacklistedSupply } = this.handleWhiteListBlacklistRound5(typeInfo, campaign);
|
29
|
+
const decimalsToken0 = Number(typeInfo.decimalsToken0);
|
30
|
+
const decimalsToken1 = Number(typeInfo.decimalsToken1);
|
31
|
+
const amount0 = BN2Number(typeInfo.amount0Idle, decimalsToken0) + BN2Number(typeInfo.amount0Invested, decimalsToken0);
|
32
|
+
const amount1 = BN2Number(typeInfo.amount1Idle, decimalsToken1) + BN2Number(typeInfo.amount1Invested, decimalsToken1);
|
33
|
+
const tokenAPRice = (await pricer.get({ symbol: typeInfo.symbolToken0 })) ?? 0;
|
34
|
+
const tokenBPrice = (await pricer.get({ symbol: typeInfo.symbolToken1 })) ?? 0;
|
35
|
+
const tvl = tokenAPRice * amount0 + tokenBPrice * amount1;
|
36
|
+
const priceTargetToken = tvl / totalSupply;
|
37
|
+
const { addressesReturnData, positionsReturnData, ...rest } = typeInfo;
|
38
|
+
return {
|
39
|
+
...rest,
|
40
|
+
blacklistedSupply,
|
41
|
+
cardName: generateCardName(type, typeInfo, campaign),
|
42
|
+
priceTargetToken: priceTargetToken,
|
43
|
+
totalSupply,
|
44
|
+
tvl,
|
45
|
+
whitelistedSupplyTargetToken,
|
46
|
+
};
|
47
|
+
}
|
48
|
+
}
|
@@ -20,6 +20,7 @@ import { RadiantProcessor } from "./RadiantProcessor";
|
|
20
20
|
import { RfxProcessor } from "./RfxProcessor";
|
21
21
|
import { SpliceProcessor } from "./SpliceProcessor";
|
22
22
|
import { SturdySiloProcessor } from "./SturdySiloProcessor";
|
23
|
+
import { TempestVaultProcessor } from "./TempestVaultProcessor";
|
23
24
|
import { TorosProcessor } from "./TorosProcessor";
|
24
25
|
import { UniswapProcessor } from "./UniswapProcessor";
|
25
26
|
import { WoofiProcessor } from "./WoofiProcessor";
|
@@ -80,4 +81,5 @@ export const processorMapping = {
|
|
80
81
|
[tokenType.maverickBoostedPosition]: MaverickBPProcessor,
|
81
82
|
[tokenType.zkSwapThreePool]: ZkSwapThreePoolProcessor,
|
82
83
|
[tokenType.maha]: StakedCurveProcessor,
|
84
|
+
[tokenType.tempest]: TempestVaultProcessor,
|
83
85
|
};
|
@@ -90,6 +90,8 @@ function satisfiesNameConditions(name, type) {
|
|
90
90
|
return lowerCaseName.includes("zf");
|
91
91
|
case tokenType.maha:
|
92
92
|
return lowerCaseName.includes("staked") && lowerCaseName.includes("maha");
|
93
|
+
case tokenType.tempest:
|
94
|
+
return lowerCaseName.startsWith("ts");
|
93
95
|
default:
|
94
96
|
return false;
|
95
97
|
}
|
@@ -149,7 +149,7 @@ export declare abstract class RewardRepository {
|
|
149
149
|
campaignId: string;
|
150
150
|
amount: bigint;
|
151
151
|
}>;
|
152
|
-
static
|
152
|
+
static getAmountAndClaimedForCampaigns(root: string, x: CampaignIdWithoutPageModel): Promise<{
|
153
153
|
campaignId: string;
|
154
154
|
amount: string;
|
155
155
|
claimed: string;
|
@@ -223,7 +223,7 @@ export class RewardRepository {
|
|
223
223
|
}, { campaignId, amount: 0n });
|
224
224
|
return reducedData;
|
225
225
|
}
|
226
|
-
static async
|
226
|
+
static async getAmountAndClaimedForCampaigns(root, x) {
|
227
227
|
return await apiDbClient.rewardBreakdown.findMany({
|
228
228
|
select: {
|
229
229
|
claimed: true,
|
@@ -234,6 +234,9 @@ export class RewardRepository {
|
|
234
234
|
campaignId: {
|
235
235
|
in: x.campaignIds.map(campaignId => CampaignService.hashId({ distributionChain: x.chainId, campaignId })),
|
236
236
|
},
|
237
|
+
Reward: {
|
238
|
+
root,
|
239
|
+
},
|
237
240
|
},
|
238
241
|
});
|
239
242
|
}
|
@@ -264,7 +264,8 @@ export class RewardService {
|
|
264
264
|
acc[CampaignService.hashId({ distributionChain: x.chainId, campaignId })] = campaignId;
|
265
265
|
return acc;
|
266
266
|
}, {});
|
267
|
-
const
|
267
|
+
const currentRoot = await MerklRootService.fetch(x.chainId);
|
268
|
+
const data = await RewardRepository.getAmountAndClaimedForCampaigns(currentRoot.live, x);
|
268
269
|
return data.reduce((acc, { amount, campaignId, claimed }) => {
|
269
270
|
if (!acc[campaignToCampaignIds[campaignId]])
|
270
271
|
acc[campaignToCampaignIds[campaignId]] = "0";
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { AaveInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CompoundInterface, CurveInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, RadiantInterface, RfxInterface, SturdyInterface, TorosInterface, UniswapV2PoolInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
|
1
|
+
import { AaveInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CompoundInterface, CurveInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, RadiantInterface, RfxInterface, SturdyInterface, SymetricAmbientStrategyInterface, TorosInterface, UniswapV2PoolInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
|
2
2
|
import { tokenType } from "../libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType";
|
3
3
|
export function decodeCall(calls, index, key, type) {
|
4
4
|
const returnData = calls[index];
|
@@ -174,6 +174,10 @@ export function decodeCall(calls, index, key, type) {
|
|
174
174
|
return ZFStableSwapThreePoolInterface.decodeFunctionResult("coins", returnData)[0];
|
175
175
|
case "minter":
|
176
176
|
return ZFStableLPINterface.decodeFunctionResult("minter", returnData)[0];
|
177
|
+
case "getTokenAddresses":
|
178
|
+
return SymetricAmbientStrategyInterface.decodeFunctionResult("getTokenAddresses", returnData)[0];
|
179
|
+
case "getPositions":
|
180
|
+
return SymetricAmbientStrategyInterface.decodeFunctionResult("getPositions", returnData);
|
177
181
|
default:
|
178
182
|
throw new Error(`Key not recognized for ${key}`);
|
179
183
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { tokenType } from "../libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType";
|
2
|
-
import { AaveInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CompoundInterface, CurveInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, RadiantInterface, RfxDatastoreInterface, SturdyInterface, TorosInterface, UniswapV2PoolInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
|
2
|
+
import { AaveInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CompoundInterface, CurveInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, RadiantInterface, RfxDatastoreInterface, SturdyInterface, SymetricAmbientStrategyInterface, TorosInterface, UniswapV2PoolInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
|
3
3
|
import { fluidInterface } from "src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1";
|
4
4
|
export function createCall(target, key, type, metaData) {
|
5
5
|
switch (key) {
|
@@ -260,6 +260,18 @@ export function createCall(target, key, type, metaData) {
|
|
260
260
|
callData: ZFStableLPINterface.encodeFunctionData("minter"),
|
261
261
|
target: target,
|
262
262
|
};
|
263
|
+
case "getTokenAddresses":
|
264
|
+
return {
|
265
|
+
allowFailure: true,
|
266
|
+
callData: SymetricAmbientStrategyInterface.encodeFunctionData("getTokenAddresses"),
|
267
|
+
target: target,
|
268
|
+
};
|
269
|
+
case "getPositions":
|
270
|
+
return {
|
271
|
+
allowFailure: true,
|
272
|
+
callData: SymetricAmbientStrategyInterface.encodeFunctionData("getPositions"),
|
273
|
+
target: target,
|
274
|
+
};
|
263
275
|
default:
|
264
276
|
throw new Error(`Unknown key ${key}`);
|
265
277
|
}
|