diff --git a/src/common/interfaces/IGovernance.sol b/src/common/interfaces/IGovernance.sol index e2c668d..47410dc 100644 --- a/src/common/interfaces/IGovernance.sol +++ b/src/common/interfaces/IGovernance.sol @@ -1,5 +1,17 @@ +// SPDX-License-Identifier: MIT + pragma solidity ^0.8.19; +enum ProposalState { + Pending, + Active, + Defeated, + Timelocked, + AwaitingExecution, + Executed, + Expired +} + struct Proposal { // Creator of the proposal address proposer; @@ -39,4 +51,5 @@ interface IGovernance { function lock(address owner, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; function lockWithApproval(uint256 amount) external; function execute(uint256 proposalId) external payable; + function state(uint256 proposalId) external view returns (ProposalState); } diff --git a/test/TornadoProposalTest.sol b/test/TornadoProposalTest.sol index f7ef544..2a7ad8d 100644 --- a/test/TornadoProposalTest.sol +++ b/test/TornadoProposalTest.sol @@ -62,6 +62,7 @@ contract TornadoProposalTest is Test, TornadoAddresses { // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEST UTILS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ function setUp() public virtual { + vm.createSelectFork(vm.envString("MAINNET_RPC_URL")); _fetchConfiguration(); } @@ -74,7 +75,7 @@ contract TornadoProposalTest is Test, TornadoAddresses { } 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); /* ----------PROPOSER------------ */ @@ -100,7 +101,7 @@ contract TornadoProposalTest is Test, TornadoAddresses { } 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); bytes32 messageHash = keccak256( @@ -132,7 +133,7 @@ contract TornadoProposalTest is Test, TornadoAddresses { function getProposalExecutableTime(uint256 proposalId) internal view returns (uint256) { Proposal memory proposal = IGovernance(getGovernanceProxyAddress()).proposals(proposalId); - return proposal.endTime + VOTING_DELAY + 1 hours; + return proposal.endTime + EXECUTION_DELAY + 1 hours; } function _fetchConfiguration() internal {