More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 501 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 20427518 | 11 days ago | IN | 0 ETH | 0.00084078 | ||||
Claim | 20205071 | 42 days ago | IN | 0 ETH | 0.00032933 | ||||
Claim | 19767246 | 103 days ago | IN | 0 ETH | 0.00061908 | ||||
Claim | 19358355 | 161 days ago | IN | 0 ETH | 0.00451318 | ||||
Claim | 19124911 | 194 days ago | IN | 0 ETH | 0.00080846 | ||||
Claim | 18875409 | 229 days ago | IN | 0 ETH | 0.00100389 | ||||
Claim | 18685456 | 255 days ago | IN | 0 ETH | 0.0034804 | ||||
Claim | 18470465 | 285 days ago | IN | 0 ETH | 0.00154894 | ||||
Claim | 18265260 | 314 days ago | IN | 0 ETH | 0.00088397 | ||||
Claim | 18075444 | 341 days ago | IN | 0 ETH | 0.00084282 | ||||
Claim | 18035642 | 346 days ago | IN | 0 ETH | 0.00237134 | ||||
Claim | 17806650 | 378 days ago | IN | 0 ETH | 0.00097746 | ||||
Claim | 17590876 | 408 days ago | IN | 0 ETH | 0.00122897 | ||||
Claim | 17380013 | 438 days ago | IN | 0 ETH | 0.00332282 | ||||
Claim | 17159265 | 469 days ago | IN | 0 ETH | 0.00245659 | ||||
Claim | 16947326 | 499 days ago | IN | 0 ETH | 0.0013465 | ||||
Claim | 16727615 | 530 days ago | IN | 0 ETH | 0.00183917 | ||||
Claim | 16527755 | 558 days ago | IN | 0 ETH | 0.00251017 | ||||
Claim | 16304857 | 589 days ago | IN | 0 ETH | 0.00079396 | ||||
Claim | 16080861 | 621 days ago | IN | 0 ETH | 0.0005716 | ||||
Claim | 15867400 | 650 days ago | IN | 0 ETH | 0.0005339 | ||||
Claim | 15859287 | 652 days ago | IN | 0 ETH | 0.00064024 | ||||
Claim | 15858636 | 652 days ago | IN | 0 ETH | 0.00050208 | ||||
Add Rewards | 15716273 | 671 days ago | IN | 0 ETH | 0.0017681 | ||||
Claim | 15693773 | 675 days ago | IN | 0 ETH | 0.0002395 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
LinearVesting
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-25 */ // File: @openzeppelin/contracts/math/SafeMath.sol // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol pragma solidity >=0.6.0 <0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts/utils/Context.sol pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol pragma solidity >=0.6.0 <0.8.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. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: contracts/interfaces/Owned.sol pragma solidity 0.7.5; abstract contract Owned is Ownable { constructor(address _owner) { transferOwnership(_owner); } } // File: contracts/LinearVesting.sol pragma solidity 0.7.5; // Inheritance /// @title Umbrella Rewards contract /// @author umb.network /// @notice This contract serves TOKEN DISTRIBUTION AT LAUNCH for: /// - node, founders, early contributors etc... /// It can be used for future distributions for next milestones also /// as its functionality stays the same. /// It supports linear vesting /// @dev Deploy contract. Mint tokens reward for this contract. /// Then as owner call .setupDistribution() and then start() contract LinearVesting is Owned { using SafeMath for uint256; uint8 public constant VERSION = 2; IERC20 public umbToken; uint256 public totalVestingAmount; mapping(address => Reward) public rewards; struct Reward { uint256 total; uint256 duration; uint256 paid; uint256 startTime; } // ========== CONSTRUCTOR ========== // constructor(address _owner, address _token) Owned(_owner) { require(_token != address(0x0), "empty _token"); umbToken = IERC20(_token); } // ========== VIEWS ========== // function balanceOf(address _address) public view returns (uint256) { Reward memory reward = rewards[_address]; if (block.timestamp <= reward.startTime) { return 0; } if (block.timestamp >= reward.startTime.add(reward.duration)) { return reward.total - reward.paid; } return reward.total.mul(block.timestamp - reward.startTime).div(reward.duration) - reward.paid; } // ========== MUTATIVE FUNCTIONS ========== // function claim() external { _claim(msg.sender); } function claimFor(address[] calldata _participants) external { for (uint i = 0; i < _participants.length; i++) { _claim(_participants[i]); } } // ========== RESTRICTED FUNCTIONS ========== // function _claim(address _participant) internal { uint256 balance = balanceOf(_participant); require(balance != 0, "you have no tokens to claim"); // no need for safe math because sum was calculated using safeMath rewards[_participant].paid += balance; // this is our token, we can save gas and simple use transfer instead safeTransfer require(umbToken.transfer(_participant, balance), "umb.transfer failed"); emit LogClaimed(_participant, balance); } function addRewards( address[] calldata _participants, uint256[] calldata _rewards, uint256[] calldata _durations, uint256[] calldata _startTimes ) external onlyOwner { require(_participants.length != 0, "there is no _participants"); require(_participants.length == _rewards.length, "_participants count must match _rewards count"); require(_participants.length == _durations.length, "_participants count must match _durations count"); require(_participants.length == _startTimes.length, "_participants count must match _startTimes count"); uint256 sum = totalVestingAmount; for (uint256 i = 0; i < _participants.length; i++) { require(_participants[i] != address(0x0), "empty participant"); require(_durations[i] != 0, "empty duration"); require(_durations[i] < 5 * 365 days, "duration too long"); require(_rewards[i] != 0, "empty reward"); require(_startTimes[i] != 0, "empty startTime"); uint256 total = rewards[_participants[i]].total; if (total < _rewards[i]) { // we increased existing reward, so sum will be higher sum = sum.add(_rewards[i] - total); } else { // we decreased existing reward, so sum will be lower sum = sum.sub(total - _rewards[i]); } if (total != 0) { // updating existing require(rewards[_participants[i]].startTime == _startTimes[i], "can't change start time"); require( _rewards[i] >= balanceOf(_participants[i]) + rewards[_participants[i]].paid, "can't take what's already done" ); rewards[_participants[i]].total = _rewards[i]; rewards[_participants[i]].duration = _durations[i]; } else { // new participant rewards[_participants[i]] = Reward(_rewards[i], _durations[i], 0, _startTimes[i]); } } emit LogSetup(totalVestingAmount, sum); totalVestingAmount = sum; } // ========== EVENTS ========== // event LogSetup(uint256 prevSum, uint256 newSum); event LogClaimed(address indexed recipient, uint256 amount); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevSum","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSum","type":"uint256"}],"name":"LogSetup","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"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_participants","type":"address[]"},{"internalType":"uint256[]","name":"_rewards","type":"uint256[]"},{"internalType":"uint256[]","name":"_durations","type":"uint256[]"},{"internalType":"uint256[]","name":"_startTimes","type":"uint256[]"}],"name":"addRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_participants","type":"address[]"}],"name":"claimFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalVestingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"umbToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001e7338038062001e73833981810160405260408110156200003757600080fd5b810190808051906020019092919080519060200190929190505050816000620000656200020260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000114816200020a60201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620001b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f656d707479205f746f6b656e000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000438565b600033905090565b6200021a6200020260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002406200040f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018062001e4d6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a0580620004486000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063715018a611610071578063715018a6146101cf5780638da5cb5b146101d95780639bde80371461020d578063b38aab9d14610385578063f2fde38b146103fe578063ffa1ad7414610442576100a9565b80630700037d146100ae5780632db94d191461011b57806336638ea0146101395780634e71d92d1461016d57806370a0823114610177575b600080fd5b6100f0600480360360208110156100c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610463565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b610123610493565b6040518082815260200191505060405180910390f35b610141610499565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101756104bf565b005b6101b96004803603602081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104ca565b6040518082815260200191505060405180910390f35b6101d76105d3565b005b6101e1610740565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103836004803603608081101561022357600080fd5b810190808035906020019064010000000081111561024057600080fd5b82018360208201111561025257600080fd5b8035906020019184602083028401116401000000008311171561027457600080fd5b90919293919293908035906020019064010000000081111561029557600080fd5b8201836020820111156102a757600080fd5b803590602001918460208302840111640100000000831117156102c957600080fd5b9091929391929390803590602001906401000000008111156102ea57600080fd5b8201836020820111156102fc57600080fd5b8035906020019184602083028401116401000000008311171561031e57600080fd5b90919293919293908035906020019064010000000081111561033f57600080fd5b82018360208201111561035157600080fd5b8035906020019184602083028401116401000000008311171561037357600080fd5b9091929391929390505050610769565b005b6103fc6004803603602081101561039b57600080fd5b81019080803590602001906401000000008111156103b857600080fd5b8201836020820111156103ca57600080fd5b803590602001918460208302840111640100000000831117156103ec57600080fd5b9091929391929390505050611204565b005b6104406004803603602081101561041457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611255565b005b61044a611447565b604051808260ff16815260200191505060405180910390f35b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6104c83361144c565b565b60006104d46118d4565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505090508060600151421161055d5760009150506105ce565b610578816020015182606001516116b290919063ffffffff16565b42106105915780604001518160000151039150506105ce565b80604001516105c982602001516105bb84606001514203856000015161173a90919063ffffffff16565b6117c090919063ffffffff16565b039150505b919050565b6105db611849565b73ffffffffffffffffffffffffffffffffffffffff166105f9610740565b73ffffffffffffffffffffffffffffffffffffffff1614610682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610771611849565b73ffffffffffffffffffffffffffffffffffffffff1661078f610740565b73ffffffffffffffffffffffffffffffffffffffff1614610818576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000888890501415610892576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f7468657265206973206e6f205f7061727469636970616e74730000000000000081525060200191505060405180910390fd5b8585905088889050146108f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611982602d913960400191505060405180910390fd5b83839050888890501461094e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061192d602f913960400191505060405180910390fd5b8181905088889050146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806118fd6030913960400191505060405180910390fd5b6000600254905060005b898990508110156111b057600073ffffffffffffffffffffffffffffffffffffffff168a8a838181106109e557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f656d707479207061727469636970616e7400000000000000000000000000000081525060200191505060405180910390fd5b6000868683818110610a9a57fe5b905060200201351415610b15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f656d707479206475726174696f6e00000000000000000000000000000000000081525060200191505060405180910390fd5b6309660180868683818110610b2657fe5b9050602002013510610ba0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6475726174696f6e20746f6f206c6f6e6700000000000000000000000000000081525060200191505060405180910390fd5b6000888883818110610bae57fe5b905060200201351415610c29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f656d70747920726577617264000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000848483818110610c3757fe5b905060200201351415610cb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f656d70747920737461727454696d65000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360008c8c85818110610cc457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050888883818110610d2d57fe5b90506020020135811015610d6957610d62818a8a85818110610d4b57fe5b9050602002013503846116b290919063ffffffff16565b9250610d93565b610d90898984818110610d7857fe5b9050602002013582038461185190919063ffffffff16565b92505b600081146110b757848483818110610da757fe5b90506020020135600360008d8d86818110610dbe57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414610e8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616e2774206368616e67652073746172742074696d6500000000000000000081525060200191505060405180910390fd5b600360008c8c85818110610e9c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610f288c8c85818110610f0657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166104ca565b01898984818110610f3557fe5b905060200201351015610fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f63616e27742074616b652077686174277320616c726561647920646f6e65000081525060200191505060405180910390fd5b888883818110610fbc57fe5b90506020020135600360008d8d86818110610fd357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555086868381811061103d57fe5b90506020020135600360008d8d8681811061105457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506111a2565b60405180608001604052808a8a858181106110ce57fe5b9050602002013581526020018888858181106110e657fe5b9050602002013581526020016000815260200186868581811061110557fe5b90506020020135815250600360008d8d8681811061111f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050505b5080806001019150506109b6565b507f781417a8e23866f0fa74dfaa75237645e7297ef69a02959ba66b95aae95d616d60025482604051808381526020018281526020019250505060405180910390a180600281905550505050505050505050565b60005b828290508110156112505761124383838381811061122157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1661144c565b8080600101915050611207565b505050565b61125d611849565b73ffffffffffffffffffffffffffffffffffffffff1661127b610740565b73ffffffffffffffffffffffffffffffffffffffff1614611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061195c6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600281565b6000611457826104ca565b905060008114156114d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f796f752068617665206e6f20746f6b656e7320746f20636c61696d000000000081525060200191505060405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156115b357600080fd5b505af11580156115c7573d6000803e3d6000fd5b505050506040513d60208110156115dd57600080fd5b8101908080519060200190929190505050611660576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f756d622e7472616e73666572206661696c65640000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f9cf52b285ad8ad610008b7734bb4bd9904fec60e4c6ee55100f19b3d50f9ec99826040518082815260200191505060405180910390a25050565b600080828401905083811015611730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561174d57600090506117ba565b600082840290508284828161175e57fe5b04146117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806119af6021913960400191505060405180910390fd5b809150505b92915050565b6000808211611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b81838161184057fe5b04905092915050565b600033905090565b6000828211156118c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe5f7061727469636970616e747320636f756e74206d757374206d61746368205f737461727454696d657320636f756e745f7061727469636970616e747320636f756e74206d757374206d61746368205f6475726174696f6e7320636f756e744f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735f7061727469636970616e747320636f756e74206d757374206d61746368205f7265776172647320636f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e65b92784609783e31b0cb720339e53d400cf0901bc95f4b356740c44907668964736f6c634300070500334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373000000000000000000000000a6e4ffa19b213abea258ae72e8e1a209b9e543e70000000000000000000000006fc13eace26590b80cccab1ba5d51890577d83b2
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063715018a611610071578063715018a6146101cf5780638da5cb5b146101d95780639bde80371461020d578063b38aab9d14610385578063f2fde38b146103fe578063ffa1ad7414610442576100a9565b80630700037d146100ae5780632db94d191461011b57806336638ea0146101395780634e71d92d1461016d57806370a0823114610177575b600080fd5b6100f0600480360360208110156100c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610463565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b610123610493565b6040518082815260200191505060405180910390f35b610141610499565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101756104bf565b005b6101b96004803603602081101561018d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104ca565b6040518082815260200191505060405180910390f35b6101d76105d3565b005b6101e1610740565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103836004803603608081101561022357600080fd5b810190808035906020019064010000000081111561024057600080fd5b82018360208201111561025257600080fd5b8035906020019184602083028401116401000000008311171561027457600080fd5b90919293919293908035906020019064010000000081111561029557600080fd5b8201836020820111156102a757600080fd5b803590602001918460208302840111640100000000831117156102c957600080fd5b9091929391929390803590602001906401000000008111156102ea57600080fd5b8201836020820111156102fc57600080fd5b8035906020019184602083028401116401000000008311171561031e57600080fd5b90919293919293908035906020019064010000000081111561033f57600080fd5b82018360208201111561035157600080fd5b8035906020019184602083028401116401000000008311171561037357600080fd5b9091929391929390505050610769565b005b6103fc6004803603602081101561039b57600080fd5b81019080803590602001906401000000008111156103b857600080fd5b8201836020820111156103ca57600080fd5b803590602001918460208302840111640100000000831117156103ec57600080fd5b9091929391929390505050611204565b005b6104406004803603602081101561041457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611255565b005b61044a611447565b604051808260ff16815260200191505060405180910390f35b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6104c83361144c565b565b60006104d46118d4565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505090508060600151421161055d5760009150506105ce565b610578816020015182606001516116b290919063ffffffff16565b42106105915780604001518160000151039150506105ce565b80604001516105c982602001516105bb84606001514203856000015161173a90919063ffffffff16565b6117c090919063ffffffff16565b039150505b919050565b6105db611849565b73ffffffffffffffffffffffffffffffffffffffff166105f9610740565b73ffffffffffffffffffffffffffffffffffffffff1614610682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610771611849565b73ffffffffffffffffffffffffffffffffffffffff1661078f610740565b73ffffffffffffffffffffffffffffffffffffffff1614610818576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000888890501415610892576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f7468657265206973206e6f205f7061727469636970616e74730000000000000081525060200191505060405180910390fd5b8585905088889050146108f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611982602d913960400191505060405180910390fd5b83839050888890501461094e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061192d602f913960400191505060405180910390fd5b8181905088889050146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806118fd6030913960400191505060405180910390fd5b6000600254905060005b898990508110156111b057600073ffffffffffffffffffffffffffffffffffffffff168a8a838181106109e557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f656d707479207061727469636970616e7400000000000000000000000000000081525060200191505060405180910390fd5b6000868683818110610a9a57fe5b905060200201351415610b15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f656d707479206475726174696f6e00000000000000000000000000000000000081525060200191505060405180910390fd5b6309660180868683818110610b2657fe5b9050602002013510610ba0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6475726174696f6e20746f6f206c6f6e6700000000000000000000000000000081525060200191505060405180910390fd5b6000888883818110610bae57fe5b905060200201351415610c29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f656d70747920726577617264000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000848483818110610c3757fe5b905060200201351415610cb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f656d70747920737461727454696d65000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360008c8c85818110610cc457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050888883818110610d2d57fe5b90506020020135811015610d6957610d62818a8a85818110610d4b57fe5b9050602002013503846116b290919063ffffffff16565b9250610d93565b610d90898984818110610d7857fe5b9050602002013582038461185190919063ffffffff16565b92505b600081146110b757848483818110610da757fe5b90506020020135600360008d8d86818110610dbe57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414610e8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616e2774206368616e67652073746172742074696d6500000000000000000081525060200191505060405180910390fd5b600360008c8c85818110610e9c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610f288c8c85818110610f0657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166104ca565b01898984818110610f3557fe5b905060200201351015610fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f63616e27742074616b652077686174277320616c726561647920646f6e65000081525060200191505060405180910390fd5b888883818110610fbc57fe5b90506020020135600360008d8d86818110610fd357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555086868381811061103d57fe5b90506020020135600360008d8d8681811061105457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506111a2565b60405180608001604052808a8a858181106110ce57fe5b9050602002013581526020018888858181106110e657fe5b9050602002013581526020016000815260200186868581811061110557fe5b90506020020135815250600360008d8d8681811061111f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050505b5080806001019150506109b6565b507f781417a8e23866f0fa74dfaa75237645e7297ef69a02959ba66b95aae95d616d60025482604051808381526020018281526020019250505060405180910390a180600281905550505050505050505050565b60005b828290508110156112505761124383838381811061122157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1661144c565b8080600101915050611207565b505050565b61125d611849565b73ffffffffffffffffffffffffffffffffffffffff1661127b610740565b73ffffffffffffffffffffffffffffffffffffffff1614611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061195c6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600281565b6000611457826104ca565b905060008114156114d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f796f752068617665206e6f20746f6b656e7320746f20636c61696d000000000081525060200191505060405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156115b357600080fd5b505af11580156115c7573d6000803e3d6000fd5b505050506040513d60208110156115dd57600080fd5b8101908080519060200190929190505050611660576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f756d622e7472616e73666572206661696c65640000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f9cf52b285ad8ad610008b7734bb4bd9904fec60e4c6ee55100f19b3d50f9ec99826040518082815260200191505060405180910390a25050565b600080828401905083811015611730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561174d57600090506117ba565b600082840290508284828161175e57fe5b04146117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806119af6021913960400191505060405180910390fd5b809150505b92915050565b6000808211611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b81838161184057fe5b04905092915050565b600033905090565b6000828211156118c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe5f7061727469636970616e747320636f756e74206d757374206d61746368205f737461727454696d657320636f756e745f7061727469636970616e747320636f756e74206d757374206d61746368205f6475726174696f6e7320636f756e744f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735f7061727469636970616e747320636f756e74206d757374206d61746368205f7265776172647320636f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e65b92784609783e31b0cb720339e53d400cf0901bc95f4b356740c44907668964736f6c63430007050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a6e4ffa19b213abea258ae72e8e1a209b9e543e70000000000000000000000006fc13eace26590b80cccab1ba5d51890577d83b2
-----Decoded View---------------
Arg [0] : _owner (address): 0xA6e4fFa19B213AbeA258ae72e8e1a209B9E543e7
Arg [1] : _token (address): 0x6fC13EACE26590B80cCCAB1ba5d51890577D83B2
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a6e4ffa19b213abea258ae72e8e1a209b9e543e7
Arg [1] : 0000000000000000000000006fc13eace26590b80cccab1ba5d51890577d83b2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.007709 | 64,157.4819 | $494.59 |
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.