@stake-dao/reader 0.4.56 → 0.4.58
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/esm/endpoints.js +1 -0
- package/dist/esm/endpoints.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lockers/fetch/index.js +1 -1
- package/dist/esm/lockers/fetch/index.js.map +1 -1
- package/dist/esm/strategies/pendle/pendlePoints.js +1 -0
- package/dist/esm/strategies/pendle/pendlePoints.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/votemarket/curve/fetchUserVlCvxClaimable.js +90 -40
- package/dist/esm/votemarket/curve/fetchUserVlCvxClaimable.js.map +1 -1
- package/dist/esm/votemarket/fetchCampaigns/index.js +64 -0
- package/dist/esm/votemarket/fetchCampaigns/index.js.map +1 -0
- package/dist/esm/votemarket/{fetchPendingRemoteCampaigns.js → fetchCampaigns/pendingRemote.js} +2 -1
- package/dist/esm/votemarket/fetchCampaigns/pendingRemote.js.map +1 -0
- package/dist/esm/votemarket/{fetchCampaigns.js → fetchCampaigns/processRawCampaigns.js} +15 -100
- package/dist/esm/votemarket/fetchCampaigns/processRawCampaigns.js.map +1 -0
- package/dist/esm/votemarket/fetchCampaigns/updateEpoch.js +41 -0
- package/dist/esm/votemarket/fetchCampaigns/updateEpoch.js.map +1 -0
- package/dist/types/endpoints.d.ts +1 -0
- package/dist/types/endpoints.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lockers/fetch/index.d.ts +1 -0
- package/dist/types/lockers/fetch/index.d.ts.map +1 -1
- package/dist/types/strategies/pendle/pendlePoints.d.ts +4 -0
- package/dist/types/strategies/pendle/pendlePoints.d.ts.map +1 -1
- package/dist/types/votemarket/curve/fetchUserVlCvxClaimable.d.ts +17 -1
- package/dist/types/votemarket/curve/fetchUserVlCvxClaimable.d.ts.map +1 -1
- package/dist/types/votemarket/{fetchCampaigns.d.ts → fetchCampaigns/index.d.ts} +2 -2
- package/dist/types/votemarket/fetchCampaigns/index.d.ts.map +1 -0
- package/dist/types/votemarket/{fetchPendingRemoteCampaigns.d.ts → fetchCampaigns/pendingRemote.d.ts} +2 -1
- package/dist/types/votemarket/fetchCampaigns/pendingRemote.d.ts.map +1 -0
- package/dist/types/votemarket/fetchCampaigns/processRawCampaigns.d.ts +16 -0
- package/dist/types/votemarket/fetchCampaigns/processRawCampaigns.d.ts.map +1 -0
- package/dist/types/votemarket/fetchCampaigns/updateEpoch.d.ts +9 -0
- package/dist/types/votemarket/fetchCampaigns/updateEpoch.d.ts.map +1 -0
- package/dist/types/votemarket/types.d.ts +3 -1
- package/dist/types/votemarket/types.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/endpoints.ts +2 -0
- package/src/index.ts +3 -1
- package/src/lockers/fetch/index.ts +1 -1
- package/src/strategies/pendle/pendlePoints.ts +1 -0
- package/src/votemarket/curve/fetchUserVlCvxClaimable.ts +114 -44
- package/src/votemarket/fetchCampaigns/index.ts +97 -0
- package/src/votemarket/{fetchPendingRemoteCampaigns.ts → fetchCampaigns/pendingRemote.ts} +1 -0
- package/src/votemarket/{fetchCampaigns.ts → fetchCampaigns/processRawCampaigns.ts} +19 -149
- package/src/votemarket/fetchCampaigns/updateEpoch.ts +63 -0
- package/src/votemarket/types.ts +3 -1
- package/dist/esm/votemarket/fetchCampaigns.js.map +0 -1
- package/dist/esm/votemarket/fetchPendingRemoteCampaigns.js.map +0 -1
- package/dist/types/votemarket/fetchCampaigns.d.ts.map +0 -1
- package/dist/types/votemarket/fetchPendingRemoteCampaigns.d.ts.map +0 -1
|
@@ -1,49 +1,65 @@
|
|
|
1
1
|
import { Zero, contract, tokenWithAddress } from '@stake-dao/constants';
|
|
2
2
|
import { formatUnits, parseAbi } from 'viem';
|
|
3
3
|
import { mainnet } from 'viem/chains';
|
|
4
|
-
import { GH_STAKE_DAO_BOUNTIES_REPORT } from '../../endpoints.js';
|
|
4
|
+
import { GH_STAKE_DAO_BOUNTIES_REPORT, STAKE_DAO_API } from '../../endpoints.js';
|
|
5
5
|
import { getPrices } from '../../prices.js';
|
|
6
6
|
import { rpcFetchTokensData } from '../../tokens.js';
|
|
7
7
|
import { equalTlc, multicall } from '../../utils.js';
|
|
8
|
-
const getMerkleData = async () => {
|
|
9
|
-
const [delegators, nonDelegators] = await Promise.all([
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const getMerkleData = async (chainId) => {
|
|
9
|
+
const [delegators, nonDelegators, votiumMerkle] = await Promise.all([
|
|
10
|
+
chainId === mainnet.id
|
|
11
|
+
? fetch(`${GH_STAKE_DAO_BOUNTIES_REPORT}/refs/heads/main/bounties-reports/latest/vlCVX/vlcvx_merkle_delegators.json`).then((res) => res.json())
|
|
12
|
+
: {},
|
|
13
|
+
fetch(`${GH_STAKE_DAO_BOUNTIES_REPORT}/refs/heads/main/bounties-reports/latest/vlCVX/vlcvx_merkle${chainId === mainnet.id ? '' : `_${chainId}`}.json`).then((res) => res.json()),
|
|
14
|
+
chainId === mainnet.id
|
|
15
|
+
? fetch(`${STAKE_DAO_API}/votemarket/votium_merkles.json`).then((res) => res.json())
|
|
16
|
+
: { claims: {} },
|
|
12
17
|
]);
|
|
13
|
-
return { delegators, nonDelegators };
|
|
18
|
+
return { delegators, nonDelegators, votiumMerkle };
|
|
14
19
|
};
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const nonDelegatorMatches = isRootMatch(nonDelegatorRoot, merkleData.nonDelegators.merkleRoot);
|
|
20
|
+
const validateMerkleRoots = (delegatorRoot, nonDelegatorRoot, merkleData, isMainnet) => {
|
|
21
|
+
const delegatorMatches = isMainnet ? equalTlc(delegatorRoot, merkleData.delegators.merkleRoot) : false;
|
|
22
|
+
const nonDelegatorMatches = equalTlc(nonDelegatorRoot, merkleData.nonDelegators.merkleRoot);
|
|
19
23
|
return delegatorMatches || nonDelegatorMatches;
|
|
20
24
|
};
|
|
21
|
-
const getMerkleRoots = async (provider) => {
|
|
25
|
+
const getMerkleRoots = async (provider, user) => {
|
|
22
26
|
const contracts = [contract('vlCvxDelegatorMerkle', mainnet.id), contract('vlCvxNotDelegatorMerkle', mainnet.id)];
|
|
23
|
-
const result = await multicall(provider, contracts.
|
|
24
|
-
address,
|
|
25
|
-
name: '
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
const result = await multicall(provider, contracts.flatMap((address) => [
|
|
28
|
+
{ address, name: 'root', params: [] },
|
|
29
|
+
{ address, name: 'recipients', params: [user] },
|
|
30
|
+
]), parseAbi([
|
|
31
|
+
'function root() external view returns (bytes32)',
|
|
32
|
+
'function recipients(address) external view returns (address)',
|
|
33
|
+
]));
|
|
28
34
|
return {
|
|
29
35
|
delegatorRoot: result[0].result,
|
|
30
|
-
|
|
36
|
+
delegatorRecipient: result[1].result,
|
|
37
|
+
nonDelegatorRoot: result[2].result,
|
|
38
|
+
nonDelegatorRecipient: result[3].result,
|
|
31
39
|
};
|
|
32
40
|
};
|
|
33
41
|
const getClaimedData = async (provider, tokens, user, contract) => {
|
|
34
42
|
const rawClaimed = tokens.length > 0
|
|
35
|
-
? await multicall(provider, tokens.
|
|
36
|
-
address: contract,
|
|
37
|
-
name: 'claimed',
|
|
38
|
-
params: [user, t],
|
|
39
|
-
})), parseAbi(['function claimed(address,address) external view returns (uint256)']))
|
|
43
|
+
? await multicall(provider, tokens.flatMap((t) => [{ address: contract, name: 'claimed', params: [user, t] }]), parseAbi(['function claimed(address,address) external view returns (uint256)']))
|
|
40
44
|
: [];
|
|
41
45
|
return tokens.map((t, index) => ({
|
|
42
46
|
token: t,
|
|
43
47
|
claimed: rawClaimed[index].result,
|
|
44
48
|
}));
|
|
45
49
|
};
|
|
46
|
-
const
|
|
50
|
+
const getVotiumClaimedData = async (provider, merkle) => {
|
|
51
|
+
const rawClaimed = await multicall(provider, Object.keys(merkle).map((t) => ({
|
|
52
|
+
address: contract('votiumMerkle'),
|
|
53
|
+
name: 'isClaimed',
|
|
54
|
+
params: [t, merkle[t].index],
|
|
55
|
+
})), parseAbi(['function isClaimed(address,uint256) external view returns(bool)']));
|
|
56
|
+
return Object.keys(merkle).map((t, index) => ({
|
|
57
|
+
...merkle[t],
|
|
58
|
+
token: t,
|
|
59
|
+
claimed: rawClaimed[index].result,
|
|
60
|
+
}));
|
|
61
|
+
};
|
|
62
|
+
const getParsedData = (user, recipient, merkleAddress, userData, unknownTokensData, claimedData, prices, chainId) => {
|
|
47
63
|
return userData
|
|
48
64
|
? Object.keys(userData.tokens).map((token) => {
|
|
49
65
|
const rewardToken = tokenWithAddress(token) || unknownTokensData.find((t) => equalTlc(t.address, token));
|
|
@@ -51,6 +67,8 @@ const getParsedData = (merkleAddress, userData, unknownTokensData, claimedData,
|
|
|
51
67
|
const claimed = claimedData.find((c) => equalTlc(c.token, token))?.claimed;
|
|
52
68
|
const claimable = BigInt(userData.tokens[token].amount) - claimed;
|
|
53
69
|
return {
|
|
70
|
+
user,
|
|
71
|
+
recipient,
|
|
54
72
|
token: rewardToken,
|
|
55
73
|
claimable: formatUnits(claimable, 0),
|
|
56
74
|
claimableUsd: Number(formatUnits(claimable, rewardToken?.decimals || 18)) * tokenPrice,
|
|
@@ -59,48 +77,80 @@ const getParsedData = (merkleAddress, userData, unknownTokensData, claimedData,
|
|
|
59
77
|
proof: userData.tokens[token].proof,
|
|
60
78
|
merkleAddress: merkleAddress,
|
|
61
79
|
isClaimed: claimable === Zero,
|
|
80
|
+
chainId,
|
|
81
|
+
};
|
|
82
|
+
})
|
|
83
|
+
: undefined;
|
|
84
|
+
};
|
|
85
|
+
const getVotiumParsedData = (user, userData, unknownTokensData, prices) => {
|
|
86
|
+
return userData
|
|
87
|
+
? userData.map((ud) => {
|
|
88
|
+
const rewardToken = tokenWithAddress(ud.token) || unknownTokensData.find((t) => equalTlc(t.address, ud.token));
|
|
89
|
+
const tokenPrice = prices.find((p) => equalTlc(ud.token, p.address))?.usdPrice || 0;
|
|
90
|
+
return {
|
|
91
|
+
user,
|
|
92
|
+
recipient: user,
|
|
93
|
+
token: rewardToken,
|
|
94
|
+
claimable: ud.claimed ? '0' : formatUnits(BigInt(ud.amount), 0),
|
|
95
|
+
claimableUsd: ud.claimed
|
|
96
|
+
? 0
|
|
97
|
+
: Number(formatUnits(BigInt(ud.amount), rewardToken?.decimals || 18)) * tokenPrice,
|
|
98
|
+
amount: formatUnits(BigInt(ud.amount), 0),
|
|
99
|
+
amountUsd: Number(formatUnits(BigInt(ud.amount), rewardToken?.decimals || 18)) * tokenPrice,
|
|
100
|
+
proof: ud.proof,
|
|
101
|
+
merkleAddress: contract('votiumMerkle'),
|
|
102
|
+
isClaimed: ud.claimed,
|
|
103
|
+
index: ud.index,
|
|
104
|
+
chainId: mainnet.id,
|
|
62
105
|
};
|
|
63
106
|
})
|
|
64
107
|
: undefined;
|
|
65
108
|
};
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
const { delegatorRoot, nonDelegatorRoot } = await getMerkleRoots(provider);
|
|
109
|
+
export const fetchUserVlCvxClaimable = async (provider, rpc, user, chainId) => {
|
|
110
|
+
const { delegatorRoot, delegatorRecipient, nonDelegatorRoot, nonDelegatorRecipient } = await getMerkleRoots(provider, user);
|
|
69
111
|
let vlCvxClaimable;
|
|
112
|
+
let votiumMerkleData;
|
|
70
113
|
try {
|
|
71
|
-
const merkleData = await getMerkleData();
|
|
72
|
-
if (validateMerkleRoots(delegatorRoot, nonDelegatorRoot, merkleData)) {
|
|
73
|
-
vlCvxClaimable = merkleData;
|
|
114
|
+
const merkleData = await getMerkleData(chainId);
|
|
115
|
+
if (validateMerkleRoots(delegatorRoot, nonDelegatorRoot, merkleData, chainId === mainnet.id)) {
|
|
116
|
+
vlCvxClaimable = { delegators: merkleData.delegators, nonDelegators: merkleData.nonDelegators };
|
|
74
117
|
}
|
|
118
|
+
votiumMerkleData = merkleData.votiumMerkle.claims[user];
|
|
75
119
|
}
|
|
76
120
|
catch { }
|
|
77
|
-
if (!vlCvxClaimable) {
|
|
78
|
-
|
|
121
|
+
if (!vlCvxClaimable && !votiumMerkleData) {
|
|
122
|
+
console.error('Could not find valid merkle data');
|
|
123
|
+
return [];
|
|
79
124
|
}
|
|
80
|
-
const vlCvxUserDelegated = vlCvxClaimable?.
|
|
81
|
-
const vlCvxUserNotDelegated = vlCvxClaimable
|
|
125
|
+
const vlCvxUserDelegated = vlCvxClaimable.delegators?.claims?.[user];
|
|
126
|
+
const vlCvxUserNotDelegated = vlCvxClaimable.nonDelegators.claims[user];
|
|
82
127
|
const tokensDelegated = Object.keys(vlCvxUserDelegated?.tokens || {});
|
|
83
128
|
const tokensNotDelegated = Object.keys(vlCvxUserNotDelegated?.tokens || {});
|
|
84
|
-
const
|
|
129
|
+
const tokensVotium = Object.keys(votiumMerkleData?.tokens || {});
|
|
130
|
+
const tokens = [...tokensDelegated, ...tokensNotDelegated, ...tokensVotium];
|
|
85
131
|
if (!tokens.length)
|
|
86
132
|
return [];
|
|
87
|
-
const [delegatedClaimed, notDelegatedClaimed] = await Promise.all([
|
|
133
|
+
const [delegatedClaimed, notDelegatedClaimed, votiumClaimed] = await Promise.all([
|
|
88
134
|
getClaimedData(provider, tokensDelegated, user, contract('vlCvxDelegatorMerkle')),
|
|
89
135
|
getClaimedData(provider, tokensNotDelegated, user, contract('vlCvxNotDelegatorMerkle')),
|
|
136
|
+
votiumMerkleData?.tokens && Object.keys(votiumMerkleData?.tokens).length > 0
|
|
137
|
+
? getVotiumClaimedData(provider, votiumMerkleData?.tokens)
|
|
138
|
+
: [],
|
|
90
139
|
]);
|
|
91
140
|
const unknownTokens = tokens.filter((t) => !tokenWithAddress(t));
|
|
92
|
-
const rawUnknownTokensData = await rpcFetchTokensData(
|
|
141
|
+
const rawUnknownTokensData = await rpcFetchTokensData(chainId, rpc[chainId], unknownTokens);
|
|
93
142
|
const unknownTokensData = rawUnknownTokensData.map((t) => ({
|
|
94
143
|
name: t.name,
|
|
95
144
|
symbol: t.symbol,
|
|
96
145
|
address: t.tokenAddress,
|
|
97
146
|
decimals: Number(t.decimals),
|
|
98
|
-
chainId
|
|
147
|
+
chainId,
|
|
99
148
|
}));
|
|
100
|
-
const prices = await getPrices(tokens.map((t) => ({ address: t })),
|
|
149
|
+
const prices = await getPrices(tokens.map((t) => ({ address: t })), chainId);
|
|
101
150
|
return [
|
|
102
|
-
getParsedData(contract('vlCvxDelegatorMerkle'
|
|
103
|
-
getParsedData(contract('vlCvxNotDelegatorMerkle',
|
|
151
|
+
getParsedData(user, delegatorRecipient, contract('vlCvxDelegatorMerkle'), vlCvxUserDelegated, unknownTokensData, delegatedClaimed, prices, chainId),
|
|
152
|
+
getParsedData(user, nonDelegatorRecipient, contract('vlCvxNotDelegatorMerkle', chainId), vlCvxUserNotDelegated, unknownTokensData, notDelegatedClaimed, prices, chainId),
|
|
153
|
+
getVotiumParsedData(user, votiumClaimed, unknownTokensData, prices),
|
|
104
154
|
]
|
|
105
155
|
.filter(Boolean)
|
|
106
156
|
.flat();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchUserVlCvxClaimable.js","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchUserVlCvxClaimable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAAgB,WAAW,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"fetchUserVlCvxClaimable.js","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchUserVlCvxClaimable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { contract } from '@stake-dao/constants';
|
|
2
|
+
import { range } from 'lodash-es';
|
|
3
|
+
import { decodeAbiParameters, encodeAbiParameters, parseAbiParameters } from 'viem';
|
|
4
|
+
import { arbitrum } from 'viem/chains';
|
|
5
|
+
import batchCampaigns from '../../bytecodes/votemarket/batchCampaigns.js';
|
|
6
|
+
import { batchJsonRpc, concatBytecode, equalTlc, rpcCall } from '../../utils.js';
|
|
7
|
+
import { fetchPendingRemoteCampaigns } from './pendingRemote.js';
|
|
8
|
+
import { processRawCampaigns } from './processRawCampaigns.js';
|
|
9
|
+
export const CAMPAIGNS_CHUNK_SIZE = 10;
|
|
10
|
+
export const CLAIM_WINDOW_LENGTH = 24; // weeks
|
|
11
|
+
export const CLOSE_WINDOW_LENGTH = 4; // weeks
|
|
12
|
+
export const fetchCampaigns = async ({ platform, gaugeController, chainId, rpcs, etherscanApiKey, fromBlock, mainnetVmRemote, }) => {
|
|
13
|
+
const rpc = rpcs[chainId];
|
|
14
|
+
const nCampaignsRequest = await rpcCall(rpc, [{ to: platform, data: '0x7274e30d' }]); // campaignCount
|
|
15
|
+
const nCampaigns = Number(decodeAbiParameters([{ type: 'uint256', name: 'campaignCount' }], nCampaignsRequest[0].result));
|
|
16
|
+
const calls = range(0, nCampaigns, CAMPAIGNS_CHUNK_SIZE).map((skip) => {
|
|
17
|
+
const inputParams = [
|
|
18
|
+
chainId,
|
|
19
|
+
platform,
|
|
20
|
+
contract('laPosteTokenFactory', chainId),
|
|
21
|
+
skip,
|
|
22
|
+
skip + CAMPAIGNS_CHUNK_SIZE > nCampaigns ? nCampaigns : skip + CAMPAIGNS_CHUNK_SIZE,
|
|
23
|
+
];
|
|
24
|
+
const inputData = encodeAbiParameters(parseAbiParameters(batchCampaigns.inputType[1]), inputParams);
|
|
25
|
+
return concatBytecode(batchCampaigns.bytecode[1], inputData);
|
|
26
|
+
});
|
|
27
|
+
let rawCampaigns = await batchJsonRpc({
|
|
28
|
+
rpc,
|
|
29
|
+
calls,
|
|
30
|
+
outputTypeAbi: batchCampaigns.outputType[1],
|
|
31
|
+
parse: false,
|
|
32
|
+
callsKey: `votemarket/fetchCampaigns.ts: rawCampaigns - chainId ${chainId} - rpc ${rpc}`,
|
|
33
|
+
});
|
|
34
|
+
if (chainId === arbitrum.id && etherscanApiKey && fromBlock && mainnetVmRemote) {
|
|
35
|
+
const nextIndex = rawCampaigns.length > 0 ? Math.max(...rawCampaigns.map((rc) => Number(rc.id))) + 1 : 0;
|
|
36
|
+
const { remoteCampaigns: pendingRemoteCampaigns } = await fetchPendingRemoteCampaigns({
|
|
37
|
+
mainnetVmRemote,
|
|
38
|
+
chainId,
|
|
39
|
+
fromBlock,
|
|
40
|
+
etherscanApiKey,
|
|
41
|
+
nextIndex,
|
|
42
|
+
});
|
|
43
|
+
rawCampaigns = [
|
|
44
|
+
...rawCampaigns,
|
|
45
|
+
...pendingRemoteCampaigns.filter((rmtC) => {
|
|
46
|
+
const existingCampaign = rawCampaigns.find((rc) => rc.addresses.length === rmtC.addresses.length &&
|
|
47
|
+
rc.addresses.every((rca, index) => equalTlc(rca, rmtC.addresses[index])) &&
|
|
48
|
+
equalTlc(rc.rewardAddress, rmtC.rewardAddress) &&
|
|
49
|
+
rc.rewardChainId === rmtC.rewardChainId &&
|
|
50
|
+
rc.campaign.startTimestamp === rmtC.campaign.startTimestamp &&
|
|
51
|
+
rc.campaign.endTimestamp === rmtC.campaign.endTimestamp &&
|
|
52
|
+
rc.campaign.numberOfPeriods === rmtC.campaign.numberOfPeriods &&
|
|
53
|
+
rc.campaign.maxRewardPerVote === rmtC.campaign.maxRewardPerVote &&
|
|
54
|
+
rc.campaign.totalRewardAmount === rmtC.campaign.totalRewardAmount &&
|
|
55
|
+
equalTlc(rc.campaign.gauge, rmtC.campaign.gauge) &&
|
|
56
|
+
equalTlc(rc.campaign.hook, rmtC.campaign.hook) &&
|
|
57
|
+
equalTlc(rc.campaign.manager, rmtC.campaign.manager));
|
|
58
|
+
return typeof existingCampaign === 'undefined';
|
|
59
|
+
}),
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
return await processRawCampaigns({ rawCampaigns, platform, chainId, gaugeController, rpcs });
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/votemarket/fetchCampaigns/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/votemarket/{fetchPendingRemoteCampaigns.js → fetchCampaigns/pendingRemote.js}
RENAMED
|
@@ -93,10 +93,11 @@ export const fetchPendingRemoteCampaigns = async ({ mainnetVmRemote, chainId, fr
|
|
|
93
93
|
})),
|
|
94
94
|
rewardAddress: campaignParams.rewardToken,
|
|
95
95
|
rewardChainId: BigInt(mainnet.id),
|
|
96
|
+
eventTimestamp: element.eventTimestamp,
|
|
96
97
|
};
|
|
97
98
|
nextIndex++;
|
|
98
99
|
return campaign;
|
|
99
100
|
});
|
|
100
101
|
return { remoteCampaigns, remoteCampaignsUpdate: manageParams };
|
|
101
102
|
};
|
|
102
|
-
//# sourceMappingURL=
|
|
103
|
+
//# sourceMappingURL=pendingRemote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingRemote.js","sourceRoot":"","sources":["../../../../src/votemarket/fetchCampaigns/pendingRemote.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,113 +1,26 @@
|
|
|
1
|
-
import { ONE_WEEK, Zero,
|
|
2
|
-
import { chunk, filter,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import { fetchPendingRemoteCampaigns } from './fetchPendingRemoteCampaigns.js';
|
|
1
|
+
import { ONE_WEEK, Zero, contracts, tokenWithAddress, tokens } from '@stake-dao/constants';
|
|
2
|
+
import { chunk, filter, remove, uniq } from 'lodash-es';
|
|
3
|
+
import { encodeAbiParameters, formatEther, formatUnits, parseAbiParameters } from 'viem';
|
|
4
|
+
import { mainnet } from 'viem/chains';
|
|
5
|
+
import batchCampaignsRestrictedVotes from '../../bytecodes/votemarket/batchCampaignsRestrictedVotes.js';
|
|
6
|
+
import batchGaugesWeight from '../../bytecodes/votemarket/batchGaugesWeight.js';
|
|
7
|
+
import { getPrices } from '../../prices.js';
|
|
8
|
+
import { rpcFetchTokensData } from '../../tokens.js';
|
|
9
|
+
import { batchJsonRpc, concatBytecode, equalTlc, lc, rpcGetLastBlockTimetstamp } from '../../utils.js';
|
|
10
|
+
import campaignsUnderlyingTokens from '../campaignsUnderlyingTokens.js';
|
|
11
|
+
import { updateEpoch } from './updateEpoch.js';
|
|
13
12
|
export const CAMPAIGNS_CHUNK_SIZE = 10;
|
|
14
13
|
export const CLAIM_WINDOW_LENGTH = 24; // weeks
|
|
15
14
|
export const CLOSE_WINDOW_LENGTH = 4; // weeks
|
|
16
|
-
const updateEpoch = ({ period, previousPeriod, campaign, totalVotes, remainingPeriods, }) => {
|
|
17
|
-
// -- _checkForUpgrade is handled in solidity BatchCampaigns.sol
|
|
18
|
-
// -- If not first period, check if previousPeriod is updated
|
|
19
|
-
if (!period.updated && (previousPeriod?.updated || typeof previousPeriod === 'undefined')) {
|
|
20
|
-
// Calculate remaining periods and total reward.
|
|
21
|
-
const totalRewardForRemainingPeriods = campaign.totalRewardAmount - campaign.totalDistributed;
|
|
22
|
-
// -- Update the period data.
|
|
23
|
-
const newRewardPerPeriod = remainingPeriods > 0 ? totalRewardForRemainingPeriods / BigInt(remainingPeriods) : totalRewardForRemainingPeriods;
|
|
24
|
-
period.rewardPerPeriod = newRewardPerPeriod;
|
|
25
|
-
// -- Update the reward per vote
|
|
26
|
-
// If no votes, rollover the leftover to the next epoch.
|
|
27
|
-
if (totalVotes === Zero) {
|
|
28
|
-
period.leftover = period.rewardPerPeriod;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
// Calculate reward per vote
|
|
32
|
-
let rewardPerVote = (newRewardPerPeriod * BigInt(1e18)) / totalVotes;
|
|
33
|
-
// Cap reward per vote at max reward per vote
|
|
34
|
-
if (rewardPerVote > campaign.maxRewardPerVote) {
|
|
35
|
-
rewardPerVote = campaign.maxRewardPerVote;
|
|
36
|
-
// Calculate leftover rewards
|
|
37
|
-
const leftOver = newRewardPerPeriod - (rewardPerVote * totalVotes) / BigInt(1e18);
|
|
38
|
-
// Handle leftover rewards
|
|
39
|
-
if (campaign.hook === zeroAddress) {
|
|
40
|
-
// Store leftover in the period if there is no hook.
|
|
41
|
-
period.leftover = period.leftover + leftOver;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// Save the calculated reward per vote.
|
|
45
|
-
period.rewardPerVote = rewardPerVote;
|
|
46
|
-
}
|
|
47
|
-
// -- Update the total distributed amount
|
|
48
|
-
campaign.totalDistributed = campaign.totalDistributed + newRewardPerPeriod - period.leftover;
|
|
49
|
-
// -- Mark the period as updated
|
|
50
|
-
period.updated = true;
|
|
51
|
-
}
|
|
52
|
-
return campaign;
|
|
53
|
-
};
|
|
54
15
|
const formatPeriod = (rawPeriod, decimals) => ({
|
|
55
16
|
rewardPerPeriod: formatUnits(rawPeriod.rewardPerPeriod, decimals),
|
|
56
17
|
rewardPerVote: formatUnits(rawPeriod.rewardPerVote, decimals),
|
|
57
18
|
leftover: formatUnits(rawPeriod.leftover, decimals),
|
|
58
19
|
updated: rawPeriod.updated,
|
|
59
20
|
});
|
|
60
|
-
export const
|
|
21
|
+
export const processRawCampaigns = async ({ rawCampaigns, platform, gaugeController, chainId, rpcs, }) => {
|
|
61
22
|
const rpc = rpcs[chainId];
|
|
62
23
|
const block = await rpcGetLastBlockTimetstamp(rpc);
|
|
63
|
-
const nCampaignsRequest = await rpcCall(rpc, [{ to: platform, data: '0x7274e30d' }]); // campaignCount
|
|
64
|
-
const nCampaigns = Number(decodeAbiParameters([{ type: 'uint256', name: 'campaignCount' }], nCampaignsRequest[0].result));
|
|
65
|
-
const calls = range(0, nCampaigns, CAMPAIGNS_CHUNK_SIZE).map((skip) => {
|
|
66
|
-
const inputParams = [
|
|
67
|
-
chainId,
|
|
68
|
-
platform,
|
|
69
|
-
contract('laPosteTokenFactory', chainId),
|
|
70
|
-
skip,
|
|
71
|
-
skip + CAMPAIGNS_CHUNK_SIZE > nCampaigns ? nCampaigns : skip + CAMPAIGNS_CHUNK_SIZE,
|
|
72
|
-
];
|
|
73
|
-
const inputData = encodeAbiParameters(parseAbiParameters(batchCampaigns.inputType[1]), inputParams);
|
|
74
|
-
return concatBytecode(batchCampaigns.bytecode[1], inputData);
|
|
75
|
-
});
|
|
76
|
-
let rawCampaigns = await batchJsonRpc({
|
|
77
|
-
rpc,
|
|
78
|
-
calls,
|
|
79
|
-
outputTypeAbi: batchCampaigns.outputType[1],
|
|
80
|
-
parse: false,
|
|
81
|
-
callsKey: `votemarket/fetchCampaigns.ts: rawCampaigns - chainId ${chainId} - rpc ${rpc}`,
|
|
82
|
-
});
|
|
83
|
-
if (chainId === arbitrum.id && etherscanApiKey && fromBlock && mainnetVmRemote) {
|
|
84
|
-
const nextIndex = rawCampaigns.length > 0 ? Math.max(...rawCampaigns.map((rc) => Number(rc.id))) + 1 : 0;
|
|
85
|
-
const { remoteCampaigns: pendingRemoteCampaigns } = await fetchPendingRemoteCampaigns({
|
|
86
|
-
mainnetVmRemote,
|
|
87
|
-
chainId,
|
|
88
|
-
fromBlock,
|
|
89
|
-
etherscanApiKey,
|
|
90
|
-
nextIndex,
|
|
91
|
-
});
|
|
92
|
-
rawCampaigns = [
|
|
93
|
-
...rawCampaigns,
|
|
94
|
-
...pendingRemoteCampaigns.filter((rmtC) => {
|
|
95
|
-
const existingCampaign = rawCampaigns.find((rc) => rc.addresses.length === rmtC.addresses.length &&
|
|
96
|
-
rc.addresses.every((rca, index) => equalTlc(rca, rmtC.addresses[index])) &&
|
|
97
|
-
equalTlc(rc.rewardAddress, rmtC.rewardAddress) &&
|
|
98
|
-
rc.rewardChainId === rmtC.rewardChainId &&
|
|
99
|
-
rc.campaign.startTimestamp === rmtC.campaign.startTimestamp &&
|
|
100
|
-
rc.campaign.endTimestamp === rmtC.campaign.endTimestamp &&
|
|
101
|
-
rc.campaign.numberOfPeriods === rmtC.campaign.numberOfPeriods &&
|
|
102
|
-
rc.campaign.maxRewardPerVote === rmtC.campaign.maxRewardPerVote &&
|
|
103
|
-
rc.campaign.totalRewardAmount === rmtC.campaign.totalRewardAmount &&
|
|
104
|
-
equalTlc(rc.campaign.gauge, rmtC.campaign.gauge) &&
|
|
105
|
-
equalTlc(rc.campaign.hook, rmtC.campaign.hook) &&
|
|
106
|
-
equalTlc(rc.campaign.manager, rmtC.campaign.manager));
|
|
107
|
-
return typeof existingCampaign === 'undefined';
|
|
108
|
-
}),
|
|
109
|
-
];
|
|
110
|
-
}
|
|
111
24
|
const callsRestrictedVotes = rawCampaigns
|
|
112
25
|
.filter((rc) => rc.addresses.length > 0)
|
|
113
26
|
.map((rc) => [rc.campaign.chainId, rc.id, rc.campaign.gauge, rc.addresses]);
|
|
@@ -222,7 +135,9 @@ export const fetchCampaigns = async ({ platform, gaugeController, chainId, rpcs,
|
|
|
222
135
|
const rawPreviousPeriod = rc.periods[indexOfCurrentPeriod - 1];
|
|
223
136
|
const restrictedVotesData = rawCampaignsRestrictedVotes.find((rvc) => rvc.chainId === rc.campaign.chainId && rvc.campaignId === rc.id && rvc.gauge === rc.campaign.gauge);
|
|
224
137
|
return {
|
|
138
|
+
key: `${chainId}-${lc(platform.slice(2, 6))}-${lc(platform.slice(-4))}-${Number(rc.id)}`,
|
|
225
139
|
id: Number(rc.id),
|
|
140
|
+
platform,
|
|
226
141
|
chainId,
|
|
227
142
|
rewardChainId: Number(rc.rewardChainId),
|
|
228
143
|
gaugeChainId: Number(rc.campaign.chainId),
|
|
@@ -258,4 +173,4 @@ export const fetchCampaigns = async ({ platform, gaugeController, chainId, rpcs,
|
|
|
258
173
|
});
|
|
259
174
|
return campaigns;
|
|
260
175
|
};
|
|
261
|
-
//# sourceMappingURL=
|
|
176
|
+
//# sourceMappingURL=processRawCampaigns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processRawCampaigns.js","sourceRoot":"","sources":["../../../../src/votemarket/fetchCampaigns/processRawCampaigns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Zero } from '@stake-dao/constants';
|
|
2
|
+
import { zeroAddress } from 'viem';
|
|
3
|
+
export const updateEpoch = ({ period, previousPeriod, campaign, totalVotes, remainingPeriods, }) => {
|
|
4
|
+
// -- _checkForUpgrade is handled in solidity BatchCampaigns.sol
|
|
5
|
+
// -- If not first period, check if previousPeriod is updated
|
|
6
|
+
if (!period.updated && (previousPeriod?.updated || typeof previousPeriod === 'undefined')) {
|
|
7
|
+
// Calculate remaining periods and total reward.
|
|
8
|
+
const totalRewardForRemainingPeriods = campaign.totalRewardAmount - campaign.totalDistributed;
|
|
9
|
+
// -- Update the period data.
|
|
10
|
+
const newRewardPerPeriod = remainingPeriods > 0 ? totalRewardForRemainingPeriods / BigInt(remainingPeriods) : totalRewardForRemainingPeriods;
|
|
11
|
+
period.rewardPerPeriod = newRewardPerPeriod;
|
|
12
|
+
// -- Update the reward per vote
|
|
13
|
+
// If no votes, rollover the leftover to the next epoch.
|
|
14
|
+
if (totalVotes === Zero) {
|
|
15
|
+
period.leftover = period.rewardPerPeriod;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
// Calculate reward per vote
|
|
19
|
+
let rewardPerVote = (newRewardPerPeriod * BigInt(1e18)) / totalVotes;
|
|
20
|
+
// Cap reward per vote at max reward per vote
|
|
21
|
+
if (rewardPerVote > campaign.maxRewardPerVote) {
|
|
22
|
+
rewardPerVote = campaign.maxRewardPerVote;
|
|
23
|
+
// Calculate leftover rewards
|
|
24
|
+
const leftOver = newRewardPerPeriod - (rewardPerVote * totalVotes) / BigInt(1e18);
|
|
25
|
+
// Handle leftover rewards
|
|
26
|
+
if (campaign.hook === zeroAddress) {
|
|
27
|
+
// Store leftover in the period if there is no hook.
|
|
28
|
+
period.leftover = period.leftover + leftOver;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Save the calculated reward per vote.
|
|
32
|
+
period.rewardPerVote = rewardPerVote;
|
|
33
|
+
}
|
|
34
|
+
// -- Update the total distributed amount
|
|
35
|
+
campaign.totalDistributed = campaign.totalDistributed + newRewardPerPeriod - period.leftover;
|
|
36
|
+
// -- Mark the period as updated
|
|
37
|
+
period.updated = true;
|
|
38
|
+
}
|
|
39
|
+
return campaign;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=updateEpoch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateEpoch.js","sourceRoot":"","sources":["../../../../src/votemarket/fetchCampaigns/updateEpoch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAGlC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,MAAM,EACN,cAAc,EACd,QAAQ,EACR,UAAU,EACV,gBAAgB,GAOjB,EAAE,EAAE;IACH,gEAAgE;IAChE,6DAA6D;IAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,OAAO,IAAI,OAAO,cAAc,KAAK,WAAW,CAAC,EAAE,CAAC;QAC1F,gDAAgD;QAChD,MAAM,8BAA8B,GAAW,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,CAAA;QAErG,6BAA6B;QAC7B,MAAM,kBAAkB,GACtB,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,8BAA8B,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAA;QACnH,MAAM,CAAC,eAAe,GAAG,kBAAkB,CAAA;QAE3C,gCAAgC;QAChC,wDAAwD;QACxD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAA;QAC1C,CAAC;aAAM,CAAC;YACN,4BAA4B;YAC5B,IAAI,aAAa,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAA;YAEpE,6CAA6C;YAC7C,IAAI,aAAa,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC9C,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAA;gBAEzC,6BAA6B;gBAC7B,MAAM,QAAQ,GAAG,kBAAkB,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;gBAEjF,0BAA0B;gBAC1B,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,oDAAoD;oBACpD,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBAC9C,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;QACtC,CAAC;QAED,yCAAyC;QACzC,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,GAAG,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAA;QAE5F,gCAAgC;QAChC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const GH_STAKE_DAO_RAW_ORG = "https://raw.githubusercontent.com/stake-dao";
|
|
2
2
|
export declare const GH_STAKE_DAO_BOUNTIES_REPORT = "https://raw.githubusercontent.com/stake-dao/bounties-report";
|
|
3
3
|
export declare const GH_STAKE_DAO_VM_DATA = "https://raw.githubusercontent.com/stake-dao/votemarket-data";
|
|
4
|
+
export declare const STAKE_DAO_API = "https://api.stakedao.org/api";
|
|
4
5
|
export declare const LLAMA_API_URL = "https://coins.llama.fi";
|
|
5
6
|
export declare const THE_GRAPH_BASE_URL = "https://gateway-arbitrum.network.thegraph.com/api/e3c2ef8231c88703a5b450c188ce2db6/subgraphs/id";
|
|
6
7
|
export declare const SNAPSHOT_HUB = "https://hub.snapshot.org/graphql";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/endpoints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,gDAAgD,CAAA;AACjF,eAAO,MAAM,4BAA4B,gEAA4C,CAAA;AACrF,eAAO,MAAM,oBAAoB,gEAA4C,CAAA;AAE7E,eAAO,MAAM,aAAa,2BAA2B,CAAA;AACrD,eAAO,MAAM,kBAAkB,oGACoE,CAAA;AAEnG,eAAO,MAAM,YAAY,qCAAqC,CAAA"}
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/endpoints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,gDAAgD,CAAA;AACjF,eAAO,MAAM,4BAA4B,gEAA4C,CAAA;AACrF,eAAO,MAAM,oBAAoB,gEAA4C,CAAA;AAE7E,eAAO,MAAM,aAAa,iCAAiC,CAAA;AAE3D,eAAO,MAAM,aAAa,2BAA2B,CAAA;AACrD,eAAO,MAAM,kBAAkB,oGACoE,CAAA;AAEnG,eAAO,MAAM,YAAY,qCAAqC,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -28,7 +28,9 @@ export { fetchPendle } from './strategies/pendle/fetch.js';
|
|
|
28
28
|
export { buildPendleStrategies } from './strategies/pendle/build.js';
|
|
29
29
|
export { default as getPendleApiData } from './strategies/pendle/getPendleApiData.js';
|
|
30
30
|
export { fetchStakeDao } from './strategies/stakeDao/fetch.js';
|
|
31
|
-
export {
|
|
31
|
+
export { processRawCampaigns } from './votemarket/fetchCampaigns/processRawCampaigns.js';
|
|
32
|
+
export { fetchPendingRemoteCampaigns } from './votemarket/fetchCampaigns/pendingRemote.js';
|
|
33
|
+
export { fetchCampaigns } from './votemarket/fetchCampaigns/index.js';
|
|
32
34
|
export type { Campaign } from './votemarket/types.js';
|
|
33
35
|
export { fetchCurveGauges } from './votemarket/curve/fetchCurveGauges.js';
|
|
34
36
|
export { fetchCurveUserVotes } from './votemarket/curve/fetchCurveUserVotes.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AAC9G,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKlD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAKzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAKjH,cAAc,6BAA6B,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AAGtG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAA;AAG/F,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAGrF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAS9D,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,7 @@ export declare const fetchLockers: ({ provider, chainId, prices, withAirdropGrap
|
|
|
90
90
|
veToken: import("@stake-dao/constants").Address;
|
|
91
91
|
gauge: import("@stake-dao/constants").Address;
|
|
92
92
|
accumulator: import("@stake-dao/constants").Address;
|
|
93
|
+
redeem?: import("@stake-dao/constants").Address;
|
|
93
94
|
};
|
|
94
95
|
secondaryMarket?: import("@stake-dao/constants").LockerSecondaryMarket;
|
|
95
96
|
veBoost?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAK5C,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAuB5F,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,YAAY,oDAA2D,aAAa
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lockers/fetch/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAK5C,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAuB5F,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,YAAY,oDAA2D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6RhG,CAAA"}
|
|
@@ -19,6 +19,10 @@ declare const pendlePoints: {
|
|
|
19
19
|
multiplier: number;
|
|
20
20
|
label: string;
|
|
21
21
|
}[];
|
|
22
|
+
'0x82d810ededb09614144900f914e75dd76700f19d': {
|
|
23
|
+
multiplier: number;
|
|
24
|
+
label: string;
|
|
25
|
+
}[];
|
|
22
26
|
};
|
|
23
27
|
export default pendlePoints;
|
|
24
28
|
//# sourceMappingURL=pendlePoints.d.ts.map
|