Latest 25 from a total of 576 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Claim Rewards | 150335420 | 761 days ago | IN | 0 ETH | 0.00006118 | ||||
| Claim Rewards | 150334940 | 761 days ago | IN | 0 ETH | 0.00006189 | ||||
| Unstake | 149708119 | 763 days ago | IN | 0 ETH | 0.00007921 | ||||
| Unstake | 126482885 | 837 days ago | IN | 0 ETH | 0.0000285 | ||||
| Unstake | 126482834 | 837 days ago | IN | 0 ETH | 0.00004625 | ||||
| Unstake | 111153164 | 884 days ago | IN | 0 ETH | 0.00006405 | ||||
| Unstake | 105795574 | 900 days ago | IN | 0 ETH | 0.00004112 | ||||
| Unstake | 100441488 | 916 days ago | IN | 0 ETH | 0.00005381 | ||||
| Unstake | 92072184 | 941 days ago | IN | 0 ETH | 0.00006822 | ||||
| Unstake | 90820456 | 944 days ago | IN | 0 ETH | 0.00007272 | ||||
| Unstake | 88589420 | 951 days ago | IN | 0 ETH | 0.00012643 | ||||
| Unstake | 86227275 | 958 days ago | IN | 0 ETH | 0.00011815 | ||||
| Unstake | 80884015 | 974 days ago | IN | 0 ETH | 0.00004731 | ||||
| Unstake | 76274825 | 987 days ago | IN | 0 ETH | 0.00004516 | ||||
| Unstake | 75890728 | 988 days ago | IN | 0 ETH | 0.00004328 | ||||
| Unstake | 74664793 | 992 days ago | IN | 0 ETH | 0.00006289 | ||||
| Unstake | 74463416 | 992 days ago | IN | 0 ETH | 0.00004394 | ||||
| Unstake | 73286036 | 996 days ago | IN | 0 ETH | 0.00004906 | ||||
| Unstake | 73040443 | 997 days ago | IN | 0 ETH | 0.00003592 | ||||
| Unstake | 72988176 | 997 days ago | IN | 0 ETH | 0.00004388 | ||||
| Unstake | 72856927 | 997 days ago | IN | 0 ETH | 0.00178039 | ||||
| Unstake | 71837814 | 1000 days ago | IN | 0 ETH | 0.0000538 | ||||
| Unstake | 71581899 | 1001 days ago | IN | 0 ETH | 0.00004227 | ||||
| Unstake | 71545489 | 1001 days ago | IN | 0 ETH | 0.00006543 | ||||
| Unstake | 70942571 | 1003 days ago | IN | 0 ETH | 0.00004582 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH | ||||
| 72076082 | 999 days ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PlutusEpochStaking
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;
import '@openzeppelin/contracts/access/Ownable.sol';
import '@openzeppelin/contracts/security/Pausable.sol';
import '@openzeppelin/contracts/token/ERC20/IERC20.sol';
import './interfaces/IStakingRewards.sol';
import './interfaces/IEpochStaking.sol';
import './interfaces/IWhitelist.sol';
contract PlutusEpochStaking is IEpochStaking, Ownable, Pausable {
IERC20 public immutable pls;
uint32 public immutable lockDuration;
struct StakedDetails {
uint112 amount;
uint32 lastCheckpoint;
}
struct EpochCheckpoint {
uint32 startedAt;
uint32 endedAt;
uint112 totalStaked;
}
address public operator;
IStakingRewards public stakingRewards;
IWhitelist public whitelist;
bool public stakingWindowOpen;
uint112 public currentTotalStaked;
uint32 public currentEpochStartedAt;
uint32 public currentEpoch;
mapping(address => StakedDetails) public stakedDetails;
mapping(uint32 => EpochCheckpoint) public epochCheckpoints;
mapping(address => mapping(uint32 => uint112)) public stakedCheckpoints;
constructor(
address _pls,
address _operator,
address _governance,
uint32 _lockDuration
) {
operator = _operator;
lockDuration = _lockDuration;
pls = IERC20(_pls);
_pause();
transferOwnership(_governance);
}
function stake(uint112 _amt) external onlyEligibleSender whenNotPaused whenStakingOpen {
_stake(_amt, msg.sender);
}
function unstake() external onlyEligibleSender whenNotPaused whenStakingOpen {
_unstake(msg.sender, msg.sender);
}
function claimRewards(uint32 _epoch) external onlyEligibleSender whenNotPaused {
_claimRewards(_epoch, msg.sender, msg.sender);
}
/** MODIFIERS */
modifier whenStakingOpen() {
require(stakingWindowOpen, '!Open');
_;
}
modifier onlyEligibleSender() {
require(msg.sender == tx.origin || whitelist.isWhitelisted(msg.sender), '!Eligible');
_;
}
modifier onlyOwnerOrOperator() {
require(msg.sender == operator || msg.sender == owner(), '!Unauthorized');
_;
}
/** INTERNAL */
function _stake(uint112 _amt, address _user) internal {
require(_amt > 0, '<0');
StakedDetails storage _staked = stakedDetails[_user];
if (_staked.lastCheckpoint != currentEpoch) {
// Checkpoint previous epochs
for (uint32 i = _staked.lastCheckpoint; i < currentEpoch; i++) {
stakedCheckpoints[_user][i] = _staked.amount;
}
_staked.lastCheckpoint = currentEpoch;
}
_staked.amount += _amt;
currentTotalStaked += _amt;
pls.transferFrom(_user, address(this), _amt);
emit Staked(_user, _amt, currentEpoch);
}
function _unstake(address _user, address _to) internal {
require(lockDuration == 0 || currentEpoch > lockDuration - 1, 'Locked');
StakedDetails storage _staked = stakedDetails[_user];
uint112 deposited = _staked.amount;
require(deposited > 0, '!Staked');
if (_staked.lastCheckpoint != currentEpoch) {
// Checkpoint previous epochs
for (uint32 i = _staked.lastCheckpoint; i < currentEpoch; i++) {
stakedCheckpoints[_user][i] = deposited;
}
_staked.lastCheckpoint = currentEpoch;
}
_staked.amount = 0;
currentTotalStaked -= deposited;
pls.transfer(_to, deposited);
emit Unstaked(_user, deposited, currentEpoch);
}
function _claimRewards(
uint32 _epoch,
address _user,
address _to
) internal {
uint32 _currentEpoch = currentEpoch;
require(_epoch < _currentEpoch, 'Epoch !Ended');
StakedDetails storage _staked = stakedDetails[_user];
if (_staked.lastCheckpoint != _currentEpoch) {
// Checkpoint previous epochs
for (uint32 i = _staked.lastCheckpoint; i < _currentEpoch; i++) {
stakedCheckpoints[_user][i] = _staked.amount;
}
_staked.lastCheckpoint = _currentEpoch;
}
stakingRewards.claimRewardsFor(_epoch, _currentEpoch, _user, _to);
emit ClaimedRewards(_user, _epoch);
}
/** OPERATOR FUNCTIONS */
function stakeFor(uint112 _amt, address _user) external onlyOwnerOrOperator {
_stake(_amt, _user);
}
function unstakeFor(address _user, address _to) external onlyOwnerOrOperator {
_unstake(_user, _to);
}
function claimRewardsFor(
uint32 _epoch,
address _user,
address _to
) external onlyOwnerOrOperator {
_claimRewards(_epoch, _user, _to);
}
function advanceEpoch() external onlyOwnerOrOperator {
epochCheckpoints[currentEpoch] = EpochCheckpoint({
startedAt: currentEpochStartedAt,
endedAt: uint32(block.timestamp),
totalStaked: currentTotalStaked
});
currentEpoch += 1;
currentEpochStartedAt = uint32(block.timestamp);
if (lockDuration == 0 || currentEpoch > lockDuration - 1) {
openStakingWindow();
}
emit AdvanceEpoch();
}
function setCurrentEpochStart(uint32 _timestamp) public onlyOwnerOrOperator {
currentEpochStartedAt = _timestamp;
}
function init() external onlyOwnerOrOperator {
setCurrentEpochStart(uint32(block.timestamp));
_unpause();
openStakingWindow();
}
function closeStakingWindow() public onlyOwnerOrOperator {
stakingWindowOpen = false;
}
function openStakingWindow() public onlyOwnerOrOperator {
stakingWindowOpen = true;
}
function setWhitelist(address _whitelist) external onlyOwnerOrOperator {
whitelist = IWhitelist(_whitelist);
}
function pause() external onlyOwnerOrOperator {
_pause();
}
function unpause() external onlyOwnerOrOperator {
_unpause();
}
/** GOVERNANCE FUNCTIONS */
function setOperator(address _operator) public onlyOwner {
address _old = operator;
operator = _operator;
emit OperatorChange(_operator, _old);
}
function setRewards(address _stakingRewards) public onlyOwner {
stakingRewards = IStakingRewards(_stakingRewards);
}
event AdvanceEpoch();
event OperatorChange(address indexed _to, address indexed _from);
event Staked(address indexed _from, uint112 _amt, uint32 _epoch);
event Unstaked(address indexed _from, uint112 _amt, uint32 _epoch);
event ClaimedRewards(address indexed _user, uint32 _epoch);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which allows children to implement an emergency stop
* mechanism that can be triggered by an authorized account.
*
* This module is used through inheritance. It will make available the
* modifiers `whenNotPaused` and `whenPaused`, which can be applied to
* the functions of your contract. Note that they will not be pausable by
* simply including this module, only once the modifiers are put in place.
*/
abstract contract Pausable is Context {
/**
* @dev Emitted when the pause is triggered by `account`.
*/
event Paused(address account);
/**
* @dev Emitted when the pause is lifted by `account`.
*/
event Unpaused(address account);
bool private _paused;
/**
* @dev Initializes the contract in unpaused state.
*/
constructor() {
_paused = false;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view virtual returns (bool) {
return _paused;
}
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*
* Requirements:
*
* - The contract must not be paused.
*/
modifier whenNotPaused() {
require(!paused(), "Pausable: paused");
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*
* Requirements:
*
* - The contract must be paused.
*/
modifier whenPaused() {
require(paused(), "Pausable: not paused");
_;
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}// 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
pragma solidity 0.8.9;
interface IStakingRewards {
function claimRewardsFor(
uint32,
uint32,
address,
address
) external;
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;
interface IEpochStaking {
function currentEpoch() external view returns (uint32);
function epochCheckpoints(uint32)
external
view
returns (
uint32,
uint32,
uint112
);
function stakedCheckpoints(address, uint32) external view returns (uint112);
function advanceEpoch() external;
function init() external;
function setWhitelist(address) external;
function pause() external;
function unpause() external;
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;
interface IWhitelist {
function isWhitelisted(address) external view returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}{
"optimizer": {
"enabled": true,
"runs": 1000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_pls","type":"address"},{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_governance","type":"address"},{"internalType":"uint32","name":"_lockDuration","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"AdvanceEpoch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint32","name":"_epoch","type":"uint32"}],"name":"ClaimedRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"}],"name":"OperatorChange","type":"event"},{"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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint112","name":"_amt","type":"uint112"},{"indexed":false,"internalType":"uint32","name":"_epoch","type":"uint32"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint112","name":"_amt","type":"uint112"},{"indexed":false,"internalType":"uint32","name":"_epoch","type":"uint32"}],"name":"Unstaked","type":"event"},{"inputs":[],"name":"advanceEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_epoch","type":"uint32"}],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_epoch","type":"uint32"},{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"claimRewardsFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeStakingWindow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpochStartedAt","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTotalStaked","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"epochCheckpoints","outputs":[{"internalType":"uint32","name":"startedAt","type":"uint32"},{"internalType":"uint32","name":"endedAt","type":"uint32"},{"internalType":"uint112","name":"totalStaked","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openStakingWindow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operator","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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pls","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_timestamp","type":"uint32"}],"name":"setCurrentEpochStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakingRewards","type":"address"}],"name":"setRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint112","name":"_amt","type":"uint112"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint112","name":"_amt","type":"uint112"},{"internalType":"address","name":"_user","type":"address"}],"name":"stakeFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"stakedCheckpoints","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakedDetails","outputs":[{"internalType":"uint112","name":"amount","type":"uint112"},{"internalType":"uint32","name":"lastCheckpoint","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingRewards","outputs":[{"internalType":"contract IStakingRewards","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingWindowOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"unstakeFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelist","outputs":[{"internalType":"contract IWhitelist","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60c06040523480156200001157600080fd5b506040516200220f3803806200220f83398101604081905262000034916200028b565b6200003f336200009a565b6000805460ff60a01b19169055600180546001600160a01b0319166001600160a01b038581169190911790915563ffffffff821660a052841660805262000085620000ea565b62000090826200019d565b50505050620002f2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620000fe600054600160a01b900460ff1690565b15620001445760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064015b60405180910390fd5b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620001803390565b6040516001600160a01b03909116815260200160405180910390a1565b6000546001600160a01b03163314620001f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200013b565b6001600160a01b038116620002605760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200013b565b6200026b816200009a565b50565b80516001600160a01b03811681146200028657600080fd5b919050565b60008060008060808587031215620002a257600080fd5b620002ad856200026e565b9350620002bd602086016200026e565b9250620002cd604086016200026e565b9150606085015163ffffffff81168114620002e757600080fd5b939692955090935050565b60805160a051611ecd620003426000396000818161020e01528181610979015281816109ae0152818161152b015261155901526000818161025701528181611443015261177a0152611ecd6000f3fe608060405234801561001057600080fd5b50600436106101ef5760003560e01c8063715018a61161010f578063b3ab15fb116100a2578063ec38a86211610071578063ec38a86214610503578063f0cb3ebf14610516578063f2fde38b14610529578063fb22f5581461053c57600080fd5b8063b3ab15fb146104c9578063d0841f22146104dc578063de4c7361146104f3578063e1c7392a146104fb57600080fd5b80638456cb59116100de5780638456cb591461048a578063854cff2f146104925780638da5cb5b146104a557806393e59dc1146104b657600080fd5b8063715018a6146103fc57806376671808146104045780637b7ce6511461041b5780637e35df0d1461047757600080fd5b80633f4ba83a1161018757806364b87a701161015657806364b87a70146103af57806366a47cfc146103c25780636f47999b146103d65780637072a0a2146103e957600080fd5b80633f4ba83a14610300578063446b0d3414610308578063570ca7351461037e5780635c975abb1461039157600080fd5b80632d0a482d116101c35780632d0a482d146102915780632def6620146102a457806338c62151146102ac5780633cf80e6c146102f857600080fd5b80626082d0146101f457806304554443146102095780630c2d44521461024a578063223e5a9d14610252575b600080fd5b610207610202366004611c6b565b61054f565b005b6102307f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020015b60405180910390f35b6102076105c1565b6102797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610241565b61020761029f366004611cb2565b61062f565b6102076106b4565b6102e06102ba366004611cd4565b60076020908152600092835260408084209091529082529020546001600160701b031681565b6040516001600160701b039091168152602001610241565b61020761080a565b610207610a22565b610352610316366004611cb2565b60066020526000908152604090205463ffffffff808216916401000000008104909116906801000000000000000090046001600160701b031683565b6040805163ffffffff94851681529390921660208401526001600160701b031690820152606001610241565b600154610279906001600160a01b031681565b600054600160a01b900460ff165b6040519015158152602001610241565b600254610279906001600160a01b031681565b60035461039f90600160a01b900460ff1681565b6102076103e4366004611cb2565b610a89565b6004546102e0906001600160701b031681565b610207610ba0565b60045461023090600160901b900463ffffffff1681565b610453610429366004611cfe565b6005602052600090815260409020546001600160701b03811690600160701b900463ffffffff1682565b604080516001600160701b03909316835263ffffffff909116602083015201610241565b610207610485366004611d19565b610c04565b610207610c6d565b6102076104a0366004611cfe565b610cd4565b6000546001600160a01b0316610279565b600354610279906001600160a01b031681565b6102076104d7366004611cfe565b610d62565b60045461023090600160701b900463ffffffff1681565b610207610e1a565b610207610e8e565b610207610511366004611cfe565b610f06565b610207610524366004611d35565b610f8f565b610207610537366004611cfe565b6110e3565b61020761054a366004611d50565b6111c2565b6001546001600160a01b031633148061057257506000546001600160a01b031633145b6105b35760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064015b60405180910390fd5b6105bd8282611231565b5050565b6001546001600160a01b03163314806105e457506000546001600160a01b031633145b6106205760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6003805460ff60a01b19169055565b6001546001600160a01b031633148061065257506000546001600160a01b031633145b61068e5760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6004805463ffffffff909216600160701b0263ffffffff60701b19909216919091179055565b333214806107385750600354604051633af32abf60e01b81523360048201526001600160a01b0390911690633af32abf9060240160206040518083038186803b15801561070057600080fd5b505afa158015610714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107389190611d93565b6107705760405162461bcd60e51b815260206004820152600960248201526821456c696769626c6560b81b60448201526064016105aa565b600054600160a01b900460ff16156107bd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b600354600160a01b900460ff166107fe5760405162461bcd60e51b815260206004820152600560248201526410a7b832b760d91b60448201526064016105aa565b6108083333611524565b565b6001546001600160a01b031633148061082d57506000546001600160a01b031633145b6108695760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b604080516060810182526004805463ffffffff600160701b82048116845242811660208086019182526001600160701b03808516878901908152600160901b9586900485166000908152600690935297909120955186549251975190911668010000000000000000027fffffffffffffffffffff0000000000000000000000000000ffffffffffffffff9784166401000000000267ffffffffffffffff199093169184169190911791909117959095169490941790925580546001939192601292610938928692900416611de4565b92506101000a81548163ffffffff021916908363ffffffff160217905550426004600e6101000a81548163ffffffff021916908363ffffffff1602179055507f000000000000000000000000000000000000000000000000000000000000000063ffffffff16600014806109ea57506109d260017f0000000000000000000000000000000000000000000000000000000000000000611e0c565b60045463ffffffff918216600160901b909104909116115b156109f7576109f7610e1a565b6040517f9ba42e383d214226be3a8651fa957931c65c1cd55e4f387ada44b1b2d582fbe790600090a1565b6001546001600160a01b0316331480610a4557506000546001600160a01b031633145b610a815760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b610808611898565b33321480610b0d5750600354604051633af32abf60e01b81523360048201526001600160a01b0390911690633af32abf9060240160206040518083038186803b158015610ad557600080fd5b505afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d9190611d93565b610b455760405162461bcd60e51b815260206004820152600960248201526821456c696769626c6560b81b60448201526064016105aa565b600054600160a01b900460ff1615610b925760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b610b9d81333361193e565b50565b6000546001600160a01b03163314610bfa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105aa565b6108086000611b53565b6001546001600160a01b0316331480610c2757506000546001600160a01b031633145b610c635760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6105bd8282611524565b6001546001600160a01b0316331480610c9057506000546001600160a01b031633145b610ccc5760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b610808611bb0565b6001546001600160a01b0316331480610cf757506000546001600160a01b031633145b610d335760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610dbc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105aa565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff198316811790935560405191169182917febbc9544ca05fe22e26b11a600a10c9f1a467bc96b2f32d6319f8ced339d734590600090a35050565b6001546001600160a01b0316331480610e3d57506000546001600160a01b031633145b610e795760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6003805460ff60a01b1916600160a01b179055565b6001546001600160a01b0316331480610eb157506000546001600160a01b031633145b610eed5760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b610ef64261062f565b610efe611898565b610808610e1a565b6000546001600160a01b03163314610f605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105aa565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b333214806110135750600354604051633af32abf60e01b81523360048201526001600160a01b0390911690633af32abf9060240160206040518083038186803b158015610fdb57600080fd5b505afa158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110139190611d93565b61104b5760405162461bcd60e51b815260206004820152600960248201526821456c696769626c6560b81b60448201526064016105aa565b600054600160a01b900460ff16156110985760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b600354600160a01b900460ff166110d95760405162461bcd60e51b815260206004820152600560248201526410a7b832b760d91b60448201526064016105aa565b610b9d8133611231565b6000546001600160a01b0316331461113d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105aa565b6001600160a01b0381166111b95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105aa565b610b9d81611b53565b6001546001600160a01b03163314806111e557506000546001600160a01b031633145b6112215760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b61122c83838361193e565b505050565b6000826001600160701b03161161128a5760405162461bcd60e51b815260206004820152600260248201527f3c3000000000000000000000000000000000000000000000000000000000000060448201526064016105aa565b6001600160a01b03811660009081526005602052604090206004548154600160701b900463ffffffff908116600160901b9092041614611378578054600160701b900463ffffffff165b60045463ffffffff600160901b909104811690821610156113505781546001600160a01b038416600090815260076020908152604080832063ffffffff86168452909152902080546dffffffffffffffffffffffffffff19166001600160701b039092169190911790558061134881611e31565b9150506112d4565b50600454815463ffffffff60701b1916600160901b90910463ffffffff16600160701b021781555b8054839082906000906113959084906001600160701b0316611e55565b92506101000a8154816001600160701b0302191690836001600160701b0316021790555082600460008282829054906101000a90046001600160701b03166113dd9190611e55565b82546101009290920a6001600160701b038181021990931691831602179091556040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015230602483015291861660448201527f000000000000000000000000000000000000000000000000000000000000000090911691506323b872dd90606401602060405180830381600087803b15801561148a57600080fd5b505af115801561149e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c29190611d93565b50600454604080516001600160701b0386168152600160901b90920463ffffffff1660208301526001600160a01b038416917f4e523802e939bc399544c3917ac8678692b8765f4837c202054fcb1501a36e8b910160405180910390a2505050565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000161580611595575061157d60017f0000000000000000000000000000000000000000000000000000000000000000611e0c565b60045463ffffffff918216600160901b909104909116115b6115e15760405162461bcd60e51b815260206004820152600660248201527f4c6f636b6564000000000000000000000000000000000000000000000000000060448201526064016105aa565b6001600160a01b038216600090815260056020526040902080546001600160701b0316806116515760405162461bcd60e51b815260206004820152600760248201527f215374616b65640000000000000000000000000000000000000000000000000060448201526064016105aa565b6004548254600160701b900463ffffffff908116600160901b9092041614611721578154600160701b900463ffffffff165b60045463ffffffff600160901b909104811690821610156116f9576001600160a01b038516600090815260076020908152604080832063ffffffff85168452909152902080546dffffffffffffffffffffffffffff19166001600160701b038416179055806116f181611e31565b915050611683565b50600454825463ffffffff60701b1916600160901b90910463ffffffff16600160701b021782555b81546dffffffffffffffffffffffffffff19168255600480548291906000906117549084906001600160701b0316611e77565b92506101000a8154816001600160701b0302191690836001600160701b031602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb84836040518363ffffffff1660e01b81526004016117e39291906001600160a01b039290921682526001600160701b0316602082015260400190565b602060405180830381600087803b1580156117fd57600080fd5b505af1158015611811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118359190611d93565b50600454604080516001600160701b0384168152600160901b90920463ffffffff1660208301526001600160a01b038616917fe4ee96915eb593a3e106faa6abf95713e9b55a382ca8f6867953d235fc37172d910160405180910390a250505050565b600054600160a01b900460ff166118f15760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105aa565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60045463ffffffff600160901b909104811690841681116119a15760405162461bcd60e51b815260206004820152600c60248201527f45706f63682021456e646564000000000000000000000000000000000000000060448201526064016105aa565b6001600160a01b0383166000908152600560205260409020805463ffffffff838116600160701b9092041614611a74578054600160701b900463ffffffff165b8263ffffffff168163ffffffff161015611a565781546001600160a01b038616600090815260076020908152604080832063ffffffff86168452909152902080546dffffffffffffffffffffffffffff19166001600160701b0390921691909117905580611a4e81611e31565b9150506119e1565b50805463ffffffff60701b1916600160701b63ffffffff8416021781555b6002546040517f2a0b052100000000000000000000000000000000000000000000000000000000815263ffffffff8088166004830152841660248201526001600160a01b038681166044830152858116606483015290911690632a0b052190608401600060405180830381600087803b158015611af057600080fd5b505af1158015611b04573d6000803e3d6000fd5b505060405163ffffffff881681526001600160a01b03871692507fe4a429f49ef601d7e35e0d43c1bc9589b44874bba67b84d27f655cd65c5b4d80915060200160405180910390a25050505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff1615611bfd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119213390565b80356001600160701b0381168114611c4f57600080fd5b919050565b80356001600160a01b0381168114611c4f57600080fd5b60008060408385031215611c7e57600080fd5b611c8783611c38565b9150611c9560208401611c54565b90509250929050565b803563ffffffff81168114611c4f57600080fd5b600060208284031215611cc457600080fd5b611ccd82611c9e565b9392505050565b60008060408385031215611ce757600080fd5b611cf083611c54565b9150611c9560208401611c9e565b600060208284031215611d1057600080fd5b611ccd82611c54565b60008060408385031215611d2c57600080fd5b611c8783611c54565b600060208284031215611d4757600080fd5b611ccd82611c38565b600080600060608486031215611d6557600080fd5b611d6e84611c9e565b9250611d7c60208501611c54565b9150611d8a60408501611c54565b90509250925092565b600060208284031215611da557600080fd5b81518015158114611ccd57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff808316818516808303821115611e0357611e03611db5565b01949350505050565b600063ffffffff83811690831681811015611e2957611e29611db5565b039392505050565b600063ffffffff80831681811415611e4b57611e4b611db5565b6001019392505050565b60006001600160701b03808316818516808303821115611e0357611e03611db5565b60006001600160701b0383811690831681811015611e2957611e29611db556fea2646970667358221220b6b831a2516952adc22b064e460bc75bd86602d15ea1e12a3a34d9c259c4a09b64736f6c6343000809003300000000000000000000000051318b7d00db7acc4026c88c3952b66278b6a67f000000000000000000000000cacf98a9235bb33dfa0e7e6a7000a937c2e6c9ba000000000000000000000000a5c1c5a67ba16430547fea9d608ef81119be18760000000000000000000000000000000000000000000000000000000000000006
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101ef5760003560e01c8063715018a61161010f578063b3ab15fb116100a2578063ec38a86211610071578063ec38a86214610503578063f0cb3ebf14610516578063f2fde38b14610529578063fb22f5581461053c57600080fd5b8063b3ab15fb146104c9578063d0841f22146104dc578063de4c7361146104f3578063e1c7392a146104fb57600080fd5b80638456cb59116100de5780638456cb591461048a578063854cff2f146104925780638da5cb5b146104a557806393e59dc1146104b657600080fd5b8063715018a6146103fc57806376671808146104045780637b7ce6511461041b5780637e35df0d1461047757600080fd5b80633f4ba83a1161018757806364b87a701161015657806364b87a70146103af57806366a47cfc146103c25780636f47999b146103d65780637072a0a2146103e957600080fd5b80633f4ba83a14610300578063446b0d3414610308578063570ca7351461037e5780635c975abb1461039157600080fd5b80632d0a482d116101c35780632d0a482d146102915780632def6620146102a457806338c62151146102ac5780633cf80e6c146102f857600080fd5b80626082d0146101f457806304554443146102095780630c2d44521461024a578063223e5a9d14610252575b600080fd5b610207610202366004611c6b565b61054f565b005b6102307f000000000000000000000000000000000000000000000000000000000000000681565b60405163ffffffff90911681526020015b60405180910390f35b6102076105c1565b6102797f00000000000000000000000051318b7d00db7acc4026c88c3952b66278b6a67f81565b6040516001600160a01b039091168152602001610241565b61020761029f366004611cb2565b61062f565b6102076106b4565b6102e06102ba366004611cd4565b60076020908152600092835260408084209091529082529020546001600160701b031681565b6040516001600160701b039091168152602001610241565b61020761080a565b610207610a22565b610352610316366004611cb2565b60066020526000908152604090205463ffffffff808216916401000000008104909116906801000000000000000090046001600160701b031683565b6040805163ffffffff94851681529390921660208401526001600160701b031690820152606001610241565b600154610279906001600160a01b031681565b600054600160a01b900460ff165b6040519015158152602001610241565b600254610279906001600160a01b031681565b60035461039f90600160a01b900460ff1681565b6102076103e4366004611cb2565b610a89565b6004546102e0906001600160701b031681565b610207610ba0565b60045461023090600160901b900463ffffffff1681565b610453610429366004611cfe565b6005602052600090815260409020546001600160701b03811690600160701b900463ffffffff1682565b604080516001600160701b03909316835263ffffffff909116602083015201610241565b610207610485366004611d19565b610c04565b610207610c6d565b6102076104a0366004611cfe565b610cd4565b6000546001600160a01b0316610279565b600354610279906001600160a01b031681565b6102076104d7366004611cfe565b610d62565b60045461023090600160701b900463ffffffff1681565b610207610e1a565b610207610e8e565b610207610511366004611cfe565b610f06565b610207610524366004611d35565b610f8f565b610207610537366004611cfe565b6110e3565b61020761054a366004611d50565b6111c2565b6001546001600160a01b031633148061057257506000546001600160a01b031633145b6105b35760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064015b60405180910390fd5b6105bd8282611231565b5050565b6001546001600160a01b03163314806105e457506000546001600160a01b031633145b6106205760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6003805460ff60a01b19169055565b6001546001600160a01b031633148061065257506000546001600160a01b031633145b61068e5760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6004805463ffffffff909216600160701b0263ffffffff60701b19909216919091179055565b333214806107385750600354604051633af32abf60e01b81523360048201526001600160a01b0390911690633af32abf9060240160206040518083038186803b15801561070057600080fd5b505afa158015610714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107389190611d93565b6107705760405162461bcd60e51b815260206004820152600960248201526821456c696769626c6560b81b60448201526064016105aa565b600054600160a01b900460ff16156107bd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b600354600160a01b900460ff166107fe5760405162461bcd60e51b815260206004820152600560248201526410a7b832b760d91b60448201526064016105aa565b6108083333611524565b565b6001546001600160a01b031633148061082d57506000546001600160a01b031633145b6108695760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b604080516060810182526004805463ffffffff600160701b82048116845242811660208086019182526001600160701b03808516878901908152600160901b9586900485166000908152600690935297909120955186549251975190911668010000000000000000027fffffffffffffffffffff0000000000000000000000000000ffffffffffffffff9784166401000000000267ffffffffffffffff199093169184169190911791909117959095169490941790925580546001939192601292610938928692900416611de4565b92506101000a81548163ffffffff021916908363ffffffff160217905550426004600e6101000a81548163ffffffff021916908363ffffffff1602179055507f000000000000000000000000000000000000000000000000000000000000000663ffffffff16600014806109ea57506109d260017f0000000000000000000000000000000000000000000000000000000000000006611e0c565b60045463ffffffff918216600160901b909104909116115b156109f7576109f7610e1a565b6040517f9ba42e383d214226be3a8651fa957931c65c1cd55e4f387ada44b1b2d582fbe790600090a1565b6001546001600160a01b0316331480610a4557506000546001600160a01b031633145b610a815760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b610808611898565b33321480610b0d5750600354604051633af32abf60e01b81523360048201526001600160a01b0390911690633af32abf9060240160206040518083038186803b158015610ad557600080fd5b505afa158015610ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d9190611d93565b610b455760405162461bcd60e51b815260206004820152600960248201526821456c696769626c6560b81b60448201526064016105aa565b600054600160a01b900460ff1615610b925760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b610b9d81333361193e565b50565b6000546001600160a01b03163314610bfa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105aa565b6108086000611b53565b6001546001600160a01b0316331480610c2757506000546001600160a01b031633145b610c635760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6105bd8282611524565b6001546001600160a01b0316331480610c9057506000546001600160a01b031633145b610ccc5760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b610808611bb0565b6001546001600160a01b0316331480610cf757506000546001600160a01b031633145b610d335760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610dbc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105aa565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff198316811790935560405191169182917febbc9544ca05fe22e26b11a600a10c9f1a467bc96b2f32d6319f8ced339d734590600090a35050565b6001546001600160a01b0316331480610e3d57506000546001600160a01b031633145b610e795760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b6003805460ff60a01b1916600160a01b179055565b6001546001600160a01b0316331480610eb157506000546001600160a01b031633145b610eed5760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b610ef64261062f565b610efe611898565b610808610e1a565b6000546001600160a01b03163314610f605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105aa565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b333214806110135750600354604051633af32abf60e01b81523360048201526001600160a01b0390911690633af32abf9060240160206040518083038186803b158015610fdb57600080fd5b505afa158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110139190611d93565b61104b5760405162461bcd60e51b815260206004820152600960248201526821456c696769626c6560b81b60448201526064016105aa565b600054600160a01b900460ff16156110985760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b600354600160a01b900460ff166110d95760405162461bcd60e51b815260206004820152600560248201526410a7b832b760d91b60448201526064016105aa565b610b9d8133611231565b6000546001600160a01b0316331461113d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105aa565b6001600160a01b0381166111b95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105aa565b610b9d81611b53565b6001546001600160a01b03163314806111e557506000546001600160a01b031633145b6112215760405162461bcd60e51b815260206004820152600d60248201526c08555b985d5d1a1bdc9a5e9959609a1b60448201526064016105aa565b61122c83838361193e565b505050565b6000826001600160701b03161161128a5760405162461bcd60e51b815260206004820152600260248201527f3c3000000000000000000000000000000000000000000000000000000000000060448201526064016105aa565b6001600160a01b03811660009081526005602052604090206004548154600160701b900463ffffffff908116600160901b9092041614611378578054600160701b900463ffffffff165b60045463ffffffff600160901b909104811690821610156113505781546001600160a01b038416600090815260076020908152604080832063ffffffff86168452909152902080546dffffffffffffffffffffffffffff19166001600160701b039092169190911790558061134881611e31565b9150506112d4565b50600454815463ffffffff60701b1916600160901b90910463ffffffff16600160701b021781555b8054839082906000906113959084906001600160701b0316611e55565b92506101000a8154816001600160701b0302191690836001600160701b0316021790555082600460008282829054906101000a90046001600160701b03166113dd9190611e55565b82546101009290920a6001600160701b038181021990931691831602179091556040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015230602483015291861660448201527f00000000000000000000000051318b7d00db7acc4026c88c3952b66278b6a67f90911691506323b872dd90606401602060405180830381600087803b15801561148a57600080fd5b505af115801561149e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c29190611d93565b50600454604080516001600160701b0386168152600160901b90920463ffffffff1660208301526001600160a01b038416917f4e523802e939bc399544c3917ac8678692b8765f4837c202054fcb1501a36e8b910160405180910390a2505050565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000006161580611595575061157d60017f0000000000000000000000000000000000000000000000000000000000000006611e0c565b60045463ffffffff918216600160901b909104909116115b6115e15760405162461bcd60e51b815260206004820152600660248201527f4c6f636b6564000000000000000000000000000000000000000000000000000060448201526064016105aa565b6001600160a01b038216600090815260056020526040902080546001600160701b0316806116515760405162461bcd60e51b815260206004820152600760248201527f215374616b65640000000000000000000000000000000000000000000000000060448201526064016105aa565b6004548254600160701b900463ffffffff908116600160901b9092041614611721578154600160701b900463ffffffff165b60045463ffffffff600160901b909104811690821610156116f9576001600160a01b038516600090815260076020908152604080832063ffffffff85168452909152902080546dffffffffffffffffffffffffffff19166001600160701b038416179055806116f181611e31565b915050611683565b50600454825463ffffffff60701b1916600160901b90910463ffffffff16600160701b021782555b81546dffffffffffffffffffffffffffff19168255600480548291906000906117549084906001600160701b0316611e77565b92506101000a8154816001600160701b0302191690836001600160701b031602179055507f00000000000000000000000051318b7d00db7acc4026c88c3952b66278b6a67f6001600160a01b031663a9059cbb84836040518363ffffffff1660e01b81526004016117e39291906001600160a01b039290921682526001600160701b0316602082015260400190565b602060405180830381600087803b1580156117fd57600080fd5b505af1158015611811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118359190611d93565b50600454604080516001600160701b0384168152600160901b90920463ffffffff1660208301526001600160a01b038616917fe4ee96915eb593a3e106faa6abf95713e9b55a382ca8f6867953d235fc37172d910160405180910390a250505050565b600054600160a01b900460ff166118f15760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105aa565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60045463ffffffff600160901b909104811690841681116119a15760405162461bcd60e51b815260206004820152600c60248201527f45706f63682021456e646564000000000000000000000000000000000000000060448201526064016105aa565b6001600160a01b0383166000908152600560205260409020805463ffffffff838116600160701b9092041614611a74578054600160701b900463ffffffff165b8263ffffffff168163ffffffff161015611a565781546001600160a01b038616600090815260076020908152604080832063ffffffff86168452909152902080546dffffffffffffffffffffffffffff19166001600160701b0390921691909117905580611a4e81611e31565b9150506119e1565b50805463ffffffff60701b1916600160701b63ffffffff8416021781555b6002546040517f2a0b052100000000000000000000000000000000000000000000000000000000815263ffffffff8088166004830152841660248201526001600160a01b038681166044830152858116606483015290911690632a0b052190608401600060405180830381600087803b158015611af057600080fd5b505af1158015611b04573d6000803e3d6000fd5b505060405163ffffffff881681526001600160a01b03871692507fe4a429f49ef601d7e35e0d43c1bc9589b44874bba67b84d27f655cd65c5b4d80915060200160405180910390a25050505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff1615611bfd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105aa565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119213390565b80356001600160701b0381168114611c4f57600080fd5b919050565b80356001600160a01b0381168114611c4f57600080fd5b60008060408385031215611c7e57600080fd5b611c8783611c38565b9150611c9560208401611c54565b90509250929050565b803563ffffffff81168114611c4f57600080fd5b600060208284031215611cc457600080fd5b611ccd82611c9e565b9392505050565b60008060408385031215611ce757600080fd5b611cf083611c54565b9150611c9560208401611c9e565b600060208284031215611d1057600080fd5b611ccd82611c54565b60008060408385031215611d2c57600080fd5b611c8783611c54565b600060208284031215611d4757600080fd5b611ccd82611c38565b600080600060608486031215611d6557600080fd5b611d6e84611c9e565b9250611d7c60208501611c54565b9150611d8a60408501611c54565b90509250925092565b600060208284031215611da557600080fd5b81518015158114611ccd57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff808316818516808303821115611e0357611e03611db5565b01949350505050565b600063ffffffff83811690831681811015611e2957611e29611db5565b039392505050565b600063ffffffff80831681811415611e4b57611e4b611db5565b6001019392505050565b60006001600160701b03808316818516808303821115611e0357611e03611db5565b60006001600160701b0383811690831681811015611e2957611e29611db556fea2646970667358221220b6b831a2516952adc22b064e460bc75bd86602d15ea1e12a3a34d9c259c4a09b64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000051318b7d00db7acc4026c88c3952b66278b6a67f000000000000000000000000cacf98a9235bb33dfa0e7e6a7000a937c2e6c9ba000000000000000000000000a5c1c5a67ba16430547fea9d608ef81119be18760000000000000000000000000000000000000000000000000000000000000006
-----Decoded View---------------
Arg [0] : _pls (address): 0x51318B7D00db7ACc4026C88c3952B66278B6A67F
Arg [1] : _operator (address): 0xcaCf98a9235bB33DFa0E7E6A7000A937c2e6c9bA
Arg [2] : _governance (address): 0xa5c1c5a67Ba16430547FEA9D608Ef81119bE1876
Arg [3] : _lockDuration (uint32): 6
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000051318b7d00db7acc4026c88c3952b66278b6a67f
Arg [1] : 000000000000000000000000cacf98a9235bb33dfa0e7e6a7000a937c2e6c9ba
Arg [2] : 000000000000000000000000a5c1c5a67ba16430547fea9d608ef81119be1876
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000006
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ARB | 100.00% | $0.013784 | 247,403.573 | $3,410.12 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.