all files / plugins/assets/convex/vendor/ ConvexInterfaces.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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
 
interface ICurveGauge {
    function deposit(uint256) external;
 
    function balanceOf(address) external view returns (uint256);
 
    function withdraw(uint256) external;
 
    function claim_rewards() external;
 
    function reward_tokens(uint256) external view returns (address); //v2
 
    function rewarded_token() external view returns (address); //v1
 
    function lp_token() external view returns (address);
}
 
interface ICurveVoteEscrow {
    function create_lock(uint256, uint256) external;
 
    function increase_amount(uint256) external;
 
    function increase_unlock_time(uint256) external;
 
    function withdraw() external;
 
    function smart_wallet_checker() external view returns (address);
}
 
interface IWalletChecker {
    function check(address) external view returns (bool);
}
 
interface IVoting {
    function vote(
        uint256,
        bool,
        bool
    ) external; //voteId, support, executeIfDecided
 
    function getVote(uint256)
        external
        view
        returns (
            bool,
            bool,
            uint64,
            uint64,
            uint64,
            uint64,
            uint256,
            uint256,
            uint256,
            bytes memory
        );
 
    function vote_for_gauge_weights(address, uint256) external;
}
 
interface IMinter {
    function mint(address) external;
}
 
interface IRegistry {
    function get_registry() external view returns (address);
 
    function get_address(uint256 _id) external view returns (address);
 
    function gauge_controller() external view returns (address);
 
    function get_lp_token(address) external view returns (address);
 
    function get_gauges(address) external view returns (address[10] memory, uint128[10] memory);
}
 
interface IStaker {
    function deposit(address, address) external;
 
    function withdraw(address) external;
 
    function withdraw(
        address,
        address,
        uint256
    ) external;
 
    function withdrawAll(address, address) external;
 
    function createLock(uint256, uint256) external;
 
    function increaseAmount(uint256) external;
 
    function increaseTime(uint256) external;
 
    function release() external;
 
    function claimCrv(address) external returns (uint256);
 
    function claimRewards(address) external;
 
    function claimFees(address, address) external;
 
    function setStashAccess(address, bool) external;
 
    function vote(
        uint256,
        address,
        bool
    ) external;
 
    function voteGaugeWeight(address, uint256) external;
 
    function balanceOfPool(address) external view returns (uint256);
 
    function operator() external view returns (address);
 
    function execute(
        address _to,
        uint256 _value,
        bytes calldata _data
    ) external returns (bool, bytes memory);
}
 
interface IRewards {
    function stake(address, uint256) external;
 
    function stakeFor(address, uint256) external;
 
    function withdraw(address, uint256) external;
 
    function exit(address) external;
 
    function getReward(address) external;
 
    function queueNewRewards(uint256) external;
 
    function notifyRewardAmount(uint256) external;
 
    function addExtraReward(address) external;
 
    function stakingToken() external view returns (address);
 
    function rewardToken() external view returns (address);
 
    function earned(address account) external view returns (uint256);
}
 
interface IStash {
    function stashRewards() external returns (bool);
 
    function processStash() external returns (bool);
 
    function claimRewards() external returns (bool);
 
    function initialize(
        uint256 _pid,
        address _operator,
        address _staker,
        address _gauge,
        address _rewardFactory
    ) external;
}
 
interface IFeeDistro {
    function claim() external;
 
    function token() external view returns (address);
}
 
interface ITokenMinter {
    function mint(address, uint256) external;
 
    function burn(address, uint256) external;
}
 
interface IDeposit {
    function isShutdown() external view returns (bool);
 
    function balanceOf(address _account) external view returns (uint256);
 
    function totalSupply() external view returns (uint256);
 
    function poolInfo(uint256)
        external
        view
        returns (
            address,
            address,
            address,
            address,
            address,
            bool
        );
 
    function rewardClaimed(
        uint256,
        address,
        uint256
    ) external;
 
    function withdrawTo(
        uint256,
        uint256,
        address
    ) external;
 
    function claimRewards(uint256, address) external returns (bool);
 
    function rewardArbitrator() external returns (address);
 
    function setGaugeRedirect(uint256 _pid) external returns (bool);
 
    function owner() external returns (address);
}
 
interface ICrvDeposit {
    function deposit(uint256, bool) external;
 
    function lockIncentive() external view returns (uint256);
}
 
interface IRewardFactory {
    function setAccess(address, bool) external;
 
    function CreateCrvRewards(uint256, address) external returns (address);
 
    function CreateTokenRewards(
        address,
        address,
        address
    ) external returns (address);
 
    function activeRewardCount(address) external view returns (uint256);
 
    function addActiveReward(address, uint256) external returns (bool);
 
    function removeActiveReward(address, uint256) external returns (bool);
}
 
interface IStashFactory {
    function CreateStash(
        uint256,
        address,
        address,
        uint256
    ) external returns (address);
}
 
interface ITokenFactory {
    function CreateDepositToken(address) external returns (address);
}
 
interface IPools {
    function addPool(
        address _lptoken,
        address _gauge,
        uint256 _stashVersion
    ) external returns (bool);
 
    function forceAddPool(
        address _lptoken,
        address _gauge,
        uint256 _stashVersion
    ) external returns (bool);
 
    function shutdownPool(uint256 _pid) external returns (bool);
 
    function poolInfo(uint256)
        external
        view
        returns (
            address,
            address,
            address,
            address,
            address,
            bool
        );
 
    function poolLength() external view returns (uint256);
 
    function gaugeMap(address) external view returns (bool);
 
    function setPoolManager(address _poolM) external;
}
 
interface IVestedEscrow {
    function fund(address[] calldata _recipient, uint256[] calldata _amount)
        external
        returns (bool);
}