Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 904 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Unstake ALT | 16906360 | 1070 days ago | IN | 0 ETH | 0.00146547 | ||||
| Unstake ALT | 16846024 | 1078 days ago | IN | 0 ETH | 0.00116745 | ||||
| Unstake ALT | 16171415 | 1173 days ago | IN | 0 ETH | 0.00104333 | ||||
| Unstake ALT | 16166745 | 1173 days ago | IN | 0 ETH | 0.00096079 | ||||
| Unstake ALT | 16005411 | 1196 days ago | IN | 0 ETH | 0.00073449 | ||||
| Unstake ALT | 15982383 | 1199 days ago | IN | 0 ETH | 0.00117134 | ||||
| Unstake ALT | 15742828 | 1233 days ago | IN | 0 ETH | 0.0012131 | ||||
| Unstake ALT | 15666023 | 1243 days ago | IN | 0 ETH | 0.00067654 | ||||
| Unstake ALT | 15640796 | 1247 days ago | IN | 0 ETH | 0.00169163 | ||||
| Unstake ALT | 15609407 | 1251 days ago | IN | 0 ETH | 0.00032061 | ||||
| Unstake ALT | 15601915 | 1252 days ago | IN | 0 ETH | 0.00049461 | ||||
| Unstake ALT | 15586634 | 1254 days ago | IN | 0 ETH | 0.00027805 | ||||
| Unstake ALT | 15554462 | 1259 days ago | IN | 0 ETH | 0.00187568 | ||||
| Unstake ALT | 15554458 | 1259 days ago | IN | 0 ETH | 0.01132792 | ||||
| Unstake ALT | 15554338 | 1259 days ago | IN | 0 ETH | 0.01111999 | ||||
| Unstake ALT | 15041352 | 1340 days ago | IN | 0 ETH | 0.00530622 | ||||
| Unstake ALT | 15032174 | 1342 days ago | IN | 0 ETH | 0.0055828 | ||||
| Unstake ALT | 15022715 | 1343 days ago | IN | 0 ETH | 0.0014329 | ||||
| Unstake ALT | 15011653 | 1345 days ago | IN | 0 ETH | 0.00142447 | ||||
| Unstake ALT | 14909993 | 1363 days ago | IN | 0 ETH | 0.01124255 | ||||
| Unstake ALT | 14884922 | 1367 days ago | IN | 0 ETH | 0.00187873 | ||||
| Unstake ALT | 14877109 | 1368 days ago | IN | 0 ETH | 0.00221138 | ||||
| Unstake ALT | 14877071 | 1368 days ago | IN | 0 ETH | 0.00270545 | ||||
| Unstake ALT | 14877052 | 1368 days ago | IN | 0 ETH | 0.00212031 | ||||
| Unstake ALT | 14874007 | 1369 days ago | IN | 0 ETH | 0.00292131 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DaoStakeContract
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-09-14
*/
pragma solidity ^0.6.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 `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, 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);
}
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
/*
* @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 GSN 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 payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
/**
* @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.
*/
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 () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view 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 {
emit OwnershipTransferred(_owner, address(0));
_owner = 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");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
/**
* @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.
*/
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 () internal {
_paused = false;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view 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());
}
}
contract DaoStakeContract is Ownable, Pausable {
// Library for safely handling uint256
using SafeMath for uint256;
uint256 ONE_DAY;
uint256 public stakeDays;
uint256 public maxStakedQuantity;
address public phnxContractAddress;
uint256 public ratio;
uint256 public totalStakedTokens;
mapping(address => uint256) public stakerBalance;
mapping(uint256 => StakerData) public stakerData;
struct StakerData {
uint256 altQuantity;
uint256 initiationTimestamp;
uint256 durationTimestamp;
uint256 rewardAmount;
address staker;
}
event StakeCompleted(
uint256 altQuantity,
uint256 initiationTimestamp,
uint256 durationTimestamp,
uint256 rewardAmount,
address staker,
address phnxContractAddress,
address portalAddress
);
event Unstake(
address staker,
address stakedToken,
address portalAddress,
uint256 altQuantity,
uint256 durationTimestamp
); // When ERC20s are withdrawn
event BaseInterestUpdated(uint256 _newRate, uint256 _oldRate);
constructor() public {
ratio = 821917808219178;
phnxContractAddress = 0x38A2fDc11f526Ddd5a607C1F251C065f40fBF2f7;
maxStakedQuantity = 10000000000000000000000;
stakeDays = 365;
ONE_DAY = 60;
}
/* @dev stake function which enable the user to stake PHNX Tokens.
* @param _altQuantity, PHNX amount to be staked.
* @param _days, how many days PHNX tokens are staked for (in days)
*/
function stakeALT(uint256 _altQuantity, uint256 _days)
public
whenNotPaused
returns (uint256 rewardAmount)
{
require(_days <= stakeDays && _days > 0, "Invalid Days"); // To check days
require(
_altQuantity <= maxStakedQuantity && _altQuantity > 0,
"Invalid PHNX quantity"
); // To verify PHNX quantity
IERC20(phnxContractAddress).transferFrom(
msg.sender,
address(this),
_altQuantity
);
rewardAmount = _calculateReward(_altQuantity, ratio, _days);
uint256 _timestamp = block.timestamp;
if (stakerData[_timestamp].staker != address(0)) {
_timestamp = _timestamp.add(1);
}
stakerData[_timestamp] = StakerData(
_altQuantity,
_timestamp,
_days.mul(ONE_DAY),
rewardAmount,
msg.sender
);
stakerBalance[msg.sender] = stakerBalance[msg.sender].add(_altQuantity);
totalStakedTokens = totalStakedTokens.add(_altQuantity);
IERC20(phnxContractAddress).transfer(msg.sender, rewardAmount);
emit StakeCompleted(
_altQuantity,
_timestamp,
_days.mul(ONE_DAY),
rewardAmount,
msg.sender,
phnxContractAddress,
address(this)
);
}
/* @dev unStake function which enable the user to withdraw his PHNX Tokens.
* @param _expiredTimestamps, time when PHNX tokens are unlocked.
* @param _amount, amount to be withdrawn by the user.
*/
function unstakeALT(uint256[] calldata _expiredTimestamps, uint256 _amount)
external
whenNotPaused
returns (uint256)
{
require(_amount > 0, "Amount should be greater than 0");
uint256 withdrawAmount = 0;
uint256 burnAmount = 0;
for (uint256 i = 0; i < _expiredTimestamps.length; i = i.add(1)) {
require(
stakerData[_expiredTimestamps[i]].durationTimestamp != 0,
"Nothing staked"
);
if (
_expiredTimestamps[i].add(
stakerData[_expiredTimestamps[i]].durationTimestamp //if timestamp is not expired
) >= block.timestamp
) {
uint256 _remainingDays = (
stakerData[_expiredTimestamps[i]]
.durationTimestamp
.add(_expiredTimestamps[i])
.sub(block.timestamp)
)
.div(ONE_DAY);
uint256 _totalDays = stakerData[_expiredTimestamps[i]]
.durationTimestamp
.div(ONE_DAY);
if (_amount >= stakerData[_expiredTimestamps[i]].altQuantity) {
uint256 stakeBurn = _calculateBurn(
stakerData[_expiredTimestamps[i]].altQuantity,
_remainingDays,
_totalDays
);
burnAmount = burnAmount.add(stakeBurn);
withdrawAmount = withdrawAmount.add(
stakerData[_expiredTimestamps[i]].altQuantity.sub(
stakeBurn
)
);
_amount = _amount.sub(
stakerData[_expiredTimestamps[i]].altQuantity
);
emit Unstake(
msg.sender,
phnxContractAddress,
address(this),
stakerData[_expiredTimestamps[i]].altQuantity,
_expiredTimestamps[i]
);
stakerData[_expiredTimestamps[i]].altQuantity = 0;
} else if (
(_amount < stakerData[_expiredTimestamps[i]].altQuantity) &&
_amount > 0 // if timestamp is expired
) {
stakerData[_expiredTimestamps[i]]
.altQuantity = stakerData[_expiredTimestamps[i]]
.altQuantity
.sub(_amount);
uint256 stakeBurn = _calculateBurn(
_amount,
_remainingDays,
_totalDays
);
burnAmount = burnAmount.add(stakeBurn);
withdrawAmount = withdrawAmount.add(_amount.sub(stakeBurn));
emit Unstake(
msg.sender,
phnxContractAddress,
address(this),
_amount,
_expiredTimestamps[i]
);
_amount = 0;
}
} else {
if (_amount >= stakerData[_expiredTimestamps[i]].altQuantity) {
_amount = _amount.sub(
stakerData[_expiredTimestamps[i]].altQuantity
);
withdrawAmount = withdrawAmount.add(
stakerData[_expiredTimestamps[i]].altQuantity
);
emit Unstake(
msg.sender,
phnxContractAddress,
address(this),
stakerData[_expiredTimestamps[i]].altQuantity,
_expiredTimestamps[i]
);
stakerData[_expiredTimestamps[i]].altQuantity = 0;
} else if (
(_amount < stakerData[_expiredTimestamps[i]].altQuantity) &&
_amount > 0
) {
stakerData[_expiredTimestamps[i]]
.altQuantity = stakerData[_expiredTimestamps[i]]
.altQuantity
.sub(_amount);
withdrawAmount = withdrawAmount.add(_amount);
emit Unstake(
msg.sender,
phnxContractAddress,
address(this),
_amount,
_expiredTimestamps[i]
);
break;
}
}
}
require(withdrawAmount != 0, "Not Transferred");
if (burnAmount > 0) {
IERC20(phnxContractAddress).transfer(
0x0000000000000000000000000000000000000001,
burnAmount
);
}
stakerBalance[msg.sender] = stakerBalance[msg.sender].sub(
withdrawAmount
);
totalStakedTokens = totalStakedTokens.sub(withdrawAmount);
IERC20(phnxContractAddress).transfer(msg.sender, withdrawAmount);
return withdrawAmount;
}
/* @dev to calculate reward Amount
* @param _altQuantity , amount of ALT tokens staked.
*@param _baseInterest rate
*/
function _calculateReward(
uint256 _altQuantity,
uint256 _ratio,
uint256 _days
) internal pure returns (uint256 rewardAmount) {
rewardAmount = (_altQuantity.mul(_ratio).mul(_days)).div(
1000000000000000000
);
}
/* @dev function to calculate the amount of PHNX token burned incase of early unstake.
*@param _amount, The amount of Tokens user is unstaking.
*@param _remainingDays, remaining time before the tokens will be unlocked.
*@param _totalDays, total days tokens were staked for.
*/
function _calculateBurn(
uint256 _amount,
uint256 _remainingDays,
uint256 _totalDays
) internal pure returns (uint256 burnAmount) {
burnAmount = ((_amount * _remainingDays) / _totalDays);
}
/* @dev to set base interest rate. Can only be called by owner
* @param _rate, interest rate (in wei)
*/
function updateRatio(uint256 _rate) public onlyOwner whenNotPaused {
ratio = _rate;
}
function updateTime(uint256 _time) public onlyOwner whenNotPaused {
ONE_DAY = _time;
}
function updateQuantity(uint256 _quantity) public onlyOwner whenNotPaused {
maxStakedQuantity = _quantity;
}
/* @dev function to update stakeDays.
*@param _stakeDays, updated Days .
*/
function updatestakeDays(uint256 _stakeDays) public onlyOwner {
stakeDays = _stakeDays;
}
/* @dev Funtion to withdraw all PHNX from contract incase of emergency, can only be called by owner.*/
function withdrawTokens() public onlyOwner {
IERC20(phnxContractAddress).transfer(
owner(),
IERC20(phnxContractAddress).balanceOf(address(this))
);
pause();
}
function getTotalrewardTokens() external view returns(uint256){
return IERC20(phnxContractAddress).balanceOf(address(this)).sub(totalStakedTokens);
}
/* @dev function to update Phoenix contract address.
*@param _address, new address of the contract.
*/
function setPheonixContractAddress(address _address) public onlyOwner {
phnxContractAddress = _address;
}
/* @dev function which restricts the user from stakng PHNX tokens. */
function pause() public onlyOwner {
_pause();
}
/* @dev function which disables the Pause function. */
function unPause() public onlyOwner {
_unpause();
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_oldRate","type":"uint256"}],"name":"BaseInterestUpdated","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":false,"internalType":"uint256","name":"altQuantity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"initiationTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"durationTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"address","name":"phnxContractAddress","type":"address"},{"indexed":false,"internalType":"address","name":"portalAddress","type":"address"}],"name":"StakeCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"address","name":"stakedToken","type":"address"},{"indexed":false,"internalType":"address","name":"portalAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"altQuantity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"durationTimestamp","type":"uint256"}],"name":"Unstake","type":"event"},{"inputs":[],"name":"getTotalrewardTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxStakedQuantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"phnxContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ratio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPheonixContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_altQuantity","type":"uint256"},{"internalType":"uint256","name":"_days","type":"uint256"}],"name":"stakeALT","outputs":[{"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakerData","outputs":[{"internalType":"uint256","name":"altQuantity","type":"uint256"},{"internalType":"uint256","name":"initiationTimestamp","type":"uint256"},{"internalType":"uint256","name":"durationTimestamp","type":"uint256"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"address","name":"staker","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_expiredTimestamps","type":"uint256[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unstakeALT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"updateQuantity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"updateRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"updateTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stakeDays","type":"uint256"}],"name":"updatestakeDays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50600061002161016360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060008060146101000a81548160ff0219169083151502179055506602eb87a6fe542a6005819055507338a2fdc11f526ddd5a607c1f251c065f40fbf2f7600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555069021e19e0c9bab240000060038190555061016d600281905550603c60018190555061016b565b600033905090565b612e03806200017b6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638456cb59116100b8578063bace28901161007c578063bace2890146103cd578063bed3fe2514610464578063dc647e29146104a8578063eca5b8d3146104d6578063f2fde38b1461052e578063f7b188a51461057257610142565b80638456cb59146103495780638d8f2adb146103535780638da5cb5b1461035d57806391a6cfd1146103915780639902d7bd146103af57610142565b806354a2e0271161010a57806354a2e027146102135780635c975abb1461028757806369619aaf146102a75780636c59bd0c146102f3578063715018a61461032157806371ca337d1461032b57610142565b806317fa1f471461014757806326f6e1d81461017557806333aad346146101a957806339218b89146101c75780633ae73259146101f5575b600080fd5b6101736004803603602081101561015d57600080fd5b810190808035906020019092919050505061057c565b005b61017d6106d1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b16106f7565b6040518082815260200191505060405180910390f35b6101f3600480360360208110156101dd57600080fd5b81019080803590602001909291905050506107d6565b005b6101fd6108a8565b6040518082815260200191505060405180910390f35b61023f6004803603602081101561022957600080fd5b81019080803590602001909291905050506108ae565b604051808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390f35b61028f610904565b60405180821515815260200191505060405180910390f35b6102dd600480360360408110156102bd57600080fd5b81019080803590602001909291908035906020019092919050505061091a565b6040518082815260200191505060405180910390f35b61031f6004803603602081101561030957600080fd5b8101908080359060200190929190505050610f63565b005b6103296110b8565b005b61033361123e565b6040518082815260200191505060405180910390f35b610351611244565b005b61035b611316565b005b610365611581565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103996115aa565b6040518082815260200191505060405180910390f35b6103b76115b0565b6040518082815260200191505060405180910390f35b61044e600480360360408110156103e357600080fd5b810190808035906020019064010000000081111561040057600080fd5b82018360208201111561041257600080fd5b8035906020019184602083028401116401000000008311171561043457600080fd5b9091929391929390803590602001909291905050506115b6565b6040518082815260200191505060405180910390f35b6104a66004803603602081101561047a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122b9565b005b6104d4600480360360208110156104be57600080fd5b81019080803590602001909291905050506123c5565b005b610518600480360360208110156104ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061251a565b6040518082815260200191505060405180910390f35b6105706004803603602081101561054457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612532565b005b61057a61273d565b005b61058461280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600060149054906101000a900460ff16156106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b8060038190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006107d1600654600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d60208110156107b257600080fd5b810190808051906020019092919050505061281790919063ffffffff16565b905090565b6107de61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060028190555050565b60065481565b60086020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b60008060149054906101000a900460ff16905090565b60008060149054906101000a900460ff161561099e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60025482111580156109b05750600082115b610a22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e76616c69642044617973000000000000000000000000000000000000000081525060200191505060405180910390fd5b6003548311158015610a345750600083115b610aa6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f496e76616c69642050484e58207175616e74697479000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610b5757600080fd5b505af1158015610b6b573d6000803e3d6000fd5b505050506040513d6020811015610b8157600080fd5b810190808051906020019092919050505050610ba08360055484612861565b90506000429050600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2857610c256001826128ab90919063ffffffff16565b90505b6040518060a00160405280858152602001828152602001610c546001548661293390919063ffffffff16565b81526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600860008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050610d5084600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ab90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610da8846006546128ab90919063ffffffff16565b600681905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e4157600080fd5b505af1158015610e55573d6000803e3d6000fd5b505050506040513d6020811015610e6b57600080fd5b8101908080519060200190929190505050507f19b9ed9900d8dcfd5d98ee671f285df607dc913a0d4de13c651b36f247ece0878482610eb56001548761293390919063ffffffff16565b8533600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630604051808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200197505050505050505060405180910390a15092915050565b610f6b61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600060149054906101000a900460ff16156110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b8060018190555050565b6110c061280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055481565b61124c61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6113146129b9565b565b61131e61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611424611581565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114ad57600080fd5b505afa1580156114c1573d6000803e3d6000fd5b505050506040513d60208110156114d757600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561153b57600080fd5b505af115801561154f573d6000803e3d6000fd5b505050506040513d602081101561156557600080fd5b81019080805190602001909291905050505061157f611244565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60025481565b60008060149054906101000a900460ff161561163a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600082116116b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e742073686f756c642062652067726561746572207468616e20300081525060200191505060405180910390fd5b60008060005b86869050811015611fdc576000600860008989858181106116d357fe5b905060200201358152602001908152602001600020600201541415611760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7468696e67207374616b656400000000000000000000000000000000000081525060200191505060405180910390fd5b426117ae600860008a8a8681811061177457fe5b9050602002013581526020019081526020016000206002015489898581811061179957fe5b905060200201356128ab90919063ffffffff16565b10611c6457600061182860015461181a4261180c8c8c888181106117ce57fe5b90506020020135600860008f8f8b8181106117e557fe5b905060200201358152602001908152602001600020600201546128ab90919063ffffffff16565b61281790919063ffffffff16565b612aad90919063ffffffff16565b90506000611869600154600860008c8c8881811061184257fe5b90506020020135815260200190815260200160002060020154612aad90919063ffffffff16565b9050600860008a8a8681811061187b57fe5b905060200201358152602001908152602001600020600001548710611a9b5760006118cf600860008c8c888181106118af57fe5b905060200201358152602001908152602001600020600001548484612af7565b90506118e481866128ab90919063ffffffff16565b945061193361192482600860008e8e8a8181106118fd57fe5b9050602002013581526020019081526020016000206000015461281790919063ffffffff16565b876128ab90919063ffffffff16565b9550611970600860008c8c8881811061194857fe5b905060200201358152602001908152602001600020600001548961281790919063ffffffff16565b97507f844b93bba1dfa65e9a88d080df57fa731c72bebc9653aea6be132abde68c27c333600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630600860008f8f8b8181106119c857fe5b905060200201358152602001908152602001600020600001548e8e8a8181106119ed57fe5b90506020020135604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a16000600860008c8c88818110611a7957fe5b9050602002013581526020019081526020016000206000018190555050611c5d565b600860008a8a86818110611aab57fe5b9050602002013581526020019081526020016000206000015487108015611ad25750600087115b15611c5c57611b1287600860008c8c88818110611aeb57fe5b9050602002013581526020019081526020016000206000015461281790919063ffffffff16565b600860008b8b87818110611b2257fe5b905060200201358152602001908152602001600020600001819055506000611b4b888484612af7565b9050611b6081866128ab90919063ffffffff16565b9450611b87611b78828a61281790919063ffffffff16565b876128ab90919063ffffffff16565b95507f844b93bba1dfa65e9a88d080df57fa731c72bebc9653aea6be132abde68c27c333600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16308b8e8e8a818110611bdc57fe5b90506020020135604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a160009750505b5b5050611fc1565b60086000888884818110611c7457fe5b905060200201358152602001908152602001600020600001548510611e3557611cce60086000898985818110611ca657fe5b905060200201358152602001908152602001600020600001548661281790919063ffffffff16565b9450611d0b60086000898985818110611ce357fe5b90506020020135815260200190815260200160002060000154846128ab90919063ffffffff16565b92507f844b93bba1dfa65e9a88d080df57fa731c72bebc9653aea6be132abde68c27c333600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630600860008c8c88818110611d6357fe5b905060200201358152602001908152602001600020600001548b8b87818110611d8857fe5b90506020020135604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a1600060086000898985818110611e1457fe5b90506020020135815260200190815260200160002060000181905550611fc0565b60086000888884818110611e4557fe5b9050602002013581526020019081526020016000206000015485108015611e6c5750600085115b15611fbf57611eac85600860008a8a86818110611e8557fe5b9050602002013581526020019081526020016000206000015461281790919063ffffffff16565b60086000898985818110611ebc57fe5b90506020020135815260200190815260200160002060000181905550611eeb85846128ab90919063ffffffff16565b92507f844b93bba1dfa65e9a88d080df57fa731c72bebc9653aea6be132abde68c27c333600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630888b8b87818110611f4057fe5b90506020020135604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a1611fdc565b5b5b611fd56001826128ab90919063ffffffff16565b90506116b6565b506000821415612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74205472616e73666572726564000000000000000000000000000000000081525060200191505060405180910390fd5b600081111561212e57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6001836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156120f157600080fd5b505af1158015612105573d6000803e3d6000fd5b505050506040513d602081101561211b57600080fd5b8101908080519060200190929190505050505b61218082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281790919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121d88260065461281790919063ffffffff16565b600681905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561227157600080fd5b505af1158015612285573d6000803e3d6000fd5b505050506040513d602081101561229b57600080fd5b81019080805190602001909291905050505081925050509392505050565b6122c161280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6123cd61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600060149054906101000a900460ff1615612510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b8060058190555050565b60076020528060005260406000206000915090505481565b61253a61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d876026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61274561280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61280d612b0e565b565b600033905090565b600061285983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c00565b905092915050565b60006128a2670de0b6b3a764000061289484612886878961293390919063ffffffff16565b61293390919063ffffffff16565b612aad90919063ffffffff16565b90509392505050565b600080828401905083811015612929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561294657600090506129b3565b600082840290508284828161295757fe5b04146129ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dad6021913960400191505060405180910390fd5b809150505b92915050565b600060149054906101000a900460ff1615612a3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612a8061280f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000612aef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cc0565b905092915050565b60008183850281612b0457fe5b0490509392505050565b600060149054906101000a900460ff16612b90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612bd361280f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000838311158290612cad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c72578082015181840152602081019050612c57565b50505050905090810190601f168015612c9f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612d6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d31578082015181840152602081019050612d16565b50505050905090810190601f168015612d5e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612d7857fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122041720497da10ce9c1eefdc4a690cfa74bf3287ea726d3e4881cfcb176c4742ed64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638456cb59116100b8578063bace28901161007c578063bace2890146103cd578063bed3fe2514610464578063dc647e29146104a8578063eca5b8d3146104d6578063f2fde38b1461052e578063f7b188a51461057257610142565b80638456cb59146103495780638d8f2adb146103535780638da5cb5b1461035d57806391a6cfd1146103915780639902d7bd146103af57610142565b806354a2e0271161010a57806354a2e027146102135780635c975abb1461028757806369619aaf146102a75780636c59bd0c146102f3578063715018a61461032157806371ca337d1461032b57610142565b806317fa1f471461014757806326f6e1d81461017557806333aad346146101a957806339218b89146101c75780633ae73259146101f5575b600080fd5b6101736004803603602081101561015d57600080fd5b810190808035906020019092919050505061057c565b005b61017d6106d1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b16106f7565b6040518082815260200191505060405180910390f35b6101f3600480360360208110156101dd57600080fd5b81019080803590602001909291905050506107d6565b005b6101fd6108a8565b6040518082815260200191505060405180910390f35b61023f6004803603602081101561022957600080fd5b81019080803590602001909291905050506108ae565b604051808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390f35b61028f610904565b60405180821515815260200191505060405180910390f35b6102dd600480360360408110156102bd57600080fd5b81019080803590602001909291908035906020019092919050505061091a565b6040518082815260200191505060405180910390f35b61031f6004803603602081101561030957600080fd5b8101908080359060200190929190505050610f63565b005b6103296110b8565b005b61033361123e565b6040518082815260200191505060405180910390f35b610351611244565b005b61035b611316565b005b610365611581565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103996115aa565b6040518082815260200191505060405180910390f35b6103b76115b0565b6040518082815260200191505060405180910390f35b61044e600480360360408110156103e357600080fd5b810190808035906020019064010000000081111561040057600080fd5b82018360208201111561041257600080fd5b8035906020019184602083028401116401000000008311171561043457600080fd5b9091929391929390803590602001909291905050506115b6565b6040518082815260200191505060405180910390f35b6104a66004803603602081101561047a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122b9565b005b6104d4600480360360208110156104be57600080fd5b81019080803590602001909291905050506123c5565b005b610518600480360360208110156104ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061251a565b6040518082815260200191505060405180910390f35b6105706004803603602081101561054457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612532565b005b61057a61273d565b005b61058461280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600060149054906101000a900460ff16156106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b8060038190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006107d1600654600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d60208110156107b257600080fd5b810190808051906020019092919050505061281790919063ffffffff16565b905090565b6107de61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060028190555050565b60065481565b60086020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b60008060149054906101000a900460ff16905090565b60008060149054906101000a900460ff161561099e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60025482111580156109b05750600082115b610a22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e76616c69642044617973000000000000000000000000000000000000000081525060200191505060405180910390fd5b6003548311158015610a345750600083115b610aa6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f496e76616c69642050484e58207175616e74697479000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610b5757600080fd5b505af1158015610b6b573d6000803e3d6000fd5b505050506040513d6020811015610b8157600080fd5b810190808051906020019092919050505050610ba08360055484612861565b90506000429050600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2857610c256001826128ab90919063ffffffff16565b90505b6040518060a00160405280858152602001828152602001610c546001548661293390919063ffffffff16565b81526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600860008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050610d5084600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ab90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610da8846006546128ab90919063ffffffff16565b600681905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e4157600080fd5b505af1158015610e55573d6000803e3d6000fd5b505050506040513d6020811015610e6b57600080fd5b8101908080519060200190929190505050507f19b9ed9900d8dcfd5d98ee671f285df607dc913a0d4de13c651b36f247ece0878482610eb56001548761293390919063ffffffff16565b8533600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630604051808881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200197505050505050505060405180910390a15092915050565b610f6b61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600060149054906101000a900460ff16156110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b8060018190555050565b6110c061280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055481565b61124c61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6113146129b9565b565b61131e61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611424611581565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156114ad57600080fd5b505afa1580156114c1573d6000803e3d6000fd5b505050506040513d60208110156114d757600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561153b57600080fd5b505af115801561154f573d6000803e3d6000fd5b505050506040513d602081101561156557600080fd5b81019080805190602001909291905050505061157f611244565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60025481565b60008060149054906101000a900460ff161561163a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600082116116b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e742073686f756c642062652067726561746572207468616e20300081525060200191505060405180910390fd5b60008060005b86869050811015611fdc576000600860008989858181106116d357fe5b905060200201358152602001908152602001600020600201541415611760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7468696e67207374616b656400000000000000000000000000000000000081525060200191505060405180910390fd5b426117ae600860008a8a8681811061177457fe5b9050602002013581526020019081526020016000206002015489898581811061179957fe5b905060200201356128ab90919063ffffffff16565b10611c6457600061182860015461181a4261180c8c8c888181106117ce57fe5b90506020020135600860008f8f8b8181106117e557fe5b905060200201358152602001908152602001600020600201546128ab90919063ffffffff16565b61281790919063ffffffff16565b612aad90919063ffffffff16565b90506000611869600154600860008c8c8881811061184257fe5b90506020020135815260200190815260200160002060020154612aad90919063ffffffff16565b9050600860008a8a8681811061187b57fe5b905060200201358152602001908152602001600020600001548710611a9b5760006118cf600860008c8c888181106118af57fe5b905060200201358152602001908152602001600020600001548484612af7565b90506118e481866128ab90919063ffffffff16565b945061193361192482600860008e8e8a8181106118fd57fe5b9050602002013581526020019081526020016000206000015461281790919063ffffffff16565b876128ab90919063ffffffff16565b9550611970600860008c8c8881811061194857fe5b905060200201358152602001908152602001600020600001548961281790919063ffffffff16565b97507f844b93bba1dfa65e9a88d080df57fa731c72bebc9653aea6be132abde68c27c333600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630600860008f8f8b8181106119c857fe5b905060200201358152602001908152602001600020600001548e8e8a8181106119ed57fe5b90506020020135604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a16000600860008c8c88818110611a7957fe5b9050602002013581526020019081526020016000206000018190555050611c5d565b600860008a8a86818110611aab57fe5b9050602002013581526020019081526020016000206000015487108015611ad25750600087115b15611c5c57611b1287600860008c8c88818110611aeb57fe5b9050602002013581526020019081526020016000206000015461281790919063ffffffff16565b600860008b8b87818110611b2257fe5b905060200201358152602001908152602001600020600001819055506000611b4b888484612af7565b9050611b6081866128ab90919063ffffffff16565b9450611b87611b78828a61281790919063ffffffff16565b876128ab90919063ffffffff16565b95507f844b93bba1dfa65e9a88d080df57fa731c72bebc9653aea6be132abde68c27c333600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16308b8e8e8a818110611bdc57fe5b90506020020135604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a160009750505b5b5050611fc1565b60086000888884818110611c7457fe5b905060200201358152602001908152602001600020600001548510611e3557611cce60086000898985818110611ca657fe5b905060200201358152602001908152602001600020600001548661281790919063ffffffff16565b9450611d0b60086000898985818110611ce357fe5b90506020020135815260200190815260200160002060000154846128ab90919063ffffffff16565b92507f844b93bba1dfa65e9a88d080df57fa731c72bebc9653aea6be132abde68c27c333600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630600860008c8c88818110611d6357fe5b905060200201358152602001908152602001600020600001548b8b87818110611d8857fe5b90506020020135604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a1600060086000898985818110611e1457fe5b90506020020135815260200190815260200160002060000181905550611fc0565b60086000888884818110611e4557fe5b9050602002013581526020019081526020016000206000015485108015611e6c5750600085115b15611fbf57611eac85600860008a8a86818110611e8557fe5b9050602002013581526020019081526020016000206000015461281790919063ffffffff16565b60086000898985818110611ebc57fe5b90506020020135815260200190815260200160002060000181905550611eeb85846128ab90919063ffffffff16565b92507f844b93bba1dfa65e9a88d080df57fa731c72bebc9653aea6be132abde68c27c333600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630888b8b87818110611f4057fe5b90506020020135604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a1611fdc565b5b5b611fd56001826128ab90919063ffffffff16565b90506116b6565b506000821415612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74205472616e73666572726564000000000000000000000000000000000081525060200191505060405180910390fd5b600081111561212e57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6001836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156120f157600080fd5b505af1158015612105573d6000803e3d6000fd5b505050506040513d602081101561211b57600080fd5b8101908080519060200190929190505050505b61218082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281790919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121d88260065461281790919063ffffffff16565b600681905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561227157600080fd5b505af1158015612285573d6000803e3d6000fd5b505050506040513d602081101561229b57600080fd5b81019080805190602001909291905050505081925050509392505050565b6122c161280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6123cd61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600060149054906101000a900460ff1615612510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b8060058190555050565b60076020528060005260406000206000915090505481565b61253a61280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d876026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61274561280f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61280d612b0e565b565b600033905090565b600061285983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c00565b905092915050565b60006128a2670de0b6b3a764000061289484612886878961293390919063ffffffff16565b61293390919063ffffffff16565b612aad90919063ffffffff16565b90509392505050565b600080828401905083811015612929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561294657600090506129b3565b600082840290508284828161295757fe5b04146129ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dad6021913960400191505060405180910390fd5b809150505b92915050565b600060149054906101000a900460ff1615612a3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612a8061280f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000612aef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cc0565b905092915050565b60008183850281612b0457fe5b0490509392505050565b600060149054906101000a900460ff16612b90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612bd361280f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000838311158290612cad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c72578082015181840152602081019050612c57565b50505050905090810190601f168015612c9f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612d6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d31578082015181840152602081019050612d16565b50505050905090810190601f168015612d5e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612d7857fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122041720497da10ce9c1eefdc4a690cfa74bf3287ea726d3e4881cfcb176c4742ed64736f6c634300060c0033
Deployed Bytecode Sourcemap
13291:11425:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23360:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13516:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24026:163;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23583:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13584:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13680:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12115:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14934:1441;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23252:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10579:148;;;:::i;:::-;;13557:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24519:61;;;:::i;:::-;;23802:216;;;:::i;:::-;;9937:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13477:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13446:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16607:5430;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24317:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23145:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13625:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10882:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24648:65;;;:::i;:::-;;23360:122;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12433:7:::1;;;;;;;;;;;12432:8;12424:37;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;23465:9:::2;23445:17;:29;;;;23360:122:::0;:::o;13516:34::-;;;;;;;;;;;;;:::o;24026:163::-;24080:7;24106:75;24163:17;;24113:19;;;;;;;;;;;24106:37;;;24152:4;24106:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:56;;:75;;;;:::i;:::-;24099:82;;24026:163;:::o;23583:103::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23668:10:::1;23656:9;:22;;;;23583:103:::0;:::o;13584:32::-;;;;:::o;13680:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12115:78::-;12154:4;12178:7;;;;;;;;;;;12171:14;;12115:78;:::o;14934:1441::-;15046:20;12433:7;;;;;;;;;;;12432:8;12424:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15101:9:::1;;15092:5;:18;;:31;;;;;15122:1;15114:5;:9;15092:31;15084:56;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15206:17;;15190:12;:33;;:53;;;;;15242:1;15227:12;:16;15190:53;15168:124;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15339:19;;;;;;;;;;;15332:40;;;15387:10;15420:4;15440:12;15332:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;15491:44;15508:12;15522:5;;15529;15491:16;:44::i;:::-;15476:59;;15548:18;15569:15;15548:36;;15642:1;15601:43;;:10;:22;15612:10;15601:22;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;15597:106;;15674:17;15689:1;15674:10;:14;;:17;;;;:::i;:::-;15661:30;;15597:106;15740:158;;;;;;;;15765:12;15740:158;;;;15792:10;15740:158;;;;15817:18;15827:7;;15817:5;:9;;:18;;;;:::i;:::-;15740:158;;;;15850:12;15740:158;;;;15877:10;15740:158;;;;::::0;15715:10:::1;:22;15726:10;15715:22;;;;;;;;;;;:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15939:43;15969:12;15939:13;:25;15953:10;15939:25;;;;;;;;;;;;;;;;:29;;:43;;;;:::i;:::-;15911:13;:25;15925:10;15911:25;;;;;;;;;;;;;;;:71;;;;16015:35;16037:12;16015:17;;:21;;:35;;;;:::i;:::-;15995:17;:55;;;;16070:19;;;;;;;;;;;16063:36;;;16100:10;16112:12;16063:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;16143:224;16172:12;16199:10;16224:18;16234:7;;16224:5;:9;;:18;;;;:::i;:::-;16257:12;16284:10;16309:19;;;;;;;;;;;16351:4;16143:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12472:1;14934:1441:::0;;;;:::o;23252:100::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12433:7:::1;;;;;;;;;;;12432:8;12424:37;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;23339:5:::2;23329:7;:15;;;;23252:100:::0;:::o;10579:148::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10686:1:::1;10649:40;;10670:6;::::0;::::1;;;;;;;;10649:40;;;;;;;;;;;;10717:1;10700:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;10579:148::o:0;13557:20::-;;;;:::o;24519:61::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24564:8:::1;:6;:8::i;:::-;24519:61::o:0;23802:216::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23863:19:::1;;;;;;;;;;;23856:36;;;23907:7;:5;:7::i;:::-;23936:19;;;;;;;;;;;23929:37;;;23975:4;23929:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;23856:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;24003:7;:5;:7::i;:::-;23802:216::o:0;9937:79::-;9975:7;10002:6;;;;;;;;;;;9995:13;;9937:79;:::o;13477:32::-;;;;:::o;13446:24::-;;;;:::o;16607:5430::-;16742:7;12433;;;;;;;;;;;12432:8;12424:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16785:1:::1;16775:7;:11;16767:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16833:22;16870:18:::0;16908:9:::1;16903:4580;16927:18;;:25;;16923:1;:29;16903:4580;;;17064:1;17009:10;:33;17020:18;;17039:1;17020:21;;;;;;;;;;;;;17009:33;;;;;;;;;;;:51;;;:56;;16983:132;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17304:15;17152:148;17200:10;:33;17211:18;;17230:1;17211:21;;;;;;;;;;;;;17200:33;;;;;;;;;;;:51;;;17152:18;;17171:1;17152:21;;;;;;;;;;;;;:25;;:148;;;;:::i;:::-;:167;17130:4342;;17354:22;17379:254;17625:7;;17402:177;17563:15;17402:130;17510:18;;17529:1;17510:21;;;;;;;;;;;;;17402:10;:33;17413:18;;17432:1;17413:21;;;;;;;;;;;;;17402:33;;;;;;;;;;;:77;;;:107;;:130;;;;:::i;:::-;:160;;:177;;;;:::i;:::-;17379:245;;:254;;;;:::i;:::-;17354:279;;17652:18;17673:108;17773:7;;17673:10;:33;17684:18;;17703:1;17684:21;;;;;;;;;;;;;17673:33;;;;;;;;;;;:73;;;:99;;:108;;;;:::i;:::-;17652:129;;17815:10;:33;17826:18;;17845:1;17826:21;;;;;;;;;;;;;17815:33;;;;;;;;;;;:45;;;17804:7;:56;17800:2140;;17885:17;17905:187;17946:10;:33;17957:18;;17976:1;17957:21;;;;;;;;;;;;;17946:33;;;;;;;;;;;:45;;;18018:14;18059:10;17905:14;:187::i;:::-;17885:207;;18128:25;18143:9;18128:10;:14;;:25;;;;:::i;:::-;18115:38;;18193:184;18238:116;18318:9;18238:10;:33;18249:18;;18268:1;18249:21;;;;;;;;;;;;;18238:33;;;;;;;;;;;:45;;;:49;;:116;;;;:::i;:::-;18193:14;:18;;:184;;;;:::i;:::-;18176:201;;18410:106;18448:10;:33;18459:18;;18478:1;18459:21;;;;;;;;;;;;;18448:33;;;;;;;;;;;:45;;;18410:7;:11;;:106;;;;:::i;:::-;18400:116;;18544:273;18578:10;18615:19;;;;;;;;;;;18669:4;18701:10;:33;18712:18;;18731:1;18712:21;;;;;;;;;;;;;18701:33;;;;;;;;;;;:45;;;18773:18;;18792:1;18773:21;;;;;;;;;;;;;18544:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18888:1;18840:10;:33;18851:18;;18870:1;18851:21;;;;;;;;;;;;;18840:33;;;;;;;;;;;:45;;:49;;;;17800:2140;;;;18952:10;:33;18963:18;;18982:1;18963:21;;;;;;;;;;;;;18952:33;;;;;;;;;;;:45;;;18942:7;:55;18941:93;;;;;19033:1;19023:7;:11;18941:93;18915:1025;;;19178:110;19280:7;19178:10;:33;19189:18;;19208:1;19189:21;;;;;;;;;;;;;19178:33;;;;;;;;;;;:71;;;:101;;:110;;;;:::i;:::-;19104:10;:33;19115:18;;19134:1;19115:21;;;;;;;;;;;;;19104:33;;;;;;;;;;;:71;;:184;;;;19311:17;19331:149;19372:7;19406:14;19447:10;19331:14;:149::i;:::-;19311:169;;19516:25;19531:9;19516:10;:14;;:25;;;;:::i;:::-;19503:38;;19581:42;19600:22;19612:9;19600:7;:11;;:22;;;;:::i;:::-;19581:14;:18;;:42;;;;:::i;:::-;19564:59;;19651:235;19685:10;19722:19;;;;;;;;;;;19776:4;19808:7;19842:18;;19861:1;19842:21;;;;;;;;;;;;;19651:235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19919:1;19909:11;;18915:1025;;17800:2140;17130:4342;;;;;19995:10;:33;20006:18;;20025:1;20006:21;;;;;;;;;;;;;19995:33;;;;;;;;;;;:45;;;19984:7;:56;19980:1477;;20075:106;20113:10;:33;20124:18;;20143:1;20124:21;;;;;;;;;;;;;20113:33;;;;;;;;;;;:45;;;20075:7;:11;;:106;;;;:::i;:::-;20065:116;;20221:113;20266:10;:33;20277:18;;20296:1;20277:21;;;;;;;;;;;;;20266:33;;;;;;;;;;;:45;;;20221:14;:18;;:113;;;;:::i;:::-;20204:130;;20362:273;20396:10;20433:19;;;;;;;;;;;20487:4;20519:10;:33;20530:18;;20549:1;20530:21;;;;;;;;;;;;;20519:33;;;;;;;;;;;:45;;;20591:18;;20610:1;20591:21;;;;;;;;;;;;;20362:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20706:1;20658:10;:33;20669:18;;20688:1;20669:21;;;;;;;;;;;;;20658:33;;;;;;;;;;;:45;;:49;;;;19980:1477;;;20770:10;:33;20781:18;;20800:1;20781:21;;;;;;;;;;;;;20770:33;;;;;;;;;;;:45;;;20760:7;:55;20759:93;;;;;20851:1;20841:7;:11;20759:93;20733:724;;;20969:110;21071:7;20969:10;:33;20980:18;;20999:1;20980:21;;;;;;;;;;;;;20969:33;;;;;;;;;;;:71;;;:101;;:110;;;;:::i;:::-;20895:10;:33;20906:18;;20925:1;20906:21;;;;;;;;;;;;;20895:33;;;;;;;;;;;:71;;:184;;;;21119:27;21138:7;21119:14;:18;;:27;;;;:::i;:::-;21102:44;;21174:235;21208:10;21245:19;;;;;;;;;;;21299:4;21331:7;21365:18;;21384:1;21365:21;;;;;;;;;;;;;21174:235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21432:5;;20733:724;19980:1477;17130:4342;16958:8;16964:1;16958;:5;;:8;;;;:::i;:::-;16954:12;;16903:4580;;;;21519:1;21501:14;:19;;21493:47;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21570:1;21557:10;:14;21553:188;;;21595:19;;;;;;;;;;;21588:36;;;21643:42;21704:10;21588:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;21553:188;21781:69;21825:14;21781:13;:25;21795:10;21781:25;;;;;;;;;;;;;;;;:29;;:69;;;;:::i;:::-;21753:13;:25;21767:10;21753:25;;;;;;;;;;;;;;;:97;;;;21883:37;21905:14;21883:17;;:21;;:37;;;;:::i;:::-;21863:17;:57;;;;21940:19;;;;;;;;;;;21933:36;;;21970:10;21982:14;21933:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;22015:14;22008:21;;;;16607:5430:::0;;;;;:::o;24317:119::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24420:8:::1;24398:19;;:30;;;;;;;;;;;;;;;;;;24317:119:::0;:::o;23145:99::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12433:7:::1;;;;;;;;;;;12432:8;12424:37;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;23231:5:::2;23223;:13;;;;23145:99:::0;:::o;13625:48::-;;;;;;;;;;;;;;;;;:::o;10882:244::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10991:1:::1;10971:22;;:8;:22;;;;10963:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11081:8;11052:38;;11073:6;::::0;::::1;;;;;;;;11052:38;;;;;;;;;;;;11110:8;11101:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;10882:244:::0;:::o;24648:65::-;10159:12;:10;:12::i;:::-;10149:22;;:6;;;;;;;;;;:22;;;10141:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24695:10:::1;:8;:10::i;:::-;24648:65::o:0;8577:106::-;8630:15;8665:10;8658:17;;8577:106;:::o;4040:136::-;4098:7;4125:43;4129:1;4132;4125:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4118:50;;4040:136;;;;:::o;22187:278::-;22323:20;22371:86;22427:19;22372:35;22401:5;22372:24;22389:6;22372:12;:16;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;22371:41;;:86;;;;:::i;:::-;22356:101;;22187:278;;;;;:::o;3576:181::-;3634:7;3654:9;3670:1;3666;:5;3654:17;;3695:1;3690;:6;;3682:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3748:1;3741:8;;;3576:181;;;;:::o;4930:471::-;4988:7;5238:1;5233;:6;5229:47;;;5263:1;5256:8;;;;5229:47;5288:9;5304:1;5300;:5;5288:17;;5333:1;5328;5324;:5;;;;;;:10;5316:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5392:1;5385:8;;;4930:471;;;;;:::o;12905:118::-;12433:7;;;;;;;;;;;12432:8;12424:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12975:4:::1;12965:7;;:14;;;;;;;;;;;;;;;;;;12995:20;13002:12;:10;:12::i;:::-;12995:20;;;;;;;;;;;;;;;;;;;;12905:118::o:0;5877:132::-;5935:7;5962:39;5966:1;5969;5962:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5955:46;;5877:132;;;;:::o;22779:235::-;22921:18;22995:10;22977:14;22967:7;:24;22966:39;;;;;;22952:54;;22779:235;;;;;:::o;13164:120::-;12709:7;;;;;;;;;;;12701:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13233:5:::1;13223:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;13254:22;13263:12;:10;:12::i;:::-;13254:22;;;;;;;;;;;;;;;;;;;;13164:120::o:0;4479:192::-;4565:7;4598:1;4593;:6;;4601:12;4585:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4625:9;4641:1;4637;:5;4625:17;;4662:1;4655:8;;;4479:192;;;;;:::o;6505:278::-;6591:7;6623:1;6619;:5;6626:12;6611:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6650:9;6666:1;6662;:5;;;;;;6650:17;;6774:1;6767:8;;;6505:278;;;;;:::o
Swarm Source
ipfs://41720497da10ce9c1eefdc4a690cfa74bf3287ea726d3e4881cfcb176c4742ed
Loading...
Loading
Loading...
Loading
Net Worth in USD
$353.43
Net Worth in ETH
0.183587
Token Allocations
PHNX
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $0.000136 | 2,604,097.9872 | $353.43 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.