@merkl/api 0.10.180 → 0.10.181
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/eden/index.d.ts +12 -12
- package/dist/src/index.d.ts +4 -4
- package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicDataRefacto.js +3 -3
- 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/AuraProcessor.d.ts +1 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/AuraProcessor.js +12 -3
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleProcessor.d.ts +1 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleProcessor.js +1 -3
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/StakingProcessor.d.ts +39 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/StakingProcessor.js +45 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +2 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.d.ts +2 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.js +25 -1
- package/dist/src/modules/v4/router.d.ts +4 -4
- package/dist/src/modules/v4/token/token.controller.d.ts +4 -4
- package/dist/src/modules/v4/token/token.service.d.ts +4 -4
- package/dist/src/modules/v4/token/token.service.js +2 -2
- package/dist/src/routes/v3/blacklist.d.ts +4 -4
- package/dist/src/routes/v3/campaigns.d.ts +4 -4
- package/dist/src/routes/v3/campaignsInfo.d.ts +4 -4
- package/dist/src/routes/v3/multiChainPositions.d.ts +4 -4
- package/dist/src/routes/v3/opportunity.d.ts +4 -4
- package/dist/src/routes/v3/positions.d.ts +4 -4
- package/dist/src/routes/v3/rewards.d.ts +4 -4
- package/dist/src/routes/v3/updates.d.ts +4 -4
- package/dist/src/routes/v3/userRewards.d.ts +4 -4
- package/dist/src/utils/decodeCalls.js +5 -1
- package/dist/src/utils/encodeCalls.js +13 -1
- package/dist/src/utils/generateCardName.js +3 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/eden/index.d.ts
CHANGED
@@ -788,7 +788,7 @@ declare const eden: {
|
|
788
788
|
};
|
789
789
|
fetch?: RequestInit | undefined;
|
790
790
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
791
|
-
200: {
|
791
|
+
200: ({
|
792
792
|
symbol: string;
|
793
793
|
name: string | null;
|
794
794
|
id: string;
|
@@ -796,11 +796,11 @@ declare const eden: {
|
|
796
796
|
address: string;
|
797
797
|
icon: string;
|
798
798
|
decimals: number;
|
799
|
-
displaySymbol: string;
|
800
799
|
verified: boolean;
|
801
800
|
isTest: boolean;
|
802
|
-
|
803
|
-
|
801
|
+
} & {
|
802
|
+
price?: number | null | undefined;
|
803
|
+
})[];
|
804
804
|
}>>;
|
805
805
|
};
|
806
806
|
count: {
|
@@ -2826,7 +2826,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
2826
2826
|
};
|
2827
2827
|
headers: unknown;
|
2828
2828
|
response: {
|
2829
|
-
200: {
|
2829
|
+
200: ({
|
2830
2830
|
symbol: string;
|
2831
2831
|
name: string | null;
|
2832
2832
|
id: string;
|
@@ -2834,11 +2834,11 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
2834
2834
|
address: string;
|
2835
2835
|
icon: string;
|
2836
2836
|
decimals: number;
|
2837
|
-
displaySymbol: string;
|
2838
2837
|
verified: boolean;
|
2839
2838
|
isTest: boolean;
|
2840
|
-
|
2841
|
-
|
2839
|
+
} & {
|
2840
|
+
price?: number | null | undefined;
|
2841
|
+
})[];
|
2842
2842
|
};
|
2843
2843
|
};
|
2844
2844
|
};
|
@@ -5105,7 +5105,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
5105
5105
|
};
|
5106
5106
|
fetch?: RequestInit | undefined;
|
5107
5107
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
5108
|
-
200: {
|
5108
|
+
200: ({
|
5109
5109
|
symbol: string;
|
5110
5110
|
name: string | null;
|
5111
5111
|
id: string;
|
@@ -5113,11 +5113,11 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
5113
5113
|
address: string;
|
5114
5114
|
icon: string;
|
5115
5115
|
decimals: number;
|
5116
|
-
displaySymbol: string;
|
5117
5116
|
verified: boolean;
|
5118
5117
|
isTest: boolean;
|
5119
|
-
|
5120
|
-
|
5118
|
+
} & {
|
5119
|
+
price?: number | null | undefined;
|
5120
|
+
})[];
|
5121
5121
|
}>>;
|
5122
5122
|
};
|
5123
5123
|
count: {
|
package/dist/src/index.d.ts
CHANGED
@@ -901,7 +901,7 @@ declare const app: Elysia<"", false, {
|
|
901
901
|
};
|
902
902
|
headers: unknown;
|
903
903
|
response: {
|
904
|
-
200: {
|
904
|
+
200: ({
|
905
905
|
symbol: string;
|
906
906
|
name: string | null;
|
907
907
|
id: string;
|
@@ -909,11 +909,11 @@ declare const app: Elysia<"", false, {
|
|
909
909
|
address: string;
|
910
910
|
icon: string;
|
911
911
|
decimals: number;
|
912
|
-
displaySymbol: string;
|
913
912
|
verified: boolean;
|
914
913
|
isTest: boolean;
|
915
|
-
|
916
|
-
|
914
|
+
} & {
|
915
|
+
price?: number | null | undefined;
|
916
|
+
})[];
|
917
917
|
};
|
918
918
|
};
|
919
919
|
};
|
@@ -64,7 +64,7 @@ export async function ERC20DynamicDataRefacto(chainId, campaigns) {
|
|
64
64
|
calls: [],
|
65
65
|
typeInfo: {},
|
66
66
|
};
|
67
|
-
typeStruct = getTokenTypeRound1(resultRound1, campaign.campaignParameters.targetToken, i);
|
67
|
+
typeStruct = getTokenTypeRound1(resultRound1, campaign.campaignParameters.targetToken, i, campaign);
|
68
68
|
i += 5;
|
69
69
|
tokenTypesByCampaign[campaign.campaignId] = typeStruct;
|
70
70
|
callsRounds2.push(...typeStruct.calls);
|
@@ -124,8 +124,8 @@ export async function ERC20DynamicDataRefacto(chainId, campaigns) {
|
|
124
124
|
const callsForCampaign = tokenTypesByCampaign[campaign.campaignId].calls.length;
|
125
125
|
tokenTypesByCampaign[campaign.campaignId] = await getTokenPricesInfo(i, tokenTypesByCampaign[campaign.campaignId].type, tokenTypesByCampaign[campaign.campaignId].typeInfo, result, campaign, pricer);
|
126
126
|
i += callsForCampaign;
|
127
|
-
const totalSupplyTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.totalSupply;
|
128
127
|
const whitelistedSupplyTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.whitelistedSupplyTargetToken;
|
128
|
+
const totalSupplyTargetToken = whitelistedSupplyTargetToken;
|
129
129
|
const priceTargetToken = tokenTypesByCampaign[campaign.campaignId].typeInfo.priceTargetToken;
|
130
130
|
let lastEligibilityRatio = 1;
|
131
131
|
if (!!campaign.campaignParameters.hooks?.length) {
|
@@ -141,7 +141,7 @@ export async function ERC20DynamicDataRefacto(chainId, campaigns) {
|
|
141
141
|
campaign.campaignParameters.duration /
|
142
142
|
(whitelistedSupplyTargetToken * priceTargetToken),
|
143
143
|
totalSupplyTargetToken,
|
144
|
-
tvl:
|
144
|
+
tvl: whitelistedSupplyTargetToken * priceTargetToken,
|
145
145
|
type: tokenTypesByCampaign[campaign.campaignId].type,
|
146
146
|
typeInfo: tokenTypesByCampaign[campaign.campaignId].typeInfo,
|
147
147
|
priceRewardToken: priceRewardToken,
|
@@ -57,7 +57,8 @@ export declare enum tokenType {
|
|
57
57
|
pendleYT = "pendleYT",
|
58
58
|
pancakeswap = "pancakeswap",
|
59
59
|
tempestStaking = "tempestStaking",
|
60
|
-
holdstation = "holdstation"
|
60
|
+
holdstation = "holdstation",
|
61
|
+
staking = "staking"
|
61
62
|
}
|
62
63
|
export declare const tokenTypeToProtocol: {
|
63
64
|
[key in tokenType]: {
|
@@ -59,6 +59,7 @@ export var tokenType;
|
|
59
59
|
tokenType["pancakeswap"] = "pancakeswap";
|
60
60
|
tokenType["tempestStaking"] = "tempestStaking";
|
61
61
|
tokenType["holdstation"] = "holdstation";
|
62
|
+
tokenType["staking"] = "staking";
|
62
63
|
})(tokenType || (tokenType = {}));
|
63
64
|
export const tokenTypeToProtocol = {
|
64
65
|
[tokenType.aave_borrowing]: { protocol: "Aave" },
|
@@ -139,4 +140,7 @@ export const tokenTypeToProtocol = {
|
|
139
140
|
[tokenType.holdstation]: {
|
140
141
|
protocol: "HoldStation",
|
141
142
|
},
|
143
|
+
[tokenType.staking]: {
|
144
|
+
protocol: "Staking",
|
145
|
+
},
|
142
146
|
};
|
@@ -2,6 +2,7 @@ import { decodeCall } from "../../../../../utils/decodeCalls";
|
|
2
2
|
import { createCall } from "../../../../../utils/encodeCalls";
|
3
3
|
import { generateCardName } from "../../../../../utils/generateCardName";
|
4
4
|
import { BN2Number } from "@sdk";
|
5
|
+
import { utils } from "ethers";
|
5
6
|
import { GenericProcessor, roundType } from "./GenericProcessor";
|
6
7
|
export class AuraProcessor extends GenericProcessor {
|
7
8
|
rounds = {
|
@@ -21,6 +22,7 @@ export class AuraProcessor extends GenericProcessor {
|
|
21
22
|
{ key: "poolTokensRaw", call: "getPoolTokens", target: "vault", metaData: "poolId" },
|
22
23
|
{ key: "gaugeBalance", call: "balanceOf", target: "balancerPool", metaData: "gaugeContract" },
|
23
24
|
{ key: "auraBalance", call: "balanceOf", target: "gaugeContract", metaData: "auraStaker" },
|
25
|
+
{ key: "vaultBalance", call: "balanceOf", target: "balancerPool", metaData: "vault" },
|
24
26
|
{ key: "totalSupplyGauge", call: "totalSupply", target: "gaugeContract" },
|
25
27
|
],
|
26
28
|
round4: [{ key: "totalSupply", call: "totalSupply", target: "tokenAddress" }],
|
@@ -43,8 +45,15 @@ export class AuraProcessor extends GenericProcessor {
|
|
43
45
|
}
|
44
46
|
}
|
45
47
|
async processingRound5(index, type, typeInfo, calls, campaign, pricer) {
|
46
|
-
|
47
|
-
const
|
48
|
+
let { whitelistedSupplyTargetToken, totalSupply, blacklistedSupply } = this.handleWhiteListBlacklistRound5(typeInfo, campaign);
|
49
|
+
const vaultBalance = BN2Number(typeInfo.vaultBalance, 18);
|
50
|
+
const vaultIndex = campaign.campaignParameters.blacklist
|
51
|
+
?.map(b => utils.getAddress(b))
|
52
|
+
?.indexOf(utils.getAddress(typeInfo.vault));
|
53
|
+
if (vaultIndex !== -1) {
|
54
|
+
blacklistedSupply -= BN2Number(decodeCall(calls, index + vaultIndex, "balanceOf"), campaign.campaignParameters.decimalsTargetToken); // The vault balance was already removed from the total supply
|
55
|
+
}
|
56
|
+
const totalSupplyBalancerPool = BN2Number(typeInfo.totalSupplyBalancerPool, 18) - vaultBalance;
|
48
57
|
const gaugeBalance = BN2Number(typeInfo.gaugeBalance, 18);
|
49
58
|
const auraBalance = BN2Number(typeInfo.auraBalance, 18);
|
50
59
|
const totalSupplyGauge = BN2Number(typeInfo.totalSupplyGauge, 18);
|
@@ -66,7 +75,7 @@ export class AuraProcessor extends GenericProcessor {
|
|
66
75
|
}
|
67
76
|
const percentageOfSupplyInAura = (auraBalance / totalSupplyGauge) * (gaugeBalance / totalSupplyBalancerPool);
|
68
77
|
const tvl = poolTvl * percentageOfSupplyInAura;
|
69
|
-
const priceTargetToken = tvl /
|
78
|
+
const priceTargetToken = tvl / totalSupplyBalancerPool;
|
70
79
|
return {
|
71
80
|
...typeInfo,
|
72
81
|
totalSupplyBalancerPool,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { Pricer } from "../../../../../utils/pricer";
|
2
|
-
import {
|
2
|
+
import type { Campaign, CampaignParameters } from "@sdk";
|
3
3
|
import type { tokenType } from "../helpers/tokenType";
|
4
4
|
import { GenericProcessor, type dataType, type mandatoryCallKeys } from "./GenericProcessor";
|
5
5
|
type callType = {
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { generateCardName } from "../../../../../utils/generateCardName";
|
2
|
-
import { ChainId } from "@sdk";
|
3
2
|
import { GenericProcessor } from "./GenericProcessor";
|
4
3
|
export class PendleProcessor extends GenericProcessor {
|
5
4
|
rounds = {
|
@@ -14,8 +13,7 @@ export class PendleProcessor extends GenericProcessor {
|
|
14
13
|
async processingRound5(_index, type, typeInfo, _calls, campaign, pricer) {
|
15
14
|
const { whitelistedSupplyTargetToken, totalSupply, blacklistedSupply } = this.handleWhiteListBlacklistRound5(typeInfo, campaign);
|
16
15
|
const priceTargetToken = (await pricer.get({
|
17
|
-
|
18
|
-
chainId: ChainId.MAINNET,
|
16
|
+
symbol: typeInfo.tokenAddress,
|
19
17
|
})) ?? 0;
|
20
18
|
const tvl = priceTargetToken * totalSupply;
|
21
19
|
return {
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import type { Pricer } from "../../../../../utils/pricer";
|
2
|
+
import type { Campaign, CampaignParameters } from "@sdk";
|
3
|
+
import type { tokenType, tokenTypeStruct } from "../helpers/tokenType";
|
4
|
+
import { GenericProcessor, type dataType, type mandatoryCallKeys } from "./GenericProcessor";
|
5
|
+
type callType = {
|
6
|
+
key: keyof dataRawStaking;
|
7
|
+
call: string;
|
8
|
+
target: keyof callKeysStaking;
|
9
|
+
metaData?: keyof callKeysStaking;
|
10
|
+
optional?: boolean;
|
11
|
+
};
|
12
|
+
type callKeysStaking = mandatoryCallKeys & {
|
13
|
+
stakingContract: string;
|
14
|
+
lockNFT: string;
|
15
|
+
stakingSymbol: string;
|
16
|
+
};
|
17
|
+
type dataRawStaking = callKeysStaking & {
|
18
|
+
eip712DomainName: string;
|
19
|
+
};
|
20
|
+
type dataTypeStaking = dataType & {};
|
21
|
+
export declare class StakingProcessor extends GenericProcessor<callKeysStaking, dataRawStaking, dataTypeStaking> {
|
22
|
+
rounds: {
|
23
|
+
round1: callType[];
|
24
|
+
round2: callType[];
|
25
|
+
round3: callType[];
|
26
|
+
round4: callType[];
|
27
|
+
};
|
28
|
+
processingRound1(typeInfo: dataRawStaking): void;
|
29
|
+
processingRound2(typeInfo: dataRawStaking): void;
|
30
|
+
processingRound3(typeInfo: dataRawStaking): void;
|
31
|
+
processingRound4(typeInfo: dataRawStaking): void;
|
32
|
+
processingRound5(index: number, type: tokenType, typeInfo: dataRawStaking, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<dataTypeStaking>;
|
33
|
+
computeRound1(type: tokenType, typeInfo: dataRawStaking): tokenTypeStruct;
|
34
|
+
computeRound2(index: number, type: tokenType, typeInfo: dataRawStaking, calls: string[]): tokenTypeStruct;
|
35
|
+
computeRound3(index: number, type: tokenType, typeInfo: dataRawStaking, calls: string[]): tokenTypeStruct;
|
36
|
+
computeRound4(index: number, type: tokenType, typeInfo: dataRawStaking, calls: string[], campaign: CampaignParameters<Campaign.ERC20>): tokenTypeStruct;
|
37
|
+
computeRound5(index: number, type: tokenType, typeInfo: dataRawStaking, calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<tokenTypeStruct>;
|
38
|
+
}
|
39
|
+
export {};
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { GenericProcessor } from "./GenericProcessor";
|
2
|
+
export class StakingProcessor extends GenericProcessor {
|
3
|
+
rounds = {
|
4
|
+
round1: [
|
5
|
+
{ key: "lockNFT", call: "lockNFT", target: "stakingContract", optional: true },
|
6
|
+
{ key: "eip712DomainName", call: "eip712DomainName", target: "stakingContract", optional: true },
|
7
|
+
],
|
8
|
+
round2: [{ key: "stakingSymbol", call: "symbol", target: "lockNFT", optional: true }],
|
9
|
+
round3: [],
|
10
|
+
round4: [{ key: "totalSupply", call: "totalSupply", target: "tokenAddress" }],
|
11
|
+
};
|
12
|
+
// override computeRound1(): void {}
|
13
|
+
processingRound1(typeInfo) {
|
14
|
+
if (typeInfo.stakingContract === "0x18eeD20f71BEf84B605253C89A7576E3634134C0") {
|
15
|
+
typeInfo.stakingSymbol = "CyberStaking";
|
16
|
+
}
|
17
|
+
}
|
18
|
+
processingRound2(typeInfo) {
|
19
|
+
typeInfo.stakingSymbol = typeInfo.eip712DomainName;
|
20
|
+
}
|
21
|
+
processingRound3(typeInfo) {
|
22
|
+
super.processingRound3(typeInfo);
|
23
|
+
}
|
24
|
+
processingRound4(typeInfo) {
|
25
|
+
super.processingRound4(typeInfo);
|
26
|
+
}
|
27
|
+
async processingRound5(index, type, typeInfo, calls, campaign, pricer) {
|
28
|
+
return super.processingRound5(index, type, typeInfo, calls, campaign, pricer);
|
29
|
+
}
|
30
|
+
computeRound1(type, typeInfo) {
|
31
|
+
return super.computeRound1(type, typeInfo);
|
32
|
+
}
|
33
|
+
computeRound2(index, type, typeInfo, calls) {
|
34
|
+
return super.computeRound2(index, type, typeInfo, calls);
|
35
|
+
}
|
36
|
+
computeRound3(index, type, typeInfo, calls) {
|
37
|
+
return super.computeRound3(index, type, typeInfo, calls);
|
38
|
+
}
|
39
|
+
computeRound4(index, type, typeInfo, calls, campaign) {
|
40
|
+
return super.computeRound4(index, type, typeInfo, calls, campaign);
|
41
|
+
}
|
42
|
+
async computeRound5(index, type, typeInfo, calls, campaign, pricer) {
|
43
|
+
return super.computeRound5(index, type, typeInfo, calls, campaign, pricer);
|
44
|
+
}
|
45
|
+
}
|
@@ -21,6 +21,7 @@ import { PendleYTProcessor } from "./PendleYTProcessor";
|
|
21
21
|
import { RadiantProcessor } from "./RadiantProcessor";
|
22
22
|
import { RfxProcessor } from "./RfxProcessor";
|
23
23
|
import { SpliceProcessor } from "./SpliceProcessor";
|
24
|
+
import { StakingProcessor } from "./StakingProcessor";
|
24
25
|
import { SturdySiloProcessor } from "./SturdySiloProcessor";
|
25
26
|
import { TempestVaultProcessor } from "./TempestVaultProcessor";
|
26
27
|
import { TorosProcessor } from "./TorosProcessor";
|
@@ -88,4 +89,5 @@ export const processorMapping = {
|
|
88
89
|
[tokenType.pancakeswap]: UniswapProcessor,
|
89
90
|
[tokenType.tempestStaking]: TempestVaultProcessor,
|
90
91
|
[tokenType.holdstation]: HoldStationProcessor,
|
92
|
+
[tokenType.staking]: StakingProcessor,
|
91
93
|
};
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { Campaign, CampaignParameters } from "@sdk";
|
1
2
|
import type { Multicall3 } from "libs/sdk/src/generated/Multicall";
|
2
3
|
import { type tokenTypeStruct } from "./helpers/tokenType";
|
3
|
-
export declare function getTokenTypeRound1(calls: Multicall3.ResultStructOutput[], targetToken: string, index: number): tokenTypeStruct;
|
4
|
+
export declare function getTokenTypeRound1(calls: Multicall3.ResultStructOutput[], targetToken: string, index: number, campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>): tokenTypeStruct;
|
@@ -179,7 +179,27 @@ function parseForBalancer(calls, index, targetToken, name) {
|
|
179
179
|
// Not a balancer pool
|
180
180
|
}
|
181
181
|
}
|
182
|
-
|
182
|
+
function parseForStaking(campaign, calls, index, targetToken) {
|
183
|
+
try {
|
184
|
+
const whitelist = campaign.campaignParameters.whitelist;
|
185
|
+
console.log("whitelist", whitelist, whitelist.length);
|
186
|
+
if (whitelist.length === 1) {
|
187
|
+
const forwarders = campaign.campaignParameters.forwarders;
|
188
|
+
console.log("forwarders", forwarders);
|
189
|
+
if (forwarders.length === 1) {
|
190
|
+
if (forwarders[0].sender === whitelist[0]) {
|
191
|
+
const name = decodeCall(calls, index + 2, "name");
|
192
|
+
return generateResult(tokenType.staking, name, targetToken, { stakingContract: whitelist[0] });
|
193
|
+
}
|
194
|
+
}
|
195
|
+
}
|
196
|
+
}
|
197
|
+
catch (e) {
|
198
|
+
// No factory on this token
|
199
|
+
// console.log(e);
|
200
|
+
}
|
201
|
+
}
|
202
|
+
export function getTokenTypeRound1(calls, targetToken, index, campaign) {
|
183
203
|
const returnValueOfCalls = calls.map(call => call.returnData);
|
184
204
|
let result = parseForFactory(returnValueOfCalls, index, targetToken);
|
185
205
|
if (result)
|
@@ -188,6 +208,10 @@ export function getTokenTypeRound1(calls, targetToken, index) {
|
|
188
208
|
if (result)
|
189
209
|
return result;
|
190
210
|
result = parseForMetamorpho(returnValueOfCalls, index, targetToken);
|
211
|
+
if (result)
|
212
|
+
return result;
|
213
|
+
console.log("parsing for staking");
|
214
|
+
result = parseForStaking(campaign, returnValueOfCalls, index, targetToken);
|
191
215
|
if (result)
|
192
216
|
return result;
|
193
217
|
let name;
|
@@ -883,7 +883,7 @@ export declare const v4: Elysia<"/v4", false, {
|
|
883
883
|
};
|
884
884
|
headers: unknown;
|
885
885
|
response: {
|
886
|
-
200: {
|
886
|
+
200: ({
|
887
887
|
symbol: string;
|
888
888
|
name: string | null;
|
889
889
|
id: string;
|
@@ -891,11 +891,11 @@ export declare const v4: Elysia<"/v4", false, {
|
|
891
891
|
address: string;
|
892
892
|
icon: string;
|
893
893
|
decimals: number;
|
894
|
-
displaySymbol: string;
|
895
894
|
verified: boolean;
|
896
895
|
isTest: boolean;
|
897
|
-
|
898
|
-
|
896
|
+
} & {
|
897
|
+
price?: number | null | undefined;
|
898
|
+
})[];
|
899
899
|
};
|
900
900
|
};
|
901
901
|
};
|
@@ -87,7 +87,7 @@ export declare const TokenController: Elysia<"/tokens", false, {
|
|
87
87
|
};
|
88
88
|
headers: unknown;
|
89
89
|
response: {
|
90
|
-
200: {
|
90
|
+
200: ({
|
91
91
|
symbol: string;
|
92
92
|
name: string | null;
|
93
93
|
id: string;
|
@@ -95,11 +95,11 @@ export declare const TokenController: Elysia<"/tokens", false, {
|
|
95
95
|
address: string;
|
96
96
|
icon: string;
|
97
97
|
decimals: number;
|
98
|
-
displaySymbol: string;
|
99
98
|
verified: boolean;
|
100
99
|
isTest: boolean;
|
101
|
-
|
102
|
-
|
100
|
+
} & {
|
101
|
+
price?: number | null | undefined;
|
102
|
+
})[];
|
103
103
|
};
|
104
104
|
};
|
105
105
|
};
|
@@ -133,7 +133,7 @@ export declare abstract class TokenService {
|
|
133
133
|
* @param query
|
134
134
|
* @returns A list of tokens
|
135
135
|
*/
|
136
|
-
static findMany(query: GetTokenQueryModel): Promise<{
|
136
|
+
static findMany(query: GetTokenQueryModel): Promise<({
|
137
137
|
symbol: string;
|
138
138
|
name: string | null;
|
139
139
|
id: string;
|
@@ -141,11 +141,11 @@ export declare abstract class TokenService {
|
|
141
141
|
address: string;
|
142
142
|
icon: string;
|
143
143
|
decimals: number;
|
144
|
-
displaySymbol: string;
|
145
144
|
verified: boolean;
|
146
145
|
isTest: boolean;
|
147
|
-
|
148
|
-
|
146
|
+
} & {
|
147
|
+
price?: number | null | undefined;
|
148
|
+
})[]>;
|
149
149
|
/**
|
150
150
|
* Get value of tokens
|
151
151
|
* @param tokenAmounts address/chain + amount of token
|
@@ -47,7 +47,7 @@ export class TokenService {
|
|
47
47
|
* @param additionalTokens balances along with the verified ones
|
48
48
|
*/
|
49
49
|
static async fetchVerifiedBalances(chainId, userAddress, additionalTokenAddresses) {
|
50
|
-
const verifiedTokens =
|
50
|
+
const verifiedTokens = await TokenService.findMany({ chainId: chainId, verified: true });
|
51
51
|
const additionalTokens = !!additionalTokenAddresses?.length
|
52
52
|
? await TokenService.getManyOrCreate(additionalTokenAddresses?.map(address => ({ chainId, address })))
|
53
53
|
: [];
|
@@ -222,7 +222,7 @@ export class TokenService {
|
|
222
222
|
* @returns A list of tokens
|
223
223
|
*/
|
224
224
|
static async findMany(query) {
|
225
|
-
return await TokenRepository.findMany(query);
|
225
|
+
return (await TokenRepository.findMany(query)).map(TokenService.format);
|
226
226
|
}
|
227
227
|
/**
|
228
228
|
* Get value of tokens
|
@@ -907,7 +907,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
907
907
|
};
|
908
908
|
headers: unknown;
|
909
909
|
response: {
|
910
|
-
200: {
|
910
|
+
200: ({
|
911
911
|
symbol: string;
|
912
912
|
name: string | null;
|
913
913
|
id: string;
|
@@ -915,11 +915,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
915
915
|
address: string;
|
916
916
|
icon: string;
|
917
917
|
decimals: number;
|
918
|
-
displaySymbol: string;
|
919
918
|
verified: boolean;
|
920
919
|
isTest: boolean;
|
921
|
-
|
922
|
-
|
920
|
+
} & {
|
921
|
+
price?: number | null | undefined;
|
922
|
+
})[];
|
923
923
|
};
|
924
924
|
};
|
925
925
|
};
|
@@ -910,7 +910,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
910
910
|
};
|
911
911
|
headers: unknown;
|
912
912
|
response: {
|
913
|
-
200: {
|
913
|
+
200: ({
|
914
914
|
symbol: string;
|
915
915
|
name: string | null;
|
916
916
|
id: string;
|
@@ -918,11 +918,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
918
918
|
address: string;
|
919
919
|
icon: string;
|
920
920
|
decimals: number;
|
921
|
-
displaySymbol: string;
|
922
921
|
verified: boolean;
|
923
922
|
isTest: boolean;
|
924
|
-
|
925
|
-
|
923
|
+
} & {
|
924
|
+
price?: number | null | undefined;
|
925
|
+
})[];
|
926
926
|
};
|
927
927
|
};
|
928
928
|
};
|
@@ -901,7 +901,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
901
901
|
};
|
902
902
|
headers: unknown;
|
903
903
|
response: {
|
904
|
-
200: {
|
904
|
+
200: ({
|
905
905
|
symbol: string;
|
906
906
|
name: string | null;
|
907
907
|
id: string;
|
@@ -909,11 +909,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
909
909
|
address: string;
|
910
910
|
icon: string;
|
911
911
|
decimals: number;
|
912
|
-
displaySymbol: string;
|
913
912
|
verified: boolean;
|
914
913
|
isTest: boolean;
|
915
|
-
|
916
|
-
|
914
|
+
} & {
|
915
|
+
price?: number | null | undefined;
|
916
|
+
})[];
|
917
917
|
};
|
918
918
|
};
|
919
919
|
};
|
@@ -906,7 +906,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
906
906
|
};
|
907
907
|
headers: unknown;
|
908
908
|
response: {
|
909
|
-
200: {
|
909
|
+
200: ({
|
910
910
|
symbol: string;
|
911
911
|
name: string | null;
|
912
912
|
id: string;
|
@@ -914,11 +914,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
914
914
|
address: string;
|
915
915
|
icon: string;
|
916
916
|
decimals: number;
|
917
|
-
displaySymbol: string;
|
918
917
|
verified: boolean;
|
919
918
|
isTest: boolean;
|
920
|
-
|
921
|
-
|
919
|
+
} & {
|
920
|
+
price?: number | null | undefined;
|
921
|
+
})[];
|
922
922
|
};
|
923
923
|
};
|
924
924
|
};
|
@@ -924,7 +924,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
924
924
|
};
|
925
925
|
headers: unknown;
|
926
926
|
response: {
|
927
|
-
200: {
|
927
|
+
200: ({
|
928
928
|
symbol: string;
|
929
929
|
name: string | null;
|
930
930
|
id: string;
|
@@ -932,11 +932,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
932
932
|
address: string;
|
933
933
|
icon: string;
|
934
934
|
decimals: number;
|
935
|
-
displaySymbol: string;
|
936
935
|
verified: boolean;
|
937
936
|
isTest: boolean;
|
938
|
-
|
939
|
-
|
937
|
+
} & {
|
938
|
+
price?: number | null | undefined;
|
939
|
+
})[];
|
940
940
|
};
|
941
941
|
};
|
942
942
|
};
|
@@ -925,7 +925,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
925
925
|
};
|
926
926
|
headers: unknown;
|
927
927
|
response: {
|
928
|
-
200: {
|
928
|
+
200: ({
|
929
929
|
symbol: string;
|
930
930
|
name: string | null;
|
931
931
|
id: string;
|
@@ -933,11 +933,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
933
933
|
address: string;
|
934
934
|
icon: string;
|
935
935
|
decimals: number;
|
936
|
-
displaySymbol: string;
|
937
936
|
verified: boolean;
|
938
937
|
isTest: boolean;
|
939
|
-
|
940
|
-
|
938
|
+
} & {
|
939
|
+
price?: number | null | undefined;
|
940
|
+
})[];
|
941
941
|
};
|
942
942
|
};
|
943
943
|
};
|
@@ -907,7 +907,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
907
907
|
};
|
908
908
|
headers: unknown;
|
909
909
|
response: {
|
910
|
-
200: {
|
910
|
+
200: ({
|
911
911
|
symbol: string;
|
912
912
|
name: string | null;
|
913
913
|
id: string;
|
@@ -915,11 +915,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
915
915
|
address: string;
|
916
916
|
icon: string;
|
917
917
|
decimals: number;
|
918
|
-
displaySymbol: string;
|
919
918
|
verified: boolean;
|
920
919
|
isTest: boolean;
|
921
|
-
|
922
|
-
|
920
|
+
} & {
|
921
|
+
price?: number | null | undefined;
|
922
|
+
})[];
|
923
923
|
};
|
924
924
|
};
|
925
925
|
};
|