UNPKG

@moonwell-fi/moonwell-sdk

Version:

TypeScript Interface for Moonwell

62 lines 3.73 kB
import { zeroAddress } from "viem"; import { Amount, getEnvironmentsFromArgs } from "../../common/index.js"; export async function getUserVotingPowers(client, args) { const { governanceToken, userAddress } = args; const environments = getEnvironmentsFromArgs(client, args); const tokenEnvironments = environments.filter((env) => env.custom?.governance?.token === governanceToken); const environmentsUserVotingPowers = await Promise.all(tokenEnvironments.map((environment) => environment.contracts.views?.read.getUserVotingPower([userAddress]))); return tokenEnvironments.map((environment, index) => { const votingPowers = environmentsUserVotingPowers[index]; return { chainId: environment.chainId, //Claims balances claimsDelegates: votingPowers.claimsVotes.delegates, claimsBalance: new Amount(votingPowers.claimsVotes.votingPower, 18), claimsDelegated: new Amount(votingPowers.claimsVotes.delegatedVotingPower, 18), claimsDelegatedOthers: new Amount(votingPowers.claimsVotes.delegatedVotingPower - (votingPowers.claimsVotes.delegates === userAddress ? votingPowers.claimsVotes.votingPower : 0n), 18), claimsDelegatedSelf: new Amount(votingPowers.claimsVotes.delegates === userAddress ? votingPowers.claimsVotes.votingPower : 0n, 18), claimsUndelegated: new Amount(votingPowers.claimsVotes.delegates === zeroAddress ? votingPowers.claimsVotes.votingPower : 0n, 18), //Token balances tokenDelegates: votingPowers.tokenVotes.delegates, tokenBalance: new Amount(votingPowers.tokenVotes.votingPower, 18), tokenDelegated: new Amount(votingPowers.tokenVotes.delegatedVotingPower, 18), tokenDelegatedOthers: new Amount(votingPowers.tokenVotes.delegatedVotingPower - (votingPowers.tokenVotes.delegates === userAddress ? votingPowers.tokenVotes.votingPower : 0n), 18), tokenDelegatedSelf: new Amount(votingPowers.tokenVotes.delegates === userAddress ? votingPowers.tokenVotes.votingPower : 0n, 18), tokenUndelegated: new Amount(votingPowers.tokenVotes.delegates === zeroAddress ? votingPowers.tokenVotes.votingPower : 0n, 18), stakingDelegated: new Amount(votingPowers.stakingVotes.delegatedVotingPower, 18), totalDelegated: new Amount(votingPowers.claimsVotes.delegatedVotingPower + votingPowers.tokenVotes.delegatedVotingPower + votingPowers.stakingVotes.delegatedVotingPower, 18), totalDelegatedOthers: new Amount(votingPowers.claimsVotes.delegatedVotingPower - (votingPowers.claimsVotes.delegates === userAddress ? votingPowers.claimsVotes.votingPower : 0n) + (votingPowers.tokenVotes.delegatedVotingPower - (votingPowers.tokenVotes.delegates === userAddress ? votingPowers.tokenVotes.votingPower : 0n)), 18), totalDelegatedSelf: new Amount((votingPowers.claimsVotes.delegates === userAddress ? votingPowers.claimsVotes.votingPower : 0n) + (votingPowers.tokenVotes.delegates === userAddress ? votingPowers.tokenVotes.votingPower : 0n) + votingPowers.stakingVotes.delegatedVotingPower, 18), }; }); } //# sourceMappingURL=getUserVotingPowers.js.map