Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 77 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add Pool | 19417663 | 337 days ago | IN | 0 ETH | 0.16280697 | ||||
Add Pool | 19402284 | 339 days ago | IN | 0 ETH | 0.13980496 | ||||
Add Pool | 19394771 | 340 days ago | IN | 0 ETH | 0.10653312 | ||||
Add Pool | 19394771 | 340 days ago | IN | 0 ETH | 0.10653312 | ||||
Add Pool | 19394771 | 340 days ago | IN | 0 ETH | 0.10653312 | ||||
Add Pool | 19394731 | 340 days ago | IN | 0 ETH | 0.11353839 | ||||
Add Pool | 19394715 | 340 days ago | IN | 0 ETH | 0.11200239 | ||||
Add Pool | 19394705 | 340 days ago | IN | 0 ETH | 0.11370182 | ||||
Add Pool | 19386277 | 341 days ago | IN | 0 ETH | 0.15672508 | ||||
Add Pool | 19375281 | 343 days ago | IN | 0 ETH | 0.1889904 | ||||
Add Pool | 19350449 | 346 days ago | IN | 0 ETH | 0.1155556 | ||||
Add Pool | 19329171 | 349 days ago | IN | 0 ETH | 0.15464338 | ||||
Add Pool | 19329170 | 349 days ago | IN | 0 ETH | 0.15414588 | ||||
Add Pool | 19287327 | 355 days ago | IN | 0 ETH | 0.12607689 | ||||
Add Pool | 19284985 | 355 days ago | IN | 0 ETH | 0.16247594 | ||||
Add Pool | 19280928 | 356 days ago | IN | 0 ETH | 0.10926775 | ||||
Add Pool | 19255738 | 359 days ago | IN | 0 ETH | 0.11918297 | ||||
Add Pool | 19233897 | 362 days ago | IN | 0 ETH | 0.10736036 | ||||
Add Pool | 19233866 | 362 days ago | IN | 0 ETH | 0.09807533 | ||||
Add Pool | 19230219 | 363 days ago | IN | 0 ETH | 0.05722098 | ||||
Add Pool | 19224695 | 364 days ago | IN | 0 ETH | 0.05414131 | ||||
Add Pool | 19210690 | 366 days ago | IN | 0 ETH | 0.06098478 | ||||
Add Pool | 19210688 | 366 days ago | IN | 0 ETH | 0.06082591 | ||||
Add Pool | 19205550 | 366 days ago | IN | 0 ETH | 0.07458159 | ||||
Add Pool | 19205347 | 366 days ago | IN | 0 ETH | 0.07441718 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
PoolManagerV4
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
istanbul EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; import "./Interfaces.sol"; import "./interfaces/IGaugeController.sol"; import "./interfaces/IPoolAddHook.sol"; /* Pool Manager v4 Changes: - add is killed check - add block list for things like vefunder - add post pool add hook */ contract PoolManagerV4{ address public constant gaugeController = address(0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB); address public immutable pools; address public operator; mapping(address => bool) public blockList; address public postAddHook; constructor(address _pools) public { //default to multisig operator = address(0xa3C5A1e09150B75ff251c1a7815A07182c3de2FB); pools = _pools; //add vefunder blockList[address(0xbAF05d7aa4129CA14eC45cC9d4103a9aB9A9fF60)] = true; } function setOperator(address _operator) external { require(msg.sender == operator, "!auth"); operator = _operator; } function setPostAddHook(address _hook) external { require(msg.sender == operator, "!auth"); postAddHook = _hook; } //add a new curve pool to the system. (default stash to v3) function addPool(address _gauge) external returns(bool){ _addPool(_gauge,3); return true; } //add a new curve pool to the system. function addPool(address _gauge, uint256 _stashVersion) external returns(bool){ _addPool(_gauge,_stashVersion); return true; } function _addPool(address _gauge, uint256 _stashVersion) internal{ require(!blockList[_gauge],"!blocked"); require(!ICurveGauge(_gauge).is_killed(), "!killed"); //get lp token from gauge address lptoken = ICurveGauge(_gauge).lp_token(); //gauge/lptoken address checks will happen in the next call IPools(pools).addPool(lptoken,_gauge,_stashVersion); //call hook if not 0 address if(postAddHook != address(0)){ IPoolAddHook(postAddHook).poolAdded(_gauge, _stashVersion, IPools(pools).poolLength()-1); } } function forceAddPool(address _lptoken, address _gauge, uint256 _stashVersion) external returns(bool){ require(msg.sender==operator, "!auth"); //force add pool without weight checks (can only be used on new token and gauge addresses) return IPools(pools).forceAddPool(_lptoken, _gauge, _stashVersion); } function shutdownPool(uint256 _pid) external returns(bool){ require(msg.sender==operator, "!auth"); IPools(pools).shutdownPool(_pid); return true; } }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IPoolAddHook { function poolAdded(address _gauge, uint256 _stashVersion, uint256 _poolId) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IGaugeController { function get_gauge_weight(address _gauge) external view returns(uint256); function vote_user_slopes(address,address) external view returns(uint256,uint256,uint256);//slope,power,end function vote_for_gauge_weights(address,uint256) external; function add_gauge(address,int128,uint256) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; 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); function is_killed() external view returns(bool); } 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; function setExtraReward(address _token) external; function setRewardHook(address _hook) external; function tokenCount() external view returns (uint256); } 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); function setImplementation(address _v1, address _v2, address _v3) external; } 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); }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_pools","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"},{"internalType":"uint256","name":"_stashVersion","type":"uint256"}],"name":"addPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"addPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blockList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lptoken","type":"address"},{"internalType":"address","name":"_gauge","type":"address"},{"internalType":"uint256","name":"_stashVersion","type":"uint256"}],"name":"forceAddPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gaugeController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pools","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"postAddHook","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_hook","type":"address"}],"name":"setPostAddHook","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"shutdownPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b506040516109c63803806109c68339818101604052602081101561003357600080fd5b5051600080546001600160a01b03191673a3c5a1e09150b75ff251c1a7815a07182c3de2fb1781556001600160601b031960609290921b9190911660805273baf05d7aa4129ca14ec45cc9d4103a9ab9a9ff609052600160208190527f99759ab0d944a9dab202f9bba719ac12ab3ac10bef2be080c5ca0bceaef84730805460ff1916909117905560805160601c6108da6100ec60003980610294528061039852806104c852806106fd52806107af52506108da6000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806399eecb3b1161007157806399eecb3b1461016d578063b3ab15fb14610175578063b53992831461019d578063c5c51dca146101c3578063d914cd4b146101cb578063edaabe0a146101f1576100a9565b8063201070ef146100ae57806332a9caba146100d2578063570ca735146101125780635744887d1461011a57806360cafe8414610150575b600080fd5b6100b6610217565b604080516001600160a01b039092168252519081900360200190f35b6100fe600480360360408110156100e857600080fd5b506001600160a01b038135169060200135610226565b604080519115158252519081900360200190f35b6100b661023b565b6100fe6004803603606081101561013057600080fd5b506001600160a01b0381358116916020810135909116906040013561024a565b6100fe6004803603602081101561016657600080fd5b503561034e565b6100b6610430565b61019b6004803603602081101561018b57600080fd5b50356001600160a01b0316610448565b005b6100fe600480360360208110156101b357600080fd5b50356001600160a01b03166104b1565b6100b66104c6565b6100fe600480360360208110156101e157600080fd5b50356001600160a01b03166104ea565b61019b6004803603602081101561020757600080fd5b50356001600160a01b03166104ff565b6002546001600160a01b031681565b60006102328383610568565b50600192915050565b6000546001600160a01b031681565b600080546001600160a01b03163314610292576040805162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635744887d8585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561031a57600080fd5b505af115801561032e573d6000803e3d6000fd5b505050506040513d602081101561034457600080fd5b5051949350505050565b600080546001600160a01b03163314610396576040805162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166360cafe84836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156103fc57600080fd5b505af1158015610410573d6000803e3d6000fd5b505050506040513d602081101561042657600080fd5b5060019392505050565b732f50d538606fa9edd2b11e2446beb18c9d5846bb81565b6000546001600160a01b0316331461048f576040805162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104f7826003610568565b506001919050565b6000546001600160a01b03163314610546576040805162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821660009081526001602052604090205460ff16156105c1576040805162461bcd60e51b815260206004820152600860248201526708589b1bd8dad95960c21b604482015290519081900360640190fd5b816001600160a01b0316639c868ac06040518163ffffffff1660e01b815260040160206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d602081101561062457600080fd5b505115610662576040805162461bcd60e51b8152602060048201526007602482015266085ada5b1b195960ca1b604482015290519081900360640190fd5b6000826001600160a01b03166382c630666040518163ffffffff1660e01b815260040160206040518083038186803b15801561069d57600080fd5b505afa1580156106b1573d6000803e3d6000fd5b505050506040513d60208110156106c757600080fd5b505160408051633f14eb6160e11b81526001600160a01b03808416600483015286811660248301526044820186905291519293507f000000000000000000000000000000000000000000000000000000000000000090911691637e29d6c2916064808201926020929091908290030181600087803b15801561074857600080fd5b505af115801561075c573d6000803e3d6000fd5b505050506040513d602081101561077257600080fd5b50506002546001600160a01b03161561089f57600260009054906101000a90046001600160a01b03166001600160a01b0316634b8843d5848460017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663081e3eda6040518163ffffffff1660e01b815260040160206040518083038186803b15801561080657600080fd5b505afa15801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935203604483015251606480830192600092919082900301818387803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050505b50505056fea2646970667358221220301282ebb36a7c27e46be48c227982e6e171edbdb41c3d1f4dfd3908d1ded4cb64736f6c634300060c00330000000000000000000000007ce805b8f4bc95578e0762ac7568d4e6409a0792
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806399eecb3b1161007157806399eecb3b1461016d578063b3ab15fb14610175578063b53992831461019d578063c5c51dca146101c3578063d914cd4b146101cb578063edaabe0a146101f1576100a9565b8063201070ef146100ae57806332a9caba146100d2578063570ca735146101125780635744887d1461011a57806360cafe8414610150575b600080fd5b6100b6610217565b604080516001600160a01b039092168252519081900360200190f35b6100fe600480360360408110156100e857600080fd5b506001600160a01b038135169060200135610226565b604080519115158252519081900360200190f35b6100b661023b565b6100fe6004803603606081101561013057600080fd5b506001600160a01b0381358116916020810135909116906040013561024a565b6100fe6004803603602081101561016657600080fd5b503561034e565b6100b6610430565b61019b6004803603602081101561018b57600080fd5b50356001600160a01b0316610448565b005b6100fe600480360360208110156101b357600080fd5b50356001600160a01b03166104b1565b6100b66104c6565b6100fe600480360360208110156101e157600080fd5b50356001600160a01b03166104ea565b61019b6004803603602081101561020757600080fd5b50356001600160a01b03166104ff565b6002546001600160a01b031681565b60006102328383610568565b50600192915050565b6000546001600160a01b031681565b600080546001600160a01b03163314610292576040805162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015290519081900360640190fd5b7f0000000000000000000000007ce805b8f4bc95578e0762ac7568d4e6409a07926001600160a01b0316635744887d8585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561031a57600080fd5b505af115801561032e573d6000803e3d6000fd5b505050506040513d602081101561034457600080fd5b5051949350505050565b600080546001600160a01b03163314610396576040805162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015290519081900360640190fd5b7f0000000000000000000000007ce805b8f4bc95578e0762ac7568d4e6409a07926001600160a01b03166360cafe84836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156103fc57600080fd5b505af1158015610410573d6000803e3d6000fd5b505050506040513d602081101561042657600080fd5b5060019392505050565b732f50d538606fa9edd2b11e2446beb18c9d5846bb81565b6000546001600160a01b0316331461048f576040805162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205460ff1681565b7f0000000000000000000000007ce805b8f4bc95578e0762ac7568d4e6409a079281565b60006104f7826003610568565b506001919050565b6000546001600160a01b03163314610546576040805162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821660009081526001602052604090205460ff16156105c1576040805162461bcd60e51b815260206004820152600860248201526708589b1bd8dad95960c21b604482015290519081900360640190fd5b816001600160a01b0316639c868ac06040518163ffffffff1660e01b815260040160206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d602081101561062457600080fd5b505115610662576040805162461bcd60e51b8152602060048201526007602482015266085ada5b1b195960ca1b604482015290519081900360640190fd5b6000826001600160a01b03166382c630666040518163ffffffff1660e01b815260040160206040518083038186803b15801561069d57600080fd5b505afa1580156106b1573d6000803e3d6000fd5b505050506040513d60208110156106c757600080fd5b505160408051633f14eb6160e11b81526001600160a01b03808416600483015286811660248301526044820186905291519293507f0000000000000000000000007ce805b8f4bc95578e0762ac7568d4e6409a079290911691637e29d6c2916064808201926020929091908290030181600087803b15801561074857600080fd5b505af115801561075c573d6000803e3d6000fd5b505050506040513d602081101561077257600080fd5b50506002546001600160a01b03161561089f57600260009054906101000a90046001600160a01b03166001600160a01b0316634b8843d5848460017f0000000000000000000000007ce805b8f4bc95578e0762ac7568d4e6409a07926001600160a01b031663081e3eda6040518163ffffffff1660e01b815260040160206040518083038186803b15801561080657600080fd5b505afa15801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935203604483015251606480830192600092919082900301818387803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050505b50505056fea2646970667358221220301282ebb36a7c27e46be48c227982e6e171edbdb41c3d1f4dfd3908d1ded4cb64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007ce805b8f4bc95578e0762ac7568d4e6409a0792
-----Decoded View---------------
Arg [0] : _pools (address): 0x7cE805B8f4Bc95578e0762Ac7568d4e6409a0792
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007ce805b8f4bc95578e0762ac7568d4e6409a0792
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.