Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 5,046 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 19506207 | 279 days ago | IN | 0 ETH | 0.00290471 | ||||
Withdraw | 18154274 | 468 days ago | IN | 0 ETH | 0.00089362 | ||||
Withdraw | 17009919 | 629 days ago | IN | 0 ETH | 0.00293949 | ||||
Withdraw | 16748652 | 666 days ago | IN | 0 ETH | 0.00405221 | ||||
Withdraw | 16631365 | 682 days ago | IN | 0 ETH | 0.00484054 | ||||
Withdraw | 16593283 | 688 days ago | IN | 0 ETH | 0.00835261 | ||||
Withdraw | 15842194 | 792 days ago | IN | 0 ETH | 0.00178425 | ||||
Withdraw | 15490876 | 843 days ago | IN | 0 ETH | 0.00355574 | ||||
Withdraw | 15458143 | 848 days ago | IN | 0 ETH | 0.00102634 | ||||
Withdraw | 15387014 | 859 days ago | IN | 0 ETH | 0.00049408 | ||||
Withdraw | 15387014 | 859 days ago | IN | 0 ETH | 0.00012557 | ||||
Withdraw | 15387013 | 859 days ago | IN | 0 ETH | 0.00013225 | ||||
Withdraw | 15387012 | 859 days ago | IN | 0 ETH | 0.00012959 | ||||
Withdraw | 15387012 | 859 days ago | IN | 0 ETH | 0.00059729 | ||||
Withdraw | 15244917 | 882 days ago | IN | 0 ETH | 0.00139853 | ||||
Withdraw | 15230492 | 884 days ago | IN | 0 ETH | 0.00060376 | ||||
Deposit | 15230447 | 884 days ago | IN | 0 ETH | 0.00086971 | ||||
Withdraw | 14964287 | 927 days ago | IN | 0 ETH | 0.00072874 | ||||
Withdraw | 14964285 | 927 days ago | IN | 0 ETH | 0.00353942 | ||||
Withdraw | 14958128 | 928 days ago | IN | 0 ETH | 0.0042935 | ||||
Withdraw | 14780355 | 958 days ago | IN | 0 ETH | 0.00068882 | ||||
Withdraw | 14756774 | 962 days ago | IN | 0 ETH | 0.02445206 | ||||
Withdraw | 14756687 | 962 days ago | IN | 0 ETH | 0.01261103 | ||||
Withdraw | 14605518 | 985 days ago | IN | 0 ETH | 0.00184338 | ||||
Withdraw | 14586566 | 988 days ago | IN | 0 ETH | 0.0049774 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
HaremFactory
Compiler Version
v0.5.0+commit.1d4f565a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-03-10 */ // File: contracts-waifu/waif/utils/Context.sol 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; } } // File: contracts-waifu/waif/utils/Ownable.sol pragma solidity 0.5.0; /** * @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; } } // File: contracts-waifu/waif/utils/SafeMath.sol pragma solidity 0.5.0; /** * @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; } } // File: contracts-waifu/waif/utils/IERC20.sol pragma solidity 0.5.0; /** * @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); } // File: contracts-waifu/waif/utils/Roles.sol pragma solidity 0.5.0; /** * @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]; } } // File: contracts-waifu/waif/utils/MinterRole.sol pragma solidity 0.5.0; 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); } } // File: contracts-waifu/waif/utils/CanTransferRole.sol pragma solidity 0.5.0; 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); } } // File: contracts-waifu/waif/HaremNonTradable.sol pragma solidity 0.5.0; contract HaremNonTradable 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 = "HAREM - Non Tradable"; string public symbol = "HAREM"; uint8 public decimals = 18; /** * @dev Total number of tokens in existence. */ function totalSupply() public view returns (uint256) { return _totalSupply; } // Returns the total claimed Harem // This is just purely used to display the total Harem claimed by users on the frontend function totalClaimed() public view returns (uint256) { return _totalClaimed; } // Add Harem claimed function addClaimed(uint256 _amount) public onlyCanTransfer { _totalClaimed = _totalClaimed.add(_amount); } // Set Harem 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); } } // File: contracts-waifu/waif/HaremFactory.sol pragma solidity 0.5.0; contract HaremFactory 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 Harems // entitled to a user but is pending to be distributed is: // // pending reward = (user.amount * pool.accHaremPerShare) - user.rewardDebt // // Whenever a user deposits or withdraws tokens to a pool. Here's what happens: // 1. The pool's `accHaremPerShare` (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 haremsPerDay; // The amount of Harems 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 Harems distribution occurs. uint256 accHaremPerShare; // Accumulated Harems 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; HaremNonTradable public Harem; 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(HaremNonTradable _haremAddress, address _treasuryAddr) public { Harem = _haremAddress; 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 _haremsPerDay, uint256 _maxStake) public onlyOwner { require(tokenPID[address(_token)] == 0, "GiverOfHarem:duplicate add."); require(address(_token) != address(Harem), "Cannot add Harem as a pool" ); poolInfo.push( PoolInfo({ token: _token, maxStake: _maxStake, haremsPerDay: _haremsPerDay, lastUpdateTime: block.timestamp, accHaremPerShare: 0 }) ); tokenPID[address(_token)] = poolInfo.length; } function setMaxStake(uint256 pid, uint256 amount) public onlyOwner { require(amount >= 0, "Max stake cannot be negative"); poolInfo[pid].maxStake = amount; } // Set the amount of Harems generated per day for each token staked function setHaremsPerDay(uint256 pid, uint256 amount) public onlyOwner { require(amount >= 0, "Harems per day cannot be negative"); updatePool(pid); poolInfo[pid].haremsPerDay = amount; } // View function to see pending Harems on frontend. function pendingHarem(uint256 _pid, address _user) public view returns (uint256) { PoolInfo storage pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 blockTime = block.timestamp; uint256 accHaremPerShare = pool.accHaremPerShare; uint256 tokenSupply = pool.token.balanceOf(address(this)); if (blockTime > pool.lastUpdateTime && tokenSupply != 0) { uint256 haremReward = pendingHaremOfPool(_pid); accHaremPerShare = accHaremPerShare.add(haremReward.mul(1e12).div(tokenSupply)); } return user.amount.mul(accHaremPerShare).div(1e12).sub(user.rewardDebt); } // View function to calculate the total pending Harems of address across all pools function totalPendingHarem(address _user) public view returns (uint256) { uint256 total = 0; uint256 length = poolInfo.length; for (uint256 pid = 0; pid < length; ++pid) { total = total.add(pendingHarem(pid, _user)); } return total; } // View function to see pending Harems on the whole pool function pendingHaremOfPool(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.haremsPerDay).div(86400).div(1000000000000000000)); } // Harvest pending Harems 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 Harem 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.haremsPerDay == 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(haremsPerDay).div(86400)); uint256 haremReward = pendingHaremOfPool(_pid); //Harem.mint(treasuryAddr, haremReward.div(40)); // 2.5% Harem for the treasury (Usable to purchase NFTs) Harem.mint(address(this), haremReward); pool.accHaremPerShare = pool.accHaremPerShare.add(haremReward.mul(1e12).div(tokenSupply)); pool.lastUpdateTime = block.timestamp; } // Deposit LP tokens to pool for Harem 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.accHaremPerShare).div(1e12).sub(user.rewardDebt); user.amount = user.amount.add(_amount); user.rewardDebt = user.amount.mul(pool.accHaremPerShare).div(1e12); if (pending > 0) safeHaremTransfer(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.accHaremPerShare).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.accHaremPerShare).div(1e12); safeHaremTransfer(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 Harem transfer function, just in case if rounding error causes pool to not have enough Harems. function safeHaremTransfer(address _to, uint256 _amount) internal { uint256 haremBal = Harem.balanceOf(address(this)); if (_amount > haremBal) { Harem.transfer(_to, haremBal); Harem.addClaimed(haremBal); } else { Harem.transfer(_to, _amount); Harem.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
[{"constant":false,"inputs":[{"name":"_pids","type":"uint256[]"}],"name":"rugPull","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"poolLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"name":"token","type":"address"},{"name":"haremsPerDay","type":"uint256"},{"name":"maxStake","type":"uint256"},{"name":"lastUpdateTime","type":"uint256"},{"name":"accHaremPerShare","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Harem","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_treasuryAddr","type":"address"}],"name":"treasury","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"treasuryAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"rugPullAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_pid","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_haremsPerDay","type":"uint256"},{"name":"_maxStake","type":"uint256"}],"name":"add","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_pid","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pid","type":"uint256"},{"name":"amount","type":"uint256"}],"name":"setHaremsPerDay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"userInfo","outputs":[{"name":"amount","type":"uint256"},{"name":"rewardDebt","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenPID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_pid","type":"uint256"}],"name":"pendingHaremOfPool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pid","type":"uint256"},{"name":"amount","type":"uint256"}],"name":"setMaxStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"totalPendingHarem","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_pid","type":"uint256"},{"name":"_user","type":"address"}],"name":"pendingHarem","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_pid","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_haremAddress","type":"address"},{"name":"_treasuryAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"pid","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"pid","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"pid","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051604080611d298339810180604052604081101561003057600080fd5b508051602090910151600061004c6401000000006100c7810204565b60008054600160a060020a031916600160a060020a0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054600160a060020a03938416600160a060020a031991821617909155600180549290931691161790556100cb565b3390565b611c4f806100da6000396000f3fe6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302bcdd7b8114610137578063081e3eda146101e95780631526fe271461021057806322650f341461026f5780632d809cb6146102a057806330d9a62a146102d35780633d24a1ff146102e8578063441a3e70146102fd5780635101e1281461032d57806351eb05a61461036c5780635312ea8e14610396578063637b66b2146103c0578063715018a6146103f05780638da5cb5b146104055780638f32d59b1461041a57806393f1a40b146104435780639fb79dbc14610495578063ac6a7cc3146104c8578063add6f8ba146104f2578063c85ebc7d14610522578063d1c0eed914610555578063e2bbb1581461058e578063f2fde38b146105be575b600080fd5b34801561014357600080fd5b506101e76004803603602081101561015a57600080fd5b81019060208101813564010000000081111561017557600080fd5b82018360208201111561018757600080fd5b803590602001918460208302840111640100000000831117156101a957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506105f1945050505050565b005b3480156101f557600080fd5b506101fe61062b565b60408051918252519081900360200190f35b34801561021c57600080fd5b5061023a6004803603602081101561023357600080fd5b5035610631565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561027b57600080fd5b5061028461067a565b60408051600160a060020a039092168252519081900360200190f35b3480156102ac57600080fd5b506101e7600480360360208110156102c357600080fd5b5035600160a060020a0316610689565b3480156102df57600080fd5b50610284610740565b3480156102f457600080fd5b506101e761074f565b34801561030957600080fd5b506101e76004803603604081101561032057600080fd5b508035906020013561076e565b34801561033957600080fd5b506101e76004803603606081101561035057600080fd5b50600160a060020a038135169060208101359060400135610995565b34801561037857600080fd5b506101e76004803603602081101561038f57600080fd5b5035610bee565b3480156103a257600080fd5b506101e7600480360360208110156103b957600080fd5b5035610d9c565b3480156103cc57600080fd5b506101e7600480360360408110156103e357600080fd5b5080359060200135610efb565b3480156103fc57600080fd5b506101e7610ff8565b34801561041157600080fd5b5061028461109b565b34801561042657600080fd5b5061042f6110aa565b604080519115158252519081900360200190f35b34801561044f57600080fd5b5061047c6004803603604081101561046657600080fd5b5080359060200135600160a060020a03166110ce565b6040805192835260208301919091528051918290030190f35b3480156104a157600080fd5b506101fe600480360360208110156104b857600080fd5b5035600160a060020a03166110f2565b3480156104d457600080fd5b506101fe600480360360208110156104eb57600080fd5b5035611104565b3480156104fe57600080fd5b506101e76004803603604081101561051557600080fd5b5080359060200135611201565b34801561052e57600080fd5b506101fe6004803603602081101561054557600080fd5b5035600160a060020a03166112cf565b34801561056157600080fd5b506101fe6004803603604081101561057857600080fd5b5080359060200135600160a060020a031661130e565b34801561059a57600080fd5b506101e7600480360360408110156105b157600080fd5b508035906020013561144b565b3480156105ca57600080fd5b506101e7600480360360208110156105e157600080fd5b5035600160a060020a031661167e565b60005b81518110156106275761061f828281518110151561060e57fe5b90602001906020020151600061076e565b6001016105f4565b5050565b60025490565b600280548290811061063f57fe5b600091825260209091206005909102018054600182015460028301546003840154600490940154600160a060020a0390931694509092909185565b600554600160a060020a031681565b600154600160a060020a03163314610711576040805160e560020a62461bcd02815260206004820152602c60248201527f4d7573742062652063616c6c65642066726f6d2063757272656e74207472656160448201527f7375727920616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b60025460005b818110156106275761076681610bee565b600101610755565b600060028381548110151561077f57fe5b600091825260208083208684526003825260408085203386529092529220805460059092029092019250831115610800576040805160e560020a62461bcd02815260206004820152601260248201527f77697468647261773a206e6f7420676f6f640000000000000000000000000000604482015290519081900360640190fd5b61080984610bee565b600061084f826001015461084364e8d4a51000610837876004015487600001546116d390919063ffffffff16565b9063ffffffff61175016565b9063ffffffff6117bf16565b8254909150600090610867908663ffffffff6117bf16565b9050836002015481111561089057600284015461088d908690830363ffffffff61181f16565b94505b82546108a2908663ffffffff6117bf16565b80845560048501546108c59164e8d4a5100091610837919063ffffffff6116d316565b60018401556108d4338361187c565b83546040805160e060020a63a9059cbb028152336004820152602481018890529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5050604080518681529051879133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a3505050505050565b61099d6110aa565b15156109e1576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526004602052604090205415610a4f576040805160e560020a62461bcd02815260206004820152601b60248201527f47697665724f66486172656d3a6475706c6963617465206164642e0000000000604482015290519081900360640190fd5b600554600160a060020a0384811691161415610ab5576040805160e560020a62461bcd02815260206004820152601a60248201527f43616e6e6f742061646420486172656d206173206120706f6f6c000000000000604482015290519081900360640190fd5b6040805160a081018252600160a060020a03948516808252602080830195865282840194855242606084019081526000608085018181526002805460018101825581845296517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace6005909802978801805473ffffffffffffffffffffffffffffffffffffffff191691909c1617909a5597517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf86015595517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0850155517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad184015594517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad290920191909155935493825260049092522055565b6000600282815481101515610bff57fe5b90600052602060002090600502019050806003015442111515610c225750610d99565b60018101541515610c395742600390910155610d99565b80546040805160e060020a6370a082310281523060048201529051600092600160a060020a0316916370a08231916024808301926020929190829003018186803b158015610c8657600080fd5b505afa158015610c9a573d6000803e3d6000fd5b505050506040513d6020811015610cb057600080fd5b50519050801515610cc8575042600390910155610d99565b6000610cd384611104565b600554604080517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018490529051929350600160a060020a03909116916340c10f199160448082019260009290919082900301818387803b158015610d4257600080fd5b505af1158015610d56573d6000803e3d6000fd5b50505050610d8a610d798361083764e8d4a51000856116d390919063ffffffff16565b60048501549063ffffffff61181f16565b60048401555050426003909101555b50565b6000600282815481101515610dad57fe5b600091825260208083208584526003825260408085203386529092529083208054600590930290910193509110610e2e576040805160e560020a62461bcd02815260206004820152601b60248201527f656d657267656e637957697468647261773a206e6f7420676f6f640000000000604482015290519081900360640190fd5b805460008083556001830181905583546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e9257600080fd5b505af1158015610ea6573d6000803e3d6000fd5b505050506040513d6020811015610ebc57600080fd5b5050604080518281529051859133917fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05959181900360200190a350505050565b610f036110aa565b1515610f47576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b6000811015610fc6576040805160e560020a62461bcd02815260206004820152602160248201527f486172656d7320706572206461792063616e6e6f74206265206e65676174697660448201527f6500000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610fcf82610bee565b80600283815481101515610fdf57fe5b9060005260206000209060050201600101819055505050565b6110006110aa565b1515611044576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031690565b60008054600160a060020a03166110bf611b11565b600160a060020a031614905090565b60036020908152600092835260408084209091529082529020805460019091015482565b60046020526000908152604090205481565b60008060028381548110151561111657fe5b60009182526020808320600590920290910180546040805160e060020a6370a082310281523060048201529051929550429493600160a060020a03909216926370a0823192602480840193919291829003018186803b15801561117857600080fd5b505afa15801561118c573d6000803e3d6000fd5b505050506040513d60208110156111a257600080fd5b505160018401549091506111f8906111d690670de0b6b3a7640000906108379062015180908290879063ffffffff6116d316565b60038501546111ec90859063ffffffff6117bf16565b9063ffffffff6116d316565b95945050505050565b6112096110aa565b151561124d576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b60008110156112a6576040805160e560020a62461bcd02815260206004820152601c60248201527f4d6178207374616b652063616e6e6f74206265206e6567617469766500000000604482015290519081900360640190fd5b806002838154811015156112b657fe5b9060005260206000209060050201600201819055505050565b6002546000908190815b81811015611305576112fb6112ee828761130e565b849063ffffffff61181f16565b92506001016112d9565b50909392505050565b60008060028481548110151561132057fe5b60009182526020808320878452600382526040808520600160a060020a0389811687529084528186206005959095029092016004818101548254845160e060020a6370a08231028152309381019390935293519298509596429695909493909316926370a0823192602480840193829003018186803b1580156113a257600080fd5b505afa1580156113b6573d6000803e3d6000fd5b505050506040513d60208110156113cc57600080fd5b50516003860154909150831180156113e357508015155b156114155760006113f389611104565b90506114116112ee836108378464e8d4a5100063ffffffff6116d316565b9250505b61143d846001015461084364e8d4a510006108378689600001546116d390919063ffffffff16565b955050505050505b92915050565b600060028381548110151561145c57fe5b600091825260208083208684526003825260408085203386529092529220600260059092029092019081015482549193509061149f90859063ffffffff61181f16565b111561151b576040805160e560020a62461bcd02815260206004820152602260248201527f43616e6e6f74207374616b65206265796f6e64206d61785374616b652076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61152484610bee565b6000611552826001015461084364e8d4a51000610837876004015487600001546116d390919063ffffffff16565b8254909150611567908563ffffffff61181f16565b808355600484015461158a9164e8d4a5100091610837919063ffffffff6116d316565b600183015560008111156115a2576115a2338261187c565b8254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561161457600080fd5b505af1158015611628573d6000803e3d6000fd5b505050506040513d602081101561163e57600080fd5b5050604080518581529051869133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a35050505050565b6116866110aa565b15156116ca576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b610d9981611b15565b60008215156116e457506000611445565b8282028284828115156116f357fe5b0414611749576040805160e560020a62461bcd02815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b60008082116117a9576040805160e560020a62461bcd02815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848115156117b657fe5b04949350505050565b600082821115611819576040805160e560020a62461bcd02815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015611749576040805160e560020a62461bcd02815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b6005546040805160e060020a6370a082310281523060048201529051600092600160a060020a0316916370a08231916024808301926020929190829003018186803b1580156118ca57600080fd5b505afa1580156118de573d6000803e3d6000fd5b505050506040513d60208110156118f457600080fd5b5051905080821115611a08576005546040805160e060020a63a9059cbb028152600160a060020a038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5050600554604080517f945ee661000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163945ee6619160248082019260009290919082900301818387803b1580156119eb57600080fd5b505af11580156119ff573d6000803e3d6000fd5b50505050611b0c565b6005546040805160e060020a63a9059cbb028152600160a060020a038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611a6157600080fd5b505af1158015611a75573d6000803e3d6000fd5b505050506040513d6020811015611a8b57600080fd5b5050600554604080517f945ee661000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163945ee6619160248082019260009290919082900301818387803b158015611af357600080fd5b505af1158015611b07573d6000803e3d6000fd5b505050505b505050565b3390565b600160a060020a0381161515611b9b576040805160e560020a62461bcd02815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a723058207da582f0a07c56918569bf32c87dc0bf0fd38bdea8f7a0a7b46f273cf4f8d3e50029000000000000000000000000547e1fc96805d123290c1cfb52d5bebc01ed3bfa0000000000000000000000007d2498a05f2c6d6d53db8dfb5826e279012996eb
Deployed Bytecode
0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302bcdd7b8114610137578063081e3eda146101e95780631526fe271461021057806322650f341461026f5780632d809cb6146102a057806330d9a62a146102d35780633d24a1ff146102e8578063441a3e70146102fd5780635101e1281461032d57806351eb05a61461036c5780635312ea8e14610396578063637b66b2146103c0578063715018a6146103f05780638da5cb5b146104055780638f32d59b1461041a57806393f1a40b146104435780639fb79dbc14610495578063ac6a7cc3146104c8578063add6f8ba146104f2578063c85ebc7d14610522578063d1c0eed914610555578063e2bbb1581461058e578063f2fde38b146105be575b600080fd5b34801561014357600080fd5b506101e76004803603602081101561015a57600080fd5b81019060208101813564010000000081111561017557600080fd5b82018360208201111561018757600080fd5b803590602001918460208302840111640100000000831117156101a957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506105f1945050505050565b005b3480156101f557600080fd5b506101fe61062b565b60408051918252519081900360200190f35b34801561021c57600080fd5b5061023a6004803603602081101561023357600080fd5b5035610631565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561027b57600080fd5b5061028461067a565b60408051600160a060020a039092168252519081900360200190f35b3480156102ac57600080fd5b506101e7600480360360208110156102c357600080fd5b5035600160a060020a0316610689565b3480156102df57600080fd5b50610284610740565b3480156102f457600080fd5b506101e761074f565b34801561030957600080fd5b506101e76004803603604081101561032057600080fd5b508035906020013561076e565b34801561033957600080fd5b506101e76004803603606081101561035057600080fd5b50600160a060020a038135169060208101359060400135610995565b34801561037857600080fd5b506101e76004803603602081101561038f57600080fd5b5035610bee565b3480156103a257600080fd5b506101e7600480360360208110156103b957600080fd5b5035610d9c565b3480156103cc57600080fd5b506101e7600480360360408110156103e357600080fd5b5080359060200135610efb565b3480156103fc57600080fd5b506101e7610ff8565b34801561041157600080fd5b5061028461109b565b34801561042657600080fd5b5061042f6110aa565b604080519115158252519081900360200190f35b34801561044f57600080fd5b5061047c6004803603604081101561046657600080fd5b5080359060200135600160a060020a03166110ce565b6040805192835260208301919091528051918290030190f35b3480156104a157600080fd5b506101fe600480360360208110156104b857600080fd5b5035600160a060020a03166110f2565b3480156104d457600080fd5b506101fe600480360360208110156104eb57600080fd5b5035611104565b3480156104fe57600080fd5b506101e76004803603604081101561051557600080fd5b5080359060200135611201565b34801561052e57600080fd5b506101fe6004803603602081101561054557600080fd5b5035600160a060020a03166112cf565b34801561056157600080fd5b506101fe6004803603604081101561057857600080fd5b5080359060200135600160a060020a031661130e565b34801561059a57600080fd5b506101e7600480360360408110156105b157600080fd5b508035906020013561144b565b3480156105ca57600080fd5b506101e7600480360360208110156105e157600080fd5b5035600160a060020a031661167e565b60005b81518110156106275761061f828281518110151561060e57fe5b90602001906020020151600061076e565b6001016105f4565b5050565b60025490565b600280548290811061063f57fe5b600091825260209091206005909102018054600182015460028301546003840154600490940154600160a060020a0390931694509092909185565b600554600160a060020a031681565b600154600160a060020a03163314610711576040805160e560020a62461bcd02815260206004820152602c60248201527f4d7573742062652063616c6c65642066726f6d2063757272656e74207472656160448201527f7375727920616464726573730000000000000000000000000000000000000000606482015290519081900360840190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b60025460005b818110156106275761076681610bee565b600101610755565b600060028381548110151561077f57fe5b600091825260208083208684526003825260408085203386529092529220805460059092029092019250831115610800576040805160e560020a62461bcd02815260206004820152601260248201527f77697468647261773a206e6f7420676f6f640000000000000000000000000000604482015290519081900360640190fd5b61080984610bee565b600061084f826001015461084364e8d4a51000610837876004015487600001546116d390919063ffffffff16565b9063ffffffff61175016565b9063ffffffff6117bf16565b8254909150600090610867908663ffffffff6117bf16565b9050836002015481111561089057600284015461088d908690830363ffffffff61181f16565b94505b82546108a2908663ffffffff6117bf16565b80845560048501546108c59164e8d4a5100091610837919063ffffffff6116d316565b60018401556108d4338361187c565b83546040805160e060020a63a9059cbb028152336004820152602481018890529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b5050604080518681529051879133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a3505050505050565b61099d6110aa565b15156109e1576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526004602052604090205415610a4f576040805160e560020a62461bcd02815260206004820152601b60248201527f47697665724f66486172656d3a6475706c6963617465206164642e0000000000604482015290519081900360640190fd5b600554600160a060020a0384811691161415610ab5576040805160e560020a62461bcd02815260206004820152601a60248201527f43616e6e6f742061646420486172656d206173206120706f6f6c000000000000604482015290519081900360640190fd5b6040805160a081018252600160a060020a03948516808252602080830195865282840194855242606084019081526000608085018181526002805460018101825581845296517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace6005909802978801805473ffffffffffffffffffffffffffffffffffffffff191691909c1617909a5597517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf86015595517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0850155517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad184015594517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad290920191909155935493825260049092522055565b6000600282815481101515610bff57fe5b90600052602060002090600502019050806003015442111515610c225750610d99565b60018101541515610c395742600390910155610d99565b80546040805160e060020a6370a082310281523060048201529051600092600160a060020a0316916370a08231916024808301926020929190829003018186803b158015610c8657600080fd5b505afa158015610c9a573d6000803e3d6000fd5b505050506040513d6020811015610cb057600080fd5b50519050801515610cc8575042600390910155610d99565b6000610cd384611104565b600554604080517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018490529051929350600160a060020a03909116916340c10f199160448082019260009290919082900301818387803b158015610d4257600080fd5b505af1158015610d56573d6000803e3d6000fd5b50505050610d8a610d798361083764e8d4a51000856116d390919063ffffffff16565b60048501549063ffffffff61181f16565b60048401555050426003909101555b50565b6000600282815481101515610dad57fe5b600091825260208083208584526003825260408085203386529092529083208054600590930290910193509110610e2e576040805160e560020a62461bcd02815260206004820152601b60248201527f656d657267656e637957697468647261773a206e6f7420676f6f640000000000604482015290519081900360640190fd5b805460008083556001830181905583546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169263a9059cbb926044808401936020939083900390910190829087803b158015610e9257600080fd5b505af1158015610ea6573d6000803e3d6000fd5b505050506040513d6020811015610ebc57600080fd5b5050604080518281529051859133917fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05959181900360200190a350505050565b610f036110aa565b1515610f47576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b6000811015610fc6576040805160e560020a62461bcd02815260206004820152602160248201527f486172656d7320706572206461792063616e6e6f74206265206e65676174697660448201527f6500000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b610fcf82610bee565b80600283815481101515610fdf57fe5b9060005260206000209060050201600101819055505050565b6110006110aa565b1515611044576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031690565b60008054600160a060020a03166110bf611b11565b600160a060020a031614905090565b60036020908152600092835260408084209091529082529020805460019091015482565b60046020526000908152604090205481565b60008060028381548110151561111657fe5b60009182526020808320600590920290910180546040805160e060020a6370a082310281523060048201529051929550429493600160a060020a03909216926370a0823192602480840193919291829003018186803b15801561117857600080fd5b505afa15801561118c573d6000803e3d6000fd5b505050506040513d60208110156111a257600080fd5b505160018401549091506111f8906111d690670de0b6b3a7640000906108379062015180908290879063ffffffff6116d316565b60038501546111ec90859063ffffffff6117bf16565b9063ffffffff6116d316565b95945050505050565b6112096110aa565b151561124d576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b60008110156112a6576040805160e560020a62461bcd02815260206004820152601c60248201527f4d6178207374616b652063616e6e6f74206265206e6567617469766500000000604482015290519081900360640190fd5b806002838154811015156112b657fe5b9060005260206000209060050201600201819055505050565b6002546000908190815b81811015611305576112fb6112ee828761130e565b849063ffffffff61181f16565b92506001016112d9565b50909392505050565b60008060028481548110151561132057fe5b60009182526020808320878452600382526040808520600160a060020a0389811687529084528186206005959095029092016004818101548254845160e060020a6370a08231028152309381019390935293519298509596429695909493909316926370a0823192602480840193829003018186803b1580156113a257600080fd5b505afa1580156113b6573d6000803e3d6000fd5b505050506040513d60208110156113cc57600080fd5b50516003860154909150831180156113e357508015155b156114155760006113f389611104565b90506114116112ee836108378464e8d4a5100063ffffffff6116d316565b9250505b61143d846001015461084364e8d4a510006108378689600001546116d390919063ffffffff16565b955050505050505b92915050565b600060028381548110151561145c57fe5b600091825260208083208684526003825260408085203386529092529220600260059092029092019081015482549193509061149f90859063ffffffff61181f16565b111561151b576040805160e560020a62461bcd02815260206004820152602260248201527f43616e6e6f74207374616b65206265796f6e64206d61785374616b652076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61152484610bee565b6000611552826001015461084364e8d4a51000610837876004015487600001546116d390919063ffffffff16565b8254909150611567908563ffffffff61181f16565b808355600484015461158a9164e8d4a5100091610837919063ffffffff6116d316565b600183015560008111156115a2576115a2338261187c565b8254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561161457600080fd5b505af1158015611628573d6000803e3d6000fd5b505050506040513d602081101561163e57600080fd5b5050604080518581529051869133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a35050505050565b6116866110aa565b15156116ca576040805160e560020a62461bcd0281526020600482018190526024820152600080516020611c04833981519152604482015290519081900360640190fd5b610d9981611b15565b60008215156116e457506000611445565b8282028284828115156116f357fe5b0414611749576040805160e560020a62461bcd02815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b60008082116117a9576040805160e560020a62461bcd02815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848115156117b657fe5b04949350505050565b600082821115611819576040805160e560020a62461bcd02815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015611749576040805160e560020a62461bcd02815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b6005546040805160e060020a6370a082310281523060048201529051600092600160a060020a0316916370a08231916024808301926020929190829003018186803b1580156118ca57600080fd5b505afa1580156118de573d6000803e3d6000fd5b505050506040513d60208110156118f457600080fd5b5051905080821115611a08576005546040805160e060020a63a9059cbb028152600160a060020a038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5050600554604080517f945ee661000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163945ee6619160248082019260009290919082900301818387803b1580156119eb57600080fd5b505af11580156119ff573d6000803e3d6000fd5b50505050611b0c565b6005546040805160e060020a63a9059cbb028152600160a060020a038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611a6157600080fd5b505af1158015611a75573d6000803e3d6000fd5b505050506040513d6020811015611a8b57600080fd5b5050600554604080517f945ee661000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a039092169163945ee6619160248082019260009290919082900301818387803b158015611af357600080fd5b505af1158015611b07573d6000803e3d6000fd5b505050505b505050565b3390565b600160a060020a0381161515611b9b576040805160e560020a62461bcd02815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905556fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a723058207da582f0a07c56918569bf32c87dc0bf0fd38bdea8f7a0a7b46f273cf4f8d3e50029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000547e1fc96805d123290c1cfb52d5bebc01ed3bfa0000000000000000000000007d2498a05f2c6d6d53db8dfb5826e279012996eb
-----Decoded View---------------
Arg [0] : _haremAddress (address): 0x547e1fC96805D123290c1cfB52d5bEbC01ED3BFA
Arg [1] : _treasuryAddr (address): 0x7D2498A05f2C6d6d53db8dFb5826e279012996EB
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000547e1fc96805d123290c1cfb52d5bebc01ed3bfa
Arg [1] : 0000000000000000000000007d2498a05f2c6d6d53db8dfb5826e279012996eb
Deployed Bytecode Sourcemap
16257:10104:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21650:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21650:152:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21650:152:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;21650:152:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21650: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;21650:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21650:152:0;;-1:-1:-1;21650:152:0;;-1:-1:-1;;;;;21650:152:0;;;18452:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18452:95:0;;;;;;;;;;;;;;;;;;;;17716:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17716:26:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17716:26:0;;;;;;;-1:-1:-1;;;;;17716:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17969:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17969:29:0;;;;;;;;-1:-1:-1;;;;;17969:29:0;;;;;;;;;;;;;;26169:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26169:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26169:189:0;-1:-1:-1;;;;;26169:189:0;;;17655:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17655:27:0;;;;21885:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21885:175:0;;;;23943:1169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23943:1169:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23943:1169:0;;;;;;;;18716:593;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18716:593:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18716:593:0;;;;;;;;;;;;;;22136:978;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22136:978:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22136:978:0;;;25183:448;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25183:448:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25183:448:0;;;19582:219;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19582:219:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19582:219:0;;;;;;;;2956:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2956:140:0;;;;2145:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2145:79:0;;;;2511:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2511:94:0;;;;;;;;;;;;;;;;;;;;;;17798:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17798:64:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17798:64:0;;;;;;-1:-1:-1;;;;;17798:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;17917:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17917:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17917:43:0;-1:-1:-1;;;;;17917:43:0;;;21014:371;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21014:371:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21014:371:0;;;19321:180;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19321:180:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19321:180:0;;;;;;;;20645:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20645:299:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20645:299:0;-1:-1:-1;;;;;20645:299:0;;;19866:683;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19866:683:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19866:683:0;;;;;;-1:-1:-1;;;;;19866:683:0;;;23178:722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23178:722:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23178:722:0;;;;;;;;3251:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3251:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3251:109:0;-1:-1:-1;;;;;3251:109:0;;;21650:152;21714:6;21709:86;21728:5;:12;21724:1;:16;21709:86;;;21762:21;21771:5;21777:1;21771:8;;;;;;;;;;;;;;;;;;21781:1;21762:8;:21::i;:::-;21742:3;;21709:86;;;;21650:152;:::o;18452:95::-;18524:8;:15;18452:95;:::o;17716:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17716:26:0;;;;-1:-1:-1;17716:26:0;;;;;:::o;17969:29::-;;;-1:-1:-1;;;;;17969:29:0;;:::o;26169:189::-;26250:12;;-1:-1:-1;;;;;26250:12:0;26236:10;:26;26228:83;;;;;-1:-1:-1;;;;;26228:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26322:12;:28;;-1:-1:-1;;26322:28:0;-1:-1:-1;;;;;26322:28:0;;;;;;;;;;26169:189::o;17655:27::-;;;-1:-1:-1;;;;;17655:27:0;;:::o;21885:175::-;21942:8;:15;21925:14;21968:85;21996:6;21990:3;:12;21968:85;;;22026:15;22037:3;22026:10;:15::i;:::-;22004:5;;21968:85;;23943:1169;24010:21;24034:8;24043:4;24034:14;;;;;;;;;;;;;;;;;;24083;;;:8;:14;;;;;;24098:10;24083:26;;;;;;;24128:11;;24034:14;;;;;;;;-1:-1:-1;24128:22:0;-1:-1:-1;24128:22:0;24120:53;;;;;-1:-1:-1;;;;;24120:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24184:16;24195:4;24184:10;:16::i;:::-;24211:15;24229:69;24282:4;:15;;;24229:48;24272:4;24229:38;24245:4;:21;;;24229:4;:11;;;:15;;:38;;;;:::i;:::-;:42;:48;:42;:48;:::i;:::-;:52;:69;:52;:69;:::i;:::-;24660:11;;24211:87;;-1:-1:-1;24632:25:0;;24660:24;;24676:7;24660:24;:15;:24;:::i;:::-;24632:52;;24719:4;:13;;;24699:17;:33;24695:122;;;24791:13;;;;24759:46;;:7;;24771:33;;24759:46;:11;:46;:::i;:::-;24749:56;;24695:122;24843:11;;:24;;24859:7;24843:24;:15;:24;:::i;:::-;24829:38;;;24912:21;;;;24896:48;;24939:4;;24896:38;;24829;24896;:15;:38;:::i;:48::-;24878:15;;;:66;24955:38;24973:10;24985:7;24955:17;:38::i;:::-;25004:10;;:49;;;-1:-1:-1;;;;;25004:49:0;;25032:10;25004:49;;;;;;;;;;;;-1:-1:-1;;;;;25004:10:0;;;;:19;;:49;;;;;;;;;;;;;;;:10;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;25004:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25004:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;25069:35:0;;;;;;;;25090:4;;25078:10;;25069:35;;;;;25004:49;25069:35;;;23943:1169;;;;;;:::o;18716:593::-;2357:9;:7;:9::i;:::-;2349:54;;;;;;;-1:-1:-1;;;;;2349:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2349:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18822:25:0;;;;;;:8;:25;;;;;;:30;18814:70;;;;;-1:-1:-1;;;;;18814:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18930:5;;-1:-1:-1;;;;;18903:33:0;;;18930:5;;18903:33;;18895:73;;;;;-1:-1:-1;;;;;18895:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19007:229;;;;;;;;-1:-1:-1;;;;;19007:229:0;;;;;;;;;;;;;;;;;;;19167:15;19007:229;;;;;;-1:-1:-1;19007:229:0;;;;;;18979:8;27:10:-1;;39:1;23:18;;45:23;;18979:268:0;;;;;;;;;;;;;;;-1:-1:-1;;18979:268:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19286:15;;19258:25;;;18979:268;19258:25;;;;:43;18716:593::o;22136:978::-;22188:21;22212:8;22221:4;22212:14;;;;;;;;;;;;;;;;;;;;22188:38;;22260:4;:19;;;22241:15;:38;;22237:77;;;22296:7;;;22237:77;22328:17;;;;:22;22324:113;;;22389:15;22367:19;;;;:37;22419:7;;22324:113;22469:10;;:35;;;-1:-1:-1;;;;;22469:35:0;;22498:4;22469:35;;;;;;22447:19;;-1:-1:-1;;;;;22469:10:0;;:20;;:35;;;;;;;;;;;;;;:10;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;22469:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22469:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22469:35:0;;-1:-1:-1;22519:16:0;;22515:107;;;-1:-1:-1;22574:15:0;22552:19;;;;:37;22604:7;;22515:107;22746:19;22768:24;22787:4;22768:18;:24::i;:::-;22918:5;;:38;;;;;;22937:4;22918:38;;;;;;;;;;;;22746:46;;-1:-1:-1;;;;;;22918:5:0;;;;:10;;:38;;;;;:5;;:38;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;22918:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22918:38:0;;;;22993:65;23019:38;23045:11;23019:21;23035:4;23019:11;:15;;:21;;;;:::i;:38::-;22993:21;;;;;:65;:25;:65;:::i;:::-;22969:21;;;:89;-1:-1:-1;;23091:15:0;23069:19;;;;:37;22136:978;;:::o;25183:448::-;25242:21;25266:8;25275:4;25266:14;;;;;;;;;;;;;;;;;;25315;;;:8;:14;;;;;;25330:10;25315:26;;;;;;;;25360:11;;25266:14;;;;;;;;-1:-1:-1;25315:26:0;-1:-1:-1;25352:55:0;;;;;-1:-1:-1;;;;;25352:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;25436:11;;25418:15;25458;;;-1:-1:-1;25484:15:0;;:19;;;25514:10;;:49;;;-1:-1:-1;;;;;25514:49:0;;25542:10;25514:49;;;;;;;;;;;;-1:-1:-1;;;;;25514:10:0;;;;:19;;:49;;;;;;;;;;;;;;;;;:10;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;25514:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25514:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;25579:44:0;;;;;;;;25609:4;;25597:10;;25579:44;;;;;25514:49;25579:44;;;25183:448;;;;:::o;19582:219::-;2357:9;:7;:9::i;:::-;2349:54;;;;;;;-1:-1:-1;;;;;2349:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2349:54:0;;;;;;;;;;;;;;;19682:1;19672:11;;;19664:57;;;;;-1:-1:-1;;;;;19664:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19732:15;19743:3;19732:10;:15::i;:::-;19787:6;19758:8;19767:3;19758:13;;;;;;;;;;;;;;;;;;;;:26;;:35;;;;19582:219;;:::o;2956:140::-;2357:9;:7;:9::i;:::-;2349:54;;;;;;;-1:-1:-1;;;;;2349:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2349:54:0;;;;;;;;;;;;;;;3055:1;3039:6;;3018:40;;-1:-1:-1;;;;;3039:6:0;;;;3018:40;;3055:1;;3018:40;3086:1;3069:19;;-1:-1:-1;;3069:19:0;;;2956:140::o;2145:79::-;2183:7;2210:6;-1:-1:-1;;;;;2210:6:0;2145:79;:::o;2511:94::-;2551:4;2591:6;;-1:-1:-1;;;;;2591:6:0;2575:12;:10;:12::i;:::-;-1:-1:-1;;;;;2575:22:0;;2568:29;;2511:94;:::o;17798:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17917:43::-;;;;;;;;;;;;;:::o;21014:371::-;21077:7;21097:21;21121:8;21130:4;21121:14;;;;;;;;;;;;;;;;;;;;;;;;;21214:10;;:35;;;-1:-1:-1;;;;;21214:35:0;;21243:4;21214:35;;;;;;21121:14;;-1:-1:-1;21166:15:0;;21121:14;-1:-1:-1;;;;;21214:10:0;;;;:20;;:35;;;;;21121:14;;21214:35;;;;;;:10;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;21214:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21214:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21214:35:0;21322:17;;;;21214:35;;-1:-1:-1;21267:110:0;;21306:70;;21356:19;;21306:45;;21345:5;;21306:45;;21214:35;;21306:34;:15;:34;:::i;:70::-;21281:19;;;;21267:34;;:9;;:34;:13;:34;:::i;:::-;:38;:110;:38;:110;:::i;:::-;21260:117;21014:371;-1:-1:-1;;;;;21014:371:0:o;19321:180::-;2357:9;:7;:9::i;:::-;2349:54;;;;;;;-1:-1:-1;;;;;2349:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2349:54:0;;;;;;;;;;;;;;;19417:1;19407:11;;;19399:52;;;;;-1:-1:-1;;;;;19399:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19487:6;19462:8;19471:3;19462:13;;;;;;;;;;;;;;;;;;;;:22;;:31;;;;19321:180;;:::o;20645:299::-;20773:8;:15;20708:7;;;;;20799:113;20827:6;20821:3;:12;20799:113;;;20865:35;20875:24;20888:3;20893:5;20875:12;:24::i;:::-;20865:5;;:35;:9;:35;:::i;:::-;20857:43;-1:-1:-1;20835:5:0;;20799:113;;;-1:-1:-1;20931:5:0;;20645:299;-1:-1:-1;;;20645:299:0:o;19866:683::-;19938:7;19958:21;19982:8;19991:4;19982:14;;;;;;;;;;;;;;;;;;20031;;;:8;:14;;;;;;-1:-1:-1;;;;;20031:21:0;;;;;;;;;;;19982:14;;;;;;;;20136:21;;;;;20190:10;;:35;;-1:-1:-1;;;;;20190:35:0;;20219:4;20190:35;;;;;;;;;19982:14;;-1:-1:-1;20031:21:0;;20083:15;;20136:21;19982:14;;20190:10;;;;;:20;;:35;;;;;;;;;;:10;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;20190:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20190:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20190:35:0;20252:19;;;;20190:35;;-1:-1:-1;20240:31:0;;:51;;;;-1:-1:-1;20275:16:0;;;20240:51;20236:224;;;20308:19;20330:24;20349:4;20330:18;:24::i;:::-;20308:46;-1:-1:-1;20388:60:0;20409:38;20435:11;20409:21;20308:46;20425:4;20409:21;:15;:21;:::i;20388:60::-;20369:79;;20236:224;;20477:64;20525:4;:15;;;20477:43;20515:4;20477:33;20493:16;20477:4;:11;;;:15;;:33;;;;:::i;:64::-;20470:71;;;;;;;19866:683;;;;;:::o;23178:722::-;23244:21;23268:8;23277:4;23268:14;;;;;;;;;;;;;;;;;;23317;;;:8;:14;;;;;;23332:10;23317:26;;;;;;;23392:13;23268:14;;;;;;;23392:13;;;;23376:11;;23268:14;;-1:-1:-1;23392:13:0;23364:24;;:7;;:24;:11;:24;:::i;:::-;:41;;23356:88;;;;;-1:-1:-1;;;;;23356:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23457:16;23468:4;23457:10;:16::i;:::-;23484:15;23502:69;23555:4;:15;;;23502:48;23545:4;23502:38;23518:4;:21;;;23502:4;:11;;;:15;;:38;;;;:::i;:69::-;23596:11;;23484:87;;-1:-1:-1;23596:24:0;;23612:7;23596:24;:15;:24;:::i;:::-;23582:38;;;23665:21;;;;23649:48;;23692:4;;23649:38;;23582;23649;:15;:38;:::i;:48::-;23631:15;;;:66;23722:1;23712:11;;23708:55;;;23725:38;23743:10;23755:7;23725:17;:38::i;:::-;23774:10;;:68;;;;;;23806:10;23774:68;;;;23827:4;23774:68;;;;;;;;;;;;-1:-1:-1;;;;;23774:10:0;;;;:23;;:68;;;;;;;;;;;;;;;:10;;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;23774:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23774:68:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;23858:34:0;;;;;;;;23878:4;;23866:10;;23858:34;;;;;23774:68;23858:34;;;23178:722;;;;;:::o;3251:109::-;2357:9;:7;:9::i;:::-;2349:54;;;;;;;-1:-1:-1;;;;;2349:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2349:54:0;;;;;;;;;;;;;;;3324:28;3343:8;3324:18;:28::i;3994:459::-;4052:7;4296:6;;4292:47;;;-1:-1:-1;4326:1:0;4319:8;;4292:47;4363:5;;;4367:1;4363;:5;4387;;;;;;;;:10;4379:45;;;;;-1:-1:-1;;;;;4379:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4444:1;3994:459;-1:-1:-1;;;3994:459:0:o;4588:337::-;4646:7;4741:5;;;4733:48;;;;;-1:-1:-1;;;;;4733:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4792:9;4808:1;4804;:5;;;;;;;;;4588:337;-1:-1:-1;;;;4588:337:0:o;5063:177::-;5121:7;5149:6;;;;5141:42;;;;;-1:-1:-1;;;;;5141:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5206:5:0;;;5063:177::o;5328:176::-;5386:7;5418:5;;;5442:6;;;;5434:41;;;;;-1:-1:-1;;;;;5434:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;25747:366;25843:5;;:30;;;-1:-1:-1;;;;;25843:30:0;;25867:4;25843:30;;;;;;25824:16;;-1:-1:-1;;;;;25843:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;25843:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25843:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25843:30:0;;-1:-1:-1;25888:18:0;;;25884:222;;;25923:5;;:29;;;-1:-1:-1;;;;;25923:29:0;;-1:-1:-1;;;;;25923:29:0;;;;;;;;;;;;;;;:5;;;;;:14;;:29;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;25923:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25923:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;25967:5:0;;:26;;;;;;;;;;;;;;-1:-1:-1;;;;;25967:5:0;;;;:16;;:26;;;;;:5;;:26;;;;;;;;:5;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;25967:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25967:26:0;;;;25884:222;;;26026:5;;:28;;;-1:-1:-1;;;;;26026:28:0;;-1:-1:-1;;;;;26026:28:0;;;;;;;;;;;;;;;:5;;;;;:14;;:28;;;;;;;;;;;;;;:5;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;26026:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26026:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;26069:5:0;;:25;;;;;;;;;;;;;;-1:-1:-1;;;;;26069:5:0;;;;:16;;:25;;;;;:5;;:25;;;;;;;;:5;;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;26069:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26069:25:0;;;;25884:222;25747:366;;;:::o;857:98::-;937:10;857:98;:::o;3466:229::-;-1:-1:-1;;;;;3540:22:0;;;;3532:73;;;;;-1:-1:-1;;;;;3532:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3642:6;;;3621:38;;-1:-1:-1;;;;;3621:38:0;;;;3642:6;;;3621:38;;;3670:6;:17;;-1:-1:-1;;3670:17:0;-1:-1:-1;;;;;3670:17:0;;;;;;;;;;3466:229::o
Swarm Source
bzzr://7da582f0a07c56918569bf32c87dc0bf0fd38bdea8f7a0a7b46f273cf4f8d3e5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BSC | 100.00% | $727.53 | 0.0273 | $19.89 |
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.