Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x34c418f7a956097ec70c06ea75538e0d58a4ca84cda309cc52fa362fe678734a | Claim | (pending) | 11 days ago | IN | 0 ETH | (Pending) | |||
Stake | 21587744 | 45 mins ago | IN | 0 ETH | 0.00266772 | ||||
Stake | 21583821 | 13 hrs ago | IN | 0 ETH | 0.00097374 | ||||
Stake | 21577812 | 34 hrs ago | IN | 0 ETH | 0.00231398 | ||||
Claim | 21577801 | 34 hrs ago | IN | 0 ETH | 0.00119222 | ||||
Unstake | 21574217 | 46 hrs ago | IN | 0 ETH | 0.03146892 | ||||
Stake | 21573197 | 2 days ago | IN | 0 ETH | 0.00205172 | ||||
Stake | 21573161 | 2 days ago | IN | 0 ETH | 0.0015109 | ||||
Claim | 21573152 | 2 days ago | IN | 0 ETH | 0.00240905 | ||||
Claim | 21571669 | 2 days ago | IN | 0 ETH | 0.00213877 | ||||
Claim | 21570278 | 2 days ago | IN | 0 ETH | 0.00129452 | ||||
Stake | 21569335 | 2 days ago | IN | 0 ETH | 0.00122049 | ||||
Claim | 21569278 | 2 days ago | IN | 0 ETH | 0.00750695 | ||||
Stake | 21560962 | 3 days ago | IN | 0 ETH | 0.0011309 | ||||
Stake | 21559486 | 3 days ago | IN | 0 ETH | 0.00145325 | ||||
Unstake | 21558194 | 4 days ago | IN | 0 ETH | 0.004299 | ||||
Stake | 21556211 | 4 days ago | IN | 0 ETH | 0.00108865 | ||||
Claim | 21556206 | 4 days ago | IN | 0 ETH | 0.00139597 | ||||
Claim | 21556200 | 4 days ago | IN | 0 ETH | 0.00161664 | ||||
Stake | 21555341 | 4 days ago | IN | 0 ETH | 0.00089606 | ||||
Stake | 21555182 | 4 days ago | IN | 0 ETH | 0.00104988 | ||||
Claim | 21553111 | 4 days ago | IN | 0 ETH | 0.00146466 | ||||
Stake | 21552834 | 4 days ago | IN | 0 ETH | 0.00379441 | ||||
Claim | 21549162 | 5 days ago | IN | 0 ETH | 0.00112423 | ||||
Claim | 21540912 | 6 days ago | IN | 0 ETH | 0.00213064 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ArchitexMegaPool
Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled:
Yes with 800 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./IERC20.sol"; import "./Ownable.sol"; import "./ReentrancyGuard.sol"; contract ArchitexMegaPool is Ownable, ReentrancyGuard { struct RewardsAdjustment { uint256 timestamp; uint256 totalStaked; address[] rewards; uint256[] rates; } struct UserInfo { uint256 balanceStaked; uint256 unlockTime; uint256 lastClaimTimestamp; uint256 lastClaimAdjustmentIndex; } IERC20 public stakedERC20; address public stakedAddr; uint256 public totalStaked; address[] public rewards; uint256[] public rates; mapping(address => UserInfo) public usersInfo; RewardsAdjustment[] public adjustments; uint256 public adjustmentsLength; uint256 public adjustmentDuration = 3; uint256 public lockDuration = 14; bool public allowUnstaking; bool public pauseStake; bool public pauseClaim; bool public pauseUnstake; event Staked(address indexed user, uint256 amount); event Unstaked(address indexed user, uint256 amount); event RewardPaid(address indexed user, address[] rewards, uint256[] amounts); constructor(address _stakedAddr, address[] memory _rewards, uint256[] memory _rates) Ownable(msg.sender) { require(_rewards.length == _rates.length, "Rewards and Rates aren't the same length"); stakedAddr = _stakedAddr; stakedERC20 = IERC20(stakedAddr); for (uint256 i = 0; i < _rewards.length; i++) { rewards.push(_rewards[i]); rates.push(_rates[i]); } adjustments.push(RewardsAdjustment( block.timestamp, totalStaked, rewards, rates )); adjustmentsLength += 1; } function pause(bool _stakeValue, bool _claimValue, bool _unstakeValue) external onlyOwner { pauseStake = _stakeValue; pauseClaim = _claimValue; pauseUnstake = _unstakeValue; } function getRewards() external view returns (address[] memory) { return rewards; } function getRates() external view returns (uint256[] memory) { return rates; } function setAllowUnstaking(bool _value) external onlyOwner { allowUnstaking = _value; } function setAdjustementDuration(uint256 _duration) external onlyOwner { adjustmentDuration = _duration; } function editAdjustementRate(uint256 _indexAdjustement, address _reward, uint256 _newRate) external onlyOwner { uint256 _indexReward = indexOf(adjustments[_indexAdjustement].rewards, _reward); adjustments[_indexAdjustement].rates[_indexReward] = _newRate; } function setLockDuration(uint256 _duration) external onlyOwner { lockDuration = _duration; } function emergencyWithdraw(bool _staked, bool _allReward, address _oneReward) external onlyOwner { if (_staked) stakedERC20.transfer(msg.sender, totalStaked); if (_allReward) { for (uint256 i = 0; i < rewards.length; i++) { if (rewards[i] == stakedAddr) IERC20(rewards[i]).transfer(msg.sender, IERC20(rewards[i]).balanceOf(address(this)) - totalStaked); else IERC20(rewards[i]).transfer(msg.sender, IERC20(rewards[i]).balanceOf(address(this))); } } else if (_oneReward != address(0)) { if (_oneReward == stakedAddr) IERC20(_oneReward).transfer(msg.sender, IERC20(_oneReward).balanceOf(address(this)) - totalStaked); else IERC20(_oneReward).transfer(msg.sender, IERC20(_oneReward).balanceOf(address(this))); } } function adjustRewards(address _reward, uint256 _newRate) external onlyOwner { uint256 index = indexOf(rewards, _reward); if (index == 99999) { rewards.push(_reward); rates.push(_newRate); } else { rates[index] = _newRate; } if (block.timestamp - (adjustmentDuration * 1 days) >= adjustments[adjustmentsLength - 1].timestamp) { adjustments.push(RewardsAdjustment( block.timestamp, totalStaked, rewards, rates )); adjustmentsLength += 1; } else { adjustments[adjustmentsLength - 1].rates = rates; } } function stake(uint256 _amount) external nonReentrant { require(!pauseStake, "Stake paused"); require(stakedERC20.balanceOf(msg.sender) >= _amount, "Insufficient balance"); UserInfo memory userInfo = usersInfo[msg.sender]; if (userInfo.balanceStaked > 0) { _claim(msg.sender); } stakedERC20.transferFrom(msg.sender, address(this), _amount); _manageAdjustment(); userInfo.lastClaimTimestamp = block.timestamp; userInfo.lastClaimAdjustmentIndex = adjustmentsLength > 0 ? adjustmentsLength - 1 : 0; userInfo.balanceStaked += _amount; userInfo.unlockTime = block.timestamp + (lockDuration * 1 days); usersInfo[msg.sender] = userInfo; totalStaked += _amount; adjustments[adjustmentsLength - 1].totalStaked = totalStaked; emit Staked(msg.sender, _amount); } function unstake(uint256 _amount) external nonReentrant { require(!pauseUnstake, "Unstake paused"); UserInfo memory userInfo = usersInfo[msg.sender]; require(userInfo.balanceStaked >= _amount, "Insufficient stake"); require(allowUnstaking || block.timestamp >= userInfo.unlockTime, "Lock has not expired"); _claim(msg.sender); _manageAdjustment(); userInfo.lastClaimTimestamp = block.timestamp; userInfo.lastClaimAdjustmentIndex = adjustmentsLength > 0 ? adjustmentsLength - 1 : 0; userInfo.balanceStaked -= _amount; usersInfo[msg.sender] = userInfo; stakedERC20.transfer(msg.sender, _amount); totalStaked -= _amount; adjustments[adjustmentsLength - 1].totalStaked = totalStaked; emit Unstaked(msg.sender, _amount); } function claim() public nonReentrant { require(!pauseClaim, "Claim paused"); UserInfo memory userInfo = usersInfo[msg.sender]; require(userInfo.balanceStaked > 0, "No stake"); _claim(msg.sender); userInfo.lastClaimTimestamp = block.timestamp; userInfo.lastClaimAdjustmentIndex = adjustmentsLength > 0 ? adjustmentsLength - 1 : 0; usersInfo[msg.sender] = userInfo; } function earned(address _user) public view returns (uint256[] memory) { UserInfo memory userInfo = usersInfo[_user]; uint256[] memory _amountRewards; if (userInfo.balanceStaked == 0) { return _amountRewards; } _amountRewards = new uint256[](rewards.length); RewardsAdjustment memory adjustment; uint256 time = userInfo.lastClaimTimestamp; uint256 elapsed; for (uint256 i = userInfo.lastClaimAdjustmentIndex; i < adjustmentsLength; i++) { adjustment = adjustments[i]; if (i + 1 < adjustmentsLength) { elapsed = adjustments[i + 1].timestamp - time; time = adjustments[i + 1].timestamp; } else { elapsed = block.timestamp - time; } for (uint256 j = 0; j < rewards.length; j++) { if (adjustment.rates.length > j) _amountRewards[j] += userInfo.balanceStaked * adjustment.rates[j] * elapsed / adjustment.totalStaked; else _amountRewards[j] += 0; } } return _amountRewards; } function _claim(address _user) internal { if (pauseClaim) return; uint256[] memory _amounts = earned(_user); for (uint256 i = 0; i < rewards.length; i++) { if (_amounts[i] > 0) IERC20(rewards[i]).transfer(_user, _amounts[i]); } emit RewardPaid(_user, rewards, _amounts); } function _manageAdjustment() internal { if (block.timestamp - (adjustmentDuration * 1 days) >= adjustments[adjustmentsLength - 1].timestamp) { adjustments.push(RewardsAdjustment( block.timestamp, totalStaked, rewards, rates )); adjustmentsLength += 1; } } function indexOf(address[] memory _array, address _element) internal pure returns (uint256) { for (uint256 i = 0; i < _array.length; i++) { if (_array[i] == _element) return i; } return 99999; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.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; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.0; import {Context} from "./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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @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 { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _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 (last updated v5.0.0) (utils/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant NOT_ENTERED = 1; uint256 private constant ENTERED = 2; uint256 private _status; /** * @dev Unauthorized reentrant call. */ error ReentrancyGuardReentrantCall(); constructor() { _status = NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be NOT_ENTERED if (_status == ENTERED) { revert ReentrancyGuardReentrantCall(); } // Any calls to nonReentrant after this point will fail _status = ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == ENTERED; } }
{ "optimizer": { "enabled": true, "runs": 800 }, "evmVersion": "cancun", "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_stakedAddr","type":"address"},{"internalType":"address[]","name":"_rewards","type":"address[]"},{"internalType":"uint256[]","name":"_rates","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address[]","name":"rewards","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstaked","type":"event"},{"inputs":[{"internalType":"address","name":"_reward","type":"address"},{"internalType":"uint256","name":"_newRate","type":"uint256"}],"name":"adjustRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adjustmentDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"adjustments","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"adjustmentsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowUnstaking","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_indexAdjustement","type":"uint256"},{"internalType":"address","name":"_reward","type":"address"},{"internalType":"uint256","name":"_newRate","type":"uint256"}],"name":"editAdjustementRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_staked","type":"bool"},{"internalType":"bool","name":"_allReward","type":"bool"},{"internalType":"address","name":"_oneReward","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRates","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewards","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_stakeValue","type":"bool"},{"internalType":"bool","name":"_claimValue","type":"bool"},{"internalType":"bool","name":"_unstakeValue","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pauseClaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseStake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseUnstake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_duration","type":"uint256"}],"name":"setAdjustementDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAllowUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_duration","type":"uint256"}],"name":"setLockDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakedAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakedERC20","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"usersInfo","outputs":[{"internalType":"uint256","name":"balanceStaked","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"uint256","name":"lastClaimTimestamp","type":"uint256"},{"internalType":"uint256","name":"lastClaimAdjustmentIndex","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526003600a55600e600b55348015610019575f80fd5b506040516127a83803806127a8833981016040819052610038916104cc565b338061005e57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610067816102e0565b506001805580518251146100ce5760405162461bcd60e51b815260206004820152602860248201527f5265776172647320616e64205261746573206172656e2774207468652073616d6044820152670ca40d8cadccee8d60c31b6064820152608401610055565b600380546001600160a01b0385166001600160a01b031991821681179092556002805490911690911790555f5b825181101561019357600583828151811061011857610118610599565b60209081029190910181015182546001810184555f938452919092200180546001600160a01b0319166001600160a01b03909216919091179055815160069083908390811061016957610169610599565b6020908102919091018101518254600181810185555f9485529290932090920191909155016100fb565b50600860405180608001604052804281526020016004548152602001600580548060200260200160405190810160405280929190818152602001828054801561020357602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116101e5575b50505050508152602001600680548060200260200160405190810160405280929190818152602001828054801561025757602002820191905f5260205f20905b815481526020019060010190808311610243575b5050509190925250508154600181810184555f9384526020938490208351600490930201918255838301519082015560408201518051929391926102a1926002850192019061032f565b50606082015180516102bd916003840191602090910190610392565b505050600160095f8282546102d291906105ad565b909155506105d29350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f20908101928215610382579160200282015b8281111561038257825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061034d565b5061038e9291506103cb565b5090565b828054828255905f5260205f20908101928215610382579160200282015b828111156103825782518255916020019190600101906103b0565b5b8082111561038e575f81556001016103cc565b80516001600160a01b03811681146103f5575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610436576104366103fa565b604052919050565b5f6001600160401b03821115610456576104566103fa565b5060051b60200190565b5f82601f83011261046f575f80fd5b8151602061048461047f8361043e565b61040e565b8083825260208201915060208460051b8701019350868411156104a5575f80fd5b602086015b848110156104c157805183529183019183016104aa565b509695505050505050565b5f805f606084860312156104de575f80fd5b6104e7846103df565b602085810151919450906001600160401b0380821115610505575f80fd5b818701915087601f830112610518575f80fd5b815161052661047f8261043e565b81815260059190911b8301840190848101908a831115610544575f80fd5b938501935b828510156105695761055a856103df565b82529385019390850190610549565b60408a01519097509450505080831115610581575f80fd5b505061058f86828701610460565b9150509250925092565b634e487b7160e01b5f52603260045260245ffd5b808201808211156105cc57634e487b7160e01b5f52601160045260245ffd5b92915050565b6121c9806105df5f395ff3fe608060405234801561000f575f80fd5b50600436106101d0575f3560e01c8063880de0d2116100fe578063a694fc3a1161009e578063d3f108081161006e578063d3f1080814610412578063dd418ae214610425578063f2fde38b14610438578063f301af421461044b575f80fd5b8063a694fc3a146103b1578063a96609db146103c4578063b3b15206146103d7578063bc3b2b12146103ea575f80fd5b806392a1b557116100d957806392a1b5571461037a57806397faf1f41461038d5780639a7f8c61146103965780639accab55146103a9575f80fd5b8063880de0d2146103365780638da5cb5b146103435780638ff095f914610367575f80fd5b80634e71d92d116101745780637562cac6116101445780637562cac6146102fd5780637571836614610310578063817b1cd214610324578063849f030f1461032d575f80fd5b80634e71d92d146102865780634eb665af1461028e5780635d0eaaaf146102a1578063715018a6146102f5575f80fd5b80630ee8d4d5116101af5780630ee8d4d5146102295780632a0305ea1461023e5780632e17de78146102515780634281096714610264575f80fd5b80628cc262146101d457806304554443146101fd5780630572b0cc14610214575b5f80fd5b6101e76101e2366004611e86565b61045e565b6040516101f49190611ee0565b60405180910390f35b610206600b5481565b6040519081526020016101f4565b61021c61079b565b6040516101f49190611ef2565b61023c610237366004611f4b565b6107fb565b005b61023c61024c366004611f66565b610816565b61023c61025f366004611f98565b6108e8565b600c5461027690610100900460ff1681565b60405190151581526020016101f4565b61023c610bd3565b61023c61029c366004611f98565b610d2b565b6102d56102af366004611e86565b60076020525f908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016101f4565b61023c610d38565b61023c61030b366004611faf565b610d49565b600c54610276906301000000900460ff1681565b61020660045481565b610206600a5481565b600c546102769060ff1681565b5f546001600160a01b03165b6040516001600160a01b0390911681526020016101f4565b600c546102769062010000900460ff1681565b61023c610388366004611ff7565b610d95565b61020660095481565b61023c6103a436600461203b565b611264565b6101e761155b565b61023c6103bf366004611f98565b6115b0565b60025461034f906001600160a01b031681565b61023c6103e5366004611f98565b6118ae565b6103fd6103f8366004611f98565b6118bb565b604080519283526020830191909152016101f4565b60035461034f906001600160a01b031681565b610206610433366004611f98565b6118e7565b61023c610446366004611e86565b611906565b61034f610459366004611f98565b611940565b6001600160a01b0381165f90815260076020908152604080832081516080810183528154808252600183015494820194909452600282015492810192909252600301546060828101919091529290918391036104bb579392505050565b60055467ffffffffffffffff8111156104d6576104d6612063565b6040519080825280602002602001820160405280156104ff578160200160208202803683370190505b50905061052b60405180608001604052805f81526020015f815260200160608152602001606081525090565b604083015160608401515f905b60095481101561078f576008818154811061055557610555612077565b905f5260205f2090600402016040518060800160405290815f820154815260200160018201548152602001600282018054806020026020016040519081016040528092919081815260200182805480156105d657602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116105b8575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561062c57602002820191905f5260205f20905b815481526020019060010190808311610618575b5050505050815250509350600954816001610647919061209f565b10156106b95782600861065b83600161209f565b8154811061066b5761066b612077565b905f5260205f2090600402015f015461068491906120b2565b9150600861069382600161209f565b815481106106a3576106a3612077565b905f5260205f2090600402015f015492506106c6565b6106c383426120b2565b91505b5f5b6005548110156107865780856060015151111561075357846020015183866060015183815181106106fb576106fb612077565b6020026020010151895f015161071191906120c5565b61071b91906120c5565b61072591906120dc565b86828151811061073757610737612077565b6020026020010181815161074b919061209f565b90525061077e565b5f86828151811061076657610766612077565b6020026020010181815161077a919061209f565b9052505b6001016106c8565b50600101610538565b50929695505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156107f157602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116107d3575b5050505050905090565b610803611968565b600c805460ff1916911515919091179055565b61081e611968565b5f6108a16008858154811061083557610835612077565b905f5260205f20906004020160020180548060200260200160405190810160405280929190818152602001828054801561089657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610878575b505050505084611994565b905081600885815481106108b7576108b7612077565b905f5260205f20906004020160030182815481106108d7576108d7612077565b5f9182526020909120015550505050565b6108f06119ef565b600c546301000000900460ff161561094f5760405162461bcd60e51b815260206004820152600e60248201527f556e7374616b652070617573656400000000000000000000000000000000000060448201526064015b60405180910390fd5b335f90815260076020908152604091829020825160808101845281548082526001830154938201939093526002820154938101939093526003015460608301528211156109de5760405162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e74207374616b6500000000000000000000000000006044820152606401610946565b600c5460ff16806109f3575080602001514210155b610a3f5760405162461bcd60e51b815260206004820152601460248201527f4c6f636b20686173206e6f7420657870697265640000000000000000000000006044820152606401610946565b610a4833611a19565b610a50611b81565b426040820152600954610a63575f610a72565b6001600954610a7291906120b2565b6060820152805182908290610a889083906120b2565b905250335f818152600760209081526040918290208451815590840151600182015583820151600280830191909155606085015160039092019190915554905163a9059cbb60e01b81526004810192909252602482018490526001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3491906120fb565b508160045f828254610b4691906120b2565b9091555050600454600954600890610b60906001906120b2565b81548110610b7057610b70612077565b905f5260205f20906004020160010181905550336001600160a01b03167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f7583604051610bbe91815260200190565b60405180910390a250610bd060018055565b50565b610bdb6119ef565b600c5462010000900460ff1615610c345760405162461bcd60e51b815260206004820152600c60248201527f436c61696d2070617573656400000000000000000000000000000000000000006044820152606401610946565b335f9081526007602090815260409182902082516080810184528154808252600183015493820193909352600282015493810193909352600301546060830152610cc05760405162461bcd60e51b815260206004820152600860248201527f4e6f207374616b650000000000000000000000000000000000000000000000006044820152606401610946565b610cc933611a19565b426040820152600954610cdc575f610ceb565b6001600954610ceb91906120b2565b60608201908152335f9081526007602090815260409182902084518155908401516001820155920151600283015551600390910155610d2960018055565b565b610d33611968565b600b55565b610d40611968565b610d295f611d16565b610d51611968565b600c805491151563010000000263ff00000019931515620100000262ff000019951515610100029590951662ffff0019909316929092179390931791909116179055565b610d9d611968565b8215610e1b576002546004805460405163a9059cbb60e01b8152339281019290925260248201526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610df5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1991906120fb565b505b81156110de575f5b6005548110156110d857600354600580546001600160a01b039092169183908110610e5057610e50612077565b5f918252602090912001546001600160a01b031603610faa5760058181548110610e7c57610e7c612077565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b031663a9059cbb3360045460058581548110610ebc57610ebc612077565b5f918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612116565b610f3891906120b2565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610f80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa491906120fb565b506110d0565b60058181548110610fbd57610fbd612077565b5f91825260209091200154600580546001600160a01b039092169163a9059cbb91339185908110610ff057610ff0612077565b5f918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561103e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110629190612116565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156110aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ce91906120fb565b505b600101610e23565b50505050565b6001600160a01b0381161561125f576003546001600160a01b03908116908216036111ef57600480546040516370a0823160e01b815230928101929092526001600160a01b0383169163a9059cbb91339184906370a0823190602401602060405180830381865afa158015611155573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111799190612116565b61118391906120b2565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156111cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d891906120fb565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa15801561123b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111839190612116565b505050565b61126c611968565b5f6112cd600580548060200260200160405190810160405280929190818152602001828054801561089657602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831161087857505050505084611994565b9050806201869f03611362576005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386161790556006805491820181555f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01829055611382565b816006828154811061137657611376612077565b5f918252602090912001555b6008600160095461139391906120b2565b815481106113a3576113a3612077565b905f5260205f2090600402015f0154600a54620151806113c391906120c5565b6113cd90426120b2565b1061151b57600860405180608001604052804281526020016004548152602001600580548060200260200160405190810160405280929190818152602001828054801561144157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611423575b50505050508152602001600680548060200260200160405190810160405280929190818152602001828054801561149557602002820191905f5260205f20905b815481526020019060010190808311611481575b5050509190925250508154600181810184555f9384526020938490208351600490930201918255838301519082015560408201518051929391926114df9260028501920190611d72565b50606082015180516114fb916003840191602090910190611de2565b505050600160095f828254611510919061209f565b9091555061125f9050565b60066008600160095461152e91906120b2565b8154811061153e5761153e612077565b905f5260205f2090600402016003019080546110d8929190611e1b565b606060068054806020026020016040519081016040528092919081815260200182805480156107f157602002820191905f5260205f20905b815481526020019060010190808311611593575050505050905090565b6115b86119ef565b600c54610100900460ff16156116105760405162461bcd60e51b815260206004820152600c60248201527f5374616b652070617573656400000000000000000000000000000000000000006044820152606401610946565b6002546040516370a0823160e01b815233600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015611656573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167a9190612116565b10156116c85760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610946565b335f9081526007602090815260409182902082516080810184528154808252600183015493820193909352600282015493810193909352600301546060830152156117165761171633611a19565b6002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561176a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178e91906120fb565b50611797611b81565b4260408201526009546117aa575f6117b9565b60016009546117b991906120b2565b60608201528051829082906117cf90839061209f565b905250600b546117e290620151806120c5565b6117ec904261209f565b6020808301918252335f908152600790915260408082208451815592516001840155830151600283015560608301516003909201919091556004805484929061183690849061209f565b9091555050600454600954600890611850906001906120b2565b8154811061186057611860612077565b905f5260205f20906004020160010181905550336001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d83604051610bbe91815260200190565b6118b6611968565b600a55565b600881815481106118ca575f80fd5b5f9182526020909120600490910201805460019091015490915082565b600681815481106118f6575f80fd5b5f91825260209091200154905081565b61190e611968565b6001600160a01b03811661193757604051631e4fbdf760e01b81525f6004820152602401610946565b610bd081611d16565b6005818154811061194f575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f546001600160a01b03163314610d295760405163118cdaa760e01b8152336004820152602401610946565b5f805b83518110156119e157826001600160a01b03168482815181106119bc576119bc612077565b60200260200101516001600160a01b0316036119d95790506119e9565b600101611997565b506201869f90505b92915050565b600260015403611a1257604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b600c5462010000900460ff1615611a2d5750565b5f611a378261045e565b90505f5b600554811015611b38575f828281518110611a5857611a58612077565b60200260200101511115611b305760058181548110611a7957611a79612077565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b031663a9059cbb84848481518110611ab557611ab5612077565b60200260200101516040518363ffffffff1660e01b8152600401611aee9291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af1158015611b0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b2e91906120fb565b505b600101611a3b565b50816001600160a01b03167f8a2898a059704ff1ba398698ca41289cb408939cfd8106f307abb9a4f56943da600583604051611b7592919061212d565b60405180910390a25050565b60086001600954611b9291906120b2565b81548110611ba257611ba2612077565b905f5260205f2090600402015f0154600a5462015180611bc291906120c5565b611bcc90426120b2565b10610d29576008604051806080016040528042815260200160045481526020016005805480602002602001604051908101604052809291908181526020018280548015611c4057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611c22575b505050505081526020016006805480602002602001604051908101604052809291908181526020018280548015611c9457602002820191905f5260205f20905b815481526020019060010190808311611c80575b5050509190925250508154600181810184555f938452602093849020835160049093020191825583830151908201556040820151805192939192611cde9260028501920190611d72565b5060608201518051611cfa916003840191602090910190611de2565b505050600160095f828254611d0f919061209f565b9091555050565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f20908101928215611dd2579160200282015b82811115611dd2578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190611d90565b50611dde929150611e57565b5090565b828054828255905f5260205f20908101928215611dd2579160200282015b82811115611dd2578251825591602001919060010190611e00565b828054828255905f5260205f20908101928215611dd2575f5260205f209182015b82811115611dd2578254825591600101919060010190611e3c565b5b80821115611dde575f8155600101611e58565b80356001600160a01b0381168114611e81575f80fd5b919050565b5f60208284031215611e96575f80fd5b611e9f82611e6b565b9392505050565b5f815180845260208085019450602084015f5b83811015611ed557815187529582019590820190600101611eb9565b509495945050505050565b602081525f611e9f6020830184611ea6565b602080825282518282018190525f9190848201906040850190845b81811015611f325783516001600160a01b031683529284019291840191600101611f0d565b50909695505050505050565b8015158114610bd0575f80fd5b5f60208284031215611f5b575f80fd5b8135611e9f81611f3e565b5f805f60608486031215611f78575f80fd5b83359250611f8860208501611e6b565b9150604084013590509250925092565b5f60208284031215611fa8575f80fd5b5035919050565b5f805f60608486031215611fc1575f80fd5b8335611fcc81611f3e565b92506020840135611fdc81611f3e565b91506040840135611fec81611f3e565b809150509250925092565b5f805f60608486031215612009575f80fd5b833561201481611f3e565b9250602084013561202481611f3e565b915061203260408501611e6b565b90509250925092565b5f806040838503121561204c575f80fd5b61205583611e6b565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156119e9576119e961208b565b818103818111156119e9576119e961208b565b80820281158282048414176119e9576119e961208b565b5f826120f657634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561210b575f80fd5b8151611e9f81611f3e565b5f60208284031215612126575f80fd5b5051919050565b5f6040820160408352808554808352606085019150865f526020925060205f205f5b828110156121745781546001600160a01b03168452928401926001918201910161214f565b50505083810360208501526121898186611ea6565b969550505050505056fea2646970667358221220ce5090c4d4189e7947d30a828e24bd5e0b1ea2bb9009cfb4070ac1853e2ca0a264736f6c634300081900330000000000000000000000008e4d27d772099e18900caf5dcc36cb612dcee886000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000030000000000000000000000008e4d27d772099e18900caf5dcc36cb612dcee8860000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c59900000000000000000000000077e06c9eccf2e797fd462a92b6d7642ef85b0a440000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101d0575f3560e01c8063880de0d2116100fe578063a694fc3a1161009e578063d3f108081161006e578063d3f1080814610412578063dd418ae214610425578063f2fde38b14610438578063f301af421461044b575f80fd5b8063a694fc3a146103b1578063a96609db146103c4578063b3b15206146103d7578063bc3b2b12146103ea575f80fd5b806392a1b557116100d957806392a1b5571461037a57806397faf1f41461038d5780639a7f8c61146103965780639accab55146103a9575f80fd5b8063880de0d2146103365780638da5cb5b146103435780638ff095f914610367575f80fd5b80634e71d92d116101745780637562cac6116101445780637562cac6146102fd5780637571836614610310578063817b1cd214610324578063849f030f1461032d575f80fd5b80634e71d92d146102865780634eb665af1461028e5780635d0eaaaf146102a1578063715018a6146102f5575f80fd5b80630ee8d4d5116101af5780630ee8d4d5146102295780632a0305ea1461023e5780632e17de78146102515780634281096714610264575f80fd5b80628cc262146101d457806304554443146101fd5780630572b0cc14610214575b5f80fd5b6101e76101e2366004611e86565b61045e565b6040516101f49190611ee0565b60405180910390f35b610206600b5481565b6040519081526020016101f4565b61021c61079b565b6040516101f49190611ef2565b61023c610237366004611f4b565b6107fb565b005b61023c61024c366004611f66565b610816565b61023c61025f366004611f98565b6108e8565b600c5461027690610100900460ff1681565b60405190151581526020016101f4565b61023c610bd3565b61023c61029c366004611f98565b610d2b565b6102d56102af366004611e86565b60076020525f908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016101f4565b61023c610d38565b61023c61030b366004611faf565b610d49565b600c54610276906301000000900460ff1681565b61020660045481565b610206600a5481565b600c546102769060ff1681565b5f546001600160a01b03165b6040516001600160a01b0390911681526020016101f4565b600c546102769062010000900460ff1681565b61023c610388366004611ff7565b610d95565b61020660095481565b61023c6103a436600461203b565b611264565b6101e761155b565b61023c6103bf366004611f98565b6115b0565b60025461034f906001600160a01b031681565b61023c6103e5366004611f98565b6118ae565b6103fd6103f8366004611f98565b6118bb565b604080519283526020830191909152016101f4565b60035461034f906001600160a01b031681565b610206610433366004611f98565b6118e7565b61023c610446366004611e86565b611906565b61034f610459366004611f98565b611940565b6001600160a01b0381165f90815260076020908152604080832081516080810183528154808252600183015494820194909452600282015492810192909252600301546060828101919091529290918391036104bb579392505050565b60055467ffffffffffffffff8111156104d6576104d6612063565b6040519080825280602002602001820160405280156104ff578160200160208202803683370190505b50905061052b60405180608001604052805f81526020015f815260200160608152602001606081525090565b604083015160608401515f905b60095481101561078f576008818154811061055557610555612077565b905f5260205f2090600402016040518060800160405290815f820154815260200160018201548152602001600282018054806020026020016040519081016040528092919081815260200182805480156105d657602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116105b8575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561062c57602002820191905f5260205f20905b815481526020019060010190808311610618575b5050505050815250509350600954816001610647919061209f565b10156106b95782600861065b83600161209f565b8154811061066b5761066b612077565b905f5260205f2090600402015f015461068491906120b2565b9150600861069382600161209f565b815481106106a3576106a3612077565b905f5260205f2090600402015f015492506106c6565b6106c383426120b2565b91505b5f5b6005548110156107865780856060015151111561075357846020015183866060015183815181106106fb576106fb612077565b6020026020010151895f015161071191906120c5565b61071b91906120c5565b61072591906120dc565b86828151811061073757610737612077565b6020026020010181815161074b919061209f565b90525061077e565b5f86828151811061076657610766612077565b6020026020010181815161077a919061209f565b9052505b6001016106c8565b50600101610538565b50929695505050505050565b606060058054806020026020016040519081016040528092919081815260200182805480156107f157602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116107d3575b5050505050905090565b610803611968565b600c805460ff1916911515919091179055565b61081e611968565b5f6108a16008858154811061083557610835612077565b905f5260205f20906004020160020180548060200260200160405190810160405280929190818152602001828054801561089657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610878575b505050505084611994565b905081600885815481106108b7576108b7612077565b905f5260205f20906004020160030182815481106108d7576108d7612077565b5f9182526020909120015550505050565b6108f06119ef565b600c546301000000900460ff161561094f5760405162461bcd60e51b815260206004820152600e60248201527f556e7374616b652070617573656400000000000000000000000000000000000060448201526064015b60405180910390fd5b335f90815260076020908152604091829020825160808101845281548082526001830154938201939093526002820154938101939093526003015460608301528211156109de5760405162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e74207374616b6500000000000000000000000000006044820152606401610946565b600c5460ff16806109f3575080602001514210155b610a3f5760405162461bcd60e51b815260206004820152601460248201527f4c6f636b20686173206e6f7420657870697265640000000000000000000000006044820152606401610946565b610a4833611a19565b610a50611b81565b426040820152600954610a63575f610a72565b6001600954610a7291906120b2565b6060820152805182908290610a889083906120b2565b905250335f818152600760209081526040918290208451815590840151600182015583820151600280830191909155606085015160039092019190915554905163a9059cbb60e01b81526004810192909252602482018490526001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610b10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3491906120fb565b508160045f828254610b4691906120b2565b9091555050600454600954600890610b60906001906120b2565b81548110610b7057610b70612077565b905f5260205f20906004020160010181905550336001600160a01b03167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f7583604051610bbe91815260200190565b60405180910390a250610bd060018055565b50565b610bdb6119ef565b600c5462010000900460ff1615610c345760405162461bcd60e51b815260206004820152600c60248201527f436c61696d2070617573656400000000000000000000000000000000000000006044820152606401610946565b335f9081526007602090815260409182902082516080810184528154808252600183015493820193909352600282015493810193909352600301546060830152610cc05760405162461bcd60e51b815260206004820152600860248201527f4e6f207374616b650000000000000000000000000000000000000000000000006044820152606401610946565b610cc933611a19565b426040820152600954610cdc575f610ceb565b6001600954610ceb91906120b2565b60608201908152335f9081526007602090815260409182902084518155908401516001820155920151600283015551600390910155610d2960018055565b565b610d33611968565b600b55565b610d40611968565b610d295f611d16565b610d51611968565b600c805491151563010000000263ff00000019931515620100000262ff000019951515610100029590951662ffff0019909316929092179390931791909116179055565b610d9d611968565b8215610e1b576002546004805460405163a9059cbb60e01b8152339281019290925260248201526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610df5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1991906120fb565b505b81156110de575f5b6005548110156110d857600354600580546001600160a01b039092169183908110610e5057610e50612077565b5f918252602090912001546001600160a01b031603610faa5760058181548110610e7c57610e7c612077565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b031663a9059cbb3360045460058581548110610ebc57610ebc612077565b5f918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612116565b610f3891906120b2565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610f80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa491906120fb565b506110d0565b60058181548110610fbd57610fbd612077565b5f91825260209091200154600580546001600160a01b039092169163a9059cbb91339185908110610ff057610ff0612077565b5f918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561103e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110629190612116565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156110aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ce91906120fb565b505b600101610e23565b50505050565b6001600160a01b0381161561125f576003546001600160a01b03908116908216036111ef57600480546040516370a0823160e01b815230928101929092526001600160a01b0383169163a9059cbb91339184906370a0823190602401602060405180830381865afa158015611155573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111799190612116565b61118391906120b2565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156111cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d891906120fb565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa15801561123b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111839190612116565b505050565b61126c611968565b5f6112cd600580548060200260200160405190810160405280929190818152602001828054801561089657602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831161087857505050505084611994565b9050806201869f03611362576005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386161790556006805491820181555f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01829055611382565b816006828154811061137657611376612077565b5f918252602090912001555b6008600160095461139391906120b2565b815481106113a3576113a3612077565b905f5260205f2090600402015f0154600a54620151806113c391906120c5565b6113cd90426120b2565b1061151b57600860405180608001604052804281526020016004548152602001600580548060200260200160405190810160405280929190818152602001828054801561144157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611423575b50505050508152602001600680548060200260200160405190810160405280929190818152602001828054801561149557602002820191905f5260205f20905b815481526020019060010190808311611481575b5050509190925250508154600181810184555f9384526020938490208351600490930201918255838301519082015560408201518051929391926114df9260028501920190611d72565b50606082015180516114fb916003840191602090910190611de2565b505050600160095f828254611510919061209f565b9091555061125f9050565b60066008600160095461152e91906120b2565b8154811061153e5761153e612077565b905f5260205f2090600402016003019080546110d8929190611e1b565b606060068054806020026020016040519081016040528092919081815260200182805480156107f157602002820191905f5260205f20905b815481526020019060010190808311611593575050505050905090565b6115b86119ef565b600c54610100900460ff16156116105760405162461bcd60e51b815260206004820152600c60248201527f5374616b652070617573656400000000000000000000000000000000000000006044820152606401610946565b6002546040516370a0823160e01b815233600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015611656573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167a9190612116565b10156116c85760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610946565b335f9081526007602090815260409182902082516080810184528154808252600183015493820193909352600282015493810193909352600301546060830152156117165761171633611a19565b6002546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561176a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178e91906120fb565b50611797611b81565b4260408201526009546117aa575f6117b9565b60016009546117b991906120b2565b60608201528051829082906117cf90839061209f565b905250600b546117e290620151806120c5565b6117ec904261209f565b6020808301918252335f908152600790915260408082208451815592516001840155830151600283015560608301516003909201919091556004805484929061183690849061209f565b9091555050600454600954600890611850906001906120b2565b8154811061186057611860612077565b905f5260205f20906004020160010181905550336001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d83604051610bbe91815260200190565b6118b6611968565b600a55565b600881815481106118ca575f80fd5b5f9182526020909120600490910201805460019091015490915082565b600681815481106118f6575f80fd5b5f91825260209091200154905081565b61190e611968565b6001600160a01b03811661193757604051631e4fbdf760e01b81525f6004820152602401610946565b610bd081611d16565b6005818154811061194f575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f546001600160a01b03163314610d295760405163118cdaa760e01b8152336004820152602401610946565b5f805b83518110156119e157826001600160a01b03168482815181106119bc576119bc612077565b60200260200101516001600160a01b0316036119d95790506119e9565b600101611997565b506201869f90505b92915050565b600260015403611a1257604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b600c5462010000900460ff1615611a2d5750565b5f611a378261045e565b90505f5b600554811015611b38575f828281518110611a5857611a58612077565b60200260200101511115611b305760058181548110611a7957611a79612077565b905f5260205f20015f9054906101000a90046001600160a01b03166001600160a01b031663a9059cbb84848481518110611ab557611ab5612077565b60200260200101516040518363ffffffff1660e01b8152600401611aee9291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af1158015611b0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b2e91906120fb565b505b600101611a3b565b50816001600160a01b03167f8a2898a059704ff1ba398698ca41289cb408939cfd8106f307abb9a4f56943da600583604051611b7592919061212d565b60405180910390a25050565b60086001600954611b9291906120b2565b81548110611ba257611ba2612077565b905f5260205f2090600402015f0154600a5462015180611bc291906120c5565b611bcc90426120b2565b10610d29576008604051806080016040528042815260200160045481526020016005805480602002602001604051908101604052809291908181526020018280548015611c4057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611c22575b505050505081526020016006805480602002602001604051908101604052809291908181526020018280548015611c9457602002820191905f5260205f20905b815481526020019060010190808311611c80575b5050509190925250508154600181810184555f938452602093849020835160049093020191825583830151908201556040820151805192939192611cde9260028501920190611d72565b5060608201518051611cfa916003840191602090910190611de2565b505050600160095f828254611d0f919061209f565b9091555050565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f20908101928215611dd2579160200282015b82811115611dd2578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190611d90565b50611dde929150611e57565b5090565b828054828255905f5260205f20908101928215611dd2579160200282015b82811115611dd2578251825591602001919060010190611e00565b828054828255905f5260205f20908101928215611dd2575f5260205f209182015b82811115611dd2578254825591600101919060010190611e3c565b5b80821115611dde575f8155600101611e58565b80356001600160a01b0381168114611e81575f80fd5b919050565b5f60208284031215611e96575f80fd5b611e9f82611e6b565b9392505050565b5f815180845260208085019450602084015f5b83811015611ed557815187529582019590820190600101611eb9565b509495945050505050565b602081525f611e9f6020830184611ea6565b602080825282518282018190525f9190848201906040850190845b81811015611f325783516001600160a01b031683529284019291840191600101611f0d565b50909695505050505050565b8015158114610bd0575f80fd5b5f60208284031215611f5b575f80fd5b8135611e9f81611f3e565b5f805f60608486031215611f78575f80fd5b83359250611f8860208501611e6b565b9150604084013590509250925092565b5f60208284031215611fa8575f80fd5b5035919050565b5f805f60608486031215611fc1575f80fd5b8335611fcc81611f3e565b92506020840135611fdc81611f3e565b91506040840135611fec81611f3e565b809150509250925092565b5f805f60608486031215612009575f80fd5b833561201481611f3e565b9250602084013561202481611f3e565b915061203260408501611e6b565b90509250925092565b5f806040838503121561204c575f80fd5b61205583611e6b565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156119e9576119e961208b565b818103818111156119e9576119e961208b565b80820281158282048414176119e9576119e961208b565b5f826120f657634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561210b575f80fd5b8151611e9f81611f3e565b5f60208284031215612126575f80fd5b5051919050565b5f6040820160408352808554808352606085019150865f526020925060205f205f5b828110156121745781546001600160a01b03168452928401926001918201910161214f565b50505083810360208501526121898186611ea6565b969550505050505056fea2646970667358221220ce5090c4d4189e7947d30a828e24bd5e0b1ea2bb9009cfb4070ac1853e2ca0a264736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008e4d27d772099e18900caf5dcc36cb612dcee886000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000030000000000000000000000008e4d27d772099e18900caf5dcc36cb612dcee8860000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c59900000000000000000000000077e06c9eccf2e797fd462a92b6d7642ef85b0a440000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _stakedAddr (address): 0x8E4d27d772099e18900CAF5Dcc36Cb612DcEE886
Arg [1] : _rewards (address[]): 0x8E4d27d772099e18900CAF5Dcc36Cb612DcEE886,0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599,0x77E06c9eCCf2E797fd462A92B6D7642EF85b0A44
Arg [2] : _rates (uint256[]): 0,0,0
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000008e4d27d772099e18900caf5dcc36cb612dcee886
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [4] : 0000000000000000000000008e4d27d772099e18900caf5dcc36cb612dcee886
Arg [5] : 0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599
Arg [6] : 00000000000000000000000077e06c9eccf2e797fd462a92b6d7642ef85b0a44
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
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.