More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 11,171 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 21515225 | 30 days ago | IN | 0 ETH | 0.0001089 | ||||
Withdraw | 21515222 | 30 days ago | IN | 0 ETH | 0.00053841 | ||||
Withdraw | 21142751 | 82 days ago | IN | 0 ETH | 0.00170987 | ||||
Deposit | 21013831 | 100 days ago | IN | 0 ETH | 0.00098609 | ||||
Rug Pull | 20827583 | 126 days ago | IN | 0 ETH | 0.00414066 | ||||
Withdraw | 20533532 | 167 days ago | IN | 0 ETH | 0.00032156 | ||||
Rug Pull | 19631665 | 293 days ago | IN | 0 ETH | 0.00220455 | ||||
Rug Pull | 19629711 | 293 days ago | IN | 0 ETH | 0.00190462 | ||||
Rug Pull | 19629710 | 293 days ago | IN | 0 ETH | 0.00178702 | ||||
Withdraw | 18907541 | 394 days ago | IN | 0 ETH | 0.00153061 | ||||
Withdraw | 18867460 | 400 days ago | IN | 0 ETH | 0.00160438 | ||||
Withdraw | 18299640 | 480 days ago | IN | 0 ETH | 0.0008731 | ||||
Withdraw | 18165949 | 498 days ago | IN | 0 ETH | 0.00238776 | ||||
Rug Pull | 18109205 | 506 days ago | IN | 0 ETH | 0.00112544 | ||||
Withdraw | 17256326 | 626 days ago | IN | 0 ETH | 0.00444923 | ||||
Withdraw | 16928757 | 672 days ago | IN | 0 ETH | 0.00360545 | ||||
Rug Pull | 16339520 | 755 days ago | IN | 0 ETH | 0.00185803 | ||||
Withdraw | 16335279 | 755 days ago | IN | 0 ETH | 0.0029726 | ||||
Rug Pull | 16335272 | 755 days ago | IN | 0 ETH | 0.00278632 | ||||
Deposit | 16333119 | 756 days ago | IN | 0 ETH | 0.00104375 | ||||
Withdraw | 15919503 | 814 days ago | IN | 0 ETH | 0.00299921 | ||||
Withdraw | 15919480 | 814 days ago | IN | 0 ETH | 0.00302628 | ||||
Rug Pull | 15858826 | 822 days ago | IN | 0 ETH | 0.00100018 | ||||
Withdraw | 15774012 | 834 days ago | IN | 0 ETH | 0.00268025 | ||||
Rug Pull | 15773991 | 834 days ago | IN | 0 ETH | 0.00208974 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GiverOfHope
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-01 */ /* Spindle Braiding Deposit Rope Here to Generate HOPE */ pragma solidity ^0.5.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 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. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view 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. * * 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(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _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 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 onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see {ERC20Detailed}. */ 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); } /** * @title Roles * @dev Library for managing addresses assigned to a Role. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev Give an account access to this role. */ function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } /** * @dev Remove an account's access to this role. */ function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } /** * @dev Check if an account has this role. * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } contract MinterRole is Context { using Roles for Roles.Role; event MinterAdded(address indexed account); event MinterRemoved(address indexed account); Roles.Role private _minters; constructor () internal { _addMinter(_msgSender()); } modifier onlyMinter() { require(isMinter(_msgSender()), "MinterRole: caller does not have the Minter role"); _; } function isMinter(address account) public view returns (bool) { return _minters.has(account); } function addMinter(address account) public onlyMinter { _addMinter(account); } function renounceMinter() public { _removeMinter(_msgSender()); } function _addMinter(address account) internal { _minters.add(account); emit MinterAdded(account); } function _removeMinter(address account) internal { _minters.remove(account); emit MinterRemoved(account); } } /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on 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-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath#mul: OVERFLOW"); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath#div: DIVISION_BY_ZERO"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath#sub: UNDERFLOW"); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath#add: OVERFLOW"); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath#mod: DIVISION_BY_ZERO"); return a % b; } } /** * Copyright 2018 ZeroEx Intl. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Utility library of inline functions on addresses */ library Address { /** * Returns whether the target address is a contract * @dev This function will return false if invoked during the constructor of a contract, * as the code is not actually created until after the constructor finishes. * @param account address of the account to check * @return whether the target address is a contract */ function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // XXX Currently there is no better way to check if there is a contract in an address // than to check the size of the code at that address. // See https://ethereum.stackexchange.com/a/14016/36603 // for more details about how this works. // TODO Check this again before the Serenity release, because all addresses will be // contracts then. assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } } contract CanTransferRole is Context { using Roles for Roles.Role; event CanTransferAdded(address indexed account); event CanTransferRemoved(address indexed account); Roles.Role private _canTransfer; constructor () internal { _addCanTransfer(_msgSender()); } modifier onlyCanTransfer() { require(canTransfer(_msgSender()), "CanTransferRole: caller does not have the CanTransfer role"); _; } function canTransfer(address account) public view returns (bool) { return _canTransfer.has(account); } function addCanTransfer(address account) public onlyCanTransfer { _addCanTransfer(account); } function renounceCanTransfer() public { _removeCanTransfer(_msgSender()); } function _addCanTransfer(address account) internal { _canTransfer.add(account); emit CanTransferAdded(account); } function _removeCanTransfer(address account) internal { _canTransfer.remove(account); emit CanTransferRemoved(account); } } contract HopeNonTradable is Ownable, MinterRole, CanTransferRole { using SafeMath for uint256; event Transfer(address indexed from, address indexed to, uint256 value); mapping (address => uint256) private _balances; uint256 private _totalSupply; uint256 private _totalClaimed; string public name = "HOPE - Non Tradable"; string public symbol = "HOPE"; uint8 public decimals = 18; /** * @dev Total number of tokens in existence. */ function totalSupply() public view returns (uint256) { return _totalSupply; } // Returns the total claimed hope // This is just purely used to display the total hope claimed by users on the frontend function totalClaimed() public view returns (uint256) { return _totalClaimed; } // Add hope claimed function addClaimed(uint256 _amount) public onlyCanTransfer { _totalClaimed = _totalClaimed.add(_amount); } // Set hope claimed to a custom value, for if we wanna reset the counter on new season release function setClaimed(uint256 _amount) public onlyCanTransfer { require(_amount >= 0, "Cant be negative"); _totalClaimed = _amount; } // As this token is non tradable, only minters are allowed to transfer tokens between accounts function transfer(address receiver, uint numTokens) public onlyCanTransfer returns (bool) { require(numTokens <= _balances[msg.sender]); _balances[msg.sender] = _balances[msg.sender].sub(numTokens); _balances[receiver] = _balances[receiver].add(numTokens); emit Transfer(msg.sender, receiver, numTokens); return true; } // As this token is non tradable, only minters are allowed to transfer tokens between accounts function transferFrom(address owner, address buyer, uint numTokens) public onlyCanTransfer returns (bool) { require(numTokens <= _balances[owner]); _balances[owner] = _balances[owner].sub(numTokens); _balances[buyer] = _balances[buyer].add(numTokens); emit Transfer(owner, buyer, numTokens); return true; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return A uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } function mint(address _to, uint256 _amount) public onlyMinter { _mint(_to, _amount); } function burn(address _account, uint256 value) public onlyCanTransfer { require(_balances[_account] >= value, "Cannot burn more than address has"); _burn(_account, value); } /** * @dev Internal function that mints an amount of the token and assigns it to * an account. This encapsulates the modification of balances such that the * proper events are emitted. * @param account The account that will receive the created tokens. * @param value The amount that will be created. */ function _mint(address account, uint256 value) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } /** * @dev Internal function that burns an amount of the token of a given * account. * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burn(address account, uint256 value) internal { require(account != address(0), "ERC20: burn from the zero address"); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } } contract GiverOfHope is Ownable { using SafeMath for uint256; // Info of each user. struct UserInfo { uint256 amount; // How many tokens the user has provided. uint256 rewardDebt; // Reward debt. See explanation below. // // We do some fancy math here. Basically, any point in time, the amount of HOPEs // entitled to a user but is pending to be distributed is: // // pending reward = (user.amount * pool.accHopePerShare) - user.rewardDebt // // Whenever a user deposits or withdraws tokens to a pool. Here's what happens: // 1. The pool's `accHopePerShare` (and `lastRewardBlock`) gets updated. // 2. User receives the pending reward sent to his/her address. // 3. User's `amount` gets updated. // 4. User's `rewardDebt` gets updated. } // Info of each pool. struct PoolInfo { IERC20 token; // Address of token contract. uint256 hopesPerDay; // The amount of hopes per day generated for each token staked uint256 maxStake; // The maximum amount of tokens which can be staked in this pool uint256 lastUpdateTime; // Last timestamp that HOPEs distribution occurs. uint256 accHopePerShare; // Accumulated HOPEs per share, times 1e12. See below. } // Treasury address. address public treasuryAddr; // Info of each pool. PoolInfo[] public poolInfo; // Info of each user that stakes LP tokens. mapping(uint256 => mapping(address => UserInfo)) public userInfo; // Record whether the pair has been added. mapping(address => uint256) public tokenPID; HopeNonTradable public Hope; event Deposit(address indexed user, uint256 indexed pid, uint256 amount); event Withdraw(address indexed user, uint256 indexed pid, uint256 amount); event EmergencyWithdraw( address indexed user, uint256 indexed pid, uint256 amount ); constructor(HopeNonTradable _hopeAddress, address _treasuryAddr) public { Hope = _hopeAddress; treasuryAddr = _treasuryAddr; } function poolLength() external view returns (uint256) { return poolInfo.length; } // Add a new token to the pool. Can only be called by the owner. // XXX DO NOT add the same token more than once. Rewards will be messed up if you do. function add(IERC20 _token, uint256 _hopesPerDay, uint256 _maxStake) public onlyOwner { require(tokenPID[address(_token)] == 0, "GiverOfHope:duplicate add."); require(address(_token) != address(Hope), "Cannot add Hope as a pool" ); poolInfo.push( PoolInfo({ token: _token, maxStake: _maxStake, hopesPerDay: _hopesPerDay, lastUpdateTime: block.timestamp, accHopePerShare: 0 }) ); tokenPID[address(_token)] = poolInfo.length; } // Set a new max stake. Value must be greater than previous one, // to not give an unfair advantage to people who already staked > new max function setMaxStake(uint256 pid, uint256 amount) public onlyOwner { require(amount >= 0, "Max stake cannot be negative"); poolInfo[pid].maxStake = amount; } // Set the amount of HOPEs generated per day for each token staked function setHopesPerDay(uint256 pid, uint256 amount) public onlyOwner { require(amount >= 0, "Hopes per day cannot be negative"); updatePool(pid); poolInfo[pid].hopesPerDay = amount; } // View function to see pending HOPEs on frontend. function pendingHope(uint256 _pid, address _user) public view returns (uint256) { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 blockTime = block.timestamp; uint256 accHopePerShare = pool.accHopePerShare; uint256 tokenSupply = pool.token.balanceOf(address(this)); if (blockTime > pool.lastUpdateTime && tokenSupply != 0) { uint256 hopeReward = pendingHopeOfPool(_pid); accHopePerShare = accHopePerShare.add(hopeReward.mul(1e12).div(tokenSupply)); } return user.amount.mul(accHopePerShare).div(1e12).sub(user.rewardDebt); } // View function to calculate the total pending HOPEs of address across all pools function totalPendingHope(address _user) public view returns (uint256) { uint256 total = 0; uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; ++pid) { total = total.add(pendingHope(pid, _user)); } return total; } // View function to see pending HOPEs on the whole pool function pendingHopeOfPool(uint256 _pid) public view returns (uint256) { PoolInfo storage pool = poolInfo[_pid]; uint256 blockTime = block.timestamp; uint256 tokenSupply = pool.token.balanceOf(address(this)); return blockTime.sub(pool.lastUpdateTime).mul(tokenSupply.mul(pool.hopesPerDay).div(86400)); } // Harvest pending HOPEs of a list of pools. // Be careful of gas spending if you try to harvest a big number of pools // Might be worth it checking in the frontend for the pool IDs with pending hope for this address and only harvest those function rugPull(uint256[] memory _pids) public { for (uint i=0; i < _pids.length; i++) { withdraw(_pids[i], 0); } } // Update reward variables for all pools. Be careful of gas spending! function rugPullAll() public { uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; ++pid) { updatePool(pid); } } // Update reward variables of the given pool to be up-to-date. function updatePool(uint256 _pid) public { PoolInfo storage pool = poolInfo[_pid]; if (block.timestamp <= pool.lastUpdateTime) { return; } if (pool.hopesPerDay == 0) { pool.lastUpdateTime = block.timestamp; return; } uint256 tokenSupply = pool.token.balanceOf(address(this)); if (tokenSupply == 0) { pool.lastUpdateTime = block.timestamp; return; } // return blockTime.sub(lastUpdateTime[account]).mul(balanceOf(account).mul(hopesPerDay).div(86400)); uint256 hopeReward = pendingHopeOfPool(_pid); Hope.mint(treasuryAddr, hopeReward.div(40)); // 2.5% HOPE for the treasury (Usable to purchase NFTs) Hope.mint(address(this), hopeReward); pool.accHopePerShare = pool.accHopePerShare.add(hopeReward.mul(1e12).div(tokenSupply)); pool.lastUpdateTime = block.timestamp; } // Deposit LP tokens to pool for HOPE allocation. function deposit(uint256 _pid, uint256 _amount) public { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; require(_amount.add(user.amount) <= pool.maxStake, "Cannot stake beyond maxStake value"); updatePool(_pid); uint256 pending = user.amount.mul(pool.accHopePerShare).div(1e12).sub(user.rewardDebt); user.amount = user.amount.add(_amount); user.rewardDebt = user.amount.mul(pool.accHopePerShare).div(1e12); if (pending > 0) safeHopeTransfer(msg.sender, pending); pool.token.transferFrom(address(msg.sender), address(this), _amount); emit Deposit(msg.sender, _pid, _amount); } // Withdraw tokens from pool. function withdraw(uint256 _pid, uint256 _amount) public { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; require(user.amount >= _amount, "withdraw: not good"); updatePool(_pid); uint256 pending = user.amount.mul(pool.accHopePerShare).div(1e12).sub(user.rewardDebt); // In case the maxStake has been lowered and address is above maxStake, we force it to withdraw what is above current maxStake // User can delay his/her withdraw/harvest to take advantage of a reducing of maxStake, // if he/she entered the pool at maxStake before the maxStake reducing occured uint256 leftAfterWithdraw = user.amount.sub(_amount); if (leftAfterWithdraw > pool.maxStake) { _amount = _amount.add(leftAfterWithdraw - pool.maxStake); } user.amount = user.amount.sub(_amount); user.rewardDebt = user.amount.mul(pool.accHopePerShare).div(1e12); safeHopeTransfer(msg.sender, pending); pool.token.transfer(address(msg.sender), _amount); emit Withdraw(msg.sender, _pid, _amount); } // Withdraw without caring about rewards. EMERGENCY ONLY. function emergencyWithdraw(uint256 _pid) public { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][msg.sender]; require(user.amount > 0, "emergencyWithdraw: not good"); uint256 _amount = user.amount; user.amount = 0; user.rewardDebt = 0; pool.token.transfer(address(msg.sender), _amount); emit EmergencyWithdraw(msg.sender, _pid, _amount); } // Safe hope transfer function, just in case if rounding error causes pool to not have enough HOPEs. function safeHopeTransfer(address _to, uint256 _amount) internal { uint256 hopeBal = Hope.balanceOf(address(this)); if (_amount > hopeBal) { Hope.transfer(_to, hopeBal); Hope.addClaimed(hopeBal); } else { Hope.transfer(_to, _amount); Hope.addClaimed(_amount); } } // Update dev address by the previous dev. function treasury(address _treasuryAddr) public { require(msg.sender == treasuryAddr, "Must be called from current treasury address"); treasuryAddr = _treasuryAddr; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract HopeNonTradable","name":"_hopeAddress","type":"address"},{"internalType":"address","name":"_treasuryAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","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":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"constant":true,"inputs":[],"name":"Hope","outputs":[{"internalType":"contract HopeNonTradable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_hopesPerDay","type":"uint256"},{"internalType":"uint256","name":"_maxStake","type":"uint256"}],"name":"add","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingHope","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"pendingHopeOfPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"hopesPerDay","type":"uint256"},{"internalType":"uint256","name":"maxStake","type":"uint256"},{"internalType":"uint256","name":"lastUpdateTime","type":"uint256"},{"internalType":"uint256","name":"accHopePerShare","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"_pids","type":"uint256[]"}],"name":"rugPull","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"rugPullAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setHopesPerDay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenPID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"totalPendingHope","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_treasuryAddr","type":"address"}],"name":"treasury","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"treasuryAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405162002afa38038062002afa8339818101604052604081101561003557600080fd5b810190808051906020019092919080519060200190929190505050600061006061018760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061018f565b600033905090565b61295b806200019f6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c35780639fb79dbc1161007c5780639fb79dbc146105f9578063add6f8ba14610651578063c240da0514610689578063e2bbb158146106e1578063e7e8c73814610719578063f2fde38b1461075b5761014d565b8063715018a6146104985780638b2819d2146104a25780638da5cb5b146104ec5780638f32d59b1461053657806393f1a40b146105585780639b9905f7146105c15761014d565b80633d24a1ff116101155780633d24a1ff14610340578063441a3e701461034a5780635101e1281461038257806351eb05a6146103da5780635312ea8e146104085780636268c744146104365761014d565b806302bcdd7b14610152578063081e3eda1461020a5780631526fe27146102285780632d809cb6146102b257806330d9a62a146102f6575b600080fd5b6102086004803603602081101561016857600080fd5b810190808035906020019064010000000081111561018557600080fd5b82018360208201111561019757600080fd5b803590602001918460208302840111640100000000831117156101b957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061079f565b005b6102126107dd565b6040518082815260200191505060405180910390f35b6102546004803603602081101561023e57600080fd5b81019080803590602001909291905050506107ea565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6102f4600480360360208110156102c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061084d565b005b6102fe610937565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61034861095d565b005b6103806004803603604081101561036057600080fd5b81019080803590602001909291908035906020019092919050505061098d565b005b6103d86004803603606081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610cb3565b005b610406600480360360208110156103f057600080fd5b8101908080359060200190929190505050610fd1565b005b6104346004803603602081101561041e57600080fd5b8101908080359060200190929190505050611332565b005b6104826004803603604081101561044c57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b6040518082815260200191505060405180910390f35b6104a0611791565b005b6104aa6118ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104f46118f0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053e611919565b604051808215151515815260200191505060405180910390f35b6105a46004803603604081101561056e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611977565b604051808381526020018281526020019250505060405180910390f35b6105f7600480360360408110156105d757600080fd5b8101908080359060200190929190803590602001909291905050506119a8565b005b61063b6004803603602081101561060f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac9565b6040518082815260200191505060405180910390f35b6106876004803603604081101561066757600080fd5b810190808035906020019092919080359060200190929190505050611ae1565b005b6106cb6004803603602081101561069f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf9565b6040518082815260200191505060405180910390f35b610717600480360360408110156106f757600080fd5b810190808035906020019092919080359060200190929190505050611c4c565b005b6107456004803603602081101561072f57600080fd5b8101908080359060200190929190505050611f65565b6040518082815260200191505060405180910390f35b61079d6004803603602081101561077157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120c8565b005b60008090505b81518110156107d9576107cc8282815181106107bd57fe5b6020026020010151600061098d565b80806001019150506107a5565b5050565b6000600280549050905090565b600281815481106107f757fe5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154905085565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806128d9602c913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600280549050905060008090505b818110156109895761097e81610fd1565b80600101905061096d565b5050565b60006002838154811061099c57fe5b9060005260206000209060050201905060006003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600001541015610a7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f77697468647261773a206e6f7420676f6f64000000000000000000000000000081525060200191505060405180910390fd5b610a8384610fd1565b6000610acd8260010154610abf64e8d4a51000610ab18760040154876000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b61228090919063ffffffff16565b90506000610ae885846000015461228090919063ffffffff16565b90508360020154811115610b1257610b0f846002015482038661230990919063ffffffff16565b94505b610b2985846000015461228090919063ffffffff16565b8360000181905550610b6364e8d4a51000610b558660040154866000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b8360010181905550610b753383612391565b8360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b505050506040513d6020811015610c4a57600080fd5b810190808051906020019092919050505050853373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040518082815260200191505060405180910390a3505050505050565b610cbb611919565b610d2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610de2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f47697665724f66486f70653a6475706c6963617465206164642e00000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ea6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616e6e6f742061646420486f7065206173206120706f6f6c0000000000000081525060200191505060405180910390fd5b60026040518060a001604052808573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200142815260200160008152509080600181540180825580915050906001820390600052602060002090600502016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040155505050600280549050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600060028281548110610fe057fe5b9060005260206000209060050201905080600301544211611001575061132f565b60008160010154141561101d574281600301819055505061132f565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156110c057600080fd5b505afa1580156110d4573d6000803e3d6000fd5b505050506040513d60208110156110ea57600080fd5b81019080805190602001909291905050509050600081141561111657428260030181905550505061132f565b600061112184611f65565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111986028856121f190919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561120157600080fd5b505af1158015611215573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156112c257600080fd5b505af11580156112d6573d6000803e3d6000fd5b5050505061131a611307836112f964e8d4a510008561214e90919063ffffffff16565b6121f190919063ffffffff16565b846004015461230990919063ffffffff16565b83600401819055504283600301819055505050505b50565b60006002828154811061134157fe5b9060005260206000209060050201905060006003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541161141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f656d657267656e637957697468647261773a206e6f7420676f6f64000000000081525060200191505060405180910390fd5b60008160000154905060008260000181905550600082600101819055508260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b505050506040513d602081101561151157600080fd5b810190808051906020019092919050505050833373ffffffffffffffffffffffffffffffffffffffff167fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595836040518082815260200191505060405180910390a350505050565b6000806002848154811061158857fe5b9060005260206000209060050201905060006003600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600042905060008360040154905060008460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561169d57600080fd5b505afa1580156116b1573d6000803e3d6000fd5b505050506040513d60208110156116c757600080fd5b810190808051906020019092919050505090508460030154831180156116ee575060008114155b156117405760006116fe89611f65565b905061173c61172d8361171f64e8d4a510008561214e90919063ffffffff16565b6121f190919063ffffffff16565b8461230990919063ffffffff16565b9250505b611784846001015461177664e8d4a5100061176886896000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b61228090919063ffffffff16565b9550505050505092915050565b611799611919565b61180b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661195b612766565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b6119b0611919565b611a22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000811015611a99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f486f70657320706572206461792063616e6e6f74206265206e6567617469766581525060200191505060405180910390fd5b611aa282610fd1565b8060028381548110611ab057fe5b9060005260206000209060050201600101819055505050565b60046020528060005260406000206000915090505481565b611ae9611919565b611b5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000811015611bd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d6178207374616b652063616e6e6f74206265206e656761746976650000000081525060200191505060405180910390fd5b8060028381548110611be057fe5b9060005260206000209060050201600201819055505050565b600080600090506000600280549050905060008090505b81811015611c4157611c34611c258287611578565b8461230990919063ffffffff16565b9250806001019050611c10565b508192505050919050565b600060028381548110611c5b57fe5b9060005260206000209060050201905060006003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508160020154611cdb82600001548561230990919063ffffffff16565b1115611d32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806129056022913960400191505060405180910390fd5b611d3b84610fd1565b6000611d858260010154611d7764e8d4a51000611d698760040154876000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b61228090919063ffffffff16565b9050611d9e84836000015461230990919063ffffffff16565b8260000181905550611dd864e8d4a51000611dca8560040154856000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b82600101819055506000811115611df457611df33382612391565b5b8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611ed357600080fd5b505af1158015611ee7573d6000803e3d6000fd5b505050506040513d6020811015611efd57600080fd5b810190808051906020019092919050505050843373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15866040518082815260200191505060405180910390a35050505050565b60008060028381548110611f7557fe5b90600052602060002090600502019050600042905060008260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561202d57600080fd5b505afa158015612041573d6000803e3d6000fd5b505050506040513d602081101561205757600080fd5b810190808051906020019092919050505090506120be6120996201518061208b86600101548561214e90919063ffffffff16565b6121f190919063ffffffff16565b6120b085600301548561228090919063ffffffff16565b61214e90919063ffffffff16565b9350505050919050565b6120d0611919565b612142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61214b8161276e565b50565b60008083141561216157600090506121eb565b600082840290508284828161217257fe5b04146121e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536166654d617468236d756c3a204f564552464c4f570000000000000000000081525060200191505060405180910390fd5b809150505b92915050565b6000808211612268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d617468236469763a204449564953494f4e5f42595f5a45524f000081525060200191505060405180910390fd5b600082848161227357fe5b0490508091505092915050565b6000828211156122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f536166654d617468237375623a20554e444552464c4f5700000000000000000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080828401905083811015612387576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536166654d617468236164643a204f564552464c4f570000000000000000000081525060200191505060405180910390fd5b8091505092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561243257600080fd5b505afa158015612446573d6000803e3d6000fd5b505050506040513d602081101561245c57600080fd5b81019080805190602001909291905050509050808211156125ee57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561252057600080fd5b505af1158015612534573d6000803e3d6000fd5b505050506040513d602081101561254a57600080fd5b810190808051906020019092919050505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663945ee661826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156125d157600080fd5b505af11580156125e5573d6000803e3d6000fd5b50505050612761565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561269757600080fd5b505af11580156126ab573d6000803e3d6000fd5b505050506040513d60208110156126c157600080fd5b810190808051906020019092919050505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663945ee661836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561274857600080fd5b505af115801561275c573d6000803e3d6000fd5b505050505b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128b36026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d7573742062652063616c6c65642066726f6d2063757272656e74207472656173757279206164647265737343616e6e6f74207374616b65206265796f6e64206d61785374616b652076616c7565a265627a7a723158208203a48027af85d8f1c30313745ce7f257df12c25f14509f1aff46eb347ff4d764736f6c634300051100320000000000000000000000001eadc903341cfdb3406a04506239f52d076b170b0000000000000000000000007fcb8aaea5f30620aa69d1978f1dc814cf0502ad
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c35780639fb79dbc1161007c5780639fb79dbc146105f9578063add6f8ba14610651578063c240da0514610689578063e2bbb158146106e1578063e7e8c73814610719578063f2fde38b1461075b5761014d565b8063715018a6146104985780638b2819d2146104a25780638da5cb5b146104ec5780638f32d59b1461053657806393f1a40b146105585780639b9905f7146105c15761014d565b80633d24a1ff116101155780633d24a1ff14610340578063441a3e701461034a5780635101e1281461038257806351eb05a6146103da5780635312ea8e146104085780636268c744146104365761014d565b806302bcdd7b14610152578063081e3eda1461020a5780631526fe27146102285780632d809cb6146102b257806330d9a62a146102f6575b600080fd5b6102086004803603602081101561016857600080fd5b810190808035906020019064010000000081111561018557600080fd5b82018360208201111561019757600080fd5b803590602001918460208302840111640100000000831117156101b957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061079f565b005b6102126107dd565b6040518082815260200191505060405180910390f35b6102546004803603602081101561023e57600080fd5b81019080803590602001909291905050506107ea565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6102f4600480360360208110156102c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061084d565b005b6102fe610937565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61034861095d565b005b6103806004803603604081101561036057600080fd5b81019080803590602001909291908035906020019092919050505061098d565b005b6103d86004803603606081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610cb3565b005b610406600480360360208110156103f057600080fd5b8101908080359060200190929190505050610fd1565b005b6104346004803603602081101561041e57600080fd5b8101908080359060200190929190505050611332565b005b6104826004803603604081101561044c57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b6040518082815260200191505060405180910390f35b6104a0611791565b005b6104aa6118ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104f46118f0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053e611919565b604051808215151515815260200191505060405180910390f35b6105a46004803603604081101561056e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611977565b604051808381526020018281526020019250505060405180910390f35b6105f7600480360360408110156105d757600080fd5b8101908080359060200190929190803590602001909291905050506119a8565b005b61063b6004803603602081101561060f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac9565b6040518082815260200191505060405180910390f35b6106876004803603604081101561066757600080fd5b810190808035906020019092919080359060200190929190505050611ae1565b005b6106cb6004803603602081101561069f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf9565b6040518082815260200191505060405180910390f35b610717600480360360408110156106f757600080fd5b810190808035906020019092919080359060200190929190505050611c4c565b005b6107456004803603602081101561072f57600080fd5b8101908080359060200190929190505050611f65565b6040518082815260200191505060405180910390f35b61079d6004803603602081101561077157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120c8565b005b60008090505b81518110156107d9576107cc8282815181106107bd57fe5b6020026020010151600061098d565b80806001019150506107a5565b5050565b6000600280549050905090565b600281815481106107f757fe5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154905085565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806128d9602c913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600280549050905060008090505b818110156109895761097e81610fd1565b80600101905061096d565b5050565b60006002838154811061099c57fe5b9060005260206000209060050201905060006003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600001541015610a7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f77697468647261773a206e6f7420676f6f64000000000000000000000000000081525060200191505060405180910390fd5b610a8384610fd1565b6000610acd8260010154610abf64e8d4a51000610ab18760040154876000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b61228090919063ffffffff16565b90506000610ae885846000015461228090919063ffffffff16565b90508360020154811115610b1257610b0f846002015482038661230990919063ffffffff16565b94505b610b2985846000015461228090919063ffffffff16565b8360000181905550610b6364e8d4a51000610b558660040154866000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b8360010181905550610b753383612391565b8360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b505050506040513d6020811015610c4a57600080fd5b810190808051906020019092919050505050853373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040518082815260200191505060405180910390a3505050505050565b610cbb611919565b610d2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610de2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f47697665724f66486f70653a6475706c6963617465206164642e00000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ea6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616e6e6f742061646420486f7065206173206120706f6f6c0000000000000081525060200191505060405180910390fd5b60026040518060a001604052808573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200142815260200160008152509080600181540180825580915050906001820390600052602060002090600502016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040155505050600280549050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600060028281548110610fe057fe5b9060005260206000209060050201905080600301544211611001575061132f565b60008160010154141561101d574281600301819055505061132f565b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156110c057600080fd5b505afa1580156110d4573d6000803e3d6000fd5b505050506040513d60208110156110ea57600080fd5b81019080805190602001909291905050509050600081141561111657428260030181905550505061132f565b600061112184611f65565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111986028856121f190919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561120157600080fd5b505af1158015611215573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156112c257600080fd5b505af11580156112d6573d6000803e3d6000fd5b5050505061131a611307836112f964e8d4a510008561214e90919063ffffffff16565b6121f190919063ffffffff16565b846004015461230990919063ffffffff16565b83600401819055504283600301819055505050505b50565b60006002828154811061134157fe5b9060005260206000209060050201905060006003600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541161141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f656d657267656e637957697468647261773a206e6f7420676f6f64000000000081525060200191505060405180910390fd5b60008160000154905060008260000181905550600082600101819055508260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b505050506040513d602081101561151157600080fd5b810190808051906020019092919050505050833373ffffffffffffffffffffffffffffffffffffffff167fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595836040518082815260200191505060405180910390a350505050565b6000806002848154811061158857fe5b9060005260206000209060050201905060006003600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600042905060008360040154905060008460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561169d57600080fd5b505afa1580156116b1573d6000803e3d6000fd5b505050506040513d60208110156116c757600080fd5b810190808051906020019092919050505090508460030154831180156116ee575060008114155b156117405760006116fe89611f65565b905061173c61172d8361171f64e8d4a510008561214e90919063ffffffff16565b6121f190919063ffffffff16565b8461230990919063ffffffff16565b9250505b611784846001015461177664e8d4a5100061176886896000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b61228090919063ffffffff16565b9550505050505092915050565b611799611919565b61180b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661195b612766565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b6119b0611919565b611a22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000811015611a99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f486f70657320706572206461792063616e6e6f74206265206e6567617469766581525060200191505060405180910390fd5b611aa282610fd1565b8060028381548110611ab057fe5b9060005260206000209060050201600101819055505050565b60046020528060005260406000206000915090505481565b611ae9611919565b611b5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000811015611bd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d6178207374616b652063616e6e6f74206265206e656761746976650000000081525060200191505060405180910390fd5b8060028381548110611be057fe5b9060005260206000209060050201600201819055505050565b600080600090506000600280549050905060008090505b81811015611c4157611c34611c258287611578565b8461230990919063ffffffff16565b9250806001019050611c10565b508192505050919050565b600060028381548110611c5b57fe5b9060005260206000209060050201905060006003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508160020154611cdb82600001548561230990919063ffffffff16565b1115611d32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806129056022913960400191505060405180910390fd5b611d3b84610fd1565b6000611d858260010154611d7764e8d4a51000611d698760040154876000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b61228090919063ffffffff16565b9050611d9e84836000015461230990919063ffffffff16565b8260000181905550611dd864e8d4a51000611dca8560040154856000015461214e90919063ffffffff16565b6121f190919063ffffffff16565b82600101819055506000811115611df457611df33382612391565b5b8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611ed357600080fd5b505af1158015611ee7573d6000803e3d6000fd5b505050506040513d6020811015611efd57600080fd5b810190808051906020019092919050505050843373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15866040518082815260200191505060405180910390a35050505050565b60008060028381548110611f7557fe5b90600052602060002090600502019050600042905060008260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561202d57600080fd5b505afa158015612041573d6000803e3d6000fd5b505050506040513d602081101561205757600080fd5b810190808051906020019092919050505090506120be6120996201518061208b86600101548561214e90919063ffffffff16565b6121f190919063ffffffff16565b6120b085600301548561228090919063ffffffff16565b61214e90919063ffffffff16565b9350505050919050565b6120d0611919565b612142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61214b8161276e565b50565b60008083141561216157600090506121eb565b600082840290508284828161217257fe5b04146121e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536166654d617468236d756c3a204f564552464c4f570000000000000000000081525060200191505060405180910390fd5b809150505b92915050565b6000808211612268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d617468236469763a204449564953494f4e5f42595f5a45524f000081525060200191505060405180910390fd5b600082848161227357fe5b0490508091505092915050565b6000828211156122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f536166654d617468237375623a20554e444552464c4f5700000000000000000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080828401905083811015612387576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536166654d617468236164643a204f564552464c4f570000000000000000000081525060200191505060405180910390fd5b8091505092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561243257600080fd5b505afa158015612446573d6000803e3d6000fd5b505050506040513d602081101561245c57600080fd5b81019080805190602001909291905050509050808211156125ee57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561252057600080fd5b505af1158015612534573d6000803e3d6000fd5b505050506040513d602081101561254a57600080fd5b810190808051906020019092919050505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663945ee661826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156125d157600080fd5b505af11580156125e5573d6000803e3d6000fd5b50505050612761565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561269757600080fd5b505af11580156126ab573d6000803e3d6000fd5b505050506040513d60208110156126c157600080fd5b810190808051906020019092919050505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663945ee661836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561274857600080fd5b505af115801561275c573d6000803e3d6000fd5b505050505b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128b36026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d7573742062652063616c6c65642066726f6d2063757272656e74207472656173757279206164647265737343616e6e6f74207374616b65206265796f6e64206d61785374616b652076616c7565a265627a7a723158208203a48027af85d8f1c30313745ce7f257df12c25f14509f1aff46eb347ff4d764736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001eadc903341cfdb3406a04506239f52d076b170b0000000000000000000000007fcb8aaea5f30620aa69d1978f1dc814cf0502ad
-----Decoded View---------------
Arg [0] : _hopeAddress (address): 0x1EadC903341CFdB3406a04506239f52D076b170B
Arg [1] : _treasuryAddr (address): 0x7fCb8aAeA5f30620Aa69d1978F1dC814Cf0502ad
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001eadc903341cfdb3406a04506239f52d076b170b
Arg [1] : 0000000000000000000000007fcb8aaea5f30620aa69d1978f1dc814cf0502ad
Deployed Bytecode Sourcemap
17375:10147:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17375:10147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22844:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22844:152:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;22844:152:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;22844:152:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;22844:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;22844:152:0;;;;;;;;;;;;;;;:::i;:::-;;19555:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18825:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18825:26:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27330:189;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27330:189:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18764:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23079:175;;;:::i;:::-;;25119:1166;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;25119:1166:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19819:586;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19819:586:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23330:964;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23330:964:0;;;;;;;;;;;;;;;;;:::i;:::-;;26356:448;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26356:448:0;;;;;;;;;;;;;;;;;:::i;:::-;;21102:674;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21102:674:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2890:140;;;:::i;:::-;;19078:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2079:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2445:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18907:64;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18907:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;20822:216;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20822:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19026:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19026:43:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20562:180;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20562:180:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21871:297;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21871:297:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24357:719;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24357:719:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22237:344;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22237:344:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3185:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3185:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;22844:152;22908:6;22915:1;22908:8;;22903:86;22922:5;:12;22918:1;:16;22903:86;;;22956:21;22965:5;22971:1;22965:8;;;;;;;;;;;;;;22975:1;22956:8;:21::i;:::-;22936:3;;;;;;;22903:86;;;;22844:152;:::o;19555:95::-;19600:7;19627:8;:15;;;;19620:22;;19555:95;:::o;18825:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27330:189::-;27411:12;;;;;;;;;;;27397:26;;:10;:26;;;27389:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27498:13;27483:12;;:28;;;;;;;;;;;;;;;;;;27330:189;:::o;18764:27::-;;;;;;;;;;;;;:::o;23079:175::-;23119:14;23136:8;:15;;;;23119:32;;23167:11;23181:1;23167:15;;23162:85;23190:6;23184:3;:12;23162:85;;;23220:15;23231:3;23220:10;:15::i;:::-;23198:5;;;;;23162:85;;;;23079:175;:::o;25119:1166::-;25186:21;25210:8;25219:4;25210:14;;;;;;;;;;;;;;;;;;25186:38;;25235:21;25259:8;:14;25268:4;25259:14;;;;;;;;;;;:26;25274:10;25259:26;;;;;;;;;;;;;;;25235:50;;25319:7;25304:4;:11;;;:22;;25296:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25360:16;25371:4;25360:10;:16::i;:::-;25387:15;25405:68;25457:4;:15;;;25405:47;25447:4;25405:37;25421:4;:20;;;25405:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;:51;;:68;;;;:::i;:::-;25387:86;;25807:25;25835:24;25851:7;25835:4;:11;;;:15;;:24;;;;:::i;:::-;25807:52;;25894:4;:13;;;25874:17;:33;25870:122;;;25934:46;25966:4;:13;;;25946:17;:33;25934:7;:11;;:46;;;;:::i;:::-;25924:56;;25870:122;26018:24;26034:7;26018:4;:11;;;:15;;:24;;;;:::i;:::-;26004:4;:11;;:38;;;;26071:47;26113:4;26071:37;26087:4;:20;;;26071:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;26053:4;:15;;:65;;;;26129:37;26146:10;26158:7;26129:16;:37::i;:::-;26177:4;:10;;;;;;;;;;;;:19;;;26205:10;26218:7;26177:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26177:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26177:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26177:49:0;;;;;;;;;;;;;;;;;26263:4;26251:10;26242:35;;;26269:7;26242:35;;;;;;;;;;;;;;;;;;25119:1166;;;;;;:::o;19819:586::-;2291:9;:7;:9::i;:::-;2283:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19953:1;19924:8;:25;19941:6;19924:25;;;;;;;;;;;;;;;;:30;19916:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20031:4;;;;;;;;;;;20004:32;;20012:6;20004:32;;;;19996:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20078:8;20106:226;;;;;;;;20141:6;20106:226;;;;;;20217:12;20106:226;;;;20176:9;20106:226;;;;20264:15;20106:226;;;;20315:1;20106:226;;;20078:265;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20078:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20382:8;:15;;;;20354:8;:25;20371:6;20354:25;;;;;;;;;;;;;;;:43;;;;19819:586;;;:::o;23330:964::-;23382:21;23406:8;23415:4;23406:14;;;;;;;;;;;;;;;;;;23382:38;;23454:4;:19;;;23435:15;:38;23431:77;;23490:7;;;23431:77;23542:1;23522:4;:16;;;:21;23518:112;;;23582:15;23560:4;:19;;:37;;;;23612:7;;;23518:112;23640:19;23662:4;:10;;;;;;;;;;;;:20;;;23691:4;23662:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23662:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23662:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23662:35:0;;;;;;;;;;;;;;;;23640:57;;23727:1;23712:11;:16;23708:107;;;23767:15;23745:4;:19;;:37;;;;23797:7;;;;23708:107;23938:18;23959:23;23977:4;23959:17;:23::i;:::-;23938:44;;23993:4;;;;;;;;;;;:9;;;24003:12;;;;;;;;;;;24017:18;24032:2;24017:10;:14;;:18;;;;:::i;:::-;23993:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23993:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23993:43:0;;;;24103:4;;;;;;;;;;;:9;;;24121:4;24128:10;24103:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24103:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24103:36:0;;;;24175:63;24200:37;24225:11;24200:20;24215:4;24200:10;:14;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;24175:4;:20;;;:24;;:63;;;;:::i;:::-;24152:4;:20;;:86;;;;24271:15;24249:4;:19;;:37;;;;23330:964;;;;;:::o;26356:448::-;26415:21;26439:8;26448:4;26439:14;;;;;;;;;;;;;;;;;;26415:38;;26464:21;26488:8;:14;26497:4;26488:14;;;;;;;;;;;:26;26503:10;26488:26;;;;;;;;;;;;;;;26464:50;;26547:1;26533:4;:11;;;:15;26525:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26591:15;26609:4;:11;;;26591:29;;26645:1;26631:4;:11;;:15;;;;26675:1;26657:4;:15;;:19;;;;26687:4;:10;;;;;;;;;;;;:19;;;26715:10;26728:7;26687:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26687:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26687:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26687:49:0;;;;;;;;;;;;;;;;;26782:4;26770:10;26752:44;;;26788:7;26752:44;;;;;;;;;;;;;;;;;;26356:448;;;;:::o;21102:674::-;21173:7;21193:21;21217:8;21226:4;21217:14;;;;;;;;;;;;;;;;;;21193:38;;21242:21;21266:8;:14;21275:4;21266:14;;;;;;;;;;;:21;21281:5;21266:21;;;;;;;;;;;;;;;21242:45;;21298:17;21318:15;21298:35;;21344:23;21370:4;:20;;;21344:46;;21401:19;21423:4;:10;;;;;;;;;;;;:20;;;21452:4;21423:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21423:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21423:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21423:35:0;;;;;;;;;;;;;;;;21401:57;;21485:4;:19;;;21473:9;:31;:51;;;;;21523:1;21508:11;:16;;21473:51;21469:219;;;21541:18;21562:23;21580:4;21562:17;:23::i;:::-;21541:44;;21618:58;21638:37;21663:11;21638:20;21653:4;21638:10;:14;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;21618:15;:19;;:58;;;;:::i;:::-;21600:76;;21469:219;;21705:63;21752:4;:15;;;21705:42;21742:4;21705:32;21721:15;21705:4;:11;;;:15;;:32;;;;:::i;:::-;:36;;:42;;;;:::i;:::-;:46;;:63;;;;:::i;:::-;21698:70;;;;;;;21102:674;;;;:::o;2890:140::-;2291:9;:7;:9::i;:::-;2283:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2989:1;2952:40;;2973:6;;;;;;;;;;;2952:40;;;;;;;;;;;;3020:1;3003:6;;:19;;;;;;;;;;;;;;;;;;2890:140::o;19078:27::-;;;;;;;;;;;;;:::o;2079:79::-;2117:7;2144:6;;;;;;;;;;;2137:13;;2079:79;:::o;2445:94::-;2485:4;2525:6;;;;;;;;;;;2509:22;;:12;:10;:12::i;:::-;:22;;;2502:29;;2445:94;:::o;18907:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20822:216::-;2291:9;:7;:9::i;:::-;2283:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20921:1;20911:6;:11;;20903:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20970:15;20981:3;20970:10;:15::i;:::-;21024:6;20996:8;21005:3;20996:13;;;;;;;;;;;;;;;;;;:25;;:34;;;;20822:216;;:::o;19026:43::-;;;;;;;;;;;;;;;;;:::o;20562:180::-;2291:9;:7;:9::i;:::-;2283:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20658:1;20648:6;:11;;20640:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20728:6;20703:8;20712:3;20703:13;;;;;;;;;;;;;;;;;;:22;;:31;;;;20562:180;;:::o;21871:297::-;21933:7;21953:13;21969:1;21953:17;;21981:14;21998:8;:15;;;;21981:32;;22029:11;22043:1;22029:15;;22024:112;22052:6;22046:3;:12;22024:112;;;22090:34;22100:23;22112:3;22117:5;22100:11;:23::i;:::-;22090:5;:9;;:34;;;;:::i;:::-;22082:42;;22060:5;;;;;22024:112;;;;22155:5;22148:12;;;;21871:297;;;:::o;24357:719::-;24423:21;24447:8;24456:4;24447:14;;;;;;;;;;;;;;;;;;24423:38;;24472:21;24496:8;:14;24505:4;24496:14;;;;;;;;;;;:26;24511:10;24496:26;;;;;;;;;;;;;;;24472:50;;24571:4;:13;;;24543:24;24555:4;:11;;;24543:7;:11;;:24;;;;:::i;:::-;:41;;24535:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24636:16;24647:4;24636:10;:16::i;:::-;24663:15;24681:68;24733:4;:15;;;24681:47;24723:4;24681:37;24697:4;:20;;;24681:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;:51;;:68;;;;:::i;:::-;24663:86;;24774:24;24790:7;24774:4;:11;;;:15;;:24;;;;:::i;:::-;24760:4;:11;;:38;;;;24827:47;24869:4;24827:37;24843:4;:20;;;24827:4;:11;;;:15;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;24809:4;:15;;:65;;;;24899:1;24889:7;:11;24885:54;;;24902:37;24919:10;24931:7;24902:16;:37::i;:::-;24885:54;24950:4;:10;;;;;;;;;;;;:23;;;24982:10;25003:4;25010:7;24950:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24950:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24950:68:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24950:68:0;;;;;;;;;;;;;;;;;25054:4;25042:10;25034:34;;;25060:7;25034:34;;;;;;;;;;;;;;;;;;24357:719;;;;;:::o;22237:344::-;22299:7;22319:21;22343:8;22352:4;22343:14;;;;;;;;;;;;;;;;;;22319:38;;22368:17;22388:15;22368:35;;22414:19;22436:4;:10;;;;;;;;;;;;:20;;;22465:4;22436:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22436:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22436:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22436:35:0;;;;;;;;;;;;;;;;22414:57;;22489:84;22528:44;22566:5;22528:33;22544:4;:16;;;22528:11;:15;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;22489:34;22503:4;:19;;;22489:9;:13;;:34;;;;:::i;:::-;:38;;:84;;;;:::i;:::-;22482:91;;;;;22237:344;;;:::o;3185:109::-;2291:9;:7;:9::i;:::-;2283:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3258:28;3277:8;3258:18;:28::i;:::-;3185:109;:::o;8640:459::-;8698:7;8947:1;8942;:6;8938:47;;;8972:1;8965:8;;;;8938:47;8997:9;9013:1;9009;:5;8997:17;;9042:1;9037;9033;:5;;;;;;:10;9025:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9090:1;9083:8;;;8640:459;;;;;:::o;9234:337::-;9292:7;9391:1;9387;:5;9379:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9438:9;9454:1;9450;:5;;;;;;9438:17;;9562:1;9555:8;;;9234:337;;;;:::o;9709:177::-;9767:7;9800:1;9795;:6;;9787:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9840:9;9856:1;9852;:5;9840:17;;9877:1;9870:8;;;9709:177;;;;:::o;9974:176::-;10032:7;10052:9;10068:1;10064;:5;10052:17;;10093:1;10088;:6;;10080:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10141:1;10134:8;;;9974:176;;;;:::o;26918:356::-;26994:15;27012:4;;;;;;;;;;;:14;;;27035:4;27012:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27012:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27012:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27012:29:0;;;;;;;;;;;;;;;;26994:47;;27066:7;27056;:17;27052:215;;;27090:4;;;;;;;;;;;:13;;;27104:3;27109:7;27090:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27090:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27090:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27090:27:0;;;;;;;;;;;;;;;;;27132:4;;;;;;;;;;;:15;;;27148:7;27132:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27132:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27132:24:0;;;;27052:215;;;27189:4;;;;;;;;;;;:13;;;27203:3;27208:7;27189:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27189:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27189:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27189:27:0;;;;;;;;;;;;;;;;;27231:4;;;;;;;;;;;:15;;;27247:7;27231:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27231:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27231:24:0;;;;27052:215;26918:356;;;:::o;870:98::-;915:15;950:10;943:17;;870:98;:::o;3400:229::-;3494:1;3474:22;;:8;:22;;;;3466:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3584:8;3555:38;;3576:6;;;;;;;;;;;3555:38;;;;;;;;;;;;3613:8;3604:6;;:17;;;;;;;;;;;;;;;;;;3400:229;:::o
Swarm Source
bzzr://8203a48027af85d8f1c30313745ce7f257df12c25f14509f1aff46eb347ff4d7
Loading...
Loading
Loading...
Loading
OVERVIEW
Stake $ROPE or $ROPE/ETH Uni LP to generate HOPE.Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $358.54 | 0.1095 | $39.25 |
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.