fix(ethereum): use proposal's pendingThrough timestamp for voting power #19856
+8
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
--vote-amountwould fail withGovernance__CheckpointedUintLib__NotInPasterrorgetPowerForProposal(proposalId)method that correctly uses the proposal'spendingThroughtimestamp (creation + votingDelay) to determine voting powervote()method to usegetPowerForProposal()instead of the brokengetPower()which was incorrectly using the current block timestampBackground
The governance contract checks voting power at
pendingThroughtimestamp (when proposal transitions from Pending to Active). The CLI'sgetPower()method was callingpowerAt(now.timestamp)which always failed because the contract requires_time < block.timestamp(strictly less than).Test plan
--vote-amountflag