Skip to content

Commit

Permalink
fixed voting power percent calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
NoahSaso committed Jul 9, 2024
1 parent 60f71fc commit 11184d3
Showing 1 changed file with 29 additions and 15 deletions.
44 changes: 29 additions & 15 deletions src/formulas/formulas/contract/daoCore/members.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { topStakers as topNativeStakers } from '../voting/daoVotingNativeStaked'
import { topStakers as topOnftStakers } from '../voting/daoVotingOnftStaked'
import {
listVoters as listSgCommunityNftVoters,
totalPowerAtHeight as sgCommunityNftTotalPower,
votingPowerAtHeight as sgCommunityNftVotingPower,
} from '../voting/daoVotingSgCommunityNft'
import { topStakers as topTokenStakers } from '../voting/daoVotingTokenStaked'
Expand Down Expand Up @@ -216,25 +217,38 @@ export const listMembers: ContractFormula<DaoMember[]> = {
'dao-voting-sg-community-nft'
)
) {
const { voters } = await listSgCommunityNftVoters.compute({
...env,
contractAddress: votingModuleAddress,
})
const [{ voters }, { power: totalPower }] = await Promise.all([
listSgCommunityNftVoters.compute({
...env,
contractAddress: votingModuleAddress,
}),
sgCommunityNftTotalPower.compute({
...env,
contractAddress: votingModuleAddress,
}),
])

const totalPowerNum = Number(totalPower)

return await Promise.all(
voters.map(async (address) => ({
address,
votingPowerPercent: Number(
(
await sgCommunityNftVotingPower.compute({
...env,
contractAddress: votingModuleAddress,
args: {
address,
},
})
).power
),
votingPowerPercent:
totalPowerNum === 0
? 0
: (Number(
(
await sgCommunityNftVotingPower.compute({
...env,
contractAddress: votingModuleAddress,
args: {
address,
},
})
).power
) /
totalPowerNum) *
100,
}))
)
}
Expand Down

0 comments on commit 11184d3

Please sign in to comment.