Address Contract Verified
Address
0xCe12DE1f4A98E6A8E1Ae6170f3CCac8f83352dD5
Balance
0 ETH
Nonce
1
Code Size
4233 bytes
Creator
0x641AD78B...e689 at tx 0xd18d3afe...d89ab0
Indexed Transactions
0
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