all files / contracts/v1.0.1/core/interfaces/ IDAOProposals.sol

100% Statements 0/0
100% Branches 0/0
100% Functions 0/0
100% Lines 0/0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92                                                                                                                                                                                       
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
 
import "./IDAOBase.sol";
import "./IDAOModule.sol";
import "./IDAOEvents.sol";
 
/**
 * @title IDAOProposals
 * @dev Interface for proposal creation and voting functionality
 */
interface IDAOProposals is IDAOBase, IDAOEvents {
    function proposeTransfer(
        address token,
        address recipient,
        uint256 amount
    ) external returns (uint256);
 
    function proposeUpgrade(string calldata newVersion) external returns (uint256);
 
    function proposeModuleUpgrade(
        IDAOModule.ModuleType moduleType,
        address moduleAddress,
        string calldata newVersion
    ) external returns (uint256);
 
    function proposePresale(
        uint256 tokenAmount,
        uint256 initialPrice
    ) external returns (uint256);
 
    function proposePresalePause(
        address presaleContract,
        bool pause
    ) external returns (uint256);
 
    function proposePresaleWithdraw(
        address presaleContract
    ) external returns (uint256);
 
    function proposePause() external returns (uint256);
 
    function proposeUnpause() external returns (uint256);
 
    function vote(uint256 proposalId, bool support) external;
 
    function getProposal(uint256 proposalId)
        external
        view
        returns (
            ProposalType proposalType,
            uint256 forVotes,
            uint256 againstVotes,
            uint256 endTime,
            bool executed
        );
 
    function getTransferData(uint256 proposalId)
        external
        view
        returns (address token, address recipient, uint256 amount);
 
    function getUpgradeData(uint256 proposalId)
        external
        view
        returns (address[] memory newImplementations, string memory newVersion);
 
    function getModuleUpgradeData(uint256 proposalId)
        external
        view
        returns (
            IDAOModule.ModuleType moduleType,
            address moduleAddress,
            string memory newVersion
        );
 
    function getPresaleData(uint256 proposalId)
        external
        view
        returns (address token, uint256 amount, uint256 initialPrice);
 
    function getPresalePauseData(uint256 proposalId)
        external
        view
        returns (address presaleContract, bool pause);
 
    function getPresaleWithdrawData(uint256 proposalId)
        external
        view
        returns (address presaleContract);
}