Overview
S Balance
0 S
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
ClaimFeesMulticall
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.13; import "@openzeppelin/contracts/access/Ownable.sol"; interface IGaugeFactory { function gauges() external view returns (address[] memory); } interface IGauge { function claimFees() external returns (uint claimed0, uint claimed1); function TOKEN() external view returns (address); } interface IPair { function claimStakingFees() external; } interface IVoter { function isAlive(address gauge) external returns (bool); function isGauge(address gauge) external returns (bool); function _epochTimestamp() external view returns (uint256); } interface ISplitter { function split() external; function stakingConverter() external view returns (address); function balanceOf() external view returns (uint256); } interface ISWPxNFTFeeConverter { function claimFees() external; function swap() external; function swap(uint256 from, uint256 to) external; } contract ClaimFeesMulticall is Ownable { /// @notice voter contract address address public voter; /// @notice gauge factory for GaugeV2 contracts address public gaugeFactory; /// @notice gauge factory for GaugeV2_CL contracts address public gaugeFactoryCL; /// @notice NFTSalesSplitter contract address public splitter; /// @notice SWPxNFTFeeConverter contract address public feeConverter; /// @notice true - claimFees called at this epoch, else - false mapping(uint256 => bool) public epochClaimed; /// @notice true - claimStakingFees called at this epoch, else - false mapping(uint256 => bool) public epochClaimedStaking; constructor( address _voter, address _gaugeFactory, address _gaugeFactoryCL, address _splitter ) { _setVoter(_voter); _setGaugeFactory(_gaugeFactory); _setGaugeFactoryCL(_gaugeFactoryCL); _setSplitter(_splitter); } // ownable methods /** @notice change VoterV3 contract address * @param _voter new contract address * @dev owner only */ function setVoter(address _voter) external onlyOwner { _setVoter(_voter); } /** @notice change GaugeFactory contract address * @param _gaugeFactory new contract address * @dev owner only */ function setGaugeFactory(address _gaugeFactory) external onlyOwner { _setGaugeFactory(_gaugeFactory); } /** @notice change GaugeFactoryCL contract address * @param _gaugeFactoryCL new contract address * @dev owner only */ function setGaugeFactoryCL(address _gaugeFactoryCL) external onlyOwner { _setGaugeFactoryCL(_gaugeFactoryCL); } function setSplitter(address _splitter) external onlyOwner { _setSplitter(_splitter); } // view methods /** @notice get list of gauges (v2/CL) * @return gauges list for v2 pools * @return gaugesCL list for CL pools * @return totalGauges summury length of pools array */ function getGauges() public view returns ( address[] memory gauges, address[] memory gaugesCL, uint256 totalGauges ) { gauges = IGaugeFactory(gaugeFactory).gauges(); gaugesCL = IGaugeFactory(gaugeFactoryCL).gauges(); totalGauges = gauges.length + gaugesCL.length; } /** @notice true - claimFees called at this epoch, else - false */ function claimed() external view returns (bool) { return epochClaimed[IVoter(voter)._epochTimestamp()]; } /** @notice true - claimStakingFees called at this epoch, else - false */ function claimedStaking() external view returns (bool) { return epochClaimedStaking[IVoter(voter)._epochTimestamp()]; } // public /// @notice call claimFees at all gauges function claimFees() external { (address[] memory gauges, address[] memory gaugesCL, ) = getGauges(); uint256 len1 = gauges.length; uint256 len2 = gaugesCL.length; uint256 mainLen = len1 > len2 ? len1 : len2; for (uint256 i; i < mainLen; i++) { if (i < len1) _claimFees(gauges[i]); if (i < len2) _claimFees(gaugesCL[i]); } epochClaimed[IVoter(voter)._epochTimestamp()] = true; } /// @notice call claimFees at current gauges (from start to end index of array) function claimFees(uint256 start, uint256 end) external { require(start < end, "wrong order"); ( address[] memory gauges, address[] memory gaugesCL, uint totalGauges ) = getGauges(); end = end > totalGauges ? totalGauges : end; uint256 len = gauges.length; for (uint256 i = start; i < end; i++) { if (i < len) _claimFees(gauges[i]); else _claimFees(gaugesCL[i - len]); } } /// @notice call claimStakingFees at all v2 pairs function claimStakingFees() external { (address[] memory gauges, , ) = getGauges(); uint256 len1 = gauges.length; for (uint256 i; i < len1; i++) { _claimStakingFees(gauges[i]); } epochClaimedStaking[IVoter(voter)._epochTimestamp()] = true; } /// @notice call claimStakingFees at current v2 pairs (from start to end index of array) function claimStakingFees(uint256 start, uint256 end) external { require(start < end, "wrong order"); (address[] memory gauges, , ) = getGauges(); uint256 len1 = gauges.length; end = end > len1 ? len1 : end; for (uint256 i = start; i < len1; i++) { _claimStakingFees(gauges[i]); } } /// @notice call splitter if possible, else - call fee converter function split() external { uint256 splitterBalance = ISplitter(splitter).balanceOf() + address(splitter).balance; if (splitterBalance > 1000) { ISplitter(splitter).split(); } else { ISWPxNFTFeeConverter(feeConverter).claimFees(); ISWPxNFTFeeConverter(feeConverter).swap(); } } /// @notice call batch-swaps on the fee converter contract function swap(uint256 from, uint256 to) external { ISWPxNFTFeeConverter(feeConverter).swap(from, to); } // internal methods function _setVoter(address _voter) internal { require(_voter != address(0)); voter = _voter; } function _setGaugeFactory(address _gaugeFactory) internal { require(_gaugeFactory != address(0)); gaugeFactory = _gaugeFactory; } function _setGaugeFactoryCL(address _gaugeFactoryCL) internal { require(_gaugeFactoryCL != address(0)); gaugeFactoryCL = _gaugeFactoryCL; } function _setSplitter(address _splitter) internal { require(_splitter != address(0)); feeConverter = ISplitter(_splitter).stakingConverter(); require(feeConverter != address(0)); splitter = _splitter; } function _claimFees(address gauge) internal { if (IVoter(voter).isAlive(gauge) && IVoter(voter).isGauge(gauge)) IGauge(gauge).claimFees(); } function _claimStakingFees(address gauge) internal { if (IVoter(voter).isAlive(gauge) && IVoter(voter).isGauge(gauge)) IPair(IGauge(gauge).TOKEN()).claimStakingFees(); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_voter","type":"address"},{"internalType":"address","name":"_gaugeFactory","type":"address"},{"internalType":"address","name":"_gaugeFactoryCL","type":"address"},{"internalType":"address","name":"_splitter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"claimStakingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimStakingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimedStaking","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"epochClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"epochClaimedStaking","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeConverter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gaugeFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gaugeFactoryCL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGauges","outputs":[{"internalType":"address[]","name":"gauges","type":"address[]"},{"internalType":"address[]","name":"gaugesCL","type":"address[]"},{"internalType":"uint256","name":"totalGauges","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gaugeFactory","type":"address"}],"name":"setGaugeFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gaugeFactoryCL","type":"address"}],"name":"setGaugeFactoryCL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_splitter","type":"address"}],"name":"setSplitter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"name":"setVoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"split","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"splitter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"voter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200162e3803806200162e833981016040819052620000349162000248565b6200003f3362000075565b6200004a84620000c5565b6200005583620000fb565b620000608262000131565b6200006b8162000167565b50505050620002ca565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620000d957600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166200010f57600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166200014557600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166200017b57600080fd5b806001600160a01b031663ce08baa76040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e09190620002a5565b600580546001600160a01b0319166001600160a01b039290921691821790556200020957600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b03811681146200024357600080fd5b919050565b600080600080608085870312156200025f57600080fd5b6200026a856200022b565b93506200027a602086016200022b565b92506200028a604086016200022b565b91506200029a606086016200022b565b905092959194509250565b600060208284031215620002b857600080fd5b620002c3826200022b565b9392505050565b61135480620002da6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80639e9b88e7116100c3578063e22f3c2a1161007c578063e22f3c2a146102a5578063e834a834146102c8578063f083be3b146102d0578063f2fde38b146102d8578063f675514b146102eb578063f76541761461030e57600080fd5b80639e9b88e71461023e578063a14124c214610251578063c93fc83d14610264578063cdd1c61e14610277578063d294f0931461028a578063d96073cf1461029257600080fd5b80633cd8045e116101155780633cd8045e146101d557806346c96aac146101e85780634bc2a657146101fb5780635574f46d1461020e578063715018a6146102255780638da5cb5b1461022d57600080fd5b8063026b35d8146101525780630d107c4f146101675780630d52333c146101975780630f7f7a20146101aa57806323130d11146101c2575b600080fd5b610165610160366004611055565b610316565b005b60035461017a906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b60025461017a906001600160a01b031681565b6101b26103bf565b604051901515815260200161018e565b6101656101d036600461108c565b610455565b60045461017a906001600160a01b031681565b60015461017a906001600160a01b031681565b61016561020936600461108c565b610469565b61021661047a565b60405161018e939291906110f4565b61016561058e565b6000546001600160a01b031661017a565b61016561024c36600461108c565b6105a2565b60055461017a906001600160a01b031681565b61016561027236600461108c565b6105b3565b610165610285366004611055565b6105c4565b61016561069a565b6101656102a0366004611055565b6107bf565b6101b26102b336600461112a565b60066020526000908152604090205460ff1681565b6101b2610828565b610165610881565b6101656102e636600461108c565b610965565b6101b26102f936600461112a565b60076020526000908152604090205460ff1681565b6101656109db565b8082106103585760405162461bcd60e51b815260206004820152600b60248201526a3bb937b7339037b93232b960a91b60448201526064015b60405180910390fd5b600061036261047a565b505080519091508083116103765782610378565b805b9250835b818110156103b8576103a683828151811061039957610399611143565b6020026020010151610b71565b806103b08161116f565b91505061037c565b5050505050565b600060076000600160009054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043c9190611188565b815260208101919091526040016000205460ff16919050565b61045d610cf9565b61046681610d53565b50565b610471610cf9565b61046681610d88565b6060806000600260009054906101000a90046001600160a01b03166001600160a01b031663821bdcf16040518163ffffffff1660e01b8152600401600060405180830381865afa1580156104d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104fa91908101906111c7565b9250600360009054906101000a90046001600160a01b03166001600160a01b031663821bdcf16040518163ffffffff1660e01b8152600401600060405180830381865afa15801561054f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261057791908101906111c7565b915081518351610587919061128c565b9050909192565b610596610cf9565b6105a06000610dbd565b565b6105aa610cf9565b61046681610e0d565b6105bb610cf9565b61046681610e42565b8082106106015760405162461bcd60e51b815260206004820152600b60248201526a3bb937b7339037b93232b960a91b604482015260640161034f565b600080600061060e61047a565b9250925092508084116106215783610623565b805b8351909450855b8581101561069157818110156106615761065c85828151811061064f5761064f611143565b6020026020010151610f01565b61067f565b61067f8461066f84846112a4565b8151811061064f5761064f611143565b806106898161116f565b91505061062a565b50505050505050565b6000806106a561047a565b50815181519294509092509060008183116106c057816106c2565b825b905060005b8181101561071b57838110156106ec576106ec86828151811061064f5761064f611143565b828110156107095761070985828151811061064f5761064f611143565b806107138161116f565b9150506106c7565b50600160066000600160009054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107999190611188565b81526020810191909152604001600020805460ff19169115159190911790555050505050565b60055460405163d96073cf60e01b815260048101849052602481018390526001600160a01b039091169063d96073cf90604401600060405180830381600087803b15801561080c57600080fd5b505af1158015610820573d6000803e3d6000fd5b505050505050565b600060066000600160009054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610418573d6000803e3d6000fd5b600061088b61047a565b5050805190915060005b818110156108c4576108b283828151811061039957610399611143565b806108bc8161116f565b915050610895565b50600160076000600160009054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109429190611188565b81526020810191909152604001600020805460ff19169115159190911790555050565b61096d610cf9565b6001600160a01b0381166109d25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161034f565b61046681610dbd565b600480546040805163722713f760e01b815290516000936001600160a01b03909316803193909263722713f792818301926020928290030181865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611188565b610a56919061128c565b90506103e8811115610ab9576004805460408051637bb2a0bb60e11b815290516001600160a01b039092169263f765417692828201926000929082900301818387803b158015610aa557600080fd5b505af11580156103b8573d6000803e3d6000fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663d294f0936040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b50505050600560009054906101000a90046001600160a01b03166001600160a01b0316638119c0656040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aa557600080fd5b600154604051631703e5f960e01b81526001600160a01b03838116600483015290911690631703e5f9906024016020604051808303816000875af1158015610bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be191906112bb565b8015610c58575060015460405163aa79979b60e01b81526001600160a01b0383811660048301529091169063aa79979b906024016020604051808303816000875af1158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5891906112bb565b1561046657806001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf91906112dd565b6001600160a01b031663f083be3b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aa557600080fd5b6000546001600160a01b031633146105a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161034f565b6001600160a01b038116610d6657600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116610d9b57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610e2057600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116610e5557600080fd5b806001600160a01b031663ce08baa76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb791906112dd565b600580546001600160a01b0319166001600160a01b03929092169182179055610edf57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600154604051631703e5f960e01b81526001600160a01b03838116600483015290911690631703e5f9906024016020604051808303816000875af1158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7191906112bb565b8015610fe8575060015460405163aa79979b60e01b81526001600160a01b0383811660048301529091169063aa79979b906024016020604051808303816000875af1158015610fc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe891906112bb565b1561046657806001600160a01b031663d294f0936040518163ffffffff1660e01b815260040160408051808303816000875af115801561102c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105091906112fa565b505050565b6000806040838503121561106857600080fd5b50508035926020909101359150565b6001600160a01b038116811461046657600080fd5b60006020828403121561109e57600080fd5b81356110a981611077565b9392505050565b600081518084526020808501945080840160005b838110156110e95781516001600160a01b0316875295820195908201906001016110c4565b509495945050505050565b60608152600061110760608301866110b0565b828103602084015261111981866110b0565b915050826040830152949350505050565b60006020828403121561113c57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161118157611181611159565b5060010190565b60006020828403121561119a57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b80516111c281611077565b919050565b600060208083850312156111da57600080fd5b825167ffffffffffffffff808211156111f257600080fd5b818501915085601f83011261120657600080fd5b815181811115611218576112186111a1565b8060051b604051601f19603f8301168101818110858211171561123d5761123d6111a1565b60405291825284820192508381018501918883111561125b57600080fd5b938501935b8285101561128057611271856111b7565b84529385019392850192611260565b98975050505050505050565b6000821982111561129f5761129f611159565b500190565b6000828210156112b6576112b6611159565b500390565b6000602082840312156112cd57600080fd5b815180151581146110a957600080fd5b6000602082840312156112ef57600080fd5b81516110a981611077565b6000806040838503121561130d57600080fd5b50508051602090910151909290915056fea2646970667358221220924a017cb7632500135766a6771557818ec1073e0a513947dafede545450f7e864736f6c634300080d003300000000000000000000000040247ba1012404134958da41b6bd93be1cd5bf3f000000000000000000000000a1462dbfb0198ef054454a2e9b5757392cef819c00000000000000000000000027e774110e4dd1f3a249bfce40d1f6bda4cae30000000000000000000000000055e3427906795d833ac6810486e977dca72e1532
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80639e9b88e7116100c3578063e22f3c2a1161007c578063e22f3c2a146102a5578063e834a834146102c8578063f083be3b146102d0578063f2fde38b146102d8578063f675514b146102eb578063f76541761461030e57600080fd5b80639e9b88e71461023e578063a14124c214610251578063c93fc83d14610264578063cdd1c61e14610277578063d294f0931461028a578063d96073cf1461029257600080fd5b80633cd8045e116101155780633cd8045e146101d557806346c96aac146101e85780634bc2a657146101fb5780635574f46d1461020e578063715018a6146102255780638da5cb5b1461022d57600080fd5b8063026b35d8146101525780630d107c4f146101675780630d52333c146101975780630f7f7a20146101aa57806323130d11146101c2575b600080fd5b610165610160366004611055565b610316565b005b60035461017a906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b60025461017a906001600160a01b031681565b6101b26103bf565b604051901515815260200161018e565b6101656101d036600461108c565b610455565b60045461017a906001600160a01b031681565b60015461017a906001600160a01b031681565b61016561020936600461108c565b610469565b61021661047a565b60405161018e939291906110f4565b61016561058e565b6000546001600160a01b031661017a565b61016561024c36600461108c565b6105a2565b60055461017a906001600160a01b031681565b61016561027236600461108c565b6105b3565b610165610285366004611055565b6105c4565b61016561069a565b6101656102a0366004611055565b6107bf565b6101b26102b336600461112a565b60066020526000908152604090205460ff1681565b6101b2610828565b610165610881565b6101656102e636600461108c565b610965565b6101b26102f936600461112a565b60076020526000908152604090205460ff1681565b6101656109db565b8082106103585760405162461bcd60e51b815260206004820152600b60248201526a3bb937b7339037b93232b960a91b60448201526064015b60405180910390fd5b600061036261047a565b505080519091508083116103765782610378565b805b9250835b818110156103b8576103a683828151811061039957610399611143565b6020026020010151610b71565b806103b08161116f565b91505061037c565b5050505050565b600060076000600160009054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043c9190611188565b815260208101919091526040016000205460ff16919050565b61045d610cf9565b61046681610d53565b50565b610471610cf9565b61046681610d88565b6060806000600260009054906101000a90046001600160a01b03166001600160a01b031663821bdcf16040518163ffffffff1660e01b8152600401600060405180830381865afa1580156104d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104fa91908101906111c7565b9250600360009054906101000a90046001600160a01b03166001600160a01b031663821bdcf16040518163ffffffff1660e01b8152600401600060405180830381865afa15801561054f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261057791908101906111c7565b915081518351610587919061128c565b9050909192565b610596610cf9565b6105a06000610dbd565b565b6105aa610cf9565b61046681610e0d565b6105bb610cf9565b61046681610e42565b8082106106015760405162461bcd60e51b815260206004820152600b60248201526a3bb937b7339037b93232b960a91b604482015260640161034f565b600080600061060e61047a565b9250925092508084116106215783610623565b805b8351909450855b8581101561069157818110156106615761065c85828151811061064f5761064f611143565b6020026020010151610f01565b61067f565b61067f8461066f84846112a4565b8151811061064f5761064f611143565b806106898161116f565b91505061062a565b50505050505050565b6000806106a561047a565b50815181519294509092509060008183116106c057816106c2565b825b905060005b8181101561071b57838110156106ec576106ec86828151811061064f5761064f611143565b828110156107095761070985828151811061064f5761064f611143565b806107138161116f565b9150506106c7565b50600160066000600160009054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107999190611188565b81526020810191909152604001600020805460ff19169115159190911790555050505050565b60055460405163d96073cf60e01b815260048101849052602481018390526001600160a01b039091169063d96073cf90604401600060405180830381600087803b15801561080c57600080fd5b505af1158015610820573d6000803e3d6000fd5b505050505050565b600060066000600160009054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610418573d6000803e3d6000fd5b600061088b61047a565b5050805190915060005b818110156108c4576108b283828151811061039957610399611143565b806108bc8161116f565b915050610895565b50600160076000600160009054906101000a90046001600160a01b03166001600160a01b031663f8803bb66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109429190611188565b81526020810191909152604001600020805460ff19169115159190911790555050565b61096d610cf9565b6001600160a01b0381166109d25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161034f565b61046681610dbd565b600480546040805163722713f760e01b815290516000936001600160a01b03909316803193909263722713f792818301926020928290030181865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611188565b610a56919061128c565b90506103e8811115610ab9576004805460408051637bb2a0bb60e11b815290516001600160a01b039092169263f765417692828201926000929082900301818387803b158015610aa557600080fd5b505af11580156103b8573d6000803e3d6000fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663d294f0936040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b50505050600560009054906101000a90046001600160a01b03166001600160a01b0316638119c0656040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aa557600080fd5b600154604051631703e5f960e01b81526001600160a01b03838116600483015290911690631703e5f9906024016020604051808303816000875af1158015610bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be191906112bb565b8015610c58575060015460405163aa79979b60e01b81526001600160a01b0383811660048301529091169063aa79979b906024016020604051808303816000875af1158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5891906112bb565b1561046657806001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbf91906112dd565b6001600160a01b031663f083be3b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610aa557600080fd5b6000546001600160a01b031633146105a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161034f565b6001600160a01b038116610d6657600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116610d9b57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610e2057600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116610e5557600080fd5b806001600160a01b031663ce08baa76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb791906112dd565b600580546001600160a01b0319166001600160a01b03929092169182179055610edf57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600154604051631703e5f960e01b81526001600160a01b03838116600483015290911690631703e5f9906024016020604051808303816000875af1158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7191906112bb565b8015610fe8575060015460405163aa79979b60e01b81526001600160a01b0383811660048301529091169063aa79979b906024016020604051808303816000875af1158015610fc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe891906112bb565b1561046657806001600160a01b031663d294f0936040518163ffffffff1660e01b815260040160408051808303816000875af115801561102c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105091906112fa565b505050565b6000806040838503121561106857600080fd5b50508035926020909101359150565b6001600160a01b038116811461046657600080fd5b60006020828403121561109e57600080fd5b81356110a981611077565b9392505050565b600081518084526020808501945080840160005b838110156110e95781516001600160a01b0316875295820195908201906001016110c4565b509495945050505050565b60608152600061110760608301866110b0565b828103602084015261111981866110b0565b915050826040830152949350505050565b60006020828403121561113c57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161118157611181611159565b5060010190565b60006020828403121561119a57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b80516111c281611077565b919050565b600060208083850312156111da57600080fd5b825167ffffffffffffffff808211156111f257600080fd5b818501915085601f83011261120657600080fd5b815181811115611218576112186111a1565b8060051b604051601f19603f8301168101818110858211171561123d5761123d6111a1565b60405291825284820192508381018501918883111561125b57600080fd5b938501935b8285101561128057611271856111b7565b84529385019392850192611260565b98975050505050505050565b6000821982111561129f5761129f611159565b500190565b6000828210156112b6576112b6611159565b500390565b6000602082840312156112cd57600080fd5b815180151581146110a957600080fd5b6000602082840312156112ef57600080fd5b81516110a981611077565b6000806040838503121561130d57600080fd5b50508051602090910151909290915056fea2646970667358221220924a017cb7632500135766a6771557818ec1073e0a513947dafede545450f7e864736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000040247ba1012404134958da41b6bd93be1cd5bf3f000000000000000000000000a1462dbfb0198ef054454a2e9b5757392cef819c00000000000000000000000027e774110e4dd1f3a249bfce40d1f6bda4cae30000000000000000000000000055e3427906795d833ac6810486e977dca72e1532
-----Decoded View---------------
Arg [0] : _voter (address): 0x40247ba1012404134958dA41b6Bd93Be1cD5BF3f
Arg [1] : _gaugeFactory (address): 0xA1462DbfB0198Ef054454A2E9b5757392ceF819c
Arg [2] : _gaugeFactoryCL (address): 0x27E774110e4dD1f3A249BFCe40D1f6BDa4cAe300
Arg [3] : _splitter (address): 0x55e3427906795d833Ac6810486e977Dca72e1532
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000040247ba1012404134958da41b6bd93be1cd5bf3f
Arg [1] : 000000000000000000000000a1462dbfb0198ef054454a2e9b5757392cef819c
Arg [2] : 00000000000000000000000027e774110e4dd1f3a249bfce40d1f6bda4cae300
Arg [3] : 00000000000000000000000055e3427906795d833ac6810486e977dca72e1532
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.