votes need to be above quorum
Signed-off-by: AlienTornadosaurusHex <>
This commit is contained in:
parent
c62f62aaee
commit
d2e29c6ff9
@ -1,5 +1,17 @@
|
|||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
pragma solidity ^0.8.19;
|
pragma solidity ^0.8.19;
|
||||||
|
|
||||||
|
enum ProposalState {
|
||||||
|
Pending,
|
||||||
|
Active,
|
||||||
|
Defeated,
|
||||||
|
Timelocked,
|
||||||
|
AwaitingExecution,
|
||||||
|
Executed,
|
||||||
|
Expired
|
||||||
|
}
|
||||||
|
|
||||||
struct Proposal {
|
struct Proposal {
|
||||||
// Creator of the proposal
|
// Creator of the proposal
|
||||||
address proposer;
|
address proposer;
|
||||||
@ -39,4 +51,5 @@ interface IGovernance {
|
|||||||
function lock(address owner, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
|
function lock(address owner, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
|
||||||
function lockWithApproval(uint256 amount) external;
|
function lockWithApproval(uint256 amount) external;
|
||||||
function execute(uint256 proposalId) external payable;
|
function execute(uint256 proposalId) external payable;
|
||||||
|
function state(uint256 proposalId) external view returns (ProposalState);
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,7 @@ contract TornadoProposalTest is Test, TornadoAddresses {
|
|||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEST UTILS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEST UTILS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
function setUp() public virtual {
|
function setUp() public virtual {
|
||||||
|
vm.createSelectFork(vm.envString("MAINNET_RPC_URL"));
|
||||||
_fetchConfiguration();
|
_fetchConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,7 +75,7 @@ contract TornadoProposalTest is Test, TornadoAddresses {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function easyPropose(address proposalAddress) public returns (uint256) {
|
function easyPropose(address proposalAddress) public returns (uint256) {
|
||||||
retrieveAndLockBalance(TEST_PRIVATE_KEY_ONE, TEST_ADDRESS_ONE, PROPOSAL_THRESHOLD);
|
retrieveAndLockBalance(TEST_PRIVATE_KEY_ONE, TEST_ADDRESS_ONE, QUORUM_VOTES);
|
||||||
retrieveAndLockBalance(TEST_PRIVATE_KEY_TWO, TEST_ADDRESS_TWO, 1 ether);
|
retrieveAndLockBalance(TEST_PRIVATE_KEY_TWO, TEST_ADDRESS_TWO, 1 ether);
|
||||||
|
|
||||||
/* ----------PROPOSER------------ */
|
/* ----------PROPOSER------------ */
|
||||||
@ -100,7 +101,7 @@ contract TornadoProposalTest is Test, TornadoAddresses {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function retrieveAndLockBalance(uint256 privateKey, address voter, uint256 amount) internal {
|
function retrieveAndLockBalance(uint256 privateKey, address voter, uint256 amount) internal {
|
||||||
uint256 lockTimestamp = block.timestamp + VOTING_PERIOD + EXECUTION_DELAY;
|
uint256 lockTimestamp = block.timestamp + VOTING_PERIOD + EXECUTION_DELAY + 1 hours;
|
||||||
uint256 accountNonce = ERC20Permit(getTornTokenAddress()).nonces(voter);
|
uint256 accountNonce = ERC20Permit(getTornTokenAddress()).nonces(voter);
|
||||||
|
|
||||||
bytes32 messageHash = keccak256(
|
bytes32 messageHash = keccak256(
|
||||||
@ -132,7 +133,7 @@ contract TornadoProposalTest is Test, TornadoAddresses {
|
|||||||
|
|
||||||
function getProposalExecutableTime(uint256 proposalId) internal view returns (uint256) {
|
function getProposalExecutableTime(uint256 proposalId) internal view returns (uint256) {
|
||||||
Proposal memory proposal = IGovernance(getGovernanceProxyAddress()).proposals(proposalId);
|
Proposal memory proposal = IGovernance(getGovernanceProxyAddress()).proposals(proposalId);
|
||||||
return proposal.endTime + VOTING_DELAY + 1 hours;
|
return proposal.endTime + EXECUTION_DELAY + 1 hours;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _fetchConfiguration() internal {
|
function _fetchConfiguration() internal {
|
||||||
|
Loading…
Reference in New Issue
Block a user