@factordao/governance 1.0.4 → 1.0.6

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 CHANGED
@@ -1,11 +1,19 @@
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;
6
7
  exports.getRewardsForVault = getRewardsForVault;
7
8
  exports.getRewardsForAllVaults = getRewardsForAllVaults;
9
+ exports.getTokenBalancesForUser = getTokenBalancesForUser;
10
+ exports.getTokenBalancesForAllUsers = getTokenBalancesForAllUsers;
11
+ exports.getVaultsWithFullData = getVaultsWithFullData;
8
12
  const subgraphs_1 = require("./utils/subgraphs");
13
+ const tokenlist_1 = require("@factordao/tokenlist");
14
+ // Re-export types and enums for consumers
15
+ var types_1 = require("./types");
16
+ Object.defineProperty(exports, "FactorEnvironment", { enumerable: true, get: function () { return types_1.FactorEnvironment; } });
9
17
  async function getAvailableVaultsForVoting(chainId, environment) {
10
18
  const subgraphUrl = subgraphs_1.factorScaleSubgraphUrl[chainId]?.[environment];
11
19
  if (!subgraphUrl) {
@@ -167,4 +175,248 @@ async function getRewardsForAllVaults(chainId, environment) {
167
175
  `, (data) => data.data.vaultRewards || []);
168
176
  return rewards.map(transformVaultReward);
169
177
  }
178
+ function formatBalanceToDecimal(balance, decimals) {
179
+ const divisor = 10n ** BigInt(decimals);
180
+ const whole = balance / divisor;
181
+ const remainder = balance % divisor;
182
+ if (remainder === 0n) {
183
+ return whole.toString();
184
+ }
185
+ const remainderStr = remainder.toString().padStart(decimals, '0');
186
+ const trimmed = remainderStr.replace(/0+$/, '');
187
+ return `${whole}.${trimmed}`;
188
+ }
189
+ // veFCTR voting power calculation based on VeBalanceLib.sol
190
+ // MAX_LOCK_TIME = 104 weeks in seconds
191
+ const MAX_LOCK_TIME = 104n * 7n * 24n * 60n * 60n; // 104 weeks in seconds
192
+ /**
193
+ * Calculate voting power for veFCTR based on locked amount and expiry
194
+ * Formula: votingPower = amount * (expiry - currentTime) / MAX_LOCK_TIME
195
+ *
196
+ * If the position is expired (expiry <= currentTime), voting power is 0
197
+ */
198
+ function calculateVotingPower(amount, expiry) {
199
+ const currentTime = BigInt(Math.floor(Date.now() / 1000));
200
+ const expiryBigInt = BigInt(expiry);
201
+ if (expiryBigInt <= currentTime) {
202
+ return 0n;
203
+ }
204
+ const timeRemaining = expiryBigInt - currentTime;
205
+ return (amount * timeRemaining) / MAX_LOCK_TIME;
206
+ }
207
+ function transformAccountBalance(data) {
208
+ const balance = BigInt(data.balance);
209
+ const decimals = data.token.decimals ?? 18;
210
+ const expiry = data.expiry ? Number(data.expiry) : null;
211
+ // Calculate voting power if expiry is present (veFCTR token)
212
+ let votingPower = null;
213
+ let votingPowerFmt = null;
214
+ if (expiry !== null) {
215
+ votingPower = calculateVotingPower(balance, expiry);
216
+ votingPowerFmt = formatBalanceToDecimal(votingPower, decimals);
217
+ }
218
+ return {
219
+ tokenAddress: data.token.address,
220
+ tokenName: data.token.name,
221
+ tokenSymbol: data.token.symbol,
222
+ tokenDecimals: data.token.decimals,
223
+ balance,
224
+ balanceFmt: formatBalanceToDecimal(balance, decimals),
225
+ expiry,
226
+ votingPower,
227
+ votingPowerFmt,
228
+ lastBlock: Number(data.lastBlock),
229
+ lastTimestamp: Number(data.lastTimestamp),
230
+ };
231
+ }
232
+ async function getTokenBalancesForUser(chainId, environment, user) {
233
+ const subgraphUrl = subgraphs_1.factorFCTRSubgraphUrl[chainId]?.[environment];
234
+ if (!subgraphUrl) {
235
+ throw new Error(`Subgraph URL not found for chainId ${chainId} and environment ${environment}`);
236
+ }
237
+ const userAddress = user.toLowerCase();
238
+ const query = `
239
+ {
240
+ accountBalances(where: { account_: { address: "${userAddress}" }, balance_gt: "0" }) {
241
+ id
242
+ account {
243
+ id
244
+ address
245
+ }
246
+ token {
247
+ id
248
+ address
249
+ name
250
+ symbol
251
+ decimals
252
+ totalSupply
253
+ }
254
+ balance
255
+ expiry
256
+ lastBlock
257
+ lastTimestamp
258
+ }
259
+ }
260
+ `;
261
+ const response = await fetch(subgraphUrl, {
262
+ method: 'POST',
263
+ headers: {
264
+ 'Content-Type': 'application/json',
265
+ },
266
+ body: JSON.stringify({ query }),
267
+ });
268
+ const data = await response.json();
269
+ const accountBalances = data.data.accountBalances || [];
270
+ return {
271
+ userAddress,
272
+ balances: accountBalances.map(transformAccountBalance),
273
+ };
274
+ }
275
+ async function getTokenBalancesForAllUsers(chainId, environment) {
276
+ const subgraphUrl = subgraphs_1.factorFCTRSubgraphUrl[chainId]?.[environment];
277
+ if (!subgraphUrl) {
278
+ throw new Error(`Subgraph URL not found for chainId ${chainId} and environment ${environment}`);
279
+ }
280
+ const accountBalances = await (0, subgraphs_1.fetchPaginatedData)(subgraphUrl, (first, skip) => `
281
+ {
282
+ accountBalances(
283
+ first: ${first}
284
+ skip: ${skip}
285
+ where: { balance_gt: "0" }
286
+ orderBy: lastTimestamp
287
+ orderDirection: desc
288
+ ) {
289
+ id
290
+ account {
291
+ id
292
+ address
293
+ }
294
+ token {
295
+ id
296
+ address
297
+ name
298
+ symbol
299
+ decimals
300
+ totalSupply
301
+ }
302
+ balance
303
+ expiry
304
+ lastBlock
305
+ lastTimestamp
306
+ }
307
+ }
308
+ `, (data) => data.data.accountBalances || []);
309
+ const balancesByUser = {};
310
+ for (const accountBalance of accountBalances) {
311
+ const userAddress = accountBalance.account.address;
312
+ if (!balancesByUser[userAddress]) {
313
+ balancesByUser[userAddress] = [];
314
+ }
315
+ balancesByUser[userAddress].push(transformAccountBalance(accountBalance));
316
+ }
317
+ return balancesByUser;
318
+ }
319
+ // Helper to get user's total voting power from their balances
320
+ function getUserVotingPower(userBalances) {
321
+ if (!userBalances)
322
+ return 0n;
323
+ // Sum up voting power from all veFCTR positions
324
+ return userBalances.reduce((total, balance) => {
325
+ if (balance.votingPower !== null) {
326
+ return total + balance.votingPower;
327
+ }
328
+ return total;
329
+ }, 0n);
330
+ }
331
+ // Supported chains for rewards fetching
332
+ const REWARD_CHAINS = [
333
+ tokenlist_1.ChainId.ARBITRUM_ONE,
334
+ tokenlist_1.ChainId.BASE,
335
+ tokenlist_1.ChainId.OPTIMISM,
336
+ tokenlist_1.ChainId.SONIC,
337
+ ];
338
+ /**
339
+ * Get all active vaults with complete data:
340
+ * - Vault info (id, chainId)
341
+ * - Votes with allocated veFCTR (voting power * weight percentage)
342
+ * - Rewards across all supported chains
343
+ *
344
+ * @param chainId - The chain ID where vaults are deployed
345
+ * @param environment - The environment (testing, staging, production)
346
+ * @returns Array of aggregated vault data
347
+ */
348
+ async function getVaultsWithFullData(chainId, environment) {
349
+ // Fetch all data in parallel
350
+ const [vaults, vaultVotes, userBalances] = await Promise.all([
351
+ getAvailableVaultsForVoting(chainId, environment),
352
+ getVotesForAllUsers(chainId, environment),
353
+ getTokenBalancesForAllUsers(chainId, environment),
354
+ ]);
355
+ // Create a map of user address to voting power for quick lookup
356
+ const userVotingPowerMap = {};
357
+ for (const [userAddress, balances] of Object.entries(userBalances)) {
358
+ userVotingPowerMap[userAddress] = getUserVotingPower(balances);
359
+ }
360
+ // Fetch rewards for all vaults across all chains in parallel
361
+ const vaultAddresses = vaults.map((v) => v.id.toLowerCase());
362
+ // Fetch rewards for each vault on each chain
363
+ const rewardPromises = [];
364
+ for (const vaultAddress of vaultAddresses) {
365
+ for (const rewardChainId of REWARD_CHAINS) {
366
+ rewardPromises.push(getRewardsForVault(rewardChainId, environment, vaultAddress)
367
+ .then((reward) => ({ vaultAddress, chainId: rewardChainId, reward }))
368
+ .catch(() => ({
369
+ vaultAddress,
370
+ chainId: rewardChainId,
371
+ reward: null,
372
+ })));
373
+ }
374
+ }
375
+ const allRewards = await Promise.all(rewardPromises);
376
+ // Group rewards by vault address
377
+ const rewardsByVault = {};
378
+ for (const { vaultAddress, chainId: rewardChainId, reward } of allRewards) {
379
+ if (!rewardsByVault[vaultAddress]) {
380
+ rewardsByVault[vaultAddress] = [];
381
+ }
382
+ rewardsByVault[vaultAddress].push({
383
+ chainId: rewardChainId,
384
+ reward,
385
+ });
386
+ }
387
+ // Build the aggregated vault data
388
+ const aggregatedVaults = vaults.map((vault) => {
389
+ const vaultAddress = vault.id.toLowerCase();
390
+ const votes = vaultVotes[vaultAddress] || [];
391
+ // Calculate allocated veFCTR for each vote
392
+ const voteAllocations = votes.map((vote) => {
393
+ const votingPower = userVotingPowerMap[vote.userAddress] || 0n;
394
+ // Weight is stored in 18 decimals (1e18 = 100%), so divide by 1e18
395
+ const weightBigInt = BigInt(vote.weight);
396
+ const allocatedVeFCTR = (votingPower * weightBigInt) / DECIMALS_DIVISOR;
397
+ // Convert weight to percentage (0-100) for display
398
+ const weightPercentage = Number(weightBigInt) / 1e16; // 1e18 = 100%, so divide by 1e16 to get percentage
399
+ return {
400
+ userAddress: vote.userAddress,
401
+ weight: weightPercentage,
402
+ timestamp: vote.timestamp,
403
+ votingPower,
404
+ votingPowerFmt: formatBalanceToDecimal(votingPower, 18),
405
+ allocatedVeFCTR,
406
+ allocatedVeFCTRFmt: formatBalanceToDecimal(allocatedVeFCTR, 18),
407
+ };
408
+ });
409
+ // Calculate total allocated veFCTR for this vault
410
+ const totalAllocatedVeFCTR = voteAllocations.reduce((total, vote) => total + vote.allocatedVeFCTR, 0n);
411
+ return {
412
+ id: vault.id,
413
+ chainId: vault.chainId,
414
+ votes: voteAllocations,
415
+ totalAllocatedVeFCTR,
416
+ totalAllocatedVeFCTRFmt: formatBalanceToDecimal(totalAllocatedVeFCTR, 18),
417
+ rewards: rewardsByVault[vaultAddress] || [],
418
+ };
419
+ });
420
+ return aggregatedVaults;
421
+ }
170
422
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.factorGaugeControllerSubgraphUrl = exports.factorScaleSubgraphUrl = void 0;
3
+ exports.factorFCTRSubgraphUrl = exports.factorGaugeControllerSubgraphUrl = exports.factorScaleSubgraphUrl = void 0;
4
4
  exports.fetchPaginatedData = fetchPaginatedData;
5
5
  const tokenlist_1 = require("@factordao/tokenlist");
6
6
  const DEFAULT_PAGE_SIZE = 1000;
@@ -67,4 +67,22 @@ exports.factorGaugeControllerSubgraphUrl = {
67
67
  production: '',
68
68
  },
69
69
  };
70
+ exports.factorFCTRSubgraphUrl = {
71
+ [tokenlist_1.ChainId.ARBITRUM_ONE]: {
72
+ testing: 'https://api.goldsky.com/api/public/project_cmgzitcts001c5np28moc9lyy/subgraphs/token-balance-arbitrum_testing/v0.0.3/gn',
73
+ production: '',
74
+ },
75
+ [tokenlist_1.ChainId.BASE]: {
76
+ testing: '',
77
+ production: '',
78
+ },
79
+ [tokenlist_1.ChainId.OPTIMISM]: {
80
+ testing: '',
81
+ production: '',
82
+ },
83
+ [tokenlist_1.ChainId.SONIC]: {
84
+ testing: '',
85
+ production: '',
86
+ },
87
+ };
70
88
  //# sourceMappingURL=subgraphs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subgraphs.js","sourceRoot":"","sources":["../../../src/utils/subgraphs.ts"],"names":[],"mappings":";;;AAKA,gDAqCC;AA1CD,oDAA+C;AAG/C,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAExB,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,YAAqD,EACrD,aAAqC;IAErC,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE1B,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,iBAAiB,CAAC;QAChD,IAAI,IAAI,iBAAiB,CAAC;IAC5B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAEY,QAAA,sBAAsB,GAAG;IACpC,CAAC,mBAAO,CAAC,YAAY,CAAC,EAAE;QACtB,OAAO,EACL,iHAAiH;QACnH,UAAU,EACR,oHAAoH;KACvH;IACD,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;QACd,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;IACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;QAClB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;IACD,CAAC,mBAAO,CAAC,KAAK,CAAC,EAAE;QACf,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;CAC6D,CAAC;AAEpD,QAAA,gCAAgC,GAAG;IAC9C,CAAC,mBAAO,CAAC,YAAY,CAAC,EAAE;QACtB,OAAO,EACL,iHAAiH;QACnH,UAAU,EAAE,EAAE;KACf;IACD,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;QACd,OAAO,EACL,6GAA6G;QAC/G,UAAU,EAAE,EAAE;KACf;IACD,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE;QAClB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;IACD,CAAC,mBAAO,CAAC,KAAK,CAAC,EAAE;QACf,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;CAC6D,CAAC"}
1
+ {"version":3,"file":"subgraphs.js","sourceRoot":"","sources":["../../../src/utils/subgraphs.ts"],"names":[],"mappings":"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"}
package/dist/mjs/index.js CHANGED
@@ -1,4 +1,7 @@
1
- import { factorScaleSubgraphUrl, factorGaugeControllerSubgraphUrl, fetchPaginatedData, } from './utils/subgraphs';
1
+ import { factorScaleSubgraphUrl, factorGaugeControllerSubgraphUrl, factorFCTRSubgraphUrl, fetchPaginatedData, } from './utils/subgraphs';
2
+ import { ChainId } from '@factordao/tokenlist';
3
+ // Re-export types and enums for consumers
4
+ export { FactorEnvironment } from './types';
2
5
  export async function getAvailableVaultsForVoting(chainId, environment) {
3
6
  const subgraphUrl = factorScaleSubgraphUrl[chainId]?.[environment];
4
7
  if (!subgraphUrl) {
@@ -160,4 +163,248 @@ export async function getRewardsForAllVaults(chainId, environment) {
160
163
  `, (data) => data.data.vaultRewards || []);
161
164
  return rewards.map(transformVaultReward);
162
165
  }
166
+ function formatBalanceToDecimal(balance, decimals) {
167
+ const divisor = 10n ** BigInt(decimals);
168
+ const whole = balance / divisor;
169
+ const remainder = balance % divisor;
170
+ if (remainder === 0n) {
171
+ return whole.toString();
172
+ }
173
+ const remainderStr = remainder.toString().padStart(decimals, '0');
174
+ const trimmed = remainderStr.replace(/0+$/, '');
175
+ return `${whole}.${trimmed}`;
176
+ }
177
+ // veFCTR voting power calculation based on VeBalanceLib.sol
178
+ // MAX_LOCK_TIME = 104 weeks in seconds
179
+ const MAX_LOCK_TIME = 104n * 7n * 24n * 60n * 60n; // 104 weeks in seconds
180
+ /**
181
+ * Calculate voting power for veFCTR based on locked amount and expiry
182
+ * Formula: votingPower = amount * (expiry - currentTime) / MAX_LOCK_TIME
183
+ *
184
+ * If the position is expired (expiry <= currentTime), voting power is 0
185
+ */
186
+ function calculateVotingPower(amount, expiry) {
187
+ const currentTime = BigInt(Math.floor(Date.now() / 1000));
188
+ const expiryBigInt = BigInt(expiry);
189
+ if (expiryBigInt <= currentTime) {
190
+ return 0n;
191
+ }
192
+ const timeRemaining = expiryBigInt - currentTime;
193
+ return (amount * timeRemaining) / MAX_LOCK_TIME;
194
+ }
195
+ function transformAccountBalance(data) {
196
+ const balance = BigInt(data.balance);
197
+ const decimals = data.token.decimals ?? 18;
198
+ const expiry = data.expiry ? Number(data.expiry) : null;
199
+ // Calculate voting power if expiry is present (veFCTR token)
200
+ let votingPower = null;
201
+ let votingPowerFmt = null;
202
+ if (expiry !== null) {
203
+ votingPower = calculateVotingPower(balance, expiry);
204
+ votingPowerFmt = formatBalanceToDecimal(votingPower, decimals);
205
+ }
206
+ return {
207
+ tokenAddress: data.token.address,
208
+ tokenName: data.token.name,
209
+ tokenSymbol: data.token.symbol,
210
+ tokenDecimals: data.token.decimals,
211
+ balance,
212
+ balanceFmt: formatBalanceToDecimal(balance, decimals),
213
+ expiry,
214
+ votingPower,
215
+ votingPowerFmt,
216
+ lastBlock: Number(data.lastBlock),
217
+ lastTimestamp: Number(data.lastTimestamp),
218
+ };
219
+ }
220
+ export async function getTokenBalancesForUser(chainId, environment, user) {
221
+ const subgraphUrl = factorFCTRSubgraphUrl[chainId]?.[environment];
222
+ if (!subgraphUrl) {
223
+ throw new Error(`Subgraph URL not found for chainId ${chainId} and environment ${environment}`);
224
+ }
225
+ const userAddress = user.toLowerCase();
226
+ const query = `
227
+ {
228
+ accountBalances(where: { account_: { address: "${userAddress}" }, balance_gt: "0" }) {
229
+ id
230
+ account {
231
+ id
232
+ address
233
+ }
234
+ token {
235
+ id
236
+ address
237
+ name
238
+ symbol
239
+ decimals
240
+ totalSupply
241
+ }
242
+ balance
243
+ expiry
244
+ lastBlock
245
+ lastTimestamp
246
+ }
247
+ }
248
+ `;
249
+ const response = await fetch(subgraphUrl, {
250
+ method: 'POST',
251
+ headers: {
252
+ 'Content-Type': 'application/json',
253
+ },
254
+ body: JSON.stringify({ query }),
255
+ });
256
+ const data = await response.json();
257
+ const accountBalances = data.data.accountBalances || [];
258
+ return {
259
+ userAddress,
260
+ balances: accountBalances.map(transformAccountBalance),
261
+ };
262
+ }
263
+ export async function getTokenBalancesForAllUsers(chainId, environment) {
264
+ const subgraphUrl = factorFCTRSubgraphUrl[chainId]?.[environment];
265
+ if (!subgraphUrl) {
266
+ throw new Error(`Subgraph URL not found for chainId ${chainId} and environment ${environment}`);
267
+ }
268
+ const accountBalances = await fetchPaginatedData(subgraphUrl, (first, skip) => `
269
+ {
270
+ accountBalances(
271
+ first: ${first}
272
+ skip: ${skip}
273
+ where: { balance_gt: "0" }
274
+ orderBy: lastTimestamp
275
+ orderDirection: desc
276
+ ) {
277
+ id
278
+ account {
279
+ id
280
+ address
281
+ }
282
+ token {
283
+ id
284
+ address
285
+ name
286
+ symbol
287
+ decimals
288
+ totalSupply
289
+ }
290
+ balance
291
+ expiry
292
+ lastBlock
293
+ lastTimestamp
294
+ }
295
+ }
296
+ `, (data) => data.data.accountBalances || []);
297
+ const balancesByUser = {};
298
+ for (const accountBalance of accountBalances) {
299
+ const userAddress = accountBalance.account.address;
300
+ if (!balancesByUser[userAddress]) {
301
+ balancesByUser[userAddress] = [];
302
+ }
303
+ balancesByUser[userAddress].push(transformAccountBalance(accountBalance));
304
+ }
305
+ return balancesByUser;
306
+ }
307
+ // Helper to get user's total voting power from their balances
308
+ function getUserVotingPower(userBalances) {
309
+ if (!userBalances)
310
+ return 0n;
311
+ // Sum up voting power from all veFCTR positions
312
+ return userBalances.reduce((total, balance) => {
313
+ if (balance.votingPower !== null) {
314
+ return total + balance.votingPower;
315
+ }
316
+ return total;
317
+ }, 0n);
318
+ }
319
+ // Supported chains for rewards fetching
320
+ const REWARD_CHAINS = [
321
+ ChainId.ARBITRUM_ONE,
322
+ ChainId.BASE,
323
+ ChainId.OPTIMISM,
324
+ ChainId.SONIC,
325
+ ];
326
+ /**
327
+ * Get all active vaults with complete data:
328
+ * - Vault info (id, chainId)
329
+ * - Votes with allocated veFCTR (voting power * weight percentage)
330
+ * - Rewards across all supported chains
331
+ *
332
+ * @param chainId - The chain ID where vaults are deployed
333
+ * @param environment - The environment (testing, staging, production)
334
+ * @returns Array of aggregated vault data
335
+ */
336
+ export async function getVaultsWithFullData(chainId, environment) {
337
+ // Fetch all data in parallel
338
+ const [vaults, vaultVotes, userBalances] = await Promise.all([
339
+ getAvailableVaultsForVoting(chainId, environment),
340
+ getVotesForAllUsers(chainId, environment),
341
+ getTokenBalancesForAllUsers(chainId, environment),
342
+ ]);
343
+ // Create a map of user address to voting power for quick lookup
344
+ const userVotingPowerMap = {};
345
+ for (const [userAddress, balances] of Object.entries(userBalances)) {
346
+ userVotingPowerMap[userAddress] = getUserVotingPower(balances);
347
+ }
348
+ // Fetch rewards for all vaults across all chains in parallel
349
+ const vaultAddresses = vaults.map((v) => v.id.toLowerCase());
350
+ // Fetch rewards for each vault on each chain
351
+ const rewardPromises = [];
352
+ for (const vaultAddress of vaultAddresses) {
353
+ for (const rewardChainId of REWARD_CHAINS) {
354
+ rewardPromises.push(getRewardsForVault(rewardChainId, environment, vaultAddress)
355
+ .then((reward) => ({ vaultAddress, chainId: rewardChainId, reward }))
356
+ .catch(() => ({
357
+ vaultAddress,
358
+ chainId: rewardChainId,
359
+ reward: null,
360
+ })));
361
+ }
362
+ }
363
+ const allRewards = await Promise.all(rewardPromises);
364
+ // Group rewards by vault address
365
+ const rewardsByVault = {};
366
+ for (const { vaultAddress, chainId: rewardChainId, reward } of allRewards) {
367
+ if (!rewardsByVault[vaultAddress]) {
368
+ rewardsByVault[vaultAddress] = [];
369
+ }
370
+ rewardsByVault[vaultAddress].push({
371
+ chainId: rewardChainId,
372
+ reward,
373
+ });
374
+ }
375
+ // Build the aggregated vault data
376
+ const aggregatedVaults = vaults.map((vault) => {
377
+ const vaultAddress = vault.id.toLowerCase();
378
+ const votes = vaultVotes[vaultAddress] || [];
379
+ // Calculate allocated veFCTR for each vote
380
+ const voteAllocations = votes.map((vote) => {
381
+ const votingPower = userVotingPowerMap[vote.userAddress] || 0n;
382
+ // Weight is stored in 18 decimals (1e18 = 100%), so divide by 1e18
383
+ const weightBigInt = BigInt(vote.weight);
384
+ const allocatedVeFCTR = (votingPower * weightBigInt) / DECIMALS_DIVISOR;
385
+ // Convert weight to percentage (0-100) for display
386
+ const weightPercentage = Number(weightBigInt) / 1e16; // 1e18 = 100%, so divide by 1e16 to get percentage
387
+ return {
388
+ userAddress: vote.userAddress,
389
+ weight: weightPercentage,
390
+ timestamp: vote.timestamp,
391
+ votingPower,
392
+ votingPowerFmt: formatBalanceToDecimal(votingPower, 18),
393
+ allocatedVeFCTR,
394
+ allocatedVeFCTRFmt: formatBalanceToDecimal(allocatedVeFCTR, 18),
395
+ };
396
+ });
397
+ // Calculate total allocated veFCTR for this vault
398
+ const totalAllocatedVeFCTR = voteAllocations.reduce((total, vote) => total + vote.allocatedVeFCTR, 0n);
399
+ return {
400
+ id: vault.id,
401
+ chainId: vault.chainId,
402
+ votes: voteAllocations,
403
+ totalAllocatedVeFCTR,
404
+ totalAllocatedVeFCTRFmt: formatBalanceToDecimal(totalAllocatedVeFCTR, 18),
405
+ rewards: rewardsByVault[vaultAddress] || [],
406
+ };
407
+ });
408
+ return aggregatedVaults;
409
+ }
163
410
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -63,4 +63,22 @@ export const factorGaugeControllerSubgraphUrl = {
63
63
  production: '',
64
64
  },
65
65
  };
66
+ export const factorFCTRSubgraphUrl = {
67
+ [ChainId.ARBITRUM_ONE]: {
68
+ testing: 'https://api.goldsky.com/api/public/project_cmgzitcts001c5np28moc9lyy/subgraphs/token-balance-arbitrum_testing/v0.0.3/gn',
69
+ production: '',
70
+ },
71
+ [ChainId.BASE]: {
72
+ testing: '',
73
+ production: '',
74
+ },
75
+ [ChainId.OPTIMISM]: {
76
+ testing: '',
77
+ production: '',
78
+ },
79
+ [ChainId.SONIC]: {
80
+ testing: '',
81
+ production: '',
82
+ },
83
+ };
66
84
  //# sourceMappingURL=subgraphs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subgraphs.js","sourceRoot":"","sources":["../../../src/utils/subgraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,YAAqD,EACrD,aAAqC;IAErC,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE1B,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,iBAAiB,CAAC;QAChD,IAAI,IAAI,iBAAiB,CAAC;IAC5B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACtB,OAAO,EACL,iHAAiH;QACnH,UAAU,EACR,oHAAoH;KACvH;IACD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACd,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;IACD,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAClB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;IACD,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACf,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;CAC6D,CAAC;AAEjE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACtB,OAAO,EACL,iHAAiH;QACnH,UAAU,EAAE,EAAE;KACf;IACD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACd,OAAO,EACL,6GAA6G;QAC/G,UAAU,EAAE,EAAE;KACf;IACD,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAClB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;IACD,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACf,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;KACf;CAC6D,CAAC"}
1
+ {"version":3,"file":"subgraphs.js","sourceRoot":"","sources":["../../../src/utils/subgraphs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@factordao/governance",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "dist",
package/types/index.d.ts CHANGED
@@ -1,7 +1,22 @@
1
- import { FactorEnvironment, VaultVotes, VaultReward } 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>;
6
8
  export declare function getRewardsForVault(chainId: ChainId, environment: FactorEnvironment, vault: string): Promise<VaultReward | null>;
7
9
  export declare function getRewardsForAllVaults(chainId: ChainId, environment: FactorEnvironment): Promise<VaultReward[]>;
10
+ export declare function getTokenBalancesForUser(chainId: ChainId, environment: FactorEnvironment, user: string): Promise<UserTokenBalances>;
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[]>;
@@ -33,3 +33,62 @@ export type VaultReward = {
33
33
  totalIncentive: bigint;
34
34
  totalIncentiveFmt: string;
35
35
  };
36
+ export type TokenData = {
37
+ id: string;
38
+ address: string;
39
+ name: string | null;
40
+ symbol: string | null;
41
+ decimals: number | null;
42
+ totalSupply: string | null;
43
+ };
44
+ export type AccountBalanceData = {
45
+ id: string;
46
+ account: {
47
+ id: string;
48
+ address: string;
49
+ };
50
+ token: TokenData;
51
+ balance: string;
52
+ expiry: string | null;
53
+ lastBlock: string;
54
+ lastTimestamp: string;
55
+ };
56
+ export type TokenBalance = {
57
+ tokenAddress: string;
58
+ tokenName: string | null;
59
+ tokenSymbol: string | null;
60
+ tokenDecimals: number | null;
61
+ balance: bigint;
62
+ balanceFmt: string;
63
+ expiry: number | null;
64
+ votingPower: bigint | null;
65
+ votingPowerFmt: string | null;
66
+ lastBlock: number;
67
+ lastTimestamp: number;
68
+ };
69
+ export type UserTokenBalances = {
70
+ userAddress: string;
71
+ balances: TokenBalance[];
72
+ };
73
+ export type AllUsersTokenBalances = Record<string, TokenBalance[]>;
74
+ export type VaultVoteAllocation = {
75
+ userAddress: string;
76
+ weight: number;
77
+ timestamp: number;
78
+ votingPower: bigint;
79
+ votingPowerFmt: string;
80
+ allocatedVeFCTR: bigint;
81
+ allocatedVeFCTRFmt: string;
82
+ };
83
+ export type VaultRewardByChain = {
84
+ chainId: number;
85
+ reward: VaultReward | null;
86
+ };
87
+ export type AggregatedVault = {
88
+ id: string;
89
+ chainId: number;
90
+ votes: VaultVoteAllocation[];
91
+ totalAllocatedVeFCTR: bigint;
92
+ totalAllocatedVeFCTRFmt: string;
93
+ rewards: VaultRewardByChain[];
94
+ };
@@ -3,3 +3,4 @@ import { FactorEnvironment } from '../types';
3
3
  export declare function fetchPaginatedData<T>(subgraphUrl: string, queryBuilder: (first: number, skip: number) => string, dataExtractor: (response: any) => T[]): Promise<T[]>;
4
4
  export declare const factorScaleSubgraphUrl: Record<ChainId, Partial<Record<FactorEnvironment, string>>>;
5
5
  export declare const factorGaugeControllerSubgraphUrl: Record<ChainId, Partial<Record<FactorEnvironment, string>>>;
6
+ export declare const factorFCTRSubgraphUrl: Record<ChainId, Partial<Record<FactorEnvironment, string>>>;