Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xCe12DE1f4A98E6A8E1Ae6170f3CCac8f83352dD5
Balance 0 ETH
Nonce 1
Code Size 4233 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

4233 bytes
0x608060405234801561001057600080fd5b50600436106100935760003560e01c806387e56ebe1161006657806387e56ebe146101025780638da5cb5b14610115578063ae756ef514610128578063b29a81401461013b578063bbfedcfb1461014e57600080fd5b80632705625a146100985780633a3bfe88146100ad5780634d547ada146100c05780637ef71fd0146100ef575b600080fd5b6100ab6100a6366004610ba3565b610161565b005b6100ab6100bb366004610ce0565b6102eb565b6001546100d3906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100ab6100fd366004610da2565b610323565b6100ab610110366004610dc6565b61039f565b6000546100d3906001600160a01b031681565b6100ab610136366004610e4b565b610576565b6100ab610149366004610e93565b61069f565b6100ab61015c366004610ebf565b61071b565b6001546001600160a01b031633146101945760405162461bcd60e51b815260040161018b90610f62565b60405180910390fd5b604080516003808252608082019092526000916020820160608036833750506040805160038082526080820190925292935060009291506020820160608036833701905050905087826000815181106101ef576101ef610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050858260018151811061022357610223610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050838260028151811061025757610257610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050868160008151811061028b5761028b610f99565b60200260200101818152505084816001815181106102ab576102ab610f99565b60200260200101818152505082816002815181106102cb576102cb610f99565b6020026020010181815250506102e18282610948565b5050505050505050565b6001546001600160a01b031633146103155760405162461bcd60e51b815260040161018b90610f62565b61031f8282610948565b5050565b6000546001600160a01b0316331461037d5760405162461bcd60e51b815260206004820152601860248201527f53696d706c654d616e616765723a204e4f545f4f574e45520000000000000000604482015260640161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146103c95760405162461bcd60e51b815260040161018b90610f62565b60408051600480825260a0820190925260009160208201608080368337505060408051600480825260a08201909252929350600092915060208201608080368337019050509050898260008151811061042457610424610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050878260018151811061045857610458610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050858260028151811061048c5761048c610f99565b60200260200101906001600160a01b031690816001600160a01b03168152505083826003815181106104c0576104c0610f99565b60200260200101906001600160a01b031690816001600160a01b03168152505088816000815181106104f4576104f4610f99565b602002602001018181525050868160018151811061051457610514610f99565b602002602001018181525050848160028151811061053457610534610f99565b602002602001018181525050828160038151811061055457610554610f99565b60200260200101818152505061056a8282610948565b50505050505050505050565b6001546001600160a01b031633146105a05760405162461bcd60e51b815260040161018b90610f62565b60408051600280825260608201835260009260208301908036833750506040805160028082526060820183529394506000939092509060208301908036833701905050905085826000815181106105f9576105f9610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050838260018151811061062d5761062d610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050848160008151811061066157610661610f99565b602002602001018181525050828160018151811061068157610681610f99565b6020026020010181815250506106978282610948565b505050505050565b60005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af11580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107169190610faf565b505050565b6001546001600160a01b031633146107455760405162461bcd60e51b815260040161018b90610f62565b60408051600580825260c082019092526000916020820160a080368337505060408051600580825260c0820190925292935060009291506020820160a0803683370190505090508b826000815181106107a0576107a0610f99565b60200260200101906001600160a01b031690816001600160a01b03168152505089826001815181106107d4576107d4610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050878260028151811061080857610808610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050858260038151811061083c5761083c610f99565b60200260200101906001600160a01b031690816001600160a01b031681525050838260048151811061087057610870610f99565b60200260200101906001600160a01b031690816001600160a01b0316815250508a816000815181106108a4576108a4610f99565b60200260200101818152505088816001815181106108c4576108c4610f99565b60200260200101818152505086816002815181106108e4576108e4610f99565b602002602001018181525050848160038151811061090457610904610f99565b602002602001018181525050828160048151811061092457610924610f99565b60200260200101818152505061093a8282610948565b505050505050505050505050565b60005b825181101561071657600083828151811061096857610968610f99565b602002602001015190506000816001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d69190610fd1565b90506000826001600160a01b031663f520e7e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3c9190610fee565b9050816001600160a01b031663095ea7b3878681518110610a5f57610a5f610f99565b602002602001015183888881518110610a7a57610a7a610f99565b6020026020010151610a8c919061101d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afb9190610faf565b50826001600160a01b0316639e447fc6868681518110610b1d57610b1d610f99565b60200260200101516040518263ffffffff1660e01b8152600401610b4391815260200190565b600060405180830381600087803b158015610b5d57600080fd5b505af1158015610b71573d6000803e3d6000fd5b505050505050508080610b839061103a565b91505061094b565b6001600160a01b0381168114610ba057600080fd5b50565b60008060008060008060c08789031215610bbc57600080fd5b8635610bc781610b8b565b9550602087013594506040870135610bde81610b8b565b9350606087013592506080870135610bf581610b8b565b8092505060a087013590509295509295509295565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610c4957610c49610c0a565b604052919050565b600067ffffffffffffffff821115610c6b57610c6b610c0a565b5060051b60200190565b600082601f830112610c8657600080fd5b81356020610c9b610c9683610c51565b610c20565b82815260059290921b84018101918181019086841115610cba57600080fd5b8286015b84811015610cd55780358352918301918301610cbe565b509695505050505050565b60008060408385031215610cf357600080fd5b823567ffffffffffffffff80821115610d0b57600080fd5b818501915085601f830112610d1f57600080fd5b81356020610d2f610c9683610c51565b82815260059290921b84018101918181019089841115610d4e57600080fd5b948201945b83861015610d75578535610d6681610b8b565b82529482019490820190610d53565b96505086013592505080821115610d8b57600080fd5b50610d9885828601610c75565b9150509250929050565b600060208284031215610db457600080fd5b8135610dbf81610b8b565b9392505050565b600080600080600080600080610100898b031215610de357600080fd5b8835610dee81610b8b565b9750602089013596506040890135610e0581610b8b565b9550606089013594506080890135610e1c81610b8b565b935060a0890135925060c0890135610e3381610b8b565b8092505060e089013590509295985092959890939650565b60008060008060808587031215610e6157600080fd5b8435610e6c81610b8b565b9350602085013592506040850135610e8381610b8b565b9396929550929360600135925050565b60008060408385031215610ea657600080fd5b8235610eb181610b8b565b946020939093013593505050565b6000806000806000806000806000806101408b8d031215610edf57600080fd5b8a35610eea81610b8b565b995060208b0135985060408b0135610f0181610b8b565b975060608b0135965060808b0135610f1881610b8b565b955060a08b0135945060c08b0135610f2f81610b8b565b935060e08b013592506101008b0135610f4781610b8b565b809250506101208b013590509295989b9194979a5092959850565b60208082526019908201527f53696d706c654d616e616765723a204e4f545f574f524b455200000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610fc157600080fd5b81518015158114610dbf57600080fd5b600060208284031215610fe357600080fd5b8151610dbf81610b8b565b60006020828403121561100057600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761103457611034611007565b92915050565b60006001820161104c5761104c611007565b506001019056fea2646970667358221220503f2f3856e26c2ea5168bab6c84af2abb5a33864e7a3555cd12efe4bbec3c2164736f6c63430008130033

Verified Source Code Full Match

Compiler: v0.8.19+commit.7dd6d404 EVM: paris Optimization: Yes (200 runs)
SimpleManager.sol 245 lines
// SPDX-License-Identifier: -- BCOM --

pragma solidity =0.8.19;

interface ISimpleFarm {

    function setRewardRate(
        uint256 newRate
    )
        external;

    function rewardToken()
        external
        view
        returns (IERC20);

    function rewardDuration()
        external
        view
        returns (uint256);
}

interface IERC20 {

    function transfer(
        address to,
        uint256 amount
    )
        external
        returns (bool);

    function approve(
        address spender,
        uint256 amount
    )
        external
        returns (bool);
}

contract SimpleManager {

    address public owner;
    address public worker;

    modifier onlyOwner() {
        require(
            msg.sender == owner,
            "SimpleManager: NOT_OWNER"
        );
        _;
    }

    modifier onlyWorker() {
        require(
            msg.sender == worker,
            "SimpleManager: NOT_WORKER"
        );
        _;
    }

    constructor() {
        owner = msg.sender;
        worker = msg.sender;
    }

    function changeWorker(
        address _newWorker
    )
        external
        onlyOwner
    {
        worker = _newWorker;
    }

    function updateRatesF2(
        address _targetFarm1,
        uint256 _newRate1,
        address _targetFarm2,
        uint256 _newRate2
    )
        external
        onlyWorker
    {
        address[] memory farms = new address[](2);
        uint256[] memory rates = new uint256[](2);

        farms[0] = _targetFarm1;
        farms[1] = _targetFarm2;

        rates[0] = _newRate1;
        rates[1] = _newRate2;

        _manageRates(
            farms,
            rates
        );
    }

    function updateRatesF3(
        address _targetFarm1,
        uint256 _newRate1,
        address _targetFarm2,
        uint256 _newRate2,
        address _targetFarm3,
        uint256 _newRate3
    )
        external
        onlyWorker
    {
        address[] memory farms = new address[](3);
        uint256[] memory rates = new uint256[](3);

        farms[0] = _targetFarm1;
        farms[1] = _targetFarm2;
        farms[2] = _targetFarm3;

        rates[0] = _newRate1;
        rates[1] = _newRate2;
        rates[2] = _newRate3;

        _manageRates(
            farms,
            rates
        );
    }

    function updateRatesF4(
        address _targetFarm1,
        uint256 _newRate1,
        address _targetFarm2,
        uint256 _newRate2,
        address _targetFarm3,
        uint256 _newRate3,
        address _targetFarm4,
        uint256 _newRate4
    )
        external
        onlyWorker
    {
        address[] memory farms = new address[](4);
        uint256[] memory rates = new uint256[](4);

        farms[0] = _targetFarm1;
        farms[1] = _targetFarm2;
        farms[2] = _targetFarm3;
        farms[3] = _targetFarm4;

        rates[0] = _newRate1;
        rates[1] = _newRate2;
        rates[2] = _newRate3;
        rates[3] = _newRate4;

        _manageRates(
            farms,
            rates
        );
    }

    function updateRatesF5(
        address _targetFarm1,
        uint256 _newRate1,
        address _targetFarm2,
        uint256 _newRate2,
        address _targetFarm3,
        uint256 _newRate3,
        address _targetFarm4,
        uint256 _newRate4,
        address _targetFarm5,
        uint256 _newRate5
    )
        external
        onlyWorker
    {
        address[] memory farms = new address[](5);
        uint256[] memory rates = new uint256[](5);

        farms[0] = _targetFarm1;
        farms[1] = _targetFarm2;
        farms[2] = _targetFarm3;
        farms[3] = _targetFarm4;
        farms[4] = _targetFarm5;

        rates[0] = _newRate1;
        rates[1] = _newRate2;
        rates[2] = _newRate3;
        rates[3] = _newRate4;
        rates[4] = _newRate5;

        _manageRates(
            farms,
            rates
        );
    }

    function manageRates(
        address[] memory _targetFarms,
        uint256[] memory _newRates
    )
        external
        onlyWorker
    {
        _manageRates(
            _targetFarms,
            _newRates
        );
    }

    function _manageRates(
        address[] memory _targetFarms,
        uint256[] memory _newRates
    )
        internal
    {
        for (uint256 i = 0; i < _targetFarms.length; i++) {

            ISimpleFarm farm = ISimpleFarm(
                _targetFarms[i]
            );

            IERC20 rewardToken = farm.rewardToken();
            uint256 rewardDuration = farm.rewardDuration();

            rewardToken.approve(
                _targetFarms[i],
                _newRates[i] * rewardDuration
            );

            farm.setRewardRate(
                _newRates[i]
            );
        }
    }

    function recoverToken(
        IERC20 tokenAddress,
        uint256 tokenAmount
    )
        external
    {
        tokenAddress.transfer(
            owner,
            tokenAmount
        );
    }
}

Read Contract

owner 0x8da5cb5b → address
worker 0x4d547ada → address

Write Contract 7 functions

These functions modify contract state and require a wallet transaction to execute.

changeWorker 0x7ef71fd0
address _newWorker
manageRates 0x3a3bfe88
address[] _targetFarms
uint256[] _newRates
recoverToken 0xb29a8140
address tokenAddress
uint256 tokenAmount
updateRatesF2 0xae756ef5
address _targetFarm1
uint256 _newRate1
address _targetFarm2
uint256 _newRate2
updateRatesF3 0x2705625a
address _targetFarm1
uint256 _newRate1
address _targetFarm2
uint256 _newRate2
address _targetFarm3
uint256 _newRate3
updateRatesF4 0x87e56ebe
address _targetFarm1
uint256 _newRate1
address _targetFarm2
uint256 _newRate2
address _targetFarm3
uint256 _newRate3
address _targetFarm4
uint256 _newRate4
updateRatesF5 0xbbfedcfb
address _targetFarm1
uint256 _newRate1
address _targetFarm2
uint256 _newRate2
address _targetFarm3
uint256 _newRate3
address _targetFarm4
uint256 _newRate4
address _targetFarm5
uint256 _newRate5

Recent Transactions

No transactions found for this address