ERC-20
Overview
Max Total Supply
232,088,845.588790238688269869 DEYE
Holders
162
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
150.912024970230448745 DEYEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DEYE
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-04 */ // File: @openzeppelin/contracts/utils/cryptography/MerkleProof.sol // OpenZeppelin Contracts (last updated v4.6.0) (utils/cryptography/MerkleProof.sol) pragma solidity ^0.8.0; /** * @dev These functions deal with verification of Merkle Trees proofs. * * The proofs can be generated using the JavaScript library * https://github.com/miguelmota/merkletreejs[merkletreejs]. * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. * * See `test/utils/cryptography/MerkleProof.test.js` for some examples. * * WARNING: You should avoid using leaf values that are 64 bytes long prior to * hashing, or use a hash function other than keccak256 for hashing leaves. * This is because the concatenation of a sorted pair of internal nodes in * the merkle tree could be reinterpreted as a leaf value. */ library MerkleProof { /** * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree * defined by `root`. For this, a `proof` must be provided, containing * sibling hashes on the branch from the leaf to the root of the tree. Each * pair of leaves and each pair of pre-images are assumed to be sorted. */ function verify( bytes32[] memory proof, bytes32 root, bytes32 leaf ) internal pure returns (bool) { return processProof(proof, leaf) == root; } /** * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt * hash matches the root of the tree. When processing the proof, the pairs * of leafs & pre-images are assumed to be sorted. * * _Available since v4.4._ */ function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofElement = proof[i]; if (computedHash <= proofElement) { // Hash(current computed hash + current element of the proof) computedHash = _efficientHash(computedHash, proofElement); } else { // Hash(current element of the proof + current computed hash) computedHash = _efficientHash(proofElement, computedHash); } } return computedHash; } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } } // File: @openzeppelin/contracts/utils/Context.sol // 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; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // 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. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @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. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @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.zeppelin.solutions/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}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity ^0.8.0; /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } // File: contracts/DEYE.sol // Author: Mas C. (Project Dark Eye) pragma solidity ^0.8.0; contract DEYE is ERC20Burnable, Ownable { // Max Supply: 10,000,000,000, with 18 decimals. uint256 public constant MAX_SUPPLY = 1e28; uint256 public totalMinted; bytes32 public allowanceMerkleRoot; bool public claimEnabled = false; // Claimed tokens per address. mapping(address => uint256) public claimed; // Addresses that are allowed to call owner only functions. mapping(address => bool) public managers; constructor(bytes32 merkleRoot) ERC20("Project Dark Eye Token", "DEYE") { allowanceMerkleRoot = merkleRoot; totalMinted = 0; } function claim(uint256 amount, uint256 allowance, bytes32[] calldata proof) public { require(claimEnabled, "Claim not enabled"); require(verifyAllowance(msg.sender, allowance, proof), "Failed allowance verification"); require(claimed[msg.sender] + amount <= allowance, "Request higher than allowance"); require(totalMinted + amount <= MAX_SUPPLY, "Request higher than max supply"); claimed[msg.sender] = claimed[msg.sender] + amount; totalMinted = totalMinted + amount; _mint(msg.sender, amount * 10**uint(decimals())); } function getQuantityClaimed(address claimee) public view returns (uint256) { return claimed[claimee]; } function verifyAllowance(address account, uint256 allowance, bytes32[] calldata proof) public view returns (bool) { return MerkleProof.verify(proof, allowanceMerkleRoot, generateAllowanceMerkleLeaf(account, allowance)); } function generateAllowanceMerkleLeaf(address account, uint256 allowance) public pure returns (bytes32) { return keccak256(abi.encodePacked(account, allowance)); } // Owner Only Functions. function setAllowanceMerkleRoot(bytes32 merkleRoot) public onlyOwner { require(merkleRoot != allowanceMerkleRoot,"merkleRoot is the same as previous value"); allowanceMerkleRoot = merkleRoot; } function teamMint(address account, uint256 amount) public onlyOwner { require(totalMinted + amount <= MAX_SUPPLY, "Request higher than max supply"); totalMinted = totalMinted + amount; _mint(account, amount * 10**uint(decimals())); } function setManagers(address[] memory addresses, bool[] memory allowedValues) public onlyOwner { require(addresses.length == allowedValues.length, "addresses does not match allowedValues length"); for (uint256 i = 0; i < addresses.length; i++) { managers[addresses[i]] = allowedValues[i]; } } function isManager(address addr) public view returns (bool) { return managers[addr]; } function setAllowanceMerkleRootByManager(bytes32 merkleRoot) public { require(managers[msg.sender], "Caller not allowed"); require(merkleRoot != allowanceMerkleRoot,"merkleRoot is the same as previous value"); allowanceMerkleRoot = merkleRoot; } function teamMintByManager(address account, uint256 amount) public { require(managers[msg.sender], "Caller not allowed"); require(totalMinted + amount <= MAX_SUPPLY, "Request higher than max supply"); totalMinted = totalMinted + amount; _mint(account, amount * 10**uint(decimals())); } function setClaimEnabled(bool enabled) public onlyOwner { claimEnabled = enabled; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"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":"MAX_SUPPLY","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":[],"name":"allowanceMerkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"account","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"generateAllowanceMerkleLeaf","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"claimee","type":"address"}],"name":"getQuantityClaimed","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":"address","name":"addr","type":"address"}],"name":"isManager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"setAllowanceMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"setAllowanceMerkleRootByManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setClaimEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool[]","name":"allowedValues","type":"bool[]"}],"name":"setManagers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"teamMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"teamMintByManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"verifyAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526008805460ff191690553480156200001b57600080fd5b5060405162001c0538038062001c058339810160408190526200003e91620001dc565b604080518082018252601681527f50726f6a656374204461726b2045796520546f6b656e000000000000000000006020808301918252835180850190945260048452634445594560e01b9084015281519192916200009f9160039162000136565b508051620000b590600490602084019062000136565b505050620000d2620000cc620000e060201b60201c565b620000e4565b600755600060065562000233565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200014490620001f6565b90600052602060002090601f016020900481019282620001685760008555620001b3565b82601f106200018357805160ff1916838001178555620001b3565b82800160010185558215620001b3579182015b82811115620001b357825182559160200191906001019062000196565b50620001c1929150620001c5565b5090565b5b80821115620001c15760008155600101620001c6565b600060208284031215620001ef57600080fd5b5051919050565b600181811c908216806200020b57607f821691505b602082108114156200022d57634e487b7160e01b600052602260045260246000fd5b50919050565b6119c280620002436000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638a8f12791161011a578063ae0b51df116100ad578063dc9055b21161007c578063dc9055b21461043d578063dd62ed3e14610450578063f2fde38b14610463578063f3ae241514610476578063fdff9b4d146104a257600080fd5b8063ae0b51df146103e4578063b0f37f41146103f7578063c884ef831461040a578063da73ff151461042a57600080fd5b8063a2309ff8116100e9578063a2309ff8146103a2578063a457c2d7146103ab578063a9059cbb146103be578063add5a4fa146103d157600080fd5b80638a8f1279146103595780638da5cb5b1461036c57806392929a091461038757806395d89b411461039a57600080fd5b806336bc89ad1161019257806370a082311161016157806370a0823114610302578063715018a61461032b57806379cc679014610333578063881d603e1461034657600080fd5b806336bc89ad1461029e57806339509351146102c75780633bdcc923146102da57806342966c68146102ef57600080fd5b806323b872dd116101ce57806323b872dd1461025c5780632866ed211461026f578063313ce5671461027c57806332cb6b0c1461028b57600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024157806320f0372514610253575b600080fd5b6102086104c5565b60405161021591906116dc565b60405180910390f35b61023161022c366004611522565b610557565b6040519015158152602001610215565b6002545b604051908152602001610215565b61024560075481565b61023161026a3660046114e6565b610571565b6008546102319060ff1681565b60405160128152602001610215565b6102456b204fce5e3e2502611000000081565b6102456102ac366004611491565b6001600160a01b031660009081526009602052604090205490565b6102316102d5366004611522565b610595565b6102ed6102e83660046115a6565b6105b7565b005b6102ed6102fd366004611688565b6106d6565b610245610310366004611491565b6001600160a01b031660009081526020819052604090205490565b6102ed6106e3565b6102ed610341366004611522565b610719565b6102ed610354366004611688565b610732565b6102ed610367366004611522565b6107c4565b6005546040516001600160a01b039091168152602001610215565b6102ed61039536600461166d565b6108b1565b6102086108ee565b61024560065481565b6102316103b9366004611522565b6108fd565b6102316103cc366004611522565b610978565b6102ed6103df366004611522565b610986565b6102ed6103f23660046116a1565b6109b0565b61023161040536600461154c565b610b7e565b610245610418366004611491565b60096020526000908152604090205481565b610245610438366004611522565b610bd3565b6102ed61044b366004611688565b610c1a565b61024561045e3660046114b3565b610c6e565b6102ed610471366004611491565b610c99565b610231610484366004611491565b6001600160a01b03166000908152600a602052604090205460ff1690565b6102316104b0366004611491565b600a6020526000908152604090205460ff1681565b6060600380546104d4906118f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610500906118f4565b801561054d5780601f106105225761010080835404028352916020019161054d565b820191906000526020600020905b81548152906001019060200180831161053057829003601f168201915b5050505050905090565b600033610565818585610d31565b60019150505b92915050565b60003361057f858285610e55565b61058a858585610ec9565b506001949350505050565b6000336105658185856105a88383610c6e565b6105b291906117bb565b610d31565b6005546001600160a01b031633146105ea5760405162461bcd60e51b81526004016105e190611731565b60405180910390fd5b80518251146106515760405162461bcd60e51b815260206004820152602d60248201527f61646472657373657320646f6573206e6f74206d6174636820616c6c6f77656460448201526c0acc2d8eacae640d8cadccee8d609b1b60648201526084016105e1565b60005b82518110156106d15781818151811061066f5761066f611960565b6020026020010151600a600085848151811061068d5761068d611960565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106c98161192f565b915050610654565b505050565b6106e03382611097565b50565b6005546001600160a01b0316331461070d5760405162461bcd60e51b81526004016105e190611731565b61071760006111e5565b565b610724823383610e55565b61072e8282611097565b5050565b6005546001600160a01b0316331461075c5760405162461bcd60e51b81526004016105e190611731565b6007548114156107bf5760405162461bcd60e51b815260206004820152602860248201527f6d65726b6c65526f6f74206973207468652073616d652061732070726576696f60448201526775732076616c756560c01b60648201526084016105e1565b600755565b336000908152600a602052604090205460ff166108185760405162461bcd60e51b815260206004820152601260248201527110d85b1b195c881b9bdd08185b1b1bddd95960721b60448201526064016105e1565b6b204fce5e3e250261100000008160065461083391906117bb565b11156108815760405162461bcd60e51b815260206004820152601e60248201527f5265717565737420686967686572207468616e206d617820737570706c79000060448201526064016105e1565b8060065461088f91906117bb565b60065561072e826108a26012600a611816565b6108ac90846118be565b611237565b6005546001600160a01b031633146108db5760405162461bcd60e51b81526004016105e190611731565b6008805460ff1916911515919091179055565b6060600480546104d4906118f4565b6000338161090b8286610c6e565b90508381101561096b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105e1565b61058a8286868403610d31565b600033610565818585610ec9565b6005546001600160a01b031633146108185760405162461bcd60e51b81526004016105e190611731565b60085460ff166109f65760405162461bcd60e51b815260206004820152601160248201527010db185a5b481b9bdd08195b98589b1959607a1b60448201526064016105e1565b610a0233848484610b7e565b610a4e5760405162461bcd60e51b815260206004820152601d60248201527f4661696c656420616c6c6f77616e636520766572696669636174696f6e00000060448201526064016105e1565b336000908152600960205260409020548390610a6b9086906117bb565b1115610ab95760405162461bcd60e51b815260206004820152601d60248201527f5265717565737420686967686572207468616e20616c6c6f77616e636500000060448201526064016105e1565b6b204fce5e3e2502611000000084600654610ad491906117bb565b1115610b225760405162461bcd60e51b815260206004820152601e60248201527f5265717565737420686967686572207468616e206d617820737570706c79000060448201526064016105e1565b33600090815260096020526040902054610b3d9085906117bb565b33600090815260096020526040902055600654610b5b9085906117bb565b600655610b7833610b6e6012600a611816565b6108ac90876118be565b50505050565b6000610bca838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506007549150610bc590508888610bd3565b611316565b95945050505050565b6040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b336000908152600a602052604090205460ff1661075c5760405162461bcd60e51b815260206004820152601260248201527110d85b1b195c881b9bdd08185b1b1bddd95960721b60448201526064016105e1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b03163314610cc35760405162461bcd60e51b81526004016105e190611731565b6001600160a01b038116610d285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e1565b6106e0816111e5565b6001600160a01b038316610d935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e1565b6001600160a01b038216610df45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610e618484610c6e565b90506000198114610b785781811015610ebc5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105e1565b610b788484848403610d31565b6001600160a01b038316610f2d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e1565b6001600160a01b038216610f8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e1565b6001600160a01b038316600090815260208190526040902054818110156110075760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105e1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061103e9084906117bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161108a91815260200190565b60405180910390a3610b78565b6001600160a01b0382166110f75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105e1565b6001600160a01b0382166000908152602081905260409020548181101561116b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105e1565b6001600160a01b038316600090815260208190526040812083830390556002805484929061119a9084906118dd565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661128d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105e1565b806002600082825461129f91906117bb565b90915550506001600160a01b038216600090815260208190526040812080548392906112cc9084906117bb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600082611323858461132c565b14949350505050565b600081815b845181101561139857600085828151811061134e5761134e611960565b602002602001015190508083116113745760008381526020829052604090209250611385565b600081815260208490526040902092505b50806113908161192f565b915050611331565b509392505050565b80356001600160a01b03811681146113b757600080fd5b919050565b600082601f8301126113cd57600080fd5b813560206113e26113dd83611797565b611766565b80838252828201915082860187848660051b890101111561140257600080fd5b60005b858110156114285761141682611481565b84529284019290840190600101611405565b5090979650505050505050565b60008083601f84011261144757600080fd5b50813567ffffffffffffffff81111561145f57600080fd5b6020830191508360208260051b850101111561147a57600080fd5b9250929050565b803580151581146113b757600080fd5b6000602082840312156114a357600080fd5b6114ac826113a0565b9392505050565b600080604083850312156114c657600080fd5b6114cf836113a0565b91506114dd602084016113a0565b90509250929050565b6000806000606084860312156114fb57600080fd5b611504846113a0565b9250611512602085016113a0565b9150604084013590509250925092565b6000806040838503121561153557600080fd5b61153e836113a0565b946020939093013593505050565b6000806000806060858703121561156257600080fd5b61156b856113a0565b935060208501359250604085013567ffffffffffffffff81111561158e57600080fd5b61159a87828801611435565b95989497509550505050565b600080604083850312156115b957600080fd5b823567ffffffffffffffff808211156115d157600080fd5b818501915085601f8301126115e557600080fd5b813560206115f56113dd83611797565b8083825282820191508286018a848660051b890101111561161557600080fd5b600096505b8487101561163f5761162b816113a0565b83526001969096019591830191830161161a565b509650508601359250508082111561165657600080fd5b50611663858286016113bc565b9150509250929050565b60006020828403121561167f57600080fd5b6114ac82611481565b60006020828403121561169a57600080fd5b5035919050565b600080600080606085870312156116b757600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561158e57600080fd5b600060208083528351808285015260005b81811015611709578581018301518582016040015282016116ed565b8181111561171b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561178f5761178f611976565b604052919050565b600067ffffffffffffffff8211156117b1576117b1611976565b5060051b60200190565b600082198211156117ce576117ce61194a565b500190565b600181815b8085111561180e5781600019048211156117f4576117f461194a565b8085161561180157918102915b93841c93908002906117d8565b509250929050565b60006114ac838360008261182c5750600161056b565b816118395750600061056b565b816001811461184f576002811461185957611875565b600191505061056b565b60ff84111561186a5761186a61194a565b50506001821b61056b565b5060208310610133831016604e8410600b8410161715611898575081810a61056b565b6118a283836117d3565b80600019048211156118b6576118b661194a565b029392505050565b60008160001904831182151516156118d8576118d861194a565b500290565b6000828210156118ef576118ef61194a565b500390565b600181811c9082168061190857607f821691505b6020821081141561192957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119435761194361194a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122019ac3803fdedc1d55b4c1a23dc6ccbf7ccdeddd13546c83dbc36536fdc74b29564736f6c63430008070033ab1330d92c447082ec9d14f32ff45c9a6e5b1109d34520d85cba9e5e10f26b32
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638a8f12791161011a578063ae0b51df116100ad578063dc9055b21161007c578063dc9055b21461043d578063dd62ed3e14610450578063f2fde38b14610463578063f3ae241514610476578063fdff9b4d146104a257600080fd5b8063ae0b51df146103e4578063b0f37f41146103f7578063c884ef831461040a578063da73ff151461042a57600080fd5b8063a2309ff8116100e9578063a2309ff8146103a2578063a457c2d7146103ab578063a9059cbb146103be578063add5a4fa146103d157600080fd5b80638a8f1279146103595780638da5cb5b1461036c57806392929a091461038757806395d89b411461039a57600080fd5b806336bc89ad1161019257806370a082311161016157806370a0823114610302578063715018a61461032b57806379cc679014610333578063881d603e1461034657600080fd5b806336bc89ad1461029e57806339509351146102c75780633bdcc923146102da57806342966c68146102ef57600080fd5b806323b872dd116101ce57806323b872dd1461025c5780632866ed211461026f578063313ce5671461027c57806332cb6b0c1461028b57600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024157806320f0372514610253575b600080fd5b6102086104c5565b60405161021591906116dc565b60405180910390f35b61023161022c366004611522565b610557565b6040519015158152602001610215565b6002545b604051908152602001610215565b61024560075481565b61023161026a3660046114e6565b610571565b6008546102319060ff1681565b60405160128152602001610215565b6102456b204fce5e3e2502611000000081565b6102456102ac366004611491565b6001600160a01b031660009081526009602052604090205490565b6102316102d5366004611522565b610595565b6102ed6102e83660046115a6565b6105b7565b005b6102ed6102fd366004611688565b6106d6565b610245610310366004611491565b6001600160a01b031660009081526020819052604090205490565b6102ed6106e3565b6102ed610341366004611522565b610719565b6102ed610354366004611688565b610732565b6102ed610367366004611522565b6107c4565b6005546040516001600160a01b039091168152602001610215565b6102ed61039536600461166d565b6108b1565b6102086108ee565b61024560065481565b6102316103b9366004611522565b6108fd565b6102316103cc366004611522565b610978565b6102ed6103df366004611522565b610986565b6102ed6103f23660046116a1565b6109b0565b61023161040536600461154c565b610b7e565b610245610418366004611491565b60096020526000908152604090205481565b610245610438366004611522565b610bd3565b6102ed61044b366004611688565b610c1a565b61024561045e3660046114b3565b610c6e565b6102ed610471366004611491565b610c99565b610231610484366004611491565b6001600160a01b03166000908152600a602052604090205460ff1690565b6102316104b0366004611491565b600a6020526000908152604090205460ff1681565b6060600380546104d4906118f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610500906118f4565b801561054d5780601f106105225761010080835404028352916020019161054d565b820191906000526020600020905b81548152906001019060200180831161053057829003601f168201915b5050505050905090565b600033610565818585610d31565b60019150505b92915050565b60003361057f858285610e55565b61058a858585610ec9565b506001949350505050565b6000336105658185856105a88383610c6e565b6105b291906117bb565b610d31565b6005546001600160a01b031633146105ea5760405162461bcd60e51b81526004016105e190611731565b60405180910390fd5b80518251146106515760405162461bcd60e51b815260206004820152602d60248201527f61646472657373657320646f6573206e6f74206d6174636820616c6c6f77656460448201526c0acc2d8eacae640d8cadccee8d609b1b60648201526084016105e1565b60005b82518110156106d15781818151811061066f5761066f611960565b6020026020010151600a600085848151811061068d5761068d611960565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106c98161192f565b915050610654565b505050565b6106e03382611097565b50565b6005546001600160a01b0316331461070d5760405162461bcd60e51b81526004016105e190611731565b61071760006111e5565b565b610724823383610e55565b61072e8282611097565b5050565b6005546001600160a01b0316331461075c5760405162461bcd60e51b81526004016105e190611731565b6007548114156107bf5760405162461bcd60e51b815260206004820152602860248201527f6d65726b6c65526f6f74206973207468652073616d652061732070726576696f60448201526775732076616c756560c01b60648201526084016105e1565b600755565b336000908152600a602052604090205460ff166108185760405162461bcd60e51b815260206004820152601260248201527110d85b1b195c881b9bdd08185b1b1bddd95960721b60448201526064016105e1565b6b204fce5e3e250261100000008160065461083391906117bb565b11156108815760405162461bcd60e51b815260206004820152601e60248201527f5265717565737420686967686572207468616e206d617820737570706c79000060448201526064016105e1565b8060065461088f91906117bb565b60065561072e826108a26012600a611816565b6108ac90846118be565b611237565b6005546001600160a01b031633146108db5760405162461bcd60e51b81526004016105e190611731565b6008805460ff1916911515919091179055565b6060600480546104d4906118f4565b6000338161090b8286610c6e565b90508381101561096b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105e1565b61058a8286868403610d31565b600033610565818585610ec9565b6005546001600160a01b031633146108185760405162461bcd60e51b81526004016105e190611731565b60085460ff166109f65760405162461bcd60e51b815260206004820152601160248201527010db185a5b481b9bdd08195b98589b1959607a1b60448201526064016105e1565b610a0233848484610b7e565b610a4e5760405162461bcd60e51b815260206004820152601d60248201527f4661696c656420616c6c6f77616e636520766572696669636174696f6e00000060448201526064016105e1565b336000908152600960205260409020548390610a6b9086906117bb565b1115610ab95760405162461bcd60e51b815260206004820152601d60248201527f5265717565737420686967686572207468616e20616c6c6f77616e636500000060448201526064016105e1565b6b204fce5e3e2502611000000084600654610ad491906117bb565b1115610b225760405162461bcd60e51b815260206004820152601e60248201527f5265717565737420686967686572207468616e206d617820737570706c79000060448201526064016105e1565b33600090815260096020526040902054610b3d9085906117bb565b33600090815260096020526040902055600654610b5b9085906117bb565b600655610b7833610b6e6012600a611816565b6108ac90876118be565b50505050565b6000610bca838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506007549150610bc590508888610bd3565b611316565b95945050505050565b6040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b336000908152600a602052604090205460ff1661075c5760405162461bcd60e51b815260206004820152601260248201527110d85b1b195c881b9bdd08185b1b1bddd95960721b60448201526064016105e1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b03163314610cc35760405162461bcd60e51b81526004016105e190611731565b6001600160a01b038116610d285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e1565b6106e0816111e5565b6001600160a01b038316610d935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e1565b6001600160a01b038216610df45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610e618484610c6e565b90506000198114610b785781811015610ebc5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105e1565b610b788484848403610d31565b6001600160a01b038316610f2d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e1565b6001600160a01b038216610f8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e1565b6001600160a01b038316600090815260208190526040902054818110156110075760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105e1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061103e9084906117bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161108a91815260200190565b60405180910390a3610b78565b6001600160a01b0382166110f75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105e1565b6001600160a01b0382166000908152602081905260409020548181101561116b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105e1565b6001600160a01b038316600090815260208190526040812083830390556002805484929061119a9084906118dd565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661128d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105e1565b806002600082825461129f91906117bb565b90915550506001600160a01b038216600090815260208190526040812080548392906112cc9084906117bb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600082611323858461132c565b14949350505050565b600081815b845181101561139857600085828151811061134e5761134e611960565b602002602001015190508083116113745760008381526020829052604090209250611385565b600081815260208490526040902092505b50806113908161192f565b915050611331565b509392505050565b80356001600160a01b03811681146113b757600080fd5b919050565b600082601f8301126113cd57600080fd5b813560206113e26113dd83611797565b611766565b80838252828201915082860187848660051b890101111561140257600080fd5b60005b858110156114285761141682611481565b84529284019290840190600101611405565b5090979650505050505050565b60008083601f84011261144757600080fd5b50813567ffffffffffffffff81111561145f57600080fd5b6020830191508360208260051b850101111561147a57600080fd5b9250929050565b803580151581146113b757600080fd5b6000602082840312156114a357600080fd5b6114ac826113a0565b9392505050565b600080604083850312156114c657600080fd5b6114cf836113a0565b91506114dd602084016113a0565b90509250929050565b6000806000606084860312156114fb57600080fd5b611504846113a0565b9250611512602085016113a0565b9150604084013590509250925092565b6000806040838503121561153557600080fd5b61153e836113a0565b946020939093013593505050565b6000806000806060858703121561156257600080fd5b61156b856113a0565b935060208501359250604085013567ffffffffffffffff81111561158e57600080fd5b61159a87828801611435565b95989497509550505050565b600080604083850312156115b957600080fd5b823567ffffffffffffffff808211156115d157600080fd5b818501915085601f8301126115e557600080fd5b813560206115f56113dd83611797565b8083825282820191508286018a848660051b890101111561161557600080fd5b600096505b8487101561163f5761162b816113a0565b83526001969096019591830191830161161a565b509650508601359250508082111561165657600080fd5b50611663858286016113bc565b9150509250929050565b60006020828403121561167f57600080fd5b6114ac82611481565b60006020828403121561169a57600080fd5b5035919050565b600080600080606085870312156116b757600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561158e57600080fd5b600060208083528351808285015260005b81811015611709578581018301518582016040015282016116ed565b8181111561171b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561178f5761178f611976565b604052919050565b600067ffffffffffffffff8211156117b1576117b1611976565b5060051b60200190565b600082198211156117ce576117ce61194a565b500190565b600181815b8085111561180e5781600019048211156117f4576117f461194a565b8085161561180157918102915b93841c93908002906117d8565b509250929050565b60006114ac838360008261182c5750600161056b565b816118395750600061056b565b816001811461184f576002811461185957611875565b600191505061056b565b60ff84111561186a5761186a61194a565b50506001821b61056b565b5060208310610133831016604e8410600b8410161715611898575081810a61056b565b6118a283836117d3565b80600019048211156118b6576118b661194a565b029392505050565b60008160001904831182151516156118d8576118d861194a565b500290565b6000828210156118ef576118ef61194a565b500390565b600181811c9082168061190857607f821691505b6020821081141561192957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119435761194361194a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122019ac3803fdedc1d55b4c1a23dc6ccbf7ccdeddd13546c83dbc36536fdc74b29564736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
ab1330d92c447082ec9d14f32ff45c9a6e5b1109d34520d85cba9e5e10f26b32
-----Decoded View---------------
Arg [0] : merkleRoot (bytes32): 0xab1330d92c447082ec9d14f32ff45c9a6e5b1109d34520d85cba9e5e10f26b32
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : ab1330d92c447082ec9d14f32ff45c9a6e5b1109d34520d85cba9e5e10f26b32
Deployed Bytecode Sourcemap
23931:3480:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11868:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14219:201;;;;;;:::i;:::-;;:::i;:::-;;;6000:14:1;;5993:22;5975:41;;5963:2;5948:18;14219:201:0;5835:187:1;12988:108:0;13076:12;;12988:108;;;6173:25:1;;;6161:2;6146:18;12988:108:0;6027:177:1;24117:34:0;;;;;;15000:295;;;;;;:::i;:::-;;:::i;24160:32::-;;;;;;;;;12830:93;;;12913:2;14448:36:1;;14436:2;14421:18;12830:93:0;14306:184:1;24032:41:0;;24069:4;24032:41;;25158:117;;;;;;:::i;:::-;-1:-1:-1;;;;;25251:16:0;25224:7;25251:16;;;:7;:16;;;;;;;25158:117;15704:238;;;;;;:::i;:::-;;:::i;26239:337::-;;;;;;:::i;:::-;;:::i;:::-;;23246:91;;;;;;:::i;:::-;;:::i;13159:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;13260:18:0;13233:7;13260:18;;;;;;;;;;;;13159:127;5291:103;;;:::i;23656:164::-;;;;;;:::i;:::-;;:::i;25742:216::-;;;;;;:::i;:::-;;:::i;26977:326::-;;;;;;:::i;:::-;;:::i;4640:87::-;4713:6;;4640:87;;-1:-1:-1;;;;;4713:6:0;;;5773:51:1;;5761:2;5746:18;4640:87:0;5627:203:1;27311:97:0;;;;;;:::i;:::-;;:::i;12087:104::-;;;:::i;24082:26::-;;;;;;16445:436;;;;;;:::i;:::-;;:::i;13492:193::-;;;;;;:::i;:::-;;:::i;25966:265::-;;;;;;:::i;:::-;;:::i;24559:591::-;;;;;;:::i;:::-;;:::i;25283:235::-;;;;;;:::i;:::-;;:::i;24237:42::-;;;;;;:::i;:::-;;;;;;;;;;;;;;25526:176;;;;;;:::i;:::-;;:::i;26692:277::-;;;;;;:::i;:::-;;:::i;13748:151::-;;;;;;:::i;:::-;;:::i;5549:201::-;;;;;;:::i;:::-;;:::i;26584:100::-;;;;;;:::i;:::-;-1:-1:-1;;;;;26662:14:0;26638:4;26662:14;;;:8;:14;;;;;;;;;26584:100;24353:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11868:100;11922:13;11955:5;11948:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11868:100;:::o;14219:201::-;14302:4;3444:10;14358:32;3444:10;14374:7;14383:6;14358:8;:32::i;:::-;14408:4;14401:11;;;14219:201;;;;;:::o;15000:295::-;15131:4;3444:10;15189:38;15205:4;3444:10;15220:6;15189:15;:38::i;:::-;15238:27;15248:4;15254:2;15258:6;15238:9;:27::i;:::-;-1:-1:-1;15283:4:0;;15000:295;-1:-1:-1;;;;15000:295:0:o;15704:238::-;15792:4;3444:10;15848:64;3444:10;15864:7;15901:10;15873:25;3444:10;15864:7;15873:9;:25::i;:::-;:38;;;;:::i;:::-;15848:8;:64::i;26239:337::-;4713:6;;-1:-1:-1;;;;;4713:6:0;3444:10;4860:23;4852:68;;;;-1:-1:-1;;;4852:68:0;;;;;;;:::i;:::-;;;;;;;;;26373:13:::1;:20;26353:9;:16;:40;26345:98;;;::::0;-1:-1:-1;;;26345:98:0;;9693:2:1;26345:98:0::1;::::0;::::1;9675:21:1::0;9732:2;9712:18;;;9705:30;9771:34;9751:18;;;9744:62;-1:-1:-1;;;9822:18:1;;;9815:43;9875:19;;26345:98:0::1;9491:409:1::0;26345:98:0::1;26459:9;26454:115;26478:9;:16;26474:1;:20;26454:115;;;26541:13;26555:1;26541:16;;;;;;;;:::i;:::-;;;;;;;26516:8;:22;26525:9;26535:1;26525:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26516:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26516:22:0;:41;;-1:-1:-1;;26516:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26496:3;::::1;::::0;::::1;:::i;:::-;;;;26454:115;;;;26239:337:::0;;:::o;23246:91::-;23302:27;3444:10;23322:6;23302:5;:27::i;:::-;23246:91;:::o;5291:103::-;4713:6;;-1:-1:-1;;;;;4713:6:0;3444:10;4860:23;4852:68;;;;-1:-1:-1;;;4852:68:0;;;;;;;:::i;:::-;5356:30:::1;5383:1;5356:18;:30::i;:::-;5291:103::o:0;23656:164::-;23733:46;23749:7;3444:10;23772:6;23733:15;:46::i;:::-;23790:22;23796:7;23805:6;23790:5;:22::i;:::-;23656:164;;:::o;25742:216::-;4713:6;;-1:-1:-1;;;;;4713:6:0;3444:10;4860:23;4852:68;;;;-1:-1:-1;;;4852:68:0;;;;;;;:::i;:::-;25844:19:::1;;25830:10;:33;;25822:85;;;::::0;-1:-1:-1;;;25822:85:0;;10872:2:1;25822:85:0::1;::::0;::::1;10854:21:1::0;10911:2;10891:18;;;10884:30;10950:34;10930:18;;;10923:62;-1:-1:-1;;;11001:18:1;;;10994:38;11049:19;;25822:85:0::1;10670:404:1::0;25822:85:0::1;25918:19;:32:::0;25742:216::o;26977:326::-;27072:10;27063:20;;;;:8;:20;;;;;;;;27055:51;;;;-1:-1:-1;;;27055:51:0;;7417:2:1;27055:51:0;;;7399:21:1;7456:2;7436:18;;;7429:30;-1:-1:-1;;;7475:18:1;;;7468:48;7533:18;;27055:51:0;7215:342:1;27055:51:0;24069:4;27139:6;27125:11;;:20;;;;:::i;:::-;:34;;27117:77;;;;-1:-1:-1;;;27117:77:0;;11988:2:1;27117:77:0;;;11970:21:1;12027:2;12007:18;;;12000:30;12066:32;12046:18;;;12039:60;12116:18;;27117:77:0;11786:354:1;27117:77:0;27233:6;27219:11;;:20;;;;:::i;:::-;27205:11;:34;27250:45;27256:7;27274:20;12913:2;27274;:20;:::i;:::-;27265:29;;:6;:29;:::i;:::-;27250:5;:45::i;27311:97::-;4713:6;;-1:-1:-1;;;;;4713:6:0;3444:10;4860:23;4852:68;;;;-1:-1:-1;;;4852:68:0;;;;;;;:::i;:::-;27378:12:::1;:22:::0;;-1:-1:-1;;27378:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27311:97::o;12087:104::-;12143:13;12176:7;12169:14;;;;;:::i;16445:436::-;16538:4;3444:10;16538:4;16621:25;3444:10;16638:7;16621:9;:25::i;:::-;16594:52;;16685:15;16665:16;:35;;16657:85;;;;-1:-1:-1;;;16657:85:0;;13560:2:1;16657:85:0;;;13542:21:1;13599:2;13579:18;;;13572:30;13638:34;13618:18;;;13611:62;-1:-1:-1;;;13689:18:1;;;13682:35;13734:19;;16657:85:0;13358:401:1;16657:85:0;16778:60;16787:5;16794:7;16822:15;16803:16;:34;16778:8;:60::i;13492:193::-;13571:4;3444:10;13627:28;3444:10;13644:2;13648:6;13627:9;:28::i;25966:265::-;4713:6;;-1:-1:-1;;;;;4713:6:0;3444:10;4860:23;4852:68;;;;-1:-1:-1;;;4852:68:0;;;;;;;:::i;24559:591::-;24661:12;;;;24653:42;;;;-1:-1:-1;;;24653:42:0;;11281:2:1;24653:42:0;;;11263:21:1;11320:2;11300:18;;;11293:30;-1:-1:-1;;;11339:18:1;;;11332:47;11396:18;;24653:42:0;11079:341:1;24653:42:0;24714:45;24730:10;24742:9;24753:5;;24714:15;:45::i;:::-;24706:87;;;;-1:-1:-1;;;24706:87:0;;8167:2:1;24706:87:0;;;8149:21:1;8206:2;8186:18;;;8179:30;8245:31;8225:18;;;8218:59;8294:18;;24706:87:0;7965:353:1;24706:87:0;24820:10;24812:19;;;;:7;:19;;;;;;24844:9;;24812:28;;24834:6;;24812:28;:::i;:::-;:41;;24804:83;;;;-1:-1:-1;;;24804:83:0;;9335:2:1;24804:83:0;;;9317:21:1;9374:2;9354:18;;;9347:30;9413:31;9393:18;;;9386:59;9462:18;;24804:83:0;9133:353:1;24804:83:0;24069:4;24920:6;24906:11;;:20;;;;:::i;:::-;:34;;24898:77;;;;-1:-1:-1;;;24898:77:0;;11988:2:1;24898:77:0;;;11970:21:1;12027:2;12007:18;;;12000:30;12066:32;12046:18;;;12039:60;12116:18;;24898:77:0;11786:354:1;24898:77:0;25018:10;25010:19;;;;:7;:19;;;;;;:28;;25032:6;;25010:28;:::i;:::-;24996:10;24988:19;;;;:7;:19;;;;;:50;25063:11;;:20;;25077:6;;25063:20;:::i;:::-;25049:11;:34;25094:48;25100:10;25121:20;12913:2;25121;:20;:::i;:::-;25112:29;;:6;:29;:::i;25094:48::-;24559:591;;;;:::o;25283:235::-;25391:4;25415:95;25434:5;;25415:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25441:19:0;;;-1:-1:-1;25462:47:0;;-1:-1:-1;25490:7:0;25499:9;25462:27;:47::i;:::-;25415:18;:95::i;:::-;25408:102;25283:235;-1:-1:-1;;;;;25283:235:0:o;25526:176::-;25657:36;;-1:-1:-1;;5505:2:1;5501:15;;;5497:53;25657:36:0;;;5485:66:1;5567:12;;;5560:28;;;25620:7:0;;5604:12:1;;25657:36:0;;;;;;;;;;;;25647:47;;;;;;25640:54;;25526:176;;;;:::o;26692:277::-;26788:10;26779:20;;;;:8;:20;;;;;;;;26771:51;;;;-1:-1:-1;;;26771:51:0;;7417:2:1;26771:51:0;;;7399:21:1;7456:2;7436:18;;;7429:30;-1:-1:-1;;;7475:18:1;;;7468:48;7533:18;;26771:51:0;7215:342:1;13748:151:0;-1:-1:-1;;;;;13864:18:0;;;13837:7;13864:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13748:151::o;5549:201::-;4713:6;;-1:-1:-1;;;;;4713:6:0;3444:10;4860:23;4852:68;;;;-1:-1:-1;;;4852:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5638:22:0;::::1;5630:73;;;::::0;-1:-1:-1;;;5630:73:0;;8525:2:1;5630:73:0::1;::::0;::::1;8507:21:1::0;8564:2;8544:18;;;8537:30;8603:34;8583:18;;;8576:62;-1:-1:-1;;;8654:18:1;;;8647:36;8700:19;;5630:73:0::1;8323:402:1::0;5630:73:0::1;5714:28;5733:8;5714:18;:28::i;20079:380::-:0;-1:-1:-1;;;;;20215:19:0;;20207:68;;;;-1:-1:-1;;;20207:68:0;;13155:2:1;20207:68:0;;;13137:21:1;13194:2;13174:18;;;13167:30;13233:34;13213:18;;;13206:62;-1:-1:-1;;;13284:18:1;;;13277:34;13328:19;;20207:68:0;12953:400:1;20207:68:0;-1:-1:-1;;;;;20294:21:0;;20286:68;;;;-1:-1:-1;;;20286:68:0;;8932:2:1;20286:68:0;;;8914:21:1;8971:2;8951:18;;;8944:30;9010:34;8990:18;;;8983:62;-1:-1:-1;;;9061:18:1;;;9054:32;9103:19;;20286:68:0;8730:398:1;20286:68:0;-1:-1:-1;;;;;20367:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20419:32;;6173:25:1;;;20419:32:0;;6146:18:1;20419:32:0;;;;;;;20079:380;;;:::o;20750:453::-;20885:24;20912:25;20922:5;20929:7;20912:9;:25::i;:::-;20885:52;;-1:-1:-1;;20952:16:0;:37;20948:248;;21034:6;21014:16;:26;;21006:68;;;;-1:-1:-1;;;21006:68:0;;10107:2:1;21006:68:0;;;10089:21:1;10146:2;10126:18;;;10119:30;10185:31;10165:18;;;10158:59;10234:18;;21006:68:0;9905:353:1;21006:68:0;21118:51;21127:5;21134:7;21162:6;21143:16;:25;21118:8;:51::i;17360:671::-;-1:-1:-1;;;;;17491:18:0;;17483:68;;;;-1:-1:-1;;;17483:68:0;;12749:2:1;17483:68:0;;;12731:21:1;12788:2;12768:18;;;12761:30;12827:34;12807:18;;;12800:62;-1:-1:-1;;;12878:18:1;;;12871:35;12923:19;;17483:68:0;12547:401:1;17483:68:0;-1:-1:-1;;;;;17570:16:0;;17562:64;;;;-1:-1:-1;;;17562:64:0;;7013:2:1;17562:64:0;;;6995:21:1;7052:2;7032:18;;;7025:30;7091:34;7071:18;;;7064:62;-1:-1:-1;;;7142:18:1;;;7135:33;7185:19;;17562:64:0;6811:399:1;17562:64:0;-1:-1:-1;;;;;17712:15:0;;17690:19;17712:15;;;;;;;;;;;17746:21;;;;17738:72;;;;-1:-1:-1;;;17738:72:0;;10465:2:1;17738:72:0;;;10447:21:1;10504:2;10484:18;;;10477:30;10543:34;10523:18;;;10516:62;-1:-1:-1;;;10594:18:1;;;10587:36;10640:19;;17738:72:0;10263:402:1;17738:72:0;-1:-1:-1;;;;;17846:15:0;;;:9;:15;;;;;;;;;;;17864:20;;;17846:38;;17906:13;;;;;;;;:23;;17878:6;;17846:9;17906:23;;17878:6;;17906:23;:::i;:::-;;;;;;;;17962:2;-1:-1:-1;;;;;17947:26:0;17956:4;-1:-1:-1;;;;;17947:26:0;;17966:6;17947:26;;;;6173:25:1;;6161:2;6146:18;;6027:177;17947:26:0;;;;;;;;17986:37;26239:337;19050:591;-1:-1:-1;;;;;19134:21:0;;19126:67;;;;-1:-1:-1;;;19126:67:0;;12347:2:1;19126:67:0;;;12329:21:1;12386:2;12366:18;;;12359:30;12425:34;12405:18;;;12398:62;-1:-1:-1;;;12476:18:1;;;12469:31;12517:19;;19126:67:0;12145:397:1;19126:67:0;-1:-1:-1;;;;;19293:18:0;;19268:22;19293:18;;;;;;;;;;;19330:24;;;;19322:71;;;;-1:-1:-1;;;19322:71:0;;7764:2:1;19322:71:0;;;7746:21:1;7803:2;7783:18;;;7776:30;7842:34;7822:18;;;7815:62;-1:-1:-1;;;7893:18:1;;;7886:32;7935:19;;19322:71:0;7562:398:1;19322:71:0;-1:-1:-1;;;;;19429:18:0;;:9;:18;;;;;;;;;;19450:23;;;19429:44;;19495:12;:22;;19467:6;;19429:9;19495:22;;19467:6;;19495:22;:::i;:::-;;;;-1:-1:-1;;19535:37:0;;6173:25:1;;;19561:1:0;;-1:-1:-1;;;;;19535:37:0;;;;;6161:2:1;6146:18;19535:37:0;;;;;;;26454:115:::1;26239:337:::0;;:::o;5910:191::-;6003:6;;;-1:-1:-1;;;;;6020:17:0;;;-1:-1:-1;;;;;;6020:17:0;;;;;;;6053:40;;6003:6;;;6020:17;6003:6;;6053:40;;5984:16;;6053:40;5973:128;5910:191;:::o;18318:399::-;-1:-1:-1;;;;;18402:21:0;;18394:65;;;;-1:-1:-1;;;18394:65:0;;13966:2:1;18394:65:0;;;13948:21:1;14005:2;13985:18;;;13978:30;14044:33;14024:18;;;14017:61;14095:18;;18394:65:0;13764:355:1;18394:65:0;18550:6;18534:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;18567:18:0;;:9;:18;;;;;;;;;;:28;;18589:6;;18567:9;:28;;18589:6;;18567:28;:::i;:::-;;;;-1:-1:-1;;18611:37:0;;6173:25:1;;;-1:-1:-1;;;;;18611:37:0;;;18628:1;;18611:37;;6161:2:1;6146:18;18611:37:0;;;;;;;23656:164;;:::o;1220:190::-;1345:4;1398;1369:25;1382:5;1389:4;1369:12;:25::i;:::-;:33;;1220:190;-1:-1:-1;;;;1220:190:0:o;1771:675::-;1854:7;1897:4;1854:7;1912:497;1936:5;:12;1932:1;:16;1912:497;;;1970:20;1993:5;1999:1;1993:8;;;;;;;;:::i;:::-;;;;;;;1970:31;;2036:12;2020;:28;2016:382;;2522:13;2572:15;;;2608:4;2601:15;;;2655:4;2639:21;;2148:57;;2016:382;;;2522:13;2572:15;;;2608:4;2601:15;;;2655:4;2639:21;;2325:57;;2016:382;-1:-1:-1;1950:3:0;;;;:::i;:::-;;;;1912:497;;;-1:-1:-1;2426:12:0;1771:675;-1:-1:-1;;;1771:675:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:673::-;243:5;296:3;289:4;281:6;277:17;273:27;263:55;;314:1;311;304:12;263:55;350:6;337:20;376:4;400:60;416:43;456:2;416:43;:::i;:::-;400:60;:::i;:::-;482:3;506:2;501:3;494:15;534:2;529:3;525:12;518:19;;569:2;561:6;557:15;621:3;616:2;610;607:1;603:10;595:6;591:23;587:32;584:41;581:61;;;638:1;635;628:12;581:61;660:1;670:166;684:2;681:1;678:9;670:166;;;741:20;757:3;741:20;:::i;:::-;729:33;;782:12;;;;814;;;;702:1;695:9;670:166;;;-1:-1:-1;854:5:1;;192:673;-1:-1:-1;;;;;;;192:673:1:o;870:367::-;933:8;943:6;997:3;990:4;982:6;978:17;974:27;964:55;;1015:1;1012;1005:12;964:55;-1:-1:-1;1038:20:1;;1081:18;1070:30;;1067:50;;;1113:1;1110;1103:12;1067:50;1150:4;1142:6;1138:17;1126:29;;1210:3;1203:4;1193:6;1190:1;1186:14;1178:6;1174:27;1170:38;1167:47;1164:67;;;1227:1;1224;1217:12;1164:67;870:367;;;;;:::o;1242:160::-;1307:20;;1363:13;;1356:21;1346:32;;1336:60;;1392:1;1389;1382:12;1407:186;1466:6;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1558:29;1577:9;1558:29;:::i;:::-;1548:39;1407:186;-1:-1:-1;;;1407:186:1:o;1598:260::-;1666:6;1674;1727:2;1715:9;1706:7;1702:23;1698:32;1695:52;;;1743:1;1740;1733:12;1695:52;1766:29;1785:9;1766:29;:::i;:::-;1756:39;;1814:38;1848:2;1837:9;1833:18;1814:38;:::i;:::-;1804:48;;1598:260;;;;;:::o;1863:328::-;1940:6;1948;1956;2009:2;1997:9;1988:7;1984:23;1980:32;1977:52;;;2025:1;2022;2015:12;1977:52;2048:29;2067:9;2048:29;:::i;:::-;2038:39;;2096:38;2130:2;2119:9;2115:18;2096:38;:::i;:::-;2086:48;;2181:2;2170:9;2166:18;2153:32;2143:42;;1863:328;;;;;:::o;2196:254::-;2264:6;2272;2325:2;2313:9;2304:7;2300:23;2296:32;2293:52;;;2341:1;2338;2331:12;2293:52;2364:29;2383:9;2364:29;:::i;:::-;2354:39;2440:2;2425:18;;;;2412:32;;-1:-1:-1;;;2196:254:1:o;2455:579::-;2559:6;2567;2575;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2675:29;2694:9;2675:29;:::i;:::-;2665:39;;2751:2;2740:9;2736:18;2723:32;2713:42;;2806:2;2795:9;2791:18;2778:32;2833:18;2825:6;2822:30;2819:50;;;2865:1;2862;2855:12;2819:50;2904:70;2966:7;2957:6;2946:9;2942:22;2904:70;:::i;:::-;2455:579;;;;-1:-1:-1;2993:8:1;-1:-1:-1;;;;2455:579:1:o;3039:1151::-;3154:6;3162;3215:2;3203:9;3194:7;3190:23;3186:32;3183:52;;;3231:1;3228;3221:12;3183:52;3271:9;3258:23;3300:18;3341:2;3333:6;3330:14;3327:34;;;3357:1;3354;3347:12;3327:34;3395:6;3384:9;3380:22;3370:32;;3440:7;3433:4;3429:2;3425:13;3421:27;3411:55;;3462:1;3459;3452:12;3411:55;3498:2;3485:16;3520:4;3544:60;3560:43;3600:2;3560:43;:::i;3544:60::-;3626:3;3650:2;3645:3;3638:15;3678:2;3673:3;3669:12;3662:19;;3709:2;3705;3701:11;3757:7;3752:2;3746;3743:1;3739:10;3735:2;3731:19;3727:28;3724:41;3721:61;;;3778:1;3775;3768:12;3721:61;3800:1;3791:10;;3810:169;3824:2;3821:1;3818:9;3810:169;;;3881:23;3900:3;3881:23;:::i;:::-;3869:36;;3842:1;3835:9;;;;;3925:12;;;;3957;;3810:169;;;-1:-1:-1;3998:5:1;-1:-1:-1;;4041:18:1;;4028:32;;-1:-1:-1;;4072:16:1;;;4069:36;;;4101:1;4098;4091:12;4069:36;;4124:60;4176:7;4165:8;4154:9;4150:24;4124:60;:::i;:::-;4114:70;;;3039:1151;;;;;:::o;4195:180::-;4251:6;4304:2;4292:9;4283:7;4279:23;4275:32;4272:52;;;4320:1;4317;4310:12;4272:52;4343:26;4359:9;4343:26;:::i;4380:180::-;4439:6;4492:2;4480:9;4471:7;4467:23;4463:32;4460:52;;;4508:1;4505;4498:12;4460:52;-1:-1:-1;4531:23:1;;4380:180;-1:-1:-1;4380:180:1:o;4750:573::-;4854:6;4862;4870;4878;4931:2;4919:9;4910:7;4906:23;4902:32;4899:52;;;4947:1;4944;4937:12;4899:52;4983:9;4970:23;4960:33;;5040:2;5029:9;5025:18;5012:32;5002:42;;5095:2;5084:9;5080:18;5067:32;5122:18;5114:6;5111:30;5108:50;;;5154:1;5151;5144:12;6209:597;6321:4;6350:2;6379;6368:9;6361:21;6411:6;6405:13;6454:6;6449:2;6438:9;6434:18;6427:34;6479:1;6489:140;6503:6;6500:1;6497:13;6489:140;;;6598:14;;;6594:23;;6588:30;6564:17;;;6583:2;6560:26;6553:66;6518:10;;6489:140;;;6647:6;6644:1;6641:13;6638:91;;;6717:1;6712:2;6703:6;6692:9;6688:22;6684:31;6677:42;6638:91;-1:-1:-1;6790:2:1;6769:15;-1:-1:-1;;6765:29:1;6750:45;;;;6797:2;6746:54;;6209:597;-1:-1:-1;;;6209:597:1:o;11425:356::-;11627:2;11609:21;;;11646:18;;;11639:30;11705:34;11700:2;11685:18;;11678:62;11772:2;11757:18;;11425:356::o;14495:275::-;14566:2;14560:9;14631:2;14612:13;;-1:-1:-1;;14608:27:1;14596:40;;14666:18;14651:34;;14687:22;;;14648:62;14645:88;;;14713:18;;:::i;:::-;14749:2;14742:22;14495:275;;-1:-1:-1;14495:275:1:o;14775:183::-;14835:4;14868:18;14860:6;14857:30;14854:56;;;14890:18;;:::i;:::-;-1:-1:-1;14935:1:1;14931:14;14947:4;14927:25;;14775:183::o;14963:128::-;15003:3;15034:1;15030:6;15027:1;15024:13;15021:39;;;15040:18;;:::i;:::-;-1:-1:-1;15076:9:1;;14963:128::o;15096:422::-;15185:1;15228:5;15185:1;15242:270;15263:7;15253:8;15250:21;15242:270;;;15322:4;15318:1;15314:6;15310:17;15304:4;15301:27;15298:53;;;15331:18;;:::i;:::-;15381:7;15371:8;15367:22;15364:55;;;15401:16;;;;15364:55;15480:22;;;;15440:15;;;;15242:270;;;15246:3;15096:422;;;;;:::o;15523:131::-;15583:5;15612:36;15639:8;15633:4;15708:5;15738:8;15728:80;;-1:-1:-1;15779:1:1;15793:5;;15728:80;15827:4;15817:76;;-1:-1:-1;15864:1:1;15878:5;;15817:76;15909:4;15927:1;15922:59;;;;15995:1;15990:130;;;;15902:218;;15922:59;15952:1;15943:10;;15966:5;;;15990:130;16027:3;16017:8;16014:17;16011:43;;;16034:18;;:::i;:::-;-1:-1:-1;;16090:1:1;16076:16;;16105:5;;15902:218;;16204:2;16194:8;16191:16;16185:3;16179:4;16176:13;16172:36;16166:2;16156:8;16153:16;16148:2;16142:4;16139:12;16135:35;16132:77;16129:159;;;-1:-1:-1;16241:19:1;;;16273:5;;16129:159;16320:34;16345:8;16339:4;16320:34;:::i;:::-;16390:6;16386:1;16382:6;16378:19;16369:7;16366:32;16363:58;;;16401:18;;:::i;:::-;16439:20;;15659:806;-1:-1:-1;;;15659:806:1:o;16470:168::-;16510:7;16576:1;16572;16568:6;16564:14;16561:1;16558:21;16553:1;16546:9;16539:17;16535:45;16532:71;;;16583:18;;:::i;:::-;-1:-1:-1;16623:9:1;;16470:168::o;16643:125::-;16683:4;16711:1;16708;16705:8;16702:34;;;16716:18;;:::i;:::-;-1:-1:-1;16753:9:1;;16643:125::o;16773:380::-;16852:1;16848:12;;;;16895;;;16916:61;;16970:4;16962:6;16958:17;16948:27;;16916:61;17023:2;17015:6;17012:14;16992:18;16989:38;16986:161;;;17069:10;17064:3;17060:20;17057:1;17050:31;17104:4;17101:1;17094:15;17132:4;17129:1;17122:15;16986:161;;16773:380;;;:::o;17158:135::-;17197:3;-1:-1:-1;;17218:17:1;;17215:43;;;17238:18;;:::i;:::-;-1:-1:-1;17285:1:1;17274:13;;17158:135::o;17298:127::-;17359:10;17354:3;17350:20;17347:1;17340:31;17390:4;17387:1;17380:15;17414:4;17411:1;17404:15;17430:127;17491:10;17486:3;17482:20;17479:1;17472:31;17522:4;17519:1;17512:15;17546:4;17543:1;17536:15;17562:127;17623:10;17618:3;17614:20;17611:1;17604:31;17654:4;17651:1;17644:15;17678:4;17675:1;17668:15
Swarm Source
ipfs://19ac3803fdedc1d55b4c1a23dc6ccbf7ccdeddd13546c83dbc36536fdc74b295
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.