|
|
|
@ -64,6 +64,19 @@ contract GovernorHarness is Governor { |
|
|
|
|
return _votingPeriod; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
constructor(string memory name) Governor(name) {} |
|
|
|
|
|
|
|
|
|
// _countVots == Sum of castVote |
|
|
|
|
// |
|
|
|
|
// RHS: |
|
|
|
|
// 1) use counter_vote_power as a counter |
|
|
|
|
// 2) use counter_vote_power as a temp var for a ghost |
|
|
|
|
// |
|
|
|
|
// LHS: |
|
|
|
|
// mapping of count |
|
|
|
|
// countMap |
|
|
|
|
|
|
|
|
|
mapping(uint256 => mapping(address => uint256)) counted_weight_by_id; |
|
|
|
|
|
|
|
|
|
function _countVote( |
|
|
|
|
uint256 proposalId, |
|
|
|
@ -71,9 +84,46 @@ contract GovernorHarness is Governor { |
|
|
|
|
uint8 support, |
|
|
|
|
uint256 weight |
|
|
|
|
) internal override virtual { |
|
|
|
|
// havoc something |
|
|
|
|
counted_weight_by_id[proposalId][account] += weight; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
constructor(string memory name) Governor(name) {} |
|
|
|
|
|
|
|
|
|
mapping(uint256 => uint256) counter_vote_power_by_id; |
|
|
|
|
|
|
|
|
|
function castVote(uint256 proposalId, uint8 support) public virtual override returns (uint256) { |
|
|
|
|
address voter = _msgSender(); |
|
|
|
|
// 1) |
|
|
|
|
counter_vote_power_by_id[proposalId] += _castVote(proposalId, voter, support, ""); |
|
|
|
|
return _castVote(proposalId, voter, support, ""); |
|
|
|
|
// 2) |
|
|
|
|
// counter_vote_power_by_id[proposalId] = _castVote(proposalId, voter, support, ""); |
|
|
|
|
// return counter_vote_power; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function castVoteWithReason( |
|
|
|
|
uint256 proposalId, |
|
|
|
|
uint8 support, |
|
|
|
|
string calldata reason |
|
|
|
|
) public virtual override returns (uint256) { |
|
|
|
|
address voter = _msgSender(); |
|
|
|
|
counter_vote_power_by_id[proposalId] += _castVote(proposalId, voter, support, reason); |
|
|
|
|
return _castVote(proposalId, voter, support, reason); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function castVoteBySig( |
|
|
|
|
uint256 proposalId, |
|
|
|
|
uint8 support, |
|
|
|
|
uint8 v, |
|
|
|
|
bytes32 r, |
|
|
|
|
bytes32 s |
|
|
|
|
) public virtual override returns (uint256) { |
|
|
|
|
address voter = ECDSA.recover( |
|
|
|
|
_hashTypedDataV4(keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support))), |
|
|
|
|
v, |
|
|
|
|
r, |
|
|
|
|
s |
|
|
|
|
); |
|
|
|
|
counter_vote_power_by_id[proposalId] += _castVote(proposalId, voter, support, ""); |
|
|
|
|
return _castVote(proposalId, voter, support, ""); |
|
|
|
|
} |
|
|
|
|
} |