Overview
Max Total Supply
3,000,000,000 BLUR
Holders
55,484 (0.00%)
Market
Price
$0.14 @ 0.000051 ETH (+1.78%)
Onchain Market Cap
$418,872,000.00
Circulating Supply Market Cap
$309,366,631.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,440.1 BLURValue
$201.07 ( ~0.0732553765557258 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BlurToken
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 800 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.17;import "@openzeppelin/contracts/access/Ownable.sol";import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol";import "@openzeppelin/contracts/token/ERC20/ERC20.sol";import "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol";import "./interfaces/ITokenLockup.sol";contract BlurToken is ERC20Votes, Ownable {uint256 private constant INITIAL_SUPPLY = 3_000_000_000;address[] public lockups;constructor() ERC20Permit("Blur") ERC20("Blur", "BLUR") {_mint(msg.sender, INITIAL_SUPPLY * 10 ** 18);}/*** @notice Adds token lockup addresses* @param _lockups Lockup addresses to add*/function addLockups(address[] calldata _lockups) external onlyOwner {require(lockups.length == 0);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/extensions/ERC20Votes.sol)pragma solidity ^0.8.0;import "./draft-ERC20Permit.sol";import "../../../utils/math/Math.sol";import "../../../governance/utils/IVotes.sol";import "../../../utils/math/SafeCast.sol";import "../../../utils/cryptography/ECDSA.sol";/*** @dev Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's,* and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1.** NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module.** This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either* by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting* power can be queried through the public accessors {getVotes} and {getPastVotes}.** By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it* requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.** _Available since v4.2._*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)pragma solidity ^0.8.0;import "./IERC20.sol";import "./extensions/IERC20Metadata.sol";import "../../utils/Context.sol";/*** @dev Implementation of the {IERC20} interface.** This implementation is agnostic to the way tokens are created. This means* that a supply mechanism has to be added in a derived contract using {_mint}.* For a generic mechanism see {ERC20PresetMinterPauser}.** TIP: For a detailed writeup see our guide* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How* to implement supply mechanisms].** We have followed general OpenZeppelin Contracts guidelines: functions revert* instead returning `false` on failure. This behavior is nonetheless* conventional and does not conflict with the expectations of ERC20* applications.** Additionally, an {Approval} event is emitted on calls to {transferFrom}.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/extensions/draft-ERC20Permit.sol)pragma solidity ^0.8.0;import "./draft-IERC20Permit.sol";import "../ERC20.sol";import "../../../utils/cryptography/ECDSA.sol";import "../../../utils/cryptography/EIP712.sol";import "../../../utils/Counters.sol";/*** @dev Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].** Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by* presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't* need to send a transaction, and thus is not required to hold Ether at all.** _Available since v3.4._*/abstract contract ERC20Permit is ERC20, IERC20Permit, EIP712 {using Counters for Counters.Counter;mapping(address => Counters.Counter) private _nonces;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.17;interface ITokenLockup {struct Schedule {uint256 endTime;uint256 portion;}event Fund(address indexed recipient,uint256 amount);event Claim(address indexed recipient,uint256 claimed);event Reclaim(address indexed recipient,uint256 claimed);event ChangeRecipient(address indexed oldRecipient,
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)pragma solidity ^0.8.0;/*** @dev Standard math utilities missing in the Solidity language.*/library Math {enum Rounding {Down, // Toward negative infinityUp, // Toward infinityZero // Toward zero}/*** @dev Returns the largest of two numbers.*/function max(uint256 a, uint256 b) internal pure returns (uint256) {return a > b ? a : b;}/*** @dev Returns the smallest of two numbers.*/function min(uint256 a, uint256 b) internal pure returns (uint256) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (governance/utils/IVotes.sol)pragma solidity ^0.8.0;/*** @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.** _Available since v4.5._*/interface IVotes {/*** @dev Emitted when an account changes their delegate.*/event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);/*** @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.*/event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance);/*** @dev Returns the current amount of votes that `account` has.*/function getVotes(address account) external view returns (uint256);/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)// This file was procedurally generated from scripts/generate/templates/SafeCast.js.pragma solidity ^0.8.0;/*** @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow* checks.** Downcasting from uint256/int256 in Solidity does not revert on overflow. This can* easily result in undesired exploitation or bugs, since developers usually* assume that overflows raise errors. `SafeCast` restores this intuition by* reverting the transaction when such 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.** Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing* all math on `uint256` and `int256` and then downcasting.*/library SafeCast {/*** @dev Returns the downcasted uint248 from uint256, reverting on* overflow (when the input is greater than largest uint248).*
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/ECDSA.sol)pragma solidity ^0.8.0;import "../Strings.sol";/*** @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.** These functions can be used to verify that a message was signed by the holder* of the private keys of a given address.*/library ECDSA {enum RecoverError {NoError,InvalidSignature,InvalidSignatureLength,InvalidSignatureS,InvalidSignatureV // Deprecated in v4.8}function _throwError(RecoverError error) private pure {if (error == RecoverError.NoError) {return; // no error: do nothing} else if (error == RecoverError.InvalidSignature) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].** Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by* presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't* need to send a transaction, and thus is not required to hold Ether at all.*/interface IERC20Permit {/*** @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,* given ``owner``'s signed approval.** IMPORTANT: The same issues {IERC20-approve} has related to transaction* ordering also apply here.** Emits an {Approval} event.** Requirements:** - `spender` cannot be the zero address.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/EIP712.sol)pragma solidity ^0.8.0;import "./ECDSA.sol";/*** @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.** The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,* thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding* they need in their contracts using a combination of `abi.encode` and `keccak256`.** This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding* scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA* ({_hashTypedDataV4}).** The implementation of the domain separator was designed to be as efficient as possible while still properly updating* the chain id to protect against replay attacks on an eventual fork of the chain.** NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method* https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].** _Available since v3.4._*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)pragma solidity ^0.8.0;/*** @title Counters* @author Matt Condon (@shrugs)* @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number* of elements in a mapping, issuing ERC721 ids, or counting request ids.** Include with `using Counters for Counters.Counter;`*/library Counters {struct Counter {// This variable should never be directly accessed by users of the library: interactions must be restricted to// the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add// this feature: see https://github.com/ethereum/solidity/issues/4637uint256 _value; // default: 0}function current(Counter storage counter) internal view returns (uint256) {return counter._value;}function increment(Counter storage counter) internal {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20 {/*** @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);/*** @dev Returns the amount of tokens in existence.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)pragma solidity ^0.8.0;import "../IERC20.sol";/*** @dev Interface for the optional metadata functions from the ERC20 standard.** _Available since v4.1._*/interface IERC20Metadata is IERC20 {/*** @dev Returns the name of the token.*/function name() external view returns (string memory);/*** @dev Returns the symbol of the token.*/function symbol() external view returns (string memory);/*** @dev Returns the decimals places of the token.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)pragma solidity ^0.8.0;import "./math/Math.sol";/*** @dev String operations.*/library Strings {bytes16 private constant _SYMBOLS = "0123456789abcdef";uint8 private constant _ADDRESS_LENGTH = 20;/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {unchecked {uint256 length = Math.log10(value) + 1;string memory buffer = new string(length);uint256 ptr;/// @solidity memory-safe-assemblyassembly {ptr := add(buffer, add(32, length))}
12345678910111213141516171819202122{"metadata": {"bytecodeHash": "none"},"optimizer": {"enabled": true,"runs": 800},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","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":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_lockups","type":"address[]"}],"name":"addLockups","outputs":[],"stateMutability":"nonpayable","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":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint224","name":"votes","type":"uint224"}],"internalType":"struct ERC20Votes.Checkpoint","name":"","type":"tuple"}],"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":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","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":"","type":"uint256"}],"name":"lockups","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]
Contract Creation Code
6101406040523480156200001257600080fd5b506040518060400160405280600481526020016321363ab960e11b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600481526020016321363ab960e11b8152506040518060400160405280600481526020016321262aa960e11b81525081600390816200009691906200080a565b506004620000a582826200080a565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c0948501909152815191909601209052929092526101205250620001449050336200016d565b62000167336200016163b2d05e00670de0b6b3a7640000620008ec565b620001bf565b62000932565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620001d682826200027660201b62000c5d1760201c565b6001600160e01b03620001ea620003478216565b1115620002575760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084015b60405180910390fd5b62000270600962000d286200034d60201b178362000364565b50505050565b6001600160a01b038216620002ce5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200024e565b8060026000828254620002e2919062000906565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200034360008383620004fb565b5050565b60025490565b60006200035b828462000906565b90505b92915050565b82546000908190818115620003c4576200039387620003856001856200091c565b600091825260209091200190565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152620003d9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350620003f784868860201c565b9250600082118015620004105750805163ffffffff1643145b1562000467576200042c836200054760201b62000d341760201c565b6200043e88620003856001866200091c565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055620004ec565b8660405180604001604052806200048943620005b660201b62000db71760201c565b63ffffffff168152602001620004aa866200054760201b62000d341760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b505050565b62000513838383620004f660201b62000e331760201c565b6001600160a01b03838116600090815260076020526040808220548584168352912054620004f6929182169116836200061d565b60006001600160e01b03821115620005b25760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016200024e565b5090565b600063ffffffff821115620005b25760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016200024e565b816001600160a01b0316836001600160a01b031614158015620006405750600081115b15620004f6576001600160a01b03831615620006cd576001600160a01b0383166000908152600860209081526040822082916200068a919062000758901b62000e38178562000364565b91509150846001600160a01b031660008051602062002b7a8339815191528383604051620006c2929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615620004f6576001600160a01b0382166000908152600860209081526040822082916200071191906200034d901b62000d28178562000364565b91509150836001600160a01b031660008051602062002b7a833981519152838360405162000749929190918252602082015260400190565b60405180910390a25050505050565b60006200035b82846200091c565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200079157607f821691505b602082108103620007b257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004f657600081815260208120601f850160051c81016020861015620007e15750805b601f850160051c820191505b818110156200080257828155600101620007ed565b505050505050565b81516001600160401b0381111562000826576200082662000766565b6200083e816200083784546200077c565b84620007b8565b602080601f8311600181146200087657600084156200085d5750858301515b600019600386901b1c1916600185901b17855562000802565b600085815260208120601f198616915b82811015620008a75788860151825594840194600190910190840162000886565b5085821015620008c65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200035e576200035e620008d6565b808201808211156200035e576200035e620008d6565b818103818111156200035e576200035e620008d6565b60805160a05160c05160e05161010051610120516121f86200098260003960006112b101526000611300015260006112db015260006112340152600061125e0152600061128801526121f86000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf146103c4578063dd62ed3e146103d7578063f1127ed814610410578063f2fde38b1461044d57600080fd5b8063a457c2d71461038b578063a9059cbb1461039e578063c3cda520146103b157600080fd5b80638e539e8c116100d35780638e539e8c1461034a5780638e6f4fb71461035d57806395d89b41146103705780639ab24eb01461037857600080fd5b8063715018a61461031e5780637ecebe00146103265780638da5cb5b1461033957600080fd5b80633644e51511610166578063587cde1e11610140578063587cde1e146102765780635c19a95c146102ba5780636fcfff45146102cd57806370a08231146102f557600080fd5b80633644e5151461024857806339509351146102505780633a46b1a81461026357600080fd5b806318160ddd1161019757806318160ddd1461021457806323b872dd14610226578063313ce5671461023957600080fd5b806306fdde03146101be578063095ea7b3146101dc57806317fa277e146101ff575b600080fd5b6101c6610460565b6040516101d39190611dff565b60405180910390f35b6101ef6101ea366004611e62565b6104f2565b60405190151581526020016101d3565b61021261020d366004611e8e565b61050c565b005b6002545b6040519081526020016101d3565b6101ef610234366004611f03565b610649565b604051601281526020016101d3565b61021861066d565b6101ef61025e366004611e62565b61067c565b610218610271366004611e62565b6106bb565b6102a2610284366004611f44565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016101d3565b6102126102c8366004611f44565b6106e1565b6102e06102db366004611f44565b6106ee565b60405163ffffffff90911681526020016101d3565b610218610303366004611f44565b6001600160a01b031660009081526020819052604090205490565b610212610710565b610218610334366004611f44565b610724565b600a546001600160a01b03166102a2565b610218610358366004611f61565b610742565b6102a261036b366004611f61565b6107a3565b6101c66107cd565b610218610386366004611f44565b6107dc565b6101ef610399366004611e62565b6107fa565b6101ef6103ac366004611e62565b6108a4565b6102126103bf366004611f90565b6108b2565b6102126103d2366004611fea565b6109e8565b6102186103e5366004612058565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61042361041e366004612091565b610b4c565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101d3565b61021261045b366004611f44565b610bd0565b60606003805461046f906120c8565b80601f016020809104026020016040519081016040528092919081815260200182805461049b906120c8565b80156104e85780601f106104bd576101008083540402835291602001916104e8565b820191906000526020600020905b8154815290600101906020018083116104cb57829003601f168201915b5050505050905090565b600033610500818585610e44565b60019150505b92915050565b610514610f68565b600b541561052157600080fd5b8060005b818110156106435730848483818110610540576105406120fc565b90506020020160208101906105559190611f44565b6001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b69190612112565b6001600160a01b0316146105c957600080fd5b600b8484838181106105dd576105dd6120fc565b90506020020160208101906105f29190611f44565b815460018101835560009283526020909220909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790558061063b81612145565b915050610525565b50505050565b600033610657858285610fc2565b61066285858561104e565b506001949350505050565b6000610677611227565b905090565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061050090829086906106b690879061215e565b610e44565b60006106c68361134e565b6106d08484611411565b6106da919061215e565b9392505050565b6106eb3382611484565b50565b6001600160a01b03811660009081526008602052604081205461050690610db7565b610718610f68565b610722600061150a565b565b6001600160a01b038116600090815260056020526040812054610506565b60004382106107985760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b610506600983611569565b600b81815481106107b357600080fd5b6000918252602090912001546001600160a01b0316905081565b60606004805461046f906120c8565b60006107e78261134e565b6107f083611660565b610506919061215e565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156108975760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161078f565b6106628286868403610e44565b60003361050081858561104e565b834211156109025760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161078f565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b03881691810191909152606081018690526080810185905260009061097c906109749060a001604051602081830303815290604052805190602001206116e7565b858585611735565b90506109878161175d565b86146109d55760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161078f565b6109df8188611484565b50505050505050565b83421115610a385760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161078f565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a678c61175d565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610ac2826116e7565b90506000610ad282878787611735565b9050896001600160a01b0316816001600160a01b031614610b355760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161078f565b610b408a8a8a610e44565b50505050505050505050565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610b9057610b906120fc565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610bd8610f68565b6001600160a01b038116610c545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161078f565b6106eb8161150a565b6001600160a01b038216610cb35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161078f565b8060026000828254610cc5919061215e565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d2460008383611785565b5050565b60006106da828461215e565b60006001600160e01b03821115610db35760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f3234206269747300000000000000000000000000000000000000000000000000606482015260840161078f565b5090565b600063ffffffff821115610db35760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161078f565b505050565b60006106da8284612171565b6001600160a01b038316610ea65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078f565b6001600160a01b038216610f075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a546001600160a01b031633146107225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161078f565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461064357818110156110415760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161078f565b6106438484848403610e44565b6001600160a01b0383166110ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161078f565b6001600160a01b03821661112c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078f565b6001600160a01b038316600090815260208190526040902054818110156111bb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161078f565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610643848484611785565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561128057507f000000000000000000000000000000000000000000000000000000000000000046145b156112aa57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600b546000908190815b8181101561140857600b8181548110611373576113736120fc565b6000918252602090912001546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa1580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea9190612184565b6113f4908461215e565b92508061140081612145565b915050611358565b50909392505050565b60004382106114625760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604482015260640161078f565b6001600160a01b03831660009081526008602052604090206106da9083611569565b6001600160a01b0382811660008181526007602081815260408084208054858452828620549490935287871673ffffffffffffffffffffffffffffffffffffffff198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46106438284836117b3565b600a80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8154600090818160058111156115c3576000611584846118f0565b61158e9085612171565b600088815260209020909150869082015463ffffffff1611156115b3578091506115c1565b6115be81600161215e565b92505b505b808210156116105760006115d783836119d8565b600088815260209020909150869082015463ffffffff1611156115fc5780915061160a565b61160781600161215e565b92505b506115c3565b801561164a5761163386611625600184612171565b600091825260209091200190565b5464010000000090046001600160e01b031661164d565b60005b6001600160e01b03169695505050505050565b6001600160a01b03811660009081526008602052604081205480156116d4576001600160a01b03831660009081526008602052604090206116a2600183612171565b815481106116b2576116b26120fc565b60009182526020909120015464010000000090046001600160e01b03166116d7565b60005b6001600160e01b03169392505050565b60006105066116f4611227565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611746878787876119f3565b9150915061175381611ab7565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b6001600160a01b03838116600090815260076020526040808220548584168352912054610e33929182169116835b816001600160a01b0316836001600160a01b0316141580156117d55750600081115b15610e33576001600160a01b03831615611863576001600160a01b0383166000908152600860205260408120819061181090610e3885611c01565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611858929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610e33576001600160a01b0382166000908152600860205260408120819061189990610d2885611c01565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516118e1929190918252602082015260400190565b60405180910390a25050505050565b60008160000361190257506000919050565b6000600161190f84611d55565b901c6001901b905060018184816119285761192861219d565b048201901c905060018184816119405761194061219d565b048201901c905060018184816119585761195861219d565b048201901c905060018184816119705761197061219d565b048201901c905060018184816119885761198861219d565b048201901c905060018184816119a0576119a061219d565b048201901c905060018184816119b8576119b861219d565b048201901c90506106da818285816119d2576119d261219d565b04611de9565b60006119e760028484186121b3565b6106da9084841661215e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611a2a5750600090506003611aae565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611a7e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611aa757600060019250925050611aae565b9150600090505b94509492505050565b6000816004811115611acb57611acb6121d5565b03611ad35750565b6001816004811115611ae757611ae76121d5565b03611b345760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161078f565b6002816004811115611b4857611b486121d5565b03611b955760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161078f565b6003816004811115611ba957611ba96121d5565b036106eb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161078f565b82546000908190818115611c4e57611c1e87611625600185612171565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611c63565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611c8384868863ffffffff16565b9250600082118015611c9b5750805163ffffffff1643145b15611ce057611ca983610d34565b611cb888611625600186612171565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611d4b565b866040518060400160405280611cf543610db7565b63ffffffff168152602001611d0986610d34565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b600080608083901c15611d6a57608092831c92015b604083901c15611d7c57604092831c92015b602083901c15611d8e57602092831c92015b601083901c15611da057601092831c92015b600883901c15611db257600892831c92015b600483901c15611dc457600492831c92015b600283901c15611dd657600292831c92015b600183901c156105065760010192915050565b6000818310611df857816106da565b5090919050565b600060208083528351808285015260005b81811015611e2c57858101830151858201604001528201611e10565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106eb57600080fd5b60008060408385031215611e7557600080fd5b8235611e8081611e4d565b946020939093013593505050565b60008060208385031215611ea157600080fd5b823567ffffffffffffffff80821115611eb957600080fd5b818501915085601f830112611ecd57600080fd5b813581811115611edc57600080fd5b8660208260051b8501011115611ef157600080fd5b60209290920196919550909350505050565b600080600060608486031215611f1857600080fd5b8335611f2381611e4d565b92506020840135611f3381611e4d565b929592945050506040919091013590565b600060208284031215611f5657600080fd5b81356106da81611e4d565b600060208284031215611f7357600080fd5b5035919050565b803560ff81168114611f8b57600080fd5b919050565b60008060008060008060c08789031215611fa957600080fd5b8635611fb481611e4d565b95506020870135945060408701359350611fd060608801611f7a565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561200557600080fd5b873561201081611e4d565b9650602088013561202081611e4d565b9550604088013594506060880135935061203c60808901611f7a565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561206b57600080fd5b823561207681611e4d565b9150602083013561208681611e4d565b809150509250929050565b600080604083850312156120a457600080fd5b82356120af81611e4d565b9150602083013563ffffffff8116811461208657600080fd5b600181811c908216806120dc57607f821691505b60208210810361177f57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561212457600080fd5b81516106da81611e4d565b634e487b7160e01b600052601160045260246000fd5b6000600182016121575761215761212f565b5060010190565b808201808211156105065761050661212f565b818103818111156105065761050661212f565b60006020828403121561219657600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b6000826121d057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000adec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101b95760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf146103c4578063dd62ed3e146103d7578063f1127ed814610410578063f2fde38b1461044d57600080fd5b8063a457c2d71461038b578063a9059cbb1461039e578063c3cda520146103b157600080fd5b80638e539e8c116100d35780638e539e8c1461034a5780638e6f4fb71461035d57806395d89b41146103705780639ab24eb01461037857600080fd5b8063715018a61461031e5780637ecebe00146103265780638da5cb5b1461033957600080fd5b80633644e51511610166578063587cde1e11610140578063587cde1e146102765780635c19a95c146102ba5780636fcfff45146102cd57806370a08231146102f557600080fd5b80633644e5151461024857806339509351146102505780633a46b1a81461026357600080fd5b806318160ddd1161019757806318160ddd1461021457806323b872dd14610226578063313ce5671461023957600080fd5b806306fdde03146101be578063095ea7b3146101dc57806317fa277e146101ff575b600080fd5b6101c6610460565b6040516101d39190611dff565b60405180910390f35b6101ef6101ea366004611e62565b6104f2565b60405190151581526020016101d3565b61021261020d366004611e8e565b61050c565b005b6002545b6040519081526020016101d3565b6101ef610234366004611f03565b610649565b604051601281526020016101d3565b61021861066d565b6101ef61025e366004611e62565b61067c565b610218610271366004611e62565b6106bb565b6102a2610284366004611f44565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016101d3565b6102126102c8366004611f44565b6106e1565b6102e06102db366004611f44565b6106ee565b60405163ffffffff90911681526020016101d3565b610218610303366004611f44565b6001600160a01b031660009081526020819052604090205490565b610212610710565b610218610334366004611f44565b610724565b600a546001600160a01b03166102a2565b610218610358366004611f61565b610742565b6102a261036b366004611f61565b6107a3565b6101c66107cd565b610218610386366004611f44565b6107dc565b6101ef610399366004611e62565b6107fa565b6101ef6103ac366004611e62565b6108a4565b6102126103bf366004611f90565b6108b2565b6102126103d2366004611fea565b6109e8565b6102186103e5366004612058565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61042361041e366004612091565b610b4c565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101d3565b61021261045b366004611f44565b610bd0565b60606003805461046f906120c8565b80601f016020809104026020016040519081016040528092919081815260200182805461049b906120c8565b80156104e85780601f106104bd576101008083540402835291602001916104e8565b820191906000526020600020905b8154815290600101906020018083116104cb57829003601f168201915b5050505050905090565b600033610500818585610e44565b60019150505b92915050565b610514610f68565b600b541561052157600080fd5b8060005b818110156106435730848483818110610540576105406120fc565b90506020020160208101906105559190611f44565b6001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b69190612112565b6001600160a01b0316146105c957600080fd5b600b8484838181106105dd576105dd6120fc565b90506020020160208101906105f29190611f44565b815460018101835560009283526020909220909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790558061063b81612145565b915050610525565b50505050565b600033610657858285610fc2565b61066285858561104e565b506001949350505050565b6000610677611227565b905090565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061050090829086906106b690879061215e565b610e44565b60006106c68361134e565b6106d08484611411565b6106da919061215e565b9392505050565b6106eb3382611484565b50565b6001600160a01b03811660009081526008602052604081205461050690610db7565b610718610f68565b610722600061150a565b565b6001600160a01b038116600090815260056020526040812054610506565b60004382106107985760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b610506600983611569565b600b81815481106107b357600080fd5b6000918252602090912001546001600160a01b0316905081565b60606004805461046f906120c8565b60006107e78261134e565b6107f083611660565b610506919061215e565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156108975760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161078f565b6106628286868403610e44565b60003361050081858561104e565b834211156109025760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161078f565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b03881691810191909152606081018690526080810185905260009061097c906109749060a001604051602081830303815290604052805190602001206116e7565b858585611735565b90506109878161175d565b86146109d55760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161078f565b6109df8188611484565b50505050505050565b83421115610a385760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161078f565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a678c61175d565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610ac2826116e7565b90506000610ad282878787611735565b9050896001600160a01b0316816001600160a01b031614610b355760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161078f565b610b408a8a8a610e44565b50505050505050505050565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610b9057610b906120fc565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610bd8610f68565b6001600160a01b038116610c545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161078f565b6106eb8161150a565b6001600160a01b038216610cb35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161078f565b8060026000828254610cc5919061215e565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d2460008383611785565b5050565b60006106da828461215e565b60006001600160e01b03821115610db35760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f3234206269747300000000000000000000000000000000000000000000000000606482015260840161078f565b5090565b600063ffffffff821115610db35760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161078f565b505050565b60006106da8284612171565b6001600160a01b038316610ea65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078f565b6001600160a01b038216610f075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a546001600160a01b031633146107225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161078f565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461064357818110156110415760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161078f565b6106438484848403610e44565b6001600160a01b0383166110ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161078f565b6001600160a01b03821661112c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078f565b6001600160a01b038316600090815260208190526040902054818110156111bb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161078f565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610643848484611785565b6000306001600160a01b037f0000000000000000000000005283d291dbcf85356a21ba090e6db59121208b441614801561128057507f000000000000000000000000000000000000000000000000000000000000000146145b156112aa57507f7ab1c4b08cbfc7a1bec23e74548143217c862f40fbfb4f73b6d844e8a4dddb0a90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f967832bb20d83d03a3b4a07696996a09e10b395b854aacbedf0b377309650c44828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600b546000908190815b8181101561140857600b8181548110611373576113736120fc565b6000918252602090912001546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa1580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea9190612184565b6113f4908461215e565b92508061140081612145565b915050611358565b50909392505050565b60004382106114625760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604482015260640161078f565b6001600160a01b03831660009081526008602052604090206106da9083611569565b6001600160a01b0382811660008181526007602081815260408084208054858452828620549490935287871673ffffffffffffffffffffffffffffffffffffffff198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46106438284836117b3565b600a80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8154600090818160058111156115c3576000611584846118f0565b61158e9085612171565b600088815260209020909150869082015463ffffffff1611156115b3578091506115c1565b6115be81600161215e565b92505b505b808210156116105760006115d783836119d8565b600088815260209020909150869082015463ffffffff1611156115fc5780915061160a565b61160781600161215e565b92505b506115c3565b801561164a5761163386611625600184612171565b600091825260209091200190565b5464010000000090046001600160e01b031661164d565b60005b6001600160e01b03169695505050505050565b6001600160a01b03811660009081526008602052604081205480156116d4576001600160a01b03831660009081526008602052604090206116a2600183612171565b815481106116b2576116b26120fc565b60009182526020909120015464010000000090046001600160e01b03166116d7565b60005b6001600160e01b03169392505050565b60006105066116f4611227565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611746878787876119f3565b9150915061175381611ab7565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b6001600160a01b03838116600090815260076020526040808220548584168352912054610e33929182169116835b816001600160a01b0316836001600160a01b0316141580156117d55750600081115b15610e33576001600160a01b03831615611863576001600160a01b0383166000908152600860205260408120819061181090610e3885611c01565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611858929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610e33576001600160a01b0382166000908152600860205260408120819061189990610d2885611c01565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516118e1929190918252602082015260400190565b60405180910390a25050505050565b60008160000361190257506000919050565b6000600161190f84611d55565b901c6001901b905060018184816119285761192861219d565b048201901c905060018184816119405761194061219d565b048201901c905060018184816119585761195861219d565b048201901c905060018184816119705761197061219d565b048201901c905060018184816119885761198861219d565b048201901c905060018184816119a0576119a061219d565b048201901c905060018184816119b8576119b861219d565b048201901c90506106da818285816119d2576119d261219d565b04611de9565b60006119e760028484186121b3565b6106da9084841661215e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611a2a5750600090506003611aae565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611a7e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611aa757600060019250925050611aae565b9150600090505b94509492505050565b6000816004811115611acb57611acb6121d5565b03611ad35750565b6001816004811115611ae757611ae76121d5565b03611b345760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161078f565b6002816004811115611b4857611b486121d5565b03611b955760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161078f565b6003816004811115611ba957611ba96121d5565b036106eb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161078f565b82546000908190818115611c4e57611c1e87611625600185612171565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611c63565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611c8384868863ffffffff16565b9250600082118015611c9b5750805163ffffffff1643145b15611ce057611ca983610d34565b611cb888611625600186612171565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611d4b565b866040518060400160405280611cf543610db7565b63ffffffff168152602001611d0986610d34565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b600080608083901c15611d6a57608092831c92015b604083901c15611d7c57604092831c92015b602083901c15611d8e57602092831c92015b601083901c15611da057601092831c92015b600883901c15611db257600892831c92015b600483901c15611dc457600492831c92015b600283901c15611dd657600292831c92015b600183901c156105065760010192915050565b6000818310611df857816106da565b5090919050565b600060208083528351808285015260005b81811015611e2c57858101830151858201604001528201611e10565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106eb57600080fd5b60008060408385031215611e7557600080fd5b8235611e8081611e4d565b946020939093013593505050565b60008060208385031215611ea157600080fd5b823567ffffffffffffffff80821115611eb957600080fd5b818501915085601f830112611ecd57600080fd5b813581811115611edc57600080fd5b8660208260051b8501011115611ef157600080fd5b60209290920196919550909350505050565b600080600060608486031215611f1857600080fd5b8335611f2381611e4d565b92506020840135611f3381611e4d565b929592945050506040919091013590565b600060208284031215611f5657600080fd5b81356106da81611e4d565b600060208284031215611f7357600080fd5b5035919050565b803560ff81168114611f8b57600080fd5b919050565b60008060008060008060c08789031215611fa957600080fd5b8635611fb481611e4d565b95506020870135945060408701359350611fd060608801611f7a565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561200557600080fd5b873561201081611e4d565b9650602088013561202081611e4d565b9550604088013594506060880135935061203c60808901611f7a565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561206b57600080fd5b823561207681611e4d565b9150602083013561208681611e4d565b809150509250929050565b600080604083850312156120a457600080fd5b82356120af81611e4d565b9150602083013563ffffffff8116811461208657600080fd5b600181811c908216806120dc57607f821691505b60208210810361177f57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561212457600080fd5b81516106da81611e4d565b634e487b7160e01b600052601160045260246000fd5b6000600182016121575761215761212f565b5060010190565b808201808211156105065761050661212f565b818103818111156105065761050661212f565b60006020828403121561219657600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b6000826121d057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a
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.