Overview
Max Total Supply
926,398.583905325164622481 CMP
Holders
87 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
130.217105158329503702 CMPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CosmoMasksPower
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.7.6; import "./utils/Ownable.sol"; import "./CosmoMasksPowerERC20.sol"; interface ICosmoMasksShort { function ownerOf(uint256 tokenId) external view returns (address owner); function totalSupply() external view returns (uint256); function isMintedBeforeReveal(uint256 index) external view returns (bool); } /** * CosmoMasksPower Contract (The native token of CosmoMasks) * https://TheCosmoMasks.com/ * @dev Extends standard ERC20 contract */ contract CosmoMasksPower is Ownable, CosmoMasksPowerERC20 { using SafeMath for uint256; // Constants uint256 public constant SECONDS_IN_A_DAY = 86400; uint256 public constant INITIAL_ALLOTMENT = 1830e18; uint256 public constant PRE_REVEAL_MULTIPLIER = 2; uint256 public constant emissionStart = 1615734000; // "2021-03-14T15:00:00.000Z" uint256 public constant emissionEnd = 1931094000; // "2031-03-12T15:00:00.000Z" // emissionStartTimestamp + (SECONDS_IN_A_DAY * 365 * 10) uint256 public constant emissionPerDay = 10e18; mapping(uint256 => uint256) private _lastClaim; constructor() public CosmoMasksPowerERC20("CosmoMasks Power", "CMP") { _setURL("https://TheCosmoMasks.com/"); } /** * @dev When accumulated CMPs have last been claimed for a CosmoMask index */ function lastClaim(uint256 tokenIndex) public view returns (uint256) { require(ICosmoMasksShort(cosmoMasksAddress).ownerOf(tokenIndex) != address(0), "CosmoMasksPower: owner cannot be 0 address"); require(tokenIndex < ICosmoMasksShort(cosmoMasksAddress).totalSupply(), "CosmoMasksPower: CosmoMasks at index has not been minted yet"); uint256 lastClaimed = uint256(_lastClaim[tokenIndex]) != 0 ? uint256(_lastClaim[tokenIndex]) : emissionStart; return lastClaimed; } /** * @dev Accumulated CMP tokens for a CosmoMask token index. */ function accumulated(uint256 tokenIndex) public view returns (uint256) { require(block.timestamp > emissionStart, "CosmoMasksPower: emission has not started yet"); require(ICosmoMasksShort(cosmoMasksAddress).ownerOf(tokenIndex) != address(0), "CosmoMasksPower: owner cannot be 0 address"); require(tokenIndex < ICosmoMasksShort(cosmoMasksAddress).totalSupply(), "CosmoMasksPower: CosmoMasks at index has not been minted yet"); uint256 lastClaimed = lastClaim(tokenIndex); // Sanity check if last claim was on or after emission end if (lastClaimed >= emissionEnd) return 0; // Getting the min value of both uint256 accumulationPeriod = block.timestamp < emissionEnd ? block.timestamp : emissionEnd; uint256 totalAccumulated = accumulationPeriod.sub(lastClaimed).mul(emissionPerDay).div(SECONDS_IN_A_DAY); // If claim hasn't been done before for the index, add initial allotment (plus prereveal multiplier if applicable) if (lastClaimed == emissionStart) { uint256 initialAllotment = ICosmoMasksShort(cosmoMasksAddress).isMintedBeforeReveal(tokenIndex) == true ? INITIAL_ALLOTMENT.mul(PRE_REVEAL_MULTIPLIER) : INITIAL_ALLOTMENT; totalAccumulated = totalAccumulated.add(initialAllotment); } return totalAccumulated; } /** * @dev Permissioning not added because it is only callable once. It is set right after deployment and verified. */ function setCosmoMasksAddress(address masksAddress) public onlyOwner { require(cosmoMasksAddress == address(0), "CosmoMasks: CosmoMasks has already setted"); require(masksAddress != address(0), "CosmoMasks: CosmoMasks is the zero address"); cosmoMasksAddress = masksAddress; } /** * @dev Claim mints CMPs and supports multiple CosmoMask token indices at once. */ function claim(uint256[] memory tokenIndices) public returns (uint256) { require(block.timestamp > emissionStart, "CosmoMasksPower: Emission has not started yet"); uint256 totalClaimQty = 0; for (uint256 i = 0; i < tokenIndices.length; i++) { // Sanity check for non-minted index require(tokenIndices[i] < ICosmoMasksShort(cosmoMasksAddress).totalSupply(), "CosmoMasksPower: CosmoMasks at index has not been minted yet"); // Duplicate token index check for (uint256 j = i + 1; j < tokenIndices.length; j++) require(tokenIndices[i] != tokenIndices[j], "CosmoMasksPower: duplicate token index" ); uint256 tokenIndex = tokenIndices[i]; require(ICosmoMasksShort(cosmoMasksAddress).ownerOf(tokenIndex) == msg.sender, "CosmoMasksPower: sender is not the owner"); uint256 claimQty = accumulated(tokenIndex); if (claimQty != 0) { totalClaimQty = totalClaimQty.add(claimQty); _lastClaim[tokenIndex] = block.timestamp; } } require(totalClaimQty != 0, "CosmoMasksPower: no accumulated tokens"); _mint(msg.sender, totalClaimQty); return totalClaimQty; } function setURL(string memory newUrl) public onlyOwner { _setURL(newUrl); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "./libraries/SafeMath.sol"; import "./utils/Context.sol"; interface IERC20Burnable { function burn(uint256 amount) external returns (bool); function burnFrom(address account, uint256 amount) external returns (bool); // ERC20 function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Implementation of the {IERC20} interface. */ abstract contract CosmoMasksPowerERC20 is Context, IERC20Burnable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; string private _url; address public cosmoMasksAddress; constructor(string memory name_, string memory symbol_) internal { _name = name_; _symbol = symbol_; _decimals = 18; } function url() public view returns (string memory) { return _url; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); // Approval check is skipped if the caller of transferFrom is the CosmoMasks contract. For better UX. if (msg.sender != cosmoMasksAddress) _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "CosmoMasksPower: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "CosmoMasksPower: decreased allowance below zero")); return true; } function burn(uint256 amount) public override returns (bool) { _burn(_msgSender(), amount); return true; } function burnFrom(address account, uint256 amount) public override returns (bool) { uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "CosmoMasksPower: burn amount exceeds allowance"); _approve(account, _msgSender(), decreasedAllowance); _burn(account, amount); return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "CosmoMasksPower: transfer from the zero address"); require(recipient != address(0), "CosmoMasksPower: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "CosmoMasksPower: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal { require(account != address(0), "CosmoMasksPower: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal { require(account != address(0), "CosmoMasksPower: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "CosmoMasksPower: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "CosmoMasksPower: approve from the zero address"); require(spender != address(0),"CosmoMasksPower: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _setURL(string memory newUrl) internal { _url = newUrl; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } 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; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction. */ abstract contract Context { function _msgSender() internal view returns (address payable) { return msg.sender; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "./Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 999999 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_ALLOTMENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRE_REVEAL_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECONDS_IN_A_DAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenIndex","type":"uint256"}],"name":"accumulated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIndices","type":"uint256[]"}],"name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cosmoMasksAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emissionEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emissionPerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emissionStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenIndex","type":"uint256"}],"name":"lastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"masksAddress","type":"address"}],"name":"setCosmoMasksAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUrl","type":"string"}],"name":"setURL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"url","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280601081526020016f21b7b9b6b7a6b0b9b5b9902837bbb2b960811b815250604051806040016040528060038152602001620434d560ec1b8152506000620000696200013360201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508151620000c890600490602085019062000150565b508051620000de90600590602084019062000150565b50506006805460ff191660121790555060408051808201909152601a81527f68747470733a2f2f546865436f736d6f4d61736b732e636f6d2f00000000000060208201526200012d9062000137565b620001fc565b3390565b80516200014c90600790602084019062000150565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620001885760008555620001d3565b82601f10620001a357805160ff1916838001178555620001d3565b82800160010185558215620001d3579182015b82811115620001d3578251825591602001919060010190620001b6565b50620001e1929150620001e5565b5090565b5b80821115620001e15760008155600101620001e6565b612749806200020c6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806373422b311161010457806395d89b41116100a2578063c607cde711610071578063c607cde714610661578063dd62ed3e1461067e578063f2fde38b146106b9578063f9cfa06f146106ec576101cf565b806395d89b41146105df578063a457c2d7146105e7578063a9059cbb14610620578063b551b82f14610659576101cf565b80637a061602116100de5780637a0616021461056b5780638368909c1461059e5780638d31fa32146105a65780638da5cb5b146105d7576101cf565b806373422b3114610484578063773434081461048c57806379cc679014610532576101cf565b80633d3728b5116101715780635600f04f1161014b5780635600f04f1461039c5780636ba4c138146103a457806370a0823114610447578063715018a61461047a576101cf565b80633d3728b51461035a57806342966c6814610377578063513da94814610394576101cf565b806323b872dd116101ad57806323b872dd146102b8578063313ce567146102fb578063367df165146103195780633950935114610321576101cf565b806306fdde03146101d4578063095ea7b31461025157806318160ddd1461029e575b600080fd5b6101dc6106f4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61028a6004803603604081101561026757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107a8565b604080519115158252519081900360200190f35b6102a66107c6565b60408051918252519081900360200190f35b61028a600480360360608110156102ce57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356107cc565b61030361088c565b6040805160ff9092168252519081900360200190f35b6102a6610895565b61028a6004803603604081101561033757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108a2565b6102a66004803603602081101561037057600080fd5b50356108fd565b61028a6004803603602081101561038d57600080fd5b5035610b2e565b6102a6610b49565b6101dc610b51565b6102a6600480360360208110156103ba57600080fd5b8101906020810181356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610bd0945050505050565b6102a66004803603602081101561045d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fa7565b610482610fcf565b005b6102a66110e6565b610482600480360360208110156104a257600080fd5b8101906020810181356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110eb945050505050565b61028a6004803603604081101561054857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561119f565b6104826004803603602081101561058157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111f5565b6102a66113bf565b6105ae6113c7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6105ae6113e3565b6101dc6113ff565b61028a600480360360408110156105fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561147e565b61028a6004803603604081101561063657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356114f3565b6102a6611507565b6102a66004803603602081101561067757600080fd5b5035611513565b6102a66004803603604081101561069457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166118bf565b610482600480360360208110156106cf57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118f7565b6102a6611a98565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561079e5780601f106107735761010080835404028352916020019161079e565b820191906000526020600020905b81548152906001019060200180831161078157829003601f168201915b5050505050905090565b60006107bc6107b5611a9f565b8484611aa3565b5060015b92915050565b60035490565b60006107d9848484611bea565b60085473ffffffffffffffffffffffffffffffffffffffff1633146108825761088284610804611a9f565b61087d856040518060600160405280603281526020016124e36032913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526002602052604081209061084f611a9f565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020549190611db1565b611aa3565b5060019392505050565b60065460ff1690565b6863345a083e94d8000081565b60006107bc6108af611a9f565b8461087d85600260006108c0611a9f565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c168152925290205490611e62565b600854604080517f6352211e000000000000000000000000000000000000000000000000000000008152600481018490529051600092839273ffffffffffffffffffffffffffffffffffffffff90911691636352211e91602480820192602092909190829003018186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d602081101561099e57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415610a0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125ed602a913960400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7557600080fd5b505afa158015610a89573d6000803e3d6000fd5b505050506040513d6020811015610a9f57600080fd5b50518210610af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806123fb603c913960400191505060405180910390fd5b600082815260096020526040812054610b155763604e24f0610b25565b6000838152600960205260409020545b9150505b919050565b6000610b41610b3b611a9f565b83611edd565b506001919050565b63604e24f081565b60078054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561079e5780601f106107735761010080835404028352916020019161079e565b600063604e24f04211610c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180612515602d913960400191505060405180910390fd5b6000805b8351811015610f4657600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca357600080fd5b505afa158015610cb7573d6000803e3d6000fd5b505050506040513d6020811015610ccd57600080fd5b50518451859083908110610cdd57fe5b602002602001015110610d3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806123fb603c913960400191505060405180910390fd5b600181015b8451811015610dd057848181518110610d5557fe5b6020026020010151858381518110610d6957fe5b60200260200101511415610dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806126456026913960400191505060405180910390fd5b600101610d40565b506000848281518110610ddf57fe5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610e7357600080fd5b505afa158015610e87573d6000803e3d6000fd5b505050506040513d6020811015610e9d57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610f0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806124926028913960400191505060405180910390fd5b6000610f1682611513565b90508015610f3c57610f288482611e62565b600083815260096020526040902042905593505b5050600101610c32565b5080610f9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806126c56026913960400191505060405180910390fd5b6107c0338261201b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b610fd7611a9f565b73ffffffffffffffffffffffffffffffffffffffff16610ff56113e3565b73ffffffffffffffffffffffffffffffffffffffff161461107757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600281565b6110f3611a9f565b73ffffffffffffffffffffffffffffffffffffffff166111116113e3565b73ffffffffffffffffffffffffffffffffffffffff161461119357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61119c8161212c565b50565b6000806111d7836040518060600160405280602f8152602001612696602f91396111d0876111cb611a9f565b6118bf565b9190611db1565b90506111eb846111e5611a9f565b83611aa3565b6108828484611edd565b6111fd611a9f565b73ffffffffffffffffffffffffffffffffffffffff1661121b6113e3565b73ffffffffffffffffffffffffffffffffffffffff161461129d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff161561130c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806124ba6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612350602a913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b63731a27f081565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561079e5780601f106107735761010080835404028352916020019161079e565b60006107bc61148b611a9f565b8461087d856040518060600160405280602f81526020016123cc602f9139600260006114b5611a9f565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d16815292529020549190611db1565b60006107bc611500611a9f565b8484611bea565b678ac7230489e8000081565b600063604e24f04211611571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061259f602d913960400191505060405180910390fd5b600854604080517f6352211e00000000000000000000000000000000000000000000000000000000815260048101859052905160009273ffffffffffffffffffffffffffffffffffffffff1691636352211e916024808301926020929190829003018186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d602081101561160d57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125ed602a913960400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116e457600080fd5b505afa1580156116f8573d6000803e3d6000fd5b505050506040513d602081101561170e57600080fd5b50518210611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806123fb603c913960400191505060405180910390fd5b6000611772836108fd565b905063731a27f08110611789576000915050610b29565b600063731a27f042106117a05763731a27f06117a2565b425b905060006117cf620151806117c9678ac7230489e800006117c38688612143565b906121ba565b9061222d565b905063604e24f08314156118b757600854604080517fbc28d70200000000000000000000000000000000000000000000000000000000815260048101889052905160009273ffffffffffffffffffffffffffffffffffffffff169163bc28d702916024808301926020929190829003018186803b15801561184f57600080fd5b505afa158015611863573d6000803e3d6000fd5b505050506040513d602081101561187957600080fd5b50511515600114611893576863345a083e94d800006118a7565b6118a76863345a083e94d8000060026121ba565b90506118b38282611e62565b9150505b949350505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b6118ff611a9f565b73ffffffffffffffffffffffffffffffffffffffff1661191d6113e3565b73ffffffffffffffffffffffffffffffffffffffff161461199f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061237a6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6201518081565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316611b0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612617602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611b7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806123a0602c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612437602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611cc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180612542602d913960400191505060405180910390fd5b611d0c8160405180606001604052806030815260200161256f6030913973ffffffffffffffffffffffffffffffffffffffff86166000908152600160205260409020549190611db1565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054611d489082611e62565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611e5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e1f578181015183820152602001611e07565b50505050905090810190601f168015611e4c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611ed657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216611f49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061266b602b913960400191505060405180910390fd5b611f93816040518060600160405280602c8152602001612466602c913973ffffffffffffffffffffffffffffffffffffffff85166000908152600160205260409020549190611db1565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902055600354611fc69082612143565b60035560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216612087576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806126eb6029913960400191505060405180910390fd5b6003546120949082611e62565b60035573ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546120c79082611e62565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b805161213f9060079060208401906122ae565b5050565b6000828211156121b457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826121c9575060006107c0565b828202828482816121d657fe5b0414611ed6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806125cc6021913960400191505060405180910390fd5b600080821161229d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816122a657fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826122e4576000855561232a565b82601f106122fd57805160ff191683800117855561232a565b8280016001018555821561232a579182015b8281111561232a57825182559160200191906001019061230f565b5061233692915061233a565b5090565b5b80821115612336576000815560010161233b56fe436f736d6f4d61736b733a20436f736d6f4d61736b7320697320746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a20617070726f766520746f20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f436f736d6f4d61736b73506f7765723a20436f736d6f4d61736b7320617420696e64657820686173206e6f74206265656e206d696e74656420796574436f736d6f4d61736b73506f7765723a207472616e736665722066726f6d20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a206275726e20616d6f756e7420657863656564732062616c616e6365436f736d6f4d61736b73506f7765723a2073656e646572206973206e6f7420746865206f776e6572436f736d6f4d61736b733a20436f736d6f4d61736b732068617320616c726561647920736574746564436f736d6f4d61736b73506f7765723a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f736d6f4d61736b73506f7765723a20456d697373696f6e20686173206e6f74207374617274656420796574436f736d6f4d61736b73506f7765723a207472616e7366657220746f20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f736d6f4d61736b73506f7765723a20656d697373696f6e20686173206e6f74207374617274656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f736d6f4d61736b73506f7765723a206f776e65722063616e6e6f7420626520302061646472657373436f736d6f4d61736b73506f7765723a20617070726f76652066726f6d20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a206475706c696361746520746f6b656e20696e646578436f736d6f4d61736b73506f7765723a206275726e2066726f6d20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a20206275726e20616d6f756e74206578636565647320616c6c6f77616e6365436f736d6f4d61736b73506f7765723a206e6f20616363756d756c6174656420746f6b656e73436f736d6f4d61736b73506f7765723a206d696e7420746f20746865207a65726f2061646472657373a2646970667358221220521f6d538418848c4a91da945cfd13f6b30c0bf01d95a823aa52e537b4a0f2b264736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c806373422b311161010457806395d89b41116100a2578063c607cde711610071578063c607cde714610661578063dd62ed3e1461067e578063f2fde38b146106b9578063f9cfa06f146106ec576101cf565b806395d89b41146105df578063a457c2d7146105e7578063a9059cbb14610620578063b551b82f14610659576101cf565b80637a061602116100de5780637a0616021461056b5780638368909c1461059e5780638d31fa32146105a65780638da5cb5b146105d7576101cf565b806373422b3114610484578063773434081461048c57806379cc679014610532576101cf565b80633d3728b5116101715780635600f04f1161014b5780635600f04f1461039c5780636ba4c138146103a457806370a0823114610447578063715018a61461047a576101cf565b80633d3728b51461035a57806342966c6814610377578063513da94814610394576101cf565b806323b872dd116101ad57806323b872dd146102b8578063313ce567146102fb578063367df165146103195780633950935114610321576101cf565b806306fdde03146101d4578063095ea7b31461025157806318160ddd1461029e575b600080fd5b6101dc6106f4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61028a6004803603604081101561026757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107a8565b604080519115158252519081900360200190f35b6102a66107c6565b60408051918252519081900360200190f35b61028a600480360360608110156102ce57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356107cc565b61030361088c565b6040805160ff9092168252519081900360200190f35b6102a6610895565b61028a6004803603604081101561033757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108a2565b6102a66004803603602081101561037057600080fd5b50356108fd565b61028a6004803603602081101561038d57600080fd5b5035610b2e565b6102a6610b49565b6101dc610b51565b6102a6600480360360208110156103ba57600080fd5b8101906020810181356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610bd0945050505050565b6102a66004803603602081101561045d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fa7565b610482610fcf565b005b6102a66110e6565b610482600480360360208110156104a257600080fd5b8101906020810181356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110eb945050505050565b61028a6004803603604081101561054857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561119f565b6104826004803603602081101561058157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111f5565b6102a66113bf565b6105ae6113c7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6105ae6113e3565b6101dc6113ff565b61028a600480360360408110156105fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561147e565b61028a6004803603604081101561063657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356114f3565b6102a6611507565b6102a66004803603602081101561067757600080fd5b5035611513565b6102a66004803603604081101561069457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166118bf565b610482600480360360208110156106cf57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118f7565b6102a6611a98565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561079e5780601f106107735761010080835404028352916020019161079e565b820191906000526020600020905b81548152906001019060200180831161078157829003601f168201915b5050505050905090565b60006107bc6107b5611a9f565b8484611aa3565b5060015b92915050565b60035490565b60006107d9848484611bea565b60085473ffffffffffffffffffffffffffffffffffffffff1633146108825761088284610804611a9f565b61087d856040518060600160405280603281526020016124e36032913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526002602052604081209061084f611a9f565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020549190611db1565b611aa3565b5060019392505050565b60065460ff1690565b6863345a083e94d8000081565b60006107bc6108af611a9f565b8461087d85600260006108c0611a9f565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c168152925290205490611e62565b600854604080517f6352211e000000000000000000000000000000000000000000000000000000008152600481018490529051600092839273ffffffffffffffffffffffffffffffffffffffff90911691636352211e91602480820192602092909190829003018186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d602081101561099e57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415610a0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125ed602a913960400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7557600080fd5b505afa158015610a89573d6000803e3d6000fd5b505050506040513d6020811015610a9f57600080fd5b50518210610af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806123fb603c913960400191505060405180910390fd5b600082815260096020526040812054610b155763604e24f0610b25565b6000838152600960205260409020545b9150505b919050565b6000610b41610b3b611a9f565b83611edd565b506001919050565b63604e24f081565b60078054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561079e5780601f106107735761010080835404028352916020019161079e565b600063604e24f04211610c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180612515602d913960400191505060405180910390fd5b6000805b8351811015610f4657600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca357600080fd5b505afa158015610cb7573d6000803e3d6000fd5b505050506040513d6020811015610ccd57600080fd5b50518451859083908110610cdd57fe5b602002602001015110610d3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806123fb603c913960400191505060405180910390fd5b600181015b8451811015610dd057848181518110610d5557fe5b6020026020010151858381518110610d6957fe5b60200260200101511415610dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806126456026913960400191505060405180910390fd5b600101610d40565b506000848281518110610ddf57fe5b602002602001015190503373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610e7357600080fd5b505afa158015610e87573d6000803e3d6000fd5b505050506040513d6020811015610e9d57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610f0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806124926028913960400191505060405180910390fd5b6000610f1682611513565b90508015610f3c57610f288482611e62565b600083815260096020526040902042905593505b5050600101610c32565b5080610f9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806126c56026913960400191505060405180910390fd5b6107c0338261201b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b610fd7611a9f565b73ffffffffffffffffffffffffffffffffffffffff16610ff56113e3565b73ffffffffffffffffffffffffffffffffffffffff161461107757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600281565b6110f3611a9f565b73ffffffffffffffffffffffffffffffffffffffff166111116113e3565b73ffffffffffffffffffffffffffffffffffffffff161461119357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61119c8161212c565b50565b6000806111d7836040518060600160405280602f8152602001612696602f91396111d0876111cb611a9f565b6118bf565b9190611db1565b90506111eb846111e5611a9f565b83611aa3565b6108828484611edd565b6111fd611a9f565b73ffffffffffffffffffffffffffffffffffffffff1661121b6113e3565b73ffffffffffffffffffffffffffffffffffffffff161461129d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff161561130c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806124ba6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612350602a913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b63731a27f081565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561079e5780601f106107735761010080835404028352916020019161079e565b60006107bc61148b611a9f565b8461087d856040518060600160405280602f81526020016123cc602f9139600260006114b5611a9f565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d16815292529020549190611db1565b60006107bc611500611a9f565b8484611bea565b678ac7230489e8000081565b600063604e24f04211611571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061259f602d913960400191505060405180910390fd5b600854604080517f6352211e00000000000000000000000000000000000000000000000000000000815260048101859052905160009273ffffffffffffffffffffffffffffffffffffffff1691636352211e916024808301926020929190829003018186803b1580156115e357600080fd5b505afa1580156115f7573d6000803e3d6000fd5b505050506040513d602081101561160d57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125ed602a913960400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116e457600080fd5b505afa1580156116f8573d6000803e3d6000fd5b505050506040513d602081101561170e57600080fd5b50518210611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806123fb603c913960400191505060405180910390fd5b6000611772836108fd565b905063731a27f08110611789576000915050610b29565b600063731a27f042106117a05763731a27f06117a2565b425b905060006117cf620151806117c9678ac7230489e800006117c38688612143565b906121ba565b9061222d565b905063604e24f08314156118b757600854604080517fbc28d70200000000000000000000000000000000000000000000000000000000815260048101889052905160009273ffffffffffffffffffffffffffffffffffffffff169163bc28d702916024808301926020929190829003018186803b15801561184f57600080fd5b505afa158015611863573d6000803e3d6000fd5b505050506040513d602081101561187957600080fd5b50511515600114611893576863345a083e94d800006118a7565b6118a76863345a083e94d8000060026121ba565b90506118b38282611e62565b9150505b949350505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b6118ff611a9f565b73ffffffffffffffffffffffffffffffffffffffff1661191d6113e3565b73ffffffffffffffffffffffffffffffffffffffff161461199f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061237a6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6201518081565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316611b0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612617602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611b7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806123a0602c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612437602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611cc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180612542602d913960400191505060405180910390fd5b611d0c8160405180606001604052806030815260200161256f6030913973ffffffffffffffffffffffffffffffffffffffff86166000908152600160205260409020549190611db1565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054611d489082611e62565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611e5a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e1f578181015183820152602001611e07565b50505050905090810190601f168015611e4c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611ed657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216611f49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061266b602b913960400191505060405180910390fd5b611f93816040518060600160405280602c8152602001612466602c913973ffffffffffffffffffffffffffffffffffffffff85166000908152600160205260409020549190611db1565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902055600354611fc69082612143565b60035560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216612087576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806126eb6029913960400191505060405180910390fd5b6003546120949082611e62565b60035573ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546120c79082611e62565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b805161213f9060079060208401906122ae565b5050565b6000828211156121b457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826121c9575060006107c0565b828202828482816121d657fe5b0414611ed6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806125cc6021913960400191505060405180910390fd5b600080821161229d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816122a657fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826122e4576000855561232a565b82601f106122fd57805160ff191683800117855561232a565b8280016001018555821561232a579182015b8281111561232a57825182559160200191906001019061230f565b5061233692915061233a565b5090565b5b80821115612336576000815560010161233b56fe436f736d6f4d61736b733a20436f736d6f4d61736b7320697320746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a20617070726f766520746f20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f436f736d6f4d61736b73506f7765723a20436f736d6f4d61736b7320617420696e64657820686173206e6f74206265656e206d696e74656420796574436f736d6f4d61736b73506f7765723a207472616e736665722066726f6d20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a206275726e20616d6f756e7420657863656564732062616c616e6365436f736d6f4d61736b73506f7765723a2073656e646572206973206e6f7420746865206f776e6572436f736d6f4d61736b733a20436f736d6f4d61736b732068617320616c726561647920736574746564436f736d6f4d61736b73506f7765723a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f736d6f4d61736b73506f7765723a20456d697373696f6e20686173206e6f74207374617274656420796574436f736d6f4d61736b73506f7765723a207472616e7366657220746f20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f736d6f4d61736b73506f7765723a20656d697373696f6e20686173206e6f74207374617274656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f736d6f4d61736b73506f7765723a206f776e65722063616e6e6f7420626520302061646472657373436f736d6f4d61736b73506f7765723a20617070726f76652066726f6d20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a206475706c696361746520746f6b656e20696e646578436f736d6f4d61736b73506f7765723a206275726e2066726f6d20746865207a65726f2061646472657373436f736d6f4d61736b73506f7765723a20206275726e20616d6f756e74206578636565647320616c6c6f77616e6365436f736d6f4d61736b73506f7765723a206e6f20616363756d756c6174656420746f6b656e73436f736d6f4d61736b73506f7765723a206d696e7420746f20746865207a65726f2061646472657373a2646970667358221220521f6d538418848c4a91da945cfd13f6b30c0bf01d95a823aa52e537b4a0f2b264736f6c63430007060033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.