@factordao/governance 1.0.5 → 1.0.7
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/cjs/index.js +182 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/mjs/index.js +179 -0
- package/dist/mjs/index.js.map +1 -1
- package/package.json +1 -1
- package/types/index.d.ts +14 -1
- package/types/types/index.d.ts +26 -0
package/dist/cjs/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FactorEnvironment = void 0;
|
|
3
4
|
exports.getAvailableVaultsForVoting = getAvailableVaultsForVoting;
|
|
4
5
|
exports.getVotesForUser = getVotesForUser;
|
|
5
6
|
exports.getVotesForAllUsers = getVotesForAllUsers;
|
|
@@ -7,7 +8,13 @@ exports.getRewardsForVault = getRewardsForVault;
|
|
|
7
8
|
exports.getRewardsForAllVaults = getRewardsForAllVaults;
|
|
8
9
|
exports.getTokenBalancesForUser = getTokenBalancesForUser;
|
|
9
10
|
exports.getTokenBalancesForAllUsers = getTokenBalancesForAllUsers;
|
|
11
|
+
exports.getVaultsWithFullData = getVaultsWithFullData;
|
|
10
12
|
const subgraphs_1 = require("./utils/subgraphs");
|
|
13
|
+
const types_1 = require("./types");
|
|
14
|
+
const tokenlist_1 = require("@factordao/tokenlist");
|
|
15
|
+
// Re-export types and enums for consumers
|
|
16
|
+
var types_2 = require("./types");
|
|
17
|
+
Object.defineProperty(exports, "FactorEnvironment", { enumerable: true, get: function () { return types_2.FactorEnvironment; } });
|
|
11
18
|
async function getAvailableVaultsForVoting(chainId, environment) {
|
|
12
19
|
const subgraphUrl = subgraphs_1.factorScaleSubgraphUrl[chainId]?.[environment];
|
|
13
20
|
if (!subgraphUrl) {
|
|
@@ -105,6 +112,7 @@ function transformVaultReward(data) {
|
|
|
105
112
|
return {
|
|
106
113
|
vault: data.vault,
|
|
107
114
|
fctrPerSec,
|
|
115
|
+
fctrPerSecFmt: formatWeiToDecimal(fctrPerSec),
|
|
108
116
|
incentiveEndsAt,
|
|
109
117
|
block: Number(data.block),
|
|
110
118
|
timestamp,
|
|
@@ -310,4 +318,178 @@ async function getTokenBalancesForAllUsers(chainId, environment) {
|
|
|
310
318
|
}
|
|
311
319
|
return balancesByUser;
|
|
312
320
|
}
|
|
321
|
+
// Helper to get user's total voting power from their balances
|
|
322
|
+
function getUserVotingPower(userBalances) {
|
|
323
|
+
if (!userBalances)
|
|
324
|
+
return 0n;
|
|
325
|
+
// Sum up voting power from all veFCTR positions
|
|
326
|
+
return userBalances.reduce((total, balance) => {
|
|
327
|
+
if (balance.votingPower !== null) {
|
|
328
|
+
return total + balance.votingPower;
|
|
329
|
+
}
|
|
330
|
+
return total;
|
|
331
|
+
}, 0n);
|
|
332
|
+
}
|
|
333
|
+
// Supported chains for rewards fetching
|
|
334
|
+
const REWARD_CHAINS = [
|
|
335
|
+
tokenlist_1.ChainId.ARBITRUM_ONE,
|
|
336
|
+
tokenlist_1.ChainId.BASE,
|
|
337
|
+
tokenlist_1.ChainId.OPTIMISM,
|
|
338
|
+
tokenlist_1.ChainId.SONIC,
|
|
339
|
+
];
|
|
340
|
+
// FCTR price API
|
|
341
|
+
const FCTR_PRICE_API = 'https://factor-price-api-main.fly.dev/prices/arbitrum:0x6dd963c510c2d2f09d5eddb48ede45fed063eb36';
|
|
342
|
+
// Vault TVL API URLs by environment
|
|
343
|
+
const VAULT_TVL_API_URL = {
|
|
344
|
+
[types_1.FactorEnvironment.TESTING]: 'https://factor-studio-stats-api-staging.fly.dev/utils/pro-vaults',
|
|
345
|
+
[types_1.FactorEnvironment.STAGING]: 'https://factor-studio-stats-api-staging.fly.dev/utils/pro-vaults',
|
|
346
|
+
[types_1.FactorEnvironment.PRODUCTION]: 'https://factor-studio-stats-api.fly.dev/utils/pro-vaults',
|
|
347
|
+
};
|
|
348
|
+
// Seconds in a year for APY calculation
|
|
349
|
+
const SECONDS_PER_YEAR = 31_536_000;
|
|
350
|
+
async function getFctrPrice() {
|
|
351
|
+
const response = await fetch(FCTR_PRICE_API);
|
|
352
|
+
const data = await response.json();
|
|
353
|
+
const fctrKey = 'arbitrum:0x6dd963c510c2d2f09d5eddb48ede45fed063eb36';
|
|
354
|
+
return data.coins[fctrKey]?.price ?? 0;
|
|
355
|
+
}
|
|
356
|
+
async function getVaultTvlMap(environment) {
|
|
357
|
+
const apiUrl = VAULT_TVL_API_URL[environment];
|
|
358
|
+
if (!apiUrl) {
|
|
359
|
+
return {};
|
|
360
|
+
}
|
|
361
|
+
const response = await fetch(apiUrl);
|
|
362
|
+
const data = await response.json();
|
|
363
|
+
const tvlMap = {};
|
|
364
|
+
for (const vault of data) {
|
|
365
|
+
tvlMap[vault.address.toLowerCase()] = parseFloat(vault.tvlUsd) || 0;
|
|
366
|
+
}
|
|
367
|
+
return tvlMap;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Get all active vaults with complete data:
|
|
371
|
+
* - Vault info (id, chainId)
|
|
372
|
+
* - Votes with allocated veFCTR (voting power * weight percentage)
|
|
373
|
+
* - Rewards across all supported chains
|
|
374
|
+
*
|
|
375
|
+
* @param chainId - The chain ID where vaults are deployed
|
|
376
|
+
* @param environment - The environment (testing, staging, production)
|
|
377
|
+
* @returns Array of aggregated vault data
|
|
378
|
+
*/
|
|
379
|
+
async function getVaultsWithFullData(chainId, environment) {
|
|
380
|
+
// Fetch all data in parallel
|
|
381
|
+
const [vaults, vaultVotes, userBalances, fctrPrice, vaultTvlMap] = await Promise.all([
|
|
382
|
+
getAvailableVaultsForVoting(chainId, environment),
|
|
383
|
+
getVotesForAllUsers(chainId, environment),
|
|
384
|
+
getTokenBalancesForAllUsers(chainId, environment),
|
|
385
|
+
getFctrPrice(),
|
|
386
|
+
getVaultTvlMap(environment),
|
|
387
|
+
]);
|
|
388
|
+
// Create a map of user address to voting power for quick lookup
|
|
389
|
+
const userVotingPowerMap = {};
|
|
390
|
+
for (const [userAddress, balances] of Object.entries(userBalances)) {
|
|
391
|
+
userVotingPowerMap[userAddress] = getUserVotingPower(balances);
|
|
392
|
+
}
|
|
393
|
+
// Fetch rewards for all vaults across all chains in parallel
|
|
394
|
+
const vaultAddresses = vaults.map((v) => v.id.toLowerCase());
|
|
395
|
+
// Fetch rewards for each vault on each chain
|
|
396
|
+
const rewardPromises = [];
|
|
397
|
+
for (const vaultAddress of vaultAddresses) {
|
|
398
|
+
for (const rewardChainId of REWARD_CHAINS) {
|
|
399
|
+
rewardPromises.push(getRewardsForVault(rewardChainId, environment, vaultAddress)
|
|
400
|
+
.then((reward) => ({ vaultAddress, chainId: rewardChainId, reward }))
|
|
401
|
+
.catch(() => ({
|
|
402
|
+
vaultAddress,
|
|
403
|
+
chainId: rewardChainId,
|
|
404
|
+
reward: null,
|
|
405
|
+
})));
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
const allRewards = await Promise.all(rewardPromises);
|
|
409
|
+
// Calculate total votes across all vaults (sum of all allocated veFCTR)
|
|
410
|
+
// We need to calculate this first to determine each vault's share
|
|
411
|
+
const vaultAllocations = {};
|
|
412
|
+
for (const vault of vaults) {
|
|
413
|
+
const vaultAddress = vault.id.toLowerCase();
|
|
414
|
+
const votes = vaultVotes[vaultAddress] || [];
|
|
415
|
+
let totalAllocation = 0n;
|
|
416
|
+
for (const vote of votes) {
|
|
417
|
+
const votingPower = userVotingPowerMap[vote.userAddress] || 0n;
|
|
418
|
+
const weightBigInt = BigInt(vote.weight);
|
|
419
|
+
const allocatedVeFCTR = (votingPower * weightBigInt) / DECIMALS_DIVISOR;
|
|
420
|
+
totalAllocation += allocatedVeFCTR;
|
|
421
|
+
}
|
|
422
|
+
vaultAllocations[vaultAddress] = totalAllocation;
|
|
423
|
+
}
|
|
424
|
+
// Calculate total votes across all vaults
|
|
425
|
+
const totalVotes = Object.values(vaultAllocations).reduce((sum, alloc) => sum + alloc, 0n);
|
|
426
|
+
// Group rewards by vault address and calculate scaleAPY
|
|
427
|
+
const rewardsByVault = {};
|
|
428
|
+
for (const { vaultAddress, chainId: rewardChainId, reward } of allRewards) {
|
|
429
|
+
if (!rewardsByVault[vaultAddress]) {
|
|
430
|
+
rewardsByVault[vaultAddress] = [];
|
|
431
|
+
}
|
|
432
|
+
// Get TVL for this vault
|
|
433
|
+
const tvlUsd = vaultTvlMap[vaultAddress] ?? null;
|
|
434
|
+
// Calculate scaleAPY if we have all required data
|
|
435
|
+
let scaleRewardPerSecond = null;
|
|
436
|
+
let scaleRewardPerSecondUsd = null;
|
|
437
|
+
let scaleAPY = null;
|
|
438
|
+
if (reward && tvlUsd && tvlUsd > 0 && totalVotes > 0n) {
|
|
439
|
+
const vaultVote = vaultAllocations[vaultAddress] || 0n;
|
|
440
|
+
// scaleRewardPerSecond = fctrPerSec × (vaultVote / totalVotes)
|
|
441
|
+
// We need to convert from bigint to number for the calculation
|
|
442
|
+
const fctrPerSecNum = Number(reward.fctrPerSec) / Number(DECIMALS_DIVISOR);
|
|
443
|
+
const voteRatio = Number(vaultVote) / Number(totalVotes);
|
|
444
|
+
scaleRewardPerSecond = fctrPerSecNum * voteRatio;
|
|
445
|
+
// scaleRewardPerSecondUsd = scaleRewardPerSecond × fctrPrice
|
|
446
|
+
scaleRewardPerSecondUsd = scaleRewardPerSecond * fctrPrice;
|
|
447
|
+
// scaleAPY = (scaleRewardPerSecond × rewardPriceUsd × 31,536,000 × 100) / vaultTvlUsd
|
|
448
|
+
scaleAPY =
|
|
449
|
+
(scaleRewardPerSecond * fctrPrice * SECONDS_PER_YEAR * 100) / tvlUsd;
|
|
450
|
+
}
|
|
451
|
+
rewardsByVault[vaultAddress].push({
|
|
452
|
+
chainId: rewardChainId,
|
|
453
|
+
reward,
|
|
454
|
+
tvlUsd,
|
|
455
|
+
scaleRewardPerSecond,
|
|
456
|
+
scaleRewardPerSecondUsd,
|
|
457
|
+
scaleAPY,
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
// Build the aggregated vault data
|
|
461
|
+
const aggregatedVaults = vaults.map((vault) => {
|
|
462
|
+
const vaultAddress = vault.id.toLowerCase();
|
|
463
|
+
const votes = vaultVotes[vaultAddress] || [];
|
|
464
|
+
// Calculate allocated veFCTR for each vote
|
|
465
|
+
const voteAllocations = votes.map((vote) => {
|
|
466
|
+
const votingPower = userVotingPowerMap[vote.userAddress] || 0n;
|
|
467
|
+
// Weight is stored in 18 decimals (1e18 = 100%), so divide by 1e18
|
|
468
|
+
const weightBigInt = BigInt(vote.weight);
|
|
469
|
+
const allocatedVeFCTR = (votingPower * weightBigInt) / DECIMALS_DIVISOR;
|
|
470
|
+
// Convert weight to percentage (0-100) for display
|
|
471
|
+
const weightPercentage = Number(weightBigInt) / 1e16; // 1e18 = 100%, so divide by 1e16 to get percentage
|
|
472
|
+
return {
|
|
473
|
+
userAddress: vote.userAddress,
|
|
474
|
+
weight: weightPercentage,
|
|
475
|
+
timestamp: vote.timestamp,
|
|
476
|
+
votingPower,
|
|
477
|
+
votingPowerFmt: formatBalanceToDecimal(votingPower, 18),
|
|
478
|
+
allocatedVeFCTR,
|
|
479
|
+
allocatedVeFCTRFmt: formatBalanceToDecimal(allocatedVeFCTR, 18),
|
|
480
|
+
};
|
|
481
|
+
});
|
|
482
|
+
// Calculate total allocated veFCTR for this vault
|
|
483
|
+
const totalAllocatedVeFCTR = voteAllocations.reduce((total, vote) => total + vote.allocatedVeFCTR, 0n);
|
|
484
|
+
return {
|
|
485
|
+
id: vault.id,
|
|
486
|
+
chainId: vault.chainId,
|
|
487
|
+
votes: voteAllocations,
|
|
488
|
+
totalAllocatedVeFCTR,
|
|
489
|
+
totalAllocatedVeFCTRFmt: formatBalanceToDecimal(totalAllocatedVeFCTR, 18),
|
|
490
|
+
rewards: rewardsByVault[vaultAddress] || [],
|
|
491
|
+
};
|
|
492
|
+
});
|
|
493
|
+
return aggregatedVaults;
|
|
494
|
+
}
|
|
313
495
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mjs/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { factorScaleSubgraphUrl, factorGaugeControllerSubgraphUrl, factorFCTRSubgraphUrl, fetchPaginatedData, } from './utils/subgraphs';
|
|
2
|
+
import { FactorEnvironment, } from './types';
|
|
3
|
+
import { ChainId } from '@factordao/tokenlist';
|
|
4
|
+
// Re-export types and enums for consumers
|
|
5
|
+
export { FactorEnvironment } from './types';
|
|
2
6
|
export async function getAvailableVaultsForVoting(chainId, environment) {
|
|
3
7
|
const subgraphUrl = factorScaleSubgraphUrl[chainId]?.[environment];
|
|
4
8
|
if (!subgraphUrl) {
|
|
@@ -96,6 +100,7 @@ function transformVaultReward(data) {
|
|
|
96
100
|
return {
|
|
97
101
|
vault: data.vault,
|
|
98
102
|
fctrPerSec,
|
|
103
|
+
fctrPerSecFmt: formatWeiToDecimal(fctrPerSec),
|
|
99
104
|
incentiveEndsAt,
|
|
100
105
|
block: Number(data.block),
|
|
101
106
|
timestamp,
|
|
@@ -301,4 +306,178 @@ export async function getTokenBalancesForAllUsers(chainId, environment) {
|
|
|
301
306
|
}
|
|
302
307
|
return balancesByUser;
|
|
303
308
|
}
|
|
309
|
+
// Helper to get user's total voting power from their balances
|
|
310
|
+
function getUserVotingPower(userBalances) {
|
|
311
|
+
if (!userBalances)
|
|
312
|
+
return 0n;
|
|
313
|
+
// Sum up voting power from all veFCTR positions
|
|
314
|
+
return userBalances.reduce((total, balance) => {
|
|
315
|
+
if (balance.votingPower !== null) {
|
|
316
|
+
return total + balance.votingPower;
|
|
317
|
+
}
|
|
318
|
+
return total;
|
|
319
|
+
}, 0n);
|
|
320
|
+
}
|
|
321
|
+
// Supported chains for rewards fetching
|
|
322
|
+
const REWARD_CHAINS = [
|
|
323
|
+
ChainId.ARBITRUM_ONE,
|
|
324
|
+
ChainId.BASE,
|
|
325
|
+
ChainId.OPTIMISM,
|
|
326
|
+
ChainId.SONIC,
|
|
327
|
+
];
|
|
328
|
+
// FCTR price API
|
|
329
|
+
const FCTR_PRICE_API = 'https://factor-price-api-main.fly.dev/prices/arbitrum:0x6dd963c510c2d2f09d5eddb48ede45fed063eb36';
|
|
330
|
+
// Vault TVL API URLs by environment
|
|
331
|
+
const VAULT_TVL_API_URL = {
|
|
332
|
+
[FactorEnvironment.TESTING]: 'https://factor-studio-stats-api-staging.fly.dev/utils/pro-vaults',
|
|
333
|
+
[FactorEnvironment.STAGING]: 'https://factor-studio-stats-api-staging.fly.dev/utils/pro-vaults',
|
|
334
|
+
[FactorEnvironment.PRODUCTION]: 'https://factor-studio-stats-api.fly.dev/utils/pro-vaults',
|
|
335
|
+
};
|
|
336
|
+
// Seconds in a year for APY calculation
|
|
337
|
+
const SECONDS_PER_YEAR = 31_536_000;
|
|
338
|
+
async function getFctrPrice() {
|
|
339
|
+
const response = await fetch(FCTR_PRICE_API);
|
|
340
|
+
const data = await response.json();
|
|
341
|
+
const fctrKey = 'arbitrum:0x6dd963c510c2d2f09d5eddb48ede45fed063eb36';
|
|
342
|
+
return data.coins[fctrKey]?.price ?? 0;
|
|
343
|
+
}
|
|
344
|
+
async function getVaultTvlMap(environment) {
|
|
345
|
+
const apiUrl = VAULT_TVL_API_URL[environment];
|
|
346
|
+
if (!apiUrl) {
|
|
347
|
+
return {};
|
|
348
|
+
}
|
|
349
|
+
const response = await fetch(apiUrl);
|
|
350
|
+
const data = await response.json();
|
|
351
|
+
const tvlMap = {};
|
|
352
|
+
for (const vault of data) {
|
|
353
|
+
tvlMap[vault.address.toLowerCase()] = parseFloat(vault.tvlUsd) || 0;
|
|
354
|
+
}
|
|
355
|
+
return tvlMap;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Get all active vaults with complete data:
|
|
359
|
+
* - Vault info (id, chainId)
|
|
360
|
+
* - Votes with allocated veFCTR (voting power * weight percentage)
|
|
361
|
+
* - Rewards across all supported chains
|
|
362
|
+
*
|
|
363
|
+
* @param chainId - The chain ID where vaults are deployed
|
|
364
|
+
* @param environment - The environment (testing, staging, production)
|
|
365
|
+
* @returns Array of aggregated vault data
|
|
366
|
+
*/
|
|
367
|
+
export async function getVaultsWithFullData(chainId, environment) {
|
|
368
|
+
// Fetch all data in parallel
|
|
369
|
+
const [vaults, vaultVotes, userBalances, fctrPrice, vaultTvlMap] = await Promise.all([
|
|
370
|
+
getAvailableVaultsForVoting(chainId, environment),
|
|
371
|
+
getVotesForAllUsers(chainId, environment),
|
|
372
|
+
getTokenBalancesForAllUsers(chainId, environment),
|
|
373
|
+
getFctrPrice(),
|
|
374
|
+
getVaultTvlMap(environment),
|
|
375
|
+
]);
|
|
376
|
+
// Create a map of user address to voting power for quick lookup
|
|
377
|
+
const userVotingPowerMap = {};
|
|
378
|
+
for (const [userAddress, balances] of Object.entries(userBalances)) {
|
|
379
|
+
userVotingPowerMap[userAddress] = getUserVotingPower(balances);
|
|
380
|
+
}
|
|
381
|
+
// Fetch rewards for all vaults across all chains in parallel
|
|
382
|
+
const vaultAddresses = vaults.map((v) => v.id.toLowerCase());
|
|
383
|
+
// Fetch rewards for each vault on each chain
|
|
384
|
+
const rewardPromises = [];
|
|
385
|
+
for (const vaultAddress of vaultAddresses) {
|
|
386
|
+
for (const rewardChainId of REWARD_CHAINS) {
|
|
387
|
+
rewardPromises.push(getRewardsForVault(rewardChainId, environment, vaultAddress)
|
|
388
|
+
.then((reward) => ({ vaultAddress, chainId: rewardChainId, reward }))
|
|
389
|
+
.catch(() => ({
|
|
390
|
+
vaultAddress,
|
|
391
|
+
chainId: rewardChainId,
|
|
392
|
+
reward: null,
|
|
393
|
+
})));
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
const allRewards = await Promise.all(rewardPromises);
|
|
397
|
+
// Calculate total votes across all vaults (sum of all allocated veFCTR)
|
|
398
|
+
// We need to calculate this first to determine each vault's share
|
|
399
|
+
const vaultAllocations = {};
|
|
400
|
+
for (const vault of vaults) {
|
|
401
|
+
const vaultAddress = vault.id.toLowerCase();
|
|
402
|
+
const votes = vaultVotes[vaultAddress] || [];
|
|
403
|
+
let totalAllocation = 0n;
|
|
404
|
+
for (const vote of votes) {
|
|
405
|
+
const votingPower = userVotingPowerMap[vote.userAddress] || 0n;
|
|
406
|
+
const weightBigInt = BigInt(vote.weight);
|
|
407
|
+
const allocatedVeFCTR = (votingPower * weightBigInt) / DECIMALS_DIVISOR;
|
|
408
|
+
totalAllocation += allocatedVeFCTR;
|
|
409
|
+
}
|
|
410
|
+
vaultAllocations[vaultAddress] = totalAllocation;
|
|
411
|
+
}
|
|
412
|
+
// Calculate total votes across all vaults
|
|
413
|
+
const totalVotes = Object.values(vaultAllocations).reduce((sum, alloc) => sum + alloc, 0n);
|
|
414
|
+
// Group rewards by vault address and calculate scaleAPY
|
|
415
|
+
const rewardsByVault = {};
|
|
416
|
+
for (const { vaultAddress, chainId: rewardChainId, reward } of allRewards) {
|
|
417
|
+
if (!rewardsByVault[vaultAddress]) {
|
|
418
|
+
rewardsByVault[vaultAddress] = [];
|
|
419
|
+
}
|
|
420
|
+
// Get TVL for this vault
|
|
421
|
+
const tvlUsd = vaultTvlMap[vaultAddress] ?? null;
|
|
422
|
+
// Calculate scaleAPY if we have all required data
|
|
423
|
+
let scaleRewardPerSecond = null;
|
|
424
|
+
let scaleRewardPerSecondUsd = null;
|
|
425
|
+
let scaleAPY = null;
|
|
426
|
+
if (reward && tvlUsd && tvlUsd > 0 && totalVotes > 0n) {
|
|
427
|
+
const vaultVote = vaultAllocations[vaultAddress] || 0n;
|
|
428
|
+
// scaleRewardPerSecond = fctrPerSec × (vaultVote / totalVotes)
|
|
429
|
+
// We need to convert from bigint to number for the calculation
|
|
430
|
+
const fctrPerSecNum = Number(reward.fctrPerSec) / Number(DECIMALS_DIVISOR);
|
|
431
|
+
const voteRatio = Number(vaultVote) / Number(totalVotes);
|
|
432
|
+
scaleRewardPerSecond = fctrPerSecNum * voteRatio;
|
|
433
|
+
// scaleRewardPerSecondUsd = scaleRewardPerSecond × fctrPrice
|
|
434
|
+
scaleRewardPerSecondUsd = scaleRewardPerSecond * fctrPrice;
|
|
435
|
+
// scaleAPY = (scaleRewardPerSecond × rewardPriceUsd × 31,536,000 × 100) / vaultTvlUsd
|
|
436
|
+
scaleAPY =
|
|
437
|
+
(scaleRewardPerSecond * fctrPrice * SECONDS_PER_YEAR * 100) / tvlUsd;
|
|
438
|
+
}
|
|
439
|
+
rewardsByVault[vaultAddress].push({
|
|
440
|
+
chainId: rewardChainId,
|
|
441
|
+
reward,
|
|
442
|
+
tvlUsd,
|
|
443
|
+
scaleRewardPerSecond,
|
|
444
|
+
scaleRewardPerSecondUsd,
|
|
445
|
+
scaleAPY,
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
// Build the aggregated vault data
|
|
449
|
+
const aggregatedVaults = vaults.map((vault) => {
|
|
450
|
+
const vaultAddress = vault.id.toLowerCase();
|
|
451
|
+
const votes = vaultVotes[vaultAddress] || [];
|
|
452
|
+
// Calculate allocated veFCTR for each vote
|
|
453
|
+
const voteAllocations = votes.map((vote) => {
|
|
454
|
+
const votingPower = userVotingPowerMap[vote.userAddress] || 0n;
|
|
455
|
+
// Weight is stored in 18 decimals (1e18 = 100%), so divide by 1e18
|
|
456
|
+
const weightBigInt = BigInt(vote.weight);
|
|
457
|
+
const allocatedVeFCTR = (votingPower * weightBigInt) / DECIMALS_DIVISOR;
|
|
458
|
+
// Convert weight to percentage (0-100) for display
|
|
459
|
+
const weightPercentage = Number(weightBigInt) / 1e16; // 1e18 = 100%, so divide by 1e16 to get percentage
|
|
460
|
+
return {
|
|
461
|
+
userAddress: vote.userAddress,
|
|
462
|
+
weight: weightPercentage,
|
|
463
|
+
timestamp: vote.timestamp,
|
|
464
|
+
votingPower,
|
|
465
|
+
votingPowerFmt: formatBalanceToDecimal(votingPower, 18),
|
|
466
|
+
allocatedVeFCTR,
|
|
467
|
+
allocatedVeFCTRFmt: formatBalanceToDecimal(allocatedVeFCTR, 18),
|
|
468
|
+
};
|
|
469
|
+
});
|
|
470
|
+
// Calculate total allocated veFCTR for this vault
|
|
471
|
+
const totalAllocatedVeFCTR = voteAllocations.reduce((total, vote) => total + vote.allocatedVeFCTR, 0n);
|
|
472
|
+
return {
|
|
473
|
+
id: vault.id,
|
|
474
|
+
chainId: vault.chainId,
|
|
475
|
+
votes: voteAllocations,
|
|
476
|
+
totalAllocatedVeFCTR,
|
|
477
|
+
totalAllocatedVeFCTRFmt: formatBalanceToDecimal(totalAllocatedVeFCTR, 18),
|
|
478
|
+
rewards: rewardsByVault[vaultAddress] || [],
|
|
479
|
+
};
|
|
480
|
+
});
|
|
481
|
+
return aggregatedVaults;
|
|
482
|
+
}
|
|
304
483
|
//# sourceMappingURL=index.js.map
|
package/dist/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { FactorEnvironment, VaultVotes, VaultReward, UserTokenBalances, AllUsersTokenBalances } from './types';
|
|
1
|
+
import { FactorEnvironment, VaultVotes, VaultReward, UserTokenBalances, AllUsersTokenBalances, AggregatedVault } from './types';
|
|
2
2
|
import { ChainId } from '@factordao/tokenlist';
|
|
3
|
+
export { FactorEnvironment } from './types';
|
|
4
|
+
export type { VaultVotes, VoteData, VaultReward, TokenBalance, UserTokenBalances, AllUsersTokenBalances, VaultVoteAllocation, VaultRewardByChain, AggregatedVault, } from './types';
|
|
3
5
|
export declare function getAvailableVaultsForVoting(chainId: ChainId, environment: FactorEnvironment): Promise<any>;
|
|
4
6
|
export declare function getVotesForUser(chainId: ChainId, environment: FactorEnvironment, user: string): Promise<any>;
|
|
5
7
|
export declare function getVotesForAllUsers(chainId: ChainId, environment: FactorEnvironment): Promise<VaultVotes>;
|
|
@@ -7,3 +9,14 @@ export declare function getRewardsForVault(chainId: ChainId, environment: Factor
|
|
|
7
9
|
export declare function getRewardsForAllVaults(chainId: ChainId, environment: FactorEnvironment): Promise<VaultReward[]>;
|
|
8
10
|
export declare function getTokenBalancesForUser(chainId: ChainId, environment: FactorEnvironment, user: string): Promise<UserTokenBalances>;
|
|
9
11
|
export declare function getTokenBalancesForAllUsers(chainId: ChainId, environment: FactorEnvironment): Promise<AllUsersTokenBalances>;
|
|
12
|
+
/**
|
|
13
|
+
* Get all active vaults with complete data:
|
|
14
|
+
* - Vault info (id, chainId)
|
|
15
|
+
* - Votes with allocated veFCTR (voting power * weight percentage)
|
|
16
|
+
* - Rewards across all supported chains
|
|
17
|
+
*
|
|
18
|
+
* @param chainId - The chain ID where vaults are deployed
|
|
19
|
+
* @param environment - The environment (testing, staging, production)
|
|
20
|
+
* @returns Array of aggregated vault data
|
|
21
|
+
*/
|
|
22
|
+
export declare function getVaultsWithFullData(chainId: ChainId, environment: FactorEnvironment): Promise<AggregatedVault[]>;
|
package/types/types/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export type VaultRewardData = {
|
|
|
26
26
|
export type VaultReward = {
|
|
27
27
|
vault: string;
|
|
28
28
|
fctrPerSec: bigint;
|
|
29
|
+
fctrPerSecFmt: string;
|
|
29
30
|
incentiveEndsAt: number;
|
|
30
31
|
block: number;
|
|
31
32
|
timestamp: number;
|
|
@@ -71,3 +72,28 @@ export type UserTokenBalances = {
|
|
|
71
72
|
balances: TokenBalance[];
|
|
72
73
|
};
|
|
73
74
|
export type AllUsersTokenBalances = Record<string, TokenBalance[]>;
|
|
75
|
+
export type VaultVoteAllocation = {
|
|
76
|
+
userAddress: string;
|
|
77
|
+
weight: number;
|
|
78
|
+
timestamp: number;
|
|
79
|
+
votingPower: bigint;
|
|
80
|
+
votingPowerFmt: string;
|
|
81
|
+
allocatedVeFCTR: bigint;
|
|
82
|
+
allocatedVeFCTRFmt: string;
|
|
83
|
+
};
|
|
84
|
+
export type VaultRewardByChain = {
|
|
85
|
+
chainId: number;
|
|
86
|
+
reward: VaultReward | null;
|
|
87
|
+
tvlUsd: number | null;
|
|
88
|
+
scaleRewardPerSecond: number | null;
|
|
89
|
+
scaleRewardPerSecondUsd: number | null;
|
|
90
|
+
scaleAPY: number | null;
|
|
91
|
+
};
|
|
92
|
+
export type AggregatedVault = {
|
|
93
|
+
id: string;
|
|
94
|
+
chainId: number;
|
|
95
|
+
votes: VaultVoteAllocation[];
|
|
96
|
+
totalAllocatedVeFCTR: bigint;
|
|
97
|
+
totalAllocatedVeFCTRFmt: string;
|
|
98
|
+
rewards: VaultRewardByChain[];
|
|
99
|
+
};
|