Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 753 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 20346174 | 41 days ago | IN | 0 ETH | 0.0004626 | ||||
Unstake | 18481726 | 302 days ago | IN | 0 ETH | 0.00065859 | ||||
Transfer | 18325764 | 324 days ago | IN | 0 ETH | 0.00025223 | ||||
Unstake | 18321481 | 325 days ago | IN | 0 ETH | 0.00137631 | ||||
Stake | 18321477 | 325 days ago | IN | 0 ETH | 0.00173798 | ||||
Transfer | 18198542 | 342 days ago | IN | 0 ETH | 0.00035373 | ||||
Transfer | 18185269 | 344 days ago | IN | 0 ETH | 0.00050948 | ||||
Transfer | 18185263 | 344 days ago | IN | 0 ETH | 0.00055 | ||||
Transfer | 18185258 | 344 days ago | IN | 0 ETH | 0.0005944 | ||||
Unstake | 18141897 | 350 days ago | IN | 0 ETH | 0.0006265 | ||||
Harvest | 18141884 | 350 days ago | IN | 0 ETH | 0.00127132 | ||||
Harvest | 18141874 | 350 days ago | IN | 0 ETH | 0.00135864 | ||||
Harvest | 18135413 | 351 days ago | IN | 0 ETH | 0.00296291 | ||||
Stake | 17754246 | 404 days ago | IN | 0 ETH | 0.0012589 | ||||
Harvest | 17754240 | 404 days ago | IN | 0 ETH | 0.00143769 | ||||
Harvest | 17693710 | 413 days ago | IN | 0 ETH | 0.00349034 | ||||
Transfer | 17693127 | 413 days ago | IN | 0 ETH | 0.00184854 | ||||
Stake | 17693118 | 413 days ago | IN | 0 ETH | 0.00391699 | ||||
Harvest | 17693109 | 413 days ago | IN | 0 ETH | 0.00307651 | ||||
Transfer | 17685360 | 414 days ago | IN | 0 ETH | 0.00098686 | ||||
Transfer | 17685344 | 414 days ago | IN | 0 ETH | 0.00096795 | ||||
Transfer | 17676224 | 415 days ago | IN | 0 ETH | 0.00054615 | ||||
Transfer | 17676210 | 415 days ago | IN | 0 ETH | 0.00063241 | ||||
Unstake | 17673080 | 416 days ago | IN | 0 ETH | 0.00137504 | ||||
Harvest | 17673051 | 416 days ago | IN | 0 ETH | 0.00186929 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | ||||
---|---|---|---|---|---|---|---|
20346174 | 41 days ago | 0 ETH | |||||
18321481 | 325 days ago | 0 ETH | |||||
18321477 | 325 days ago | 0 ETH | |||||
18141884 | 350 days ago | 0 ETH | |||||
18141874 | 350 days ago | 0 ETH | |||||
18135413 | 351 days ago | 0 ETH | |||||
17754246 | 404 days ago | 0 ETH | |||||
17754240 | 404 days ago | 0 ETH | |||||
17693710 | 413 days ago | 0 ETH | |||||
17693118 | 413 days ago | 0 ETH | |||||
17693109 | 413 days ago | 0 ETH | |||||
17673080 | 416 days ago | 0 ETH | |||||
17673051 | 416 days ago | 0 ETH | |||||
17664215 | 417 days ago | 0 ETH | |||||
17664212 | 417 days ago | 0 ETH | |||||
17641503 | 420 days ago | 0 ETH | |||||
17622822 | 423 days ago | 0 ETH | |||||
17622814 | 423 days ago | 0 ETH | |||||
17488702 | 441 days ago | 0 ETH | |||||
17487496 | 442 days ago | 0 ETH | |||||
17487493 | 442 days ago | 0 ETH | |||||
17485263 | 442 days ago | 0 ETH | |||||
17480402 | 443 days ago | 0 ETH | |||||
17471330 | 444 days ago | 0 ETH | |||||
17471327 | 444 days ago | 0 ETH |
Loading...
Loading
Contract Name:
Staking
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
Yes with 800 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.8.14; import "./interfaces/IStaking.sol"; import "./interfaces/InitializableOwnable.sol"; contract Staking is InitializableOwnable, IStaking { /* ========== HELPER STRUCTURES ========== */ struct UserInfo { uint amount; uint rewardAccountedForHarvest; uint availableHarvest; uint lastHarvestTimestamp; } /* ========== CONSTANTS ========== */ IERC20 public immutable stakingToken; string public name; string public symbol; uint public immutable harvestInterval; uint8 public immutable decimals; uint public constant calcDecimals = 1e14; uint public constant secondsInYear = 31557600; uint public constant aprDenominator = 10000; /* ========== STATE VARIABLES ========== */ address public admin; bool public paused; bool public unstakePermitted; uint public aprBasisPoints; uint public amountStaked; uint public accumulatedRewardPerShare; uint public lastRewardTimestamp; mapping(address => UserInfo) public userInfo; mapping(address => mapping(address => uint)) public allowances; /* ========== CONSTRUCTOR ========== */ constructor( IERC20 token_, string memory name_, string memory symbol_, uint aprBasisPoints_, uint harvestInterval_ ) { initOwner(msg.sender); stakingToken = token_; name = name_; symbol = symbol_; aprBasisPoints = aprBasisPoints_; harvestInterval = harvestInterval_; lastRewardTimestamp = block.timestamp; decimals = IERC20Metadata(address(token_)).decimals(); } /* ========== VIEWS ========== */ function totalSupply() external view returns (uint256) { return amountStaked; } function currentRewardDelta() public view returns (uint) { uint timeDelta = block.timestamp - lastRewardTimestamp; return (timeDelta * aprBasisPoints * calcDecimals) / (aprDenominator * secondsInYear); } function calculateRewardForStake(uint amount) internal view returns (uint) { return accumulatedRewardPerShare * amount / calcDecimals; } function balanceOf(address user_) external view returns(uint) { UserInfo storage user = userInfo[user_]; uint updAccumulatedRewardPerShare = accumulatedRewardPerShare + currentRewardDelta(); uint virtualReward = updAccumulatedRewardPerShare * user.amount / calcDecimals - user.rewardAccountedForHarvest; return user.amount + user.availableHarvest + virtualReward; } function allowance(address owner, address spender) external view returns (uint256) { return allowances[owner][spender]; } /* ========== MUTATIVE FUNCTIONS ========== */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function approve( address spender, uint amount ) external whenNotPaused virtual override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _transfer( address sender_, address recipient_, uint amount ) internal { updateRewardPool(); require(sender_ != address(0), "ERC20: transfer from the zero address"); require(recipient_ != address(0), "ERC20: transfer to the zero address"); UserInfo storage sender = userInfo[sender_]; UserInfo storage recipient = userInfo[recipient_]; require(amount <= sender.amount, "ERC20: transfer amount exceeds balance"); sender.availableHarvest += calculateRewardForStake(sender.amount) - sender.rewardAccountedForHarvest; sender.amount -= amount; sender.rewardAccountedForHarvest = calculateRewardForStake(sender.amount); recipient.availableHarvest += calculateRewardForStake(recipient.amount) - recipient.rewardAccountedForHarvest; recipient.amount += amount; recipient.rewardAccountedForHarvest = calculateRewardForStake(recipient.amount); emit Transfer(sender_, recipient_, amount); } function transfer( address recipient, uint256 amount ) external whenNotPaused virtual override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function transferFrom( address spender, address recipient, uint256 amount ) external whenNotPaused virtual override returns (bool) { _transfer(spender, recipient, amount); uint256 currentAllowance = allowances[spender][msg.sender]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(spender, msg.sender, currentAllowance - amount); return true; } function updateRewardPool() public canUnstake { accumulatedRewardPerShare += currentRewardDelta(); lastRewardTimestamp = block.timestamp; } function stake( uint amount, address to ) external whenNotPaused { updateRewardPool(); require(amount > 0, "Staking: Nothing to deposit"); require(to != address(0)); require(stakingToken.transferFrom(msg.sender, address(this), amount), "Staking: transfer failed"); UserInfo storage user = userInfo[to]; user.availableHarvest += calculateRewardForStake(user.amount) - user.rewardAccountedForHarvest; amountStaked += amount; user.amount += amount; user.rewardAccountedForHarvest = calculateRewardForStake(user.amount); emit Transfer(address(0), to, amount); emit Stake(to, amount); } function harvest(uint256 amount) external whenNotPaused { updateRewardPool(); UserInfo storage user = userInfo[msg.sender]; require(user.lastHarvestTimestamp + harvestInterval <= block.timestamp || user.lastHarvestTimestamp == 0, "Staking: less than 24 hours since last harvest"); user.lastHarvestTimestamp = block.timestamp; uint reward = calculateRewardForStake(user.amount); user.availableHarvest += reward - user.rewardAccountedForHarvest; user.rewardAccountedForHarvest = reward; require(amount > 0, "Staking: Nothing to harvest"); require(amount <= user.availableHarvest, "Staking: Insufficient to harvest"); user.availableHarvest -= amount; require(stakingToken.transfer(msg.sender, amount), "Staking: transfer failed"); emit Harvest(msg.sender, amount); } function unstake( address to, uint256 amount ) external canUnstake { updateRewardPool(); require(amount > 0, "Staking: Nothing to unstake"); require(to != address(0)); UserInfo storage user = userInfo[msg.sender]; require(amount <= user.amount, "Staking: Insufficient share"); user.availableHarvest += calculateRewardForStake(user.amount) - user.rewardAccountedForHarvest; amountStaked -= amount; user.amount -= amount; user.rewardAccountedForHarvest = calculateRewardForStake(user.amount); require(stakingToken.transfer(to, amount), "Staking: Not enough token to transfer"); emit Transfer(to, address(0), amount); emit Unstake(to, amount); } /* ========== RESTRICTED FUNCTIONS ========== */ function setApr(uint aprBasisPoints_) external onlyOwner { updateRewardPool(); uint oldAprBasisPoints = aprBasisPoints; aprBasisPoints = aprBasisPoints_; emit SetApr(oldAprBasisPoints, aprBasisPoints); } function togglePause() external onlyOwner { paused = !paused; emit Pause(paused); } function toggleUnstake() external onlyOwner { unstakePermitted = !unstakePermitted; emit UnstakePermit(unstakePermitted); } function withdrawToken( IERC20 tokenToWithdraw, address to, uint amount ) external onlyOwner { require(tokenToWithdraw.transfer(to, amount)); } /* ========== MODIFIERS ========== */ modifier whenNotPaused() { require(!paused, "Staking: contract paused."); _; } modifier canUnstake() { require(unstakePermitted || (!paused), "Staking: contract paused or unstake denied."); _; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.14; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; interface IStaking is IERC20, IERC20Metadata { /* ========== CONSTANTS ========== */ function calcDecimals() external view returns (uint); function secondsInYear() external view returns (uint); function aprDenominator() external view returns (uint); /* ========== STATE VARIABLES ========== */ function aprBasisPoints() external view returns (uint); /* ========== MUTATIVE FUNCTIONS ========== */ function updateRewardPool() external; function stake(uint amount, address to) external; function harvest(uint256 amount) external; function unstake(address to, uint256 amount) external; /* ========== RESTRICTED FUNCTIONS ========== */ function setApr(uint _aprBasisPoints) external; function togglePause() external; function toggleUnstake() external; function withdrawToken(IERC20 tokenToWithdraw, address to, uint amount) external; /* ========== EVENTS ========== */ event Pause(bool indexed flag); event UnstakePermit(bool indexed flag); event SetApr(uint indexed oldBasisPoints, uint indexed newBasisPoints); event Stake(address indexed user, uint indexed amount); event Unstake(address indexed user, uint indexed amount); event Harvest(address indexed user, uint indexed amount); }
// SPDX-License-Identifier: Apache-2.0 pragma solidity >=0.8.14; contract InitializableOwnable { address public owner; address public newOwner; bool internal initialized; // ============ Events ============ event OwnerTransferRequested( address indexed oldOwner, address indexed newOwner ); event OwnershipTransferred( address indexed oldOwner, address indexed newOwner ); /* ========== MUTATIVE FUNCTIONS ========== */ function initOwner(address _newOwner) public notInitialized { initialized = true; owner = _newOwner; } function transferOwnership(address _newOwner) public onlyOwner { emit OwnerTransferRequested(owner, _newOwner); newOwner = _newOwner; } function claimOwnership() public { require(msg.sender == newOwner, "Claim from wrong address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } /* ========== MODIFIERS ========== */ modifier notInitialized() { require(!initialized, "Not initialized"); _; } modifier onlyOwner() { require(msg.sender == owner, "Not owner"); _; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` 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 amount) 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 `amount` 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 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` 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 amount ) external returns (bool); /** * @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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; import "../IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
{ "optimizer": { "enabled": true, "runs": 800 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC20","name":"token_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"aprBasisPoints_","type":"uint256"},{"internalType":"uint256","name":"harvestInterval_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Harvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"flag","type":"bool"}],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldBasisPoints","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newBasisPoints","type":"uint256"}],"name":"SetApr","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"flag","type":"bool"}],"name":"UnstakePermit","type":"event"},{"inputs":[],"name":"accumulatedRewardPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"aprBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aprDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calcDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentRewardDelta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"harvestInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"initOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastRewardTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"secondsInYear","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"aprBasisPoints_","type":"uint256"}],"name":"setApr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"togglePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleUnstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstakePermitted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateRewardPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardAccountedForHarvest","type":"uint256"},{"internalType":"uint256","name":"availableHarvest","type":"uint256"},{"internalType":"uint256","name":"lastHarvestTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenToWithdraw","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e06040523480156200001157600080fd5b5060405162002263380380620022638339810160408190526200003491620002fe565b6200003f3362000104565b6001600160a01b0385166080528351620000619060029060208701906200018b565b508251620000779060039060208601906200018b565b50600582905560a0819052426008556040805163313ce56760e01b815290516001600160a01b0387169163313ce5679160048083019260209291908290030181865afa158015620000cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f291906200039b565b60ff1660c05250620004039350505050565b600154600160a01b900460ff1615620001555760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640160405180910390fd5b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b8280546200019990620003c7565b90600052602060002090601f016020900481019282620001bd576000855562000208565b82601f10620001d857805160ff191683800117855562000208565b8280016001018555821562000208579182015b8281111562000208578251825591602001919060010190620001eb565b50620002169291506200021a565b5090565b5b808211156200021657600081556001016200021b565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200025957600080fd5b81516001600160401b038082111562000276576200027662000231565b604051601f8301601f19908116603f01168101908282118183101715620002a157620002a162000231565b81604052838152602092508683858801011115620002be57600080fd5b600091505b83821015620002e25785820183015181830184015290820190620002c3565b83821115620002f45760008385830101525b9695505050505050565b600080600080600060a086880312156200031757600080fd5b85516001600160a01b03811681146200032f57600080fd5b60208701519095506001600160401b03808211156200034d57600080fd5b6200035b89838a0162000247565b955060408801519150808211156200037257600080fd5b50620003818882890162000247565b606088015160809098015196999598509695949350505050565b600060208284031215620003ae57600080fd5b815160ff81168114620003c057600080fd5b9392505050565b600181811c90821680620003dc57607f821691505b602082108103620003fd57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c051611e146200044f60003960006103be015260008181610315015261140801526000818161047801528181610c0b0152818161119001526115c90152611e146000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80635c975abb11610160578063c2a672e0116100d8578063f2fde38b1161008c578063f8077fae11610071578063f8077fae14610598578063f851a440146105a1578063fab1e747146105b457600080fd5b8063f2fde38b1461057d578063f4036bcf1461059057600080fd5b8063d4ee1d90116100bd578063d4ee1d901461051e578063dd62ed3e14610531578063ddc632621461056a57600080fd5b8063c2a672e014610503578063c4ae31681461051657600080fd5b80638da5cb5b1161012f57806396e5b4db1161011457806396e5b4db146104e0578063a9059cbb146104e8578063ab6a8b02146104fb57600080fd5b80638da5cb5b146104c557806395d89b41146104d857600080fd5b80635c975abb1461044c57806370a082311461046057806372f702f3146104735780637acb7757146104b257600080fd5b80631959a002116101f357806336d42195116101c25780634e71e0c8116101a75780634e71e0c81461040657806355b6ed5c1461040e57806359cee29c1461043957600080fd5b806336d42195146103f25780633ea6713e146103fb57600080fd5b80631959a0021461034857806323b872dd1461039d5780632bdd2ad9146103b0578063313ce567146103b957600080fd5b80630d0092971161024a57806314dc0ce01161022f57806314dc0ce01461031057806315a361d21461033757806318160ddd1461034057600080fd5b80630d009297146102e957806311d81c0f146102fc57600080fd5b806301e336671461027c57806304bd829c1461029157806306fdde03146102b1578063095ea7b3146102c6575b600080fd5b61028f61028a366004611b9f565b6105bd565b005b61029e655af3107a400081565b6040519081526020015b60405180910390f35b6102b9610689565b6040516102a89190611be0565b6102d96102d4366004611c35565b610717565b60405190151581526020016102a8565b61028f6102f7366004611c61565b610788565b6004546102d990600160a81b900460ff1681565b61029e7f000000000000000000000000000000000000000000000000000000000000000081565b61029e61271081565b60065461029e565b61037d610356366004611c61565b60096020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016102a8565b6102d96103ab366004611b9f565b610825565b61029e60055481565b6103e07f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016102a8565b61029e60075481565b61029e6301e187e081565b61028f610946565b61029e61041c366004611c85565b600a60209081526000928352604080842090915290825290205481565b61028f610447366004611cbe565b610a11565b6004546102d990600160a01b900460ff1681565b61029e61046e366004611c61565b610a98565b61049a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102a8565b61028f6104c0366004611cd7565b610b24565b60005461049a906001600160a01b031681565b6102b9610dd4565b61028f610de1565b6102d96104f6366004611c35565b610e9b565b61028f610f03565b61028f610511366004611c35565b610fa9565b61028f6112eb565b60015461049a906001600160a01b031681565b61029e61053f366004611c85565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61028f610578366004611cbe565b61138a565b61028f61058b366004611c61565b6116bc565b61029e61176a565b61029e60085481565b60045461049a906001600160a01b031681565b61029e60065481565b6000546001600160a01b031633146106085760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064015b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b9190611cfc565b61068457600080fd5b505050565b6002805461069690611d1e565b80601f01602080910402602001604051908101604052809291908181526020018280546106c290611d1e565b801561070f5780601f106106e45761010080835404028352916020019161070f565b820191906000526020600020905b8154815290600101906020018083116106f257829003601f168201915b505050505081565b600454600090600160a01b900460ff16156107745760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b61077f3384846117bc565b50600192915050565b600154600160a01b900460ff16156107e25760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696e697469616c697a6564000000000000000000000000000000000060448201526064016105ff565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19909216919091179055565b600454600090600160a01b900460ff16156108825760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b61088d8484846118e0565b6001600160a01b0384166000908152600a60209081526040808320338452909152902054828110156109275760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016105ff565b61093b85336109368685611d6e565b6117bc565b506001949350505050565b6001546001600160a01b031633146109a05760405162461bcd60e51b815260206004820152601860248201527f436c61696d2066726f6d2077726f6e672061646472657373000000000000000060448201526064016105ff565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b03841617909155169055565b6000546001600160a01b03163314610a575760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016105ff565b610a5f610f03565b6005805490829055604051829082907f6ec6d062a87c4b42fe40885d2e8955d89ab9275e14d24354dd2b6b130043bba590600090a35050565b6001600160a01b038116600090815260096020526040812081610ab961176a565b600754610ac69190611d85565b905060008260010154655af3107a4000846000015484610ae69190611d9d565b610af09190611dbc565b610afa9190611d6e565b90508083600201548460000154610b119190611d85565b610b1b9190611d85565b95945050505050565b600454600160a01b900460ff1615610b7e5760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b610b86610f03565b60008211610bd65760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e6f7468696e6720746f206465706f736974000000000060448201526064016105ff565b6001600160a01b038116610be957600080fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c809190611cfc565b610ccc5760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a207472616e73666572206661696c6564000000000000000060448201526064016105ff565b6001600160a01b038116600090815260096020526040902060018101548154610cf490611b60565b610cfe9190611d6e565b816002016000828254610d119190611d85565b925050819055508260066000828254610d2a9190611d85565b9091555050805483908290600090610d43908490611d85565b90915550508054610d5390611b60565b60018201556040518381526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405183906001600160a01b038416907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a90600090a3505050565b6003805461069690611d1e565b6000546001600160a01b03163314610e275760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016105ff565b6004805460ff600160a81b80830482161581027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9093169290921792839055604051919092049091161515907f6b37936355f1e7eb93bbf5afb0444c7f425f273ed40451377ff81e0332ea5e4390600090a2565b600454600090600160a01b900460ff1615610ef85760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b61077f3384846118e0565b600454600160a81b900460ff1680610f255750600454600160a01b900460ff16155b610f855760405162461bcd60e51b815260206004820152602b60248201527f5374616b696e673a20636f6e747261637420706175736564206f7220756e737460448201526a30b5b2903232b734b2b21760a91b60648201526084016105ff565b610f8d61176a565b60076000828254610f9e9190611d85565b909155505042600855565b600454600160a81b900460ff1680610fcb5750600454600160a01b900460ff16155b61102b5760405162461bcd60e51b815260206004820152602b60248201527f5374616b696e673a20636f6e747261637420706175736564206f7220756e737460448201526a30b5b2903232b734b2b21760a91b60648201526084016105ff565b611033610f03565b600081116110835760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e6f7468696e6720746f20756e7374616b65000000000060448201526064016105ff565b6001600160a01b03821661109657600080fd5b33600090815260096020526040902080548211156110f65760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a20496e73756666696369656e74207368617265000000000060448201526064016105ff565b6001810154815461110690611b60565b6111109190611d6e565b8160020160008282546111239190611d85565b92505081905550816006600082825461113c9190611d6e565b9091555050805482908290600090611155908490611d6e565b9091555050805461116590611b60565b600182015560405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd9190611cfc565b61126f5760405162461bcd60e51b815260206004820152602560248201527f5374616b696e673a204e6f7420656e6f75676820746f6b656e20746f2074726160448201527f6e7366657200000000000000000000000000000000000000000000000000000060648201526084016105ff565b6040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405182906001600160a01b038516907f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd90600090a3505050565b6000546001600160a01b031633146113315760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016105ff565b6004805460ff600160a01b808304821615810260ff60a01b199093169290921792839055604051919092049091161515907f9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f45930490600090a2565b600454600160a01b900460ff16156113e45760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b6113ec610f03565b3360009081526009602052604090206003810154429061142d907f000000000000000000000000000000000000000000000000000000000000000090611d85565b11158061143c57506003810154155b6114ae5760405162461bcd60e51b815260206004820152602e60248201527f5374616b696e673a206c657373207468616e20323420686f7572732073696e6360448201527f65206c617374206861727665737400000000000000000000000000000000000060648201526084016105ff565b42600382015580546000906114c290611b60565b90508160010154816114d49190611d6e565b8260020160008282546114e79190611d85565b909155505060018201819055826115405760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e6f7468696e6720746f2068617276657374000000000060448201526064016105ff565b81600201548311156115945760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a20496e73756666696369656e7420746f206861727665737460448201526064016105ff565b828260020160008282546115a89190611d6e565b909155505060405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e9190611cfc565b61168a5760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a207472616e73666572206661696c6564000000000000000060448201526064016105ff565b604051839033907fc9695243a805adb74c91f28311176c65b417e842d5699893cef56d18bfa48cba90600090a3505050565b6000546001600160a01b031633146117025760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016105ff565b600080546040516001600160a01b03808516939216917ffe468f2d56412c82d8634992af86bf1fe77006b5d9659cff6e01542a36362a6d91a36001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000806008544261177b9190611d6e565b905061178d6301e187e0612710611d9d565b655af3107a4000600554836117a29190611d9d565b6117ac9190611d9d565b6117b69190611dbc565b91505090565b6001600160a01b03831661181e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ff565b6001600160a01b03821661187f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ff565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6118e8610f03565b6001600160a01b0383166119645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105ff565b6001600160a01b0382166119c65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ff565b6001600160a01b03808416600090815260096020526040808220928516825290208154831115611a5e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105ff565b60018201548254611a6e90611b60565b611a789190611d6e565b826002016000828254611a8b9190611d85565b9091555050815483908390600090611aa4908490611d6e565b90915550508154611ab490611b60565b6001808401919091558101548154611acb90611b60565b611ad59190611d6e565b816002016000828254611ae89190611d85565b9091555050805483908290600090611b01908490611d85565b90915550508054611b1190611b60565b60018201556040518381526001600160a01b0380861691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6000655af3107a400082600754611b779190611d9d565b611b819190611dbc565b92915050565b6001600160a01b0381168114611b9c57600080fd5b50565b600080600060608486031215611bb457600080fd5b8335611bbf81611b87565b92506020840135611bcf81611b87565b929592945050506040919091013590565b600060208083528351808285015260005b81811015611c0d57858101830151858201604001528201611bf1565b81811115611c1f576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c4857600080fd5b8235611c5381611b87565b946020939093013593505050565b600060208284031215611c7357600080fd5b8135611c7e81611b87565b9392505050565b60008060408385031215611c9857600080fd5b8235611ca381611b87565b91506020830135611cb381611b87565b809150509250929050565b600060208284031215611cd057600080fd5b5035919050565b60008060408385031215611cea57600080fd5b823591506020830135611cb381611b87565b600060208284031215611d0e57600080fd5b81518015158114611c7e57600080fd5b600181811c90821680611d3257607f821691505b602082108103611d5257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611d8057611d80611d58565b500390565b60008219821115611d9857611d98611d58565b500190565b6000816000190483118215151615611db757611db7611d58565b500290565b600082611dd957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220ceae707500c361d09564137e8bd12ffb6ca16ace6eb9c4f29f1294891143386664736f6c634300080e003300000000000000000000000001e0e2e61f554ecaaec0cc933e739ad90f24a86d00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000008b80000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000000000c5374616b696e672047544f4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057347544f4e000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102775760003560e01c80635c975abb11610160578063c2a672e0116100d8578063f2fde38b1161008c578063f8077fae11610071578063f8077fae14610598578063f851a440146105a1578063fab1e747146105b457600080fd5b8063f2fde38b1461057d578063f4036bcf1461059057600080fd5b8063d4ee1d90116100bd578063d4ee1d901461051e578063dd62ed3e14610531578063ddc632621461056a57600080fd5b8063c2a672e014610503578063c4ae31681461051657600080fd5b80638da5cb5b1161012f57806396e5b4db1161011457806396e5b4db146104e0578063a9059cbb146104e8578063ab6a8b02146104fb57600080fd5b80638da5cb5b146104c557806395d89b41146104d857600080fd5b80635c975abb1461044c57806370a082311461046057806372f702f3146104735780637acb7757146104b257600080fd5b80631959a002116101f357806336d42195116101c25780634e71e0c8116101a75780634e71e0c81461040657806355b6ed5c1461040e57806359cee29c1461043957600080fd5b806336d42195146103f25780633ea6713e146103fb57600080fd5b80631959a0021461034857806323b872dd1461039d5780632bdd2ad9146103b0578063313ce567146103b957600080fd5b80630d0092971161024a57806314dc0ce01161022f57806314dc0ce01461031057806315a361d21461033757806318160ddd1461034057600080fd5b80630d009297146102e957806311d81c0f146102fc57600080fd5b806301e336671461027c57806304bd829c1461029157806306fdde03146102b1578063095ea7b3146102c6575b600080fd5b61028f61028a366004611b9f565b6105bd565b005b61029e655af3107a400081565b6040519081526020015b60405180910390f35b6102b9610689565b6040516102a89190611be0565b6102d96102d4366004611c35565b610717565b60405190151581526020016102a8565b61028f6102f7366004611c61565b610788565b6004546102d990600160a81b900460ff1681565b61029e7f000000000000000000000000000000000000000000000000000000000001518081565b61029e61271081565b60065461029e565b61037d610356366004611c61565b60096020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016102a8565b6102d96103ab366004611b9f565b610825565b61029e60055481565b6103e07f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff90911681526020016102a8565b61029e60075481565b61029e6301e187e081565b61028f610946565b61029e61041c366004611c85565b600a60209081526000928352604080842090915290825290205481565b61028f610447366004611cbe565b610a11565b6004546102d990600160a01b900460ff1681565b61029e61046e366004611c61565b610a98565b61049a7f00000000000000000000000001e0e2e61f554ecaaec0cc933e739ad90f24a86d81565b6040516001600160a01b0390911681526020016102a8565b61028f6104c0366004611cd7565b610b24565b60005461049a906001600160a01b031681565b6102b9610dd4565b61028f610de1565b6102d96104f6366004611c35565b610e9b565b61028f610f03565b61028f610511366004611c35565b610fa9565b61028f6112eb565b60015461049a906001600160a01b031681565b61029e61053f366004611c85565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61028f610578366004611cbe565b61138a565b61028f61058b366004611c61565b6116bc565b61029e61176a565b61029e60085481565b60045461049a906001600160a01b031681565b61029e60065481565b6000546001600160a01b031633146106085760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064015b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b9190611cfc565b61068457600080fd5b505050565b6002805461069690611d1e565b80601f01602080910402602001604051908101604052809291908181526020018280546106c290611d1e565b801561070f5780601f106106e45761010080835404028352916020019161070f565b820191906000526020600020905b8154815290600101906020018083116106f257829003601f168201915b505050505081565b600454600090600160a01b900460ff16156107745760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b61077f3384846117bc565b50600192915050565b600154600160a01b900460ff16156107e25760405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696e697469616c697a6564000000000000000000000000000000000060448201526064016105ff565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19909216919091179055565b600454600090600160a01b900460ff16156108825760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b61088d8484846118e0565b6001600160a01b0384166000908152600a60209081526040808320338452909152902054828110156109275760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016105ff565b61093b85336109368685611d6e565b6117bc565b506001949350505050565b6001546001600160a01b031633146109a05760405162461bcd60e51b815260206004820152601860248201527f436c61696d2066726f6d2077726f6e672061646472657373000000000000000060448201526064016105ff565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b03841617909155169055565b6000546001600160a01b03163314610a575760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016105ff565b610a5f610f03565b6005805490829055604051829082907f6ec6d062a87c4b42fe40885d2e8955d89ab9275e14d24354dd2b6b130043bba590600090a35050565b6001600160a01b038116600090815260096020526040812081610ab961176a565b600754610ac69190611d85565b905060008260010154655af3107a4000846000015484610ae69190611d9d565b610af09190611dbc565b610afa9190611d6e565b90508083600201548460000154610b119190611d85565b610b1b9190611d85565b95945050505050565b600454600160a01b900460ff1615610b7e5760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b610b86610f03565b60008211610bd65760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e6f7468696e6720746f206465706f736974000000000060448201526064016105ff565b6001600160a01b038116610be957600080fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000001e0e2e61f554ecaaec0cc933e739ad90f24a86d6001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c809190611cfc565b610ccc5760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a207472616e73666572206661696c6564000000000000000060448201526064016105ff565b6001600160a01b038116600090815260096020526040902060018101548154610cf490611b60565b610cfe9190611d6e565b816002016000828254610d119190611d85565b925050819055508260066000828254610d2a9190611d85565b9091555050805483908290600090610d43908490611d85565b90915550508054610d5390611b60565b60018201556040518381526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405183906001600160a01b038416907febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a90600090a3505050565b6003805461069690611d1e565b6000546001600160a01b03163314610e275760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016105ff565b6004805460ff600160a81b80830482161581027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9093169290921792839055604051919092049091161515907f6b37936355f1e7eb93bbf5afb0444c7f425f273ed40451377ff81e0332ea5e4390600090a2565b600454600090600160a01b900460ff1615610ef85760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b61077f3384846118e0565b600454600160a81b900460ff1680610f255750600454600160a01b900460ff16155b610f855760405162461bcd60e51b815260206004820152602b60248201527f5374616b696e673a20636f6e747261637420706175736564206f7220756e737460448201526a30b5b2903232b734b2b21760a91b60648201526084016105ff565b610f8d61176a565b60076000828254610f9e9190611d85565b909155505042600855565b600454600160a81b900460ff1680610fcb5750600454600160a01b900460ff16155b61102b5760405162461bcd60e51b815260206004820152602b60248201527f5374616b696e673a20636f6e747261637420706175736564206f7220756e737460448201526a30b5b2903232b734b2b21760a91b60648201526084016105ff565b611033610f03565b600081116110835760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e6f7468696e6720746f20756e7374616b65000000000060448201526064016105ff565b6001600160a01b03821661109657600080fd5b33600090815260096020526040902080548211156110f65760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a20496e73756666696369656e74207368617265000000000060448201526064016105ff565b6001810154815461110690611b60565b6111109190611d6e565b8160020160008282546111239190611d85565b92505081905550816006600082825461113c9190611d6e565b9091555050805482908290600090611155908490611d6e565b9091555050805461116590611b60565b600182015560405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490527f00000000000000000000000001e0e2e61f554ecaaec0cc933e739ad90f24a86d169063a9059cbb906044016020604051808303816000875af11580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd9190611cfc565b61126f5760405162461bcd60e51b815260206004820152602560248201527f5374616b696e673a204e6f7420656e6f75676820746f6b656e20746f2074726160448201527f6e7366657200000000000000000000000000000000000000000000000000000060648201526084016105ff565b6040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405182906001600160a01b038516907f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd90600090a3505050565b6000546001600160a01b031633146113315760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016105ff565b6004805460ff600160a01b808304821615810260ff60a01b199093169290921792839055604051919092049091161515907f9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f45930490600090a2565b600454600160a01b900460ff16156113e45760405162461bcd60e51b815260206004820152601960248201527f5374616b696e673a20636f6e7472616374207061757365642e0000000000000060448201526064016105ff565b6113ec610f03565b3360009081526009602052604090206003810154429061142d907f000000000000000000000000000000000000000000000000000000000001518090611d85565b11158061143c57506003810154155b6114ae5760405162461bcd60e51b815260206004820152602e60248201527f5374616b696e673a206c657373207468616e20323420686f7572732073696e6360448201527f65206c617374206861727665737400000000000000000000000000000000000060648201526084016105ff565b42600382015580546000906114c290611b60565b90508160010154816114d49190611d6e565b8260020160008282546114e79190611d85565b909155505060018201819055826115405760405162461bcd60e51b815260206004820152601b60248201527f5374616b696e673a204e6f7468696e6720746f2068617276657374000000000060448201526064016105ff565b81600201548311156115945760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a20496e73756666696369656e7420746f206861727665737460448201526064016105ff565b828260020160008282546115a89190611d6e565b909155505060405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000001e0e2e61f554ecaaec0cc933e739ad90f24a86d6001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e9190611cfc565b61168a5760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a207472616e73666572206661696c6564000000000000000060448201526064016105ff565b604051839033907fc9695243a805adb74c91f28311176c65b417e842d5699893cef56d18bfa48cba90600090a3505050565b6000546001600160a01b031633146117025760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016105ff565b600080546040516001600160a01b03808516939216917ffe468f2d56412c82d8634992af86bf1fe77006b5d9659cff6e01542a36362a6d91a36001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000806008544261177b9190611d6e565b905061178d6301e187e0612710611d9d565b655af3107a4000600554836117a29190611d9d565b6117ac9190611d9d565b6117b69190611dbc565b91505090565b6001600160a01b03831661181e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ff565b6001600160a01b03821661187f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ff565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6118e8610f03565b6001600160a01b0383166119645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105ff565b6001600160a01b0382166119c65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ff565b6001600160a01b03808416600090815260096020526040808220928516825290208154831115611a5e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016105ff565b60018201548254611a6e90611b60565b611a789190611d6e565b826002016000828254611a8b9190611d85565b9091555050815483908390600090611aa4908490611d6e565b90915550508154611ab490611b60565b6001808401919091558101548154611acb90611b60565b611ad59190611d6e565b816002016000828254611ae89190611d85565b9091555050805483908290600090611b01908490611d85565b90915550508054611b1190611b60565b60018201556040518381526001600160a01b0380861691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6000655af3107a400082600754611b779190611d9d565b611b819190611dbc565b92915050565b6001600160a01b0381168114611b9c57600080fd5b50565b600080600060608486031215611bb457600080fd5b8335611bbf81611b87565b92506020840135611bcf81611b87565b929592945050506040919091013590565b600060208083528351808285015260005b81811015611c0d57858101830151858201604001528201611bf1565b81811115611c1f576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c4857600080fd5b8235611c5381611b87565b946020939093013593505050565b600060208284031215611c7357600080fd5b8135611c7e81611b87565b9392505050565b60008060408385031215611c9857600080fd5b8235611ca381611b87565b91506020830135611cb381611b87565b809150509250929050565b600060208284031215611cd057600080fd5b5035919050565b60008060408385031215611cea57600080fd5b823591506020830135611cb381611b87565b600060208284031215611d0e57600080fd5b81518015158114611c7e57600080fd5b600181811c90821680611d3257607f821691505b602082108103611d5257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611d8057611d80611d58565b500390565b60008219821115611d9857611d98611d58565b500190565b6000816000190483118215151615611db757611db7611d58565b500290565b600082611dd957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220ceae707500c361d09564137e8bd12ffb6ca16ace6eb9c4f29f1294891143386664736f6c634300080e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000001e0e2e61f554ecaaec0cc933e739ad90f24a86d00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000008b80000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000000000c5374616b696e672047544f4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057347544f4e000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : token_ (address): 0x01e0E2e61f554eCAaeC0cC933E739Ad90f24a86d
Arg [1] : name_ (string): Staking GTON
Arg [2] : symbol_ (string): sGTON
Arg [3] : aprBasisPoints_ (uint256): 2232
Arg [4] : harvestInterval_ (uint256): 86400
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000001e0e2e61f554ecaaec0cc933e739ad90f24a86d
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 00000000000000000000000000000000000000000000000000000000000008b8
Arg [4] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [6] : 5374616b696e672047544f4e0000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 7347544f4e000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
OVERVIEW
Based on the cutting-edge achievements of Web 3.0 technology, GTON Capital is building an infrastructure to advance digital capital markets.Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.