@stake-dao/reader 0.4.57 → 0.4.59
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/bytecodes/votemarket/batchUserVotes.js +39 -0
- package/dist/esm/bytecodes/votemarket/batchUserVotes.js.map +1 -0
- package/dist/esm/endpoints.js +1 -0
- package/dist/esm/endpoints.js.map +1 -1
- package/dist/esm/index.js +7 -2
- 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/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/votemarket/balancer/fetchBalancerUserVotes.js +42 -0
- package/dist/esm/votemarket/balancer/fetchBalancerUserVotes.js.map +1 -0
- package/dist/esm/votemarket/curve/fetchCurveUserVotes.js +8 -3
- package/dist/esm/votemarket/curve/fetchCurveUserVotes.js.map +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 +65 -0
- package/dist/esm/votemarket/fetchCampaigns/index.js.map +1 -0
- package/dist/esm/votemarket/{fetchPendingRemoteCampaigns.js → fetchCampaigns/pendingRemote.js} +7 -2
- package/dist/esm/votemarket/fetchCampaigns/pendingRemote.js.map +1 -0
- package/dist/esm/votemarket/{fetchCampaigns.js → fetchCampaigns/processRawCampaigns.js} +16 -101
- 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/esm/votemarket/fxn/fetchFxnUserVotes.js +42 -0
- package/dist/esm/votemarket/fxn/fetchFxnUserVotes.js.map +1 -0
- package/dist/types/bytecodes/votemarket/batchUserVotes.d.ts +4 -0
- package/dist/types/bytecodes/votemarket/batchUserVotes.d.ts.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 +5 -2
- 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/votemarket/balancer/fetchBalancerUserVotes.d.ts +16 -0
- package/dist/types/votemarket/balancer/fetchBalancerUserVotes.d.ts.map +1 -0
- package/dist/types/votemarket/curve/fetchCurveUserVotes.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} +4 -2
- 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/fxn/fetchFxnUserVotes.d.ts +16 -0
- package/dist/types/votemarket/fxn/fetchFxnUserVotes.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/bytecodes/votemarket/batchUserVotes.ts +41 -0
- package/src/endpoints.ts +2 -0
- package/src/index.ts +9 -2
- package/src/lockers/fetch/index.ts +1 -1
- package/src/votemarket/balancer/fetchBalancerUserVotes.ts +61 -0
- package/src/votemarket/curve/fetchCurveUserVotes.ts +9 -4
- package/src/votemarket/curve/fetchUserVlCvxClaimable.ts +114 -44
- package/src/votemarket/fetchCampaigns/index.ts +98 -0
- package/src/votemarket/{fetchPendingRemoteCampaigns.ts → fetchCampaigns/pendingRemote.ts} +7 -0
- package/src/votemarket/{fetchCampaigns.ts → fetchCampaigns/processRawCampaigns.ts} +20 -150
- package/src/votemarket/fetchCampaigns/updateEpoch.ts +63 -0
- package/src/votemarket/fxn/fetchFxnUserVotes.ts +61 -0
- package/src/votemarket/types.ts +3 -1
- package/dist/esm/bytecodes/votemarket/curve/batchCurveUserVotes.js +0 -39
- package/dist/esm/bytecodes/votemarket/curve/batchCurveUserVotes.js.map +0 -1
- package/dist/esm/votemarket/fetchCampaigns.js.map +0 -1
- package/dist/esm/votemarket/fetchPendingRemoteCampaigns.js.map +0 -1
- package/dist/types/bytecodes/votemarket/curve/batchCurveUserVotes.d.ts +0 -4
- package/dist/types/bytecodes/votemarket/curve/batchCurveUserVotes.d.ts.map +0 -1
- package/dist/types/votemarket/fetchCampaigns.d.ts.map +0 -1
- package/dist/types/votemarket/fetchPendingRemoteCampaigns.d.ts.map +0 -1
- package/src/bytecodes/votemarket/curve/batchCurveUserVotes.ts +0 -41
|
@@ -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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { contracts } from '@stake-dao/constants';
|
|
2
|
+
import { encodeAbiParameters, formatUnits, parseAbiParameters, zeroAddress } from 'viem';
|
|
3
|
+
import { mainnet } from 'viem/chains';
|
|
4
|
+
import batchUserVotes from '../../bytecodes/votemarket/batchUserVotes.js';
|
|
5
|
+
import { concatBytecode } from '../../index.js';
|
|
6
|
+
import { batchJsonRpc, equalTlc } from '../../utils.js';
|
|
7
|
+
export const fetchFxnUserVotes = async (rpc, user) => {
|
|
8
|
+
const calls = [
|
|
9
|
+
concatBytecode(batchUserVotes.bytecode[mainnet.id], encodeAbiParameters(parseAbiParameters(batchUserVotes.inputType[mainnet.id]), [
|
|
10
|
+
user,
|
|
11
|
+
contracts.fxnGaugeController[1],
|
|
12
|
+
contracts.veFxn[1],
|
|
13
|
+
])),
|
|
14
|
+
];
|
|
15
|
+
const rawVotes = await batchJsonRpc({
|
|
16
|
+
rpc,
|
|
17
|
+
calls,
|
|
18
|
+
outputTypeAbi: batchUserVotes.outputType[mainnet.id],
|
|
19
|
+
parse: false,
|
|
20
|
+
callsKey: `votemarket/fxn/fetchFxnUserVotes.ts: rawGauges - chainId ${mainnet.id} - rpc ${rpc}`,
|
|
21
|
+
});
|
|
22
|
+
const veBalance = rawVotes[0].veBalance;
|
|
23
|
+
const votes = rawVotes[0].votes
|
|
24
|
+
.filter((rv) => !equalTlc(rv.gauge, zeroAddress))
|
|
25
|
+
.map((v) => ({
|
|
26
|
+
gauge: v.gauge,
|
|
27
|
+
slope: formatUnits(v.slope, 0),
|
|
28
|
+
relativeWeight: Number(v.power) / 100,
|
|
29
|
+
weight: formatUnits((veBalance * BigInt(v.power)) / BigInt(10000), 18),
|
|
30
|
+
start: Number(v.start),
|
|
31
|
+
end: Number(v.end),
|
|
32
|
+
}));
|
|
33
|
+
const unusedRelativeWeight = 10000 - votes.reduce((total, x) => total + x.relativeWeight * 100, 0);
|
|
34
|
+
const unusedVeBalance = (veBalance * BigInt(unusedRelativeWeight)) / BigInt(10000);
|
|
35
|
+
return {
|
|
36
|
+
veBalance: formatUnits(veBalance, 18),
|
|
37
|
+
unusedVeBalance: formatUnits(unusedVeBalance, 18),
|
|
38
|
+
unusedRelativeWeight: unusedRelativeWeight / 100,
|
|
39
|
+
votes,
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=fetchFxnUserVotes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchFxnUserVotes.js","sourceRoot":"","sources":["../../../../src/votemarket/fxn/fetchFxnUserVotes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,cAAc,MAAM,8CAA8C,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAavD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,IAAY,EAA2B,EAAE;IAC5F,MAAM,KAAK,GAAG;QACZ,cAAc,CACZ,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAE,EACpC,mBAAmB,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAE,CAAQ,EAAE;YACpF,IAAI;YACJ,SAAS,CAAC,kBAAmB,CAAC,CAAC,CAAE;YACjC,SAAS,CAAC,KAAM,CAAC,CAAC,CAAE;SACrB,CAAC,CACH;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;QAClC,GAAG;QACH,KAAK;QACL,aAAa,EAAE,cAAc,CAAC,UAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,4DAA4D,OAAO,CAAC,EAAE,UAAU,GAAG,EAAE;KAChG,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEvC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;SAC5B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9B,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;QACrC,MAAM,EAAE,WAAW,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACtE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;KACnB,CAAC,CAAC,CAAA;IAEL,MAAM,oBAAoB,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;IAClG,MAAM,eAAe,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAElF,OAAO;QACL,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;QACrC,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC;QACjD,oBAAoB,EAAE,oBAAoB,GAAG,GAAG;QAChD,KAAK;KACN,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchUserVotes.d.ts","sourceRoot":"","sources":["../../../../src/bytecodes/votemarket/batchUserVotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,QAAA,MAAM,mBAAmB,EAAE,aAoC1B,CAAA;AAED,eAAe,mBAAmB,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,12 +28,15 @@ 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 {
|
|
32
|
-
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';
|
|
33
34
|
export type { Campaign } from './votemarket/types.js';
|
|
34
35
|
export { fetchCurveGauges } from './votemarket/curve/fetchCurveGauges.js';
|
|
35
36
|
export { fetchCurveUserVotes } from './votemarket/curve/fetchCurveUserVotes.js';
|
|
36
37
|
export { fetchSnapshotUserData } from './votemarket/curve/fetchSnapshotUserData.js';
|
|
38
|
+
export { fetchBalancerUserVotes } from './votemarket/balancer/fetchBalancerUserVotes.js';
|
|
39
|
+
export { fetchFxnUserVotes } from './votemarket/fxn/fetchFxnUserVotes.js';
|
|
37
40
|
export { fetchEpochsVotes } from './votemarket/fetchEpochVotes.js';
|
|
38
41
|
export { fetchClaimableData } from './votemarket/fetchClaimableData.js';
|
|
39
42
|
export { fetchNeededCampaignUpdate } from './votemarket/fetchNeededCampaignUpdate.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,2BAA2B,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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Vote = {
|
|
2
|
+
gauge: string;
|
|
3
|
+
slope: string;
|
|
4
|
+
relativeWeight: number;
|
|
5
|
+
weight: number;
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
};
|
|
9
|
+
export type GaugesUserData = {
|
|
10
|
+
veBalance: string;
|
|
11
|
+
unusedVeBalance: string;
|
|
12
|
+
unusedRelativeWeight: number;
|
|
13
|
+
votes: Vote[];
|
|
14
|
+
};
|
|
15
|
+
export declare const fetchBalancerUserVotes: (rpc: string, user: string) => Promise<GaugesUserData>;
|
|
16
|
+
//# sourceMappingURL=fetchBalancerUserVotes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchBalancerUserVotes.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/balancer/fetchBalancerUserVotes.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAA;AAExH,eAAO,MAAM,sBAAsB,QAAe,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,cAAc,CA0C9F,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchCurveUserVotes.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchCurveUserVotes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetchCurveUserVotes.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchCurveUserVotes.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAA;AAExH,eAAO,MAAM,mBAAmB,QAAe,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,cAAc,CA0C3F,CAAA"}
|
|
@@ -2,7 +2,9 @@ import { type Address } from 'viem';
|
|
|
2
2
|
type Rpcs = {
|
|
3
3
|
[chainId: number]: string;
|
|
4
4
|
};
|
|
5
|
-
export declare const fetchUserVlCvxClaimable: (provider: any, rpc: Rpcs, user: string) => Promise<({
|
|
5
|
+
export declare const fetchUserVlCvxClaimable: (provider: any, rpc: Rpcs, user: string, chainId: number) => Promise<({
|
|
6
|
+
user: string;
|
|
7
|
+
recipient: string;
|
|
6
8
|
token: any;
|
|
7
9
|
claimable: string;
|
|
8
10
|
claimableUsd: number;
|
|
@@ -11,6 +13,20 @@ export declare const fetchUserVlCvxClaimable: (provider: any, rpc: Rpcs, user: s
|
|
|
11
13
|
proof: any;
|
|
12
14
|
merkleAddress: Address;
|
|
13
15
|
isClaimed: boolean;
|
|
16
|
+
chainId: number;
|
|
17
|
+
} | {
|
|
18
|
+
user: string;
|
|
19
|
+
recipient: string;
|
|
20
|
+
token: any;
|
|
21
|
+
claimable: string;
|
|
22
|
+
claimableUsd: number;
|
|
23
|
+
amount: string;
|
|
24
|
+
amountUsd: number;
|
|
25
|
+
proof: any;
|
|
26
|
+
merkleAddress: string;
|
|
27
|
+
isClaimed: any;
|
|
28
|
+
index: any;
|
|
29
|
+
chainId: 1;
|
|
14
30
|
} | undefined)[]>;
|
|
15
31
|
export {};
|
|
16
32
|
//# sourceMappingURL=fetchUserVlCvxClaimable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchUserVlCvxClaimable.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchUserVlCvxClaimable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,MAAM,CAAA;AAO1D,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;
|
|
1
|
+
{"version":3,"file":"fetchUserVlCvxClaimable.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/curve/fetchUserVlCvxClaimable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,MAAM,CAAA;AAO1D,KAAK,IAAI,GAAG;IACV,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AA4JD,eAAO,MAAM,uBAAuB,aAAoB,GAAG,OAAO,IAAI,QAAQ,MAAM,WAAW,MAAM;;;;;;;;;mBAnC3D,OAAO;;;;;;;;;;;;;;;;iBAiHhD,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Campaign } from '
|
|
1
|
+
import type { Campaign } from '../types.js';
|
|
2
2
|
export declare const CAMPAIGNS_CHUNK_SIZE = 10;
|
|
3
3
|
export declare const CLAIM_WINDOW_LENGTH = 24;
|
|
4
4
|
export declare const CLOSE_WINDOW_LENGTH = 4;
|
|
@@ -15,4 +15,4 @@ interface FetchCampaignsProps {
|
|
|
15
15
|
}
|
|
16
16
|
export declare const fetchCampaigns: ({ platform, gaugeController, chainId, rpcs, etherscanApiKey, fromBlock, mainnetVmRemote, }: FetchCampaignsProps) => Promise<Campaign[]>;
|
|
17
17
|
export {};
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/fetchCampaigns/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,eAAO,MAAM,oBAAoB,KAAK,CAAA;AACtC,eAAO,MAAM,mBAAmB,KAAK,CAAA;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACnC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,cAAc,+FAQxB,mBAAmB,KAAG,OAAO,CAAC,QAAQ,EAAE,CAiE1C,CAAA"}
|
package/dist/types/votemarket/{fetchPendingRemoteCampaigns.d.ts → fetchCampaigns/pendingRemote.d.ts}
RENAMED
|
@@ -7,8 +7,9 @@ interface FetchPendingRemoteCampaignsProps {
|
|
|
7
7
|
fromBlock: number;
|
|
8
8
|
etherscanApiKey: string;
|
|
9
9
|
nextIndex: number;
|
|
10
|
+
votemarket: string;
|
|
10
11
|
}
|
|
11
|
-
export declare const fetchPendingRemoteCampaigns: ({ mainnetVmRemote, chainId, fromBlock, etherscanApiKey, nextIndex, }: FetchPendingRemoteCampaignsProps) => Promise<{
|
|
12
|
+
export declare const fetchPendingRemoteCampaigns: ({ mainnetVmRemote, chainId, fromBlock, etherscanApiKey, nextIndex, votemarket, }: FetchPendingRemoteCampaignsProps) => Promise<{
|
|
12
13
|
remoteCampaigns: {
|
|
13
14
|
isPendingRemote: boolean;
|
|
14
15
|
id: bigint;
|
|
@@ -39,8 +40,9 @@ export declare const fetchPendingRemoteCampaigns: ({ mainnetVmRemote, chainId, f
|
|
|
39
40
|
}[];
|
|
40
41
|
rewardAddress: any;
|
|
41
42
|
rewardChainId: bigint;
|
|
43
|
+
eventTimestamp: any;
|
|
42
44
|
}[];
|
|
43
45
|
remoteCampaignsUpdate: any[];
|
|
44
46
|
}>;
|
|
45
47
|
export {};
|
|
46
|
-
//# sourceMappingURL=
|
|
48
|
+
//# sourceMappingURL=pendingRemote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingRemote.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/fetchCampaigns/pendingRemote.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,KAAK,CAAA;AACtC,eAAO,MAAM,mBAAmB,KAAK,CAAA;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,UAAU,gCAAgC;IACxC,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,2BAA2B,qFAOrC,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyHlC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Campaign } from '../types.js';
|
|
2
|
+
export declare const CAMPAIGNS_CHUNK_SIZE = 10;
|
|
3
|
+
export declare const CLAIM_WINDOW_LENGTH = 24;
|
|
4
|
+
export declare const CLOSE_WINDOW_LENGTH = 4;
|
|
5
|
+
interface ProcessRawCampaignsProps {
|
|
6
|
+
rawCampaigns: any[];
|
|
7
|
+
platform: string;
|
|
8
|
+
gaugeController: string;
|
|
9
|
+
chainId: number;
|
|
10
|
+
rpcs: {
|
|
11
|
+
[chainId: number]: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare const processRawCampaigns: ({ rawCampaigns, platform, gaugeController, chainId, rpcs, }: ProcessRawCampaignsProps) => Promise<Campaign[]>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=processRawCampaigns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processRawCampaigns.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/fetchCampaigns/processRawCampaigns.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAG3C,eAAO,MAAM,oBAAoB,KAAK,CAAA;AACtC,eAAO,MAAM,mBAAmB,KAAK,CAAA;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,UAAU,wBAAwB;IAChC,YAAY,EAAE,GAAG,EAAE,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AASD,eAAO,MAAM,mBAAmB,gEAM7B,wBAAwB,KAAG,OAAO,CAAC,QAAQ,EAAE,CAkM/C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RawCampaign, RawPeriod } from '../types.js';
|
|
2
|
+
export declare const updateEpoch: ({ period, previousPeriod, campaign, totalVotes, remainingPeriods, }: {
|
|
3
|
+
period: RawPeriod;
|
|
4
|
+
previousPeriod?: RawPeriod;
|
|
5
|
+
campaign: RawCampaign;
|
|
6
|
+
totalVotes: bigint;
|
|
7
|
+
remainingPeriods: number;
|
|
8
|
+
}) => RawCampaign;
|
|
9
|
+
//# sourceMappingURL=updateEpoch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateEpoch.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/fetchCampaigns/updateEpoch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEzD,eAAO,MAAM,WAAW,wEAMrB;IACD,MAAM,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,EAAE,WAAW,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;CACzB,gBA8CA,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Vote = {
|
|
2
|
+
gauge: string;
|
|
3
|
+
slope: string;
|
|
4
|
+
relativeWeight: number;
|
|
5
|
+
weight: number;
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
};
|
|
9
|
+
export type GaugesUserData = {
|
|
10
|
+
veBalance: string;
|
|
11
|
+
unusedVeBalance: string;
|
|
12
|
+
unusedRelativeWeight: number;
|
|
13
|
+
votes: Vote[];
|
|
14
|
+
};
|
|
15
|
+
export declare const fetchFxnUserVotes: (rpc: string, user: string) => Promise<GaugesUserData>;
|
|
16
|
+
//# sourceMappingURL=fetchFxnUserVotes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchFxnUserVotes.d.ts","sourceRoot":"","sources":["../../../../src/votemarket/fxn/fetchFxnUserVotes.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAA;AAExH,eAAO,MAAM,iBAAiB,QAAe,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,cAAc,CA0CzF,CAAA"}
|
|
@@ -5,7 +5,9 @@ export type Period = {
|
|
|
5
5
|
updated: boolean;
|
|
6
6
|
};
|
|
7
7
|
export type Campaign = {
|
|
8
|
+
key: string;
|
|
8
9
|
id: number;
|
|
10
|
+
platform: string;
|
|
9
11
|
chainId: number;
|
|
10
12
|
gauge: string;
|
|
11
13
|
gaugeChainId: number;
|
|
@@ -38,7 +40,7 @@ export type Campaign = {
|
|
|
38
40
|
addresses: string[];
|
|
39
41
|
isWhitelist: boolean;
|
|
40
42
|
isBlacklist: boolean;
|
|
41
|
-
previousPeriod: Period;
|
|
43
|
+
previousPeriod: Period | undefined;
|
|
42
44
|
currentPeriod: Period;
|
|
43
45
|
periodLeft: number;
|
|
44
46
|
periods: Period[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/votemarket/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,EAAE,OAAO,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/votemarket/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE;QAClB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,EAAE,OAAO,CAAA;IACpB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO,CAAA;QACjB,UAAU,EAAE,OAAO,CAAA;QACnB,SAAS,EAAE,OAAO,CAAA;QAClB,WAAW,EAAE,OAAO,CAAA;QACpB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAID,MAAM,MAAM,SAAS,GAAG;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stake-dao/reader",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.59",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -34,11 +34,12 @@
|
|
|
34
34
|
"dayjs": "^1.11.11",
|
|
35
35
|
"graphql-request": "^6.0.0",
|
|
36
36
|
"lodash-es": "^4.17.21",
|
|
37
|
-
"viem": "^2.
|
|
38
|
-
"@stake-dao/constants": "0.4.
|
|
37
|
+
"viem": "^2.21.53",
|
|
38
|
+
"@stake-dao/constants": "0.4.27"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@types/lodash-es": "^4.17.12"
|
|
41
|
+
"@types/lodash-es": "^4.17.12",
|
|
42
|
+
"typescript": "5.7.3"
|
|
42
43
|
},
|
|
43
44
|
"author": "Stake DAO",
|
|
44
45
|
"contributors": [
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BatchMetaData } from '../types.js'
|
|
2
|
+
|
|
3
|
+
const batchCurveUserVotes: BatchMetaData = {
|
|
4
|
+
bytecode: {
|
|
5
|
+
1: '0x608060405234801561000f575f80fd5b506040516109bd3803806109bd833981810160405281019061003191906105dc565b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff1663e93841d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561007f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a3919061065f565b90506100ad610525565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016100e69190610699565b602060405180830381865afa158015610101573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610125919061065f565b815f0181815250505f805b838110156103b5575f8573ffffffffffffffffffffffffffffffffffffffff1663b0539187836040518263ffffffff1660e01b815260040161017291906106c1565b602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b191906106da565b90506101bb61053e565b8673ffffffffffffffffffffffffffffffffffffffff16630f467f988b846040518363ffffffff1660e01b81526004016101f6929190610705565b606060405180830381865afa158015610211573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610235919061072c565b8360200184604001856080018381525083815250838152505050505f816040015111156103a65781815f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508673ffffffffffffffffffffffffffffffffffffffff16637e418fa08b846040518363ffffffff1660e01b81526004016102ce929190610705565b602060405180830381865afa1580156102e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d919061065f565b816060018181525050805f808681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030155608082015181600401559050506001846103a391906107a9565b93505b50508080600101915050610130565b506103c5816103fb60201b60201c565b82602001819052505f826040516020016103df9190610942565b6040516020818303038152906040529050602081018059038082f35b60608167ffffffffffffffff81111561041757610416610962565b5b60405190808252806020026020018201604052801561045057816020015b61043d61053e565b8152602001906001900390816104355790505b5090505f5b8281101561051f575f808281526020019081526020015f206040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815250508282815181106105075761050661098f565b5b60200260200101819052508080600101915050610455565b50919050565b60405180604001604052805f8152602001606081525090565b6040518060a001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81526020015f81525090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105ab82610582565b9050919050565b6105bb816105a1565b81146105c5575f80fd5b50565b5f815190506105d6816105b2565b92915050565b5f805f606084860312156105f3576105f261057e565b5b5f610600868287016105c8565b9350506020610611868287016105c8565b9250506040610622868287016105c8565b9150509250925092565b5f819050919050565b61063e8161062c565b8114610648575f80fd5b50565b5f8151905061065981610635565b92915050565b5f602082840312156106745761067361057e565b5b5f6106818482850161064b565b91505092915050565b610693816105a1565b82525050565b5f6020820190506106ac5f83018461068a565b92915050565b6106bb8161062c565b82525050565b5f6020820190506106d45f8301846106b2565b92915050565b5f602082840312156106ef576106ee61057e565b5b5f6106fc848285016105c8565b91505092915050565b5f6040820190506107185f83018561068a565b610725602083018461068a565b9392505050565b5f805f606084860312156107435761074261057e565b5b5f6107508682870161064b565b93505060206107618682870161064b565b92505060406107728682870161064b565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107b38261062c565b91506107be8361062c565b92508282019050808211156107d6576107d561077c565b5b92915050565b6107e58161062c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61081d816105a1565b82525050565b60a082015f8201516108375f850182610814565b50602082015161084a60208501826107dc565b50604082015161085d60408501826107dc565b50606082015161087060608501826107dc565b50608082015161088360808501826107dc565b50505050565b5f6108948383610823565b60a08301905092915050565b5f602082019050919050565b5f6108b6826107eb565b6108c081856107f5565b93506108cb83610805565b805f5b838110156108fb5781516108e28882610889565b97506108ed836108a0565b9250506001810190506108ce565b5085935050505092915050565b5f604083015f83015161091d5f8601826107dc565b506020830151848203602086015261093582826108ac565b9150508091505092915050565b5f6020820190508181035f83015261095a8184610908565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfe',
|
|
6
|
+
},
|
|
7
|
+
inputType: {
|
|
8
|
+
1: ['address user', 'address gaugeController', 'address veToken'],
|
|
9
|
+
},
|
|
10
|
+
outputTypeHr: {
|
|
11
|
+
1: [
|
|
12
|
+
'ReturnData memory returnData',
|
|
13
|
+
'struct ReturnData { uint256 veBalance; Vote[] votes; }',
|
|
14
|
+
'struct Vote { address gauge; uint256 slope; uint256 power; uint256 start; uint256 end; }',
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
outputType: {
|
|
18
|
+
1: [
|
|
19
|
+
{
|
|
20
|
+
type: 'tuple',
|
|
21
|
+
name: 'returnData',
|
|
22
|
+
components: [
|
|
23
|
+
{ type: 'uint256', name: 'veBalance' },
|
|
24
|
+
{
|
|
25
|
+
type: 'tuple[]',
|
|
26
|
+
name: 'votes',
|
|
27
|
+
components: [
|
|
28
|
+
{ type: 'address', name: 'gauge' },
|
|
29
|
+
{ type: 'uint256', name: 'slope' },
|
|
30
|
+
{ type: 'uint256', name: 'power' },
|
|
31
|
+
{ type: 'uint256', name: 'start' },
|
|
32
|
+
{ type: 'uint256', name: 'end' },
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default batchCurveUserVotes
|
package/src/endpoints.ts
CHANGED
|
@@ -2,6 +2,8 @@ export const GH_STAKE_DAO_RAW_ORG = 'https://raw.githubusercontent.com/stake-dao
|
|
|
2
2
|
export const GH_STAKE_DAO_BOUNTIES_REPORT = `${GH_STAKE_DAO_RAW_ORG}/bounties-report`
|
|
3
3
|
export const GH_STAKE_DAO_VM_DATA = `${GH_STAKE_DAO_RAW_ORG}/votemarket-data`
|
|
4
4
|
|
|
5
|
+
export const STAKE_DAO_API = 'https://api.stakedao.org/api'
|
|
6
|
+
|
|
5
7
|
export const LLAMA_API_URL = 'https://coins.llama.fi'
|
|
6
8
|
export const THE_GRAPH_BASE_URL =
|
|
7
9
|
'https://gateway-arbitrum.network.thegraph.com/api/e3c2ef8231c88703a5b450c188ce2db6/subgraphs/id'
|
package/src/index.ts
CHANGED
|
@@ -67,8 +67,9 @@ export { fetchStakeDao } from './strategies/stakeDao/fetch.js'
|
|
|
67
67
|
/// --- VOTEMARKET
|
|
68
68
|
|
|
69
69
|
// General
|
|
70
|
-
export {
|
|
71
|
-
export {
|
|
70
|
+
export { processRawCampaigns } from './votemarket/fetchCampaigns/processRawCampaigns.js'
|
|
71
|
+
export { fetchPendingRemoteCampaigns } from './votemarket/fetchCampaigns/pendingRemote.js'
|
|
72
|
+
export { fetchCampaigns } from './votemarket/fetchCampaigns/index.js'
|
|
72
73
|
export type { Campaign } from './votemarket/types.js'
|
|
73
74
|
|
|
74
75
|
// Curve
|
|
@@ -76,6 +77,12 @@ export { fetchCurveGauges } from './votemarket/curve/fetchCurveGauges.js'
|
|
|
76
77
|
export { fetchCurveUserVotes } from './votemarket/curve/fetchCurveUserVotes.js'
|
|
77
78
|
export { fetchSnapshotUserData } from './votemarket/curve/fetchSnapshotUserData.js'
|
|
78
79
|
|
|
80
|
+
// Balancer
|
|
81
|
+
export { fetchBalancerUserVotes } from './votemarket/balancer/fetchBalancerUserVotes.js'
|
|
82
|
+
|
|
83
|
+
// Fxn
|
|
84
|
+
export { fetchFxnUserVotes } from './votemarket/fxn/fetchFxnUserVotes.js'
|
|
85
|
+
|
|
79
86
|
// Campaign data
|
|
80
87
|
export { fetchEpochsVotes } from './votemarket/fetchEpochVotes.js'
|
|
81
88
|
export { fetchClaimableData } from './votemarket/fetchClaimableData.js'
|
|
@@ -188,7 +188,7 @@ export const fetchLockers = async ({ provider, chainId, prices, withAirdropGraph
|
|
|
188
188
|
const rewardPrice = prices.find((p) => p.address === r.address)?.usdPrice || 0
|
|
189
189
|
|
|
190
190
|
const periodFinish = Number(formatUnits(rawData ? rawData[2] : Zero, 0))
|
|
191
|
-
const streaming = periodFinish > Math.floor(Date.now() / 1000)
|
|
191
|
+
const streaming = r.distribution === 'streamed' && periodFinish > Math.floor(Date.now() / 1000)
|
|
192
192
|
|
|
193
193
|
const rate = rawData ? rawData[3] : Zero
|
|
194
194
|
const oneYearRate = rate * BigInt(ONE_YEAR)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { contracts } from '@stake-dao/constants'
|
|
2
|
+
import { encodeAbiParameters, formatUnits, parseAbiParameters, zeroAddress } from 'viem'
|
|
3
|
+
import { mainnet } from 'viem/chains'
|
|
4
|
+
import batchUserVotes from '../../bytecodes/votemarket/batchUserVotes.js'
|
|
5
|
+
import { concatBytecode } from '../../index.js'
|
|
6
|
+
import { batchJsonRpc, equalTlc } from '../../utils.js'
|
|
7
|
+
|
|
8
|
+
export type Vote = {
|
|
9
|
+
gauge: string
|
|
10
|
+
slope: string
|
|
11
|
+
relativeWeight: number
|
|
12
|
+
weight: number
|
|
13
|
+
start: number
|
|
14
|
+
end: number
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type GaugesUserData = { veBalance: string; unusedVeBalance: string; unusedRelativeWeight: number; votes: Vote[] }
|
|
18
|
+
|
|
19
|
+
export const fetchBalancerUserVotes = async (rpc: string, user: string): Promise<GaugesUserData> => {
|
|
20
|
+
const calls = [
|
|
21
|
+
concatBytecode(
|
|
22
|
+
batchUserVotes.bytecode[mainnet.id]!,
|
|
23
|
+
encodeAbiParameters(parseAbiParameters(batchUserVotes.inputType[mainnet.id]!) as any, [
|
|
24
|
+
user,
|
|
25
|
+
contracts.balancerGaugeController![1]!,
|
|
26
|
+
contracts.veBal![1],
|
|
27
|
+
]),
|
|
28
|
+
),
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
const rawVotes = await batchJsonRpc({
|
|
32
|
+
rpc,
|
|
33
|
+
calls,
|
|
34
|
+
outputTypeAbi: batchUserVotes.outputType![mainnet.id],
|
|
35
|
+
parse: false,
|
|
36
|
+
callsKey: `votemarket/balancer/fetchBalancerUserVotes.ts: rawGauges - chainId ${mainnet.id} - rpc ${rpc}`,
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
const veBalance = rawVotes[0].veBalance
|
|
40
|
+
|
|
41
|
+
const votes = rawVotes[0].votes
|
|
42
|
+
.filter((rv) => !equalTlc(rv.gauge, zeroAddress))
|
|
43
|
+
.map((v) => ({
|
|
44
|
+
gauge: v.gauge,
|
|
45
|
+
slope: formatUnits(v.slope, 0),
|
|
46
|
+
relativeWeight: Number(v.power) / 100,
|
|
47
|
+
weight: formatUnits((veBalance * BigInt(v.power)) / BigInt(10000), 18),
|
|
48
|
+
start: Number(v.start),
|
|
49
|
+
end: Number(v.end),
|
|
50
|
+
}))
|
|
51
|
+
|
|
52
|
+
const unusedRelativeWeight = 10000 - votes.reduce((total, x) => total + x.relativeWeight * 100, 0)
|
|
53
|
+
const unusedVeBalance = (veBalance * BigInt(unusedRelativeWeight)) / BigInt(10000)
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
veBalance: formatUnits(veBalance, 18),
|
|
57
|
+
unusedVeBalance: formatUnits(unusedVeBalance, 18),
|
|
58
|
+
unusedRelativeWeight: unusedRelativeWeight / 100,
|
|
59
|
+
votes,
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { contracts } from '@stake-dao/constants'
|
|
1
2
|
import { encodeAbiParameters, formatUnits, parseAbiParameters, zeroAddress } from 'viem'
|
|
2
3
|
import { mainnet } from 'viem/chains'
|
|
3
|
-
import
|
|
4
|
+
import batchUserVotes from '../../bytecodes/votemarket/batchUserVotes.js'
|
|
4
5
|
import { concatBytecode } from '../../index.js'
|
|
5
6
|
import { batchJsonRpc, equalTlc } from '../../utils.js'
|
|
6
7
|
|
|
@@ -18,15 +19,19 @@ export type GaugesUserData = { veBalance: string; unusedVeBalance: string; unuse
|
|
|
18
19
|
export const fetchCurveUserVotes = async (rpc: string, user: string): Promise<GaugesUserData> => {
|
|
19
20
|
const calls = [
|
|
20
21
|
concatBytecode(
|
|
21
|
-
|
|
22
|
-
encodeAbiParameters(parseAbiParameters(
|
|
22
|
+
batchUserVotes.bytecode[mainnet.id]!,
|
|
23
|
+
encodeAbiParameters(parseAbiParameters(batchUserVotes.inputType[mainnet.id]!) as any, [
|
|
24
|
+
user,
|
|
25
|
+
contracts.curveGaugeController![1]!,
|
|
26
|
+
contracts.veCrv![1]!,
|
|
27
|
+
]),
|
|
23
28
|
),
|
|
24
29
|
]
|
|
25
30
|
|
|
26
31
|
const rawVotes = await batchJsonRpc({
|
|
27
32
|
rpc,
|
|
28
33
|
calls,
|
|
29
|
-
outputTypeAbi:
|
|
34
|
+
outputTypeAbi: batchUserVotes.outputType![mainnet.id],
|
|
30
35
|
parse: false,
|
|
31
36
|
callsKey: `votemarket/curve/fetchCurveUserVotes.ts: rawGauges - chainId ${mainnet.id} - rpc ${rpc}`,
|
|
32
37
|
})
|