Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 25 from a total of 495 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw Fee | 14613000 | 1422 days ago | IN | 0 ETH | 0.00086601 | ||||
| Withdraw Reward | 14612515 | 1422 days ago | IN | 0 ETH | 0.00135905 | ||||
| Pay Node Fee | 14612202 | 1423 days ago | IN | 0.0085 ETH | 0.00391331 | ||||
| Pay All Nodes Fe... | 14612019 | 1423 days ago | IN | 0.2125 ETH | 0.00740857 | ||||
| Pay All Nodes Fe... | 14611302 | 1423 days ago | IN | 0.0765 ETH | 0.00655061 | ||||
| Claim All Nodes ... | 14611279 | 1423 days ago | IN | 0 ETH | 0.01293593 | ||||
| Pay Node Fee | 14611165 | 1423 days ago | IN | 0.0085 ETH | 0.00246587 | ||||
| Pay Node Fee | 14611161 | 1423 days ago | IN | 0.0085 ETH | 0.00238099 | ||||
| Pay All Nodes Fe... | 14611094 | 1423 days ago | IN | 0.2125 ETH | 0.01997036 | ||||
| Claim All Nodes ... | 14611064 | 1423 days ago | IN | 0 ETH | 0.03207909 | ||||
| Pay All Nodes Fe... | 14610633 | 1423 days ago | IN | 0.0425 ETH | 0.00601511 | ||||
| Pay All Nodes Fe... | 14610372 | 1423 days ago | IN | 0.017 ETH | 0.00226111 | ||||
| Create Node | 14609956 | 1423 days ago | IN | 0 ETH | 0.01432619 | ||||
| Claim All Nodes ... | 14609951 | 1423 days ago | IN | 0 ETH | 0.00576899 | ||||
| Pay All Nodes Fe... | 14609887 | 1423 days ago | IN | 0.2125 ETH | 0.01057861 | ||||
| Claim All Nodes ... | 14609757 | 1423 days ago | IN | 0 ETH | 0.02778055 | ||||
| Pay All Nodes Fe... | 14609754 | 1423 days ago | IN | 0.2125 ETH | 0.01396913 | ||||
| Claim All Nodes ... | 14609741 | 1423 days ago | IN | 0 ETH | 0.01977149 | ||||
| Pay All Nodes Fe... | 14609740 | 1423 days ago | IN | 0.2125 ETH | 0.01322893 | ||||
| Create Node | 14609701 | 1423 days ago | IN | 0 ETH | 0.0144519 | ||||
| Pay All Nodes Fe... | 14609684 | 1423 days ago | IN | 0.0425 ETH | 0.00291359 | ||||
| Claim All Nodes ... | 14609647 | 1423 days ago | IN | 0 ETH | 0.01084175 | ||||
| Claim All Nodes ... | 14609589 | 1423 days ago | IN | 0 ETH | 0.00413117 | ||||
| Set Fee Amount | 14609586 | 1423 days ago | IN | 0 ETH | 0.00113954 | ||||
| Claim All Nodes ... | 14609567 | 1423 days ago | IN | 0 ETH | 0.00858551 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 14613000 | 1422 days ago | 3.2865 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
HeroInfinityNodePool
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
No with 200 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/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract HeroInfinityNodePool is Ownable {
using SafeMath for uint256;
struct NodeEntity {
string name;
uint256 creationTime;
uint256 lastClaimTime;
uint256 feeTime;
uint256 dueTime;
}
mapping(address => uint256) public nodeOwners;
mapping(address => NodeEntity[]) private _nodesOfUser;
uint256 public nodePrice = 200000 * 10**18;
uint256 public rewardPerDay = 8000 * 10**18;
uint256 public maxNodes = 25;
uint256 public feeAmount = 10000000000000000;
uint256 public feeDuration = 28 days;
uint256 public overDuration = 2 days;
uint256 public totalNodesCreated = 0;
IERC20 public hriToken = IERC20(0x0C4BA8e27e337C5e8eaC912D836aA8ED09e80e78);
constructor() {}
function createNode(string memory nodeName, uint256 count) external {
require(count > 0, "Count should be not 0");
address account = msg.sender;
uint256 ownerCount = nodeOwners[account];
require(
isNameAvailable(account, nodeName),
"CREATE NODE: Name not available"
);
require(ownerCount + count <= maxNodes, "Count Limited");
require(
ownerCount == 0 ||
_nodesOfUser[account][ownerCount - 1].creationTime < block.timestamp,
"You are creating many nodes in short time. Please try again later."
);
uint256 price = nodePrice * count;
hriToken.transferFrom(account, address(this), price);
for (uint256 i = 0; i < count; i++) {
uint256 time = block.timestamp + i;
_nodesOfUser[account].push(
NodeEntity({
name: nodeName,
creationTime: time,
lastClaimTime: time,
feeTime: time + feeDuration,
dueTime: time + feeDuration + overDuration
})
);
nodeOwners[account]++;
totalNodesCreated++;
}
}
function isNameAvailable(address account, string memory nodeName)
internal
view
returns (bool)
{
NodeEntity[] memory nodes = _nodesOfUser[account];
for (uint256 i = 0; i < nodes.length; i++) {
if (keccak256(bytes(nodes[i].name)) == keccak256(bytes(nodeName))) {
return false;
}
}
return true;
}
function _getNodeWithCreatime(
NodeEntity[] storage nodes,
uint256 _creationTime
) internal view returns (NodeEntity storage) {
uint256 numberOfNodes = nodes.length;
require(numberOfNodes > 0, "CLAIM ERROR: You don't have nodes to claim");
bool found = false;
int256 index = binarySearch(nodes, 0, numberOfNodes, _creationTime);
uint256 validIndex;
if (index >= 0) {
found = true;
validIndex = uint256(index);
}
require(found, "NODE SEARCH: No NODE Found with this blocktime");
return nodes[validIndex];
}
function binarySearch(
NodeEntity[] memory arr,
uint256 low,
uint256 high,
uint256 x
) internal view returns (int256) {
if (high >= low) {
uint256 mid = (high + low).div(2);
if (arr[mid].creationTime == x) {
return int256(mid);
} else if (arr[mid].creationTime > x) {
return binarySearch(arr, low, mid - 1, x);
} else {
return binarySearch(arr, mid + 1, high, x);
}
} else {
return -1;
}
}
function getNodeReward(NodeEntity memory node)
internal
view
returns (uint256)
{
if (block.timestamp > node.dueTime) {
return 0;
}
return (rewardPerDay * (block.timestamp - node.lastClaimTime)) / 86400;
}
function payNodeFee(uint256 _creationTime) external payable {
require(msg.value >= feeAmount, "Need to pay fee amount");
NodeEntity[] storage nodes = _nodesOfUser[msg.sender];
NodeEntity storage node = _getNodeWithCreatime(nodes, _creationTime);
require(node.dueTime >= block.timestamp, "Node is disabled");
node.feeTime = block.timestamp + feeDuration;
node.dueTime = node.feeTime + overDuration;
}
function payAllNodesFee() external payable {
NodeEntity[] storage nodes = _nodesOfUser[msg.sender];
uint256 nodesCount = 0;
for (uint256 i = 0; i < nodes.length; i++) {
if (nodes[i].dueTime >= block.timestamp) {
nodesCount++;
}
}
require(msg.value >= feeAmount * nodesCount, "Need to pay fee amount");
for (uint256 i = 0; i < nodes.length; i++) {
if (nodes[i].dueTime >= block.timestamp) {
nodes[i].feeTime = block.timestamp + feeDuration;
nodes[i].dueTime = nodes[i].feeTime + overDuration;
}
}
}
function claimNodeReward(uint256 _creationTime) external {
address account = msg.sender;
require(_creationTime > 0, "NODE: CREATIME must be higher than zero");
NodeEntity[] storage nodes = _nodesOfUser[account];
uint256 numberOfNodes = nodes.length;
require(numberOfNodes > 0, "CLAIM ERROR: You don't have nodes to claim");
NodeEntity storage node = _getNodeWithCreatime(nodes, _creationTime);
uint256 rewardNode = getNodeReward(node);
node.lastClaimTime = block.timestamp;
hriToken.transfer(account, rewardNode);
}
function claimAllNodesReward() external {
address account = msg.sender;
NodeEntity[] storage nodes = _nodesOfUser[account];
uint256 nodesCount = nodes.length;
require(nodesCount > 0, "NODE: CREATIME must be higher than zero");
NodeEntity storage _node;
uint256 rewardsTotal = 0;
for (uint256 i = 0; i < nodesCount; i++) {
_node = nodes[i];
uint256 nodeReward = getNodeReward(_node);
rewardsTotal += nodeReward;
_node.lastClaimTime = block.timestamp;
}
hriToken.transfer(account, rewardsTotal);
}
function getRewardTotalAmountOf(address account)
external
view
returns (uint256)
{
uint256 nodesCount;
uint256 rewardCount = 0;
NodeEntity[] storage nodes = _nodesOfUser[account];
nodesCount = nodes.length;
for (uint256 i = 0; i < nodesCount; i++) {
uint256 nodeReward = getNodeReward(nodes[i]);
rewardCount += nodeReward;
}
return rewardCount;
}
function getRewardAmountOf(address account, uint256 creationTime)
external
view
returns (uint256)
{
require(creationTime > 0, "NODE: CREATIME must be higher than zero");
NodeEntity[] storage nodes = _nodesOfUser[account];
uint256 numberOfNodes = nodes.length;
require(numberOfNodes > 0, "CLAIM ERROR: You don't have nodes to claim");
NodeEntity storage node = _getNodeWithCreatime(nodes, creationTime);
uint256 nodeReward = getNodeReward(node);
return nodeReward;
}
function getNodes(address account)
external
view
returns (NodeEntity[] memory nodes)
{
nodes = _nodesOfUser[account];
}
function getNodeNumberOf(address account) external view returns (uint256) {
return nodeOwners[account];
}
function withdrawReward(uint256 amount) external onlyOwner {
hriToken.transfer(msg.sender, amount);
}
function withdrawFee(uint256 amount) external onlyOwner {
payable(msg.sender).transfer(amount);
}
function changeNodePrice(uint256 newNodePrice) external onlyOwner {
nodePrice = newNodePrice;
}
function changeRewardPerNode(uint256 _rewardPerDay) external onlyOwner {
rewardPerDay = _rewardPerDay;
}
function setFeeAmount(uint256 _feeAmount) external onlyOwner {
feeAmount = _feeAmount;
}
function setFeeDuration(uint256 _feeDuration) external onlyOwner {
feeDuration = _feeDuration;
}
function setOverDuration(uint256 _overDuration) external onlyOwner {
overDuration = _overDuration;
}
function setMaxNodes(uint256 _count) external onlyOwner {
maxNodes = _count;
}
receive() external payable {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/math/SafeMath.sol)
pragma solidity ^0.8.0;
// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// 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 (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
/**
* @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) {
return a + b;
}
/**
* @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 a - b;
}
/**
* @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) {
return a * b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting 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 a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
/**
* @dev Returns the integer division of two unsigned integers, reverting 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) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* 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) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (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.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 `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);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (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": false,
"runs": 200
},
"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":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"newNodePrice","type":"uint256"}],"name":"changeNodePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardPerDay","type":"uint256"}],"name":"changeRewardPerNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimAllNodesReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_creationTime","type":"uint256"}],"name":"claimNodeReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"nodeName","type":"string"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"createNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getNodeNumberOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getNodes","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"creationTime","type":"uint256"},{"internalType":"uint256","name":"lastClaimTime","type":"uint256"},{"internalType":"uint256","name":"feeTime","type":"uint256"},{"internalType":"uint256","name":"dueTime","type":"uint256"}],"internalType":"struct HeroInfinityNodePool.NodeEntity[]","name":"nodes","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"creationTime","type":"uint256"}],"name":"getRewardAmountOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getRewardTotalAmountOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hriToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nodeOwners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nodePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"overDuration","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":"payAllNodesFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_creationTime","type":"uint256"}],"name":"payNodeFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeAmount","type":"uint256"}],"name":"setFeeAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeDuration","type":"uint256"}],"name":"setFeeDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"setMaxNodes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_overDuration","type":"uint256"}],"name":"setOverDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalNodesCreated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052692a5a058fc295ed0000006003556901b1ae4d6e2ef50000006004556019600555662386f26fc100006006556224ea006007556202a3006008556000600955730c4ba8e27e337c5e8eac912d836aa8ed09e80e78600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000a557600080fd5b50620000c6620000ba620000cc60201b60201c565b620000d460201b60201c565b62000198565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6133ad80620001a86000396000f3fe6080604052600436106101c65760003560e01c80638013858b116100f7578063b8527aef11610095578063ebbbbb4911610064578063ebbbbb49146105e1578063f1fec2b81461060c578063f2fde38b14610637578063f74c993414610660576101cd565b8063b8527aef14610539578063be35761614610564578063ddf0185f1461058d578063ebb8035a146105b8576101cd565b8063a44c8394116100d1578063a44c8394146104c4578063af8f42b8146104ed578063afdfffcb14610518578063b7427ef91461052f576101cd565b80638013858b146104335780638da5cb5b1461045c5780639ceb5c4814610487576101cd565b8063617740c811610164578063715018a61161013e578063715018a61461038d57806378a6b968146103a45780637b770392146103e15780637be50ce21461040a576101cd565b8063617740c81461030e57806369e15404146103395780636b39268014610364576101cd565b806343b8ff6f116101a057806343b8ff6f14610242578063486af96a1461027f578063523a3f08146102bc57806355cd6a5e146102e5576101cd565b8063031c9dfc146101d25780631a136cd7146101ee57806332ef9c8714610217576101cd565b366101cd57005b600080fd5b6101ec60048036038101906101e79190612574565b61069d565b005b3480156101fa57600080fd5b5061021560048036038101906102109190612574565b6107af565b005b34801561022357600080fd5b5061022c610835565b60405161023991906125b0565b60405180910390f35b34801561024e57600080fd5b5061026960048036038101906102649190612629565b61083b565b60405161027691906125b0565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612629565b6109b4565b6040516102b39190612836565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190612574565b610b0c565b005b3480156102f157600080fd5b5061030c60048036038101906103079190612574565b610c3b565b005b34801561031a57600080fd5b50610323610cc1565b60405161033091906125b0565b60405180910390f35b34801561034557600080fd5b5061034e610cc7565b60405161035b91906125b0565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612574565b610ccd565b005b34801561039957600080fd5b506103a2610d53565b005b3480156103b057600080fd5b506103cb60048036038101906103c69190612629565b610ddb565b6040516103d891906125b0565b60405180910390f35b3480156103ed57600080fd5b5061040860048036038101906104039190612574565b610df3565b005b34801561041657600080fd5b50610431600480360381019061042c919061298d565b610e79565b005b34801561043f57600080fd5b5061045a60048036038101906104559190612574565b6112be565b005b34801561046857600080fd5b50610471611344565b60405161047e91906129f8565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a99190612a13565b61136d565b6040516104bb91906125b0565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190612574565b61152d565b005b3480156104f957600080fd5b506105026115b3565b60405161050f91906125b0565b60405180910390f35b34801561052457600080fd5b5061052d6115b9565b005b610537611837565b005b34801561054557600080fd5b5061054e611a0b565b60405161055b91906125b0565b60405180910390f35b34801561057057600080fd5b5061058b60048036038101906105869190612574565b611a11565b005b34801561059957600080fd5b506105a2611ad7565b6040516105af91906125b0565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612574565b611add565b005b3480156105ed57600080fd5b506105f6611d55565b6040516106039190612ab2565b60405180910390f35b34801561061857600080fd5b50610621611d7b565b60405161062e91906125b0565b60405180910390f35b34801561064357600080fd5b5061065e60048036038101906106599190612629565b611d81565b005b34801561066c57600080fd5b5061068760048036038101906106829190612629565b611e79565b60405161069491906125b0565b60405180910390f35b6006543410156106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990612b2a565b60405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006107318284611ec2565b9050428160040154101561077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190612b96565b60405180910390fd5b600754426107889190612be5565b816003018190555060085481600301546107a29190612be5565b8160040181905550505050565b6107b76120af565b73ffffffffffffffffffffffffffffffffffffffff166107d5611344565b73ffffffffffffffffffffffffffffffffffffffff161461082b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082290612c87565b60405180910390fd5b8060078190555050565b60075481565b600080600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508080549050925060005b838110156109a85760006109848383815481106108ac576108ab612ca7565b5b90600052602060002090600502016040518060a00160405290816000820180546108d590612d05565b80601f016020809104026020016040519081016040528092919081815260200182805461090190612d05565b801561094e5780601f106109235761010080835404028352916020019161094e565b820191906000526020600020905b81548152906001019060200180831161093157829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250506120b7565b905080846109929190612be5565b93505080806109a090612d37565b91505061088c565b50819350505050919050565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610b0157838290600052602060002090600502016040518060a0016040529081600082018054610a4890612d05565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7490612d05565b8015610ac15780601f10610a9657610100808354040283529160200191610ac1565b820191906000526020600020905b815481529060010190602001808311610aa457829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505081526020019060010190610a15565b505050509050919050565b610b146120af565b73ffffffffffffffffffffffffffffffffffffffff16610b32611344565b73ffffffffffffffffffffffffffffffffffffffff1614610b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f90612c87565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610be5929190612d80565b602060405180830381600087803b158015610bff57600080fd5b505af1158015610c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c379190612de1565b5050565b610c436120af565b73ffffffffffffffffffffffffffffffffffffffff16610c61611344565b73ffffffffffffffffffffffffffffffffffffffff1614610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90612c87565b60405180910390fd5b8060088190555050565b60085481565b60065481565b610cd56120af565b73ffffffffffffffffffffffffffffffffffffffff16610cf3611344565b73ffffffffffffffffffffffffffffffffffffffff1614610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090612c87565b60405180910390fd5b8060068190555050565b610d5b6120af565b73ffffffffffffffffffffffffffffffffffffffff16610d79611344565b73ffffffffffffffffffffffffffffffffffffffff1614610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690612c87565b60405180910390fd5b610dd96000612101565b565b60016020528060005260406000206000915090505481565b610dfb6120af565b73ffffffffffffffffffffffffffffffffffffffff16610e19611344565b73ffffffffffffffffffffffffffffffffffffffff1614610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612c87565b60405180910390fd5b8060048190555050565b60008111610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390612e5a565b60405180910390fd5b60003390506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610f0f82856121c5565b610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590612ec6565b60405180910390fd5b6005548382610f5d9190612be5565b1115610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9590612f32565b60405180910390fd5b600081148061101a575042600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600183610ff59190612f52565b8154811061100657611005612ca7565b5b906000526020600020906005020160010154105b611059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110509061301e565b60405180910390fd5b600083600354611069919061303e565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8430846040518463ffffffff1660e01b81526004016110ca93929190613098565b602060405180830381600087803b1580156110e457600080fd5b505af11580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c9190612de1565b5060005b848110156112b657600081426111369190612be5565b9050600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405280898152602001838152602001838152602001600754846111a29190612be5565b8152602001600854600754856111b89190612be5565b6111c29190612be5565b8152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001908051906020019061120a929190612487565b50602082015181600101556040820151816002015560608201518160030155608082015181600401555050600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061128590612d37565b91905055506009600081548092919061129d90612d37565b91905055505080806112ae90612d37565b915050611120565b505050505050565b6112c66120af565b73ffffffffffffffffffffffffffffffffffffffff166112e4611344565b73ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612c87565b60405180910390fd5b8060038190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008082116113b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a890613141565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008180549050905060008111611440576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611437906131d3565b60405180910390fd5b600061144c8386611ec2565b9050600061151e826040518060a001604052908160008201805461146f90612d05565b80601f016020809104026020016040519081016040528092919081815260200182805461149b90612d05565b80156114e85780601f106114bd576101008083540402835291602001916114e8565b820191906000526020600020905b8154815290600101906020018083116114cb57829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250506120b7565b90508094505050505092915050565b6115356120af565b73ffffffffffffffffffffffffffffffffffffffff16611553611344565b73ffffffffffffffffffffffffffffffffffffffff16146115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a090612c87565b60405180910390fd5b8060058190555050565b60045481565b60003390506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000818054905090506000811161164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490613141565b60405180910390fd5b6000806000905060005b8381101561177f5784818154811061167257611671612ca7565b5b906000526020600020906005020192506000611752846040518060a00160405290816000820180546116a390612d05565b80601f01602080910402602001604051908101604052809291908181526020018280546116cf90612d05565b801561171c5780601f106116f15761010080835404028352916020019161171c565b820191906000526020600020905b8154815290600101906020018083116116ff57829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250506120b7565b905080836117609190612be5565b925042846002018190555050808061177790612d37565b915050611657565b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b81526004016117dd929190612d80565b602060405180830381600087803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182f9190612de1565b505050505050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000805b82805490508110156118d7574283828154811061189e5761189d612ca7565b5b906000526020600020906005020160040154106118c45781806118c090612d37565b9250505b80806118cf90612d37565b91505061187e565b50806006546118e6919061303e565b341015611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90612b2a565b60405180910390fd5b60005b8280549050811015611a06574283828154811061194b5761194a612ca7565b5b906000526020600020906005020160040154106119f357600754426119709190612be5565b83828154811061198357611982612ca7565b5b9060005260206000209060050201600301819055506008548382815481106119ae576119ad612ca7565b5b9060005260206000209060050201600301546119ca9190612be5565b8382815481106119dd576119dc612ca7565b5b9060005260206000209060050201600401819055505b80806119fe90612d37565b91505061192b565b505050565b60095481565b611a196120af565b73ffffffffffffffffffffffffffffffffffffffff16611a37611344565b73ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8490612c87565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ad3573d6000803e3d6000fd5b5050565b60055481565b600033905060008211611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613141565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008180549050905060008111611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab906131d3565b60405180910390fd5b6000611bc08386611ec2565b90506000611c92826040518060a0016040529081600082018054611be390612d05565b80601f0160208091040260200160405190810160405280929190818152602001828054611c0f90612d05565b8015611c5c5780601f10611c3157610100808354040283529160200191611c5c565b820191906000526020600020905b815481529060010190602001808311611c3f57829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250506120b7565b9050428260020181905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b8152600401611cfa929190612d80565b602060405180830381600087803b158015611d1457600080fd5b505af1158015611d28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4c9190612de1565b50505050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b611d896120af565b73ffffffffffffffffffffffffffffffffffffffff16611da7611344565b73ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490612c87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6490613265565b60405180910390fd5b611e7681612101565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000808380549050905060008111611f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f06906131d3565b60405180910390fd5b60008061202f86805480602002602001604051908101604052809291908181526020016000905b8282101561202257838290600052602060002090600502016040518060a0016040529081600082018054611f6990612d05565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9590612d05565b8015611fe25780601f10611fb757610100808354040283529160200191611fe2565b820191906000526020600020905b815481529060010190602001808311611fc557829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505081526020019060010190611f36565b5050505060008588612384565b9050600080821261204257600192508190505b82612082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612079906132f7565b60405180910390fd5b86818154811061209557612094612ca7565b5b906000526020600020906005020194505050505092915050565b600033905090565b600081608001514211156120ce57600090506120fc565b620151808260400151426120e29190612f52565b6004546120ef919061303e565b6120f99190613346565b90505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561231357838290600052602060002090600502016040518060a001604052908160008201805461225a90612d05565b80601f016020809104026020016040519081016040528092919081815260200182805461228690612d05565b80156122d35780601f106122a8576101008083540402835291602001916122d3565b820191906000526020600020905b8154815290600101906020018083116122b657829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505081526020019060010190612227565b50505050905060005b81518110156123775783805190602001208282815181106123405761233f612ca7565b5b6020026020010151600001518051906020012014156123645760009250505061237e565b808061236f90612d37565b91505061231c565b5060019150505b92915050565b60008383106124455760006123ae600286866123a09190612be5565b61247190919063ffffffff16565b9050828682815181106123c4576123c3612ca7565b5b60200260200101516020015114156123df5780915050612469565b828682815181106123f3576123f2612ca7565b5b60200260200101516020015111156124255761241d86866001846124179190612f52565b86612384565b915050612469565b61243d866001836124369190612be5565b8686612384565b915050612469565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505b949350505050565b6000818361247f9190613346565b905092915050565b82805461249390612d05565b90600052602060002090601f0160209004810192826124b557600085556124fc565b82601f106124ce57805160ff19168380011785556124fc565b828001600101855582156124fc579182015b828111156124fb5782518255916020019190600101906124e0565b5b509050612509919061250d565b5090565b5b8082111561252657600081600090555060010161250e565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6125518161253e565b811461255c57600080fd5b50565b60008135905061256e81612548565b92915050565b60006020828403121561258a57612589612534565b5b60006125988482850161255f565b91505092915050565b6125aa8161253e565b82525050565b60006020820190506125c560008301846125a1565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125f6826125cb565b9050919050565b612606816125eb565b811461261157600080fd5b50565b600081359050612623816125fd565b92915050565b60006020828403121561263f5761263e612534565b5b600061264d84828501612614565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126bc5780820151818401526020810190506126a1565b838111156126cb576000848401525b50505050565b6000601f19601f8301169050919050565b60006126ed82612682565b6126f7818561268d565b935061270781856020860161269e565b612710816126d1565b840191505092915050565b6127248161253e565b82525050565b600060a083016000830151848203600086015261274782826126e2565b915050602083015161275c602086018261271b565b50604083015161276f604086018261271b565b506060830151612782606086018261271b565b506080830151612795608086018261271b565b508091505092915050565b60006127ac838361272a565b905092915050565b6000602082019050919050565b60006127cc82612656565b6127d68185612661565b9350836020820285016127e885612672565b8060005b85811015612824578484038952815161280585826127a0565b9450612810836127b4565b925060208a019950506001810190506127ec565b50829750879550505050505092915050565b6000602082019050818103600083015261285081846127c1565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61289a826126d1565b810181811067ffffffffffffffff821117156128b9576128b8612862565b5b80604052505050565b60006128cc61252a565b90506128d88282612891565b919050565b600067ffffffffffffffff8211156128f8576128f7612862565b5b612901826126d1565b9050602081019050919050565b82818337600083830152505050565b600061293061292b846128dd565b6128c2565b90508281526020810184848401111561294c5761294b61285d565b5b61295784828561290e565b509392505050565b600082601f83011261297457612973612858565b5b813561298484826020860161291d565b91505092915050565b600080604083850312156129a4576129a3612534565b5b600083013567ffffffffffffffff8111156129c2576129c1612539565b5b6129ce8582860161295f565b92505060206129df8582860161255f565b9150509250929050565b6129f2816125eb565b82525050565b6000602082019050612a0d60008301846129e9565b92915050565b60008060408385031215612a2a57612a29612534565b5b6000612a3885828601612614565b9250506020612a498582860161255f565b9150509250929050565b6000819050919050565b6000612a78612a73612a6e846125cb565b612a53565b6125cb565b9050919050565b6000612a8a82612a5d565b9050919050565b6000612a9c82612a7f565b9050919050565b612aac81612a91565b82525050565b6000602082019050612ac76000830184612aa3565b92915050565b600082825260208201905092915050565b7f4e65656420746f207061792066656520616d6f756e7400000000000000000000600082015250565b6000612b14601683612acd565b9150612b1f82612ade565b602082019050919050565b60006020820190508181036000830152612b4381612b07565b9050919050565b7f4e6f64652069732064697361626c656400000000000000000000000000000000600082015250565b6000612b80601083612acd565b9150612b8b82612b4a565b602082019050919050565b60006020820190508181036000830152612baf81612b73565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bf08261253e565b9150612bfb8361253e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c3057612c2f612bb6565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c71602083612acd565b9150612c7c82612c3b565b602082019050919050565b60006020820190508181036000830152612ca081612c64565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d1d57607f821691505b60208210811415612d3157612d30612cd6565b5b50919050565b6000612d428261253e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d7557612d74612bb6565b5b600182019050919050565b6000604082019050612d9560008301856129e9565b612da260208301846125a1565b9392505050565b60008115159050919050565b612dbe81612da9565b8114612dc957600080fd5b50565b600081519050612ddb81612db5565b92915050565b600060208284031215612df757612df6612534565b5b6000612e0584828501612dcc565b91505092915050565b7f436f756e742073686f756c64206265206e6f7420300000000000000000000000600082015250565b6000612e44601583612acd565b9150612e4f82612e0e565b602082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b7f435245415445204e4f44453a204e616d65206e6f7420617661696c61626c6500600082015250565b6000612eb0601f83612acd565b9150612ebb82612e7a565b602082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f436f756e74204c696d6974656400000000000000000000000000000000000000600082015250565b6000612f1c600d83612acd565b9150612f2782612ee6565b602082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b6000612f5d8261253e565b9150612f688361253e565b925082821015612f7b57612f7a612bb6565b5b828203905092915050565b7f596f7520617265206372656174696e67206d616e79206e6f64657320696e207360008201527f686f72742074696d652e20506c656173652074727920616761696e206c61746560208201527f722e000000000000000000000000000000000000000000000000000000000000604082015250565b6000613008604283612acd565b915061301382612f86565b606082019050919050565b6000602082019050818103600083015261303781612ffb565b9050919050565b60006130498261253e565b91506130548361253e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561308d5761308c612bb6565b5b828202905092915050565b60006060820190506130ad60008301866129e9565b6130ba60208301856129e9565b6130c760408301846125a1565b949350505050565b7f4e4f44453a204352454154494d45206d7573742062652068696768657220746860008201527f616e207a65726f00000000000000000000000000000000000000000000000000602082015250565b600061312b602783612acd565b9150613136826130cf565b604082019050919050565b6000602082019050818103600083015261315a8161311e565b9050919050565b7f434c41494d204552524f523a20596f7520646f6e27742068617665206e6f646560008201527f7320746f20636c61696d00000000000000000000000000000000000000000000602082015250565b60006131bd602a83612acd565b91506131c882613161565b604082019050919050565b600060208201905081810360008301526131ec816131b0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061324f602683612acd565b915061325a826131f3565b604082019050919050565b6000602082019050818103600083015261327e81613242565b9050919050565b7f4e4f4445205345415243483a204e6f204e4f444520466f756e6420776974682060008201527f7468697320626c6f636b74696d65000000000000000000000000000000000000602082015250565b60006132e1602e83612acd565b91506132ec82613285565b604082019050919050565b60006020820190508181036000830152613310816132d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133518261253e565b915061335c8361253e565b92508261336c5761336b613317565b5b82820490509291505056fea26469706673582212201ff71d9d81b503ec49b3f1f196cdfac5b016f3ac1a1a852dbfb88832b586d11064736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c80638013858b116100f7578063b8527aef11610095578063ebbbbb4911610064578063ebbbbb49146105e1578063f1fec2b81461060c578063f2fde38b14610637578063f74c993414610660576101cd565b8063b8527aef14610539578063be35761614610564578063ddf0185f1461058d578063ebb8035a146105b8576101cd565b8063a44c8394116100d1578063a44c8394146104c4578063af8f42b8146104ed578063afdfffcb14610518578063b7427ef91461052f576101cd565b80638013858b146104335780638da5cb5b1461045c5780639ceb5c4814610487576101cd565b8063617740c811610164578063715018a61161013e578063715018a61461038d57806378a6b968146103a45780637b770392146103e15780637be50ce21461040a576101cd565b8063617740c81461030e57806369e15404146103395780636b39268014610364576101cd565b806343b8ff6f116101a057806343b8ff6f14610242578063486af96a1461027f578063523a3f08146102bc57806355cd6a5e146102e5576101cd565b8063031c9dfc146101d25780631a136cd7146101ee57806332ef9c8714610217576101cd565b366101cd57005b600080fd5b6101ec60048036038101906101e79190612574565b61069d565b005b3480156101fa57600080fd5b5061021560048036038101906102109190612574565b6107af565b005b34801561022357600080fd5b5061022c610835565b60405161023991906125b0565b60405180910390f35b34801561024e57600080fd5b5061026960048036038101906102649190612629565b61083b565b60405161027691906125b0565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612629565b6109b4565b6040516102b39190612836565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190612574565b610b0c565b005b3480156102f157600080fd5b5061030c60048036038101906103079190612574565b610c3b565b005b34801561031a57600080fd5b50610323610cc1565b60405161033091906125b0565b60405180910390f35b34801561034557600080fd5b5061034e610cc7565b60405161035b91906125b0565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612574565b610ccd565b005b34801561039957600080fd5b506103a2610d53565b005b3480156103b057600080fd5b506103cb60048036038101906103c69190612629565b610ddb565b6040516103d891906125b0565b60405180910390f35b3480156103ed57600080fd5b5061040860048036038101906104039190612574565b610df3565b005b34801561041657600080fd5b50610431600480360381019061042c919061298d565b610e79565b005b34801561043f57600080fd5b5061045a60048036038101906104559190612574565b6112be565b005b34801561046857600080fd5b50610471611344565b60405161047e91906129f8565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a99190612a13565b61136d565b6040516104bb91906125b0565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190612574565b61152d565b005b3480156104f957600080fd5b506105026115b3565b60405161050f91906125b0565b60405180910390f35b34801561052457600080fd5b5061052d6115b9565b005b610537611837565b005b34801561054557600080fd5b5061054e611a0b565b60405161055b91906125b0565b60405180910390f35b34801561057057600080fd5b5061058b60048036038101906105869190612574565b611a11565b005b34801561059957600080fd5b506105a2611ad7565b6040516105af91906125b0565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612574565b611add565b005b3480156105ed57600080fd5b506105f6611d55565b6040516106039190612ab2565b60405180910390f35b34801561061857600080fd5b50610621611d7b565b60405161062e91906125b0565b60405180910390f35b34801561064357600080fd5b5061065e60048036038101906106599190612629565b611d81565b005b34801561066c57600080fd5b5061068760048036038101906106829190612629565b611e79565b60405161069491906125b0565b60405180910390f35b6006543410156106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990612b2a565b60405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006107318284611ec2565b9050428160040154101561077a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077190612b96565b60405180910390fd5b600754426107889190612be5565b816003018190555060085481600301546107a29190612be5565b8160040181905550505050565b6107b76120af565b73ffffffffffffffffffffffffffffffffffffffff166107d5611344565b73ffffffffffffffffffffffffffffffffffffffff161461082b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082290612c87565b60405180910390fd5b8060078190555050565b60075481565b600080600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508080549050925060005b838110156109a85760006109848383815481106108ac576108ab612ca7565b5b90600052602060002090600502016040518060a00160405290816000820180546108d590612d05565b80601f016020809104026020016040519081016040528092919081815260200182805461090190612d05565b801561094e5780601f106109235761010080835404028352916020019161094e565b820191906000526020600020905b81548152906001019060200180831161093157829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250506120b7565b905080846109929190612be5565b93505080806109a090612d37565b91505061088c565b50819350505050919050565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610b0157838290600052602060002090600502016040518060a0016040529081600082018054610a4890612d05565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7490612d05565b8015610ac15780601f10610a9657610100808354040283529160200191610ac1565b820191906000526020600020905b815481529060010190602001808311610aa457829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505081526020019060010190610a15565b505050509050919050565b610b146120af565b73ffffffffffffffffffffffffffffffffffffffff16610b32611344565b73ffffffffffffffffffffffffffffffffffffffff1614610b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f90612c87565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610be5929190612d80565b602060405180830381600087803b158015610bff57600080fd5b505af1158015610c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c379190612de1565b5050565b610c436120af565b73ffffffffffffffffffffffffffffffffffffffff16610c61611344565b73ffffffffffffffffffffffffffffffffffffffff1614610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90612c87565b60405180910390fd5b8060088190555050565b60085481565b60065481565b610cd56120af565b73ffffffffffffffffffffffffffffffffffffffff16610cf3611344565b73ffffffffffffffffffffffffffffffffffffffff1614610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090612c87565b60405180910390fd5b8060068190555050565b610d5b6120af565b73ffffffffffffffffffffffffffffffffffffffff16610d79611344565b73ffffffffffffffffffffffffffffffffffffffff1614610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690612c87565b60405180910390fd5b610dd96000612101565b565b60016020528060005260406000206000915090505481565b610dfb6120af565b73ffffffffffffffffffffffffffffffffffffffff16610e19611344565b73ffffffffffffffffffffffffffffffffffffffff1614610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612c87565b60405180910390fd5b8060048190555050565b60008111610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390612e5a565b60405180910390fd5b60003390506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610f0f82856121c5565b610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590612ec6565b60405180910390fd5b6005548382610f5d9190612be5565b1115610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9590612f32565b60405180910390fd5b600081148061101a575042600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600183610ff59190612f52565b8154811061100657611005612ca7565b5b906000526020600020906005020160010154105b611059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110509061301e565b60405180910390fd5b600083600354611069919061303e565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8430846040518463ffffffff1660e01b81526004016110ca93929190613098565b602060405180830381600087803b1580156110e457600080fd5b505af11580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c9190612de1565b5060005b848110156112b657600081426111369190612be5565b9050600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405280898152602001838152602001838152602001600754846111a29190612be5565b8152602001600854600754856111b89190612be5565b6111c29190612be5565b8152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001908051906020019061120a929190612487565b50602082015181600101556040820151816002015560608201518160030155608082015181600401555050600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061128590612d37565b91905055506009600081548092919061129d90612d37565b91905055505080806112ae90612d37565b915050611120565b505050505050565b6112c66120af565b73ffffffffffffffffffffffffffffffffffffffff166112e4611344565b73ffffffffffffffffffffffffffffffffffffffff161461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612c87565b60405180910390fd5b8060038190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008082116113b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a890613141565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008180549050905060008111611440576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611437906131d3565b60405180910390fd5b600061144c8386611ec2565b9050600061151e826040518060a001604052908160008201805461146f90612d05565b80601f016020809104026020016040519081016040528092919081815260200182805461149b90612d05565b80156114e85780601f106114bd576101008083540402835291602001916114e8565b820191906000526020600020905b8154815290600101906020018083116114cb57829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250506120b7565b90508094505050505092915050565b6115356120af565b73ffffffffffffffffffffffffffffffffffffffff16611553611344565b73ffffffffffffffffffffffffffffffffffffffff16146115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a090612c87565b60405180910390fd5b8060058190555050565b60045481565b60003390506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000818054905090506000811161164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490613141565b60405180910390fd5b6000806000905060005b8381101561177f5784818154811061167257611671612ca7565b5b906000526020600020906005020192506000611752846040518060a00160405290816000820180546116a390612d05565b80601f01602080910402602001604051908101604052809291908181526020018280546116cf90612d05565b801561171c5780601f106116f15761010080835404028352916020019161171c565b820191906000526020600020905b8154815290600101906020018083116116ff57829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250506120b7565b905080836117609190612be5565b925042846002018190555050808061177790612d37565b915050611657565b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b81526004016117dd929190612d80565b602060405180830381600087803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182f9190612de1565b505050505050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000805b82805490508110156118d7574283828154811061189e5761189d612ca7565b5b906000526020600020906005020160040154106118c45781806118c090612d37565b9250505b80806118cf90612d37565b91505061187e565b50806006546118e6919061303e565b341015611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90612b2a565b60405180910390fd5b60005b8280549050811015611a06574283828154811061194b5761194a612ca7565b5b906000526020600020906005020160040154106119f357600754426119709190612be5565b83828154811061198357611982612ca7565b5b9060005260206000209060050201600301819055506008548382815481106119ae576119ad612ca7565b5b9060005260206000209060050201600301546119ca9190612be5565b8382815481106119dd576119dc612ca7565b5b9060005260206000209060050201600401819055505b80806119fe90612d37565b91505061192b565b505050565b60095481565b611a196120af565b73ffffffffffffffffffffffffffffffffffffffff16611a37611344565b73ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8490612c87565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ad3573d6000803e3d6000fd5b5050565b60055481565b600033905060008211611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613141565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008180549050905060008111611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab906131d3565b60405180910390fd5b6000611bc08386611ec2565b90506000611c92826040518060a0016040529081600082018054611be390612d05565b80601f0160208091040260200160405190810160405280929190818152602001828054611c0f90612d05565b8015611c5c5780601f10611c3157610100808354040283529160200191611c5c565b820191906000526020600020905b815481529060010190602001808311611c3f57829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250506120b7565b9050428260020181905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836040518363ffffffff1660e01b8152600401611cfa929190612d80565b602060405180830381600087803b158015611d1457600080fd5b505af1158015611d28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4c9190612de1565b50505050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b611d896120af565b73ffffffffffffffffffffffffffffffffffffffff16611da7611344565b73ffffffffffffffffffffffffffffffffffffffff1614611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490612c87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6490613265565b60405180910390fd5b611e7681612101565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000808380549050905060008111611f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f06906131d3565b60405180910390fd5b60008061202f86805480602002602001604051908101604052809291908181526020016000905b8282101561202257838290600052602060002090600502016040518060a0016040529081600082018054611f6990612d05565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9590612d05565b8015611fe25780601f10611fb757610100808354040283529160200191611fe2565b820191906000526020600020905b815481529060010190602001808311611fc557829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505081526020019060010190611f36565b5050505060008588612384565b9050600080821261204257600192508190505b82612082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612079906132f7565b60405180910390fd5b86818154811061209557612094612ca7565b5b906000526020600020906005020194505050505092915050565b600033905090565b600081608001514211156120ce57600090506120fc565b620151808260400151426120e29190612f52565b6004546120ef919061303e565b6120f99190613346565b90505b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561231357838290600052602060002090600502016040518060a001604052908160008201805461225a90612d05565b80601f016020809104026020016040519081016040528092919081815260200182805461228690612d05565b80156122d35780601f106122a8576101008083540402835291602001916122d3565b820191906000526020600020905b8154815290600101906020018083116122b657829003601f168201915b5050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505081526020019060010190612227565b50505050905060005b81518110156123775783805190602001208282815181106123405761233f612ca7565b5b6020026020010151600001518051906020012014156123645760009250505061237e565b808061236f90612d37565b91505061231c565b5060019150505b92915050565b60008383106124455760006123ae600286866123a09190612be5565b61247190919063ffffffff16565b9050828682815181106123c4576123c3612ca7565b5b60200260200101516020015114156123df5780915050612469565b828682815181106123f3576123f2612ca7565b5b60200260200101516020015111156124255761241d86866001846124179190612f52565b86612384565b915050612469565b61243d866001836124369190612be5565b8686612384565b915050612469565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505b949350505050565b6000818361247f9190613346565b905092915050565b82805461249390612d05565b90600052602060002090601f0160209004810192826124b557600085556124fc565b82601f106124ce57805160ff19168380011785556124fc565b828001600101855582156124fc579182015b828111156124fb5782518255916020019190600101906124e0565b5b509050612509919061250d565b5090565b5b8082111561252657600081600090555060010161250e565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6125518161253e565b811461255c57600080fd5b50565b60008135905061256e81612548565b92915050565b60006020828403121561258a57612589612534565b5b60006125988482850161255f565b91505092915050565b6125aa8161253e565b82525050565b60006020820190506125c560008301846125a1565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125f6826125cb565b9050919050565b612606816125eb565b811461261157600080fd5b50565b600081359050612623816125fd565b92915050565b60006020828403121561263f5761263e612534565b5b600061264d84828501612614565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126bc5780820151818401526020810190506126a1565b838111156126cb576000848401525b50505050565b6000601f19601f8301169050919050565b60006126ed82612682565b6126f7818561268d565b935061270781856020860161269e565b612710816126d1565b840191505092915050565b6127248161253e565b82525050565b600060a083016000830151848203600086015261274782826126e2565b915050602083015161275c602086018261271b565b50604083015161276f604086018261271b565b506060830151612782606086018261271b565b506080830151612795608086018261271b565b508091505092915050565b60006127ac838361272a565b905092915050565b6000602082019050919050565b60006127cc82612656565b6127d68185612661565b9350836020820285016127e885612672565b8060005b85811015612824578484038952815161280585826127a0565b9450612810836127b4565b925060208a019950506001810190506127ec565b50829750879550505050505092915050565b6000602082019050818103600083015261285081846127c1565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61289a826126d1565b810181811067ffffffffffffffff821117156128b9576128b8612862565b5b80604052505050565b60006128cc61252a565b90506128d88282612891565b919050565b600067ffffffffffffffff8211156128f8576128f7612862565b5b612901826126d1565b9050602081019050919050565b82818337600083830152505050565b600061293061292b846128dd565b6128c2565b90508281526020810184848401111561294c5761294b61285d565b5b61295784828561290e565b509392505050565b600082601f83011261297457612973612858565b5b813561298484826020860161291d565b91505092915050565b600080604083850312156129a4576129a3612534565b5b600083013567ffffffffffffffff8111156129c2576129c1612539565b5b6129ce8582860161295f565b92505060206129df8582860161255f565b9150509250929050565b6129f2816125eb565b82525050565b6000602082019050612a0d60008301846129e9565b92915050565b60008060408385031215612a2a57612a29612534565b5b6000612a3885828601612614565b9250506020612a498582860161255f565b9150509250929050565b6000819050919050565b6000612a78612a73612a6e846125cb565b612a53565b6125cb565b9050919050565b6000612a8a82612a5d565b9050919050565b6000612a9c82612a7f565b9050919050565b612aac81612a91565b82525050565b6000602082019050612ac76000830184612aa3565b92915050565b600082825260208201905092915050565b7f4e65656420746f207061792066656520616d6f756e7400000000000000000000600082015250565b6000612b14601683612acd565b9150612b1f82612ade565b602082019050919050565b60006020820190508181036000830152612b4381612b07565b9050919050565b7f4e6f64652069732064697361626c656400000000000000000000000000000000600082015250565b6000612b80601083612acd565b9150612b8b82612b4a565b602082019050919050565b60006020820190508181036000830152612baf81612b73565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bf08261253e565b9150612bfb8361253e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c3057612c2f612bb6565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c71602083612acd565b9150612c7c82612c3b565b602082019050919050565b60006020820190508181036000830152612ca081612c64565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d1d57607f821691505b60208210811415612d3157612d30612cd6565b5b50919050565b6000612d428261253e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d7557612d74612bb6565b5b600182019050919050565b6000604082019050612d9560008301856129e9565b612da260208301846125a1565b9392505050565b60008115159050919050565b612dbe81612da9565b8114612dc957600080fd5b50565b600081519050612ddb81612db5565b92915050565b600060208284031215612df757612df6612534565b5b6000612e0584828501612dcc565b91505092915050565b7f436f756e742073686f756c64206265206e6f7420300000000000000000000000600082015250565b6000612e44601583612acd565b9150612e4f82612e0e565b602082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b7f435245415445204e4f44453a204e616d65206e6f7420617661696c61626c6500600082015250565b6000612eb0601f83612acd565b9150612ebb82612e7a565b602082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f436f756e74204c696d6974656400000000000000000000000000000000000000600082015250565b6000612f1c600d83612acd565b9150612f2782612ee6565b602082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b6000612f5d8261253e565b9150612f688361253e565b925082821015612f7b57612f7a612bb6565b5b828203905092915050565b7f596f7520617265206372656174696e67206d616e79206e6f64657320696e207360008201527f686f72742074696d652e20506c656173652074727920616761696e206c61746560208201527f722e000000000000000000000000000000000000000000000000000000000000604082015250565b6000613008604283612acd565b915061301382612f86565b606082019050919050565b6000602082019050818103600083015261303781612ffb565b9050919050565b60006130498261253e565b91506130548361253e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561308d5761308c612bb6565b5b828202905092915050565b60006060820190506130ad60008301866129e9565b6130ba60208301856129e9565b6130c760408301846125a1565b949350505050565b7f4e4f44453a204352454154494d45206d7573742062652068696768657220746860008201527f616e207a65726f00000000000000000000000000000000000000000000000000602082015250565b600061312b602783612acd565b9150613136826130cf565b604082019050919050565b6000602082019050818103600083015261315a8161311e565b9050919050565b7f434c41494d204552524f523a20596f7520646f6e27742068617665206e6f646560008201527f7320746f20636c61696d00000000000000000000000000000000000000000000602082015250565b60006131bd602a83612acd565b91506131c882613161565b604082019050919050565b600060208201905081810360008301526131ec816131b0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061324f602683612acd565b915061325a826131f3565b604082019050919050565b6000602082019050818103600083015261327e81613242565b9050919050565b7f4e4f4445205345415243483a204e6f204e4f444520466f756e6420776974682060008201527f7468697320626c6f636b74696d65000000000000000000000000000000000000602082015250565b60006132e1602e83612acd565b91506132ec82613285565b604082019050919050565b60006020820190508181036000830152613310816132d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133518261253e565b915061335c8361253e565b92508261336c5761336b613317565b5b82820490509291505056fea26469706673582212201ff71d9d81b503ec49b3f1f196cdfac5b016f3ac1a1a852dbfb88832b586d11064736f6c63430008090033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.